四、经典的软件过程管理
1. CMM/CMMI
(1) CMM:出发点,体系结构,关键过程域,关键实践活动。
出发点(目的):把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标
体系结构:
1.成熟级别 2.关键过程域 3.公共特性 4.关键实践
CMM由5个成熟度级别组成
(初始级、可重复级、已定义级、已管理级、优化级)
每个成熟度级别(除级别1)包含了实现该级别的若干个关键过程域(KPA)
每一个KPA进一步被分为称为公共特征的5个部分:执行约定、执行能力、执行活动、测量和分析、验证实施,
这些公共特征包括了关键实践(KP),即每一个KPA包括5类KP
实现了这些KP后,就实现了关键过程域的目标
关键过程域:一系列相互关联的操作活动,标识了达到某个成熟度级别时所必须满足的条件。
一共有18个关键过程域,分为管理过程、组织过程、工程过程
关键实践活动:描述对KPA的有效实施和制度化起最重要作用的基础设施和活动。
(2) CMMI与CMM的区别和联系,CMMI的两种表示方法。
区别:1、CMMI更强调定性管理和定量管理的特点,体现在等级划分中
2、CMMI比CMM进一步强化了对需求的重视,CMM中关于需求只有需求管理,CMMI中加入了需求开发,提出了对如何获取优秀的需求的要求和方法.
3、CMMI中单独强调了风险管理,而CMM中风险管理被分散在其他过程域中
4、CMMI对工程活动进行了一定的强化,结合了很多新的过程域处理工程活动
联系:CMMI是在CMM基础上发展起来的,它继承并发扬了CMM的优良特性,借鉴了其他模型的优点,融入了新的理论和实际研究成果。它不仅能够应用在软件工程领域,而且可以用于系统工程及其他工程领域。
两种表示方法:
1.阶段式的:1初始级、2可管理级、3已定义级、4量化管理级、5优化管理级
2.连续式的: 0不完整级,1已执行级,2已管理级,
3已定义级,4量化管理级,5最优化级
2. PSP:结构,两种日志,评审比测试有效的原因,四个设计模板。
PSP:是一种可用于控制、管理和改进个人工作方式的自我持续改进过程
结构:1、PSP成熟度模型:4个等级7个台阶。
(个体度量过程、个体计划过程、个体质量管理过程和个体循环过程。)
2、PSP过程框架:
两种日志: 时间记录日志
缺陷记录日志
评审比测试有效的原因:测试需要找到出错的位置,并找到原因。较为困难
评审发现缺陷的同时,也知道了缺陷的位置和原因
四个设计模板
操作规格模板(OST)描述了系统与外界的交互。一般是动态的(用例图时序图)
功能规格模板(FST)描述系统与外界的接口。一般是静态的(UML类图)
状态规格模板(SST)可以精确定义程序的所有状态、状态之间转换以及伴随每次状态转换的动作。一般是动态的
逻辑规格模板(LST)可以精确描述系统的内部逻辑状态。一般是静态的伪代码
3. 软件过程模型:瀑布、原型、增量、螺旋、形式化、组件的优缺点。
(太多了超星4.5ppt)
4. MSF:六个角色;过程模型中的五个阶段。
(第十六讲ppt)
MSF微软解决方案框架
六个角色:产品管理 程序管理 开发 测试 发布管理 用户体验
五个阶段:构思阶段 计划阶段 开发阶段 稳定阶段 部署阶段
5. RUP:九个软件过程,四个阶段,六大经验。
(百度RUP)
九大软件过程:
商业建模
需求
分析和设计
实现
测试
部署
配置和变更管理
项目管理
环境
四大阶段:初始、细化、构造、交付
|
|
里程碑 |
中间产品 |
起始(先启/初始)阶段 |
建立系统的业务模型捕获系统的基本需求确定系统的边界识别关键任务确定系统验收标准进行项目风险评估进行项目资源的估计与效益分析制定项目开发计划于重要里程碑 |
生命期目标 |
项目蓝图文档:系统的核心需求、关键特性与主要约束初始的用例模型(完成10%~20%)初始的项目术语表业务用例模型,包括商业环境、验收标准和财政预测初始的风险评估一个可以显示阶段和迭代的项目计划一个或多个原型初始的架构文档 |
细化阶段(最关键的阶段) |
细化构想,建立对大多数关键用例的确定理解分析问题域,建立坚实的架构细化机构并选择组件捕获80%的功能需求用例精化风险评估建立可执行的软件原型定义非功能需求制定过程迭代计划和迭代的评价标准 |
生命期构架 |
系统架构基线UML静态模型、UML动态模型、UML用例模型修订的风险评估修订的用例修订的项目计划可执行的原型 |
构造阶段 |
资源管理、资源控制和过程优化完成组件开发并根据已定义的评价准则进行测试利用构想指定的准则对发布的产品进行评估 |
初始运作功能。构造阶段的结束时项目开发的第三个重要的里程碑。这个阶段产生的版本通常被称为β版。 |
可运行的软件系统UML模型测试用例用户手册发布描述 |
交付(转化、产品化)阶段 |
将软件系统部署到用户环境修复软件的缺陷编制用户手册和其他文档培训用户和维护人员提供用户咨询 |
产品发布 |
可运行的软件产品用户手册用户支持计划 |
六大经验:
迭代式开发,管理需求,基于组件的体系结构,可视化建模,验证软件质量,控制软件变更