软件过程内容总结
软件过程与管理
一、概论
1. 软件工程的三要素。
软件工程以关注软件质量为目标,包括过程、方法和工具三个要素
过程:支持软件生命周期的所有活动
方法:为软件开发过程提供“如何做”的技术
工具:为软件开发方法提供自动的或半自动的软件支撑环境
2. 软件过程的定义。
软件过程是用于软件开发及维护的一系列活动、方法及实践。
3. 常见的软件过程分类。常见的软件过程。
IEC12207软件过程分类:主要过程,支持过程,组织过程
ISO/IEC15504软件过程分类:客户-供应商过程,工程过程,支持过程,管理过程,组织过程。
二、软件质量管理
1. 软件质量的定义。
软件质量是软件产品满足明确或隐含需要能力的性能和特性的总体。
2.
ISO/IEC 9126的结构:
ISO/IEC 9126:2001十个一级质量特性:
内部质量和外部质量
功能性、可靠性、有效性、可维护性、可移植性和可使用性
使用质量
有效性、生产率、安全和满意度
一级特性对应的二级特性(理解):
3. 朱兰质量管理三部曲。
质量计划:确定项目应达到的质量标准,以及如何满足质量标准的计划安排和方法
质量保证:确保项目达到有关标准,而开展的有计划、有组织的工作活动
质量控制:是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。
质量计划方法:试验设计、基准对照、质量成本分析(CoQ)、流程图方法、因果分析图
质量保证方法:正规的质量评价(质量审计);通常在项目执行的过程中进行
总结性质量评价(质量改进):通常在项目结束时进行
质量控制方法:
静态方法:评审(技术评审、代码评审)
动态方法:测试(单元测试、集成测试、确认测试)
三、软件项目管理
1. 基本概念:
项目:项目是为完成某一独特的产品、服务或成果所做的一次性努力
项目管理:项目管理就是在项目活动中运用相关知识、技能、工具和技术满足项目的要求。
项目管理的五大过程组:启动、计划、执行、控制和收尾
项目管理的十大知识领域:集范时成质,人沟风采利
项目集成管理
项目范围管理
项目时间管理
项目成本管理
项目质量管理
项目人力资源管理
项目沟通管理
项目风险管理
项目采购管理
项目利益相关者管理
2. 可行性分析:
(不懂)给定贴现率R计算公式为:净现值=1.0/(1+r)t为第t年的贴现因子;净现值NPV(利用了贴现率,第t年的值/(1+r)t)。一般的,初始投资是没有贴现的。
净现值的优点:
1.考虑了货币的时间价值(主要有限)增强了投资经济性的评价 2、考虑了投资风险,风险大则采用高折现率,风险小则采用低折现率。3、净现值对现金流量进行了合理折现
3. 识别软件项目的活动:WBS。
工作分解结构(WorkBreakdownStructureWBS):以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义
(看)叶子节点(功能-子功能):只有最底层的叶子节点构成了项目的活动集合。
中间结点(功能)
4. 软件工作量估计方法:常见的软件工作量估计方法,记住名称,并理解每个方法。
IFPUG功能点方法中信息系统的五大类功能?
功能:外部输入 外部输出 外部查询 内部逻辑文件 外部接口文件
5. 软件项目的进度安排:甘特图、关键路径法、关键链法、PERT技术。(关键路径法必须全面理解掌握,只需要掌握活动节点,活动箭头不需掌握;后两种方法掌握计算步骤)
(1) http://www.doc88.com/p-5763050345476.html
(2) https://wenku.baidu.com/view/6368fe9e51e79b8968022620.html
(3) http://www.cnitpm.com/pm/5933.html
PERT技术
PERT技术(不考计算题,考定义步骤):全称:工程评估评审技术。类似于关键路径法。考虑到了进度管理中的风险,将不确定性引入了进度管理中。对活动周期进行三次估计,不再是CPM关键路径中的确定值。
考虑到了进度管理中的风险,将不确定性引入到了进度管理中
对活动周期进行了三次估计(最可能的时间,乐观的时间,悲观的时间),不再是CPM中的确定值
(1)估计每个活动的最可能时间,乐观时间,悲观时间,计算活动的期望周期与标准偏差。
(2)正向遍历得到期望达到事件的日期
(3)满足目标的可能性
关键链法的步骤:
1紧前关系,得到的最长路径---关键路径
2考虑紧前关系和资源冲突,得到关键链(关键链决定了项目工期)
3加入项目缓冲和汇入缓冲;项目缓冲:放在关键链后面;汇入缓冲:放在非关键链与关键链的交汇处
4砍掉所有项目的一半计算缓冲大小
6. 软件项目的资源管理:资源定义,资源分配直方图。
资源定义:资源是执行项目所需要的任何项和人
资源分配直方图:资源分配直方图通过延迟某些活动的开始日期,来平衡化资源直方图。
7. 软件项目的风险管理:风险的定义,风险管理的框架,风险处理的方法。
风险:一个不确定的事件或者情况,若其一旦发生,会对项目的目标,例如,范围、进度、成本和质量,产生积极或消极的影响。
管理框架:风险识别、风险分析与优先排序、风险策划、风险监督
风险处理的方法:避免、预防、自保转移风险
8. 软件项目的监督和控制:挣值分析。
(1) https://wenku.baidu.com/view/7bcf90280066f5335a81211b.html
(2) https://blog.csdn.net/pmpljp/article/details/19299077
9.软件项目的配置管理:配置管理的任务,配置项。
软件项目的配置管理:是指一套管理软件开发和维护过程中所产生的各种中间软件产品的方法和规则。它是控制软件系统.演变的学科
配置管理的任务:标志变更、控制变更、确保变更正确实现、向受变更影响的组织和个人报告变更
配置项:配置项:软件配置管理的对象,一个软件配置项是项目中一个特定的、可文档化的工作产品集。例如,程序,文档等
四、经典的软件过程管理
1. CMM/CMMI
(1) CMM:出发点,体系结构,关键过程域,关键实践活动。
CMM(软件过程能力成熟度模型):
CMM不是过程,不是技术,不是方法。是一种理念,一种指导思想。说明做什么,不是说明如何去做或者谁做
出发点:描述软件组织一条从无序的、混乱的过程到成熟的、有纪律的过程的改进途径,描绘出软件组织如何增加对软件开发和维护的过程控制,如何向软件工程和管理的优秀文化演变等方面的指导。
体系结构:
关键过程域:
关键实践活动:
(2) CMMI与CMM的区别和联系,CMMI的两种表示方法。
CMMI与CMM的区别和联系:
联系:CMMI即CMM集成,是系统工程和软件工程的集成成熟度模型,CMMI是在CMM基础上发展起来的,它继承并发扬了CMM的优良特性,借鉴了其他模型的优点,融入了新的理论和实际研究成果
区别:连续式作为单一过程域或者过程域集合,阶段式作为整个组织已建立的一个过程域集合。CMMI和CMM区别在于:I是intergration,集成的意思。CMM适用于软件的组织成熟度测评。CMMI适用于多种组织成熟度测评。CMMI相对CMM更完整,更适用于大环境。
CMMI的两种表示方法:连续式,阶段式
2. PSP:结构,两种日志,评审比测试有效的原因,四个设计模板。
PSP成熟度模型: PSP具有4个等级,7个台阶组成的成熟度框架 。4个等级分别为个体度量过程、个体计划过程、个体质量管理过程和个体循环过程。
两种日志: 时间日志,缺陷日志
评审比测试有效的原因:在评审时发现的错误比测试是发现的多;成本低。缺陷发现的越早,修复的花费越低;且避免缺陷比发现和修复缺陷更有效。
四个设计模板:LST逻辑规格模板(无)、SST状态规格模板(UML:时序图)FST功能规格模板(UML:类图)、OST操作场景模板(UML:用例图)。
3. 软件过程模型:瀑布、原型、增量、螺旋、形式化、组件的优缺点。
4. MSF:六个角色;过程模型中的五个阶段。
六个角色:产品管理、程序管理、开发、测试、发布管理、用户体验
过程模型中的五个阶段:构思、计划、开发、稳定、部署
5. RUP:九个软件过程,四个阶段,六大经验。
九个软件过程:
6个核心过程:商业建模、需求、分析和设计、实现、测试、部署
3个核心辅助:配置和变更管理、项目管理、环境
四个阶段:初始、细化(关键)、构造、移交
六大经验:迭代式开发、管理需求、基于组件的体系结构、可视化建模、验证软件质量、控制软件变更
五、敏捷软件开发
敏捷开发是一种思维方式和软件过程方法论
敏捷开发是有一些业界还价针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则。
- 敏捷宣言。
注重个人及互动胜于过程和工具
注重可用的软件胜于详尽的文档
注重客户协作胜于合同谈判
注重相应变化胜于恪守计划
2. 常见的敏捷软件过程,SCRUM和极限编程。
SCRUM:是一个敏捷开发框架,是一个增量的、迭代的开发过程
极限编程XP:是一种全新而快捷的软件开发方法。XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流。这可以帮助团队最大化地发挥他们的价值。
层次关系从大到小是:敏捷过程>极限编程>SCRUM
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具