📜  软件工程| COCOMO模型(1)

📅  最后修改于: 2023-12-03 14:57:51.321000             🧑  作者: Mango

软件工程 | COCOMO模型

什么是软件工程?

软件工程是指应用系统化、规范化、可量化的方法进行软件开发、运行、维护和退役的全过程。软件工程旨在通过系统思维、系统方法和系统管理等,提高软件的开发效率、质量和可维护性。

软件工程涉及到诸多领域,如需求分析、设计、编程、测试、配置管理、项目管理等,是一门综合性极强的学科。

COCOMO模型

COCOMO模型(Cost Constructive Model)是一种常见的软件估算方法,由Barry Boehm教授于1981年创建,现已经成为产业普遍使用的软件项目成本估算模型。COCOMO模型根据软件规模、复杂度、开发人员经验等因素,对软件开发成本进行估算,帮助开发者预估项目的开发进程与成本。

COCOMO模型分为三种模式:

  • 基本模式(Basic COCOMO Model)
  • 中级模式(Intermediate COCOMO Model)
  • 高级模式(Detailed COCOMO Model)
基本模式

基本模式是CO不·MO的最初版本,主要根据规模测量代价。 该模型假定软件大小和开发人员人数是能够相互转化的。 这就是说,随着软件代码行数的增加,需要的开发人员数量也会增加,并且开发时间也会相应增加。

计算公式:

Effort = a x (KLOC) ^ b
Duraation = c x (Effort) ^ d
People = Effort / Duration
  • Effort:工作量估计,用人月表示;
  • Duration:开发完成所需要的时间,以月为单位;
  • People:完成开发所需要的人数。

其中,KLOC指千行代码数,单位为行。a、b、c、d四个参数是需要进行参数调整的。

中级模式

中级模式在基本模式的基础上,增加了对其他因素(开发人员能力、人员配备和项目特征等)的考虑。COCOMO II增加了17种因素,将这些因素分为三类:成本驱动器,规模因子和成本模型。根据实际情况,可以启用所需的因素。

计算公式:

Effort Applied = A(BSize)x [ TDEV ] x [ SCED ]
Duration = D(A(BSize)) * [ TDEV ] * [ SCED ]x
People Required = Effort Applied / Duration

其中:

  1. Effort Applied:用人月计算的工作量;
  2. Duration:人月表示的持续时间,这描绘了将要花费的时间人数;
  3. People Required:人数;
  4. A 和 D:由能估计大小范围的配合获得的常量。’Bsize’是用KLOC量化的设计大小,如果刚好知道代码的大小,则只要直接使用值就可以了;
  5. TDEV(Team Deviation):表示团队所处的环境的难度。有多个等级可用,如Nominal(规范),Extremely Low(非常低),Extra High(特别高)等;
  6. SCED(Schedules):表示整个时间化时需要花费多长时间。
高级模式

高级模式是在中级模式的基础上,增加了软件的多个功能和特性,并对结果进行了详细分析。这将按照紧急性,可靠性,效率,大小等功能来考虑。计算公式非常复杂,并且需要更多数据以进行精准估计。高级模式由于计算复杂,会引入更多的错误,因此在实战中的应用较少。

结语

COCOMO模型适用于大型软件项目的成本估算。随着全球软件开发行业的快速发展,COCOMO模型已被广泛应用在软件领域。 但是,由于各种原因,实际成本和预算之间的差距和项目超支可能会存在,因此在决策项目的类型和目标时,还必须考虑其他因素。