CoCoMo模型-程序员宅基地

技术标签: 操作系统  数据库  

CoCoMo模型

计算机软件的估算模型是根据以前完成项目的实际数据导出的,用于软件项目的计划阶段。
模型是根据从前的局部的数据得出的,估算模型不可能完全适用于当前所有的软件项目和全部开发环境。这些模型的计算结果仅供参考。
1981
Boehm提出构造性成本模型”(Constructive Cost Model),简称CoCoMo模型。它是在静态、单变量模型的基础上构造出来的.
CoCoMo
模型分为基本、中间、详细三个层次,分别用于软件开发的三个不同阶段。
基本CoCoMo模型 用于系统开发的初期,估算整个系统的工作量(包括软件维护)和软件开发所需要的时间。
中间CoCoMo模型 用于估算各个子系统的工作量和开发时间。
详细CoCoMo模型 用于估算独立的软部件,如子系统内部的各个模块。

基本CoCoMo模型
E = aLb

D = cEd

其中:E表示工作量,单位是人月(PM)
D
表示开发时间,单位是月(M)
L
是项目的代码行估计值,单位是千行代码
a ,b ,c ,d
是常数,取值如下表所示。
Boehm把软件划分为组织型、半独立型和嵌入型三类,允许不同应用领域和复杂程度的软件按照三类软件的适用范围选取相应的参数a,b,c,d
软件类型 a b c d 适用范围
组织型 2.4 1.05 2.5 0.38 各类应用程序

半独立型 3.0 1.12 2.5 0.35 各类实用程序、编译程序等


嵌入型 3.6 1.20 2.5 0.32 实时处理、控制程序、操作系统

中间CoCoMo模型
以基本CoCoMo模型为基础,在工作量估计公式中乘以工作量调节因子(EAF
E = aLb *EAF
其中:L是软件产品的目标代码行数,a,b是常数,取值如下表所示。

中间CoCoMo模型参数
软件类型 a b
组织型 3.2 1.05
半独立型 3.0 1.12
嵌入型 2.8 1.20

工作量调节因子(EAF)与软件产品属性、计算机属性、人员属性、项目属性有关

软件产品属性
1.
软件可靠性、2.软件复杂性、3.数据库的规模。

计算机属性
4.
程序执行时间、5.程序占用内存的大小、6.软件开发环境的变化、7.软件开发环境的响应速度。

人员属性
8.
分析员的能力、9.程序员的能力、10.有关应用领域的经验、11.开发环境的经验、12.程序设计语言的经验

项目属性
13.
软件开发方法的能力,14.软件工具的质量和数量、15.软件开发的进度要求。

四种属性共15个要素。
每个要素调节因子 Fi, i=1,2,…...,15,的值分为:

很低、低、正常、高、很高、极高,共六级。
正常情况下 Fi=1
Boehm
推荐的Fi值范围
(0.70, 0.85, 1.00, 1.15, 1.30, 1.65)

15Fi的值选定后,EAF的计算如下
EAFF1*F2*……*F15
调节因子集的定义和调节因子定值是由统计结果和经验决定的。不同的软件开发组织,在不同的历史时期,随着环境的变化,这些数据可能改变。

使用中间CoCoMo模型可以估算开发软件产品的工作量,比较各种开发方案的工作量。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xinzheng_wang/article/details/83880773

智能推荐

CSS中的圆角和阴影

在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。(必需值)水平阴影(horizontal shadow),可以为负值。(必需值)水平阴影(horizontal shadow),可以为负值。(必需值)垂直阴影(vertical shadow),可以为负值。(必需值)垂直阴影(vertical shadow),可以为负值。(可选值)将外(盒子的背面)阴影改为内(盒子之上)阴影。CSS3 中新增了盒子阴影,可以使用。属性为盒子添加阴影。(可选值)阴影模糊程度。(可选值)阴影模糊程度。

springcloud第4季 springcloud-alibaba之sentinel2

多语言异构化服务架构的流量治理组件,主要以流量为切入点,从。等多个维度来帮助开发者保障服务的稳定性。sentinel是面向。

OpenHarmony语言基础类库【@ohos.url (URL字符串解析)】

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

浏览器安全之同源策略_浏览器同源策略-程序员宅基地

文章浏览阅读1.2k次。明确定义集成系统之间的接口和端点。确定HTTP请求和响应的格式,包括使用的数据编码格式(如JSON或XML),以及请求和响应的头部信息。定义HTTP的接口,首先应该确定接口功能和目标,明确接口的目的和提供的功能。确定接口所要实现的业务逻辑或服务,并理解它在整个系统中的角色和作用。然后选择HTTP方法和端点,根据接口的功能,选择合适的HTTP方法(如GET、POST、PUT、DELETE等)来表示接口的操作类型。同时,定义接口的端点(Endpoint),即接口的URL路径,例如:/api/users。_浏览器同源策略

【ARM 裸机】BSP 工程管理

ARM 裸机,BSP 工程管理,之后的工程结构一目了然,层次分明,不再乱乱了

三 STM32F4使用Sys_Tick 实现微秒定时器和延时_stm32如何实现定时器-程序员宅基地

文章浏览阅读3.3k次,点赞46次,收藏48次。时钟是由电路产生的周期性的脉冲信号,相当于单片机的心脏。_stm32如何实现定时器

随便推点

前端table组件封装_大型项目表格封装前端-程序员宅基地

文章浏览阅读277次。前端表格组件是现代Web应用程序中常见的UI控件之一,也是前端开发人员最常用的控件之一。在实际项目中,一个好的前端表格组件必须具备稳定性、易用性和扩展性等特点。因此,对于前端表格的封装技术非常重要。最后,在项目中使用前端表格组件时,需要谨慎选择。一个好的前端表格组件应该是稳定、高效和易用的,并且需要与项目架构和UI风格相匹配。_大型项目表格封装前端

如何选择最佳机器学习算法?_咱们决定采用哪种机器学习-程序员宅基地

文章浏览阅读5.8k次,点赞3次,收藏18次。讲完随机森林算法之后,小冰开口问道 :“咖哥,上面的这几种经典算法,你讲得简明扼要,感觉都挺好。不过,现在的问题来了,算法一多,我反而不知道如何选择了。你能不能给我们说说,什么样的算法适合解决什么样的问题?”咖哥回答 :“这很值得说一说。没有任何一种机器学习算法,能够做到针对任何数据集都是最佳的。通常,拿到一个具体的数据集后,会根据一系列的考量因素进行评估。这些因素包括 :要解决的问题的性质、数据集大小、数据集特征、有无标签等。有了这些信息后,再来寻找适宜的算法。”让我们从下页这张 Sklearn _咱们决定采用哪种机器学习

sj定理-程序员宅基地

文章浏览阅读463次。题目类型 取石子 取到最后一粒石子就算输Anti-SG游戏决策集合为空的操作者胜其余规则与SG游戏一致这种游戏有一个特殊的解决工具:SJ定理我们先来看一下SJ定理的内容SJ定理对于任意一个Anti-SG游戏,如果定义所有子游戏的SG值为0时游戏结束,先手必胜的条件:游戏的SG值为0且所有子游戏SG值均不超过1游戏的SG值不为0且至少一个子游戏SG值超过1游戏的sg值就是nim的sg值。..._sj定理

零基础学习hadoop-知乎-程序员宅基地

文章浏览阅读67次。作者:Han Hsiao链接:https://www.zhihu.com/question/19795366/answer/24524910来源:知乎著作权归作者所有,转载请联系作者获得授权。推荐一些Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambar..._hadoop简介知乎

grpc.WithInsecure已弃用_grpc.withinsecure()-程序员宅基地

文章浏览阅读1k次。grpc.WithInsecure()已弃用_grpc.withinsecure()

人工智能技术概述_3.机器学习

广义上来说,机器学习指专门研究计算机怎么模拟或实现人类的学习行为以获取新的知识或技能的学科,使计算机重新组织已有的组织结构并不断改善自身的性能。更加精确地说,一个机器学习的程序就是可以从经验数据E中对任务T进行学习的算法,它在任务T的性能度量P会随着对于经验数据E的学习而便得更好。

推荐文章

热门文章

相关标签