软件项目规模估计方法介绍
- 格式:doc
- 大小:41.50 KB
- 文档页数:5
软件开发项目概算指南引言:随着科技的进步和信息化的快速发展,软件开发项目在各行各业扮演着重要的角色。
无论是企业管理系统、移动应用开发还是网站建设,都需要进行概算工作,以确保项目的顺利进行。
本文将介绍软件开发项目概算的一般步骤和指导原则。
一、项目需求分析在进行概算工作之前,首先需要对项目的需求进行充分的分析。
需要清楚地了解项目的目标、功能需求、技术难点以及项目的规模和时间计划等。
根据这些信息,可以对项目的工作量和难度进行初步估计。
二、人力资源概算三、硬件设备与软件工具概算四、开发时间和进度概算项目的开发时间和进度是项目概算的重要组成部分。
需要根据项目规模、开发难度和人力资源等因素,对项目的开发时间进行初步估计。
同时,需要确定项目的开发里程碑和进度计划,以便监控项目的进展情况。
五、成本估算与费用预算在进行概算工作时,需要对项目的成本进行估算。
包括人力资源费用、硬件设备和软件工具费用、外包服务费用以及其他费用如培训和差旅等。
同时,还需要对项目的费用进行预算,以便进行合理的资金申请和使用。
六、风险评估与控制软件开发项目概算也需要对项目的风险进行评估和控制。
需要对可能出现的风险进行分析,如技术难题、人力资源不足、需求变更等,并制定相应的风险应对计划。
同时,需要对项目的进展情况进行监控和控制,及时发现和解决问题,以减少项目风险。
七、项目概算报告编制根据以上的概算工作,需要编制项目概算报告。
报告应包括项目需求分析、人力资源概算、硬件设备与软件工具概算、开发时间和进度概算、成本估算与费用预算、风险评估与控制等内容。
同时,还需要编制详细的概算表格和图表,以便更清晰地展示项目的概算情况。
结语:软件开发项目概算是项目管理的重要环节,它可以为项目提供合理的估算和控制,确保项目的成功进行。
在进行概算工作时,需要充分考虑项目的需求、人力资源、硬件设备和软件工具、开发时间和进度、成本和费用、风险评估与控制等因素。
只有在充分了解和考虑了这些因素的基础上,才能制定合理的项目概算,并确保项目的顺利进行。
软件项目评估软件项目评估是软件开发过程中至关重要的一环。
它旨在评估项目的可行性、风险和成本,为决策者提供有力的依据。
本文将介绍软件项目评估的重要性、过程和方法。
一、软件项目评估的重要性软件项目评估对于软件开发组织和决策者来说具有重要意义。
首先,它可以帮助决策者了解项目的可行性,避免因项目不可行而浪费资源。
其次,通过评估项目的风险,可以提前预防和解决潜在问题,避免项目失败。
最后,评估项目的成本可以帮助决策者做出明智的经济决策,确保项目能够按时、按质按量完成。
二、软件项目评估的过程软件项目评估的过程包括以下几个步骤:1. 制定评估目标:明确评估的目标和范围,确定评估的侧重点和重要指标。
2. 收集项目信息:收集项目的各项信息,包括项目需求、项目规模、项目背景等。
3. 分析项目风险:通过风险分析方法,评估项目可能面临的各项风险,并确定其影响程度和应对策略。
4. 评估项目成本:根据项目需求和规模,评估项目的成本,包括人力资源、硬件设备、软件工具等。
5. 评估项目可行性:综合考虑项目的风险和成本,评估项目的可行性,并提出建议和改进措施。
6. 编写评估报告:将评估的结果和建议整理成报告,向决策者和相关人员进行汇报。
三、软件项目评估的方法软件项目评估可以采用多种方法和技术。
下面介绍两种常用的方法:1. 专家评估法:该方法通过请相关领域的专家对项目进行评估,利用专家的经验和知识,评估项目的可行性、风险和成本。
专家评估法可以减少主观性,提高评估结果的准确性。
2. 数据模型法:该方法通过收集、分析和建立相关数据模型,评估项目的可行性、风险和成本。
数据模型法可以依据数据进行评估,减少主观因素的影响,提高评估结果的客观性。
四、总结软件项目评估是软件开发过程中不可或缺的环节。
通过评估项目的可行性、风险和成本,可以帮助决策者做出明智的决策,避免项目失败。
评估过程中,可以采用专家评估法和数据模型法等方法,提高评估结果的准确性和客观性。
软件项目工作量评估方法工作量评估概述我们仔细研读了软件需求文档和设计文档,对软件功能进行了归纳和整理。
根据以往的经验,对每个功能模块所需的编码工作量进行了估算,并以此为依据,推算出整个软件生命周期的工作量。
接着,我们组织了主要项目干系人和相关专家进行工作量评审。
常见的估算方法Ad-hoc方法这种方法下的测试工作量不基于任何确定的期限。
工作一直继续直到达到一些由管理或市场人员预先定下的时间表。
或者,一直到用完了预算的经费。
这种情况普遍存在于非常不成熟的组织,并且时常有100%的错误差数。
开发时间的百分比法这个方法的基本前提是测试工作量依赖于开发时间/开发工作量。
首先,开发工作量使用例如LOC或FP方法被估算出来,然后使用一些探索性的方法来限制测试的工作量。
通常预留项目的总花费时间的35%给测试。
5-7%给组件和集成测试,18-20%给系统测试。
10%给接收测试(或回归测试等)类比法根据以前或相似项目(主要在项目性质,领域,规模上有相似)所积累的经验或历史数据来估算工作量。
类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。
需要收集以下相关的历史数据:在设计和实现阶段花费的时间,测试工作的规模,例如用户需求的数量,页面数,功能点,数据样式,例如实体,字段的数量,屏幕或字段数量,测试对象的规模,例如KLOCWBS估算法将项目或产品分解为具体的工作,然后分别对各个工作进行时间估算,最终求和得出项目或产品的测试工作量/时间。
Delphi法Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式可以减轻估算的偏差。
Delphi法鼓励参加者就问题相互讨论。
这个技术,要求有多种相关经验人的参与,互相说服对方。
Delphi法是一种软件项目评估方法,其步骤包括:协调人向各专家提供项目规格和估计表格;召集小组会讨论与规模相关的因素;各专家匿名填写迭代表格;协调人整理出一个估计总结,以迭代表的形式返回专家;召集小组会讨论较大的估计差异;专家复查估计总结并在迭代表上提交另一个匿名估计;重复4-6,直到达到一个最低和最高估计的一致。
软件规模度量方法介绍作者学号班级摘要软件规模度量是一项困难度很高的任务。
文章介绍了国际上广泛采用的一种软件规模度量的办法———IFPU G功能点度量方法,说明了该方法的基本原理和具体计算方法,并分析了它的优缺点。
同时对国际上其他几个颇有影响的软件规模度量方法,也作了简要的介绍。
关键词软件项目项目计划进度进度计划1、引言软件度量是指对软件规模、软件项目工作量、软件生产率、软件项目开发成本、软件质量、软件的上线日期等事项进行量化,使复杂的软件过程通过数字的描述让相关人员能够正确理解和管理。
软件度量满足了三方面的需要:首先是满足了项目管理的需要。
项目经理根据软件度量的数据可以对有关资源进行合理部署和分配,有效地对项目的进度和执行情况进行监控,确定软件产品是否符合质量的要求等。
其次,满足了组织的需要。
依照度量的数据,组织可以清楚地了解开发的效率和质量的总体水平,从而可以更好地进行产品组合、判定资金的投向,策划、管理或验证软件开发的活动。
第三是满足了用户的需要。
用户可以根据度量的数据比较正确地判定投入的资金,项目交付的合理期限以及判定递交项目的质量等。
因此,研究软件的度量有着十分重要的社会意义和应用意义。
在软件度量的课题中,软件规模度量是其他软件度量工作的基础与关键。
要对软件的规模进行度量,首先就要求确定一种度量的单位。
用软件的源代码行数作为软件规模的度量是一个比较传统的度量方法。
它的度量单位是K LO C(千条源代码)。
例如,一个软件有15000 条源代码行数时,它的规模就用15K LO C 来表示。
这种方法的优点是,比较直接、简单。
但是,它的结果与使用的程序语言密切相关,尤其在开发人员大量使用第四代语言以上的工具进行软件开发时,用K LO C 描述一个软件的规模就显得非常不准确。
而且,用这种方法只能在软件开发完成之后才能进行源代码行数的准确度量。
现在,除了套用某些经验公式进行软件工作量的估算时人们还用到这种度量方法外,K LO C 几乎不再被使用。
常用的软件项目的估算方法
1、规模估算法:根据软件项目的规模,通过计算机程序语句、数据项和控制结构的数量来估算开发项目所需的时间和费用。
2、功能点估算法:根据软件项目的功能点,把软件项目的功能划分为多个子功能,每个子功能分别估算开发时间和费用,最后累加得出总的估算结果。
3、经验估算法:根据以往项目的经验,把软件项目分解为多个子项目,每个子项目分别估算开发时间和费用,最后累加得出总的估算结果。
4、三点估算法:根据软件项目的规模、复杂度和可用资源,分别计算最小、最可能和最大的开发时间和费用,最后取三者的平均值作为估算结果。
软件项⽬功能点(FP)估算指南⽂件编号:KT/PM-PP-0X-V0.1应⽤软件项⽬功能点(FP)规模估算⽅法修改记录⽬录1前⾔ (3)1.1⽬的 (3)1.2适⽤范围 (3)1.3术语和缩略语 (3)2功能点定义 (3)2.1信息域特性 (3)2.1.1定义 (3)2.1.1.1外部输⼊EI (3)2.1.1.2外部输出EO (3)2.1.1.3外部查询EQ (3)2.1.1.4内部逻辑⽂件ILF (4)2.1.1.5外部接⼝EIF (4)2.1.2复杂度计算 (4)2.1.2.1事务类特性复杂度估算 (4)2.1.2.2数据存储类特性复杂度估算 (5)2.2基本系统特征 (6)2.2.1定义 (6)2.2.2复杂度计算 (6)3估算功能点的步骤 (7)3.1计算UFP (7)3.2计算TCF (7)3.3计算功能点数FP (7)4输出 (7)1前⾔1.1⽬的功能性度量⽅法是⼀种独⽴于编程语⾔的软件规模度量⽅式,使⽤这种⽅法可在早期根据明确功能需求来对最终产品的规模进⾏估算。
在对软件开发环境校准以后,功能性度量的结果可以为评估开发⼯作量和软件产品的成本提供很好的指标。
1.2适⽤范围应⽤软件项⽬⽣命周期中,从需求分析开始直⾄系统测试结束均可使⽤本⽅法进⾏软件规模估算与度量。
1.3术语和缩略语EI: External Input外部输⼊EO: External Output外部输出EQ: External Queries外部查询ILF: Internal Logical Files内部逻辑⽂件EIF: External Interface Files外部接⼝⽂件UFP: Unadjusted Function Points未调整功能点TCF: Technical Complex Factor技术复杂度因⼦2功能点定义功能点技术依据对软件信息域特性和基本系统特征的评估结果来估算软件规模。
根据软件信息域特性可计算出未调整功能点(UFP),根据基本系统特征可计算出软件复杂性因⼦(TCF),最后⽤公式FP=UFP×TCF得出功能点规模。
软件项目的规模、工作量和成本是如何进行估算的1. 基于代码行和功能点的估算软件项目的规模是影响软件项目成本和工作量的主要因素。
在基于代码行(loc,line of code)和功能点(function point)的估算方法中,利用代码行和功能点来表示软件系统的规模,并通过对软件项目规模的估算进而来估算软件项目的成本和工作量。
显然,一个软件项目的代码行数目越多,它的规模也就越大。
软件代码行的数目易于度量,许多软件开发组织和项目组都保留有以往软件项目代码行数目的记录,这有助于在以往类似软件项目代码行记录的基础上对当前软件项目的规模进行估算。
用代码行的数目来表示软件项目的规模简单易行,自然、直观且易于度量。
但是其缺点也非常明显。
在软件开发初期很难估算出最终软件系统的代码行数;软件项目代码行的数目通常依赖于程序设计语言的功能和表达能力;采用代码行的估算方法会对那些设计精巧的软件项目产生不利的影响;该方法只适合于过程式程序设计语言,不适合于非过程式程序设计语言(如函数式或者逻辑语言)。
针对上述问题,人们提出用软件系统的功能数目来表示软件系统的规模。
1979年ibm 的albrecht提出了计算功能点的方法。
该方法需要对软件系统的二个方面进行评估,即评估软件系统所需的内部基本功能和外部基本功能,然后根据技术复杂度因子对这二个方面的评估结果进行加权量化,产生软件系统功能点数目的具体计算值。
具体的,以下是软件系统功能点的计算公式。
fp = ct× (0.65 + 0.01×sfi) (i=1..14)其中,ct是5个信息量的“加权和”,fi是14个因素的“复杂性调节值”(i=1..14),0.65和0.01是经验常数。
ct的计算方法如表 3所示,ct =(简单用户输入数×3 +一般用户输入数×4+复杂用户输入数×6)+(简单用户输出数×4+一般用户输出数×5+复杂用户输出数×7)+(简单用户查询数×3+一般用户查询数×4+复杂用户查询数×6)+(简单文件数×7+一般文件数×10+复杂文件数×15)+(简单外部界面数×5+一般外部界面数×7+复杂外部界面数×10)。
软件项目中的成本构成及估算方法随着学问经济、信息时代的来临,计算机软件业迅猛发展。
商品化、资本化、资产化的计算机软件的价值评估的社会需求也日益增多,而且有越来越多的趋势。
由于系统软件通常是一些规模大、复杂程度高的人一机系统,因此,系统软件的开发发、使用、维护、管理的过程,是一个特别复杂的系统工程,需要有巨大的人力、物力、财力资源,需要各种计算机软、硬件的支持。
这一特点是在系统软件评估中应予充分考虑的,也是从成本途径评估系统软件价值时应予着重关注的。
据统计,软件成本在软、硬件总成本中的份额,已从50 年月的百分之十几,上升到近期的百分之七八十,而且还在持续上升。
软件成本中的开发成本和维护成本的比例,也从50年月的接近1:1,达到了近期的1:2。
系统软件开发成本和维护成本在整个生命周期中份额。
本文对上表的数字作了部分调整。
主在维护阶段剔除了完善性维护成本。
这一项成本不应列入托付评估系统软件的本次价值评估。
这样,开发、维护成本在整个生命周期中的份额也相应发生了变化。
一、系统软件的成本构成系统软件的成本作为一个经济学范畴,应反映软件产品在其生产过程中所耗费的各项费用,为原材料、燃料、动力、折旧、人工费、管理费用、财务费用待项开支的总和。
从财务角度来看,列入系统软件的成本有如下的项目:(1)硬件购置费如计算机及相关设备的购置,不间断电源、空调器等的购置费。
(2)软件购置费,如操作系统软件、数据库系统软件和其它应用软件的购置费。
(3)人工费,主要是开发人员、操作人员、管理人员、的工资福利费等。
(4)培训费。
(5)通讯费,如购置计算机网络设备、通讯线路器材、租用公用通讯线路等的费用。
(6)基本建设费,如新建、扩建机房、购置计算机机台、机柜等的费用。
(7)财务费用。
(8)管理费用,如办公费、差旅费、会议费、交通费。
(9)材料费,如打印纸、包带、磁盘等的购置费。
(10)水、电、汽、气费。
(11)专有技术购置费。
(12)其它费用,如资料费、固定资产折旧费及咨询费。
软件开发工作量的估算方法在讨论软件工作量估算的方法之前,我们首先要知道什么是软件工作量估算。
我理解的工作量估算,就是估算软件项目所耗费的资源数,这个资源包含人力和时间,一般用人天、人月的形式来衡量。
(而软件的成本=耗费的资源*资源的单价)。
而且我个人觉得软件工作量与软件规模是不等的,规模是指大小是固定的,而一个软件开发的工作量与许多因素有关,如公司的效率啊,参与开发人员的编程水平等。
从估算单位角度来说,工作量估算的方法分为两类:直接估算法和间接估算法。
直接法指基于WBS的工作量估算方法,直接估算出人天工作量;间接估算法是先估算软件规模,再转换成人天工作量。
根据估算角度的不同,间接法又分为基于代码行(SLOC)的工作量估算方法和基于功能点(FP)的工作量估算方法。
1、基于WBS的工作量估算基于WBS的工作量估算方法,是最常见的一种估算方法,也是厂商最常用的。
基于WBS的工作量的估算方法,又称为由底向上法(自下而上法),通常的估算步骤如下: 1)寻找类似的历史项目,进行项目的类比分析,根据历史项目的工作量凭经验估计本项目的总工作量; 2)进行WBS分解,力所能及地将整个项目的任务进行分解; 3)参考类似项目的数据,采用类比法或专家法,估计WBS中每类活动的工作量; 4)汇总得到项目的总工作量; 5)与第1)步的结果进行印证分析,根据分析结果,确定估计结果。
2、基于代码行的工作量估算基于代码行(SLOC)的工作量估算,是从开发者的技术角度出发来度量软件。
代码行数是软件开发者最早进行规模测量的主要方法。
进行工作量估算时,先采用WBS法、类比法等统计出软件项目的代码行数,然后将代码行数转换为人天数。
其中,将代码行(SLOC)转换成人天数主要有2种方法。
(1)生产率方法:要求有开发商每人天开发的代码行数,估算出代码行数后,直接利用代码行数÷SLOC/人天,即得工作量人天数。
(2)参数模型法:利用模型,将代码行数转换成人天数。
项目估算指南Version 1.1文档名称:CMMI5-项目估算指南-V1.1.doc修订历史记录目录1 目的 (4)2 围 (4)3 术语、缩写词 (4)4 估算过程 (4)4.1简要说明 (4)4.2流程图 (5)4.2.1自顶向下的方法 (5)4.2.2自底向上的方法 (6)4.3估算规程 (6)4.4裁剪指南 (7)5 估算方法 (7)5.1UCP估算算法 (7)5.1.1估算UUCP (8)5.1.2估算TCF调整因子 (8)5.1.3估算EF调整因子 (9)5.1.4估算UCP (10)5.1.5估算工作量 (10)5.1.6估算进度 (10)5.1.7估算成本 (11)6 附录 (11)6.1生产率数据来源 (11)6.2进度估算数据来源 (11)项目估算指南1目的本文用于估算软件项目的规模、进度、工作量、成本,以指导项目作出合理的估算。
2围本文件包括软件项目估算的各个方面,包括规模、进度、工作量、成本,并包括其在项目的中的分布估算。
本文件适用于公司所有项目。
3术语、缩写词UCP Use Case Point,用例点4估算过程4.1简要说明准确的估算是最大可能加快开发速度的基础,没有准确的进度估算,再有效的进度计划也无从谈起。
不切实际的估算、不正确的期望是带来项目问题的主要原因。
估算是一个不断改进的过程,只有当详细地理解了每个功能,你才有可能准确估算出软件开发的进度和成本。
因此,能够提前做出的决策越多,估算的精确度就越高。
准确的估算可以更好的控制项目的规模、进度、成本。
工作量和进度估算通常在提交建议书及制定项目计划时进行,在项目实施过程中,也可能要对工作量和进度重新估计。
对于软件规模的估算主要有三种方法:代码行,功能点,用例点。
本公司现在主要使用用例点方法。
对于工作量的估计,主要有两种方法:⏹自顶向下的方法(Top-down approach),用一个简单的方程从估计的规模求出估计的总工作量,各阶段的工作量可以根据它们占总工作量的百分比而得到。
软件项目成本估算步骤:规模、工作量、工期、成本软件项目成本估算分为以下步骤:
1. 估算软件规模。
根据可行性研究报告或类似文档明确项目需求及系统边界。
选择估算方法时,要依据项目特点和需求详细程度来决定。
2. 估算工作量。
可以采用方程法、类比法和类推法。
如果软件项目需求极其模糊或不确定,可利用高度相似的历史项目数据来粗略估算工作量。
3. 估算工期。
同样可以采用类推法、类比法和方程法进行估算。
4. 估算成本,类比法和类推法同样适用于需求极期模糊或不确定时的成本估算。
5. 进行软件工作量评估,包括收集历史工作量数据、分析历史工作量数据、建立工作量评估模型、评估工作量、工作量模型的标定和更新。
6. 进行软件阶段工作量评估,团队应充分考虑软件项目的工期因素,对软件项目总工作量安排和各个阶段工作量安排进行优化分析,将软件项目的总工作量以合理可行的方式分解为各个阶段的工作量。
同时考虑各种约束条件,如客户强制工期要求、市场竞争性等。
tpse估算方法TPSE估算方法简介•TPSE估算方法(Total Points, Story Points, Effort估算方法)是软件开发领域常用的一种敏捷项目规模估算方法。
•TPSE估算方法以需求点(Story Point)作为衡量软件规模的单位,通过对需求点的估算,进而计算出总点数(Total Points),最终确定项目所需的工作量(Effort)。
TPSE估算方法的具体步骤:1.确定需求点(Story Point)的定义和范围。
–需求点是根据用户故事的复杂程度、实现该故事所需资源和时间的综合评估。
–需求点的范围可以根据具体项目的特点进行定义,通常可以包括功能点的数量、业务复杂度、技术难度等因素。
2.划分需求点的等级(级别)。
–将需求点划分为不同的等级或级别,用于衡量其重要性和复杂程度。
–级别可以按照紧急程度、业务价值、技术难度等因素进行划分。
3.估算每个需求点的工作量。
–开发团队成员根据对需求点的理解和专业经验,估算每个需求点的工作量。
–工作量可以以人天、人时或其他合适的单位进行估算。
4.计算需求点的总点数(Total Points)。
–将每个需求点的工作量汇总,得到总点数。
–总点数可以用于衡量项目的规模和复杂度,也用于计算项目的进度和资源分配。
5.确定项目的工作量(Effort)。
–将总点数转化为项目的工作量(通常以人天或人时为单位)。
–工作量可以用于计算项目的时间进度、资源需求和人力分配。
TPSE估算方法的优势:•简单易懂:TPSE估算方法采用需求点和工作量作为衡量指标,避免了复杂的技术术语和计算。
•灵活适用:TPSE估算方法可以根据项目的具体情况进行调整和改进,适用于不同规模和复杂度的项目。
•高效准确:TPSE估算方法可以在短时间内对项目进行估算,提供较为准确的工作量和进度预估。
TPSE估算方法的局限性:•主观性:TPSE估算方法的结果受到团队成员个体经验和主观判断的影响,可能存在一定的误差。
10种软件规模估算简介规模估算是项⽬成本估算的先驱条件.也是最关键的软件项⽬管理任务之⼀。
下⾯介绍10种软件应⽤规模估算的⽅法:1. 传统的类⽐规模估算法类⽐规模估算法是将新项⽬与已完成的旧项⽬进⾏类⽐,基于旧项⽬数据进⾏估算。
如果有基准数据或者来⾃类似项⽬的历史数据.这种规模估算⽅法可以较早完成,甚⾄在完全知道新应⽤软件的需求之前就可以开始类⽐规模估算。
但是,如果既没有类似项⽬的历史数据⼜没有精确的基准数据,类⽐规模估算法根本就⽆法⼯作。
2. 基于代码⾏指标的传统规模估算法虽然基于Loc指标的规模估算⽅法应⽤⾮常普遍,但它却是有害的。
它的害处表现在:1. 当计算⽅法在物理⾏数和逻辑语句数之间进⾏转换时,从相同代码段所计算出来的规模可能会出现超过500%的差异。
2. 该指标对⾼级编程语⾔的损害与该语⾔的能⼒成正⽐。
换句话说,使⽤Loc指标表⽰⽣产⼒和质量数据,汇编语⾔看起来⽐Java或c++更好。
3. Loc指标⽆法⽤于估算或度量软件项⽬的⾮编码活动,⽐如需求、架构、审计和⽤户⽂档。
4. 软件⾏业存在有超过700种编程语⾔.其中超过50种编程语⾔根本就没有已知的源代码计数规则。
5. ⼤多数现代应⽤软件都⽤多种编程语⾔编写,有些应⽤软件使⽤了多达15种编程语⾔.⽽这些语⾔每个部有⾃⼰独特的代码计数规则。
所以即使是Java和HTML的简单混合也使代码计数变得⼗分困难。
另外,这种规模估算⽅法对需求、功能说明书和其他书⾯⽂档的规模估算⽆能为⼒。
3. 基于故事点数指标的规模估算法⽤户故事包含了特定软件需求⾮常简洁的描述.只有⼀两句话组成。
它是⼀种收集需求的⽅法。
使⽤故事点估算的⼀个问题是.没办法将使⽤故事点度量指标的应⽤软件与使⽤功能点、⽤例点或任何其他软件度量指标进⾏规模估算的应⽤软件进⾏⽐较。
4. 基于⽤例指标的规模估算法⽤例是⼀种既有⽂字描述也有图形的需求表⽰⽅法。
⽤例中除了⾓⾊外还包括许多其他元素.⽐如前置条件、后置条件等。
软件项目的规模估计历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估计往往和实际情况相差甚远。
因此,估计错误已被列入软件项目失败的四大原因之一。
软件工程师经常会被问到,编一个什么什么样的软件需要多长时间、多少钱。
面对这个问题,有不少人很犯难,因为,第一用户的需求太不具体,第二,自己缺乏一个科学的估计方法。
下面是几种软件项目规模的估计方法。
概念介绍先介绍一个衡量软件项目规模最常用的概念--LOC(Line of Code),LOC指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:Job Control Language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。
一代码行(1LOC)的价值和人月均代码行数可以体现一个软件生产组织的生产能力。
组织可以根据对历史项目的审计来核算组织的单行代码价值。
例如,某软件公司统计发现该公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。
某项目的源文件大小为3.75M,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公滩等),则该项目中1LOC的价值为:(240×10000)/150000=16元/LOC改项目的人月均代码行数为:150000/240=625LOC/人月方法一、Delphi 法Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家"专"的程度及对项目的理解程度是工作中的难点,尽管Delphi技术可以减轻这种偏差,专家评估技术在评定一个新软件实际成本时通常用得不多,但是,这种方式对决定其它模型的输入时特别有用。
Delphi法鼓励参加者就问题相互讨论。
这个技术,要求有多种软件相关经验人的参与,互相说服对方。
Delphi法的步骤是:1、协调人向各专家提供项目规格和估计表格;2、协调人召集小组会各专家讨论与规模相关的因素;3、各专家匿名填写迭代表格;4、协调人整理出一个估计总结,以迭代表的形式返回专家;5、协调人召集小组会,讨论较大的估计差异;6、专家复查估计总结并在迭代表上提交另一个匿名估计;7、重复4-6,直到达到一个最低和最高估计的一致。
方法二、类比法类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。
类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。
其基本步骤是:1、整理出项目功能列表和实现每个功能的代码行;2、标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;3、通过步骤1和2得出各个功能的估计值;4、产生规模估计。
软件项目中用类比法,往往还要解决可重用代码的估算问题。
估计可重用代码量的最好办法就是由程序员或系统分析员详细地考查已存在的代码,估算出新项目可重用的代码中需重新设计的代码百分比、需重新编码或修改的代码百分比以及需重新测试的代码百分比。
根据这三个百分比,可用下面的计算公式计算等价新代码行:等价代码行= [(重新设计% +重新编码% +重新测试%)/3]×已有代码行方法三、功能点估计法功能点测量是在需求分析阶段基于系统功能的一种规模估计方法。
通过研究初始应用需求来确定各种输入、输出、计算和数据库需求的数量和特性。
通常的步骤是:1、计算输入,输出,查询,主控文件,和接口需求的数目。
2、将这些数据进行加权乘。
下表为一个典型的权值表。
功能类型权值输入 4输出 5查询 4主控文件10接口103、估计者根据对复杂度的判断,总数可以用+25%、0、或-25%调整。
据发现,对一个软件产品的开发,功能点对项目早期的规模估计很有帮助。
然而,在了解产品越多后,功能点可以转换为软件规模测量更常用的LOC。
论项目管理中的量化管理--------------------------------------------------------------------------------来源:希赛网作者:郭雪莹[2004/03/17]摘要:项目管理理论中并未注重量化管理,而量化管理是项目管理中一项基础性工作,如果采用了量化管理,项目管理的全过程就会变得“可视化”。
本文从项目管理中需要量化管理的领域、量化管理的常用方法角度来说明项目管理中使用量化管理的重要性,并举例说明了如何应用量化管理方法进行项目管理。
关键字:项目管理、量化管理、估算、度量正文:项目管理理论是一门综合多门学科的新兴研究领域,包括项目综合管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理等九大知识领域。
传统的项目管理论著都重点着眼于这九大知识领域来讲解项目管理,却忽视了一项基础性工作:量化管理。
缺乏量化管理,项目管理只能处于一种“混沌”状态。
以IT项目为例,据称只有26%的IT项目成功地实现了范围、时间和成本目标,剩余的74%都有不同程度的失败。
而如果采用了量化管理,项目管理的全过程就会变得“可视化”,发现问题也可以“让数字说话”。
一.量化管理发展现状当前,在项目管理过程中实行量化管理方兴未艾,较为典型的理论有六西格玛管理和CMM/CMMI 体系。
六西格玛是一项以数据为基础,追求几乎完美的质量管理方法。
西格玛是一个希腊字母σ的中文译音,统计学用来表示标准偏差,即数据的分散程度。
对连续可计量的质量特性:用"σ"度量质量特性总体上对目标值的偏离程度。
几个西格玛是一种表示品质的统计尺度。
它有别于其它的质量管理方法,是依据严格的数据采集和统计分析,找出误差的根源,并寻求消除这些误差的方法,根据顾客的要求来确定的管理活动。
实施六西格玛包括五个阶段:定义(D),测量(M),分析(A),改进(I),控制(C),其数据流程如下图所示:以上这些过程并不是单一的,独立的,而是相互关联的统一体(如图1)。
由这些过程很容易看出,六西格玛是一种基于数据的决策方法,强调用数据说话,而不是凭直觉、经验办事。
其基础是需求,作用及过程的量化,从而可以客观地反映我们的现状,引起人们的关注。
数据定义抽样数据收集统计分析试验设计控制数据定义测量分析改进控制。
CMM (Capability Maturity Model) 是卡耐基梅隆大学软件工程研究院(SEI,Software Engineering Institute)受美国国防部委托制定的软件过程改良、评估模型,也称为SEI SW-CMM,(Software Engineering Institute SoftWare- Capability Maturity Model)。
该模型于1991年发布,目前修改至1.1版,并发展成为系列标准模型。
全世界已经有1万多家软件企业经过CMM评估。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化,标准化。
使企业能够更好的实现商业目标。
CMMI (Capability Maturity Model integration) 是为了解决现有不同CMM模型的重复性、复杂性,并减少由此引起的成本、改进过程,由美国国防部出资,委托美国卡耐基梅隆大学软件工程研究院(SEI)开发的能力成熟度模型集成,它将软件CMM2.0版草案C(SW-CMM)、EIA过渡标准731(系统工程CMM)及IPD-CMM集成为一体,同时,还与ISO15504相兼容。
该模型广泛适用于政府机构、软件和硬件开发公司。
无论是CMM还是CMMI,都有个共同特点,就是关注量化管理,在CMM/CMMI模型中,企业过程能力等级越高,对量化管理的要求就逐步提高,当达到第4级“已管理级”(Managed 级)时,要求针对组织过程的每一个阶段都进行了监控、取样和定量分析,形成了一个关于产品制作和维护流程的数据库并不断更新,以保证组织过程保持较高的质量。
他山之石,可以攻玉,可见,在项目管理中引入量化管理也是大势所趋。
二.项目管理中需要量化管理的领域项目管理知识体系中,涉及到需要量化管理的领域非常多,从事前管理和事后管理的角度来分,可以分为估算和度量两大类。
估算是以实际统计调查资料为基础,根据事物的联系及其发展规律,间接地估算和预计有关事物的数量关系和变化前景。
而度量则是依据特定的标准,衡量当前的事物与标准之间的差异。
项目管理范围中,有如下阶段需要应用估算技术:1.项目范围估算对项目预期的范围进行评估是项目的基础,范围估算失误将给项目带来不可挽回的损失。
2.项目成本估算成本估算估计完成项目各活动所需每种资源成本的近似值,成本预算的过程是把估算的总成本分配到各个工作细目,建立基准成本以衡量项目执行情况。
可见成本估算的准确性直接决定成本的预算情况。
3.项目进度估算项目管理的关键要素之一就是时间管理,也即进度控制。
准确地估算对制定项目计划、监督项目执行都有重要的意义。
4.项目风险估算对风险识别不到,或对风险可能造成的影响估计不足都可能导致项目失败,因此对项目风险的量化估算更是至关重要。
定义项目、制定项目计划的时候需要进行项目估算,而项目执行过程中的跟踪监督过程则离不开度量。
良好的项目管理主要针对项目要素进行跟踪度量,通过分析度量数字就可以及时发现项目进展中存在的问题,从而有针对性地制定解决方案。
通常需要度量的项目要素包括1.项目进度度量对项目进度进行定期的跟踪度量,及时发现当前进度与计划的偏差,可以及时采取措施,及时赶工或调整进度计划。
2.缺陷度量项目的成败直接取决于客户满意度,客户满意度是个难以量化的指标,而项目成果——产品的缺陷密度直接影响着客户的满意程度。
度量产品的缺陷密度,可以有效地了解项目完成的质量。
3.项目工作量度量工作量是衡量项目成本、人员工作情况的基础,准确地度量出项目真实的工作量,既可以掌握当前项目的情况,对于今后估算其它项目数据也有重要意义。
4.人员生产率度量人力资源是项目中最为重要的资源,掌握人员的生产能力对于项目管理中人员管理、资源管理都有重要的参考价值。
三.量化管理的方法量化管理涉及范围广、意义重大,应该如何进行量化管理呢?有很多科学的方法可以辅助项目管理人员进行估算和度量。
典型的估算方法有:1. Delphi法Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式可以减轻估算的偏差。
Delphi法鼓励参加者就问题相互讨论。