1. 首页 > 新闻动态 > 行业动态

信息化工程丨软件规模及成本估算方法分析

作者:小编 日期:2021-11-03 16:57:37 点击数:

估计软件的大小是软件项目管理的重要组成部分。它可以帮助项目经理进一步预测构建项目所需的工作量和时间。在软件项目规模估算中使用了各种措施。其中一些是:

  • 代码行

  • ER图中的实体数

  • 详细数据流图中的进程总数

  • 功能点


1. 代码行数(LOC):

顾名思义,LOC 统计一个项目中源代码的总行数。

  • LOC 的单位是:

  • KLOC- 千行代码

  • NLOC- 非注释代码行

  • KDSI- 数以千计的交付源指令

通过将其与同类现有系统进行比较来估计其大小。专家使用它来预测软件各个组件所需的大小,然后将它们相加以获得总大小。

好处:

  • 被普遍接受并在许多模型中使用,例如 COCOMO。

  • 估算更接近开发者的视角。

  • 使用简单。

缺点:

  • 不同的编程语言包含不同数量的行。

  • 这种技术没有合适的行业标准。

  • 在项目的早期阶段很难使用这种技术来估计大小。


2. ER 图中的实体数量:

ER 模型提供项目的静态视图。它描述了实体及其关系。ER模型中的实体数量可以用来衡量项目规模的估计。实体的数量取决于项目的规模。这是因为更多的实体需要更多的类/结构,从而导致更多的编码。

好处:

  • 可以在规划的初始阶段进行尺寸估算。

  • 实体的数量与所使用的编程技术无关。

缺点:

  • 没有固定的标准。一些实体比其他实体贡献更多的项目规模。

  • 就像 FPA 一样,它在成本估算模型中使用较少。因此,它必须转换为 LOC。


3、详细数据流图中的进程总数:

数据流图(DFD)表示软件的功能视图。该模型描述了软件中涉及的主要流程/功能以及它们之间的数据流。利用 DFD 中的函数数量来预测软件大小。已经存在的类似类型的过程被研究并用于估计过程的大小。每个进程的估计大小的总和给出了最终的估计大小。

好处:

  • 它独立于编程语言。

  • 每个主要流程都可以分解为更小的流程。这将提高估计的准确性

缺点:

  • 研究类似的过程来估计大小需要额外的时间和精力。

  • DFD的构建不需要所有的软件项目。


4、功能点分析(重点推荐):

该方法利用软件支持的功能数量和类型来求FPC(function point count)。

功能点分析的步骤是:

  • 计算每种建议类型的功能数量。

  • 计算未调整的功能点(UFP)。

  • 找到总影响度(TDI)。

  • 计算价值调整因子(VAF)。

  • 找到功能点计数(FPC)。

对以上各点的解释如下:

  • 计算每个提议类型的函数数找出属于以下类型的函数数: 外部输入:与进入系统的数据相关的功能。外部输出:与退出系统的数据相关的功能。外部查询:它们导致从系统检索数据,但不会更改系统。内部文件:系统内维护的逻辑文件。此处不包括日志文件。外部接口文件:这些是我们系统使用的其他应用程序的逻辑文件。

  • 计算未调整的功能点 (UFP):根据复杂性对五种功能类型中的每一种进行分类,例如简单、平均或复杂。将每个函数类型的计数与其加权因子相乘,然后求出加权和。每种类型基于其复杂性的权重因子如下:



信息化工程丨软件规模及成本估算方法分析(图1)



  • 找出总影响程度:使用系统的“14个一般特征”来找出每个特征的影响程度。所有14个影响度的总和将给出TDI。TDI的范围是 0 到 70。 14个一般特征是:数据通信、分布式数据处理、性能、重用配置、事务率、在线数据输入、最终用户效率、在线更新、复杂处理可重用性、安装轻松、易于操作、多站点和促进变革
    上面的每一个特征都是在 0-5 的范围内进行评估的。


Compute Value Adjustment Factor(VAF):使用以下公式计算VAF
VAF = (TDI * 0.01) + 0.65

求Function Point Count:使用以下公式计算FPC
FPC = UFP * VAF

好处:

  • 它可以很容易地用于项目规划的早期阶段。

  • 它独立于编程语言。

  • 它可用于比较不同的项目,即使它们使用不同的技术(数据库、语言等)。