版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 软件工程管理软件工程管理13.1 估算软件规模估算软件规模13.2 任务量估算任务量估算13.3 进度方案进度方案13.4 人员组织人员组织13.5 质量保证质量保证13.6 软件配置管理软件配置管理13.7 才干成熟度模型才干成熟度模型13.8 小结小结根据以往开发类似产品的阅历和历史数据,估计实根据以往开发类似产品的阅历和历史数据,估计实现一个功能所需求的源程序行数。现一个功能所需求的源程序行数。把实现每个功能所需求的源程序行数累加起来,就把实现每个功能所需求的源程序行数累加起来,就可得到实现整个软件所需求的源程序行数。可得到实现整个软件所需求的源程序行数。13.1 估算软件规模估算软件
2、规模 13.1.1 代码行技术代码行技术由多名有阅历的软件工程师分别做出估计。由多名有阅历的软件工程师分别做出估计。每个人都估计程序的最小规模每个人都估计程序的最小规模(a)、最大规模、最大规模(b)和和最能够的规模最能够的规模(m),分别算出这,分别算出这3种规模的平均值种规模的平均值, 再用下式计算程序规模的估计值:再用下式计算程序规模的估计值:L=(13.1)单位是代码行数单位是代码行数LOC 或千行代码数或千行代码数KLOC64bma 代码行技术的优点代码行技术的优点: 代码是一切软件开发工程都有代码是一切软件开发工程都有的的“产品,且容易计算行数。产品,且容易计算行数。代码行技术的缺
3、陷是:代码行技术的缺陷是: 源程序仅是软件配置的一源程序仅是软件配置的一个成分。个成分。为了抑制代码行技术的缺陷,人们提出了功能点技为了抑制代码行技术的缺陷,人们提出了功能点技术。术。根据软件信息域特性和软件复杂性,用功能点根据软件信息域特性和软件复杂性,用功能点FP为单位度量软件规模。为单位度量软件规模。1. 信息域特性信息域特性功能点技术定义了信息域的功能点技术定义了信息域的5个特性个特性: 输入项数输入项数(Inp)、输出项数、输出项数(Out)、查询数、查询数(Inq)、主文件数、主文件数(Maf)和外部接口数和外部接口数(Inf)。1 输入项数:输入项数: 用户向软件输入的项数,这些
4、用户向软件输入的项数,这些输入给软件提供面向运用的数据。输入给软件提供面向运用的数据。13.1.2 功能点技术功能点技术2 输出项数:输出项数: 软件向用户输出的项数,它们软件向用户输出的项数,它们向用户提供面向运用的信息,例如,报表和出错信向用户提供面向运用的信息,例如,报表和出错信息等。报表内的数据项不单独计数。息等。报表内的数据项不单独计数。3 查询数:查询数: 查询即是一次联机输入,它导致查询即是一次联机输入,它导致软件产生某种即时呼应软件产生某种即时呼应(输出输出)。4 主文件数:主文件数: 逻辑主文件即数据的一个逻逻辑主文件即数据的一个逻辑组合,它能够是大型数据库的一部分或是一个独
5、辑组合,它能够是大型数据库的一部分或是一个独立的文件的数目。立的文件的数目。5 外部接口数:外部接口数: 机器可读的全部接口例如,机器可读的全部接口例如,磁盘或磁带上的数据文件的数量,用这些接口把磁盘或磁带上的数据文件的数量,用这些接口把信息传送给另一个系统。信息传送给另一个系统。2. 估算功能点的步骤估算功能点的步骤用下述用下述3个步骤,可估算出一个软件的功能点数个步骤,可估算出一个软件的功能点数即软件规模。即软件规模。FP=UFPTCF1 计算未调整的功能点数计算未调整的功能点数UFP每个特性每个特性(即即Inp、Out、Inq、Maf和和Inf)都分类为都分类为简单级、平均级或复杂级简单
6、级、平均级或复杂级UFP=a1Inp+a2Out+a3Inq+a4Maf+a5Inf其中,其中,ai(1i5)是特性系数,其值由相应特性的复是特性系数,其值由相应特性的复杂级别决议,如表杂级别决议,如表13.1单击此处编辑母版标题样式单击此处编辑母版标题样式 单击此处编辑母版副标题样式单击此处编辑母版副标题样式(2) 计算技术复杂性因子计算技术复杂性因子TCF14种技术要素种技术要素Fi(1i14)对软件规模的影响程度。对软件规模的影响程度。每个要素分配一个从每个要素分配一个从0无影响到无影响到5有很大影响有很大影响 DI= 值在值在070之间之间技术复杂性因子技术复杂性因子TCF由下式计算:
7、由下式计算: TCF=0.65+0.01DI(3) 计算功能点数计算功能点数FPFP=UFPTCF功能点数与所用的编程言语无关。在判别信息域特功能点数与所用的编程言语无关。在判别信息域特性复杂级别和技术要素的影响程度时,存在着相当性复杂级别和技术要素的影响程度时,存在着相当大的客观要素。大的客观要素。 141iiF软件估算模型由阅历导出的公式来预测软件开发任软件估算模型由阅历导出的公式来预测软件开发任务量,任务量是软件规模务量,任务量是软件规模KLOC或或FP的函数,的函数,任务量的单位通常是人月任务量的单位通常是人月pm)。估算模型的阅历数据,是从有限个工程的样本集中估算模型的阅历数据,是从
8、有限个工程的样本集中总结出来的,因此,没有一个估算模型可以适用于总结出来的,因此,没有一个估算模型可以适用于一切类型的软件和开发环境。一切类型的软件和开发环境。13.2 任务量估算任务量估算这类模型的总体构造方式如下:这类模型的总体构造方式如下: E=A+B(ev)C其中,其中,A、B和和C是由阅历数据导出的常数,是由阅历数据导出的常数,E是以是以人月为单位的任务量,人月为单位的任务量,ev是估算变量是估算变量KLOC或或FP。下面给出几个典型的静态单变量模型。下面给出几个典型的静态单变量模型。1.面向面向FP的估算模型的估算模型 (1) Albrecht & Gaffney模型模型E
9、=-13.39+0.0545FP(2) Maston,Barnett和和Mellichamp模型模型E=585.7+15.12FP13.2.1 静态单变量模型静态单变量模型2. 面向面向KLOC的估算模型的估算模型(1) Walston_Felix模型模型E=5.2(KLOC)0.91(2) Bailey_Basili模型模型E=5.5+0.73(KLOC)1.16(3) Boehm简单模型简单模型E=3.2(KLOC)1.05(4) Doty模型在模型在KLOC9时适用时适用E=5.288(KLOC)1.047对于一样的对于一样的KLOC或或FP值,用不同模型估算将得出值,用不同模型估算将得
10、出不同的结果。不同的结果。主要缘由是,这些模型多数都是仅根据假设干运用主要缘由是,这些模型多数都是仅根据假设干运用领域中有限个工程的阅历数据推导出来的,适用范领域中有限个工程的阅历数据推导出来的,适用范围有限。围有限。因此,必需根据当前工程的特点选择适用的估算模因此,必需根据当前工程的特点选择适用的估算模型,并且根据需求适当地调整例如,修正模型常型,并且根据需求适当地调整例如,修正模型常数估算模型。数估算模型。动态多变量模型是根据从动态多变量模型是根据从4000多个当代软件工程中多个当代软件工程中搜集的消费率数据推导出来的。搜集的消费率数据推导出来的。任务量是软件规模和开发时间这两个变量的函数
11、。任务量是软件规模和开发时间这两个变量的函数。E=(LOCB0.333/P)3(1/t)4(13.2)E是以人月或人年为单位的任务量;是以人月或人年为单位的任务量;t1是以月或年为单位的工程继续时间;是以月或年为单位的工程继续时间;B是特殊技术因子,它随着规模和要求的添加而缓是特殊技术因子,它随着规模和要求的添加而缓慢添加慢添加:小的程序小的程序(KLOC=515),B=0.16, 超越超越70 KLOC的程序,的程序,B=0.39;P是消费率参数是消费率参数 (2000-30000)13.2.2 动态多变量模型动态多变量模型P消费率参数,反映了下述要素对任务量的影响:消费率参数,反映了下述要
12、素对任务量的影响: 总体过程成熟度及管理程度;总体过程成熟度及管理程度;运用良好的软件工程实际的程度;运用良好的软件工程实际的程度;运用的程序设计言语的级别;运用的程序设计言语的级别;软件环境;软件环境;软件工程组的技术及阅历;软件工程组的技术及阅历;运用系统的复杂程度。运用系统的复杂程度。开发实时嵌入式软件时开发实时嵌入式软件时:P=2000;电信系统和系统;电信系统和系统软件时软件时:P=10000;商业运用系统;商业运用系统:P=28000。假设把工程继续时间延伸一些,那么可降低完成工假设把工程继续时间延伸一些,那么可降低完成工程所需的任务量。程所需的任务量。构造性本钱模型构造性本钱模型
13、: COCOMOCOnstructive COst Model) 。1981年年Boehm在在中初中初次提出了次提出了COCOMO模型。模型。1997年年Boehm等人提出等人提出的的COCOMO2,修订了,修订了COCOMO。3个层次的软件开发任务量估算模型:个层次的软件开发任务量估算模型: (1) 运用系统组成模型用于估算构建原型的任务量。运用系统组成模型用于估算构建原型的任务量。(2) 早期设计模型适用于体系构造设计阶段。早期设计模型适用于体系构造设计阶段。(3)后体系构造模型适用于完成体系构造设计之后后体系构造模型适用于完成体系构造设计之后的软件开发阶段。的软件开发阶段。13.2.3
14、COCOMO2模型模型后体系构造模型软件开发任务量函数:后体系构造模型软件开发任务量函数: E=(13.3)E是开发任务量以人月为单位,是开发任务量以人月为单位,a是模型系数,是模型系数,KLOC是估计的源代码行数以千行为单位,是估计的源代码行数以千行为单位,b是模型指数,是模型指数,fi(i=117)是本钱要素,见下表。是本钱要素,见下表。 171iibfKLOCa1 新添加了新添加了4个本钱要素个本钱要素: 要求的可重用性、需要求的可重用性、需求的文档量、人员延续性即人员稳定程度和多求的文档量、人员延续性即人员稳定程度和多地点开发。地点开发。2 略去了原始模型中的略去了原始模型中的2个本钱
15、要素计算机个本钱要素计算机切换时间和运用现代程序设计实际。切换时间和运用现代程序设计实际。3 某些本钱要素分析员才干、平台阅历、言某些本钱要素分析员才干、平台阅历、言语和工具阅历对消费率的影响即任务量系数最语和工具阅历对消费率的影响即任务量系数最大值与最小值的比率添加了,另一些本钱要素大值与最小值的比率添加了,另一些本钱要素程序员才干的影响减小了。程序员才干的影响减小了。COCOMO2采用了更加精细得多的采用了更加精细得多的b分级模型,这分级模型,这个模型运用个模型运用5个分级要素个分级要素Wi(1i5): 划分成从甚低划分成从甚低Wi=5)到特高到特高 Wi=0)的的6个级别个级别b=(13
16、.4)b的取值范围为的取值范围为1.011.26。5个分级要素如下所述:个分级要素如下所述: 1 工程先例性工程先例性: 该工程的新奇程度。该工程的新奇程度。2 开发灵敏性开发灵敏性: 约束多少。约束多少。3 风险排除度风险排除度: 艰苦风险已被消除的比例。艰苦风险已被消除的比例。4 工程组凝聚力工程组凝聚力: 开发人员相互协作度。开发人员相互协作度。5 过程成熟度过程成熟度: 按照才干成熟度模型见按照才干成熟度模型见13.7节节 5101. 101. 1iiW目的目的: 保证工程按时完成保证工程按时完成影响工期的要素影响工期的要素: 任务量任务量, 资源资源(人力人力,设备设备), 工程特点
17、工程特点方法方法: 把工程分解成许多小义务以利于估计把工程分解成许多小义务以利于估计, 执行执行, 监控监控难点难点: 根据工程根据工程, 合理分配义务合理分配义务, 优化运用资源优化运用资源, 留有余地留有余地工具工具: 阅历模型阅历模型, GANTT图图, 工程网络工程网络工程管理者必需定义全部工程义务,识别出关键义务,工程管理者必需定义全部工程义务,识别出关键义务,跟踪关键义务的进展情况。跟踪关键义务的进展情况。制定一个详细的进度表,监视工程进度并控制整个工程。制定一个详细的进度表,监视工程进度并控制整个工程。13.3 进度方案进度方案工期工期 =任务量任务量/人力人力正常情况下正常情况
18、下, 估算开发时间的模型方程:估算开发时间的模型方程: (1) Walston_Felix模型模型: T=2.5E0.35(2) 原始的原始的COCOMO模型模型: T=2.5E0.38(3) COCOMO2模型模型: T=3.0E0.33+0.2(b-1.01)(4) Putnam模型模型: T=2.4E1/3E是开发任务量以人月为单位,是开发任务量以人月为单位,T是开发时间以月为单位。是开发时间以月为单位。13.3.1 估算开发时间估算开发时间为了缩短开发时间应该添加开发任务的人数。为了缩短开发时间应该添加开发任务的人数。随着开发小组规模扩展,个人消费率将下降,随着开发小组规模扩展,个人消
19、费率将下降,开发时间与开发任务的人数非简单反比关系的两个开发时间与开发任务的人数非简单反比关系的两个缘由:缘由: 当小组变大时,通讯开销添加了。当小组变大时,通讯开销添加了。新成员要额外破费小组其他成员的时间。新成员要额外破费小组其他成员的时间。被称为被称为Brooks规律的下述景象:规律的下述景象: 向一个曾经延期向一个曾经延期的工程添加人力,能够的工程添加人力,能够(只只)会使得它更加延期。会使得它更加延期。工程组规模与工程组总消费率的关系。工程组规模与工程组总消费率的关系。P名工程组员之间的通讯途径数名工程组员之间的通讯途径数:MIN= P-1, MAX= P(P-1)/2通讯途径数大约
20、为通讯途径数大约为P,其中,其中12。一个组员不与任何人通讯时个人消费率为一个组员不与任何人通讯时个人消费率为L,每条通讯途径导致消费率减少每条通讯途径导致消费率减少l,组员个人平均消费率为组员个人平均消费率为: Lr=L-l(P-1)r(13.5)其中,其中,r是对通讯途径数的度量,是对通讯途径数的度量,0r1规模为规模为P的工程组的总消费率为的工程组的总消费率为Ltot=P(L-l(P-1)r)(13.6)对于给定的对于给定的L,l和和r的值,总消费率的值,总消费率Ltot是是P的函数。的函数。存在一个最正确的工程组规模存在一个最正确的工程组规模Popt,其总消费率最,其总消费率最高。高。
21、Boehm根据阅历指出,软件工程的开发时间最多可根据阅历指出,软件工程的开发时间最多可以减少到正常开发时间的以减少到正常开发时间的75%。 什么是工程网络图?工程网络图是工程的一切活动以及它们之间逻辑关系或排序的图形显示。 工程网络图是活动排序的输出,它有以下作用:1能表示工程活动,并表示活动之间的依赖关系。2阐明工程活动将以什么顺序继续。3在进展工期估计时,阐明工程将需求多长时间。4当改动某项活开工期时,阐明工程工期将如何变化。 工程网络图有两种表示方式:1前导图法PDM:Precedence Diagramming Method2箭线图法ADM:Arrow Diagramming Meth
22、od甲工程中包含的活动清单、各个活动的历时以及活动间的依赖关系如下:各活动的依赖关系:各活动的依赖关系: A A、B B、C C可以同时开场;可以同时开场; D D必需在必需在A A完成后开场;完成后开场; E E、F F必需在必需在B B完成后开场;完成后开场; G G必需在必需在C C完成后开场;完成后开场; H H必需在必需在D D、E E完成后开完成后开场;场; I I必需在必需在GG完成后开场;完成后开场; J J必需在必需在F F、H H、I I完成后完成后开开 始。始。活动历时估计是根据义务分解中定义的工程活动和工程活动清单来估计完成这些工程所需求的工期。工期包括一项活动所耗费的
23、实践任务时间 加上间歇时间。在活动定义、活动排序、和活动历时估计的根底上,综合各个工程活动的开场和终了日期、最终的活动顺序以及工期来确定工程的总体进度方案。 甘特图,经过日历方式列出工程活动及其相甘特图,经过日历方式列出工程活动及其相 应的开场和终了日期,它为反映工程进度信应的开场和终了日期,它为反映工程进度信 息提供了一种规范方式。息提供了一种规范方式。以下图是用以下图是用PROJECTPROJECT制造的甲工程的最简单的一个甘特图制造的甲工程的最简单的一个甘特图早期的甘特图的最大缺陷是通常不反映依赖关系,早期的甘特图的最大缺陷是通常不反映依赖关系,但是假设在但是假设在ProjectProj
24、ect上建立了依赖关系,这种依赖关系会自动上建立了依赖关系,这种依赖关系会自动显示在甘特图上。显示在甘特图上。 运用工程管理软件可以创建更为复杂的甘特图运用工程管理软件可以创建更为复杂的甘特图 跟踪甘特图可以用来评价工程的进展跟踪甘特图可以用来评价工程的进展留意:留意:义务用两种程度横线表示。下部表示方案历史基准方义务用两种程度横线表示。下部表示方案历史基准方案历史;上部表示实践历史。案历史;上部表示实践历史。由于跟踪甘特图是建立在实践开场与完成日期的根底之由于跟踪甘特图是建立在实践开场与完成日期的根底之上,将方案与实践的工程进度信息进展比较,所以,工上,将方案与实践的工程进度信息进展比较,所
25、以,工程经理可以用它来监控单个义务和整体工程的进展情况。程经理可以用它来监控单个义务和整体工程的进展情况。甘特图与网络图的比较l 甘特图甘特图l在进度报告中很有效在进度报告中很有效l在作管理陈说时易于读懂和运用。在作管理陈说时易于读懂和运用。l作为方案编制工具不是太强。作为方案编制工具不是太强。l没有表示活动间的逻辑关系。没有表示活动间的逻辑关系。l 网络图网络图l阐明活动和事件间的相互关系。阐明活动和事件间的相互关系。l识别关键途径,工程历程和活动排识别关键途径,工程历程和活动排序。序。l阐明任务流程。阐明任务流程。l协助编制方案和组织任务。协助编制方案和组织任务。 查找关键途径实例: 运用
26、箭线图来确定关键途径。 运用前导图来确定关键途径。单个软件开发人员无法在给定期限内完成软件工程,单个软件开发人员无法在给定期限内完成软件工程,因此,必需把多名软件开发人员合理地组织起来,因此,必需把多名软件开发人员合理地组织起来,使他们有效地分工协作共同完成开发任务。使他们有效地分工协作共同完成开发任务。3种典型的组织方式种典型的组织方式: 民主制程序员组、主程序员民主制程序员组、主程序员组和现代程序员组。组和现代程序员组。13.4 人员组织人员组织民主制程序员组民主制程序员组: 小组成员完全平等小组成员完全平等, 通讯信道共有通讯信道共有n(n-1)/2条。条。程序设计小组的规模应该以程序设
27、计小组的规模应该以28名成员为宜。名成员为宜。优点优点: 组员们对发现程序错误持积极的态度,这种组员们对发现程序错误持积极的态度,这种态度有助于更快速地发现错误,从而导致高质量的态度有助于更快速地发现错误,从而导致高质量的代码。代码。缺陷:缺陷: 由于没有明确的权威指点开发工程的进展由于没有明确的权威指点开发工程的进展,组员间将缺乏必要的协调组员间将缺乏必要的协调,最终能够导致工程失败。最终能够导致工程失败。13.4.1 民主制程序员组民主制程序员组IBM公司公司20世纪世纪70年代初期开场采用年代初期开场采用, 几点思索:几点思索: (1) 软件开发人员多数比较缺乏阅历;软件开发人员多数比较
28、缺乏阅历;(2) 程序设计过程中有许多事务性的任务,例如,程序设计过程中有许多事务性的任务,例如,大量信息的存储和更新;大量信息的存储和更新;(3) 多渠道通讯很费时间,将降低程序员的消费率。多渠道通讯很费时间,将降低程序员的消费率。用阅历多、技术好、才干强的程序员作为主程序员,用阅历多、技术好、才干强的程序员作为主程序员,同时,组内分工,给主程序员提供充分支持,一切同时,组内分工,给主程序员提供充分支持,一切通讯都经过一两个人进展。通讯都经过一两个人进展。13.4.2 主程序员组主程序员组主程序员组的两个重要特性:主程序员组的两个重要特性: 1 专业化。成员完成受过专业训练的任务。专业化。成
29、员完成受过专业训练的任务。2 层次性。主程序员全面担任。层次性。主程序员全面担任。组织方式如图组织方式如图13.5所示。所示。问题:问题:主程序员具备两方面的才干,这样的人才不多。主程序员具备两方面的才干,这样的人才不多。后备程序员更难找。后备程序员更难找。编程秘书也很难找到。编程秘书也很难找到。“主程序员由两个人担任:主程序员由两个人担任: 一个担任小组的技术;一个担任小组的技术;一个担任管理决策。一个担任管理决策。13.4.3 现代程序员组现代程序员组当软件工程规模较大时,应该把程序员分成假设干当软件工程规模较大时,应该把程序员分成假设干个小组,采用图个小组,采用图13.7所示的组织构造。
30、所示的组织构造。该图描画的是技术管理组织构造,非技术管理组织该图描画的是技术管理组织构造,非技术管理组织构造与此类似。构造与此类似。由图可以看出,产品开发作为一个整体是在工程经由图可以看出,产品开发作为一个整体是在工程经理的指点下进展的,程序员向他们的组长汇报任务,理的指点下进展的,程序员向他们的组长汇报任务,而组长那么向工程经理汇报任务。而组长那么向工程经理汇报任务。当产品规模更大时,可以适当添加中间管理层次。当产品规模更大时,可以适当添加中间管理层次。图图13.7 大型工程的技术管理组织构造大型工程的技术管理组织构造软件质量就是软件质量就是“软件与明确地和隐含地定义的需求软件与明确地和隐含
31、地定义的需求相一致的程度:相一致的程度:1软件需求是度量软件质量的根底。软件需求是度量软件质量的根底。2有没有显式描画的隐含需求。有没有显式描画的隐含需求。3不遵守一组指点软件开发的准那么,会导致不遵守一组指点软件开发的准那么,会导致软件质量不高。软件质量不高。13.5 质量保证质量保证 13.5.1 软件质量软件质量图图13.9 软件质量要素软件质量要素软件质量保证软件质量保证software quality assurance,SQA的措施主要有:技术复审和测试。的措施主要有:技术复审和测试。两类参与软件质量保证任务的人员:两类参与软件质量保证任务的人员: 软件工程师经过采用先进的技术方法
32、和度量,进展软件工程师经过采用先进的技术方法和度量,进展正式的技术复审以及完成软件测试来保证软件质量。正式的技术复审以及完成软件测试来保证软件质量。SQA小组的职责,是辅助软件工程师以获得高质量小组的职责,是辅助软件工程师以获得高质量的软件产品。其从事的软件质量保证活动主要是:的软件产品。其从事的软件质量保证活动主要是: 方案,监视,记录,分析和报告。方案,监视,记录,分析和报告。确保软件过程的质量来保证软件产品的质量。确保软件过程的质量来保证软件产品的质量。13.5.2 软件质量保证措施软件质量保证措施1. 技术复审的必要性技术复审的必要性较早发现错误,防止被传播到软件过程的后续阶段。较早发
33、现错误,防止被传播到软件过程的后续阶段。大型软件产品中检测出的错误,大型软件产品中检测出的错误,60%70%属于规属于规格阐明错误或设计错误,而正式技术复审在发现规格阐明错误或设计错误,而正式技术复审在发现规格阐明错误和设计错误方面的有效性高达格阐明错误和设计错误方面的有效性高达75%。正式技术复审包括走查正式技术复审包括走查walkthrough)和审查和审查inspection。走查的步骤比审查少,而且没有审查正规。走查的步骤比审查少,而且没有审查正规。2. 走查走查成员组成成员组成(走查规格阐明的小组为例走查规格阐明的小组为例):一名担任起草规格阐明的人,一名担任起草规格阐明的人,一名担
34、任该规格阐明的管理员,一名担任该规格阐明的管理员,一位客户代表,一位客户代表,一名下阶段开发组代表一名下阶段开发组代表一名一名SQA小组代表小组代表(组长组长)。走查组成员最好是阅历丰富的高级技术人员。走查组成员最好是阅历丰富的高级技术人员。必需把被走查的资料预先分发给走查组每位成员。必需把被走查的资料预先分发给走查组每位成员。走查组成员应该仔细研讨资料并列出两张表:走查组成员应该仔细研讨资料并列出两张表: 一张表是不了解的术语,一张表是不了解的术语,一张是以为不正确的术语。一张是以为不正确的术语。走查组的义务仅仅是标志出错误而不是矫正错误。走查组的义务仅仅是标志出错误而不是矫正错误。走查主要
35、有下述两种方式:走查主要有下述两种方式: 1 参与者驱动法。参与者提出他们不了解的术参与者驱动法。参与者提出他们不了解的术语和以为不正确的术语。文档编写组的代表必需回语和以为不正确的术语。文档编写组的代表必需回答每个质疑,要么成认确实有错误,要么对质疑做答每个质疑,要么成认确实有错误,要么对质疑做出解释。出解释。2 文档驱动法。文档编写者向走查组成员仔细文档驱动法。文档编写者向走查组成员仔细解释文档。走查组成员针对事先预备好的问题或解解释文档。走查组成员针对事先预备好的问题或解释过程中发现的问题提出质疑。释过程中发现的问题提出质疑。3. 审查审查审查的范围比走查广,包括下述审查的范围比走查广,
36、包括下述5个根本步骤:个根本步骤: 1 综述。编写文档的一名成员向审查组综述该综述。编写文档的一名成员向审查组综述该文档。在综述会终了时把文档分发给每位与会者。文档。在综述会终了时把文档分发给每位与会者。2 预备。评审员仔细阅读文档。列出在审查中预备。评审员仔细阅读文档。列出在审查中发现的错误的类型,频率,分级。发现的错误的类型,频率,分级。3 审查。评审组仔细走查整个文档。审查组组审查。评审组仔细走查整个文档。审查组组长应该在一天之内写出一份关于审查的报告。长应该在一天之内写出一份关于审查的报告。4 返工。文档的作者担任处理在审查报告中列返工。文档的作者担任处理在审查报告中列出的一切错误及问
37、题。出的一切错误及问题。5 跟踪。组长必需确保所提出的每个问题都得跟踪。组长必需确保所提出的每个问题都得到了圆满的处理。到了圆满的处理。4. 程序正确性证明程序正确性证明即使有程序正确性证明,软件测试也依然是需求的:即使有程序正确性证明,软件测试也依然是需求的:正确性证明过程本身也能够发生错误。正确性证明过程本身也能够发生错误。程序正确性证明,对于评价小程序有价值。程序正确性证明,对于评价小程序有价值。还不能实践用于大型程序的正确性证明。还不能实践用于大型程序的正确性证明。正确性证明的根本思想是证明程序能完成预定的功正确性证明的根本思想是证明程序能完成预定的功能。能。假设在程序的假设在程序的P
38、1,P2,,Pn等点上的断言分别是等点上的断言分别是a(1),a(2),a(n),其中,其中a(1)必需是关于程序输入必需是关于程序输入的断言,的断言,a(n)必需是关于程序输出的断言。必需是关于程序输出的断言。为了证明在点为了证明在点Pi和和Pi+1之间的程序语句是正确的,之间的程序语句是正确的,只须证明假设断言只须证明假设断言a(i)为真且执行这些语句之后将为真且执行这些语句之后将使使a(i+1)为真。为真。假设对一切数据输入断言为真时,能对程序内一切假设对一切数据输入断言为真时,能对程序内一切相邻点都能完成上述证明过程,而且程序总可以终相邻点都能完成上述证明过程,而且程序总可以终止的,那
39、么证明了程序的正确性。止的,那么证明了程序的正确性。变化是不可防止的变化是不可防止的, 必需控制和管理变化。必需控制和管理变化。软件配置管理软件配置管理: 用于管理变化的软件质量保证活动。用于管理变化的软件质量保证活动。软件配置管理在整个生命期内管理变化:软件配置管理在整个生命期内管理变化: 标识标识变化;变化; 控制变化;控制变化; 确保适当地实现了变化;确保适当地实现了变化; 向需求知道这类信息的人报告变化。向需求知道这类信息的人报告变化。软件配置管理的目的:使变化更正确更容易被实现。软件配置管理的目的:使变化更正确更容易被实现。保证每个软件配置项正确,保证每个软件配置项正确,保证一个软件
40、的一切配置项是完全一致的。保证一个软件的一切配置项是完全一致的。13.6 软件配置管理软件配置管理1. 软件配置项软件配置项软件过程的输出信息可以分为软件过程的输出信息可以分为3类:类: 计算机程序源代码和可执行程序;计算机程序源代码和可执行程序; 计算机程序的文档供技术人员或用户运用;计算机程序的文档供技术人员或用户运用; 数据程序内包含的或在程序外的。数据程序内包含的或在程序外的。 我们把它们统称为软件配置,而这些项就是软件配我们把它们统称为软件配置,而这些项就是软件配置项置项ITEM=元素。元素。13.6.1 软件配置软件配置2. 基线基线(Baseline, 里程碑里程碑)IEEE把基
41、线定义为:把基线定义为: 曾经经过了正式复审的规格曾经经过了正式复审的规格阐明或中间产品,它可以作为进一步开发的根底,阐明或中间产品,它可以作为进一步开发的根底,并且只需经过正式的变化控制过程才干改动它。并且只需经过正式的变化控制过程才干改动它。软件工具也应置于配置管理之下:编辑器、编译器软件工具也应置于配置管理之下:编辑器、编译器和其他和其他CASE工具。工具。不同版本的工具产生的结果不同。不同版本的工具产生的结果不同。软件配置管理主要有软件配置管理主要有5项义务:项义务: 标识、版本控制、标识、版本控制、变化控制、配置审计和报告。变化控制、配置审计和报告。1. 标识软件配置中的对象标识软件
42、配置中的对象命名每个配置项。两类对象:命名每个配置项。两类对象: 根本和聚集对象。根本和聚集对象。根本对象是软件工程师在分析、设计、编码或测试根本对象是软件工程师在分析、设计、编码或测试过程中创建出来的过程中创建出来的“文本单元文本单元 。聚集对象是根本对象和其他聚集对象的集合。聚集对象是根本对象和其他聚集对象的集合。每个对象都有一组能独一地标识它的特征:每个对象都有一组能独一地标识它的特征: 名字、名字、描画、版本。描画、版本。13.6.2 软件配置管理过程软件配置管理过程2. 版本控制版本控制版本控制管理软件配置对象的不同版本。版本控制管理软件配置对象的不同版本。用户可以经过选择版本来指定
43、软件的配置。用户可以经过选择版本来指定软件的配置。属性和软件的每个版本相关联。属性和软件的每个版本相关联。描画一组所期望的属性来指定和构造所需求的配置。描画一组所期望的属性来指定和构造所需求的配置。“属性,既可以是配置对象的版本号,也可以复属性,既可以是配置对象的版本号,也可以复杂到是一个布尔变量串。杂到是一个布尔变量串。3. 变化控制变化控制变化控制过程在维护一章讲过。变化控制过程在维护一章讲过。同意的变化生成一个同意的变化生成一个“工程变化命令工程变化命令 描画将要实描画将要实现的变化。现的变化。把要修正的对象从工程数据库中把要修正的对象从工程数据库中“提取提取check out出来,进展
44、修正。出来,进展修正。把修正后的对象把修正后的对象“提交提交check in进数据库,并进数据库,并创建该软件的下一个版本。创建该软件的下一个版本。变化控制的两个主要功能变化控制的两个主要功能:访问控制决议软件工程师有权访问和修正一个特定访问控制决议软件工程师有权访问和修正一个特定的配置对象的配置对象同步控制有助于保证由两名不同的软件工程师完成同步控制有助于保证由两名不同的软件工程师完成的并行修正不会相互覆盖。的并行修正不会相互覆盖。4. 配置审计配置审计两方面采取措施确保适当地实现了所需求的变化:两方面采取措施确保适当地实现了所需求的变化: 正式的技术复审;正式的技术复审; 软件配置审计。软
45、件配置审计。正式的技术复审见正式的技术复审见13.5.2节关注被修正后的配节关注被修正后的配置对象的技术正确性。置对象的技术正确性。软件配置审计经过评价配置对象的那些通常不在复软件配置审计经过评价配置对象的那些通常不在复审过程中思索的特征例如,修正时能否遵照了软审过程中思索的特征例如,修正时能否遵照了软件工程规范,能否在该配置项中显著地标明了所做件工程规范,能否在该配置项中显著地标明了所做的修正,能否注明了修正日期和修正者,能否适当的修正,能否注明了修正日期和修正者,能否适当地更新了一切相关的软件配置项,能否遵照了标注地更新了一切相关的软件配置项,能否遵照了标注变化、记录变化和报告变化的规程,
46、而成为对正变化、记录变化和报告变化的规程,而成为对正式技术复审的补充。式技术复审的补充。5. 形状报告形状报告配置形状报告回答下述问题:配置形状报告回答下述问题: 发生了什么事?发生了什么事? 谁做的这件事?这件事是什么时候发生的?谁做的这件事?这件事是什么时候发生的?它将影响哪些其他事物?它将影响哪些其他事物?配置形状改善一切相关人员之间的通讯,消除冲突,配置形状改善一切相关人员之间的通讯,消除冲突, 防止反复,提高效率。防止反复,提高效率。美国卡内基梅隆大学软件工程研讨所在美国国防部美国卡内基梅隆大学软件工程研讨所在美国国防部资助下于资助下于20世纪世纪80年代末建立的才干成熟度模型年代末
47、建立的才干成熟度模型capability maturity model,CMM),是用于评价,是用于评价软件机构的软件过程才干成熟度的模型。最初,建软件机构的软件过程才干成熟度的模型。最初,建立此模型的目的主要是,为大型软件工程的招招标立此模型的目的主要是,为大型软件工程的招招标活动提供一种全面而客观的评审根据,开展到后来,活动提供一种全面而客观的评审根据,开展到后来,此模型又同时被运用于许多软件机构内部的过程改此模型又同时被运用于许多软件机构内部的过程改良活动中。良活动中。13.7 才干成熟度模型才干成熟度模型改良对软件过程的管理是消除软件危机的突破口,改良对软件过程的管理是消除软件危机的突
48、破口,比采用先进的技术和工具更重要。比采用先进的技术和工具更重要。才干成熟度模型的根本思想:才干成熟度模型的根本思想:经过建立成熟的优化的软件过程,提高软件的消费经过建立成熟的优化的软件过程,提高软件的消费率和质量。而技术的改良是软件过程改良的结果。率和质量。而技术的改良是软件过程改良的结果。CMM的作用:指点软件机构经过确定当前的过程的作用:指点软件机构经过确定当前的过程成熟度并识别出对过程改良起关键作用的问题,进成熟度并识别出对过程改良起关键作用的问题,进而稳步而有效地改良其软件过程,提高成熟度,使而稳步而有效地改良其软件过程,提高成熟度,使其软件过程才干得到循序渐进的提高。其软件过程才干
49、得到循序渐进的提高。CMM把软件过程从无序到优化的进化过程分成把软件过程从无序到优化的进化过程分成5个个有序的阶段,用以丈量软件机构的软件过程成熟度有序的阶段,用以丈量软件机构的软件过程成熟度和评价其软件过程才干,这些等级还能协助软件机和评价其软件过程才干,这些等级还能协助软件机构把应做的改良任务排出优先次序。构把应做的改良任务排出优先次序。CMM对对5个成熟度级别特性的描画,阐明了不同级个成熟度级别特性的描画,阐明了不同级别之间软件过程的主要变化。别之间软件过程的主要变化。从从“1级到级到“5级,反映出从混乱到成熟的软件过级,反映出从混乱到成熟的软件过程必需阅历的过程改良途径。程必需阅历的过
50、程改良途径。CMM的每个成熟度级别中都包含一组过程改良的的每个成熟度级别中都包含一组过程改良的目的,满足这些目的后一个机构的软件过程就从当目的,满足这些目的后一个机构的软件过程就从当前级别进化到下一个成熟度级别。前级别进化到下一个成熟度级别。CMM不提供做这些改良的详细措施。不提供做这些改良的详细措施。软件工程71过程变卦管理过程变卦管理 PCM技术变卦管理技术变卦管理 TCM缺陷预防缺陷预防 DP软件配置管理软件配置管理 SCM软件质量保证软件质量保证 SQA软件子合同管理软件子合同管理 SSM软件工程追踪与监视软件工程追踪与监视 SPTO软件工程谋划软件工程谋划 SPP需求管理需求管理 R
51、M软件产品工程软件产品工程 SPE集成软件管理集成软件管理 ISM培训大纲培训大纲 TP组织过程定义组织过程定义 OPD组织过程焦点组织过程焦点 OPF同行评审同行评审 PR组间协调组间协调 IC软件质量管理软件质量管理 SQM定量定量 过程管理过程管理 QPM规范化过程规范化过程规范化过程规范化过程可预测过程可预测过程继续改良过程继续改良过程个别过程个别过程 2 级级可反复级可反复级 3 级级已定义级已定义级 4 级级已管理级已管理级 5 级级优化级优化级 1 级初始级级初始级单击此处编辑母版标题样式单击此处编辑母版标题样式 单击此处编辑母版副标题样式单击此处编辑母版副标题样式 关键过程域分
52、类关键过程域分类5 优化级优化级过程变卦管理过程变卦管理4 可管理级可管理级需求管理需求管理软件工程谋划软件工程谋划软件工程跟踪与监控软件工程跟踪与监控软件子合同管理软件子合同管理软件质量保证软件质量保证软件配置管理软件配置管理过程分类过程分类机构的过程机构的过程管理过程管理过程缺陷预防缺陷预防软件质量管理软件质量管理整体化软件管理整体化软件管理组间协调组间协调组织过程关注组织过程关注组织过程定义组织过程定义培训规划培训规划无序过程无序过程定量过程管理定量过程管理3 可定义级可定义级2 可反复级可反复级1 初始级初始级工程的过程工程的过程软件产品工程软件产品工程同行评审同行评审技术变卦管理技术
53、变卦管理1. 初始级初始级软件过程的特征是无序的,甚至是混乱的。几乎没软件过程的特征是无序的,甚至是混乱的。几乎没有什么过程是经过定义的即没有一个定型的过程有什么过程是经过定义的即没有一个定型的过程模型,工程能否胜利随机性很大。模型,工程能否胜利随机性很大。没有健全的软件工程管理制度。没有健全的软件工程管理制度。延期交付和费用超支的情况经常发生,大多数行动延期交付和费用超支的情况经常发生,大多数行动只是应付危机,而不是完成方案好的义务。只是应付危机,而不是完成方案好的义务。处于处于1级成熟度的软件机构,其过程才干是不可预级成熟度的软件机构,其过程才干是不可预测的,其软件过程是不稳定的,产质量量
54、只能根据测的,其软件过程是不稳定的,产质量量只能根据相关人员的个人任务才干而不是软件机构的过程才相关人员的个人任务才干而不是软件机构的过程才干来预测。干来预测。2. 可反复级可反复级建立了根本的工程管理过程建立了根本的工程管理过程(过程模型过程模型), 可跟踪本可跟踪本钱、进度、功能和质量。对新工程的谋划和管理过钱、进度、功能和质量。对新工程的谋划和管理过程是基于以前类似工程的实际阅历。程是基于以前类似工程的实际阅历。曾经制定了工程规范,并且软件机构能确保严厉执曾经制定了工程规范,并且软件机构能确保严厉执行这些规范。工程组与客户及承包商曾经建立起一行这些规范。工程组与客户及承包商曾经建立起一个
55、稳定的任务环境。个稳定的任务环境。过程才干可以概括为过程才干可以概括为: 软件工程的谋划和跟踪是稳软件工程的谋划和跟踪是稳定的,曾经为一个有纪律的管理过程提供了可反复定的,曾经为一个有纪律的管理过程提供了可反复以前胜利实际的工程环境。以前胜利实际的工程环境。3. 已定义级已定义级软件机构曾经定义了完好的软件过程过程模型,软件机构曾经定义了完好的软件过程过程模型,软件过程曾经文档化和规范化。软件过程曾经文档化和规范化。有一个固定的过程小组从事软件过程工程活动。有一个固定的过程小组从事软件过程工程活动。过程小组可以利用过程模型进展过程例化活动,从过程小组可以利用过程模型进展过程例化活动,从而获得一个针对某个特定的软件工程的过程实例。而获得一个针对某个特定的软件工程的过程实例。过程小组还可以推进软件机构的过程改良活动。实过程小组还可以推进软件机构的过程改良活动。实施了培训方案,可以保证全体工程担任人和工程开施了培训方案,可以保证全体工程担任人和工程开发人员具有完成承当的义务所要求的知识和技艺。发人员具有完成承当的义务所要求的知识和技艺。过程才干可以概括为过程才干可以概括为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生心理知识竞赛学习通超星期末考试答案章节答案2024年
- 管理者素质与能力提升训练学习通超星期末考试答案章节答案2024年
- 亲子活动中的核酸检测方案
- 食品行业食品安全责任制度
- 暖通空调系统烟道保温方案
- 环保部门危废监管制度
- 农业合作社技术推广服务方案
- 冬衣产业深度调研及未来发展现状趋势
- 铝合金门窗销售代理合同
- 2024年度综合性业务承包协议
- 精神病合并高血压病人护理
- 自学考试-计算机系统结构(全国)
- 明月海藻肥产品手册
- GB/T 3620.1-2016钛及钛合金牌号和化学成分
- GB/T 23858-2009检查井盖
- GB/T 17514-2017水处理剂阴离子和非离子型聚丙烯酰胺
- 工伤职工停工留薪期目录
- 2高铁AB料路基填筑施工技术
- T-NTRPTA 0030-2020 无人机精准测绘技术规范
- 智慧门店零售解决方案-新零售解决方案
- 公安派出所建设标准
评论
0/150
提交评论