第章软件工程.ppt
《第章软件工程.ppt》由会员分享,可在线阅读,更多相关《第章软件工程.ppt(53页珍藏版)》请在冰豆网上搜索。
实用软件工程实用软件工程-ITIT企业软件的开发与管理企业软件的开发与管理赵池龙赵池龙2020世纪末叶世纪末叶软件产业革命软件产业革命发生在美国,标志发生在美国,标志性的事件有两件:
性的事件有两件:
1.1.微软窗口操作系统的出现;微软窗口操作系统的出现;2.CMM2.CMM能力成熟度模型的形成。
能力成熟度模型的形成。
为什么发生在美国,而不是在中国?
为什么发生在美国,而不是在中国?
这是美国的文化背景所决定的。
这是美国的文化背景所决定的。
为此,我们举一个案例、讲一个故事、为此,我们举一个案例、讲一个故事、开一个玩笑,来说明中美文化的差异。
开一个玩笑,来说明中美文化的差异。
请听:
请听:
。
第第12章章软件过程管理软件过程管理本章导读本章导读许许多多软软件件企企业业的的失失败败,归归根根结结底底都都是是管管理理的的失失败败,表表现在过程管理上的无序状态。
现在过程管理上的无序状态。
软软件件管管理理是是面面向向过过程程的的,到到底底有有哪哪些些过过程程需需要要管管理理呢呢?
回答是:
回答是:
(1)开发过程开发过程
(2)配置过程配置过程(3)维护过程维护过程(4)质量保证过程质量保证过程(5)过程管理改善过程过程管理改善过程要求要求具体内容具体内容了解了解1)“组织组织”或或“软件组织软件组织”的概念的概念2)软件过程概念)软件过程概念3)软件产品和软件工作产品的概念)软件产品和软件工作产品的概念4)软件过程能力与性能的概念)软件过程能力与性能的概念5)的成熟度提问单)的成熟度提问单6)组织的软件过程资源)组织的软件过程资源7)CMMI是是CMM的继续与发展的继续与发展理解理解1)CMMI阶段模型的五个等级阶段模型的五个等级2)CMMI阶段模型的体系结构阶段模型的体系结构3)CMMI的软件测量数据库和软件文档库的软件测量数据库和软件文档库关注关注1)CMMI的过程域的过程域PA2)CMMI的实施思路的实施思路12.1CMM/CMMI基本概念基本概念1组织组织CMM/CMMI中的中的“组织组织”或或“软件组织软件组织”,是指软件企业内部的一个软件研发部门。
该部门是指软件企业内部的一个软件研发部门。
该部门内部应有若干个项目和一个软件工程管理部门。
内部应有若干个项目和一个软件工程管理部门。
如公司的研发中心、软件中心、软件事业部,它如公司的研发中心、软件中心、软件事业部,它们均可称为们均可称为“组织组织”或或“软件组织软件组织”。
CMM/CMMI的实施和评估,不在整个软件企的实施和评估,不在整个软件企业的所有部门进行,而只需在软件企业中的某个业的所有部门进行,而只需在软件企业中的某个软件组织范围内进行。
软件组织范围内进行。
2软件过程软件过程
(1)什么是软件过程?
什么是软件过程?
一个软件过程,是指人们从开发到维护软件相关产品一个软件过程,是指人们从开发到维护软件相关产品所采取的所采取的一系列活动一系列活动。
(2)软件质量来源于什么?
软件质量来源于什么?
软件产品的质量主要取决于产品开发和维护的软件过软件产品的质量主要取决于产品开发和维护的软件过程质量。
程质量。
(3)什么样的软件过程是好过程?
什么样的软件过程是好过程?
一个一个有效的、可视的有效的、可视的软件过程是好过程。
软件过程是好过程。
从这个角度来讲,从这个角度来讲,CMMI对软件组织的作用,就是将对软件组织的作用,就是将软件过程由软件过程由不可控的黑盒过程不可控的黑盒过程,逐步变为,逐步变为可控的白盒过可控的白盒过程程。
即由黑箱操作,逐步变为白箱操作。
这种。
即由黑箱操作,逐步变为白箱操作。
这种“逐步变逐步变为为”,就是,就是“过程改善过程改善”。
3软件产品和软件工作产品软件产品和软件工作产品
(1)什么叫软件工作产品?
什么叫软件工作产品?
在在CMM/CMMI中,每一道工作程序的输出均称为中,每一道工作程序的输出均称为软软件工作产品件工作产品。
评审报告、跟踪记录等软件管理文档,也。
评审报告、跟踪记录等软件管理文档,也是软件工作产品。
是软件工作产品。
(2)什么叫基线?
什么叫基线?
里程碑上里程碑上通过通过评审评审与与批准批准后的软件工作产品一般称为后的软件工作产品一般称为基线,如用户需求报告、概要设计说明书、详细设计说基线,如用户需求报告、概要设计说明书、详细设计说明书、源代码、测试报告、用户指南等。
明书、源代码、测试报告、用户指南等。
(3)什么叫软件产品?
什么叫软件产品?
软件承包方软件承包方最终交付最终交付给客户方的软件工作产品,称为给客户方的软件工作产品,称为软件产品软件产品。
4.软件过程能力与性能软件过程能力与性能
(1)什么叫软件过程什么叫软件过程能力能力?
软件过程能力,是软件过程本身具有的软件过程能力,是软件过程本身具有的按预定计划按预定计划生产产品的固有能力。
生产产品的固有能力。
一个组织的软件过程能力,为组一个组织的软件过程能力,为组织提供了织提供了预测预测软件项目开发软件项目开发的数据基础的数据基础。
(2).什么叫软件过程什么叫软件过程性能性能?
软件过程性能是软件过程执行的软件过程性能是软件过程执行的实际结果实际结果。
一个项目的软件过程性能,决定于它内部的一个项目的软件过程性能,决定于它内部的子过程子过程执执行状态,只有每个子过程的性能得到改善,相应的成本、行状态,只有每个子过程的性能得到改善,相应的成本、进度、功能和质量等性能目标才能得到控制。
进度、功能和质量等性能目标才能得到控制。
5软件过程资源定义软件过程资源定义
(1)什么叫软件过程资源?
什么叫软件过程资源?
就是软件组织在进行软件过程改善中通过积累而得到的、用就是软件组织在进行软件过程改善中通过积累而得到的、用于指导软件项目过程的于指导软件项目过程的文档和数据文档和数据等重要信息。
等重要信息。
(2)软件过程资源有什么用?
软件过程资源有什么用?
软件过程资源能够为软件项目在制定、裁剪、维护和实施软软件过程资源能够为软件项目在制定、裁剪、维护和实施软件过程时,提供全面的件过程时,提供全面的决策指导决策指导。
(3)软件过程资源包含哪些内容?
软件过程资源包含哪些内容?
1)组织批准的软件生存周期;)组织批准的软件生存周期;2)组织的标准软件过程;)组织的标准软件过程;3)裁剪指南;)裁剪指南;4)组织的软件测量数据库;)组织的软件测量数据库;5)组织的与软件过程有关的文档库。
)组织的与软件过程有关的文档库。
6软件生存周期软件生存周期
(1)什么是软件生存周期?
什么是软件生存周期?
软件生存周期是从某软件产品开始研发到软件不软件生存周期是从某软件产品开始研发到软件不再使用为止的再使用为止的时间间隔时间间隔。
软件生存周期一般包括:
。
软件生存周期一般包括:
需求阶段、架构阶段、设计阶段、实现阶段、测试需求阶段、架构阶段、设计阶段、实现阶段、测试阶段、安装和调整阶段、运行和维护阶段,有时还阶段、安装和调整阶段、运行和维护阶段,有时还包括退役阶段。
包括退役阶段。
(2)在什么时候选择软件生存周期?
在什么时候选择软件生存周期?
在项目策划的在项目策划的初期初期,就应该确定项目所采用的软,就应该确定项目所采用的软件生存周期,目的是统筹规划项目的整体开发流程。
件生存周期,目的是统筹规划项目的整体开发流程。
7标准软件过程和裁剪指南标准软件过程和裁剪指南
(1)什么是标准软件过程?
什么是标准软件过程?
标准软件过程就是组织中所有软件开发和维护项目标准软件过程就是组织中所有软件开发和维护项目共用共用的软件过程。
它是项目定义软件过程的基础。
它保的软件过程。
它是项目定义软件过程的基础。
它保证组织过程活动的连续性,是软件过程测量和长期改进证组织过程活动的连续性,是软件过程测量和长期改进的依据。
的依据。
(2)裁剪指南有什么样作用?
裁剪指南有什么样作用?
裁剪指南则是用来指导对标准软件过程进行裁剪、裁剪指南则是用来指导对标准软件过程进行裁剪、以形成适合项目特征的软件过程。
以形成适合项目特征的软件过程。
(3)不同组织的标准软件过程是否通用?
不同组织的标准软件过程是否通用?
不能!
不能!
8软件测量数据库软件测量数据库
(1)什么是软件测量数据库?
什么是软件测量数据库?
软件测量数据库,是收集软件管理过程和软件工作软件测量数据库,是收集软件管理过程和软件工作产品的相关数据后,建立起来的软件产品的相关数据后,建立起来的软件度量度量数据库。
数据库。
(2)软件测量数据库有两个关键点:
软件测量数据库有两个关键点:
一是要明确组织一是要明确组织的的度量指标度量指标,二是要建立一个方便有效的,二是要建立一个方便有效的度量流程度量流程。
(3)测量数据库有什么用?
测量数据库有什么用?
a.参照历史数据来指导项目的策划和估计工作。
参照历史数据来指导项目的策划和估计工作。
b.参照历史数据来指导项目的监控工作。
参照历史数据来指导项目的监控工作。
c.用于评估组织的软件过程改善实施情况。
用于评估组织的软件过程改善实施情况。
9软件过程有关文档库软件过程有关文档库
(1)为什么要建立文档库?
为什么要建立文档库?
文档库主要出于两方面的考虑:
一是存储文档库主要出于两方面的考虑:
一是存储可能有用的过程文档;二是共享所存储的文可能有用的过程文档;二是共享所存储的文档。
档。
(2)文档库包括哪些内容?
文档库包括哪些内容?
通常包括组织的通常包括组织的程序文件程序文件和项目的和项目的过程文过程文档档的的优秀实例优秀实例,还可以包括一些技术资料、,还可以包括一些技术资料、产品模板或培训资料等。
产品模板或培训资料等。
12.2SW-CMM介绍介绍1软件过程成熟度及其五个等级软件过程成熟度及其五个等级定义:
定义:
软件过程成熟度,是指一个软件过程被软件过程成熟度,是指一个软件过程被明确定义、管理、度量和控制的有效程度。
明确定义、管理、度量和控制的有效程度。
SW-CMM的五个成熟度等级分别为:
的五个成熟度等级分别为:
初始级初始级(CMM1:
无序管理级:
无序管理级)可重复级可重复级(CMM2:
项目管理级:
项目管理级)已定义已定义(CMM3:
组织管理级:
组织管理级)已管理级已管理级(CMM4:
定量管理级:
定量管理级)优化级优化级(CMM5:
不断优化级:
不断优化级)等等级成熟度名称成熟度名称级别描述描述级别特点特点1初始初始级组织的的软件件过程能力程能力不可不可预测人治人治2可重复可重复级项目上的目上的经验,能,能对新新项目目进行策划和管理行策划和管理项目管理目管理级3已定已定义级定定义了了软件件过程,程,过程是程是稳定的和可重复的,定的和可重复的,并且高度可并且高度可视组织级管理,已管理,已经达到了达到了法律法律化化管理管理4已管理已管理级组织的的软件件过程能力程能力可描述可描述为可可预测的,的,软件件产品具有可品具有可预测的高的高质量量定量管理管理,定量管理管理,内部已量化管内部已量化管理理5优化化级在在优化化级,组织的的软件件过程能力可描述程能力可描述为持持续改善的改善的循循环优化和与化和与时俱俱进2关键过程域关键过程域KPACMM模型共计模型共计18个关键过程域个关键过程域KPA,52个具个具体目标,体目标,316个关键实践个关键实践KP。
所谓过程域所谓过程域KPA(KeyProcessAreas),是指,是指互相关联的若干个软件实践活动和相关设施的集互相关联的若干个软件实践活动和相关设施的集合合。
CMM中叫做关键过程域中叫做关键过程域KPA,而,而CMMI中叫中叫做过程域做过程域PA(ProcessAreas)。
它们在五个。
它们在五个等级等级中的分布情况如下表所示:
中的分布情况如下表所示:
成熟度等成熟度等级管理管理过程程组织过程程工程工程过程程5.优化化级技技术改革管理改革管理过程程优化管理化管理缺陷缺陷预防防4.4.已管理已管理级定量定量过程管理程管理软件件质量管理量管理3.己定己定义级集成集成软件管理件管理组间协同同组织过程焦点程焦点组织过程定程定义培培训大大纲软件件产品工程品工程同行同行评审2.可重复可重复级需求管理需求管理软件件项目策划目策划项目跟踪与目跟踪与监督督软件子合同