第十二章 软件工程管理_第1页
第十二章 软件工程管理_第2页
第十二章 软件工程管理_第3页
第十二章 软件工程管理_第4页
第十二章 软件工程管理_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2008 BUPT TSEG软件工程软件工程Software Engineering第十二章第十二章 软件工程管理软件工程管理黄黄 海海 2u软件项目管理软件项目管理u软件过程管理软件过程管理u软件质量管理软件质量管理u软件工程环境软件工程环境 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心312.1 12.1 软件项目管理软件项目管理1. 项目和软件项目项目和软件项目项目,是一项为了创造某一项目,是一项为了创造某一唯一唯一的产品或服务的产品或服务的的时限性时限性工作工作。其中时限性是指每一个项目都其中时限性是指每一个项目都具有明确的开始和结束时间具

2、有明确的开始和结束时间;唯一性是指该项唯一性是指该项产品或服务与同类产品或服务相比在某些方面产品或服务与同类产品或服务相比在某些方面具有显著的不同具有显著的不同。软件项目是一种成果体现为软件产品的项目软件项目是一种成果体现为软件产品的项目。它它不仅仅是成果上的唯一性工作,而且在技术不仅仅是成果上的唯一性工作,而且在技术上也有所创新,可以将其看作创新型项目上也有所创新,可以将其看作创新型项目。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心412.1 12.1 软件项目管理软件项目管理2. 项目管理一般过程项目管理一般过程项目管理就是为了满足甚至超越项目

3、干系人员项目管理就是为了满足甚至超越项目干系人员(stakeholder)对项目的需求和期望而将理论)对项目的需求和期望而将理论知识、技能、工具和技巧应用到项目的活动中知识、技能、工具和技巧应用到项目的活动中去。去。项目管理分九个知识领域项目管理分九个知识领域 综合管理综合管理范围管理范围管理时间管理时间管理 成本管理成本管理质量管理质量管理人力资源管理人力资源管理 沟通管理沟通管理风险管理风险管理采购管理采购管理 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心512.1 12.1 软件项目管理软件项目管理3. 软件项目管理过程软件项目管理过程实现项目

4、目标要受到四个因素的制约:项目范实现项目目标要受到四个因素的制约:项目范围、成本、进度和客户满意度。围、成本、进度和客户满意度。软件项目管理的对象就是软件工程项目,它所软件项目管理的对象就是软件工程项目,它所涉及的范围覆盖了整个软件工程过程,这种管涉及的范围覆盖了整个软件工程过程,这种管理开始于技术工作开始之前,在软件从概念到理开始于技术工作开始之前,在软件从概念到实现的过程中持续进行,最后终止于软件工程实现的过程中持续进行,最后终止于软件工程过程结束。过程结束。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心612.1 12.1 软件项目管理软件项目

5、管理软件项目管理基本过程软件项目管理基本过程:启动软件项目启动软件项目( (确定目标、范围确定目标、范围 ) )制定项目计划制定项目计划软件项目估算软件项目估算软件项目度量软件项目度量风险分析风险分析进度安排进度安排人员组织结构设计和部署人员组织结构设计和部署执行计划执行计划项目控制项目控制项目结束项目结束 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心712.1 12.1 软件项目管理软件项目管理4. 软件项目度量软件项目度量(1) 软件度量软件度量所谓度量,是指根据已明确的规则把数字或符号指定所谓度量,是指根据已明确的规则把数字或符号指定给现实世界

6、中实体的某一属性,以便阐述实体的某种给现实世界中实体的某一属性,以便阐述实体的某种状态。状态。软件度量涉及的范围较广,其度量实体大致划分为三软件度量涉及的范围较广,其度量实体大致划分为三大类:大类:产品产品:是指在软件开发过程中产生的各种中间产品、发布的:是指在软件开发过程中产生的各种中间产品、发布的资料和文档等资料和文档等过程过程:是与软件相关的一些活动:是与软件相关的一些活动资源资源:是指开发过程中使用的资源:是指开发过程中使用的资源软件度量就是为了获取关于这些实体属性的值。这些软件度量就是为了获取关于这些实体属性的值。这些实体的属性又划分为内部属性和外部属性实体的属性又划分为内部属性和外

7、部属性 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心812.1 12.1 软件项目管理软件项目管理 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心实体实体属性属性内部属性内部属性外部属性外部属性产品产品规格说明书规格说明书规模、可复用性、模块化、冗余、功能、规模、可复用性、模块化、冗余、功能、语法正确语法正确可理解性、可维护可理解性、可维护性性设计设计规模、可复用性、模块化、耦合、聚合、规模、可复用性、模块化、耦合、聚合、功能功能质量、复杂性、可质量、复杂性、可维护性维护性编码编码规模、可复用性、模块化、耦合

8、、功能、规模、可复用性、模块化、耦合、功能、算法复杂性、控制流、结构性算法复杂性、控制流、结构性可靠性、可用性、可靠性、可用性、可维护性可维护性测试数据测试数据规模、覆盖度规模、覆盖度质量质量过程过程编制规格说明书编制规格说明书时间、工作量、需求变动数、事件(故时间、工作量、需求变动数、事件(故障与变化)障与变化)质量、费用、稳定质量、费用、稳定性性详细设计详细设计时间、工作量、在规格说明书中找到的时间、工作量、在规格说明书中找到的缺陷数缺陷数费用、性能费用、性能/ /价格价格比比测试测试时间、工作量、找到的缺陷数时间、工作量、找到的缺陷数费用、性能费用、性能/ /价格比、价格比、稳定性稳定性

9、资源资源人员人员年龄、工资待遇年龄、工资待遇生产率、经验、智生产率、经验、智力力团队团队规模、交流活动水平、结构规模、交流活动水平、结构生产率、质量生产率、质量硬件硬件价格、速度、内存容量价格、速度、内存容量可靠性可靠性软件软件价格、规模价格、规模可用性、可靠性可用性、可靠性办公地点办公地点面积、温度、照明面积、温度、照明舒适度、质量舒适度、质量912.1 12.1 软件项目管理软件项目管理(2) 软件项目规模度量软件项目规模度量软件项目规模度量(软件项目规模度量(size measurement)的主要目的)的主要目的是为软件项目估算建立基线,是估算软件项目工作量是为软件项目估算建立基线,是

10、估算软件项目工作量、编制成本预算、策划合理项目进度的基础、编制成本预算、策划合理项目进度的基础。度量对象仍然包括软件产品、软件开发过程和软件资度量对象仍然包括软件产品、软件开发过程和软件资源源。度量的属性包括:项目投入的费用(或者称为成本)度量的属性包括:项目投入的费用(或者称为成本)、投入的人力、持续的时间;产生的代码行数、完成、投入的人力、持续的时间;产生的代码行数、完成的功能点数、发生的错误数;软件的生产率、软件质的功能点数、发生的错误数;软件的生产率、软件质量、单位成本等。量、单位成本等。两种主要的规模度量方法两种主要的规模度量方法:代码行(代码行(Lines Of Code,简称,简

11、称LOC)度量方法)度量方法功能点(功能点(Function Points,简称,简称FP)度量方法)度量方法 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心1012.1 12.1 软件项目管理软件项目管理代码行度量方法代码行度量方法 代码行指所有的可执行的源代码行数,包括可交代码行指所有的可执行的源代码行数,包括可交付的动作和控制语句、数据定义、数据类型声明付的动作和控制语句、数据定义、数据类型声明等等 简单的面向规模的生产率和质量的度量简单的面向规模的生产率和质量的度量生产率生产率KLOC工作量(人月数)工作量(人月数)质量错误数质量错误数KLOC

12、另外,还可以计算单位代码行的成本以及其他令人感兴趣的度量另外,还可以计算单位代码行的成本以及其他令人感兴趣的度量单位成本成本单位成本成本 KLOC单位文档文档页数单位文档文档页数KLOC 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心项目编码项目编码 工作量(人月)工作量(人月)成本(万元)成本(万元)KLOC文档页数文档页数错误数错误数人数人数aaa-012416.812.1365293ccc-04624427.21224865fff-034331.420.210506461112.1 12.1 软件项目管理软件项目管理功能点度量方法功能点度量方法

13、该方法将注意力集中于程序的该方法将注意力集中于程序的“功能性功能性”和和“实实用性用性”,利用有关软件数据域的一些计数度量和,利用有关软件数据域的一些计数度量和软件复杂性估计的经验关系式,导出功能点软件复杂性估计的经验关系式,导出功能点(FP),而不是对,而不是对LOC计数。计数。 功能点度量方法需要对五个数据域特征计数功能点度量方法需要对五个数据域特征计数外部输入数(外部输入数(External Input,EI)外部输出数(外部输出数(External Output,EO)外部查询数(外部查询数(External Query,EQ)内部逻辑文件数(内部逻辑文件数(Internal Logi

14、cal File,ILF)外部接口文件数(外部接口文件数(External Interface File,EIF) 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心1212.1 12.1 软件项目管理软件项目管理5. 项目进度安排项目进度安排软件项目进度安排是一种活动,它通过将工作软件项目进度安排是一种活动,它通过将工作量分配给特定的软件工程任务,从而将所估算量分配给特定的软件工程任务,从而将所估算的工作量分配到计划的项目工期内的工作量分配到计划的项目工期内项目工期的确定有两种方式项目工期的确定有两种方式 系统最终交付日期已经确定,软件开发部门必须系统最

15、终交付日期已经确定,软件开发部门必须在规定期限内完成在规定期限内完成 系统最终交付日期只确定了大致的年限,最后交系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定付日期由软件开发部门确定 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心1312.1 12.1 软件项目管理软件项目管理(1) 工作量与人数关系工作量与人数关系人月神话:人月神话:“即使进度拖后,我们也总是可以增加更即使进度拖后,我们也总是可以增加更多的程序员,并在后期跟上进度。多的程序员,并在后期跟上进度。”在项目后期增加人手通常会对项目产生破坏性的影响在项目后期增加人手通常

16、会对项目产生破坏性的影响,其结果是使进度进一步拖延。有以下原因,其结果是使进度进一步拖延。有以下原因:后期增加人员必须熟悉在开发系统,而培训他们的正是正在后期增加人员必须熟悉在开发系统,而培训他们的正是正在开发的项目成员,他们必须停下手头工作来完成培训工作,开发的项目成员,他们必须停下手头工作来完成培训工作,延缓了项目进度延缓了项目进度必须为后期增加的人员分配任务,因此,需要重新划分任务必须为后期增加的人员分配任务,因此,需要重新划分任务新增加人员参与项目后,必然增加了项目成员之间的沟通途新增加人员参与项目后,必然增加了项目成员之间的沟通途径和交流的复杂度径和交流的复杂度有人提出:软件开发项目

17、可以由多个软件开发小组组有人提出:软件开发项目可以由多个软件开发小组组成,每个开发小组的人数不能太多,以成,每个开发小组的人数不能太多,以28人左右为人左右为宜。宜。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心1412.1 12.1 软件项目管理软件项目管理(2) 工作量分配工作量分配将总体工作量分配到软件生命周期的每个开发阶段,将总体工作量分配到软件生命周期的每个开发阶段,进而分配到每个开发阶段中的开发任务中去进而分配到每个开发阶段中的开发任务中去 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心项目类型项

18、目类型阶段分配阶段分配项目规模(项目规模(KDSI)微型微型2小型小型8中型中型32大型大型128特大型特大型512组织型组织型计划与需求计划与需求设计设计编码和单元测试编码和单元测试组装与测试组装与测试10175716101753201117492311174527半独立型半独立型计划与需求计划与需求设计设计编码和单元测试编码和单元测试组装与测试组装与测试1421481715214420162240221822362419233226嵌入型嵌入型计划与需求计划与需求设计设计编码和单元测试编码和单元测试组装与测试组装与测试192439182225341924263020262626222927

19、2321基于基本基于基本COCOMO模型的工作量分配百分比表模型的工作量分配百分比表15u软件项目管理软件项目管理u软件过程管理软件过程管理u软件质量管理软件质量管理u软件工程环境软件工程环境 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心1612.2 12.2 软件过程管理软件过程管理1. 软件过程框架软件过程框架事实表明:在无规则和混乱的软件过程管理的条件下事实表明:在无规则和混乱的软件过程管理的条件下,先进的软件开发技术和方法并不能发挥应有的作用,先进的软件开发技术和方法并不能发挥应有的作用。关键问题在于。关键问题在于软件过程软件过程的管理不尽人

20、意的管理不尽人意。所谓过程是指针对一个给定目的的一系列操作步骤,所谓过程是指针对一个给定目的的一系列操作步骤,软件过程是软件生存周期中的一系列相关过程,又称软件过程是软件生存周期中的一系列相关过程,又称为软件生存周期过程,是人们用于开发和维护软件及为软件生存周期过程,是人们用于开发和维护软件及其相关产品(项目计划、设计文件、源程序、测试用其相关产品(项目计划、设计文件、源程序、测试用例、用户手册)的一系列活动、方法、实践。例、用户手册)的一系列活动、方法、实践。过程(过程(process)是活动()是活动(activity)的集合,活动是任)的集合,活动是任务(务(task)的集合,任务是将输

21、入变换为输出的动作)的集合,任务是将输入变换为输出的动作(action)。活动的执行可以是顺序的,可以是重复)。活动的执行可以是顺序的,可以是重复的,可以是并行的,也可以是嵌套的,由软件生命周的,可以是并行的,也可以是嵌套的,由软件生命周期模型组织。期模型组织。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心1712.2 12.2 软件过程管理软件过程管理通用过程框架通用过程框架一个软件过程框架一个软件过程框架(process framework)是由几个典是由几个典型的框架活动型的框架活动(framework activity)和伞形活动(和伞形活动

22、(umbrella activity)构成。)构成。框架活动是软件过程为达到过程目标必需的主要步骤框架活动是软件过程为达到过程目标必需的主要步骤,是决定软件产品如何出现而存在的重要活动。它包,是决定软件产品如何出现而存在的重要活动。它包括:一组软件工程工作任务,并指出任务完成标志(括:一组软件工程工作任务,并指出任务完成标志(里程碑),交付的工作产品(里程碑),交付的工作产品(artifact,或称工件),或称工件),以及质量保证点。以及质量保证点。一个通用的框架活动包括:一个通用的框架活动包括: 沟通沟通 规划规划 建模建模 构造构造 部署部署 2008 BUPT TSEG 北京邮电大学北京

23、邮电大学 通信软件工程中心通信软件工程中心1812.2 12.2 软件过程管理软件过程管理伞形活动是为保证高质量产品出现而存在的活动伞形活动是为保证高质量产品出现而存在的活动。它支持并保护框架活动的顺利执行,类似于框。它支持并保护框架活动的顺利执行,类似于框架活动的架活动的“保护伞保护伞”,故谓之,故谓之“伞形活动伞形活动”。典型的伞形活动包括:典型的伞形活动包括:软件项目跟踪和控制软件项目跟踪和控制风险管理风险管理软件质量保证软件质量保证正式技术评审正式技术评审软件度量软件度量软件配置管理软件配置管理可复用管理可复用管理工作产品的准备和生产工作产品的准备和生产 2008 BUPT TSEG

24、北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心1912.2 12.2 软件过程管理软件过程管理 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心每个框架活动是一些工作任务组成,每个任务又是由将输入每个框架活动是一些工作任务组成,每个任务又是由将输入变换为输出的动作组成,这些动作具有相应的操作步骤,每变换为输出的动作组成,这些动作具有相应的操作步骤,每个动作规定了相应的输入,产生相应的工作产品,并且设置个动作规定了相应的输入,产生相应的工作产品,并且设置了质量保证动作,经过质量保证的某些工作产品可能成为项了质量保证动作,经过质量保证的某些工作产

25、品可能成为项目里程碑的一部分目里程碑的一部分通用软件过程框架及框架活动组织结构通用软件过程框架及框架活动组织结构2012.2 12.2 软件过程管理软件过程管理2. 软件能力成熟度模型软件能力成熟度模型CMM(1) 软件过程能力软件过程能力软件过程不能保证软件是有质量的软件过程不能保证软件是有质量的。究其主要原究其主要原因是:软件过程模型中定义的软件过程只是名义因是:软件过程模型中定义的软件过程只是名义上的,过程的实际执行与管理等实践才是软件过上的,过程的实际执行与管理等实践才是软件过程能力的保证措施。程能力的保证措施。所谓软件过程能力(所谓软件过程能力(software process ca

26、pability)是指软件开发团队遵循某个软件过程规范后是指软件开发团队遵循某个软件过程规范后期望期望达到的结果范围。达到的结果范围。在遵循某个软件过程规范后在遵循某个软件过程规范后实际实际达到的结果称为达到的结果称为软件过程性能(软件过程性能(software process performance) 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2112.2 12.2 软件过程管理软件过程管理一个软件团队要达到软件过程能力,除了通过软一个软件团队要达到软件过程能力,除了通过软件生命周期模型规划和定义软件过程之外,还需件生命周期模型规划和定义软件过程

27、之外,还需要遵循定义好的软件过程规范进行具体实施,在要遵循定义好的软件过程规范进行具体实施,在过程实施过程中对部署的过程进行度量,发现过过程实施过程中对部署的过程进行度量,发现过程性能与过程能力偏差较大时,应该及时对过程程性能与过程能力偏差较大时,应该及时对过程进行调整,即进行过程控制,并将这些调整内容进行调整,即进行过程控制,并将这些调整内容纳入到统一的过程管理范围中纳入到统一的过程管理范围中软件过程的成熟性(软件过程的成熟性(software process maturity)就是指一个具体的软件过程被明确地定义、管理就是指一个具体的软件过程被明确地定义、管理、度量、控制和实施的程度。、度

28、量、控制和实施的程度。如何对软件过程的执行状态进行评估,如何提出如何对软件过程的执行状态进行评估,如何提出过程的改进方向和路线,这些问题就是过程的改进方向和路线,这些问题就是CMM需要需要解决的解决的 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2212.2 12.2 软件过程管理软件过程管理(2) CMM (Capability Maturity Model)卡内基梅隆大学于卡内基梅隆大学于1987年年9月提出了软件过程成熟月提出了软件过程成熟度框架,用于评估软件过程能力,评价软件组织度框架,用于评估软件过程能力,评价软件组织的软件开发能力,并于的

29、软件开发能力,并于1991年年8月提出了月提出了CMM(Capabilitiy Maturity Model)1.0版本版本。CMM基于众多软件专家的实践经验,是组织进行基于众多软件专家的实践经验,是组织进行软件软件过程改进过程改进和软件和软件过程评估过程评估的一个有效的指导的一个有效的指导框架框架。CMM模型为较全面地描述和分析软件过程能力的模型为较全面地描述和分析软件过程能力的发展程度,建立了一个描述一个软件组织的软件发展程度,建立了一个描述一个软件组织的软件过程成熟程度的过程成熟程度的分级标准分级标准。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程

30、中心2312.2 12.2 软件过程管理软件过程管理CMM模型的模型的5个成熟度等级个成熟度等级 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心利用它,软件组织可以评估自己当前的过程成熟程度,并利用它,软件组织可以评估自己当前的过程成熟程度,并通过提出更严格的软件质量标准和过程改进,来选择自己通过提出更严格的软件质量标准和过程改进,来选择自己的改进策略,以达到更高级别的成熟程度。的改进策略,以达到更高级别的成熟程度。2412.2 12.2 软件过程管理软件过程管理(3) 能力成熟度模型集成能力成熟度模型集成CMMI自自1990年起美国卡内基年起美国卡内

31、基-梅隆大学软件工程研究梅隆大学软件工程研究(SEI)所发布所发布SW-CMM V1.0以来,以来,SEI针对不同领域的要求针对不同领域的要求对对SW-CMM先后进行改进,并衍生出了一系列成熟先后进行改进,并衍生出了一系列成熟度模型。度模型。2001年年11月月SEI推出了推出了CMMI V1.1,将以上模型集成,将以上模型集成,解决了多模型之间内容的,解决了多模型之间内容的重叠重叠问题。就软件而言,问题。就软件而言,CMMI是是SW-CMM的修订本。的修订本。CMMI项目为工业界和政府部门提供了一个项目为工业界和政府部门提供了一个集成集成的产的产品集,其主要目的是消除不同模型之间的不一致和重

32、品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型的过程改进成本。复,降低基于模型的过程改进成本。CMMI将以更加系统和一致的框架来指导组织改进软将以更加系统和一致的框架来指导组织改进软件过程,提高产品和服务的开发、获取和维护能力。件过程,提高产品和服务的开发、获取和维护能力。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心25u软件项目管理软件项目管理u软件过程管理软件过程管理u软件质量管理软件质量管理u软件工程环境软件工程环境 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2612.3 12.3

33、 软件质量管理软件质量管理软件质量管理是适用于整个软件生命周期的一软件质量管理是适用于整个软件生命周期的一种伞形活动,有时也称为软件质量保证活动,种伞形活动,有时也称为软件质量保证活动,其内容包括:其内容包括: 软件质量保证(软件质量保证(Software Quality Assurance,简,简称称SQA)过程;)过程; 特定的质量保证和质量控制任务;特定的质量保证和质量控制任务; 有效的质量保证实践(方法和工具);有效的质量保证实践(方法和工具); 对所有软件工作产品及其变更的控制(软件配置对所有软件工作产品及其变更的控制(软件配置管理);管理); 保证软件开发过程符合软件开发标准的规程

34、;保证软件开发过程符合软件开发标准的规程; 软件质量度量和报告机制软件质量度量和报告机制 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2712.3 12.3 软件质量管理软件质量管理1. 软件质量软件质量ANSI/IEEE Std 729-1983定义软件质量为:定义软件质量为:“与软件产品满足规定的和隐含的需求的能力有与软件产品满足规定的和隐含的需求的能力有关的特征和特性的全体关的特征和特性的全体”。MJFisher将软件质量定义为:将软件质量定义为:“所有描所有描述计算机软件优秀程度的特性的组合述计算机软件优秀程度的特性的组合”。 2008 BU

35、PT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2812.3 12.3 软件质量管理软件质量管理2. 质量控制质量控制“质量控制(质量控制(Quality Control,简称,简称QC)”是为了保证每一件工作产品都满足对它的需求是为了保证每一件工作产品都满足对它的需求而应用于整个生命周期中的一系列审查、评审而应用于整个生命周期中的一系列审查、评审和测试。和测试。质量控制经过了一个发展过程,大致经历了检质量控制经过了一个发展过程,大致经历了检验质量管理、统计质量管理和全面质量管理三验质量管理、统计质量管理和全面质量管理三个阶段。个阶段。质量控制逐步成为软件生产中不可缺

36、少的重要质量控制逐步成为软件生产中不可缺少的重要环节,质量控制活动可以是全自动的、全人工环节,质量控制活动可以是全自动的、全人工的,也可以是自动工具与人员交互的结合。的,也可以是自动工具与人员交互的结合。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2912.3 12.3 软件质量管理软件质量管理3. 质量保证质量保证质量控制活动是否有效和完整?这个问题是通质量控制活动是否有效和完整?这个问题是通过质量保证(过质量保证(Quality Assurance,简称,简称QA)活动解决的。活动解决的。QA包括一系列审计和报告功能来评估包括一系列审计和报告功

37、能来评估QC的有的有效性和完整性,目的就是要为管理层了解产品效性和完整性,目的就是要为管理层了解产品质量提供所需的数据,从而让管理层获知产品质量提供所需的数据,从而让管理层获知产品质量是否符合预定目标。质量是否符合预定目标。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心3012.3 12.3 软件质量管理软件质量管理4. 软件质量度量与评价软件质量度量与评价(1) 软件质量度量方法软件质量度量方法预测(预测(predictive)度量)度量:利用定量的或定性的方法,利用定量的或定性的方法,对软件质量的评价值进行估计,以得到软件质量的比对软件质量的评价

38、值进行估计,以得到软件质量的比较精确的估算值较精确的估算值。它是用在软件开发过程中的它是用在软件开发过程中的。尺度度量,这是一种定量度量。它适用于一些能够直接度量尺度度量,这是一种定量度量。它适用于一些能够直接度量的特性,例如:出错率定义为:错误数的特性,例如:出错率定义为:错误数/KLOC/单位时间单位时间二元度量,这是一种定性度量。它适用于一些只能间接度量二元度量,这是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。的特性,例如,可使用性、灵活性等等。验收(验收(acceptance)度量)度量:在软件开发各阶段的检查在软件开发各阶段的检查点,对软件要求的质量进行

39、确认性检查而得到的具体点,对软件要求的质量进行确认性检查而得到的具体评价值评价值,它可以看成是对预测度量的一种确认,是对它可以看成是对预测度量的一种确认,是对开发过程中的预测质量进行评价开发过程中的预测质量进行评价。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心3112.3 12.3 软件质量管理软件质量管理 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心评价准则评价准则度量度量需求需求设计设计编码编码是是/否否值值是是/否否值值是是/否否值值程序复杂性程序复杂性每 一 模 块 的 复 杂 度每 一 模 块

40、的 复 杂 度(McCabe)系统复杂性度量各模块复系统复杂性度量各模块复杂性度量之和杂性度量之和/系统模块数系统模块数设计文档的完备性设计文档的完备性 无二义性引用(输入无二义性引用(输入/处处理理/输出)输出) 所有数据引用都可以从所有数据引用都可以从一个外部源定义、计算和获一个外部源定义、计算和获取。取。 所有定义的功能都被使所有定义的功能都被使用用 所有使用的功能都被定所有使用的功能都被定义义 对每一个判定点,所有对每一个判定点,所有的条件和处理都已被定义的条件和处理都已被定义 所有被定义、被引用的所有被定义、被引用的调用序列的参数一致调用序列的参数一致质量特性检查表质量特性检查表32

41、12.3 12.3 软件质量管理软件质量管理(2) 软件质量评价方法软件质量评价方法一般采用一般采用delphi方法,由若干(方法,由若干(610)位富有实际经)位富有实际经验的软件专家进行打分来评价验的软件专家进行打分来评价评价分两步走评价分两步走:评分:针对系统、子系统或者模块,对每一阶段要达到的质评分:针对系统、子系统或者模块,对每一阶段要达到的质量指标(质量特性目标值或基准)详细建立度量工作表,以量指标(质量特性目标值或基准)详细建立度量工作表,以提问方式列出在某一阶段为实现某一质量指标应达到的标准提问方式列出在某一阶段为实现某一质量指标应达到的标准。然后由专家根据实际的软件成果进行评

42、分。然后由专家根据实际的软件成果进行评分。分析评分结果:根据评分结果,对照基准评价指标,检查某分析评分结果:根据评分结果,对照基准评价指标,检查某个质量特性是否达到了质量要求,如果没有达到,就应当分个质量特性是否达到了质量要求,如果没有达到,就应当分析达不到质量要求的原因。析达不到质量要求的原因。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心3312.3 12.3 软件质量管理软件质量管理5. 软件配置管理软件配置管理(1) 配置管理基本概念配置管理基本概念软件配置管理(软件配置管理(Software Configuration Management

43、,简称,简称SCM)是一种标识、组织和控制修改的技术,是一种标识、组织和控制修改的技术,目的是使错误达到最小并最有效地提高生产率。它目的是使错误达到最小并最有效地提高生产率。它是是一种伞形活动,它也是一种质量保证活动,应用于一种伞形活动,它也是一种质量保证活动,应用于整整个软件生存期个软件生存期,开始于软件开发项目开始之时,结束,开始于软件开发项目开始之时,结束于软件被淘汰之时。于软件被淘汰之时。配置管理目标:配置管理目标:标识变更标识变更控制变更控制变更确保正确地实现变更确保正确地实现变更向其他相关的项目涉众人员报告变更向其他相关的项目涉众人员报告变更 2008 BUPT TSEG 北京邮电

44、大学北京邮电大学 通信软件工程中心通信软件工程中心3412.3 12.3 软件质量管理软件质量管理(2) 软件配置项软件配置项在软件工程过程中产生的所有的信息项(文档、报告在软件工程过程中产生的所有的信息项(文档、报告、程序、表格、数据)就构成了软件配置、程序、表格、数据)就构成了软件配置软件配置管理的对象就是软件配置项(软件配置管理的对象就是软件配置项(Software Configuration Item,简称,简称SCI),它们是软件工程过),它们是软件工程过程中产生的信息项。按照程中产生的信息项。按照ISO 9000-3的说明,软件配的说明,软件配置项可以是置项可以是:与合同、过程、计

45、划和产品有关的文档和数据与合同、过程、计划和产品有关的文档和数据源代码、目标代码和可执行代码源代码、目标代码和可执行代码相关产品,包括软件工具、代码库内的可复用软件、外购软相关产品,包括软件工具、代码库内的可复用软件、外购软件及用户提供的软件件及用户提供的软件 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心3512.3 12.3 软件质量管理软件质量管理(3) 软件配置基线软件配置基线基线(基线(baseline)是一个软件配置管理的概念,它有助)是一个软件配置管理的概念,它有助于在不严重阻碍合理变更的前提下控制变更。于在不严重阻碍合理变更的前提下控制

46、变更。IEEE Std 610.12-1990定义:已经通过正式评审和批准定义:已经通过正式评审和批准的规格说明和产品,它可以作为进一步开发的基础,的规格说明和产品,它可以作为进一步开发的基础,并且只有通过正式的变更控制规程才能修改它并且只有通过正式的变更控制规程才能修改它。 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心3612.3 12.3 软件质量管理软件质量管理(5) 软件配置管理过程软件配置管理过程软件配置管理的软件配置管理的5个任务个任务:配置标识配置标识版本管理版本管理变更控制变更控制配置审计配置审计配置配置状态状态报告报告 2008 B

47、UPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心37u软件项目管理软件项目管理u软件过程管理软件过程管理u软件质量管理软件质量管理u软件工程环境软件工程环境 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心3812.4 12.4 软件工程环境软件工程环境1. 软件开发环境软件开发环境软件开发环境是指在计算机的基本软件的基础上,为软件开发环境是指在计算机的基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。了支持软件的开发而提供的一组工具软件系统。软件开发环境是一组相关工具的集合;软件开发环境是一组相关工具的集合;这些

48、相关工具是按一定的开发方法或一定开发处理模型组织这些相关工具是按一定的开发方法或一定开发处理模型组织起来的;起来的;这些相关工具支持整个软件生存期的各个阶段或部分阶段这些相关工具支持整个软件生存期的各个阶段或部分阶段软件工程领域,还经常使用这样一些术语,它们都具软件工程领域,还经常使用这样一些术语,它们都具有相似或相同的含义有相似或相同的含义软件开发环境软件开发环境SDE软件工程环境软件工程环境SEE软件支持环境软件支持环境SSE项目支持环境项目支持环境PSE自动开发环境自动开发环境ADE集成化程序设计环境集成化程序设计环境IPE工具盒工具盒Toolbox工具箱工具箱Toolkit 2008

49、BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心3912.4 12.4 软件工程环境软件工程环境2. 软件工具软件工具软件工具是指为支持计算机软件的开发、维护、软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统模拟、移植或管理而研制的程序系统工具分类:工具分类: 按照用途分按照用途分支持程序设计的工具支持程序设计的工具支持软件分析与设计的工具支持软件分析与设计的工具支持项目管理的工具支持项目管理的工具 按照界面划分按照界面划分支持字符界面的工具支持字符界面的工具支持图形界面的工具支持图形界面的工具 按照软件生存周期的阶段划分按照软件生存周期

50、的阶段划分系统计划工具系统计划工具需求分析工具需求分析工具系统设计工具系统设计工具支持编码工具支持编码工具测试和调试工具测试和调试工具运行和维护工具运行和维护工具文档管理工具文档管理工具 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心4012.4 12.4 软件工程环境软件工程环境3. 计算机辅助软件工程(计算机辅助软件工程(CASE)(1) CASE定义定义CASE(Computer-Aided Software Engineering)是一组工具和方法的集合,通过一系列集成化的是一组工具和方法的集合,通过一系列集成化的软件工具、技术和方法,实现分析、设计与程序软件工具、技术和方法,实现分析、设计与程序开发、维护的自动化,辅助软件生存周期各个阶开发、维护的自动化,辅助软件生存周期各个阶段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论