软件开发成本估算
- 格式:doc
- 大小:49.00 KB
- 文档页数:5
软件工程中的软件工程项目成本估算与控制软件工程项目成本估算与控制是软件工程中一个至关重要的管理环节。
在进行软件开发过程中,准确估计和有效控制项目成本是保证项目进展和质量的关键因素之一。
本文将讨论软件工程项目成本估算与控制的方法和重要性,并介绍一些常用的成本控制技术。
一、软件工程项目成本估算的方法1. 基于历史数据的估算方法通过对历史项目的成本数据进行统计分析,可以得出一些有用的估算指标。
例如,可以计算出平均每行代码的开发成本,或者每个功能点的开发成本。
在新项目中,通过统计代码行数或者功能点数量,可以根据历史数据得出一个大致的估算结果。
2. 类比估算方法类比估算方法是通过对类似的项目进行类比分析,从而得出新项目的成本估算。
通过比较项目的规模、复杂性、技术难度等因素,可以找到一个类似项目的经验数据,并根据这些数据进行估算。
3. 参数化估算方法参数化估算方法是对软件项目进行模型化,通过选择一些参数和变量,并根据这些参数和变量计算出项目的成本。
例如,可以根据项目的规模、人力资源、工期等参数,通过软件估算模型进行成本估算。
二、软件工程项目成本控制的重要性软件工程项目成本控制对于项目的成功实施和交付具有重要意义。
1. 预防成本超支通过对项目成本进行控制,能够及时发现成本超支的情况,并采取相应的措施进行调整。
这样可以避免项目进度的延误和额外成本的产生。
2. 提高项目管理效率成本控制需要对项目进行细致的分析和跟踪,这样可以提高项目管理的效率和水平。
通过对项目成本的监控和调整,可以更好地掌握项目进度和资源分配。
3. 提供项目决策依据成本控制能够为项目决策提供有效的数据支持。
通过对项目成本的分析和预测,可以为项目经理和相关决策者提供明确的信息,从而做出正确的决策。
三、常用的软件工程项目成本控制技术1. 阶段性成本分析在项目的不同阶段,对成本进行分析和比较,可以及时发现成本问题,并采取相应的措施进行调整。
例如,在需求分析阶段就能够发现需求变更带来的成本增加,并做出相应的调整。
软件开发成本估算与工作量计算例题摘要:1.软件开发成本的构成2.软件开发成本的估算方法3.工作量计算在软件开发成本估算中的作用4.实际案例分析:如何进行软件开发成本估算与工作量计算正文:在软件开发过程中,成本估算和工作量计算是至关重要的环节。
合理的成本估算可以帮助企业做好项目预算和计划,而准确的工作量计算则能有效地评估项目的进度和人力资源需求。
本文将首先介绍软件开发成本的构成,然后探讨软件开发成本的估算方法,以及工作量计算在其中的作用。
最后,将通过一个实际案例分析,详细说明如何进行软件开发成本估算与工作量计算。
一、软件开发成本的构成软件开发成本主要包括以下几个方面:1.人力成本:包括开发人员、测试人员、项目管理人员的工资福利等。
2.硬件成本:如计算机、服务器、存储设备等购置费用。
3.软件成本:包括购买或授权的软件许可证费用。
4.培训成本:针对新软件的培训和教育费用。
5.通信成本:网络设备、通讯线路租赁等费用。
6.基础设施建设成本:如机房建设、设备安装等费用。
7.管理成本:包括项目管理、行政管理、财务管理等费用。
8.其他成本:如资料费、差旅费、咨询费等。
二、软件开发成本的估算方法软件开发成本的估算方法主要有以下几种:1.基于历史数据的方法:通过分析过去类似项目的成本数据,进行类比估算。
2.基于参数的方法:通过统计软件开发过程中的各项参数,如代码行数、开发周期等,进行定量估算。
3.基于工作的方法:将项目分解为各项任务,估算每项任务的工作量,然后根据工作量和工作效率计算总成本。
4.基于风险的方法:分析项目风险,对可能导致的成本增加进行预测。
三、工作量计算在软件开发成本估算中的作用工作量计算是软件开发成本估算的重要依据。
它可以帮助我们:1.确定项目的人力资源需求:根据工作量大小,合理配置开发团队。
2.制定项目进度计划:根据工作量和工作效率,合理安排项目周期。
3.评估项目风险:工作量计算有助于发现潜在的工作量过大或过小的任务,从而提前做好风险应对措施。
什么是软件成本评估报告软件成本评估报告是一份详细分析和评估软件开发、运维、维护以及相关支出的报告。
它包括了软件开发全生命周期的成本估算,包括人员工资、硬件设备、软件工具、培训、测试、部署等方面的费用。
软件成本评估报告是为了帮助管理层做出决策,确定项目的可行性、预算以及资源管理等方面的重要依据。
软件成本评估报告可以分为以下几个方面的内容:1. 项目目标和需求分析:对项目目标和需求进行详细分析,以确定项目的范围和规模。
这一部分通常包括业务需求、功能需求、非功能需求等方面的评估。
2. 软件开发成本评估:这一部分主要评估软件开发周期中涉及的各个环节的成本。
包括硬件设备购置费用、软件工具购买费用、开发人员工资和福利、培训费用、测试费用、项目管理费用等。
同时还需要考虑开发过程中可能产生的风险和变更,进行相应的成本估算。
3. 软件运维与维护成本评估:软件运维与维护是软件全生命周期非常重要的环节,也是需要考虑的重要成本。
这一部分通常包括硬件设备维护费用、软件更新和升级费用、系统运维人员工资和培训费用等。
4. 其他支出评估:除了软件开发和运维成本,还有一些与软件相关的其他支出需要考虑,如购买软件许可证费用、服务器托管费用、域名购买费用等。
这些支出也需要在成本评估报告中进行详细列示和估算。
5. 成本估算的不确定性评估:软件开发的成本估算往往是具有一定不确定性的,因此需要进行不确定性评估。
这包括对风险和变更的评估,并计算出相应的风险和变更成本。
同时,还需要考虑到可能的资源闲置和效率损失等因素,进行合理的调整。
6. 成本预算和资源管理:根据成本估算报告中的数据和分析,确定软件开发项目的预算,并进行合理的资源管理。
这包括项目计划、项目进度控制、人员和物资的合理配置等。
同时,还需要考虑到成本和资源之间的平衡关系,以确保项目的可行性和可持续发展。
总之,软件成本评估报告是一份对软件开发和运维全生命周期中涉及的各个方面的详细分析和评估报告。
软件研发成本计算方法软件研发成本计算是指在软件开发过程中所需投入的费用,包括人力资源、硬件设备、软件工具、测试设备等方面的成本。
合理的软件研发成本计算对于企业能否控制项目成本、高效地完成软件开发具有重要意义。
因此,本文将介绍几种常见的软件研发成本计算方法,包括工作量估算法、功能点估算法和基于活动成本的估算法。
一、工作量估算法工作量估算法是根据软件项目的大小、复杂度等要素来估算软件研发成本的方法。
该方法基于对软件开发过程中所需工作量的估计,常见的工作量估算法有人周工作量法、用例点法、功能点法等。
下面将分别介绍这些方法。
1.人周工作量法:人周工作量法是一种常用的工作量估算方法,它基于项目所需的人力资源数量和时间来计算软件研发成本。
该方法首先确定项目所需的人员类型和数量,然后根据项目需求和工作量来估算项目所需的工作时间,最后将人员数量和工作时间相乘得出总的人周工作量。
根据人周工作量,可以计算出相应的研发成本。
2.用例点法:用例点法是一种基于软件需求的工作量估算方法,它根据软件功能和复杂度来估算软件开发过程中的工作量。
用例点法首先根据软件需求分析中的用例来确定软件功能点的个数,然后根据用例的复杂度来赋予不同的权重,最后将各个用例的功能点与权重相乘并求和,得到总的用例点数。
根据用例点数,可以计算出相应的研发成本。
3.功能点法:功能点法是一种基于软件功能的工作量估算方法,它通过对软件功能的描述和评估来估算软件开发过程中的工作量。
功能点法首先根据软件需求分析中的功能点来确定软件的功能点个数,然后评估每个功能点的复杂度和难度,最后将各个功能点的复杂度和难度相加得到总的功能点数。
根据功能点数,可以计算出相应的研发成本。
二、基于活动成本的估算法基于活动成本的估算法是一种以活动为单位来估算软件研发成本的方法。
该方法将软件研发过程分解为一系列的活动,通过对每个活动所需的资源、时间和费用进行估计,最后将各个活动的成本相加得到总的研发成本。
软件成本估算报告模板1. 引言1.1 项目背景(在这里简要说明项目背景,包括软件的目标、作用、预期效益等)1.2 报告目的本报告旨在对软件开发过程中涉及的成本进行估算,为项目决策提供参考依据。
2. 软件开发成本分类(在这里列出软件开发过程中涉及的各类成本,并对其进行简要描述)成本分类简要描述人工成本开发人员的薪水、福利、培训费用等设备成本开发、测试和部署所需的硬件设备及其维护费用软件工具购买或租赁的开发、测试、部署所需的软件工具环境成本搭建及维护开发、测试和生产环境所需的费用培训成本为开发人员提供相关技术培训的费用维护成本软件上线后的维护、优化以及故障修复所需的费用3. 软件开发成本估算3.1 人工成本估算(在这里列出各个角色的人员数量,以及其工资水平,并计算出人工成本总额)角色人数工资水平(元/月)人工成本(元/月)项目经理 1 20000 20000软件设计师 2 15000 30000开发人员 5 10000 50000测试人员 3 8000 24000总计11 - 1240003.2 设备成本估算(在这里列出所需的各类设备,并估算其采购成本及年维护费用)设备数量单价(元)采购成本(元)年维护费用(元)-开发工作站 5 8000 40000 5000服务器 2 20000 40000 6000总计- - 80000 110003.3 软件工具估算(在这里列出所需的软件工具,并估算其购买或租赁费用)工具购买/租赁方式费用(元/年)集成开发环境购买20000自动化测试工具租赁10000总计- 300003.4 环境成本估算(在这里列出所需的环境搭建及维护费用)环境搭建/维护费用(元/年)-开发环境10000测试环境8000生产环境12000总计300003.5 培训成本估算(在这里列出所需的培训费用)培训项目费用(元)-技术培训10000团队协作培训8000总计180003.6 维护成本估算(在这里列出软件上线后的维护成本)维护项目费用(元/年)-故障修复20000功能优化10000总计300004. 总结与建议综合以上成本估算结果,我们得出以下结论和建议:1. 开发人员的工资占据了最大的成本比重,合理控制和管理人工成本是非常重要的。
软件开发成本估算软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。
不同与传统的工业产品,软件的成木不包括原材料和能源的消耗,主要是人的劳动的消耗。
另外,软件也没有一个明显的制造过程,它的开发成木是以一次性开发过程所花费的代价来计算的。
因此,软件开发成木的估算,应是从软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。
软件开发成本估算的经验模型1. Putnam 模型1978年Putnam提岀的,一种动态多变量模型。
L = Ck * K13 * td13其中:L --------------------- 源代码行数(以LOC计)K ------------------- 整个开发过程所花费的工作量(以人年计)td ------------------ 开发持续时间(以年计)Ck ----------------- 技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表软件开发成本估算软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。
不同与传统的工业产品,软件的成木不包括原材料和能源的消耗,主要是人的劳动的消耗。
另外,软件也没有一个明显的制造过程,它的开发成木是以一次性开发过程所花费的代价来计算的。
因此,软件开发成木的估算,应是从软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。
软件开发成本估算的经验模型1. Putnam 模型1978年Putnam提出的,一种动态多变量模型。
L = Ck * K13 * td ,/3其中:L --------------------- 源代码行数(以LOC计)K ------------------- 整个开发过程所花费的工作量(以人年计)td ------------------ 开发持续时间(以年计)Ck ----------------- 技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表从上述方程加以变换,可以得到估算工作量的公式:K二L7(Ck3*td4)还可以估算开发时间:td二[L3/(Ck3*K) ]1/41. COCOMO 模型(constructive cost model)这是由TRW公司开发,Boehm提出的结构化成本估算模型。
软件成本估算方法一、背景介绍在软件开发过程中,成本估算是一个非常重要的环节。
准确的成本估算可以帮助企业制定合理的预算计划,避免资源浪费和项目失败。
因此,如何进行软件成本估算是每个软件开发者都必须掌握的技能。
二、软件成本估算方法1. 自下而上法自下而上法是一种比较常用的软件成本估算方法。
它通过对每个任务进行详细的分析和评估,然后将它们逐步合并到项目级别来确定总体成本。
具体步骤如下:(1)定义任务清单:将整个项目分解为多个任务,并编制一个任务清单。
(2)确定每个任务所需时间:对于每个任务,评估完成所需的时间,并记录在任务清单中。
(3)确定每个任务所需资源:对于每个任务,确定所需的人力、物力和财力等资源,并记录在任务清单中。
(4)计算总体成本:将所有任务的时间和资源需求加起来,得出总体成本。
2. 类比法类比法是一种基于类比经验进行软件成本估算的方法。
它通过与已知项目进行比较来确定新项目的成本。
具体步骤如下:(1)选择已知项目:选择与新项目相似的已知项目。
(2)确定已知项目的成本:评估已知项目的成本,并记录下来。
(3)确定新项目与已知项目的差异:分析新项目与已知项目之间的差异,包括技术、规模、复杂度等方面。
(4)计算新项目的成本:根据已知项目和新项目之间的差异,计算新项目的成本。
3. 参数化估算法参数化估算法是一种基于历史数据进行软件成本估算的方法。
它通过对历史数据进行分析和建模来预测未来开发过程中所需资源和时间。
具体步骤如下:(1)收集历史数据:收集以往类似项目的历史数据,包括工作量、时间、人力等方面。
(2)建立模型:将历史数据转化为数学模型,并加入其他因素,如技术变化、人员变动等。
(3)预测未来成本:根据建立好的数学模型,预测未来开发过程中所需资源和时间。
4. 专家判断法专家判断法是一种基于专家经验进行软件成本估算的方法。
它通过请教相关领域专家来预测未来开发过程中所需资源和时间。
具体步骤如下:(1)选择专家:选择与项目相关的领域专家。
软件工程中的软件项目成本估算软件项目成本估算在软件工程中扮演着至关重要的角色。
准确的成本估算可以帮助项目团队有效管理资源,优化项目进度和质量,并最大程度地满足客户需求。
本文将探讨软件工程中的软件项目成本估算方法和技巧。
1. 背景介绍软件项目成本估算是指在软件工程项目开发之初对项目所需要的资源(包括人力、物力、时间等)进行估算的过程。
准确的成本估算需要考虑多个因素,如项目规模、复杂性、技术要求等,同时也需要根据过去类似项目的经验进行参考和调整。
2. 成本估算方法2.1. 自上而下估算法自上而下估算法是常用的一种软件项目成本估算方法。
该方法通过将整个项目分解为多个子系统或模块,然后对每个子系统或模块进行估算,最后将估算结果进行合并得出整体项目成本。
这种方法适用于对整个项目进行初步估算和规划。
2.2. 自下而上估算法自下而上估算法是一种更详细、更准确的软件项目成本估算方法。
该方法从具体的功能模块或任务开始,对每个模块或任务的成本进行估算,最终得出整个项目的总成本。
自下而上估算法需要更多的细节和数据支持,适用于项目进入更详细阶段时进行成本估算。
2.3. 参数估算法参数估算法是根据历史或统计数据来进行软件项目成本估算的方法。
该方法通过建立参数模型,根据项目的规模、复杂性等参数值来计算成本。
参数估算法需要大量的历史数据和项目经验的积累,对于规模较大、复杂度较高的项目,可分阶段进行估算,并根据实际情况进行调整。
3. 成本估算技巧3.1. 制定明确的项目目标和需求在进行软件项目成本估算之前,团队必须与客户充分沟通,了解项目的目标和需求。
明确的项目目标和需求有助于团队更准确地估算所需资源和成本,并避免后期的变更和延误。
3.2. 分析类似项目的历史数据利用过去的项目经验和历史数据是软件项目成本估算的重要依据。
团队可以通过分析类似项目的成本数据,了解不同规模和复杂性项目之间的成本关系和趋势,提高成本估算的准确性。
3.3. 结合专家判断和经验在软件项目成本估算过程中,团队成员的专业知识和经验是宝贵的资源。
软件开发成本估算:方法、步骤与实用工具在进行软件开发成本估算时,需要考虑多个因素,包括项目的规模、复杂度、开发团队的经验和技术水平、项目周期等。
本文将详细介绍如何进行软件开发成本估算,并提供一些实用的估算方法和工具。
一、软件开发成本估算概述软件开发成本估算是指根据项目的需求、规模和复杂度等因素,评估软件开发所需的时间、人力、资源等成本,从而确定项目的整体预算。
在进行软件开发成本估算时,需要考虑到项目的各个方面,包括需求分析、设计、编码、测试和维护等阶段。
二、软件开发成本估算的步骤1.确定项目范围和需求在进行软件开发成本估算之前,需要明确项目的范围和需求。
这包括项目的目标、功能需求、用户界面设计、性能要求等方面。
通过与项目负责人和客户进行充分沟通,了解项目的具体需求和要求,为后续的估算提供基础。
2.分析项目的规模和复杂度根据项目的范围和需求,对项目的规模和复杂度进行分析。
这包括对项目的功能点数、页面数量、数据库表数量等方面的评估。
通过分析项目的规模和复杂度,可以初步确定项目的开发难度和所需的工作量。
3.确定开发团队的技术水平和经验开发团队的技术水平和经验对软件开发成本估算有着重要的影响。
需要考虑开发团队的技术能力、经验、人员规模等方面。
通过了解开发团队的技术水平和经验,可以初步确定项目的开发周期和人力成本。
4.确定项目周期和阶段性目标在进行软件开发成本估算时,需要考虑项目的周期和阶段性目标。
需要根据项目的实际情况,制定合理的开发计划,明确各个阶段的开发任务和时间节点。
同时,需要考虑项目中的风险因素,如需求变更、人员流失等,为后续的估算提供充分的空间。
5.选用合适的估算方法在进行软件开发成本估算时,需要选用合适的估算方法。
常用的估算方法包括:(1)专家评估法:由经验丰富的专家对项目的规模、复杂度和开发团队的技术水平进行评估,得出大致的成本估算。
该方法适用于小型项目或经验不足的情况。
(2)代码行数估算法:根据项目的代码行数来估算开发成本。
软件开发成本估算
软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。
不同与传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗。
另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。
因此,软件开发成本的估算,应是从软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。
软件开发成本估算的经验模型
1.Putnam 模型
1978年Putnam提出的,一种动态多变量模型。
L = Ck * K1/3 * td4/3
其中: L-----------源代码行数(以LOC计)
K-----------整个开发过程所花费的工作量(以人年计)
td-----------开发持续时间(以年计)
Ck----------技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表
从上述方程加以变换,可以得到估算工作量的公式: K = L3/(Ck3*td4)
还可以估算开发时间: td = [L3/(Ck3*K)]1/4
2.COCOMO模型(constructive cost model)
这是由TRW公司开发,Boehm提出的结构化成本估算模型。
是一种精确的、易于使用的成本估算方法。
COCOMO模型中用到以下变量:
DSI-------源指令条数。
不包括注释。
1KDSI = 1000DSI。
MM-------开发工作量(以人月计) 1MM = 19 人日 = 152 人时 =1/12 人年
TDEV-----开发进度。
(以月计)
COCOMO模型中,考虑开发环境,软件开发项目的类型可以分为3种:
1.组织型(organic): 相对较小、较简单的软件项目。
开发人员对开发目标理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟
悉,受硬件的约束较小,程序的规模不是很大(<50000行)
2.嵌入型(embedded): 要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起。
对接口,数据结构,算
法的要求高。
软件规模任意。
如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等。
3.半独立型(semidetached):介于上述两种软件之间。
规模和复杂度都属于中等或更高。
最大可达30万行。
估算公式:
基本COCOMO模型估算工作量和进度的公式如下
工作量:MM = r*(KDSI)c
进度:TDKV = a(MM)b
其中经验常数 r, c, a, b 取决于项目的总体类型。
COCOMO模型按其详细程度可以分为三级:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。
其中基本COCOMO模型是是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。
中级COCOMO模型在基本COCOMO模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。
详细COCOMO模型包括中间COCOMO模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计)的影响。
基本COCOMO模型
通过统计63个历史项目的历史数据,得到如下计算公式。
最近在温习软件工程的课程,对软件项目成本估算模型有了些认识,以下是我的一些心得,希望与大家分享.
首先我们需要明确的是为什么要做软件项目预算.首先软件项目是不同于一般工程项目的项目类型.受用户需求,开发方式的影响很大.没有明确的预算,会导致软件开支的不可控制,随着项目的进行,开发放要承担的风险也会增加.另外如果没有预算,更不可能与客户达成开发协议.没有人会傻到委托别人做一个自己都不知道要花多少钱才能完成的项目.最后也就是我个人对项目预算的看法,好的项目预算应该包括团体预算与小组或个人预算两部分,好的项目经理应该了解自己的团队,对突发事件等的考虑应该放在项目预算之中,然后将项目的开支细化到小组乃至个人,这一点看似多余,但是却很有必要.比如在实际的开发过程中,由于为了缩短工期而招收新的程序员,这就需要对新程序员进行培训.新程序员消耗的团队成本是要考虑在内的.这也就是传统意义上的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)^C
其中A,B,C都是经验常量.E是工作量(单位:人*月),e是估算变量(loc或者fp).除了公式表达的方式以外,还有一些形式的项目调整成分,如问题的复杂程度,开发人员经验,开发环境等,一下列出些常用的调整系数:
Personnel Attributes
• Analyst capability(ACAP)
• Programmer capability(PCAP)
• Applications experience(AEXP)
• Virtual machine Experience(VEXP)
• Programming language experience(LEXP)
Project Attributes
• Modern programming practices(MODP)
• Software Tools(TOOL)
• Required Development schedule(SCED)
这些系数都应该应该根据具体的项目进行调整和设计.
cocomo:(constructive cost model)
这种模型是Barry Boehm在其论述"软件工程经济学"中介绍的一种层次结构的软件估算模型.现在已经被广泛应用.主要应用于应用组装模型,早期设计阶段模型,体系结构后阶段模型.将在以后的日志中对大家进行更深入的介绍.。