软件开发成本估算

上传人:小** 文档编号:48665118 上传时间:2022-01-13 格式:DOC 页数:6 大小:99KB
返回 下载 相关 举报
软件开发成本估算_第1页
第1页 / 共6页
软件开发成本估算_第2页
第2页 / 共6页
软件开发成本估算_第3页
第3页 / 共6页
点击查看更多>>
资源描述
软件开发成本估算软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。不同与传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗。另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。因此,软件开发成本的估算,应是从软件计划、 需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。软件开发成本估算的经验模型1. Put nam 模型1978年Putnam提出的,一种动态多变量模型。L = Ck * K 1/3 * td 4/3其中:L 源代码行数(以LOC计)K 整个开发过程所花费的工作量(以人年计)td 开发持续时间(以年计)Ck 技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表Ck的典型值开发环境开发环境举例2000差没有系统的开发方法,缺乏文档和复审8000好有合适的系统的开发方法,有充分的文档和复审11000优有自动的开发工具和技术从上述方程加以变换,可以得到估算工作量的公式:K = L 3/(Ck 3*td 4)还可以估算开发时间:td = L 3/(Ck 3*K) 1/42. COCOM模型 (constructive cost model)这是由TRW公司开发,Boehm提出的结构化成本估算模型。是一种精确的、易于使用的成本估算方法。COCOM模型中用到以下变量:DSI 源指令条数。不包括注释。1KDSI = 1000DSIMM开发工作量(以人月计)1MM = 19人日=152人时=1/12人年TDEV- 开发进度。(以月计)COCOMO型中,考虑开发环境,软件开发项目的类型可以分为3种:1. 组织型(organic):相对较小、较简单的软件项目。开发人员对开发目标理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大(50000行)2. 嵌入型(embedded):要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起。对接口,数据结构,算法的要求高。软件规模任意。如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等。3. 半独立型(semidetached):介于上述两种软件之间。规模和复杂度都属于中等或更高。最大可达30万行。估算公式:基本COCOM模型估算工作量和进度的公式如下工作量: MM = r*(KDSI) c进度: TDKV = a(MM)b其中经验常数r, c, a, b取决于项目的总体类型。COCOM模型按其详细程度可以分为三级:基本COCOM模型,中间COCOM模型,详细COCOM模型。其中基本COCOM模型是是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。中级COCOM模型在基本COCOM模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。详细COCOM模型包括中间COCOM模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计)的影响。基本 COCOM模型通过统计63个历史项目的历史数据,得到如下计算公式。总体类型工作量进度组织型MM = 10.4*(KDSI) 1.05TDKV = 10.5(MM)0.38半独立型MM = 3.0*(KDSI) 1.12TDKV = 10.5(MM)0.35嵌入型MM = 3.0*(KDSI) 1.200 32TDKV = 10.5(MM)最近在温习软件工程的课程,对软件项目成本估算模型有了些认识,以下是我的一些心得,希望与大家分享.首先我们需要明确的是为什么要做软件项目预算.首先软件项目是不同于一般工程项目的项目类型.受用户需求,开发方式的影响很大.没有明确的预算,会导致软件开支的不可控制,随着项目的进行,开发放要承担的风险也会增加.另外如果没有预算,更不 可能与客户达成开发协议.没有人会傻到委托别人做一个自己都不知道要花多少钱才能完成的项目.最后也就是我个人对项目预算的看法,好的项目预算应该包括团体预算与小组或个人预算两部分,好的项目经理应该了解自己的团队,对突发事件等的考虑应该放在项目预算之中,然后将项目的开支细化到小组乃至个人,这一点看似多余,但是却很有必要.比如在实际的开发过程中,由于为了缩短工期而招收新的程序员,这就需要对新程序员进行培训.新程序员消耗的团队成本是要考虑在内的.这也就是传统意义上 的peron-monthes所不能完全表达的部分.新增人员的开支是不能被忽略的.这需要在实际开发过程中统计得到数据,来精确计算.项目策划任务集:1. 明确项目范围2. 确定可行性3. 分析风险4. 确定需要的资源a. 确定需要的人力资源b. 确定可复用的软件资源c. 标识环境资源5. 估算成本和工作量a. 分解问题b. 使用规模,功能点,过程任务或用例等方法进行两种以上的估算c. 调和不同的估算6. 制定项目进度计划a. 建立一组有意义的任务集合b. 定义任务网络c. 使用进度计划工具制定时间表d. 定义进度跟踪机制在项目策划任务集中,每一步都涉及到软件开发成本.对人员,环境,可复用软件的资源的统一调度,将直接影响成本.其中受软 件开发的特殊行,人力资源成本是最不好控制的.相对来说环境资源就容易控制得多.环境资源包括软件工具,硬件,网络资源等,当然还要包括公司的日常费用(刨除开发团队佣金与开支,因为这部分属于人力资 源成本).这些无非是买来或者维持,成本是很容易计算的.可复用软件资源就要考虑到软件的具体设计,功能模块的关系以及系统架构等具体信息.专家建议是将软件资源分为如下四部 分:1. 成品构件:指能够从第三方直接购买的商品构件.或者以前项目中完全相同的构件.2. 具有完全经验的构件:以前项目开发过的,与当前需求相似的功能构件.3. 具有部分经验的构件:为以前项目开发,与当前项目要构造的软件有关的已有规格,设计,代码或测试数据.但是需要从新架构.4. 新构件开发的成本可像而知,是升序排列的.所以在软件开发的一开始就应该考虑的使用以后技术,对可复用软件资源进行整理,不能在开发过程中才考虑,要知道一个关键构件的重用会为软件开发带来多大的效益.不过凡事也不是必然,不已有构件的扩展要考虑到原构件设计,开发文档的完整性等因素.还是就人力资源进行分析,由于跟人能力与技术方向的不同programmer不可能像一般意义上的工人或者机器一样有效地预期成本.我们可以开发一个原型,利用原型数据来对应分析每个人的价值与成本.但是应该考虑的是,随着程序员的个人因素的 变更(年龄,职务,时间,身体状况等),原型数据只能作为一个一般参考.例如SARS期间,或流行性感冒的传播,人力成本就会变得 不好控制.(极限情况下,这将使一个项目面临流产)目前流行的估算模式大致可分为如下几类:分解估算:1. 软件规模估算.2. 基于问题的估算.3. 基于loc估算.(loc:代码行数)4. 基于 fp 估算.(fp:functionpoint功能点)5. 基于过程估算.6. 基于用例估算.经验估算:典型的经验估算模型是通过回归分析从以往的软件项目中收集的数据得来的.这种模型的总体结构表现为下面的形式:E=A+B*(e)9其中A,B,C都是经验常量.E是工作量(单位:人*月),e是估算变量(loc或者fp).除了公式表达的方式以外,还有一些形式的项目调整成分,如问题的复杂程度,开发人员经验,开发环境等,一下列出些常用的调整系数:Personnel Attributes5Analyst capability(ACAP)6Analyst capability(ACAP)Programmer capabilityApplications experienceVirtual machine ExperienceProgramming language experienceProject AttributesModern programming practicesSoftware ToolsRequired Development schedule(PCAP)(AEXP)(VEXP)(LEXP)(MODP)(TOOL)(SCED)#Analyst capability(ACAP)#Analyst capability(ACAP)这些系数都应该应该根据具体的项目进行调整和设计cocomo:(constructive cost model)这种模型是Barry Boehm 在其论述软件工程经济学中介绍的一种层次结构的软件估算模型.现在已经被广泛应用.主要应用于应用组装模型,早期设计阶段模型,体系结构后阶段模型.将在以后的日志中对大家进行更深入的介绍.#
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!