1. 软件与软件产业的发展过程
软件管理工程的发展,经历了从20世纪70年代开始以结构化分析与设计、结构化
评审、结构化程序设计以及结构化测试为特征的结构化生产时代,到90年代中期,以CMM模型的成熟和日益为市场接受为标志,已经进入以过程成熟度模型CMM、
个体软件过程PSP和团队软件过程TSP为标志的以过程为中心的时代,而软件发展第三个时代,即软件工业化生产时代,以90年代中期软件过程技术的成熟和面向对
象技术、构件技术的发展为基础,已经渐露端倪。
一、绪论(2)
2. 软件危机及其原因
软件特殊性:软件成本高;软件开发的进度难于控制;估计软件工作量很困难;软
件质量难于保证;修正维护软件困难。
软件企业的4个困难:需求的完全识别;软件产品需求的完全传递;软件产品相关
的变更控制;软件产品相关技术的快速变化。 软件构建的核心就是管理复杂度 。软件是由人开发的,人的智力与软件的复杂度之
间存在矛盾。 软件复杂度与软件的规模有很大关系,另外也与模块间的耦合度、模块内的内聚性等因素有关。
一、绪论(3)
3. 过程及其要素
软件开发项目是在规定的成本和时间内,开发和提交满足客户某些需求的软件产品。
项目的三个基本特征是:成本、进度和质量(代表软件在多大程度上满足客户的要
求)。
对于机构而言,包含多个项目,而实现机构的高质量和生产率,依赖于三个因素:
过程、人和技术。 其中过程不仅仅是一系列步骤,还包含了机构所积累的经验,包含了机构可以从已
成功的项目中所学到的一切。 一、绪论(4)
4. CMM与软件产业
管理是影响软件研发项目全局的因素,而技术只影响局部。
1987年9月,美国卡内基-梅隆大学软件工程研究所发布了软件过程成熟度框架,并
提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。 4年之后,SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability
Maturity Model For Software,简称SW-CMM)。1991年8月,SEI发布了最早的
SW-CMM v1.0。经过两年的试用,1993年SEI正式发布了SW-CMM v1.1,这是目前使用最为广泛的版本。
一、绪论(5)
5. ISO9001与CMM的异同
ISO9000系列包括3个第三方认证标准( ISO9001 、 ISO9002 和ISO9003 )和一个质量管理标准ISO9004
CMM和ISO9001标准系列都着眼于质量和过程管理,二者都为了解决同样的问题。
CMM是动态的、开放的和持续改进的,强调没有最好只有更好,强调不断改进,
强调人在软件开发方面的思想认识和主动性,适用于软件过程的改进;CMM模型只关注软件,它能解决“软件危机” 这个世界性的问题;ISO9001是静态的质量控制,
只要达到几个关键指标就能完成质量控制,更适用于硬件制造生产线的质量控制。
ISO 9001的适应范围更广,包括硬件、软件和服务。
二、软件过程成熟度框架(1) 1. CMM基本知识
CMM为软件企业的过程能力提供了一个阶梯式的进化框架,阶梯共有五级。
初始级:无序、混乱的软件过程。依赖个别人的努力和机遇。
可重复级:建立基本的项目管理过程。相似项目,重复以往成果。 已定义级:文档化、标准化和标准的软件过程。
已管理级:软件过程和产品质量有详细的度量标准。 优化级:持续的对过程进行改进。 二、软件过程成熟度框架(2) 2. 成熟度级别的行为特征
从效果而言,在上述不同阶段,软件开发生产的成熟程度给软件企业带来了完全不
同的效果。第一阶段到第五个阶段,软件开发生产的计划精度越来越高,每单位工程的生产周期越来越短,每单位工程的成本越来越低。
各关键过程域中规定了执行约定、执行能力、执行活动、质量和验证的标准等。 管理者:经理、各级经理、领导、职员和个人。
软件小组:软件工程组、软件工程过程组、软件相关组等。 二、软件过程成熟度框架(3)
3. 成熟度级别的跳跃
CMM每个成熟度级别都是下一级别的必要基础。
机构可以选择合适的时机,着手进行特定的过程改进。 过程改进工作应该在其业务环境内侧重机构的需求。 实施软件过程改进的差异是由定义关键过程域引起的。 二、软件过程成熟度框架(4) 4. 软件过程可视性
等级1―――一个黑盒
等级2――― 项目里程碑处具有管理可视性 等级3―――盒子的内部结构可视
等级4―――软件过程被配备上度量,并得到定量地控制 等级5―――对过程不断改进 三、能力成熟度模型的结构(1) 1. CMM的内部结构
CMM由5个成熟度级别组成。
每个成熟度级别(除级别1)包含了实现该级别的若干个关键过程域(KPA)。 每一个KPA进一步被分为称为公共特征的5个部分。
这些公共特征包括了关键实践(KP),即每一个KPA包括5类KP 。 实现了这些KP后,就实现了关键过程域的目标。 三、能力成熟度模型的结构(2) 2. 关键过程域
一系列相互关联的操作活动
某一级别的一组目标,用以衡量是否具有此级别的能力。 每个KPA的目标总结了它的关键实践(KP),目标说明了每一个KPA的界限、范围、
内容和关键实践。
不同级别的KPA(项目、数目、内容)是不同的,但其中很多项都有深层次的联系(上级是下级的深化和延伸)。 18个关键过程域,分布在2~5级。 三、能力成熟度模型的结构(3) 3. 关键实践
每一个关键过程域都是用关键实践的概念进行描述。
描述了对关键过程域的有效实施和制度化起最重要作用的基础设施和活动。 达到一个KPA而要做的事。
描述了“做什么”,但没有规定“如何做” 。 三、能力成熟度模型的结构(4) 4. 共同特性
无论哪个KPA,它们的关键实践都统一按五个公共属性进行组织,即每一个KPA都包含五类KP 。
执行约定:组织为保证过程得以建立和持续发挥作用所必须采取的行动,主要包括制定企业范围的政策和高层管理的责任。
执行能力:达到的前提条件,一般包括资源保证、人员培训等内容。
执行活动 :必须执行的任务和步骤,一般包括计划、执行的任务、任务执行的跟踪
等。
度量和分析:度量的基本原则,用以确定、改进和控制过程的状态。 验证实施:验证所开展的关键实践与确立的过程是否遵循已制定的步骤。 三、能力成熟度模型的结构(5)
5. CMM的应用
CMM的两种主要用途归结为两种评定方法。
软件过程评估: 用于确定组织目前的软件过程状态,确定组织面临的突出软件过程
问题,从而求得组织的软件过程改进的支持。
软件能力评价: 用于识别合格的软件工作承包商,或用于监控现行软件工作项目上
用的软件过程的状态。 CMM是软件过程评估和软件能力评价的公共基础。不过,两种用法的目的不同,
而且具体用法也有很大差异。软件过程评估侧重于确定本组织软件过程改进的轻重缓急;软件能力评价侧重于确定在选择软件项目承包商时可能碰到的风险,或者说
是确定软件组织在软件能力方面的置信程度。后面这一点正是许多软件组织看好按CMM评定等级的原因。
四、可重复级(1)
1. 可重复级的基本特征
关注项目一级的软件过程。
已建立了项目管理的方针和规定。
对项目已设置基本的软件管理控制。
组织的过程能力体现在有纪律。
当有转包商时,通过转包合同建立有效的供求关系。 缺陷:依赖经验管理项目。 四、可重复级(2)
2. 需求管理( RM, Requirements Management
分配需求是指分配给软件的系统需求,包括:软件项目活动中的非技术性需求、软
件技术性需求、接收标准。它是制定软件开发计划的根据,是整个软件生命周期中
估算、计划、执行和跟踪软件项目活动的基础。
目标:建立基线;软件开发计划、产品和活动与分配给软件的系统需求保持一致。
即,需求确定的管理、需求实现的管理、需求变更的管理。
执行活动:评审分配需求;将分配需求作为软件开发的基础;评审需求变更并纳入
到项目中。 由上级主管部门和软件质量保证组实施验证。 四、可重复级(3)
3. 软件项目计划(SPP,Software Project Planning
目标:对软件估计建立文档;项目活动和约定是有计划的,并已形成文档;相关小
组和个人对约定达成共识。
执行活动:软件项目的策划、建议与评审;确定易于管理的软件生命周期;制定项
目的软件开发计划(SDP);识别软件工作产品;作出软件估计并形成文档;记录软件计划数据。
由高级管理者和软件质量保证组实施验证。
四、可重复级(4)
4. 软件项目跟踪和监控(SPTO,Software Project Tracking and Oversight)
目标:对照SDP,跟踪实际结果和性能;发生明显偏离时采取纠正措施;对软件约
定的更改应得到相关小组和个人的认可。
执行活动:利用SDP跟踪活动并修订项目的开发计划;跟踪实际的开发过程,必要
时采取纠正措施;记录软件项目的实际度量数据,并重新计划数据;定期进行内部审查和在项目里程碑处进行审查。
由上级主管部门和软件质量保证组实施验证。 四、可重复级(5)
5. 软件转包合同管理(SSM,Software Subcontract Management
目标:主承制方选择合格的软件分承制方;主承制方与软件分承制方确认他们相互
间的约定;主承制方和软件分承制方保持工作联系;主承制方根据约定跟踪软件分承制方的实际结果和性能。
执行活动:选择合格的转包商,并与之签订合同;主承包商审查转包商的软件开发
计划,并用于跟踪其软件活动;评审、评价转包商;监督、验收转包商的软件活动。 由上级主管部门和软件质量保证组实施验证。 四、可重复级(6)
6. 软件质量保证(SQA,Software Quality Assurance)
目标:SQA活动是有计划的;客观地验证软件产品和活动是否遵守所用的标准、规
程和需求;SQA组所进行的活动和结果及时通知到相关的组和个人;高层管理者及时处理在软件项目内部不能解决的不一致性问题。 创建一个SQA小组是开展软件质量保证的必要条件。
执行活动:制定软件项目的SQA计划;按照SQA计划来开展活动;评审软件工程活动,以检验一致性;审核制定的软件工作产品,以检验一致性。 由上级主管部门和独立于SQA组的专家进行审查。 四、可重复级(7)
7. 软件配置管理(SCM,Software Configuration Management)
目标:软件配置管理活动是有计划的;所选用的软件工作产品是经过标识、受控和
可用的;对已标识的软件产品的变更是受控的;相关组和个人能及时得到软件基线的状态和内容。
创建一个有权力管理项目软件基线的委员会(SCCB)和一个SCM小组是开展SCM的必要条件。
SCM活动主要解决四个方面的问题:配置识别;变更控制、配置状态统计、配置审
核(正式审核和非正式审核)。
由上级主管部门和SQA组进行审查。 五、已定义级(1) 1. 概述
关注组织一级的软件过程。
用于开发、维护软件的过程已经得到了系统的阐述并能付诸于实施。 有两种“已定义”的软件过程:组织标准软件过程(OSSP)、项目定义软件过程。 软件过程能力可概括为标准的和一致的。 七个关键过程域。
五、已定义级(2)
2. 组织过程焦点(OPF,organization process focus)
目标:在整个组织内,有关软件过程的活动是协调的;识别出一个具体软件过程与
一个过程标准相比较的强处和弱处;在组织层上,有关软件过程的活动是有计划的。 创建一个负责组织软件过程活动的组(如SEPG组)开展OPF的必要条件。
OPF的主要活动:定期评估软件过程并制定相应的更改计划;协调组织的标准软件
过程和项目定义软件过程的制定和改进活动。 由高级管理者进行审查。 五、已定义级(3)
3.组织过程定义(OPD,Organization Process Definition)
目标:开发和维护组织的标准软件过程;收集和评审软件项目使用组织的标准软件
过程的信息,并使其可用。
软件过程体系结构是对组织标准软件过程的高层次描述。它描述了OSSP中的软件
过程元素的排序、接口、相互依赖关系及其他关系。 OPD活动产生软件过程财富,包括:组织批准的软件生命周期、组织标准软件过程、裁减指南、组织的软件过程数据库、软件过程相关的文档库。 由软件质量保证组实施验证。 五、已定义级(4)
4.培训程序(TP,Training Program)
目标:培训活动是有计划的;为培训组提供实施管理和技术职责所需要的技能和知识的培训;软件工程组和软件相关组的成员接受所需的培训。
五、已定义级(5)
5.集成软件管理(ISM,Integrated Software Management)
目标:项目定义的软件过程是组织的标准软件过程经裁减的版本;按照项目定义的
软件过程对项目进行计划和管理。
五、已定义级(6)
6.软件产品工程(SPE,Software Product Engineering
目标:定义和集成软件工程任务,并一致地执行它们;软件工作产品间保持一致。 五、已定义级(7)
7.组间协调(Intergroup Coordination
目标:客户需求得到所有相关组的认同;工程组之间的约定得到相关组的认同;各
工程组识别、跟踪和解决组间存在的问题。
组间协调的目的是为了建立一种工作方式,使软件工程组能和其他工程组积极协调地工作,从而使项目能够更有效地满足客户的需要。
五、已定义级(8)
8.同行评审( Peer Reviews )
目标:同行评审活动是有计划的;识别并消除软件工作产品中存在的缺陷。 六、已管理级(1) 1.概述
组织为软件产品和软件过程定了量化的质量标准 量化控制将使软件开发真正成为一种工业生产活动 两个关键过程域
定量过程管理 软件质量管理
六、已管理级(2) 2. 定量过程管理
目标:定量过程管理活动是有计划的;定量地控制项目定义的软件过程的过程性能;
组织的标准软件过程的过程能力是定量已知的。 六、已管理级(3) 3. 软件质量管理
目标:项目的软件质量管理活动是有计划的;软件产品质量的可测目标和目标的优先级被定义;对达到软件产品质量目标的实际进展进行了量化管理。
七、优化级(1)
1.概述
CMM中的最高层次 工作重点
对已有的软件过程进行深层次的改进和过程成熟能力的不断提高
企业以“预防”、“改革”和“完善”为目标 三个关键过程域
缺陷预防
技术改革管理 过程变更管理
七、优化级(2) 2.缺陷预防
目标:缺陷预防活动是有计划的;缺陷产生的共同原因已经找出且被标识;缺陷产
生的共同原因已按优先级排序并被系统地消除。 七、优化级(3) 3.技术改革管理
目标:有计划地进行技术革新;评价新技术,确定他们对软件质量和生产率的影响;将合适的新技术引入到全组织的正常实践中。
七、优化级(4)
4.过程变更管理
目标:持续的过程改进是有计划的;组织内的人员都参与组织的软件过程改进活动;组织的标准软件过程和项目定义的软件过程是不断改进的。 八、个体软件过程(1)
个体软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人
工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。 阶段计划是基于时间段的计划,产品计划是基于活动的计划。一个产品计划需要一
个阶段计划的支持。 八、个体软件过程(2)
缺陷是指程序中存在的错误,例如语法错误、标点符号错误或者是一个不正确的程
序语句,是任何影响程序完整而有效的满足用户要求的东西,是可以表示、描述和统计的客观事物。
通过缺陷分类,可以迅速找出哪一类缺陷的问题最大,然后集中精力预防和排除这一类缺陷,这就是缺陷管理的关键。PSP将缺陷分为10类。
代码复查是PSP提倡的查找缺陷的方法。在编译之前进行代码复查,是完成目标最好的方法。
九、群组软件过程(1)
在设计TSP过程时,需要遵循以下七条原则:
循序渐进的原则,首先在PSP的基础上提出一个简单的过程框架,然后逐步
完善;
迭代开发的原则,选用增量式迭代开发方法,通过几个循环开发一个产品; 质量优先的原则,对按TSP开发的软件产品,建立质量和性能的度量标准;
目标明确的原则,对实施TSP的群组及其成员的工作效果提供准确的度量; 定期评审的原则,在TSP的实施过程中,对角色和群组进行定期的评价; 过程规范的原则,对每一个项目的TSP规定明确的过程规范;
指令明确的原则,对实施TSP中可能遇到的问题提供解决问题的指南。
十、CMMI(1)
CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。
CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD)1.02版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。
CMMI 与CMM 最大的不同点在于: CMMISM-SE/SW/IPPD/SS 1.1 版本有四个集
成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可以应
用集成产品和过程开发方面(IPPD)的内容,如果涉及到供应商外包管理可以相应的应用SS(Supplier Sourcing)部分 。
十、CMMI(2
CMMI 有两种表示方法,一种是大家很熟悉的,和软件CMM 一样的阶段式表现方
法,另一种是连续式的表现方法。这两种表现方法的区别是:阶段式表现方法仍然把CMMI 中的若干个过程区域分成了5 个成熟度级别,帮助实施CMMI 的组织建议一条比较容易实现的过程改进发展道路。而连续式表现方法则通过将CMMI 中过程区域分为四大类:过程管理、项目管理、工程以及支持。对于每个大类中的过程区域,又进一步分为基本的和高级的。这样,在按照连续式表示方法实施CMMI的
时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。
十一、例题(1)
( )1. CMM2(可重复级)重点关注的是下列哪一个级别的软件过程 。 A. 个人 B. 机构 C. 项目 D. 小组 ( )2. 下面有关CMM模型的描述中,不正确的是 。 A. CMM模型定义了成熟的软件过程的实践活动 B. CMM模型提供了改进软件开发过程的结构化模型 C. CMM模型给出了适用于各种应用范围的专门技术 D. 按照CMM模型改进软件过程需要相当可观的费用 ( )3. 以下哪一个KPA不是CMM2(可重复级)关键过程域 。 A. 软件需求管理 B. 软件质量保证 C. 软件配置管理 D. 定量过程管理
( )4. 直接在测试环境中修改源代码违反了下列哪一个KPA的规定 。 A. 需求管理 B. 配置管理 C. 项目计划 D. 过程变更
( )5. 以下哪一项是实施OPF(组织过程焦点)活动的前提条件 。 A. 成立SEPG组 B. 进行同行评审
C. 制定软件项目计划 D. 识别软件工作产品
( )6. “定期地评估过程,理解过程的强项和弱项”是哪一个KPA的活动 。 A. SQA(软件质量保证) B. OPD(组织过程定义) C. OPF(组织过程焦点) D. SCM(软件配置管理) ( )7. OPF(组织过程焦点)的验证工作是由 来承担的。
A. SEPG组 B. SQA组 C. 高级管理者 D. 项目经理 ( )8. 在RUP中,关于周期(Cycle)、阶段(Phase)、迭代(Iteration)的描述错误的是 。
A. 一个周期由4个阶段构成,并产生一代软件产品 B. 每个阶段经历的时间长短可能不同
C. 每个阶段由多个迭代构成,每个迭代产生一个可运行的版本
D. 每个迭代都是一次小型的瀑布式开发,从需求分析直到测试、集成等工作都花费同样的时间
( )9.下列关于过程和软件过程的描述中不正确的是 。 A. 过程对结果的影响往往是决定性的 B. 过程是需要定义的
C. 在软件过程中,产品实现过程被称为“工程过程” D. 过程就是指完成某项任务的步骤之间的先后顺序
( )10.下列关于“软件过程管理”和“软件工程”的描述中,不正确的是 。 A. 经典的软件工程不是不好,而是不够,所以要关注软件过程
B. 软件过程管理并不属于软件工程的范畴
C. 软件工程的诞生是为了解决软件危机,然而软件工程40余年的发展并未彻底解决这个问题
D. 在软件过程管理中并不排斥对经典软件工程方法的应用 ( )11.软件开发的瀑布模型是 。 A. 适用于需求被清晰定义的情况
B. 一种需要快速构造可运行程序的好方法
C. 最适合于大规模团队开发的项目 D. 已不能用于现代环境的过时模型 ( )12.在RUP中,有一个术语叫做“制品(”Artifacts),在CMM中与之对应的术语是 。
A.模板(Templates)
B.产品(Products) C.设计集(Design Set)
D.工作产品(Work Products)
( )13.以下哪一项不是成熟的软件过程的特点 。 A. 过程可以度量
B. 过程本身受技术支持 C. 高度依赖于专业人员 D. 关注的焦点是过程改进
( )14.依靠天才的管理者管理软件开发是很多公司的做法。这种做法之所以错误的最主要的原因是 。
A. 再能干的人也有出错的时候
B. 有才华的管理者往往得不到员工的支持和配合
C. 依靠个人意味着放弃组织责任,该组织实际上已经从这个项目退出 D. 实际上并不存在天才的管理者
15. 可将过程分为 、 和
三大类。
16. RUP是一个软件过程的框架,它所使用的可视化建模语言是 。
17. 软件开发的三个要素是人、 和 ,先重视 ,后重视 ,是世界软件业发展的共同规律。
18.软件危机是指软件项目开发在 、
和 三方面出了问题。
19.用于提高 的实践通称为软件过程改进。
20.经典软件工程的一个重大贡献是防止了软件开发人员匆匆开始编码,而强调了 和
的重要性,软件过程管理的理论则为持续提高 指明了一条行之有效的道路。
21. 如果从变更的意义上讲,软件配置管理主要解决软件的变更 、变更 和变更发布的问题。
22. 软件管理工程的发展经历了 时代和 时代,正向着 时代迈进。
23.软件过程的三要素是 、 和 。
24.在RUP提倡的迭代开发中,一个周期分为4个阶段,它们是:初始阶段、 、 和 。
25. CMMI提供了 式和 式两种表示方法,这两种表示法在逻辑上是等价的。 26. CMM与CMMI的过程域相比,最大的差别是体现在第 级。
27. 在CMM/CMMI的测试策略中,使用经过 测试的部件来创建系统,使系统建立在一个相对可靠的基础之上。
( )28. 建立项目软件过程并不是SPP的任务,SDP建立在项目确定的软件过程之上。 ( )29. RUP和CMMI一样,都是定义良好的软件过程产品。
( )30. 一个没有建立在合理估计基础上的项目计划会提供一种错误的安全感,可能比根本没有计划更糟。
( )31. 同行评审的目的是为了有效地发现提交给用户的软件产品的缺陷。
( )32. 在进行软件过程评估时,尽管有些问题不属于CMM的范围,但评估过程中
发现它们时也应提交,因为评估的目的是帮助改进。
( )33. 软件缺陷不仅限于程序代码中存在的bug,还包括项目计划、需求规格说明书、设计文档、测试用例、用户手册等等中存在的错误和问题。 ( )34. SQA的目的,是使软件过程对管理人员可见。
( )35. 软件质量与组织生产力之间的关系是:低的生产力往往暗示着差的质量。 ( )36. 基线是工作产品的一个版本。因此,只要需要,在开发过程的任何时刻都可以将工作产品保存下来形成基线。
( )37. 在CMMI中,需求管理过程域被排列在需求开发过程域之后。原因是只有开发好需求,才能为需求管理奠定基础。
( )38. CMM是以瀑布开发模型为基础的,而CMMI是以迭代开发模型为基础的。 ( )39. 所谓CMM/CMMI最佳实践,大多并不是什么革命性的创新,而是将开发人员已经知晓的原则加以系统性的描述。
SPI Software Process Improvement
KPA Key Process Area
CBD Component-Based Development
因篇幅问题不能全部显示,请点此查看更多更全内容