主要有代码行技术和功能点技术
一、代码行技术
用代码行技术估算软件规模时,当程序较小时常用的单位时代码行数,当程序较大时常用的单位是千行代码数。
多名有经验的软件工程师分别估计:
- 程序的最小规模a
- 最大规模b
- 最可能的规模m
在分别算出三者平均值后,再L=(a+4m+b)/6
优点:代码是所有软件开发项目的产品,且容易计算行数
缺点:
1.源程序仅仅是软件配置的一个成分,用它的规模来代表整个软件的规模似乎不太合理
2.用不同的语言实现同一个软件所需要的代码行数并不相同
3.并不适合于非过程语言
二、功能点技术
依据对软件信息域和软件复杂性的评估结果估算软件规模,用功能点FP做单位度量.
信息域特性主要有五个:
- 输入项数:用户向软件输入的项数,给软件提供面向应用的数据
- 输出项数:软件向用户输出的项数,向用户提供面向应用的信息
- 查询数:查询即是一次联机输入,导致软件以联机输出方式产生某种即时响应
- 主文件数:逻辑主文件(数据的逻辑组合,可能是大型数据库的一部分或是一个独立的文件)的数目
- 外部接口数:机器可读的全部接口的数量,用这些接口把信息传送给另一个系统
估算功能点的步骤:
1.计算未调整的功能点数UFP。
把软件信息域的每个特性都分为简单、平均或复杂级别,并且分配功能点数。再进行每一类点数×项数的总和累加。
2. 计算技术复杂性因子TCF
由14种技术因素影响。分别是:数据通信、分布式数据处理、性能标准、高负荷硬件、高处理率、联机数据输入、终端用户效率、联机更新、复杂的计算、可重用性、安装方便、操作方便、可移植性和可维护性。
每个因素分配一个0-5的值,然后计算综合影响程度:DI=14个值累加
最后用TCF=0.65+0.01×DI得到。