软件项目工作量估算之复用程度分析
软件工作量估算是我们在对一个软件项目成本估算过程中,在完成软件规模估算后需要进行的第2项估算工作。在软件项目工作量估算过程中,我们除了要进行风险分析外,还要考虑软件复用的程度。
软件复用就是将已有的软件成分用于构造新的软件系统。在现代的软件开发过程中,为了提高效率和质量,大部分软件企业都已将某些通用功能转化为可重用功能,或者开发组织具备某方面项目的开发经验,遗留下了可以复用的组件,这些情况都可能降低开发所需的工作量。因此,可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。
软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序、测试用例等等。如果是在一个系统中多次使用一个相同的软件成分,则不称作复用,而称作共享;对一个软件进行修改,使它运行于新的软硬件平台也不称作复用,而称作软件移值。
我们在软件工作量估算过程中对复用情况的分析原则,可以考虑从系统功能的复用度入手,结合功能点方法,对于每个逻辑文件的复用程度给出明确的定义和系数。可以应用在规模估算之后,在未调整规模的基础上首先进行复用程度的调整。
如下表所示,首先可对复用程度进行分级,并确定不同级别的复用程度与规模估算之间的系数关系。例如,将复用程度分为三级,每个级别对应不同的系数。
开发组织可以分析系统中不同功能组件的复用度,利用规模估算的结果乘以对应系数来对规模进行调整,从而间接实现对工作量的调整。
如何判断复用度,可以根据企业的实际情况出发,定义适合本组织的复用度:
以下为复用度定义示例:
对于ILF:
复用程度为1(高):现有的产品已经处理过这些数据,且EI/EO/EQ完全达到或超过需求。
复用程度为2(中):现有的产品处理过这些数据,但提供的EI/EO/EQ与需求有一定的差距。
复用程度为3(低):现有产品没有处理过类似的数据。
对于EIF:
复用程度为1(高):现有产品有公开的可调用的方法与类似接口集成。
复用程度为2(中):现有产品曾与类似接口集成过,但发生在编码级。
复用程度为3(低):现有产品从未与类似接口集成过。
从组织实际应用的角度出发,可以定义更多级别的复杂度,但需要考虑在判断复杂度方面所付出的成本。