软件过程2

四、经典的软件过程管理

1. CMM/CMMI

(1) CMM:出发点,体系结构,关键过程域,关键实践活动。

CMM是软件过程能力成熟度模型

出发点:改善现有软件开发过程,也可用于其他过程。

CMM的体系结构

CMM5个成熟度级别组成

每个成熟度级别(除级别1)包含了实现该级别的若干个关键过程域(KPA

每一个KPA进一步被分为称为公共特征的5个部分:执行约定、执行能力、执行活动、测量和分析、验证实施

这些公共特征包括了关键实践(KP),即每一个KPA包括5KP

实现了这些KP后,就实现了关键过程域的目标

成熟度等级:初始级,可重复级,已定义级,已管理级,优化级。

 

关键过程域(Key Process Area):一系列相互关联的操作活动,标识了达到某个成熟度级别时所必须满足的条件。

KPA分为三大类:管理过程、组织过程和工程过程。

 

每个关键过程域 (KPA) 都具有的五种公共特性:

执行约定 执行能力 执行活动 测量和分析 验证实施

 

关键实践(KP,Key Process):

描述对KPA的有效实施和制度化起最重要作用的基础设施和活动。

 

(2) CMMI与CMM的区别和联系,CMMI的两种表示方法。

区别和联系:

联系:CMMI即CMM集成,是系统工程和软件工程的集成成熟度模型,CMMI是在CMM基础上发展起来的,它继承并发扬了CMM的优良特性,借鉴了其他模型的优点,融入了新的理论和实际研究成果

区别:CMMI共有分属于4个类别的25个过程哉,覆盖了4个不同的领域;相对应的CMM共有18个过程域.

       CMMI更适合于信息系统集成企业,,它不仅能够应用在软件工程领域,而且可以用于系统工程及其他工程领域

       CMMI比CMM进一步强化了对需求的重视.在CMM中,关于需求只有需求管理这一个KPA。在CMMI中,3级有一个独立的KPA叫做需求开发,提出了对如何获取优秀的需求的要求和方法.

两种表示方法:

       阶段式表示法连续式表示法

2. PSP:结构,两种日志,评审比测试有效的原因,四个设计模板。

q    PSP成熟度模型

   PSP具有4个等级7个台阶组成的成熟度框架 。4个等级分别为个体度量过程、个体计划过程、个体质量管理过程和个体循环过程

q PSP过程框架

   PSP过程由一系列方法、表格、脚本等组成,用以指导软件开发人员计划、度量和管理他们的工作。

两种日志:

       时间日志,缺陷日志

评审比测试有效的原因:

在评审时发现的错误比测试是发现的多;成本低。缺陷发现的越早,修复的花费越低;且避免缺陷比发现和修复缺陷更有效。

四个设计模板:操作规格模板(Operational Specification Template, OST)描述了系统与外界的交互对应用例图,

功能规格模板( Functional Specification Template, FST)描述了系统可以向用户提供对外部可见的行为说明书,以及与这些功能相关的系统行为,变量和内部关系(继承关系)类图

状态规格模板( State Specification Template, SST)可以精确定义程序的所有状态、状态之间转换以及伴随每次状态转换的动作。时序图

逻辑规格模板( Logical Specification Template, LST)可以精确描述系统的内部逻辑状态。

 

3.软件过程模型:瀑布、原型、增量、螺旋、形式化、组件的优缺点。(选择)

瀑布模型

特点:

开发阶段严格按照线性方式进行、阶段间有因果关系、每个阶段需评审确认、

允许反馈、强调文档

适合场所:需求易于完善定义的软件

缺点:

各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;开发过程中很难响应客户的变更要求;

早期的错误可能要等到开发后期的测试阶段才能发现,进而带来  严重的后果

快速原型模型

优点:

加强用户和软件人员之间的沟通,明确系统的需求

尽早得到系统可用性的反馈信息,及时修改以获得完整、正确需求

缺点:

用户会由于看到的原型系统不完善,而对产品产生怀疑

可能为了快速开发原型系统,而采用未经充分论证的技术(如操作系统平台、主要的算法)导致质量低下

增量模型

优点:

整个产品被分解成若干个构件逐步交付,用户可以不断地看到所开发软件的可运行中间版本;

将早期增量作为原型有助于明确后期增量的需求;

降低开发风险;

重要功能被首先交付,从而使其得到最多的测试

缺点:

需要软件具备开放式的体系结构,以便各个构件逐步进入

需求难以在增量实现之前详细定义,因此增量与需求的准确映射以及所有增量的有效集成可能会比较困难,容易退化为边做边改方式,使软件过程的控制失去整体性

螺旋模型

优点:

风险驱动;关注软件的重用;关注早期错误的消除;将质量目标放在首位;将开发阶段与维护阶段结合在一起;

缺点:需要风险评估的经验;只适应内部大规模软件开发;

形式化方法模型

优点:

由于数学方法具有严密性和准确性,形式化方法开发过程所交付的软件系统具有较少的缺陷和较高的安全性

缺点:

开发人员需要具备一定技能并经过特殊训练;

形式化描述和转换是一项费时费力的工作,成本高,质量不一定高;

现实应用的系统大多数是交互性强的软件,但是这些系统难以用形式化方法进行描述;

基于组件的开发模型

优点:充分体现软件复用的思想、实现快速交付软件、利用开源组件与软件

缺点:商业组件的修改受到限制,影响系统的演化。

 

4.MSF:六个角色;过程模型中的五个阶段。

MSF即微软的解决方案。团队是微软作战最小的基本单元。

项目场景中的6个角色:产品管理,程序管理,开发,测试,发布管理,用户体验。-------产程开测发用

5个阶段:构思阶段,计划阶段,开发阶段,稳定阶段,部署阶段。

5.RUP:九个软件过程(六核心,三辅助),四个阶段(其中最重要的是哪个),六大经验。

Rup:统一软件开发过程,面对对象的软件工程的过程框架。

9个过程域:6个是核心3个是辅助:

6个核心过程流:商业建模,需求,分析和设计,实现,测试,部署。

3个辅助过程流:配置和变更管理,项目管理,环境。

4个阶段:初始,细化,构造,交付。

六大经验---迭代式开发,管理需求,基于组件的体系结构,可视化建模,验证软件质量,控制软件变更

 

五、敏捷软件开发

1. 敏捷宣言。

四个核心价值十二个原则:

注重个人及互动胜于过程和工具

注重可用的软件胜于详尽的文档 

注重客户协作胜于合同谈判    

注重响应变化胜于恪守计划  

 

 

 

2. 常见的敏捷软件过程,SCRUM和极限编程。

---极限编程XP  是一种全新而快捷的软件开发方法。XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流。这可以帮助团队最大化地发挥他们的价值。

XP特别适合于小型的有责任心的、自觉自励的团队开发需求不确定或者迅速变化的软件

 

---并行争球法---Scrum---增量的迭代的开发过程  Scrum 是一个敏捷开发框架,是一个增量的、迭代的开发过程。整个开发周期包括若干个小的迭代周期,每个小的的迭代周期称为一个 Sprint ,每个 Sprint 的建议长度2~4周。

 

---水晶法Crysta----每一个不同的项目都需要一套不同的策略、约定和方法论

posted @ 2022-05-24 08:17  风吹过半夏  阅读(362)  评论(0编辑  收藏  举报