您好,欢迎访问三七文档
软件规模估计方法2018年目录结束语软件规模估计方法解析软件规模估计总过程图软件规模估计方法比较软件规模估计的定义和目的一、软件规模估计的定义和目的从软件工程学上,我们知道软件需求和估算是软件项目的基础。因为只有准确的了解客户的需求,以之为基础,并使用科学的方法对目标软件系统的规模、工作量和进度做出合理的估算,我们才能在预算内按时按质顺利的完成项目。然而,软件估算作为软件项目的基础领域却常常被人们所忽视。软件项目的规模估计历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估算往往和实际情况相差甚远。因此,估计错误已被列入软件项目失败的四大原因之一。软件工程师经常会被问到,编一个什么什么样的软件需要多长时间、多少钱。面对这个问题,有不少人很犯难,因为,第一用户的需求太不具体,第二,自己缺乏一个科学的估计方法。一、软件规模估计的定义和目的什么是软件规模估计?根据软件的开发内容,开发工具、开发人员等因素对需求分析、软件设计、编码、测试等整个开发过程所花费的时间和工作量所做的估计。做好软件项目管理的基础是要做好项目的规划工作,而做好项目规划的前提是要做好软件估计。也就是说,没有好的软件估计,项目的规划、跟踪和控制就根本无从谈起。因此,软件估计是项目计划活动的基础之一。估计软件项目的规模,能为后面的工作量估算、人员估算、进度估算提供依据,是能直接决定和影响到其它三个估算的决策。是计算软件项目的工作量、成本、进度的主要输入。一、软件规模估计的定义和目的规模估计的方法和工具主要有:WidebandDelphi技术、PertSizing技术、功能点分析方法(FPA)、CoCoMo模型、类比法和自动化规模估算工具等。通常的估计步骤:1、选择估计方法;2、按照业务功能进行分解,分解至可独立估计的功能模块;3、借助以往类似项目的数据,对分解后的每一个功能模块进行具体的估计;4、对估计结果进行评审并校正。二、软件规模估计方法比较估计方法人工估计代数模型可用性准确性复杂度依赖因素WideBandDelphi√√专家经验、组织工作PertSizing√√√专家经验类比法√√历史数据FunctionPoints√√√√需求分析、功能点分类、复杂度定义CoCoMo√√√历史数据、过程基线经验模型三、软件规模估计总过程图三、软件规模估计总过程图四、软件规模估计方法解析衡量软件项目规模最常用的概念--LOC(LineofCode),LOC指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:JobControlLanguage)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。一代码行(1LOC)的价值和人月均代码行数可以体现一个软件生产组织的生产能力。组织可以根据对历史项目的审计来核算组织的单行代码价值。例如,某软件公司统计发现该公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。某项目的源文件大小为3.75M,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公滩等),则该项目中1LOC的价值为:(240×10000)/150000=16元/LOC该项目的人月均代码行数为:150000/240=625LOC/人月生产率=625/22=28LOC/人天规模估计—WideBandDELPHI方法WideBandDelphi法是最流行的一种专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别。对于需要估计和深度分析的领域,依赖于专家的技术指导,可以获得较为客观的估计。Delphi估计团队至少要由3名专家估计者组成,估计团队的最小配置是:估计协调者:1名;估计专家(软件工程师):最好4名,最少2名;项目经理:1名。四、软件规模估计方法解析规模估计—WideBandDELPHI方法Delphi法的估计步骤是:1、协调人向各专家提供和描述项目规格和估计表格;2、协调人召集小组会,各专家讨论与规模相关的因素;3、各专家匿名填写估计表格;4、协调人整理出一个估计总结,以估计表格的形式返回专家;5、协调人召集小组会,讨论较大的估计差异;6、专家复查估计总结并在估计表上提交另一个匿名估计;7、重复4-6,直到达到一个估计的分布范围已小到可以接受的程度。四、软件规模估计方法解析注:组织者判断是否结束估计,应考虑以下几种情况:1、所有人的估计结果已经落到一个能够接受的狭窄范围之内;2、没有人愿意对自己的估算进行修改;3、估计会议时间到;4、已经进行了4轮估算。规模估计—WideBandDELPHI方法Delphi法的估计结果计算方法:取平均值,偏差率=MAX{(最大值—平均值),(平均值—最小值)}/平均值。(偏差率小于15%),大于这个百分比就重新估计,最多四轮。取中间值。估计活动角色职责会议协调人制定估计活动计划;提供估计的基础资料,待估计的模块列表等;明确问题的定义、假设和约束条件。这样做的目的是让估算人员知道必要的足够信息;召集估计专家;主持估计会议;记录估计结果并通报结果估计专家估计前熟悉待估计的模块的相关资料;参加估计会议;提供并修订自己的估计结果。四、软件规模估计方法解析规模估计—WideBandDELPHI方法Delphi法估计具有如下特点:1、有比较标准的过程规范估计的实施;2、更依赖于各个估计专家的经验;3、适用于任何估计;4、简单实用易操作。优点:不需要历史数据,非常适合新的较为特别的项目估计。缺点:主观:专家的判断有时并不准确;专家自身的技术水平如果不高,会带来误判;比较费时:如果估计的结果没有在一个可接受的范围内,则需要进行多轮估计。估计时机:项目立项阶段、计划阶段中的初步量级估计。四、软件规模估计方法解析四、软件规模估计方法解析规模估计—PertSizing方法PertSizing方法可以在软件开发过程的全流程中应用。主要是由对待估计模块比较熟悉的专家直接进行估计并给出估计结果。输入:针对不同开发阶段的规模估计,其输入不同。输出:各个需求/模块的软件规模(KLOC)(无注释千行源代码)整个项目的软件规模(KLOC)(无注释千行源代码)估计点阶段输入1Startof产品计划阶段WBS,产品规格说明书2Endof软件需求分析阶段WBS,软件需求规格说明书3Endof软件概要设计阶段WBS,软件概要设计说明书4Endof软件详细设计阶段WBS,软件详细设计说明书规模估计—PertSizing方法PertSizing估计方法的计算公式及其含义期望值=(最大规模+4×最可能规模+最小规模)/6标准偏差=(最大规模-最小规模)/6期望值E:根据给出的三个值,推算出来最有可能接近实际值的规模。标准偏差SD:【期望值-标准偏差,期望值+标准偏差】是一个可以接受的规模估计范围。如果最终实际值能够落在这个范围内,则可以认为估计是成功的。初期该范围可以较大,随着估计的不断精确,该范围应该逐渐被有意识的减少以求得更准确的估计。优点:估计速度较快。缺点:主观:专家的判断有时并不准确;专家自身的技术水平如果不高,会带来误判;四、软件规模估计方法解析规模估计—类比法类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。类比法估计结果的精确度取决于历史项目数据的完整性和准确度。因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。其基本步骤是:1、整理出项目功能列表和实现每个功能的代码行;2、标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;3、通过步骤1和2得出各个功能的估计值;4、产生最终的规模估计。四、软件规模估计方法解析规模估计—类比法软件项目中用类比法,往往还要解决可重用代码的估算问题。估计可重用代码量的最好办法就是由程序员或系统分析员详细地考查已存在的代码,估算出新项目可重用的代码中需重新设计的代码百分比、需重新编码或修改的代码百分比以及需重新测试的代码百分比。根据这三个百分比,可用下面的计算公式计算等价新代码行:等价代码行=[(重新设计%+重新编码%+重新测试%)/3]×已有代码行比如:有10,000行代码,假定30%需要重新设计,50%需要重新编码,70%需要重新测试,那么其等价的代码行可以计算为:[(30%+50%+70%)/3]×10,000=5,000等价代码行。意即:重用这10000代码相当于编写5000代码行的工作量。四、软件规模估计方法解析五、结束语要成为一个好的项目估计者,有多种方式。最基本的方法是记录每一次估算的过程和假设,以及执行过程中的用时和工作量。实际结果与预算的比较能为今后的精确估算提供有益的帮助。准确进行规模估计的几个条件:1、规模估计前先制定良好的规划;2、确定软件项目的范围;3、制订各级别的估计表框架和模板;4、根据合适的估算表模板进行由底而上的估计。谢谢!
本文标题:软件规模估计方法
链接地址:https://www.777doc.com/doc-3872438 .html