第14章软件估算与度量_第1页
第14章软件估算与度量_第2页
第14章软件估算与度量_第3页
第14章软件估算与度量_第4页
第14章软件估算与度量_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1软件项目估算 是指预测构造软件项目所需要的工作量以及任务经历时间的过程。主要包括三个方面:规模(即工作量)的估算 确定每个软件功能所必须执行的一系列软件工程任务 成本的估算 确定完成软件项目规模相应付出的代价 进度的估算 估计任务的持续时间,即历时估计 234.1 软件项目估算软件项目估算客户需求客户需求产品定义产品定义系统设计系统设计系统实现系统实现系统运行系统运行414.2 软件价格估算14.3 软件度量的概念与原则14.4 度量模型14.5 度量过程14.114.1软件估算方法软件估算方法 14.6 软件度量方法项目分解的目的 明确项目所包含的各项工作,项目分解的结果就是WBS(Wor

2、k Breakdown Structure,工作分解结构) 图。项目分解的意义 WBS图是实施项目、创造最终产品或服务所必须进行的全部活动的一张清单,也是进度计划、人员分配、预算计划的基础。5确定项目目标准确确认项目所产生的产品、服务或结果识别项目中其他工作领域以确保覆盖100%工作进一步细分2、3项64.2 软件规模估算软件规模估算层级描述总计划项 目任 务子任务1工作包基于可交付成果的划分上层一般为可交付成果的导向下层一般为可交付成果的工作内容基于工作过程的划分上层按照工作的流程分解下层按照工作的内容划分74.2 软件规模估算软件规模估算8信息网络工程信息网络工程结构化布线结构化布线网络平

3、台建设网络平台建设布线设计布线设计采购采购布线布线验收验收方案设计方案设计采购采购网络平台实施网络平台实施验收验收4.2 软件规模估算软件规模估算9信息网络系统信息网络系统培训培训设备准备设备准备设设备备采采购购设设备备验验收收交交接接网络系统设计网络系统设计布布线线设设计计平平台台设设计计工程实施工程实施布布线线实实施施网网络络集集成成软件开发软件开发软软件件需需求求确确定定系系统统设设计计编编码码测测试试4.2 软件规模估算软件规模估算10 图形显示图形显示 锯齿列表锯齿列表 1.0系统系统 1.1元素元素A 1.1.1任务任务 1.1.2任务任务 1.2元素元素B4.2 软件规模估算软件

4、规模估算 由高层向下层用多位码编排,要求每项工作有唯一的编码。10001100111011111112111311201121112211231200114.2 软件规模估算软件规模估算12网络网络1430软件软件1410硬件硬件1420系统开系统开发发1400测试测试1500实施实施1600系统设系统设计计1300问题界问题界定定1100企业经营管理系统项目企业经营管理系统项目1000系统分系统分析析1200文档文档1440包装软包装软件件1411培训培训1610验收验收1630系统转系统转换换1620定制软定制软件件14124.2 软件规模估算软件规模估算源代码程序长度的测量LOC=NCL

5、OCCLOCNCLOC( Non-Commented Source Lines Of Code,无注释的源代码行)CLOC( Commented Source Lines Of Code,注释的源代码行)134.2 软件规模估算软件规模估算生产率 KLOCPM(人月)质量 错误数KLOC成本 元LOC文档 文档页数KLOC144.2 软件规模估算软件规模估算工作量和成本是针对软工作量和成本是针对软件开发全过程的,而不件开发全过程的,而不是仅针对编码。是仅针对编码。某软件公司统计发现该公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。某项目的源文件大小为3.75M,则可估计该项

6、目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公滩等),则:(24010000)/15000016元/LOC 150000/240=625LOC/人月154.2 软件规模估算软件规模估算跟踪项目进展管理范围变化软件包功能吻合度计算组织的软件资产生产率管理质量管理项目资源预测维护预算合同管理组织成熟度和过程能力16FP估算法 功能点度量是在需求分析阶段基于系统功能的一种规模估计方法,该方法通过研究初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量。FP=UFCTCF未调整的功能点数(UFC,Una

7、djusted Function PointCount)技术复杂度因子(TCF,Technical Complexity Factor)174.2 软件规模估算软件规模估算184.3 软件项目成本估算软件项目成本估算194.3 软件项目成本估算软件项目成本估算静态模型 用一个唯一的变量(如程序规模)作为初始元素来计算所有其他变量(如成本、时间),且所用计算公式的形式对于所有变量都是相同的动态模型 没有类似静态模型中的惟一基础变量,所有变量都是相互依存的已有的模型 COCOMO模型;Putnam模型;等204.3 软件项目成本估算软件项目成本估算COnstructive COst Model,2

8、14.3 软件项目成本估算软件项目成本估算组织式:相对项目较小、较简单的项目。开发人员对软件产品开发目标充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束小,程序的规模不是很大(5万行)。如多数应用软件和较早的OS、Compiler。半分离式:规模和复杂度都属于中等或更高。最大可达30万行。(例如:固定需求的事务处理系统)。嵌入式:紧密联系硬件、软件和操作的限制下运行,通常与某些硬设备紧密联系。因此,对接口、数据结构、算法要求较高。软件规模任意。如:大型复杂的事务处理系统、大型操作系统、航天用控制系统、大型指挥系统等。224.3 软件项目成本估算软件项目成本估算是一个静态

9、单变量模型,它用源代码行数(LOC)为自变量的(经验)函数来计算软件开发工作量。EAF取值为1,E=aSb开发时间 T=cEd三种开发模式在基本COCOMO模型中的取值、开发时间参数 开发模式开发模式abcd有机式有机式2.4 1.052.5 0.38半分离式半分离式3.0 1.122.5 0.35嵌入式嵌入式3.6 1.202.5 0.324.3 软件项目成本估算软件项目成本估算在用LOC为自变量的函数计算软件开发工作量(此时称为名义工作量)的基础上,再用涉及产品、硬件、人员、项目等方面15种影响软件工作量的因素 通过定下乘法因子,修正COCOMO工作量公式和进度公式,可以更合理地估算软件(

10、各阶段)的工作量和进度。E=aSb EAF调整前的工作量aSb称为名义工作量工作量调整因子EAF根据15个成本 驱动量计算开发模式开发模式ab有机式有机式3.2 1.05半分离式半分离式3.0 1.12嵌入式嵌入式2.8 1.204.3 软件项目成本估算软件项目成本估算包括中级COCOMO模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中每一步骤(分析、设计等)的影响。详细COCOMO模型的名义工作量公式和进度公式与中间COCOMO模型相同。工作量因素分级表被分层、分阶段给出。针对每一个影响因素,按模块级、子系统级、系统级,有相应的工作量因素分级表,供不同层次的估算

11、使用。4.3 软件项目成本估算软件项目成本估算随底层各模块的不同而变化的因素放在模块级处理;不经常变化的因素放在子系统级处理;系统级处理与软件项目总体规模等相关的问题。工作量因素按需求计划和产品设计(RPD)、详细设计(DD)、编码和单元测试(CUT)、集成测试(IT)四个不同阶段的不同为成本驱动变量赋予不同的值。使用这些表格,可以比中级COCOMO模型更方便、更准确地估算软件开发工作量。4.3 软件项目成本估算软件项目成本估算改编后的模块规模(原模块的LOCAAF)/100AAF0.4设计修改的比例0.3编程修改的比例0.3集成修改的比例模块的名义工作量(该模块的规模工作量阶段分布百分数)/

12、名义生产率274.3 软件项目成本估算软件项目成本估算计算模块的规模计算模块的规模计算名义生产率计算名义生产率计算每一模块在每一阶段的名义工作量计算每一模块在每一阶段的名义工作量计算每一模块在每一阶段的工作量计算每一模块在每一阶段的工作量计算每一子系统各阶段的名义工作量计算每一子系统各阶段的名义工作量计算每一子系统各阶段的工作量计算每一子系统各阶段的工作量求出总的工作量求出总的工作量Putnam模型是Putnam于1978在来自美国计算机系统指挥部的200多个大型项目(项目的工作量在301000人年之间)数据的基础上推导出来的一种动态多变量模型。Putnam模型假设软件项目的工作量分布类似于R

13、ayleigh曲线。284.3 软件项目成本估算软件项目成本估算在软件项目的不同生命周期阶段分别使用不同的曲线特点:曲线所反映的各个阶段的工作量一目了然。缺点:不能反映人员、计算机资源、项目的属性。294.3 软件项目成本估算软件项目成本估算典型的典型的Rayleigh曲线曲线 软件项目各阶段的软件项目各阶段的Norden-Rayleigh曲线曲线 3431tECS 4.3 软件项目成本估算软件项目成本估算314.3 软件项目成本估算软件项目成本估算C的典型值的典型值开发环境开发环境开开 发发 环环 境境 举举 例例2000差差 没有系统的开发方法,缺乏没有系统的开发方法,缺乏 文档和复审,批

14、处理方式。文档和复审,批处理方式。8000好好 有合适的系统开发方法,有有合适的系统开发方法,有 充分的文档和复审,交互执充分的文档和复审,交互执 行方式。行方式。11000优优 有自动开发工具和技术。有自动开发工具和技术。32 软件成本估算的准确度与阶段软件成本估算的准确度与阶段 4.3 软件项目成本估算软件项目成本估算3314.3 软件度量的概念与原则14.4 度量模型14.5 度量过程14.1软件估算方法 14.6 软件度量方法开发工作量软件开发价格软件开发价格 = 开发工作量开发工作量 * 风险系数风险系数 * 复用系数复用系数 1=风险系数风险系数=1.50=复用系数复用系数=0.7

15、5开发费用开发费用开发费用/人人*月月 = (P + Q + R)* S * P = B * 1.476Q = B/3R = B /3 1=S 开发费用开发费用/人人*月月=B*34最终公式软件开发价格软件开发价格 = A * *(1-) * B *A:估算工作量的经验值:估算工作量的经验值B:软件企业的平均工资:软件企业的平均工资/人人*月月 :风险系数:风险系数 :复用系数:复用系数:综合系数:综合系数软件开发成本 = 软件开发价格 企业利润353614.3 14.3 软件度量的概念与原则软件度量的概念与原则14.4 度量模型14.5 度量过程14.1软件估算方法 14.6 软件度量方法定

16、义软件度量是对一个系统、构件、或过程具有的某个给定属性的度的一个定量测量,如产品规模、复杂度、可理解性,过程的有效性、生产率、资源利用率等。分类过程、产品、资源度量客观度量与主观度量直接度量与间接度量37解释度量数据时使用通用的观念,并考虑组织的感受性对搜集测量和度量的个人及小组提供定期的反馈。不要使用度量评价一个人与开发者和小组一起设定清晰的目标及达到这些目标的度量不要用度量威胁个人或小组指出某个问题度量数据不应该被看成否定意义不要被某个或其他不重要度量不符合的度量迷惑。383914.3 软件度量的概念与原则14.4 14.4 度量模型度量模型14.5 度量过程14.1软件估算方法 14.6

17、 软件度量方法FCM产品质量模型FCM模型是以一个层次框架定义产品质量:因子,属性和度量。在顶层,质量因子表示行为特性或外部质量属性,如可用性,可靠性,可维护性。这些质量因子在第二层中被进一步细化。在底层,度量是一个可评估的产品内部属性。40GQM模型GQM模型是基于一种假设,对于一个机构而言,度量是应当有目的性的,即它尹首先定义其自身或该机构内某个项目的目标,根据这些目标去跟踪相关数据,最后提供一个框架用于解释这些数据与所确定目标之间的关系。和FCM模型相同,GQM模型也具有层次结构:概念层,运作层、量化层。414214.3 软件度量的概念与原则14.4 度量模型14.514.5度量过程度量

18、过程14.1软件估算方法 14.6 软件度量方法在软件度量的通用框架中,软件度量过程被分为以下几个活动:数据获取、值转换、模型解释和决策分析。43数据获取获取数据是度量的基础,用于收集与所要求的度量值相关的基础数据。准确、完整、及时的数据是软件度量成功的必要条件。因此在记录数据时,不能用“大约”、“估计”等表示。要确定数据收集的周期。要确定数据收集的格式。要确定数据收集的量纲。44值转换标称标度顺序标度间隔或区间标度比率标度45解释活动在这一活动中,被转换的数据被一些特定的域模型即度量模型,进行解释,这一活动强调度量和模型之间的关系。由于所有的度量都由它所基于的模型支持,因此,度量模型在整个度

19、量过程中起着决定度量结果导向并影响其后的分析结果的关键作用。决策分析解释活动的结果将集成到全局的计划和机构一级的决策分析过程中。464714.3 软件度量的概念与原则14.4 度量模型14.5度量过程14.1软件估算方法 14.6 软件度量方法软件度量方法以软件过程审计、产品评审、测试的结果为评价基准,有如下评分标准。910分78分6分以下在审计、评审、测试结果的基础上改进软件过程和工作产品,以改进的时间是否影响后续阶段的完成和计划的总体完成时间为评分依据。有如下标准910分78分6分以下48挣值分析挣值分析法是一种能全面衡量项目进度、成本状况的整体方法,其基本要素是用货币量代替实物量来度量项

20、目的进度。三个基本值:累计计划成本额(BCWS)赢得值(BCWP)实际成本额(ACWP)49挣值分析法用两个差异值指标和两个指数指标来衡量项目投资绩效和进度状况。成本偏差(CV) = BCWP ACWP进度偏差(SV) = BCWP BCWS同时还有两个重要的进度控制指标:进度绩效指数SPI = BCWP / BCWS成本绩效指数CPS = BCWP / ACWP50任务完成时间偏差任务实际完成时间AF,任务计划完成时间PF任务完成比度量利用每个度量周期内的任务完成情况的数据,对当期任务完成比进行度量。将任务状态划分为已完成、执行中和未开始三种,若当期已完成任务数未FT,执行中的任务数为NT,

21、并根据其状态设置状态系数为r,已完成:r1 = 1.0;执行中:r2 = 0.5;未开始:r3 = 0。则任务完成比 = (FT*r1 + ET*r2 + NT*r3) / 任务总数 *100%51里程碑按期交付率若当期按期交付的里程碑为PM,当期已建立的里程碑数量为EM,则里程碑延误率 = PM / EM * 100%里程碑建立时间偏差若里程碑实际建立时间为AM,里程碑计划建立时间为PM,则里程碑建立时间偏差 = (AM - PM) / 里程碑计划建立周期 * 100%52软件可靠性可靠性是一个程序期望以所需的精确度完成它的预期功能的程度。当考虑一个基于计算机系统时,可靠性的简单度量是“平均

22、失效间隔时间(MTBF)”MTBF = MTTF + MTTR系统可用性指系统平均失效时间间隔(MTBF )与平均失效时间间隔与平均修复时间之和(MTBF+MTBR)的比值A = MTBF/(MTBF+MTBR)53缺陷度量对缺陷的各种度量是软件质量最常用的指标,包括缺陷密度、问题密度、缺陷分布、缺陷发现效率、缺陷排除效率。缺陷密度。缺陷密码可以用于每个级别的测试中,用以衡量代码的质量,以每千行代码缺陷数为例,若目标系统或被度量模块的纯代码量为N,测试中发现的有效缺陷个数为D,则缺陷密度 = D/N *100%其中 D = 缺陷跟踪系统中统计的有效缺陷个数,N = (累计代码行-(空白行 + 注释行)/100054问题密度若被评审文档的文档页数为N,评审中发现的规范性问题个数为Q,内容问题数为Q2,并未规范性问题赋予权重S1,内容问题赋予权重S2,则55缺陷率缺陷率的通用概念是一定时间范围内缺陷数与错误几率。缺陷分布按严重度:严重、一般、轻微按起因:设计错误、代码错误、接口错误等。按发现阶段:需求评审、设计评审、代码走查、单元测试等。按模块。缺陷排除率:DRE = E /(E + D ), E为软件交付给用户之前所发现的错误数,D为软件交付后发现的缺陷数。 DRE = Ei / (Ei+E i+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论