软件规模管理 - wolai 笔记
常用方法:代码行技术、功能点技术

1.代码行技术

  • 估计每个功能需要源代码(参考类似项目的历史数据);
  • 累计;
  • 估计整个软件源程序行数。
当程序较小时常用的单位是代码行数(LOC),
当程序较大时常用的单位是千行代码数(KLOC)。

1.1具体方法

  • 多名(n)有经验软件工程师估计;a:程序最小规模;b:程序最大规模;m:程序最可能规模
  • 求三种规模的平均值
  • 求程序规模

1.2示例

CAD软件功能如下,通过代码行技术估算开发软件工作量。
  1. 用户界面及控制设施
  2. 二维几何分析
  3. 三维几何分析
  4. 数据库管理(所有几何数据和支持信息保存在其中)
  5. 计算机图形显示设施
  6. 外设控制功能(鼠标、激光打印机和绘图仪等)
  7. 设计分析模块
估算出每个功能所需代码行数,求平均
如三维几何分析功能代码行估算范围:平均最小4600行、平均最大8600行、平均最可能6900
L=(4600+4*6900+8600)/6=6800
其他功能估算方法类似,如下所示。

1.3优点

代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数。

1.4缺点

源程序不等于软件;实现语言不同代码行数不同;不适用非过程语言

2.功能点技术

2.1概念

依据软件信息域特性和软件复杂性评估结果估算软件规模。
信息域特性:
  1. 用户输入数:各用户面向不同应用的输入数据计数。
  2. 用户输出数:为用户提供面向应用的输出信息。
  3. 用户查询数:即是一次联机输入,以输出方式产生某种即时响应。
  4. 文件数:每一个逻辑主文件都应计数。
  5. 外部接口数:所有将信息传到另一系统中的机器可读写接口。

2.2步骤

(1)估算未调整功能点UFP

(2)计算技术复杂因子

(3)计算功能点数FP

FP=UFP×TCF\mathrm{FP}=U \mathrm{FP} \times \mathrm{TCF}
功能点数与所用编程语言无关,比代码行合理。但主观因素过多。

2.3示例

CAD软件为例

(1)估算未调整功能点UFP

估计计数=(乐观值+4 x 可观值+悲观值)/6
输入数24.3=(20+24*4+30)/6

(2)计算技术复杂性因子

D1=52
TCF=0.65+0.01×52=1.17

(3)计算功能点数

FP=UFP×TCF=320×1.17=375


Comment