您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第14章 软件估算与度量
1软件项目估算——是指预测构造软件项目所需要的工作量以及任务经历时间的过程。主要包括三个方面:规模(即工作量)的估算确定每个软件功能所必须执行的一系列软件工程任务成本的估算确定完成软件项目规模相应付出的代价进度的估算估计任务的持续时间,即历时估计234.1软件项目估算客户需求产品定义系统设计系统实现系统运行414.2软件价格估算14.3软件度量的概念与原则14.4度量模型14.5度量过程14.1软件估算方法14.6软件度量方法对软件的估计要从软件的分解开始项目分解的目的——明确项目所包含的各项工作,项目分解的结果就是WBS(WorkBreakdownStructure,工作分解结构)图。项目分解的意义——WBS图是实施项目、创造最终产品或服务所必须进行的全部活动的一张清单,也是进度计划、人员分配、预算计划的基础。5①确定项目目标②准确确认项目所产生的产品、服务或结果③识别项目中其他工作领域以确保覆盖100%工作④进一步细分2、3项64.2软件规模估算层级描述1总计划2项目3任务4子任务5工作包基于可交付成果的划分›上层一般为可交付成果的导向›下层一般为可交付成果的工作内容基于工作过程的划分›上层按照工作的流程分解›下层按照工作的内容划分74.2软件规模估算8信息网络工程结构化布线网络平台建设布线设计采购布线验收方案设计采购网络平台实施验收0级1级2级4.2软件规模估算9信息网络系统培训设备准备设备采购设备验收交接网络系统设计布线设计平台设计工程实施布线实施网络集成软件开发软件需求确定系统设计编码测试0级1级2级4.2软件规模估算10图形显示1.0系统1.1元素A1.2元素B1.1.1任务1.1.2任务锯齿列表1.0系统1.1元素A1.1.1任务1.1.2任务1.2元素B4.2软件规模估算——由高层向下层用多位码编排,要求每项工作有唯一的编码。10001100111011111112111311201121112211231200114.2软件规模估算12网络1430软件1410硬件1420系统开发1400测试1500实施1600系统设计1300问题界定1100企业经营管理系统项目1000系统分析1200文档1440包装软件1411培训1610验收1630系统转换1620定制软件14120级1级2级3级4.2软件规模估算源代码程序长度的测量LOC=NCLOC+CLOC›NCLOC(Non-CommentedSourceLinesOfCode,无注释的源代码行)›CLOC(CommentedSourceLinesOfCode,注释的源代码行)134.2软件规模估算生产率=KLOC/PM(人月)质量=错误数/KLOC成本=元/LOC文档=文档页数/KLOC144.2软件规模估算工作量和成本是针对软件开发全过程的,而不是仅针对编码。某软件公司统计发现该公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。某项目的源文件大小为3.75M,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公滩等),则:该项目中1LOC的价值为:(240×10000)/150000=16元/LOC该项目的人月均代码行数为:150000/240=625LOC/人月154.2软件规模估算跟踪项目进展管理范围变化软件包功能吻合度计算组织的软件资产生产率管理质量管理项目资源预测维护预算合同管理组织成熟度和过程能力16FP估算法功能点度量是在需求分析阶段基于系统功能的一种规模估计方法,该方法通过研究初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量。FP=UFC×TCF未调整的功能点数(UFC,UnadjustedFunctionPointCount)技术复杂度因子(TCF,TechnicalComplexityFactor)174.2软件规模估算由多位专家进行成本估算单独一位专家可能会有种种偏见。最好由多位专家进行估算,取得多个估算值。有多种方法把这些估算值合成一个估算值。一种方法是简单地求各估算值的中值或平均值。其优点是简便。缺点是可能会由于受一、二个极端估算值的影响而产生严重的偏差。一种方法是召开小组会,使各位专家们统一于或至少同意某一个估算值。优点是可以摈弃蒙昧无知的估算值,缺点是一些组员可能会受权威或政治因素的影响。184.3软件项目成本估算WidebandDelphi技术194.3软件项目成本估算静态模型用一个唯一的变量(如程序规模)作为初始元素来计算所有其他变量(如成本、时间),且所用计算公式的形式对于所有变量都是相同的动态模型没有类似静态模型中的惟一基础变量,所有变量都是相互依存的已有的模型COCOMO模型;Putnam模型;等204.3软件项目成本估算COnstructiveCOstModel,结构型成本估算模型是一个采用自底向上的方法进行估算的典范,它是一种精确、易于使用的成本估算方法。在该模型中使用的基本量有以下几个:E——工作量(人月)S——千源代码行(KLOC)EAF——EffortAdjustmentFactor,工作量调整因子a,b——随开发模式而变化的因子214.3软件项目成本估算组织式:相对项目较小、较简单的项目。开发人员对软件产品开发目标充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束小,程序的规模不是很大(5万行)。如多数应用软件和较早的OS、Compiler。半分离式:规模和复杂度都属于中等或更高。最大可达30万行。(例如:固定需求的事务处理系统)。嵌入式:紧密联系硬件、软件和操作的限制下运行,通常与某些硬设备紧密联系。因此,对接口、数据结构、算法要求较高。软件规模任意。如:大型复杂的事务处理系统、大型操作系统、航天用控制系统、大型指挥系统等。224.3软件项目成本估算是一个静态单变量模型,它用源代码行数(LOC)为自变量的(经验)函数来计算软件开发工作量。EAF取值为1,E=aSb开发时间T=cEd三种开发模式在基本COCOMO模型中的取值、开发时间参数开发模式abcd有机式2.41.052.50.38半分离式3.01.122.50.35嵌入式3.61.202.50.324.3软件项目成本估算在用LOC为自变量的函数计算软件开发工作量(此时称为名义工作量)的基础上,再用涉及产品、硬件、人员、项目等方面15种影响软件工作量的因素,通过定下乘法因子,修正COCOMO工作量公式和进度公式,可以更合理地估算软件(各阶段)的工作量和进度。E=aSb×EAF调整前的工作量aSb称为名义工作量工作量调整因子EAF根据15个成本驱动量计算开发模式ab有机式3.21.05半分离式3.01.12嵌入式2.81.204.3软件项目成本估算包括中级COCOMO模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中每一步骤(分析、设计等)的影响。详细COCOMO模型的名义工作量公式和进度公式与中间COCOMO模型相同。工作量因素分级表被分层、分阶段给出。针对每一个影响因素,按模块级、子系统级、系统级,有相应的工作量因素分级表,供不同层次的估算使用。4.3软件项目成本估算随底层各模块的不同而变化的因素放在模块级处理;不经常变化的因素放在子系统级处理;系统级处理与软件项目总体规模等相关的问题。工作量因素按需求计划和产品设计(RPD)、详细设计(DD)、编码和单元测试(CUT)、集成测试(IT)四个不同阶段的不同为成本驱动变量赋予不同的值。使用这些表格,可以比中级COCOMO模型更方便、更准确地估算软件开发工作量。4.3软件项目成本估算改编后的模块规模=(原模块的LOC×AAF)/100AAF=0.4×设计修改的比例+0.3×编程修改的比例+0.3×集成修改的比例模块的名义工作量=(该模块的规模×工作量阶段分布百分数)/名义生产率274.3软件项目成本估算计算模块的规模计算名义生产率计算每一模块在每一阶段的名义工作量计算每一模块在每一阶段的工作量计算每一子系统各阶段的名义工作量计算每一子系统各阶段的工作量求出总的工作量Putnam模型是Putnam于1978在来自美国计算机系统指挥部的200多个大型项目(项目的工作量在30~1000人年之间)数据的基础上推导出来的一种动态多变量模型。Putnam模型假设软件项目的工作量分布类似于Rayleigh曲线。它是假定在软件开发的整个生存期中工作量有特定的分布。大型软件项目的开发工作量分布可以用下图曲线表示。这个曲线把已交付的源代码行数与工作量和开发时间联系起来。284.3软件项目成本估算在软件项目的不同生命周期阶段分别使用不同的曲线特点:曲线所反映的各个阶段的工作量一目了然。缺点:不能反映人员、计算机资源、项目的属性。294.3软件项目成本估算典型的Rayleigh曲线软件项目各阶段的Norden-Rayleigh曲线基于规模、工期和开发环境的人员数量计算公式:S——开发规模,以代码行LOC为度量;C——技术因子,因开发环境而异;E——软件开发与维护在内的整个生存期所花费的工作量(人年),即人员数;t——开发持续时间(年)。3431tECS4.3软件项目成本估算314.3软件项目成本估算C的典型值开发环境开发环境举例2000差没有系统的开发方法,缺乏文档和复审,批处理方式。8000好有合适的系统开发方法,有充分的文档和复审,交互执行方式。11000优有自动开发工具和技术。①建立目标②规划需要的数据和资源③确定软件需求④拟定可行的细节⑤运用多种独立的技术和原始资料⑥比较并迭代各个估算值⑦随访跟踪32软件成本估算的准确度与阶段4.3软件项目成本估算假设a是软件项目的实际成本,其中给出的范围的可信度为80%(每100次估计中有80次处于4倍双向偏差的范围内)3314.2软件价格估算14.3软件度量的概念与原则14.4度量模型14.5度量过程14.1软件估算方法14.6软件度量方法开发工作量软件开发价格=开发工作量*风险系数*复用系数1=风险系数=1.50=复用系数=0.75开发费用开发费用/人*月=(P+Q+R)*S*τP=B*1.476Q=B/3R=B/31=S=1.2=开发费用/人*月=B*λ34最终公式软件开发价格=A*σ*(1-τ)*B*λA:估算工作量的经验值B:软件企业的平均工资/人*月σ:风险系数τ:复用系数λ:综合系数软件开发成本=软件开发价格–企业利润353614.2软件价格估算14.3软件度量的概念与原则14.4度量模型14.5度量过程14.1软件估算方法14.6软件度量方法定义软件度量是对一个系统、构件、或过程具有的某个给定属性的度的一个定量测量,如产品规模、复杂度、可理解性,过程的有效性、生产率、资源利用率等。分类过程、产品、资源度量客观度量与主观度量直接度量与间接度量37解释度量数据时使用通用的观念,并考虑组织的感受性对搜集测量和度量的个人及小组提供定期的反馈。不要使用度量评价一个人与开发者和小组一起设定清晰的目标及达到这些目标的度量不要用度量威胁个人或小组指出某个问题度量数据不应该被看成否定意义不要被某个或其他不重要度量不符合的度量迷惑。383914.2软件价格估算14.3软件度量的概念与原则14.4度量模型14.5度量过程14.1软件估算方法14.6软件度量方法FCM产品质量模型FCM模型是以一个层次框架定义产品质量:因子,属性和度量。在顶层,质量因子表示行为特性或外部质量属性,如可用性,可靠性,可维护性。这些质量因子在第二层中被进一步细化。在底层,度量是一个可评估的产品内部属性。40GQM模型GQM模型是基于一种假设,对于一个机构而言,度量是应当有目的性的,即它尹首先定义其自身或该机构内某个项目的目标,根据
本文标题:第14章 软件估算与度量
链接地址:https://www.777doc.com/doc-3352269 .html