软件项目管理 第六讲 软件度量
文章目录
什么是软件度量?
- 软件度量(Metrics)是指对软件产品、软件开发过程或者资源的简单属性的定量描述。
产品:软件开发过程中所生成的各种文档和程序。
过程:与软件开发有关的各种活动,如软件设计等。
资源:软件开发过程中所需支持,如人员、费用等。 - 软件测量(Measure)是对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件测量用于事后或实时状态, 如软件可靠性。
- 估算(Estimation)对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件估算用于事前, 如软件开发成本。
为什么需要软件度量?
- 项目实施过程中
提供软件开发的可视性;
跟踪和控制软件项目的开发;
评估软件开发质量,进行质量控制;
加强风险管理。 - 项目实施之后
对项目的实施情况进行评估;
为后续项目的积累经验数据。
软件度量的内容
-
三个方面
产品:各种文档和程序;
过程:各种软件开发活动;
资源:各种资源如人员、费用等; -
两个层次
软件度量的方法
- 分解方法,采用“分而治之”的策略,对软件项目进行分解,再采用逐步求精的方式进行估算,最后通过累加获得整体的估算结果。(WBS方法)
- 算术模型,通过估算模型来产生估算。
- 专家判断或经验法,如德尔菲法(Delphi technique)。
- 比例法是比较科学的一种传统估算方法,是基于类比的估算技术,根据过去类似的项目,直接进行类比获得当前项目的估算结果。
面向规模的度量
用软件代码行数目来表示软件项目规模
- 优点
简单易行,自然直观。 - 缺点
依赖于程序设计语言的表达能力和功能;
软件开发初期很难估算出最终软件的代码行数;
对精巧的软件项目不合适;
只适合于过程式程序设计语言。
面向功能的度量
用软件的功能表示软件的规模
-
功能点计算方法
FP = (0.65 + 0.01×Fi)×CT
CT : 5个信息量的“加权和”;
Fi: 14个因素的“复杂性调节值” (i =1…14);
0.65, 0.01都是经验常数。 -
CT的计算方法
用户输入数×加权因子(简单=3,平均=4,复杂=6)
用户输出数×加权因子(简单=4,平均=5,复杂=7)
用户查询数×加权因子(简单=3,平均=4,复杂=6)
文件数×加权因子(简单=7,平均=10,复杂=15)
外部界面数×加权因子(简单=5,平均=7复杂=10)CT = 上述计算值的总和
-
Fi的取值(0,1,2,3,4,5):0-没有影响,1-偶有影响,2-轻微影响,3-平均影响,4-较大影响,5-严重影响
-
优点
与程序设计语言无关, 在开发前就可以估算出软件项目的规模(事前)。 -
不足
没有直接涉及算法的复杂度,不适合算法比较复杂的软件系统;
功能点计算主要靠经验公式,主观因素比较多;
数据不好采集。
项目成本和工作量估算
- 专家估算法
由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。 - 经验估算模型
什么是CoCoMo模型?
-
COCoMo是指Constructive Cost Model,构造性成本模型,巴利·玻姆(Barry Boehm)于1981年提出,用于对软件开发项目的规模、成本、进度等方面进行估算
CoCoMo模型是一个综合经验模型,模型中的参数取值来至于经验值,并且综合了诸多的因素、比较全面的估算模型
比较实用、可操作,在欧盟国家应用较为广泛 -
CoCoMo模型的层次 - 支持不同的阶段
2.1 基本COCoMo模型
系统开发的初期,估算整个系统的工作量(包括维护)、软件开发和维护所需的时间
2.2 中间COCoMo模型
估算各个子系统的工作量和开发时间
2.3 详细COCoMo模型
估算独立的软构件,如各个子系统的各个模块的工作量和开发时间
软件质量度量
- 软件质量度量的重要性
质量是软件的生命,质量不高的软件会带来严重、甚至灾难性的后果
必须加强对软件质量的管理和监控,如ISO9001和CMM
必须在软件开发过程中能够可视所开发软件的质量 - 软件质量度量存在的困难
软件质量依赖于软件的内部特性及其组合
这些特性难以度量
在软件质量模型中,比较有代表性的有McCall提出的软件质量模型。
McCall的软件质量度量模型
- 质量要素
定义了与软件质量相关联的一些要素 - 质量要素的评价准则
定义了能够对质量要素进行度量的一些准则 - 软件质量的度量
定义了如何基于对质量要素的定量描述对软件质量进行度量的方法