软件过程管理复习大纲reviewlist.ppt

上传人:博****1 文档编号:570172382 上传时间:2024-08-02 格式:PPT 页数:244 大小:2.22MB
返回 下载 相关 举报
软件过程管理复习大纲reviewlist.ppt_第1页
第1页 / 共244页
软件过程管理复习大纲reviewlist.ppt_第2页
第2页 / 共244页
软件过程管理复习大纲reviewlist.ppt_第3页
第3页 / 共244页
软件过程管理复习大纲reviewlist.ppt_第4页
第4页 / 共244页
软件过程管理复习大纲reviewlist.ppt_第5页
第5页 / 共244页
点击查看更多>>
资源描述

《软件过程管理复习大纲reviewlist.ppt》由会员分享,可在线阅读,更多相关《软件过程管理复习大纲reviewlist.ppt(244页珍藏版)》请在金锄头文库上搜索。

1、fhq_赵红赵红软件过程管理软件过程管理n-Ch.1 软件过程规范软件过程规范 童先群童先群1总成绩分布总成绩分布n平时:平时:10%出勤出勤n作业:作业:30%,公式:实交作业次数,公式:实交作业次数/布置作布置作业总次数业总次数30n注:注:作业作业,课堂上完成,作为期末复习材料,课堂上完成,作为期末复习材料n期末:期末:60%2软件过程管理不当软件过程管理不当-软件危机软件危机n绝大多数软件企业长期面临绝大多数软件企业长期面临“产品质量低下、产品质量低下、进度延误、成本高昂进度延误、成本高昂”的共性问题,就像患的共性问题,就像患了恶劣的慢性病,难以根除。了恶劣的慢性病,难以根除。n196

2、9年,年,“软件危机软件危机”,数十年后,司空,数十年后,司空见惯,习以为常了。见惯,习以为常了。n软件过程管理的目的:最大限度地提高软件软件过程管理的目的:最大限度地提高软件产品的质量与软件开发过程的生产率。产品的质量与软件开发过程的生产率。5本章提纲本章提纲n1.1过程的定义过程的定义n1.2过程规范过程规范n1.3软件生命周期的过程需软件生命周期的过程需求求n1.4软件生命周期标准软件生命周期标准n1.5软件过程建模软件过程建模61.1 过程的定义过程的定义p牛津简明词典中,“过程过程”被定义为活动被定义为活动与操作的集合,与操作的集合,例如一系列的生产阶段或操作。p书氏大词典定义“过程

3、过程”是用于产生某结是用于产生某结果的一整套操作、一系列的活动、变化以及作果的一整套操作、一系列的活动、变化以及作为最终结果的功能。为最终结果的功能。pIEEE-Std-610定义“过程过程”是为完成一个特定是为完成一个特定的目标而进行的一系列操作步骤,如软件开发的目标而进行的一系列操作步骤,如软件开发过程。过程。pSEICMM 定义过程是用于软件开发及维护的过程是用于软件开发及维护的一系列活动、方法及实践。一系列活动、方法及实践。7实现、管理和支持过程之间的关系实现、管理和支持过程之间的关系n过程一般可分为实现过程、管理过程、支持过程一般可分为实现过程、管理过程、支持过程过程。8软件过程包括

4、?软件过程包括?n软件过程软件过程(softwareprocess),是人们用来,是人们用来开发和维护软件及产品的活动、方法、实践开发和维护软件及产品的活动、方法、实践和改进的集合。和改进的集合。n软件过程包括?(作业软件过程包括?(作业1)n需求分析、概要设计、详细设计、编码、测需求分析、概要设计、详细设计、编码、测试、试、n上面几点仅属于基本过程。上面几点仅属于基本过程。91.1.2 软件过程的分类和组成软件过程的分类和组成n软件基本过程(实现过程):软件获取、软件基本过程(实现过程):软件获取、供应、开发、运行和维护的过程,包括供应、开发、运行和维护的过程,包括需求分析、软件设计、编码需

5、求分析、软件设计、编码等过程。等过程。n软件支持过程:包括文档编制过程、配软件支持过程:包括文档编制过程、配置管理过程、质量保证过程、验证和确置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。认过程(测试过程)、评审过程等。n软件组织过程:对软件主要过程和支持软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。基础设施过程、改进过程和培训过程。10IEC12207软件生存周期过程软件生存周期过程国际电工委员会(国际电工委员会(International Electro technical Com

6、mission,简称,简称IEC) 11软件过程的基本组成示意图软件过程的基本组成示意图n工程过程工程过程(EngineeringProcess,ENG)n支持过程支持过程(SupportProcess,SUP)n管理过程管理过程(ManagementProcess,MAN)n组织过程组织过程(OrganizationProcess,ORG)n客户客户-供应商过程供应商过程(Customer-supplierProcess,CUS)关键关键核心核心基础基础12ISO/IEC15504软件生存周期过程软件生存周期过程基本过程基本过程组织过程组织过程5个过程并行执行个过程并行执行131.1.3 软

7、件过程定义的层次性软件过程定义的层次性p公共(通用)软件过程。公共(通用)软件过程。p组织标准软件过程。组织标准软件过程。p项目自定义的软件过程。项目自定义的软件过程。大学模型大学模型我校情况我校情况我系情况我系情况141.3 软件生命周期的过程需求软件生命周期的过程需求n1.3.1软件工程过程软件工程过程n1.3.2软件支持过程软件支持过程n1.3.3软件管理过程软件管理过程n1.3.4软件组织过程软件组织过程n1.3.5软件客户供应商的过程软件客户供应商的过程151.3.1 软件工程过程软件工程过程n工程过程是软件系统、产品的定义、设计、实现工程过程是软件系统、产品的定义、设计、实现以及维

8、护的过程。以及维护的过程。P10n开发过程:开发过程:定义并开发软件产品的活动过程,包定义并开发软件产品的活动过程,包括需求分析、软件设计(功能性与非功能性)和括需求分析、软件设计(功能性与非功能性)和编程等。编程等。n运行过程运行过程:在规定的环境中为其用户提供运行计:在规定的环境中为其用户提供运行计算机系统服务的活动过程,包括软件部署算机系统服务的活动过程,包括软件部署n维护过程维护过程:提供维护软件产品服务的活动过程,:提供维护软件产品服务的活动过程,也就是通过软件的修改、变更,使软件系统保持也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这一过程包括软件产品的移植合适的运行状

9、态,这一过程包括软件产品的移植和退役。和退役。161.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p明确如何写文档(明确如何写文档(标准标准)?写)?写什么什么文档文档(各类文档)?(各类文档)?p规定文档的内容?相关的输出规定文档的内容?相关的输出产品?产品?p根据定义的根据定义的标准标准与已确定的计与已确定的计划来编写、审查、修改和发布划来编写、审查、修改和发布所有文档。所有文档。p按已定义的按已定义的标准标准和具体的规则和具体的规则维护文档。维护文档。p文献综述、开题报告、毕业论文

10、文献综述、开题报告、毕业论文p内容及系统内容及系统p阶段性的检查阶段性的检查p答辩答辩171.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p进行进行配置管理配置管理最低要求是保最低要求是保证重要工作成果不发生混乱。证重要工作成果不发生混乱。p如果没有配置管理?最大的如果没有配置管理?最大的麻烦就是工作成果被覆盖。麻烦就是工作成果被覆盖。新的覆盖老的版本,后果?新的覆盖老的版本,后果?pCheckout/checkin,时,时间间隔?间间隔?(例:例:ghost)p如同入库出库,必须做好所

11、如同入库出库,必须做好所有记录,严格坚持出入库检有记录,严格坚持出入库检查。查。p确保配置项的完全性与一致确保配置项的完全性与一致性性。P126181.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p健康定义,古代健康定义,古代/现代?现代?p最高境界:最高境界:“零缺陷零缺陷”?pMicrosoft,航空航天,航空航天p什么时间进行?什么时间进行?p制定出计划与进度表。制定出计划与进度表。p确定有关标准、方法、规确定有关标准、方法、规程与工具,所需的资源、程与工具,所需的资源、组织及其组

12、织成员的职责。组织及其组织成员的职责。p保证各类相关的计划进度保证各类相关的计划进度保持一致保持一致。191.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p根据需要验证的工作产品所制定根据需要验证的工作产品所制定的规范(如产品规格说明书)实的规范(如产品规格说明书)实施必要的检验活动:施必要的检验活动:p有效地发现各类阶段性产品所存有效地发现各类阶段性产品所存在的缺陷,并跟踪和消除缺陷。在的缺陷,并跟踪和消除缺陷。p验证强调的是在开发过程中对工验证强调的是在开发过程中对工作产品进行检查,

13、尽早发现问题。作产品进行检查,尽早发现问题。p验证(验证(VER):保证做的对,验证):保证做的对,验证规格需求规格需求p按钮响应时间为按钮响应时间为1秒秒201.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p确认强调的是,确认强调的是,在真实的使在真实的使用环境中,确保软件能达到用环境中,确保软件能达到预期的效果。预期的效果。如:尽快发出如:尽快发出一个小版本,在实际环境中一个小版本,在实际环境中运行起来,尽快发现确认其运行起来,尽快发现确认其中的问题。中的问题。p一般来说,调试、试用

14、、验一般来说,调试、试用、验收测试等都是确认的工作。收测试等都是确认的工作。p确定(确定(VAL):保证做对的产品):保证做对的产品,属于性能,属于性能需求。需求。p大容量存储,响应时间为大容量存储,响应时间为1秒(多线程后台秒(多线程后台处理来解决这个问题处理来解决这个问题)211.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p与客户、供应商以及其他与客户、供应商以及其他利益相关方(或独立的第利益相关方(或独立的第三方)对开发的活动和产三方)对开发的活动和产品进行评估品进行评估。p为联

15、合评审的实施制定相为联合评审的实施制定相应的计划与进度,跟踪评应的计划与进度,跟踪评审活动,直至结束审活动,直至结束。221.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p判断是否与指定的需求、计判断是否与指定的需求、计划以及合同相一致划以及合同相一致。p由合适的、独立的一方来安由合适的、独立的一方来安排对产品或过程的审核工排对产品或过程的审核工作作。p以确定其是否符合特定需求以确定其是否符合特定需求231.3.2 软件支持过程软件支持过程p文档编文档编制制p配置管配置管理理p质量保质量

16、保证证p验证验证p确认确认p联合评联合评审审p审核审核p问题解问题解决决p提供及时的、有明确职责提供及时的、有明确职责的以及文档化的方式,以确的以及文档化的方式,以确保所有发现的问题都经过相保所有发现的问题都经过相应的分析并得到解决应的分析并得到解决。p提供一种相应的机制,以提供一种相应的机制,以识别所发现的问题并根据相识别所发现的问题并根据相应的趋势采取行动应的趋势采取行动。241.3.3 软件管理过程软件管理过程对其它四个过程对其它四个过程的实践活动提供的实践活动提供指导、跟踪和监指导、跟踪和监控的过程。控的过程。251.3.3 软件的管理过程软件的管理过程n项目管理过程项目管理过程是计划

17、、跟踪和协调项目执行及是计划、跟踪和协调项目执行及生产所需资源的管理过程。生产所需资源的管理过程。n立项管理是决策行为,决策是指立项管理是决策行为,决策是指“做正确的事情做正确的事情”n立项后,目标是立项后,目标是“正确地做事情正确地做事情”(正确(正确= =¥)¥)n为过程和执行制定计划,进行项目规划为过程和执行制定计划,进行项目规划(城市规划)(城市规划)n制定进度表;项目监控;成本估计;项目间接口等制定进度表;项目监控;成本估计;项目间接口等n结项管理与立项管理相对应结项管理与立项管理相对应261.3.3 软件的管理过程软件的管理过程n质量管理质量管理过程是对项目产品和服务的质量加以过程

18、是对项目产品和服务的质量加以管理,从而获得最大的客户满意度。管理,从而获得最大的客户满意度。n以客户的质量需要为基础;以客户的质量需要为基础;n定义质量度量标准并实时检查;定义质量度量标准并实时检查;n未达到质量目标要及时采取相应的措施等未达到质量目标要及时采取相应的措施等n271.3.3 软件的管理过程软件的管理过程n风险管理过程风险管理过程,在整个项目的生命周期中对风险不断,在整个项目的生命周期中对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制并在项目以及组织层次上建立有效的风险管理机

19、制n被刻画为风险的事件最终可能发生也可能不发生。人被刻画为风险的事件最终可能发生也可能不发生。人们对待风险有两种态度:们对待风险有两种态度:n被动态度(被动态度(“救火模式救火模式”)n主动态度(主动态度(“防火模式防火模式”)=风险管理属于风险管理属于“防火模式防火模式”n量化管理风险:风险严重性,风险可能性,风险量化管理风险:风险严重性,风险可能性,风险系数系数281.3.3 软件的管理过程软件的管理过程n子合同商管理过程子合同商管理过程,选择合格的子合同商并对其,选择合格的子合同商并对其进行管理的过程进行管理的过程n软件管理的四个过程?(作业软件管理的四个过程?(作业2)291.3.4

20、软件组织过程软件组织过程(全局规划全局规划)n组织过程是软件组织用来建立和实现由相关组织过程是软件组织用来建立和实现由相关的的生命周期过程生命周期过程和和人员组成的基础结构人员组成的基础结构并不并不断改进这种结构的过程。断改进这种结构的过程。n业务规划过程业务规划过程n定义过程定义过程n改进过程改进过程n人力资源和培训过程人力资源和培训过程n基础设施过程基础设施过程301.3.4 软件组织过程软件组织过程(全局规划全局规划)n业务规划过程业务规划过程是为组织与项目成员提供对远景的是为组织与项目成员提供对远景的描述以及企业文化的介绍,从而使项目成员能更描述以及企业文化的介绍,从而使项目成员能更有

21、效地工作。有效地工作。(明确保每个人都有明确定义的工(明确保每个人都有明确定义的工作)作)n定义过程定义过程是建立一个可重复使用的过程定义库,是建立一个可重复使用的过程定义库,指导其他四个过程指导其他四个过程(裁剪裁剪)n改进过程改进过程是为了满足业务变化的需要,提高过程是为了满足业务变化的需要,提高过程的效率与有效性,而对软件过程进行持续的评估、的效率与有效性,而对软件过程进行持续的评估、度量、控制和改善的过程度量、控制和改善的过程(进一步裁剪)(进一步裁剪)311.3.4 软件组织过程软件组织过程(全局规划全局规划)n人力资源和培训过程人力资源和培训过程,为项目或其它组织过,为项目或其它组

22、织过程提供培训合格的人员所需的活动程提供培训合格的人员所需的活动n基础设施过程基础设施过程是建立生存周期过程基础结构、是建立生存周期过程基础结构、为其他过程建立和维护所需基础设施的过程为其他过程建立和维护所需基础设施的过程(软件工程环境)(软件工程环境)321.3.5 软件客户供应商的过程软件客户供应商的过程n客户供应商过程是内部直接影响到客户、客户供应商过程是内部直接影响到客户、外部直接影响开发、向客户交付软件以及软外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程,包括:件正确操作与使用的过程,包括:n获取过程获取过程n客户需求管理过程客户需求管理过程n供应过程供应过程n软件操作

23、过程软件操作过程n客户支持过程客户支持过程331.3.5 软件客户供应商的过程软件客户供应商的过程n获取过程获取过程:以客户为主导的。以客户的需求为起点,以客户为主导的。以客户的需求为起点,以客户对产品或服务的认同与接受为终点。以客户对产品或服务的认同与接受为终点。n从确定需要获取的软件系统、产品或服务开始,从确定需要获取的软件系统、产品或服务开始,然后制定和发布标书、选择供方和管理获取过程,然后制定和发布标书、选择供方和管理获取过程,直到验收软件系统、产品或服务直到验收软件系统、产品或服务。n该过程的成功实施会导致最终生成一个明确的该过程的成功实施会导致最终生成一个明确的合合同或条约同或条约

24、,清楚地描述出客户与供应方的期望、,清楚地描述出客户与供应方的期望、职责与义务。职责与义务。341.3.5 软件客户供应商的过程软件客户供应商的过程客户需求管理过程客户需求管理过程:在整个软件生命周期中,:在整个软件生命周期中,针针对不断变化的客户需求加以收集、处理和跟踪对不断变化的客户需求加以收集、处理和跟踪,并建立软件需求的并建立软件需求的基准线基准线,以作为项目中软件开,以作为项目中软件开发活动过程和产品度量和变更管理的基础发活动过程和产品度量和变更管理的基础收集,处理,跟踪同样重要。收集,处理,跟踪同样重要。需求是产品的根源,需求工作的优劣对产品影响需求是产品的根源,需求工作的优劣对产

25、品影响最大。最大。(河流污染)(河流污染)351.3.5 软件客户供应商的过程软件客户供应商的过程n供应过程供应过程:按客户、事先规定的要求对软件进行:按客户、事先规定的要求对软件进行包装、发布与安装的活动过程包装、发布与安装的活动过程n确定包装、发布以及安装软件的有关要求。确定包装、发布以及安装软件的有关要求。n软件有效地被安装与使用。软件有效地被安装与使用。n软件达到需求定义中所规定的质量水平。软件达到需求定义中所规定的质量水平。361.3.5 软件客户供应商的过程软件客户供应商的过程n软件操作过程软件操作过程:n确定和管理由于引入并发操作软件而带来的操作确定和管理由于引入并发操作软件而带

26、来的操作上的风险。上的风险。n按要求的步骤和在要求的操作环境中运行软件。按要求的步骤和在要求的操作环境中运行软件。n提供操作上的技术支持,以便解决操作过程中出提供操作上的技术支持,以便解决操作过程中出现的问题现的问题n确保软件(或主机系统)有足够的能力满足用户确保软件(或主机系统)有足够的能力满足用户的需求。的需求。371.3.5 软件客户供应商的过程软件客户供应商的过程n客户支持过程:客户支持过程:基于实施情况,确定客户所需要基于实施情况,确定客户所需要的支持服务。的支持服务。n通过提供适当的服务来满足客户的需求。通过提供适当的服务来满足客户的需求。n针对客户对产品本身及其相应的支持服务的满

27、意针对客户对产品本身及其相应的支持服务的满意程度进行持续的评估程度进行持续的评估38作业作业1.软件过程包括?软件过程包括?2.软件管理的四个过程?软件管理的四个过程?3.软件项目管理包括哪几个主要管理,了解软件项目管理包括哪几个主要管理,了解项目经理的职能。(上网或查资料,要求项目经理的职能。(上网或查资料,要求写满一页)写满一页)39fhq_赵红赵红软件过程管理软件过程管理n-Ch.2 软件过程成熟度软件过程成熟度 童先群童先群40本章提纲本章提纲n2.1过程成熟度标准过程成熟度标准n2.2能力成熟度模型概述能力成熟度模型概述n2.3过程成熟度级别过程成熟度级别n2.4软件过程的可视性软件

28、过程的可视性n2.6软件过程框架软件过程框架412.1 过程成熟度标准过程成熟度标准n2.1.1软件过程不成熟的特点软件过程不成熟的特点n2.1.2软件过程成熟的标准软件过程成熟的标准n软件过程软件过程能力能力n软件过程软件过程性能性能n软件过程成熟度软件过程成熟度3个基本概念个基本概念42软件过程能力软件过程能力n软件过程能力软件过程能力:遵循软件过程后能够实现预遵循软件过程后能够实现预期结果的程度。期结果的程度。(关注预期结果)(关注预期结果)n该指标是对能力的一种衡量,用它可以预测一该指标是对能力的一种衡量,用它可以预测一个组织(企业)在承接下一个软件项目时,所个组织(企业)在承接下一个

29、软件项目时,所能期望得到的最可能的结果。能期望得到的最可能的结果。n如果能按要求完成三年的高中学习,你有能如果能按要求完成三年的高中学习,你有能力考上大学。力考上大学。43软件过程性能软件过程性能n软件过程性能:表示遵循一个软件过程后所软件过程性能:表示遵循一个软件过程后所得到的实际结果。得到的实际结果。(关注已得到的结果)(关注已得到的结果)n由于项目要求和客观环境的差异,导致预期和由于项目要求和客观环境的差异,导致预期和结果不相符合。结果不相符合。n软件过程性能不可能充分反应软件过程整体能软件过程性能不可能充分反应软件过程整体能力,即软件过程能力受限于它的环境。力,即软件过程能力受限于它的

30、环境。n如果没考上大学,不代表你的能力不行,可如果没考上大学,不代表你的能力不行,可能是其它原因引起的。能是其它原因引起的。44软件过程软件过程成熟度成熟度n是指是指一个具体的软件过程一个具体的软件过程被明确地定义、被明确地定义、管理、评价、控制和管理、评价、控制和产生实效的产生实效的程度程度。n成熟度成熟度表明了组织(企业)实施软件过程表明了组织(企业)实施软件过程的实际水平。的实际水平。n组织软件过程成熟度能力的提高组织软件过程成熟度能力的提高=n从而提高软件过程能力从而提高软件过程能力n从而使软件的质量、生产率和生产周期得到改从而使软件的质量、生产率和生产周期得到改善。善。n从而达到良好

31、的软件过程性能从而达到良好的软件过程性能452.1.2 软件过程成熟的标准软件过程成熟的标准n软件过程能力高:软件过程能力高:能达到预期结果,不断能达到预期结果,不断提高自身能力。提高自身能力。n软件过程性能可预见性软件过程性能可预见性:积累了有关过程性积累了有关过程性能的大量历史数据能的大量历史数据,对效率,成本,质量,对效率,成本,质量能做出准确的估计。能做出准确的估计。n过程的可视性过程的可视性:n软件组织的能力是已知的软件组织的能力是已知的/ /软件过程定义清晰软件过程定义清晰n过程的每个阶段进出的标准,执行的方法和规过程的每个阶段进出的标准,执行的方法和规则清楚则清楚/ /人员职责清

32、楚。人员职责清楚。n过程的稳定性过程的稳定性:有纪律的过程有纪律的过程462.1.2 软件过程成熟的标准软件过程成熟的标准n软件过程规范化软件过程规范化:过程定义、方法和规则等过程定义、方法和规则等文档化,所有过程标准化,有规则可循文档化,所有过程标准化,有规则可循。n过程的一致性过程的一致性:软件过程被正确无误地传递:软件过程被正确无误地传递到不同的团队。到不同的团队。已定义的过程是真正的标准。已定义的过程是真正的标准。n过程的丰富性过程的丰富性:各种子过程各种子过程n过程的不断改进过程的不断改进:通过可控的先导性试验和通过可控的先导性试验和成本效率分析对过程进行持续改进。(成本效率分析对过

33、程进行持续改进。(可持可持续发展续发展)472.2 能力成熟度模型概述能力成熟度模型概述n2.2.1CMM的基本内容的基本内容n2.2.2系统工程能力模型系统工程能力模型n2.2.3集成化产品开发模型集成化产品开发模型n2.2.4CMMI介绍介绍482.2.1 CMM的基本内容的基本内容P33nCMM是是软件过程软件过程能力成熟度模型能力成熟度模型(CapacityMaturityModel,CMM)的简)的简称,称,1991年正式推出了年正式推出了CMM1.0版。版。nCMM描述一条描述一条从从无序的、混乱的过程无序的、混乱的过程到到成成熟的、有纪律的过程的改进途径熟的、有纪律的过程的改进途

34、径。nCMM建立起一个标准,对照这个标准就能建立起一个标准,对照这个标准就能以可重复的方式以可重复的方式判断组织软件过程的成熟度判断组织软件过程的成熟度49CMM的起源和结构的起源和结构nCMM建立的目的建立的目的:确定成熟度,找改进策略确定成熟度,找改进策略。nCMM的起源的起源P34n内容和结构内容和结构n(缩写(缩写)50内容和结构内容和结构n每个成熟度等级由若干个关键过程域(每个成熟度等级由若干个关键过程域(KPA)组)组成成。不同的成熟度关注的过程域不同。不同的成熟度关注的过程域不同。n下一层为上一层的基础,先有物质文明,后有精下一层为上一层的基础,先有物质文明,后有精神文明。神文明

35、。n每个每个KPA用若干关键实践(用若干关键实践(KP)加以描述。)加以描述。实施实施这些关键实践,就实现了关键过程区域的目标。这些关键实践,就实现了关键过程区域的目标。(Flash中的关键帧)中的关键帧)n关键实践以关键实践以5个共同特点(个共同特点(CommonFeatures)加以组织加以组织:执行约定、执行能力、执行的活动、测执行约定、执行能力、执行的活动、测量和分析、验证实施。量和分析、验证实施。51n执行约定(执行约定(CommitmenttoPerform,简称,简称CO):企业):企业为了保证过程建立和继续起作用必须采取的一些措施。例:为了保证过程建立和继续起作用必须采取的一些

36、措施。例:建立机构策略。建立机构策略。n执行能力(执行能力(AbilitytoPerform,简称,简称AB):组织和项目):组织和项目实施软件过程的先决条件。执行能力一般指实施软件过程的先决条件。执行能力一般指提供资源提供资源、分派、分派职责和人员培训。职责和人员培训。n执行的活动(执行的活动(ActivitiesPerformed,简称,简称AC):指实施):指实施关键过程区域所必需的角色和规程。执行的活动一般包括制关键过程区域所必需的角色和规程。执行的活动一般包括制订计划和规程、订计划和规程、执行活动执行活动、跟踪与监督并在必要时采取纠正、跟踪与监督并在必要时采取纠正措施。措施。(只有此

37、条与项目执行相关只有此条与项目执行相关)n测量和分析(测量和分析(MeasurementandAnalysis,简称,简称ME):):对过程进行测量对过程进行测量和对测量结果和对测量结果进行分析进行分析。n验证实施(验证实施(VerifyingImplementation,简称,简称VE):保证):保证按照已建立的过程执行活动的步骤。例:按照已建立的过程执行活动的步骤。例:评审和审计评审和审计。52三合一三合一n十几年来,十几年来,CMM的改进工作一直不断地进的改进工作一直不断地进行。美国国防部希望把现在所有的、以及将行。美国国防部希望把现在所有的、以及将被开发出来的各种能力成熟度模型,被开发

38、出来的各种能力成熟度模型,集成集成到到一个框架中去。一个框架中去。n到到2000年,年,CMM演化成为演化成为CMMI(CapabilityMaturityModelIntegration,能力成熟度模型集成)。,能力成熟度模型集成)。nCMMI不仅适合软件,而且适合于软件硬件不仅适合软件,而且适合于软件硬件结合的系统,这是对结合的系统,这是对CMM最大的改进。最大的改进。532.2.4 CMMI介绍介绍模型学科模型学科源模型源模型软件软件 SW-CMM,草案版本,草案版本2.0系统工程系统工程 EIA/IS 731集成化产品集成化产品与过程开发与过程开发 IPD-CMM, 版本版本0.98C

39、MMI54nCMMI项目的成就之一就是在软件和系统工项目的成就之一就是在软件和系统工程之间实现了较高的集成化程序。程之间实现了较高的集成化程序。n软件和系统工程集成后产生了一个公共的过软件和系统工程集成后产生了一个公共的过程域集。程域集。552.3 过程成熟度级别过程成熟度级别n2.3.1成熟度等级的行为特征成熟度等级的行为特征n2.3.2理解成熟度等级理解成熟度等级n2.3.3成熟度等级的过程特征成熟度等级的过程特征n2.3.4CMMI过程域过程域n2.3.5CMM和和CMMI过程域的比较分析过程域的比较分析56CMM/CMMI成熟度的成熟度的5个等级个等级 572.3.1 成熟度等级的行为

40、特征成熟度等级的行为特征n初始级初始级具有明显的不成熟过程的特点具有明显的不成熟过程的特点n(1)软件过程的特点是杂乱无章,有时甚软件过程的特点是杂乱无章,有时甚至混乱,几乎没有定义过程的规则或步骤。至混乱,几乎没有定义过程的规则或步骤。所谓所谓“过程过程”,往往是,往往是“就这么干就这么干”而言。而言。n(2)开发过程中不断地出现危机,以及不开发过程中不断地出现危机,以及不断的断的“救火救火”。甚至遇到危机就。甚至遇到危机就放弃原计放弃原计划过程划过程,反复编码和测试。,反复编码和测试。n(3)偶尔成功完全依赖个人努力和杰出的偶尔成功完全依赖个人努力和杰出的专业人才,能力只是个人的特性,而不

41、是专业人才,能力只是个人的特性,而不是开发组织的特性。一旦开发组织的特性。一旦优秀人物优秀人物离去,项离去,项目就无法继续。目就无法继续。581、初始级、初始级n(4)过分的承诺过分的承诺,常作出良好的承诺:如,常作出良好的承诺:如“按照软件工程方式,有序的工程来工按照软件工程方式,有序的工程来工作作”;或达到高目标的许诺。但实际上;或达到高目标的许诺。但实际上却出现一系列问题。却出现一系列问题。n(5)软件过程是不可确定的和不可预见的软件过程是不可确定的和不可预见的。(过程是随意的)。这类组织也在开发(过程是随意的)。这类组织也在开发产品,但其成果是不稳定的,不可预见产品,但其成果是不稳定的

42、,不可预见的,不可重复的。也就是说,软件的计的,不可重复的。也就是说,软件的计划、预算、功能和产品的质量都是不可划、预算、功能和产品的质量都是不可确定和不可预见的。确定和不可预见的。n做事情(考研)要有计划,有跟踪,有做事情(考研)要有计划,有跟踪,有文档可查。文档可查。592、可重复级、可重复级/受管理级受管理级n根据多年的经验和教训,人们总结出软件根据多年的经验和教训,人们总结出软件开发的首要问题不是技术问题而是管理问开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理题。因此,第二级的焦点集中在软件管理过程上。过程上。n可重复级可重复级/受管理级受管理级建立了管理软件

43、项目建立了管理软件项目的方针和实施这些方针的规程,使软件项的方针和实施这些方针的规程,使软件项目的有效管理过程制度化,有能力去跟踪目的有效管理过程制度化,有能力去跟踪成本、进度和质量。成本、进度和质量。n一个有效过程可特征化为已文档化的、已一个有效过程可特征化为已文档化的、已实施的、可培训的和可测量的软件过程。实施的、可培训的和可测量的软件过程。达到二级证明已经进入规模开发。达到二级证明已经进入规模开发。602、可重复级、可重复级/受管理级(特征)受管理级(特征)n(1)进行较为现实的承诺,可按进行较为现实的承诺,可按以前在同类项目上的以前在同类项目上的成功经验成功经验建立的必要过程准则来建立

44、的必要过程准则来确保再一次的成功确保再一次的成功。n(2)主要是主要是逐个项目逐个项目地建立基本过程管理条例来加强地建立基本过程管理条例来加强过程能力。过程能力。n(3)建立了建立了基本的项目管理过程基本的项目管理过程来跟踪成本、进度和来跟踪成本、进度和功能。功能。n(4)管理工作管理工作主要跟踪软件经费支出、进度及功能。主要跟踪软件经费支出、进度及功能。识别在承诺方面出现的问题。识别在承诺方面出现的问题。n(5)采用采用基线基线(BASELINE)来标志进展、控制完整)来标志进展、控制完整性。性。613、已定义级、已定义级n第二级中存在的问题:第二级中存在的问题:n仅仅定义了管理的基本过程定

45、义了管理的基本过程,而没有定义执行的,而没有定义执行的步骤标准步骤标准n按项目制定软件过程,而不是总结各种项目的按项目制定软件过程,而不是总结各种项目的成功经验,使之规则化成功经验,使之规则化n已定义级包含一组协调的、集成的、适度定已定义级包含一组协调的、集成的、适度定义的义的软件工程过程和管理过程软件工程过程和管理过程,具有良好的,具有良好的文档化、标准化,使软件过程具有可视性、文档化、标准化,使软件过程具有可视性、一致性、稳定性和可重复性,软件过程被集一致性、稳定性和可重复性,软件过程被集成为一个有机的整体成为一个有机的整体623、已定义级(特征)、已定义级(特征)n(1)无论无论管理方面

46、管理方面或或工程方面工程方面的软件过程都已文件化、的软件过程都已文件化、标准化,并综合成软件开发组织的标准软件过程。标准化,并综合成软件开发组织的标准软件过程。n(2)软件过程标准被应用到软件过程标准被应用到所有的工程所有的工程中,用于编制中,用于编制和维护软件。有的项目也可根据实际情况,对软件和维护软件。有的项目也可根据实际情况,对软件开发组织的标准软件过程进行剪裁。开发组织的标准软件过程进行剪裁。n(3)在从事一项工程时,产品的生产过程、花费、计在从事一项工程时,产品的生产过程、花费、计划以及功能都是划以及功能都是可以控制的可以控制的,从而软件质量也,从而软件质量也可以可以控制控制。n(4

47、)软件工程过程组负责软件活动。软件工程过程组负责软件活动。n(5)在全组织范围内安排培训计划。在全组织范围内安排培训计划。632.3.2 理解成熟度等级理解成熟度等级nCMM是一个描述模型,或者说是一个规范。是一个描述模型,或者说是一个规范。CMM处在调试的抽象层次上,使之处在调试的抽象层次上,使之不不会过会过多多限制限制一个组织一个组织如何去实施软件过程如何去实施软件过程,而是,而是告诉一个组织应该达到的软件过程能力和框告诉一个组织应该达到的软件过程能力和框架。架。n相当于学英语时的英语大纲,告诉你应该达相当于学英语时的英语大纲,告诉你应该达到的什么水平,但不会限制你如何去学习。到的什么水平

48、,但不会限制你如何去学习。642.3.2 理解可重复级和已定义级理解可重复级和已定义级n等级等级2:可重复级:可重复级n技术问题技术问题n焦点焦点:项目管理过程、项目管理过程、项目过程自身的改进。项目过程自身的改进。n n单个项目管理过程一单个项目管理过程一单个项目管理过程一单个项目管理过程一致,为等级致,为等级致,为等级致,为等级3 3组织层一组织层一组织层一组织层一致打下基础致打下基础致打下基础致打下基础n等级等级3:已定义级已定义级n组织体系和管理问题组织体系和管理问题n焦点:全组织范围内焦点:全组织范围内过程规范化过程规范化转向转向项目规模和复杂性增长项目规模和复杂性增长654、已管理

49、级、已管理级n已管理级的软件过程是已管理级的软件过程是量化的管理过程量化的管理过程。n在上述已定义级的基础上,可以在上述已定义级的基础上,可以建立建立有关软有关软件过程和产品质量的、一致的度量件过程和产品质量的、一致的度量体系体系,采,采集详细的数据进行分析,从而对软件产品和集详细的数据进行分析,从而对软件产品和过程进行有效的过程进行有效的定量控制和管理定量控制和管理。(量化(量化控制将使软件开发真正变成为一种工业生产控制将使软件开发真正变成为一种工业生产活动活动)n第四级软件产品是高质量的。第四级软件产品是高质量的。664、已管理级(特征)、已管理级(特征)n(1)制定了软件过程和产品质量的

50、详细而具制定了软件过程和产品质量的详细而具体的度量标准,体的度量标准,软件过程软件过程和和产品质量产品质量都都可可以被理解和以被理解和控制控制。n(2)软件组织的能力是软件组织的能力是可预见可预见的,原因是软的,原因是软件过程是被明确的度量标准所度量和操作。件过程是被明确的度量标准所度量和操作。超过限制范围时,采取措施予以而使软件超过限制范围时,采取措施予以而使软件产品具有可预测的高质量。产品具有可预测的高质量。n(3)具有良好定义及一致数据库,保存收集具有良好定义及一致数据库,保存收集到的数据,可用于各项目的软件过程。到的数据,可用于各项目的软件过程。674、已管理级(需要改进的地方)、已管

51、理级(需要改进的地方)n(1)缺陷防范,不仅仅在发现了问题时能及缺陷防范,不仅仅在发现了问题时能及时改进,而且应采取特定行动防止将来出现时改进,而且应采取特定行动防止将来出现这类缺陷。这类缺陷。n(2)主动进行技术变动管理、标识、选择和主动进行技术变动管理、标识、选择和评价新技术,使有效的新技术能在开发组织评价新技术,使有效的新技术能在开发组织中施行。中施行。n(3)进行过程变动管理,定义过程改进的目进行过程变动管理,定义过程改进的目的,经常不断地进行过程改进。的,经常不断地进行过程改进。685、优化级、优化级n第五级的目标是达到第五级的目标是达到一个持续改善的境界一个持续改善的境界,所,所谓

52、持续改善是指可根据过程执行的反馈信息谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即来改善下一步的执行过程,即优化执行步骤优化执行步骤。n优化级优化级n不断改善组织的软件过程能力和项目的过程性能不断改善组织的软件过程能力和项目的过程性能n利用来自过程和来自新思想、新技术的先导性试利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使验的定量反馈信息,使持续过程改进持续过程改进成为可能。成为可能。n为了预防缺陷出现,组织有办法识别出弱点并预为了预防缺陷出现,组织有办法识别出弱点并预先针对性地加强过程先针对性地加强过程 692.3.3 成熟度等级的过程特征成熟度等级的过程特

53、征n第第4级,对软件产品的质量、开发进度和其级,对软件产品的质量、开发进度和其它开发目标进行有效的评估和预测它开发目标进行有效的评估和预测(量化(量化管理)管理)n第第5级,其焦点是级,其焦点是软件过程的持续改进软件过程的持续改进n成熟度各个级别的软件过程特征,如表成熟度各个级别的软件过程特征,如表2-2所示。所示。702.3.4 CMMI过程域过程域712.3.4 CMMI过程域过程域722.4 软件过程的可视性软件过程的可视性732.6.3 PSP/TSP和和CMM组成的软件过程框架组成的软件过程框架n个体软件过程(个体软件过程(PersonalSoftwareProcess,PSP)帮助

54、帮助软件开发团队中的软件开发团队中的个体个体-软件工程师改善其个人能力和素质软件工程师改善其个人能力和素质的组织过程的组织过程nPSP告诉软件工程师:告诉软件工程师:n如何计划要做的工作如何计划要做的工作n如何有效的按照计划来执行工作如何有效的按照计划来执行工作n如何按照计划跟踪自己的性能如何按照计划跟踪自己的性能n如何提高程序质量如何提高程序质量 74团队软件过程团队软件过程TSPn团队软件过程团队软件过程(TeamSoftwareProcess,TSP)属于团队软件开发过程:属于团队软件开发过程:n用于指导项目组中的成员用于指导项目组中的成员如何有效地规划和管如何有效地规划和管理理所面临的

55、项目开发任务所面临的项目开发任务n并且告诉管理人员并且告诉管理人员如何指导如何指导软件开发队伍。始软件开发队伍。始终以最佳状态来完成工作。终以最佳状态来完成工作。nTSP实施实施集体管理集体管理与与自己管理自己自己管理自己相结合的相结合的原则。原则。752.6.3 PSP/TSP76PSP/TSP/CMM之间的关系之间的关系PSPTSPCMM77组织的过程目标组织的过程目标 78作业作业1.举出一些具体的例子说明过程不成熟性。举出一些具体的例子说明过程不成熟性。2.通过查找资料,通过查找资料,详细详细介绍介绍CMM的第二、三、的第二、三、四、五等等级的核心过程域四、五等等级的核心过程域?3.P

56、SP/TSP/CMM之间的关系?之间的关系?79fhq_赵红赵红软件过程管理软件过程管理n-Ch.3 软件过程的组织管理软件过程的组织管理童先群童先群xq_80CMM组成组成813.1 组织过程焦点组织过程焦点n1.执行约定执行约定n2.执行能力执行能力n3.执行活动执行活动n4.测量与分析测量与分析n5.验证实施验证实施82组织过程焦点组织过程焦点-执行约定执行约定n(1)组织应该遵循一个文档化的关于协调)组织应该遵循一个文档化的关于协调软件流程的制定和改进活动的软件流程的制定和改进活动的组织方针组织方针n(2)高级管理人员高级管理人员发起发起对软件过程制定和对软件过程制定和改进的组织活动改

57、进的组织活动n(3)高级管理人员高级管理人员监督监督软件过程的制定和软件过程的制定和改进的组织活动改进的组织活动83组织过程焦点组织过程焦点-执行能力执行能力n(1)建立一个负责整个组织的软件过程活)建立一个负责整个组织的软件过程活动的动的工作组工作组n(2)为软件过程活动提供足够的)为软件过程活动提供足够的资源和资资源和资金金n(3)组织软件过程活动的组员)组织软件过程活动的组员进行培训进行培训n(4)软件工程组和其他工程组的组员接受)软件工程组和其他工程组的组员接受软件过程活动的软件过程活动的相关培训相关培训84组织过程焦点组织过程焦点-执行活动执行活动n(1)发现问题:)发现问题:定期定

58、期评估软件过程评估软件过程并根据评估并根据评估结果制订相应的更改计划结果制订相应的更改计划n(2)制定计划:)制定计划:组织组织制定制定和维护有关软件过程和维护有关软件过程和改进活动的和改进活动的计划计划n(3)改进工作:)改进工作:协调协调组织的标准软件过程和项组织的标准软件过程和项目自定义的软件过程的目自定义的软件过程的制定和改进工作制定和改进工作n(4)保存数据:)保存数据:协调组织的软件过程数据库的协调组织的软件过程数据库的使用使用85组织过程焦点组织过程焦点-执行活动执行活动n(5)尝试新方法:)尝试新方法:新新过程、新方法、新工过程、新方法、新工具的评价、监控和推广具的评价、监控和

59、推广n(6)培训:)培训:对有关组织和项目的软件过程对有关组织和项目的软件过程培训进行统一管理培训进行统一管理n(7)通知:)通知:及时将有关软件过程制定和改及时将有关软件过程制定和改进的活动进的活动通知通知与实施软件过程相关的组和人与实施软件过程相关的组和人员员86组织过程焦点组织过程焦点-评估评估n1.测量和分析测量和分析(两个比较两个比较)n每次软件过程的评估结果每次软件过程的评估结果与以往的评估结果与以往的评估结果和建议的和建议的比较比较。n已经完成的工作量以及实际消耗的资源已经完成的工作量以及实际消耗的资源与计与计划的比较划的比较。n2.实施验证实施验证(要求领导的足够重视要求领导的

60、足够重视)n评审软件过程制定和改进活动的进展状态。评审软件过程制定和改进活动的进展状态。n分析在低层次上无法解决的矛盾和问题。分析在低层次上无法解决的矛盾和问题。n各项活动的组织、实施、审核以及结果。各项活动的组织、实施、审核以及结果。n总结验证结果总结验证结果873.2 组织过程定义组织过程定义n组织过程定义:在组织层上定义软件过程。组织过程定义:在组织层上定义软件过程。(各个项目通用的过程)(各个项目通用的过程)n组织组织过程定义的过程定义的目的目的:n是开发和维护一组可用的是开发和维护一组可用的软件过程财富软件过程财富(software process assets), ,(成功经验)(

61、成功经验) n用来改进跨越用来改进跨越各个项目各个项目的过程性能,的过程性能,n为组织的长期发展奠定基础。为组织的长期发展奠定基础。88看图后,你能看图后,你能想出的软件过想出的软件过程财富是?程财富是?软件生命周期软件生命周期89组织过程定义组织过程定义-软件过程财富软件过程财富软件过程财富可用于开发、执行和维护标准软件过软件过程财富可用于开发、执行和维护标准软件过程和项目定义软件过程。软件过程财富主要包含如程和项目定义软件过程。软件过程财富主要包含如下内容:下内容:组织标准软件过程。组织标准软件过程。软件生命周期的描述。软件生命周期的描述。过程过程剪裁剪裁指南和准则。指南和准则。组织软件过

62、程数据库。组织软件过程数据库。软件过程的有关文档库。软件过程的有关文档库。902.6.3 PSP/TSP和和CMM组成的软件过程框架组成的软件过程框架n个体软件过程(个体软件过程(PersonalSoftwareProcess,PSP)帮助帮助软件开发团队中的软件开发团队中的个体个体-软件工程师改善其个人能力和素质软件工程师改善其个人能力和素质的组织过程的组织过程nPSP告诉软件工程师:告诉软件工程师:n如何计划要做的工作如何计划要做的工作n如何有效的按照计划来执行工作如何有效的按照计划来执行工作n如何按照计划跟踪自己的性能如何按照计划跟踪自己的性能n如何提高程序质量如何提高程序质量 91团队

63、软件过程团队软件过程TSPn团队软件过程团队软件过程(TeamSoftwareProcess,TSP)属于团队软件开发过程:属于团队软件开发过程:n用于指导项目组中的成员用于指导项目组中的成员如何有效地规划和管如何有效地规划和管理理所面临的项目开发任务所面临的项目开发任务n并且告诉管理人员并且告诉管理人员如何指导如何指导软件开发队伍。始软件开发队伍。始终以最佳状态来完成工作。终以最佳状态来完成工作。nTSP实施实施集体管理集体管理与与自己管理自己自己管理自己相结合的相结合的原则。原则。923.3 PSP过程框架过程框架nPSP的目的:的目的:为了改善软件工程师的开发性为了改善软件工程师的开发性

64、能能,对项目有一个比较准确的把握。,对项目有一个比较准确的把握。nPSP过程由一系列方法、表格、脚本等组成,过程由一系列方法、表格、脚本等组成,用以指导软件开发人员计划、度量和管理他用以指导软件开发人员计划、度量和管理他们的工作。们的工作。93PSP过程框架过程框架94PSP成熟度模型成熟度模型nPSP是一个具有是一个具有4个等级的成熟度框架个等级的成熟度框架。4个等级分别为个等级分别为n个体度量过程个体度量过程 PSP0/PSP0.1PSP0/PSP0.1n个体计划过程个体计划过程 PSP1/PSP1.1PSP1/PSP1.1n个体质量管理过程个体质量管理过程 PSP2/PSP2.1PSP2

65、/PSP2.1n个体循环过程个体循环过程 PSP3PSP395PSP成熟度模型成熟度模型963.5&3.6 TSP 小组软件过程小组软件过程nTSP解决的主要问题:解决的主要问题:n如何规划和管理一个软件开发团队。如何规划和管理一个软件开发团队。n如何制订团队工作所需要的策略。如何制订团队工作所需要的策略。n如何定义和确定团队中每个角色的职责。如何定义和确定团队中每个角色的职责。n如何为团队中每个成员分配不同的角色。如何为团队中每个成员分配不同的角色。n团队及其不同角色在整个开发过程的不同阶段团队及其不同角色在整个开发过程的不同阶段应该做些什么,如何更好地发挥作用。应该做些什么,如何更好地发挥

66、作用。n在如何协调团队成员之间的任务,并跟踪报告在如何协调团队成员之间的任务,并跟踪报告团队整体的任务进度。团队整体的任务进度。n采用哪些方法提高团队的协作能力。采用哪些方法提高团队的协作能力。97作业作业1.选择一门学习课程,进行选择一门学习课程,进行PSP0的时间记录的时间记录日志,以日志,以7天为周期。天为周期。2.上网查询一个好的上网查询一个好的TSP的标准,并举一具体的标准,并举一具体的的TSP启动后的例子。启动后的例子。3.介绍介绍PSP成熟度模型。成熟度模型。98fhq_赵红赵红软件过程管理软件过程管理n-Ch.4 软件过程的需求管理软件过程的需求管理99软件需求工程软件需求工程

67、100软件需求工程软件需求工程n软件需求包括三个不同的层次:软件需求包括三个不同的层次:n业务需求业务需求n用户需求用户需求n功能需求(也包括非功能需求)。功能需求(也包括非功能需求)。1011 业务需求业务需求n业务需求业务需求:是企业的发展要求,企业运行:是企业的发展要求,企业运行的思路,的思路,系统目标系统目标。n这类需求通常来自与高层这类需求通常来自与高层n从总体上描述了为什么要开发系统从总体上描述了为什么要开发系统(why),组织希望达到什么目标。,组织希望达到什么目标。n比如比如“希望实施希望实施CRMCRM后公司的客户满意度达到后公司的客户满意度达到8080以上以上”就是一条组织

68、愿景。这些最高级就是一条组织愿景。这些最高级别的需求数量很少(别的需求数量很少(2-52-5条)。条)。1022 用户需求用户需求n用户需求:用户需求:是具体的用户需要通过你的软件达到是具体的用户需要通过你的软件达到某种的目标。某种的目标。客户都会说我想怎么怎么样。客户都会说我想怎么怎么样。n是指描述用户使用产品必须要完成什么任务是指描述用户使用产品必须要完成什么任务?n用户需求描述了用户能使用系统来做些什么用户需求描述了用户能使用系统来做些什么(what),这个层次的需求是非常重要的。用户),这个层次的需求是非常重要的。用户需求层次上的需求层次上的重心重心转移到转移到如何收集用户的需求上如何

69、收集用户的需求上n需求分析是很难的,因为很多需求是隐性的,很需求分析是很难的,因为很多需求是隐性的,很难获取,更难保证需求完整,而需求又是易变的。难获取,更难保证需求完整,而需求又是易变的。1033 功能需求功能需求n功能需求:功能需求:要涉及一些需求分析了,它是对于用要涉及一些需求分析了,它是对于用户需求的户需求的具体实现具体实现。这个客户也可能不能告诉你。这个客户也可能不能告诉你应该怎么样,而要依赖你自己的设计。应该怎么样,而要依赖你自己的设计。n功能需求描述的是开发人员功能需求描述的是开发人员如何设计具体的解决如何设计具体的解决方案方案来实现这些需求(来实现这些需求(how),其数量往往

70、比用),其数量往往比用户需求高一个数量级。户需求高一个数量级。n系统分析员描述系统分析员描述开发人员在产品中实现的软件功开发人员在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需能,用户利用这些功能来完成任务,满足业务需求。求。104需求获取的方法需求获取的方法需求研讨会需求研讨会头脑风暴头脑风暴用例模型用例模型访谈访谈角色扮演角色扮演原型法原型法105需求确认需求确认-如何保证需求规格说明书的质量?如何保证需求规格说明书的质量?n正确性正确性完备性完备性易理解性易理解性一致性一致性可行性可行性健壮性健壮性易修改性易修改性易测试性和易测试性和可验证性可验证性易追溯性易追溯性兼容性兼

71、容性n开发方和用户必须对开发方和用户必须对需求规格说明书需求规格说明书进行确认进行确认n关注系统的特色功能,而忽视了其他一些不起眼但是关注系统的特色功能,而忽视了其他一些不起眼但是却必需的功能。例:却必需的功能。例:WCn前后一致,例:前后一致,例:“矛矛”“盾盾”n技术上可行,并且满足时间、费用、质量等约束。技术上可行,并且满足时间、费用、质量等约束。n例:摩天大楼的一项需求是例:摩天大楼的一项需求是“抗十二级台风抗十二级台风”106需求跟踪需求跟踪n3.需求状态需求状态l 已建议已建议该需求已被有权提出需求的人建议l 已批准已批准该需求已被分析,估计了其对项目余下部分的影响(包括成本和对项

72、目其余部分的干扰),已有一个确定的产品版本号或编号,软件开发团队已同意实现该项需求l 已实现已实现使用所选择的方法已验证了实现的需求,例如测试和检测,审查该需求跟踪与测试用例相符。该需求现在被认为完成l 已删除已删除计划的需求已被删除,并包含一个原因说明和作出删除决定的人员107需求跟踪需求跟踪u正向跟踪:正向跟踪:以用户需求为切入点,检查用户需求说明书或需求规格说明书中的每个需求是否都能在后继工作产品中找到对应点。u逆向跟踪:逆向跟踪:检查设计文档、代码、测试用例等工作产品是否都能在需求规格说明书中找到出处。u正向跟踪和逆向跟踪合称为正向跟踪和逆向跟踪合称为“双向跟踪双向跟踪”。108需求变

73、更控制流程需求变更控制流程需求的变更是不需求的变更是不可避免的,因此可避免的,因此如何有效控制需如何有效控制需求的变化对于项求的变化对于项目成功至关重要。目成功至关重要。109需求变更控制策略需求变更控制策略n(1)项目启动阶段的变更预防)项目启动阶段的变更预防n开发方与客户方达成开发方与客户方达成“事不过三事不过三”的约定的约定n(2)项目实施阶段的需求变更)项目实施阶段的需求变更n(3)项目收尾阶段的总结)项目收尾阶段的总结110需求变更控制策略需求变更控制策略n如果你是项目经理,你将如何预防客户多次如果你是项目经理,你将如何预防客户多次变更需求问题?变更需求问题?111fhq_赵红赵红软

74、件过程管理软件过程管理n-Ch.5 软件过程的技术管理软件过程的技术管理 童先群童先群xq_113本章提纲本章提纲n5.1软件过程的技术架构软件过程的技术架构n5.2软件过程的问题分析和决策方法软件过程的问题分析和决策方法n5.3软件过程的技术路线软件过程的技术路线n5.4知识传递知识传递n5.5软件过程管理工具软件过程管理工具114引言引言n复习复习软件过程软件过程分为分为哪五个过程?哪五个过程?n客户客户-供应商过程,工程过程,供应商过程,工程过程,支持过程,支持过程,管理过程,组织过程管理过程,组织过程。n为了实现软件开发的基本过程的目标,需要为了实现软件开发的基本过程的目标,需要支持过

75、程、管理过程和组织过程支持过程、管理过程和组织过程等协助。其等协助。其中,重要一点就是组织结构和技术架构的支中,重要一点就是组织结构和技术架构的支持。持。n软件过程的技术架构软件过程的技术架构主要是指主要是指用于软件工程用于软件工程过程成功实现过程成功实现与与过程改进的技术基础设施过程改进的技术基础设施。1155.1.1 过程技术架构的层次和内容过程技术架构的层次和内容层次层次内容内容116软件过程的技术架构组成软件过程的技术架构组成P1011.数据和文档的存储、检索工具数据和文档的存储、检索工具1.1.针对整个组织标准软件过程的、全局性工具针对整个组织标准软件过程的、全局性工具2.过程分析和

76、决策支持工具过程分析和决策支持工具1.1.帮助项目经理完成项目组特定的软件过程帮助项目经理完成项目组特定的软件过程3.软件过程模式软件过程模式1.1.模式是解决某个问题的通用方法。模式是解决某个问题的通用方法。4.软件过程剪裁的技术方法软件过程剪裁的技术方法5.软件过程度量和评估工具软件过程度量和评估工具117软件过程的技术架构软件过程的技术架构n软件过程的技术架构的软件过程的技术架构的一个主要目的一个主要目的就是充就是充分利用好过程中所存在的分利用好过程中所存在的各种资源各种资源。n软件过程资源软件过程资源涵盖了软件过程的各个关键过涵盖了软件过程的各个关键过程域程域。具有不同的形式。具有不同

77、的形式。P102n复习:软件过程的财富包括?复习:软件过程的财富包括?nP591185.1.2 软件过程资源的管理软件过程资源的管理1195.2 软件过程的问题分析和决策方法软件过程的问题分析和决策方法n软件过程管理中,必然会遇到各种问题,软件过程管理中,必然会遇到各种问题,如何解决?找出原因,针对问题产生的如何解决?找出原因,针对问题产生的原因进行处理,获得最终解决方案就是原因进行处理,获得最终解决方案就是一个决策过程。一个决策过程。n5.2.1过程问题解决的系统方法过程问题解决的系统方法n5.2.2原因分析和缺陷分析原因分析和缺陷分析n5.2.3决策分析与决定决策分析与决定1205.2.2

78、 原因分析和缺陷分析原因分析和缺陷分析n软件开发过程在很大程度上依赖于发现和软件开发过程在很大程度上依赖于发现和纠正缺陷的过程。纠正缺陷的过程。在开发周期的每个阶段在开发周期的每个阶段实施根本原因分析(实施根本原因分析(rootcauseanalysis),为有效开展缺陷预防活动提),为有效开展缺陷预防活动提供依据供依据。n原因分析的目的在于识别导致缺陷和其他原因分析的目的在于识别导致缺陷和其他问题的根本原因。问题的根本原因。=目的是找到根源目的是找到根源=采取措施消除根源采取措施消除根源=防止将来再次发生防止将来再次发生同类问题。同类问题。121软件中的缺陷软件中的缺陷n软件软件中的缺陷(中

79、的缺陷(Defect或或Bug)是)是软件开发软件开发过程中的过程中的“副产品副产品”。通常,缺陷会导致软。通常,缺陷会导致软件产品在某种程度上不能满足用户的需要。件产品在某种程度上不能满足用户的需要。n每一个软件组织都知道必须每一个软件组织都知道必须妥善处理妥善处理软件中软件中的缺陷。的缺陷。122如何处理?如何处理?n通过制订通过制订原因分析计划原因分析计划、选择缺陷分析数据、选择缺陷分析数据而而找出原因找出原因、实施建议措施实施建议措施、评价变更的效评价变更的效果果、记录数据等多个环节,最终完成这一活、记录数据等多个环节,最终完成这一活动动。n缺陷能够引起软件运行时产生的一种不希望缺陷能

80、够引起软件运行时产生的一种不希望或不可接受的外部行为结果,或不可接受的外部行为结果,软件测试软件测试过程过程简单说就是围绕缺陷进行的。简单说就是围绕缺陷进行的。123对缺陷的跟踪管理一般而言需要达到以下对缺陷的跟踪管理一般而言需要达到以下的目标:的目标:1.确保每个被发现的缺陷都能够被确保每个被发现的缺陷都能够被解决解决;2.解决解决:(处理方式必须能够在开发组织中达到一致处理方式必须能够在开发组织中达到一致)1.1.被被修正修正2.2.在下一个版本中修正在下一个版本中修正3.3.不修正不修正3.收集缺陷数据收集缺陷数据并根据缺陷趋势曲线识别并根据缺陷趋势曲线识别测试过程的阶段;测试过程的阶段

81、;4.收集缺陷数据收集缺陷数据并在其上进行数据分析,并在其上进行数据分析,作为组织的过程财富。作为组织的过程财富。124n蓝色缺陷蓝色缺陷越趋近于近于水平(横轴),表示产越趋近于近于水平(横轴),表示产品质量比较稳定,但不代表质量好。品质量比较稳定,但不代表质量好。n蓝色蓝色和和红色红色两条曲线可以辅助分析收敛趋势的两条曲线可以辅助分析收敛趋势的变化情况,如果发现缺陷数目大于修复缺陷数,变化情况,如果发现缺陷数目大于修复缺陷数,那么收敛趋势曲线就上扬,反之则下跌。那么收敛趋势曲线就上扬,反之则下跌。收敛趋势曲线往下跌的时候,表示产收敛趋势曲线往下跌的时候,表示产品质量在持续改善。收敛趋势曲线往

82、品质量在持续改善。收敛趋势曲线往上扬,表示产品质量在持续恶化上扬,表示产品质量在持续恶化1255.4 知识知识传递传递P118n纵向传递纵向传递是一个具有很强时间顺序性的是一个具有很强时间顺序性的接接力过程。力过程。n指指软件产品和软件产品和技术知识技术知识n从从需求分析阶段到需求分析阶段到设计阶段、设计阶段、n从从设计阶段到编程设计阶段到编程阶段、阶段、n从从开发阶段到开发阶段到维护阶段、维护阶段、n从从产品上一个版本到当前版本的知识传递过程。产品上一个版本到当前版本的知识传递过程。1265.4 知识传递知识传递n从从需求分析阶段需求分析阶段到设计阶段到设计阶段n从需求文档、产品设计规格说明

83、书转换为:从需求文档、产品设计规格说明书转换为:n分析模型、设计模型、数据模型分析模型、设计模型、数据模型n从从设计阶段到设计阶段到编程阶段编程阶段n从分析模型、设计模型、数据模型转换为:从分析模型、设计模型、数据模型转换为:n编程语言编程语言1275.4 知识传递知识传递n发布软件产品,又试图完整地复原用户的发布软件产品,又试图完整地复原用户的需求。需求。n用户需求和产品功能特性的差异,可以看做用户需求和产品功能特性的差异,可以看做是知识传递的是知识传递的失真程度失真程度,这种程度越大,产,这种程度越大,产品质量越低。品质量越低。n知识传递过程中,失真越早,在后继的过程知识传递过程中,失真越

84、早,在后继的过程中知识的失真会放大得更厉害。中知识的失真会放大得更厉害。n强调需求的意义。强调需求的意义。1285.4 知识传递知识传递n横向横向传递传递是指软件产品和技术知识在不同是指软件产品和技术知识在不同团队之间的传递过程团队之间的传递过程。n横向传递是一个实时性的过程。横向传递是一个实时性的过程。n不同产品线的开发团队之间,新老员工之间。不同产品线的开发团队之间,新老员工之间。n在软件项目团队中,在软件项目团队中,不同的角色不同的角色有不同的责任有不同的责任和特定的任务,但是一个项目的成功需要和特定的任务,但是一个项目的成功需要团团队协作队协作,需要相互之间的理解和支持,也必,需要相互

85、之间的理解和支持,也必然要求然要求不同知识不同知识的相互交流。的相互交流。129fhq_赵红赵红复习复习软件软件过程管理过程管理n-Ch.5 软件过程的技术管理软件过程的技术管理 童先群童先群xq_130引言引言n软件过程的技术架构软件过程的技术架构主要是指主要是指用于软件工程用于软件工程过程成功实现过程成功实现与与过程改进的技术基础设施过程改进的技术基础设施。n软件过程的技术架构的软件过程的技术架构的一个主要目的一个主要目的就是充就是充分利用好过程中所存在的分利用好过程中所存在的各种资源各种资源。1315.1.1 过程技术架构的层次和内容过程技术架构的层次和内容层次层次内容内容1325.1.

86、2 软件过程资源软件过程资源的内容和技术管理的内容和技术管理133n缺陷是软件开发过程的缺陷是软件开发过程的“副产品副产品”,如果出,如果出现缺陷,作为项目经理的人,对缺陷的跟踪现缺陷,作为项目经理的人,对缺陷的跟踪管理一般而言需要达到什么目标?管理一般而言需要达到什么目标?134对缺陷的跟踪管理一般而言需要达到以下对缺陷的跟踪管理一般而言需要达到以下的目标:的目标:1.确保每个被发现的缺陷都能够被确保每个被发现的缺陷都能够被解决解决;2.解决解决:(处理方式必须能够在开发组织中达到一致处理方式必须能够在开发组织中达到一致)1.1.被被修正修正2.2.在下一个版本中修正在下一个版本中修正3.3

87、.不修正不修正3.收集缺陷数据收集缺陷数据并根据缺陷趋势曲线识别并根据缺陷趋势曲线识别测试过程的阶段;测试过程的阶段;4.收集缺陷数据收集缺陷数据并在其上进行数据分析,并在其上进行数据分析,作为组织的过程财富。作为组织的过程财富。135n蓝色代表发现的缺陷,蓝色代表发现的缺陷,越越趋近于近于水平(横轴),趋近于近于水平(横轴),表示产品表示产品质量越好?质量越好?(不能不能)n收敛趋势曲线往下跌的时候,表示产品质量在持续改收敛趋势曲线往下跌的时候,表示产品质量在持续改善。收敛趋势曲线往上扬,表示产品质量在持续恶化善。收敛趋势曲线往上扬,表示产品质量在持续恶化n蓝色蓝色和和红色红色两条曲线可以辅

88、助分析收敛趋势的变化情两条曲线可以辅助分析收敛趋势的变化情况,如果发现缺陷数目大于修复缺陷数,那么收敛趋况,如果发现缺陷数目大于修复缺陷数,那么收敛趋势曲线势曲线就上扬。就上扬。1365.5.3 配置管理配置管理n配置管理的主要工作包括通过创建软件配置配置管理的主要工作包括通过创建软件配置管理库、定义配置项(包括需求、分析设计管理库、定义配置项(包括需求、分析设计模型、代码、文档、测试用例、测试数据等)模型、代码、文档、测试用例、测试数据等)以及建立和维护软件的以及建立和维护软件的基线。基线。137fhq_赵红赵红软件过程管理软件过程管理n-Ch.6 软件过程的项目管理软件过程的项目管理童先群

89、童先群xq_138软件过程的项目管理软件过程的项目管理n有效的项目管理是在用来实现项目具体目有效的项目管理是在用来实现项目具体目标的规定时间内,对组织机构资源进行计划、标的规定时间内,对组织机构资源进行计划、引导和控制工作。引导和控制工作。n项目管理知识指南项目管理知识指南139软件配置管理概念软件配置管理概念n硬件配置:硬件配置:n每种部件都需要有用于识别的编号,版本号可以每种部件都需要有用于识别的编号,版本号可以区别同类部件的不同设计。区别同类部件的不同设计。n软件配置:软件配置:n记录哪些版本,哪些构件组成了整个软件系统,记录哪些版本,哪些构件组成了整个软件系统,易变化,比硬件配置管理难

90、度大。易变化,比硬件配置管理难度大。n配置:配置:n是在是在技术文档技术文档中明确说明最终组成软件产品的功中明确说明最终组成软件产品的功能或物理属性。能或物理属性。140软件配置管理概念软件配置管理概念n配置项:配置项:n在在软件生存周期软件生存周期内所产生的各种应纳入管理范内所产生的各种应纳入管理范围的系统构成成分。围的系统构成成分。n包括各种管理文档和技术文档,源程序与目标包括各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数据等代码,以及运行所需的各种数据等n配置管理的资源对象配置管理的资源对象nP126P126表表6-16-1141软件配置管理概念软件配置管理概念n基线基线

91、n基线是基线是评审评审过的一个或多个软件配置项,每一过的一个或多个软件配置项,每一个基线都是下一步开发的个基线都是下一步开发的出发点和基础,出发点和基础,而且而且只有通过正式的变更控制流程才能被更改只有通过正式的变更控制流程才能被更改。n配置管理库配置管理库n配置管理库也称受控库,用于存储软件配置项配置管理库也称受控库,用于存储软件配置项以及相关配置管理信息。以及相关配置管理信息。142软件配置管理流程软件配置管理流程1.正常工作正常工作2.变更申请变更申请143软件配置控制软件配置控制n软件配置控制软件配置控制主要包括主要包括n存取控制:存取控制:控制存取权限,保证产品一致性控制存取权限,保

92、证产品一致性n版本控制:版本控制:记录了软件系统的中间状态。记录了软件系统的中间状态。n变更控制:变更控制:为变更提供明确的流程。经为变更提供明确的流程。经授权与授权与批准批准才能实施。才能实施。n产品发布的控制:产品发布的控制:保证了提交给客户的软件产保证了提交给客户的软件产品是完整的、正确的。品是完整的、正确的。144基线控制基线控制n基线基线是项目储存库中每个工件版本在特定时是项目储存库中每个工件版本在特定时期的一个期的一个“快照快照”。n它提供一个正式标准,随后的工作基于此标它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。准,并且只有经过授权后才能变更这个

93、标准。n建立一个初始基线后,以后每次对其进行的建立一个初始基线后,以后每次对其进行的变更都将记录为一个变更都将记录为一个差值差值,直到建成下一个,直到建成下一个基线。基线。145基线控制基线控制n基线是软件生存周期中各开发阶段末尾的特基线是软件生存周期中各开发阶段末尾的特定点,又称里程碑。定点,又称里程碑。n计划基线计划基线n需求基线需求基线n设计基线设计基线n编码基线编码基线n测试基线测试基线146基线控制基线控制147fhq_赵红赵红复习复习软件过程管理软件过程管理n-Ch.6 软件过程的项目管理软件过程的项目管理童先群童先群xq_148软件配置管理概念软件配置管理概念n基线?基线?n基线

94、是基线是评审评审过的一个或多个软件配置项,过的一个或多个软件配置项,每一个基线都是下一步开发的每一个基线都是下一步开发的出发点和基出发点和基础,础,而且只有通过正式的变更控制流程才而且只有通过正式的变更控制流程才能被更改。能被更改。n基线是软件生存周期中各开发阶段基线是软件生存周期中各开发阶段(A起始,起始,B末尾)末尾)的特定点,又称里程碑,的特定点,又称里程碑,包括:包括:n包括:包括:n 计划基线、需求基线、计划基线、需求基线、 设计基线、设计基线、 编码基线、编码基线、 测试基线测试基线149基线控制,填写下面的空缺:基线控制,填写下面的空缺:150基线控制基线控制151软件配置控制软

95、件配置控制n软件配置控制软件配置控制主要包括主要包括nA存取控制存取控制B版本控制版本控制C变更控制变更控制D产品产品发布的控制发布的控制n请说出下面几条分别属于哪种控制?请说出下面几条分别属于哪种控制?1.1.保证了提交给客户的软件产品是完整的、正保证了提交给客户的软件产品是完整的、正确的。确的。2.2.保证产品一致性保证产品一致性3.3.为变更提供明确的流程。经为变更提供明确的流程。经授权与批准授权与批准才能才能实施。实施。4.4.记录了软件系统的中间状态。记录了软件系统的中间状态。152版本控制版本控制n版本控制分为?版本控制分为?n版本的访问控制和同步控制。版本的访问控制和同步控制。n

96、下面操作是针对版本的下面操作是针对版本的A.访问控制还是访问控制还是B.同步控制同步控制1.1.检出检出/ /检入(检入(Check out/Check inCheck out/Check in)2.2.可写可写/ /可读,可写是针对真正的工作文件,而可读,可写是针对真正的工作文件,而可读,则是针对源文件的缓冲副本可读,则是针对源文件的缓冲副本153版本控制版本控制分支再合并分支再合并n版本的合并后产生的稳定版本是?版本的合并后产生的稳定版本是?将需要保护的分支锁定,打将需要保护的分支锁定,打上上Release标签标签 。在以在以Release标签标签为基线的分支上开为基线的分支上开发发1.1

97、版本。版本。版本合并:版本合并:1.1版本开发完成,版本开发完成,希望合并到基线版本中作为以希望合并到基线版本中作为以后开发新版本的基础。后开发新版本的基础。154变更控制变更控制n导致软件开发困难的一个原因就是软件的可导致软件开发困难的一个原因就是软件的可变性变性n变更控制委员会变更控制委员会(ChangeControlBoard,CCB)155变更控制变更控制1.提交提交2.接收接收3.评估评估4.决策决策5.实现实现6.验证验证7.完成完成SCM Software Configuration Management 软件配置管理. 156变更控制的变更控制的7个阶段个阶段1.提交:提交:1

98、.1.缺陷请求缺陷请求2.2.增强请求增强请求2.接收:项目接收提交的变更请求并进行跟接收:项目接收提交的变更请求并进行跟踪。踪。3.评估:评估:1.1.根据缺陷的严重程度和修复缺陷的重要性来根据缺陷的严重程度和修复缺陷的重要性来评估缺陷的优先级。评估缺陷的优先级。2.2.评估增强请求的优先级。评估增强请求的优先级。157变更控制的变更控制的7个阶段个阶段4.决策:决策:1.1.缺陷的决策与所处的阶段有关缺陷的决策与所处的阶段有关n早期,早期,将缺陷分配给开发人员,由开发人员决定做什将缺陷分配给开发人员,由开发人员决定做什么。么。n后期,后期,开发人员进行评估,开发人员进行评估,但没有决策权,

99、但没有决策权,由项目领由项目领导人的批准。导人的批准。2.2.所有的增强请求放在一起进行权衡,进行决策。所有的增强请求放在一起进行权衡,进行决策。158变更控制的变更控制的7个阶段个阶段5.实现实现1.1.修复缺陷后,变更文档。修复缺陷后,变更文档。2.2.增强请求涉及新特性或新功能。增强请求涉及新特性或新功能。6.验证:验证:1.1.缺陷:是否消除了该缺陷。缺陷:是否消除了该缺陷。2.2.增强:验证所做的变更是否满足该增强请求增强:验证所做的变更是否满足该增强请求的需要。的需要。7.完成:完成:n由提交请求的原有请求者中止这一循环过程由提交请求的原有请求者中止这一循环过程 。159变更控制变

100、更控制1.提交提交2.接收接收3.评估评估4.决策决策5.实现实现6.验证验证7.完成完成160项目规模估算的方法项目规模估算的方法n常用的规模估算方法:常用的规模估算方法:n(1)代码行方法(应用最广)代码行方法(应用最广)n(2)功能点分析方法功能点分析方法n(3)面向对象软件的对象点方法面向对象软件的对象点方法161项目成本的组成项目成本的组成P135n1.项目成本的组成项目成本的组成n(1)直接成本)直接成本n人力成本人力成本n硬件设备硬件设备n软件费用软件费用n(2)间接成本)间接成本n项目管理成本项目管理成本n一般管理成本一般管理成本162项目成本的估算方法项目成本的估算方法n(1

101、)经验估算法)经验估算法n(2)比例法)比例法n(3)工作分解结构表)工作分解结构表(WBS)n自上而下n自下而上163举例成本估算举例成本估算-人工成本:人工成本:n完成一个工作包完成一个工作包n需要:需要:2525个个/ /人天人天n平均薪水为:平均薪水为:230230元元/ /人天人天n各项福利占薪水的各项福利占薪水的40%40%n非工作时间占总工作时间的非工作时间占总工作时间的12%12%n计算此工作包的人工成本为:计算此工作包的人工成本为:n=(1+0.4+0.12)*230*25=X164举例成本估算举例成本估算设备成本设备成本n设备成本主要是设备的折旧费用:设备成本主要是设备的折

102、旧费用:n项目总历时项目总历时40天。天。n需要需要1010台服务器,单价为台服务器,单价为80008000元,预计使用元,预计使用5 5年。年。n2020台台PCPC,单价为,单价为38003800,预计使用,预计使用4 4年。年。n采用年限平均法计算天折旧率为:采用年限平均法计算天折旧率为:n设备单价设备单价/(/(使用年限使用年限* *12*30)12*30)n设备成本设备成本Y为:?为:?nY=(10*8000/(5*12*30)+20*3800/(4*12*30)*40165举例成本估算举例成本估算管理成本管理成本n项目的管理费用为所有直接成本的一定百分项目的管理费用为所有直接成本的

103、一定百分比,假设本项目为比,假设本项目为20%,则本项目的一般管,则本项目的一般管理费用理费用Z为:为:nZ=(X+Y)*20%n此项目总成本为此项目总成本为X+Y+Z166项目风险管理项目风险管理l触触发发器器l风风险险l风风险险次次序序清清单单l风风险险等等级级排排序序l概概率率分分析析l量量化化的的风风险险次次序序清清单单n风险风险识别识别n定性定性分析分析n定量定量分析分析n风险风险监控监控l纠纠正正措措施施l项项目目变变更更申申请请l计计划划更更新新167168风险识别分三步风险识别分三步n收集资料收集资料n风险形势估计风险形势估计n根据直接或间接的症状将潜在的风险识别出根据直接或间

104、接的症状将潜在的风险识别出来。来。169常用的风险识别方法常用的风险识别方法l检查单检查单l文件审核文件审核l头脑风暴头脑风暴l德尔菲法德尔菲法l访谈访谈lSWOT分析分析l图表分析图表分析170德尔菲法德尔菲法:n采用采用匿名发表意见匿名发表意见的方式,即专家之间不得的方式,即专家之间不得互相讨论,不发生横向联系,只能与调查人互相讨论,不发生横向联系,只能与调查人员联系员联系;n通过通过多轮次调查多轮次调查专家对问卷所提问题的看法,专家对问卷所提问题的看法,经过反复征询、归纳、修改,最后汇总成专经过反复征询、归纳、修改,最后汇总成专家基本一致的看法,作为预测的结果。家基本一致的看法,作为预测

105、的结果。n这种方法具有广泛的代表性,较为可靠。这种方法具有广泛的代表性,较为可靠。171SWOT分析分析nSWOT分析:是一种环境分析方法。分析:是一种环境分析方法。n优势优势(Strengths)(Strengths);n劣势劣势(Weaknesses)(Weaknesses);n竞争市场上的机会竞争市场上的机会(Opportunities)(Opportunities);n威胁威胁(Threats)(Threats)172道斯矩阵道斯矩阵S优势优势列出自身优势列出自身优势W劣势劣势具体列出弱点具体列出弱点O机会机会列出现有的机会列出现有的机会SO战略战略抓住机遇,发挥抓住机遇,发挥优势战略

106、优势战略WO战略战略利用机会,克服利用机会,克服劣势战略劣势战略T挑战挑战列出正面临的威胁列出正面临的威胁ST战略战略利用优势,减少利用优势,减少威胁战略威胁战略WT战略战略弥补缺点,规避弥补缺点,规避威胁战略威胁战略17310种常见的风险种常见的风险No.软件件风险相相应对策策1人人员不足不足录用用优秀人才;人秀人才;人员应适适应岗位需要;全面考位需要;全面考虑团队建建设;骨干人骨干人员工作要工作要协调;实施培施培训;预先安排关先安排关键人人员的使用的使用计划划2进度度计划和划和预算不准确算不准确详细评估多种估多种资源成本和源成本和进度;依成本度;依成本进行行设计;采用;采用渐增增式开式开发

107、;软件复用;件复用;纯净需求需求3开开发了了错误的的软件功能件功能进行行组织分析;分析;实施任施任务分析;分析;进行用行用户调查;开;开发原型;原型;及早及早编制用制用户手册手册4开开发了不适用的用了不适用的用户接口接口开开发原型;制作脚本;作原型;制作脚本;作业分析;弄清了用分析;弄清了用户特征特征(功能性、功能性、风格、工作格、工作负荷荷)5只追求表面效果,需求中只追求表面效果,需求中含有一些不必要的功能含有一些不必要的功能(镀金)金)纯净需求;开需求;开发原型;成本效益分析;依成本原型;成本效益分析;依成本进行行设计6需求不断需求不断变更更重大重大变更更设限;信息限;信息隐蔽;蔽;渐进式

108、开式开发7外供部件不足外供部件不足制定基准点;制定基准点;检验;参考基准;参考基准检查;兼容性分析;兼容性分析8外包任外包任务问题参考基准参考基准检查;发包前包前审核;未核;未发包合同;包合同;竞标设计或开或开发原型;建立原型;建立团队9实时性能达不到要求性能达不到要求模模拟;制定基准;建模;开;制定基准;建模;开发原型;安装原型;安装测量装置;量装置;调准准10误解解计算机科学能力算机科学能力技技术分析;成本效益分析;开分析;成本效益分析;开发原型;参考基准原型;参考基准检查174定量的风险分析定量的风险分析l量化的风险分析通常需要对事实进行更详细量化的风险分析通常需要对事实进行更详细的分析

109、,较之的分析,较之主观的风险分析主观的风险分析往往更为可靠。往往更为可靠。l主要的主要的量化量化分析方法有:分析方法有:l比率比率/范围分析范围分析l概率分析概率分析l敏感性分析敏感性分析175复习软件需求包括三个不同的层次:复习软件需求包括三个不同的层次:n三个层次三个层次1.业务需求:业务需求:2.用户需求:用户需求:3.功能需求:功能需求:n三个单词三个单词1.Why?2.What?3.How?n三类人三类人1.领导层领导层2.用户用户3.开发人员开发人员176WBS-工作分解结构工作分解结构n1项目范围规划项目范围规划n1.1确定项目范围确定项目范围n1.2获得项目所需资金获得项目所需

110、资金n1.3定义预备资源定义预备资源n1.4获得核心资源获得核心资源n1.5项目范围规划完成项目范围规划完成n2分析分析/软件需求软件需求n2.1行为需求分析行为需求分析n2.2起草初步的软件规范起草初步的软件规范n2.3制定初步预算制定初步预算n2.4工作组共同审阅软件规范工作组共同审阅软件规范/预算预算n2.5根据反馈修改软件规范根据反馈修改软件规范n2.6确定交付期限确定交付期限n2.7获得开展后续工作的批准获得开展后续工作的批准(概念、概念、期限和预算期限和预算)n2.8获得所需资源获得所需资源n2.9分析工作完成分析工作完成n3设计设计n3.1审阅初步的软件规范审阅初步的软件规范n3

111、.2制定功能规范制定功能规范n3.3根据功能规范开发原型根据功能规范开发原型n3.4审阅功能规范审阅功能规范n3.5根据反馈修改功能规范根据反馈修改功能规范n3.6获得开展后续工作的批准获得开展后续工作的批准n3.7设计工作完成设计工作完成n4开发开发n4.1审阅功能规范审阅功能规范n4.2确定模块化确定模块化/分层设计参数分层设计参数n4.3分派任务给开发人员分派任务给开发人员n4.4编写代码编写代码n4.5开发人员测试开发人员测试(初步调试初步调试)n4.6开发工作完毕开发工作完毕n177178创建创建WBS的基本法则的基本法则(学科划分学科划分)l每个工作单元在每个工作单元在WBS只能出

112、现一次只能出现一次l概要任务是对其下所有任务的总结概要任务是对其下所有任务的总结l每个每个WBS的条目都有单独的人员负责的条目都有单独的人员负责l与实际要做的工作情形保持一致与实际要做的工作情形保持一致l建立建立WBS时应让项目组员参予时应让项目组员参予l每个每个WBS条目都应备案条目都应备案lWBS既要灵活又要不失控制既要灵活又要不失控制179任务排序任务排序(学科排序)(学科排序)制定日程安排制定日程安排-项目网络图项目网络图箭线图法箭线图法( (Arrow Diagram MethodArrow Diagram Method,ADM ADM ) )或称为双代号网络图法或称为双代号网络图法

113、(Activity-On-Arrow,AOA)前导图法前导图法( (顺序图法,顺序图法,Precedence Precedence Diagramming Method, PDMDiagramming Method, PDM) )或称为单节点网络图法(或称为单节点网络图法(AON,ActivityonNode),),180箭线图法(箭线图法(ADM)1811、请找出关键路径?、请找出关键路径?2、写出各节点的最早发生时间,最迟发生时间?、写出各节点的最早发生时间,最迟发生时间?182前导图法(前导图法(PDM)183n根据上表完成此项目的前导图根据上表完成此项目的前导图(单代号网络图单代号网络

114、图),表明各活,表明各活动之间的逻辑关系,并指出关键路径和项目工期。节点用动之间的逻辑关系,并指出关键路径和项目工期。节点用以下样图标识。以下样图标识。n图例:图例:ES:最早开始时间:最早开始时间EF:最早结束时间:最早结束时间LS:最:最迟开始时间迟开始时间LF:最迟完成时间:最迟完成时间DU:工作历时:工作历时ID:工:工作代号作代号n184练习练习n请分别计算工作请分别计算工作B、C和和E的自动浮动时间。的自动浮动时间。n为了抢进度,在进行工作为了抢进度,在进行工作G时加班赶工,因时加班赶工,因此将该项工作的时间压缩了此将该项工作的时间压缩了7天天(历时历时8天天)。请指出此时的关键路

115、径,并计算工期。请指出此时的关键路径,并计算工期。185时间安排时间安排-甘特图甘特图摘要任务摘要任务:由子任务组成并对由子任务组成并对这些子任务进行汇总的任务这些子任务进行汇总的任务里程碑:实心菱形里程碑:实心菱形箭头表示依赖关系箭头表示依赖关系子任务子任务186责任矩阵责任矩阵n用距阵的形式列出对某项任务负责的人或资源。用距阵的形式列出对某项任务负责的人或资源。任务任务管理管理人员人员项目项目经理经理分析分析人员人员项目范围项目范围规划规划 1.1 确定项目范围确定项目范围A 1.2 获得项目所需资金获得项目所需资金A 1.3 定义预备资源定义预备资源A 1.4 获得核心资源获得核心资源A

116、分析分析/软件软件需求需求 2.1 行为需求分析行为需求分析A 2.2 起草初步的软件规范起草初步的软件规范A 2.3 制定初步预算制定初步预算A 2.4 工作组共同审阅软件规范工作组共同审阅软件规范/预算预算AP 2.5 根据反馈修改软件规范根据反馈修改软件规范A 2.6 确定交付期限确定交付期限A 2.7 获得开展后续工作的批准获得开展后续工作的批准AP 2.8 获得所需资源获得所需资源A187项目跟踪和控制项目跟踪和控制n1.了解成员的工作情况了解成员的工作情况n2.调整工作安排,合理利用资源调整工作安排,合理利用资源n3.促进计划内容的完善促进计划内容的完善n4.促进项目经理对人员的认

117、识促进项目经理对人员的认识n5.促进对项目工作量的估计促进对项目工作量的估计n6.统计并了解项目总体进度统计并了解项目总体进度n7.有利于人员考核有利于人员考核188项目过程的跟踪和控制项目过程的跟踪和控制n信息收集信息收集n被动接受:项目成员自动发出项目的相关信息,被动接受:项目成员自动发出项目的相关信息,项目经理在接收到之后,进行整理分析项目经理在接收到之后,进行整理分析 。n主动接受:项目经理通过各种手段主动收集项主动接受:项目经理通过各种手段主动收集项目信息。目信息。189问题分析和处理问题分析和处理n需求变动需求变动n需要遵循需求变动控制的流程。需要遵循需求变动控制的流程。n任务的实

118、际进度落后于计划进度,该如何解决?任务的实际进度落后于计划进度,该如何解决?1.1.调整工作策略,优化网络图,例如重排活动之间顺序,调整工作策略,优化网络图,例如重排活动之间顺序,压缩关键路径长度。压缩关键路径长度。2.2.增加资源增加资源1.或者使用经验丰富的员工。或者使用经验丰富的员工。2.尽可能地调配非关键路径上的资源用于关键路径上的任务。尽可能地调配非关键路径上的资源用于关键路径上的任务。3.3.赶工赶工4.4.并行并行190项目计划案例:建造地牢项目计划案例:建造地牢说明:说明:你是路易你是路易10世的俘虏。他要给自己的城堡增加三个世的俘虏。他要给自己的城堡增加三个新地牢,让你做一个

119、规划。干得好就释放,干不好新地牢,让你做一个规划。干得好就释放,干不好就终生监禁。就终生监禁。小地牢很难设计,要小地牢很难设计,要12周,但容易建成,周,但容易建成,1周即可;周即可;中地牢设计要中地牢设计要5周,施工要周,施工要6周;大地牢设计只要周;大地牢设计只要1周,周,但建造要用但建造要用9周。周。你有一个设计师和一个建筑师,设计师不会建造而你有一个设计师和一个建筑师,设计师不会建造而建筑师不会设计。建筑师不会设计。要建好这三个地牢,你规划的工期是几周?要建好这三个地牢,你规划的工期是几周?191不同的思路不同的思路设计建造地牢设计建造小地牢中地牢大地牢小地牢中地牢大地牢设计建造地牢设

120、计建造小地牢设计建造中地牢设计设计建造大地牢设计设计建造建造建造思思路路一一思思路路二二192理性的选择理性的选择n思路一的缺点:思路一的缺点:n从一开始就关注单个产品这样的细节,容易造成只见树从一开始就关注单个产品这样的细节,容易造成只见树木,不见森林木,不见森林n思路二的关键:思路二的关键:n建造可以根据设计的整体安排进行调整,要取得最佳效建造可以根据设计的整体安排进行调整,要取得最佳效果必须安排好工作的起点与排序果必须安排好工作的起点与排序193可行方案甘特图可行方案甘特图1 2 3 4 5 6 7 8 9 10111213141516 1718192021222324 周周n 尽可能让

121、某一地牢的建造在其它地牢设计的过程中进行,以达尽可能让某一地牢的建造在其它地牢设计的过程中进行,以达到节省时间的目的。到节省时间的目的。194可行方案甘特图可行方案甘特图1 2 3 4 5 6 7 8 9 10111213141516 1718192021222324 周周设计大地牢设计大地牢设计中地牢设计中地牢设计小地牢设计小地牢建造大地牢建造大地牢建造中地牢建造中地牢建造小地牢建造小地牢任务任务195可行方案甘特图可行方案甘特图1 2 3 4 5 6 7 8 9 10111213141516 1718192021222324 周周设计大地牢设计大地牢设计中地牢设计中地牢设计小地牢设计小地牢

122、建造大地牢建造大地牢建造中地牢建造中地牢建造小地牢建造小地牢任务任务196例题例题n某工厂需要生产四个部件某工厂需要生产四个部件A,B,C,D。每个部。每个部件都需要先设计完成后,才能进行加工,另件都需要先设计完成后,才能进行加工,另外,该工厂只有一个设计师和一个加工员,外,该工厂只有一个设计师和一个加工员,设计师不会加工而加工员不会设计。设计师不会加工而加工员不会设计。n设计师和加工员在设计或加工每个部件上所设计师和加工员在设计或加工每个部件上所需的工时(包括加工前的准备时间以及加工需的工时(包括加工前的准备时间以及加工后的处理时间)如下表后的处理时间)如下表197n排序规律:排序规律:n设

123、计最小的先开始设计最小的先开始n加工最小的最后结束加工最小的最后结束工时(小时)工时(小时)ABCD设计设计8466加工加工6725198n若以若以A、B、C、D零件顺序安排加工,则共需零件顺序安排加工,则共需29小时。适当调整零件加工顺序,可产生不同实施小时。适当调整零件加工顺序,可产生不同实施方案,在各种实施方案中,完成四个零件加工至方案,在各种实施方案中,完成四个零件加工至少共需要多少小时?少共需要多少小时?26BADCn请画出甘特图请画出甘特图工时(小时)工时(小时)ABCD设计设计8466加工加工6725199请写清楚自己的学号及姓名请写清楚自己的学号及姓名1、小测试、小测试n适当调

124、整零件加工顺序,可产生不同实施方案,适当调整零件加工顺序,可产生不同实施方案,在各种实施方案中,完成四个零件加工至少共需在各种实施方案中,完成四个零件加工至少共需要多少小时?(要多少小时?(10分)加工的顺序是?(分)加工的顺序是?(10分)分)n请画出甘特图(请画出甘特图(20分)分)工时(小时)工时(小时)ABCD设计设计8624加工加工313122002 2、如下图所示的网络计划图中关键路径是、如下图所示的网络计划图中关键路径是_ _ (10分)分) _,全部计划完成的时间,全部计划完成的时间是是_ _ (10分)分) _。abcdegfa3=6a1=8a2=4a4=3a5=3a6=6a

125、10=6a7=1a9=4a11=2a8=82013、软件需求包括三个不同的层次、软件需求包括三个不同的层次?(10分)分)4、变更控制的、变更控制的7个阶段?个阶段?(10分)分)5、基线是?(、基线是?(10分)。分)。6、基线控制,填写下面的空缺(、基线控制,填写下面的空缺(10分)分)202参考答案参考答案n1、n2222小时小时nCDABCDABn甘特图甘特图2032 2、如下图所示的网络计划图中关键路径是、如下图所示的网络计划图中关键路径是_abcefgabcefg_,全部计划完成的时间是,全部计划完成的时间是_24_24_。abcdegfa3=6a1=8a2=4a4=3a5=3a6

126、=6a10=6a7=1a9=4a11=2a8=8204小测试小测试3、软件需求包括三个不同的层次、软件需求包括三个不同的层次?(10分)分)1.1.业务需求:用户需求:功能需求业务需求:用户需求:功能需求4、变更控制的、变更控制的7个阶段?个阶段?(10分)分)1.1.提交、接收、评估、决策、实现、验证、完成提交、接收、评估、决策、实现、验证、完成5、基线是(、基线是(10分)分)评审评审过的一个或多个软件配置项,每一个基线都是下一步过的一个或多个软件配置项,每一个基线都是下一步开发的开发的出发点和基础,出发点和基础,而且只有通过正式的变更控制而且只有通过正式的变更控制流程才能被更改流程才能被

127、更改。2056、206变更控制的变更控制的7个阶段个阶段1.提交:在提交阶段,将对变更软件系统的提交:在提交阶段,将对变更软件系统的请求进行记录。请求进行记录。2.接收:项目接收提交的变更请求并进行跟接收:项目接收提交的变更请求并进行跟踪。踪。3.评估:浏览所有新提交的变更请求,对变评估:浏览所有新提交的变更请求,对变更影响范围和修改程度,为确定是否有必更影响范围和修改程度,为确定是否有必要进行变更提供参考依据。要进行变更提供参考依据。207变更控制的变更控制的7个阶段个阶段4.决策:决定选择实现一个变更请求。决策:决定选择实现一个变更请求。5.实现:针对不的变更给出解决方案。实现:针对不的变

128、更给出解决方案。6.验证:验证:1.1.缺陷:是否消除了该缺陷。缺陷:是否消除了该缺陷。2.2.增强:验证所做的变更是否满足该增强请求增强:验证所做的变更是否满足该增强请求的需要。的需要。7.完成:完成:n由提交请求的原有请求者中止这一循环过程由提交请求的原有请求者中止这一循环过程 。208常用的风险识别方法常用的风险识别方法l检查单检查单l文件审核文件审核l头脑风暴头脑风暴l德尔菲法德尔菲法l访谈访谈lSWOT分析分析l图表分析图表分析209德尔菲法德尔菲法:n采用采用匿名发表意见匿名发表意见的方式,即专家之间不得互相的方式,即专家之间不得互相讨论,不发生横向联系,只能与调查人员联系讨论,不

129、发生横向联系,只能与调查人员联系;n通过通过多轮次调查多轮次调查专家对问卷所提问题的看法,经专家对问卷所提问题的看法,经过反复征询、归纳、修改,最后汇总成专家基本过反复征询、归纳、修改,最后汇总成专家基本一致的看法,作为预测的结果。一致的看法,作为预测的结果。n这种方法具有广泛的代表性,较为可靠。这种方法具有广泛的代表性,较为可靠。210项目计划归纳为下面几个问题:项目计划归纳为下面几个问题:n项目计划归纳为下面几项目计划归纳为下面几个问题:个问题:n为什么做?为什么做?n做什么?做什么?n怎么做?怎么做?n什么时候做?什么时候做?n谁来做?谁来做?n对应的英文单词:对应的英文单词:nWhyn

130、WhatnHownWhennWho211项目计划项目计划n项目说明书一般已经阐述了前面两个问题,项目说明书一般已经阐述了前面两个问题,在进行到项目计划阶段,重点需要解决在进行到项目计划阶段,重点需要解决后面三个问题:后面三个问题:n怎么做?怎么做?-WBSWBSn什么时候做?什么时候做?把项目工作排序,最终制定一把项目工作排序,最终制定一个个日程表日程表。P146P146n谁来做?谁来做?根据技术和能力将人员分配到具体根据技术和能力将人员分配到具体的任务上。的任务上。任务分配矩阵任务分配矩阵212项目跟踪和控制重要性项目跟踪和控制重要性n1.了解成员的工作情况了解成员的工作情况n2.调整工作安

131、排,合理利用资源调整工作安排,合理利用资源n3.促进计划内容的完善促进计划内容的完善n4.促进项目经理对人员的认识促进项目经理对人员的认识n5.促进对项目工作量的估计促进对项目工作量的估计n6.统计并了解项目总体进度统计并了解项目总体进度n7.有利于人员考核有利于人员考核213项目过程的跟踪和控制项目过程的跟踪和控制P149n信息收集信息收集n被动接受:项目成员自动发出项目的相关信息,被动接受:项目成员自动发出项目的相关信息,项目经理在接收到项目经理在接收到之后,进行整理分析之后,进行整理分析 。n主动接受:主动接受:项目经理项目经理通过各种手段通过各种手段主动收集主动收集项项目信息。目信息。

132、n跟踪后发现问题如何解决?跟踪后发现问题如何解决?214问题分析和处理问题分析和处理P150补充补充n需求变动,应该如何处理?需求变动,应该如何处理?n需要遵循需求变动控制的流程。需要遵循需求变动控制的流程。1.提交:在提交阶段,将对变更软件系统的请求进行记录。提交:在提交阶段,将对变更软件系统的请求进行记录。2.接收:项目接收提交的变更请求并进行跟踪。接收:项目接收提交的变更请求并进行跟踪。3.评估:浏览所有新提交的变更请求,对变更影响范围和修评估:浏览所有新提交的变更请求,对变更影响范围和修改程度,为确定是否有必要进行变更提供参考依据。改程度,为确定是否有必要进行变更提供参考依据。4.决策

133、:决定选择实现一个变更请求。决策:决定选择实现一个变更请求。5.实现:针对不的变更给出解决方案。实现:针对不的变更给出解决方案。6.验证:验证:1.缺陷:是否消除了该缺陷。缺陷:是否消除了该缺陷。2.增强:验证所做的变更是否满足该增强请求的需要。增强:验证所做的变更是否满足该增强请求的需要。7.完成:完成:由提交请求的原有请求者中止这一循环过程由提交请求的原有请求者中止这一循环过程。215案例分析题案例分析题P150n如果你是项目经理,任务的实际进度落后如果你是项目经理,任务的实际进度落后于计划进度,该如何解决?于计划进度,该如何解决?1.1.调整工作策略,优化网络图,例如重排活动调整工作策略

134、,优化网络图,例如重排活动之间顺序,压缩关键路径长度。之间顺序,压缩关键路径长度。2.2.增加资源增加资源1.或者使用经验丰富的员工。或者使用经验丰富的员工。2.尽可能地调配非关键路径上的资源用于关键路径上尽可能地调配非关键路径上的资源用于关键路径上的任务。的任务。3.3.赶工赶工4.4.并行并行216fhq_赵红赵红软件过程管理软件过程管理n-Ch.7 软件过程的质量管理软件过程的质量管理217软件过程的质量管理软件过程的质量管理n产品质量是生产出来的,不是检验出来的产品质量是生产出来的,不是检验出来的。n威廉威廉戴明戴明218软件过程的质量管理软件过程的质量管理n软件的质量是软件开发软件的

135、质量是软件开发各个阶段质量各个阶段质量的综合的综合反映,因此软件的质量管理反映,因此软件的质量管理贯穿了整个软件贯穿了整个软件开发周期开发周期。n为了更好地管理软件产品质量,首先需要制为了更好地管理软件产品质量,首先需要制定项目的定项目的质量计划质量计划。然后,在软件开发的过。然后,在软件开发的过程上,需要进行程上,需要进行技术评审技术评审和和软件测试软件测试,并进,并进行行缺陷跟踪缺陷跟踪。219220质量计划质量计划n质量计划质量计划是进行项目质量管理、实现项目是进行项目质量管理、实现项目质量方针和目标的具体规划。质量方针和目标的具体规划。n质量计划是针对具体的软件开发制定的,质量计划是针

136、对具体的软件开发制定的,总体过程包括了总体过程包括了4个阶段:个阶段:1.1.计划的编制计划的编制2.2.实施实施3.3.检查调整检查调整4.4.总结总结221制定质量计划的方法和技术制定质量计划的方法和技术 n利益利益/成本分析成本分析n满足质量需求的主要的利益是减少重复性工作。满足质量需求的主要的利益是减少重复性工作。n基准基准n比较实际或计划项目的实话比较实际或计划项目的实话与其他同类项目与其他同类项目的的实施过程。实施过程。n流程图流程图n原因结果图原因结果图n系统流程图系统流程图n试验设计试验设计n在实施过程中,不断加强对质量计划执行情况在实施过程中,不断加强对质量计划执行情况的检查

137、,发现问题和及时调整。的检查,发现问题和及时调整。222软件评审软件评审n不管你有没有发现他们,缺陷总是存在,不管你有没有发现他们,缺陷总是存在,问题只是你最终发现它们时,需要多少纠正问题只是你最终发现它们时,需要多少纠正成本。评审的投入把质量成本从昂贵的、后成本。评审的投入把质量成本从昂贵的、后期返工转变为早期的缺陷发现。期返工转变为早期的缺陷发现。n卡尔卡尔威格威格223评审方法评审方法P1621.临时评审(临时评审(Adhocreview)1.1.最不正式的一种评审方法最不正式的一种评审方法2.轮查(轮查(Passroud)又称分配审查法)又称分配审查法1.1.作者将评审内容发给评审员,

138、并收集反馈意见。作者将评审内容发给评审员,并收集反馈意见。3.走查(走查(Walkthrough)1.1.作者向一组同事介绍产品,收集意见。作者占主导作者向一组同事介绍产品,收集意见。作者占主导地位。地位。4.小组评审(小组评审(GroupReview)1.1.评审是有计划的和结构化的,接近于最正式的评审评审是有计划的和结构化的,接近于最正式的评审技术。技术。5.审查(审查(Inspection)1.1.比评审更严格。比评审更严格。224评审方法评审方法P162n临时评审(临时评审(Adhocreview)n轮查(轮查(Passroud)n走查(走查(Walkthrough)n小组评审(小组评

139、审(GroupReview)n审查(审查(Inspection)最不正式最不正式最正式最正式临时评审临时评审轮查轮查走查走查小组评审小组评审审查审查225案例案例P163n各种评审方法都是交替使用的。各种评审方法都是交替使用的。n对于最可能产生风险的工作成果,要采用对于最可能产生风险的工作成果,要采用最正式的评审方法。最正式的评审方法。1.需求分析报告需要采用哪种评审需求分析报告需要采用哪种评审?2.核心代码需要采用哪种评审核心代码需要采用哪种评审?3.一般的代码需要采用哪种评审一般的代码需要采用哪种评审?nA A临时评审临时评审 B B轮查轮查nC C走查走查 D.D.小组评审或审查小组评审

140、或审查2267.4缺陷分析缺陷分析n1.缺陷每日发展趋势缺陷每日发展趋势227缺陷分析缺陷分析看图得结论看图得结论n2.缺陷分布缺陷分布不同模块的缺陷分布图不同模块的缺陷分布图不同阶段的缺陷分布图不同阶段的缺陷分布图228缺陷分析缺陷分析n2.缺陷分布缺陷分布不同级别的缺陷分布图不同级别的缺陷分布图229鱼骨图鱼骨图n鱼骨图是非常重要和也是经常使用的一种鱼骨图是非常重要和也是经常使用的一种缺陷分析方法缺陷分析方法,又称又称因果分析图因果分析图.n鱼骨图分析法是从主刺到小刺的思维鱼骨图分析法是从主刺到小刺的思维.n先找到最主要的问题先找到最主要的问题, ,分析导致此问题的因素后分析导致此问题的因

141、素后, ,再逐层递推;再逐层递推;(正向)(正向)n分析导致各个小问题的因素分析导致各个小问题的因素, ,对最小的问题提出对最小的问题提出解决方案,从而使主要的问题得到解决解决方案,从而使主要的问题得到解决. .(反向)(反向)230鱼骨图鱼骨图n采用鱼骨图进行根本原因分析时采用鱼骨图进行根本原因分析时,主要的主要的分析如下分析如下:1.1.确定问题或特性确定问题或特性2.2.确定主要问题原因的类别确定主要问题原因的类别(5M)(5M)1.人力:造成问题产生人为的因素有哪些人力:造成问题产生人为的因素有哪些2.机械:软、硬件条件对于事件的影响机械:软、硬件条件对于事件的影响3.物料:基础的准备

142、以及原材料物料:基础的准备以及原材料4.方法:与事件相关的方式与方法问题是否正确有效方法:与事件相关的方式与方法问题是否正确有效5.环境:内外部环境因素的影响环境:内外部环境因素的影响3.3.根据问题类别根据问题类别, ,确定细节原因确定细节原因231鱼骨图鱼骨图 P167232质量度量的作用质量度量的作用1.有效的沟通和改进可见性。有效的沟通和改进可见性。1.1.支持跨越组织所有级别的涉众之间的沟通支持跨越组织所有级别的涉众之间的沟通2.尽早的发现和更正问题。尽早的发现和更正问题。3.作出关键的权衡。作出关键的权衡。4.跟踪特定的项目目标跟踪特定的项目目标1.1.项目是按时间计划进行的吗?项

143、目是按时间计划进行的吗? 5.管理风险。管理风险。6.有助于决策。有助于决策。7.计划未来的项目。计划未来的项目。233度量要素度量要素n获得准确的项目进展的测量是一个永恒的获得准确的项目进展的测量是一个永恒的挑战。挑战。n团队成员所提供的状态数据,得到的结果往往是不一团队成员所提供的状态数据,得到的结果往往是不一致,不准确和难以比较的。致,不准确和难以比较的。n家长问这一学期学的怎么样?个人提供的信息往往是家长问这一学期学的怎么样?个人提供的信息往往是不准确的。不准确的。n软件度量软件度量1.1.项目度量:规模、成本、工作量、进度等项目度量:规模、成本、工作量、进度等2.2.产品度量:质量度

144、量产品度量:质量度量3.3.过程度量:成熟度、管理、生命周期等过程度量:成熟度、管理、生命周期等234基于缺陷的质量度量(基于缺陷的质量度量(when who)1.WTP:测试过程中测试过程中发现缺陷的权重发现缺陷的权重(测试(测试小组及其他小组发现的缺陷)小组及其他小组发现的缺陷)2.WF:产品:产品发布后发布后发现缺陷的权重发现缺陷的权重3.KCSI:新增加新增加的和的和修改修改的千行代码数的千行代码数4.WTTP:测试过程中测试过程中测试小组测试小组发现的缺陷权发现的缺陷权重重5.WT:测试小组测试小组发现的所有缺陷发现的所有缺陷235基于缺陷的质量度量基于缺陷的质量度量n1.代码质量度

145、量:代码质量度量:n这个质量指标的值越低,说明发现缺陷越少,这个质量指标的值越低,说明发现缺陷越少,同时说明开发小组完成的代码质量越高。同时说明开发小组完成的代码质量越高。n(W(WTP TP + + W WF F)/ KCSI)/ KCSIn2.产品质量度量:产品质量度量:n遗留给客户的缺陷的权重。遗留给客户的缺陷的权重。nW WF F/ KCSI/ KCSI236基于缺陷的质量度量基于缺陷的质量度量n3.测试改进质量度量测试改进质量度量:n测试小组发现的缺陷权重和产品规模之间的测试小组发现的缺陷权重和产品规模之间的关系。关系。nW WTTPTTP/ KCSI/ KCSIn4.测试效率度量测

146、试效率度量n测试小组发现的缺陷和产品总缺陷的关系。测试小组发现的缺陷和产品总缺陷的关系。nW WT T / (W/ (WTP TP + + W WF F) )237软件过程的评估和改进软件过程的评估和改进 n软件过程改进不是目标,而是一条漫漫软件过程改进不是目标,而是一条漫漫长路。如果你不知道身在何处长路。如果你不知道身在何处,任何地图都任何地图都与事无补。与事无补。n瓦特瓦特汉弗莱(汉弗莱(WattHumphrey)2389.1.1 软件开发组织的类型软件开发组织的类型n组织独立承担组织独立承担某项新产品的全程开发和维某项新产品的全程开发和维护,开发过程不受外部因素影响。护,开发过程不受外部

147、因素影响。n组织完成组织完成所开发的软件产品的所开发的软件产品的主体部分主体部分,但要将次要部分交给第三者完成或集成第但要将次要部分交给第三者完成或集成第三方的软件产品。三方的软件产品。n组织组织缺乏独立完成软件产品开发的能力,缺乏独立完成软件产品开发的能力,从软件承包商接受软件产品从软件承包商接受软件产品开发开发的的子项目子项目,接受指导下完成项目。接受指导下完成项目。2399.1.2 CMMI表示方法表示方法2409.2.1 过程度量的内容过程度量的内容n软件过程能力度量软件过程能力度量n需求管理和需求开发能力;需求管理和需求开发能力;n技术解决能力、因果分析能力和决策分析能力;技术解决能

148、力、因果分析能力和决策分析能力;n项目计划能力、项目监督和控制能力、合同管项目计划能力、项目监督和控制能力、合同管理能力和集成化项目管理能力;理能力和集成化项目管理能力;n质量管理能力、配置管理能力和风险管理能力;质量管理能力、配置管理能力和风险管理能力;n组织级过程定义能力、组织级培训能力、组织组织级过程定义能力、组织级培训能力、组织级改革能力和产品集成能力。级改革能力和产品集成能力。241软件过程性能的度量软件过程性能的度量242过程效率和质量度量的结合过程效率和质量度量的结合 工作量工作量(测试效率)结果(缺陷发现)高高 低低好好差差效率好/缺陷高(较好)2效率好/缺陷低(最好)1效率低/缺陷低(不确定)3效率低/缺陷高(最差)42439.2.2 过程度量的流程过程度量的流程244

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号