代码量估计的多种方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
►LOC或FP估算技术对于分解所需要的详细 程度是不同的。
►用LOC做为估算变量时,必须进行功能分 解, 且需要达到很详细的程度。而估算FP 时需要的数据是宏观的量,当把FP当做估 算变量时不需分解得很详细。
►LOC是直接估算的, 而FP是通过估计输入、 输出、数据文件、查询和外部接口的数目, 以及14种复杂性校正值间接地确定的。
5.4 工作量的估算
►方法一: ►根据功能点、复杂度或代码行等进行整个软件规
模的估算。 ►参照类似项目的历史基线,确定项目的生产率; ►从生产率和规模估算获得整体工作量; ►参照类似项目历史基线的工作量分配比例,确定
各个阶段的工作量以及管理工作量和附加工作量;
►如果没有类似项目历史基线可参照,通过 Delphi 或PERT方法确定,或者参照已有项目 历史基线的平均值;
►如果没有类似项目历史基线可参照,通过 Delphi 或PERT方法确定,或者参照已有项 目历史基线的平均值;
►考虑项目的特定因素(如:加缓冲时间等) 修正估算。
方法三: 一些公司开发出的经验模型
方法四: 简单直观的“分解-累计”方法
方法五: 专家评定方法
方法六: 灵活运用
LOC和FP数据在估算中的使用
大影响,不过,复杂性是一个受到对以前工作 的熟悉程度影响的相对的测量。
►2、项目规模 项目规模是另一个影响估算准确性的因素。 随着规模的增长,软件中各个元素之间的相
互依赖性也迅速增加, 项目规模的增长会对项目的成本及进度产生
几何级数级的影响。
百度文库
►3、结构不确定性的程度 结构不确定性的程度也会对估算的风险产生
►在这个实例中,使用LOC做为估算变量。
第二部分 第5章 软件项目计划
•厦门大学软件学院 林坤辉
第5章 软件项目计划
►5.1 软件项目估算的概念
►合理的计划是建立在对要完成的工作做出一 个比较实际的估计,以及对完成该工作建立 一些必要的约定的基础上的。
►项目计划中的第一个活动是估算。无论何时 进行估算,我们都是在预测未来,并会接受 某种程度的不确定性。
►Delphi法是一种利用调查表,充分利用群体知 识和经验的一种估算方法.
►为了反映通货膨胀、项目复杂性增加、新员 工较多等的影响,应随时修正平均生产率的 度量值。
►估算的各种假设、条件等均应记入文档,并 通过评审。
PERT 估算方法
►PERT: Program Evaluation & Review Technique(计划评估和评审技术),在没有类似 项目做参照时,这是一个很常用的方法。
►估算的基础是对软件相应项目的度量。
5.2 软件估算风险
►估算一个软件开发工作的资源、成本及进度需 要经验、需要了解以前的有用信息、以及当仅 存在定性的数据时进行定量测量的勇气。
►估算具有与生俱来的风险,而正是这种风险导 致了估算的不确定性。
►估算的风险有四个方面:
►1、项目复杂性 项目复杂性对计划中固有的不确定性产生重
►例如,若假定总的FP估算值是310,基于 过去项目的平均FP生产率是5.5FP/PM, 则项目的总工作量是: 工作量 = 310/5.5 = 56 PM 作为LOC和FP估算技术的实例,考察一个 为计算机辅助设计(CAD)应用而开发的 软件包。
►系统定义评审指明:
CAD软件包是在一个工作站上运行, 其接口必须使用各种计算机图形设备,包 括鼠标器、数字化仪、高分辩率彩色显示 器和激光打印机。
给出一个有界的软件范围的叙述;
由此叙述尝试把软件分解成一些小的可 分别独立进行估算的子功能;
对每一个子功能估算其LOC或FP把基线 生产率度量(如LOC/PM或FP/PM, PM指人月)用做特定的估算变量,导出 子功能的成本或工作量;
将子功能的估算进行综合后就能得到整 个项目的总估算。
►项目计划人员可对每一个分解的功能提出 一个有代表性的估算值范围。
►利用历史数据或凭实际经验(当其它的方 法失效时),对每个功能分别按最佳的、 可能的、悲观的三种情况给出LOC或FP估 计值。记作a、m、b。
►接着计算LOC或FP的期望值 E。 E = (a+4m+b)/6
►所有子功能的总估算变量值除以相应于该 估算变量的平均生产率度量得到项目的总 工作量。
度或代码行等技术确定; ►估算的主要内容是工作量和成本估算; ►估算的范围包括,软件生命周期的各阶段; ►如果有类似项目的开发经验(即历史基线完
备),则生产率等数据可直接使用这些数据;
►如果没有类似项目的开发经验,则生产率等 数据可由历史基线的平均值得出,或者用专 家问卷的方法(即Delphi法)得到;
►利用历史数据或凭经验估算,计算三点或期望值。 估算变量(规模)的期望值EV(expected value), 可以通过乐观值(Sopt)、可能值(Sm)、及悲观值 (Spess)估算的加权平均值来计算:
►EV=(Sopt+4Sm+Spess)/6
►其中给予“可能值”估算以最大的权重,并遵循 β概率分布。
►考虑项目的特定因素(如:加缓冲时间等) 修正估算。
►方法二:
►将待开发的项目进行分解,直到每个任务可 用功能点、复杂度或代码行等进行估算。
►参照类似项目的历史基线,确定每个任务的 工作量;
►参照类似项目历史基线的工作量分配比例, 确定各个阶段的工作量以及管理工作量和附 加工作量等,最后获得整体工作量;
影响。
结构化程度越高,对功能等的分解程度越容 易,估算的精度越高、风险越小。
►4、历史信息的可用程度 历史信息的可用程度也决定了估算的风险。
当存在大量可用的关于过去的类似项目的软 件度量时,估算就会有更大的保证;总体风险 也会降低。
5.3 估算的步骤
►1、估算的注意点 ►估算的前提是系统的规模可通过功能点、复杂
►在软件项目估算中,在两个方面使用了 LOC和FP数据: 把LOC和FP数据当做一个估算变量, 用于量度软件每一个元素的规模。
LOC和FP数据作为从过去项目中收集 到的基线数据,与其它估算变量联合 使用, 进行成本和工作量的估算。
►LOC和FP是两个不同的估算技术。两者的 共性在于: 项目计划人员