`

软件项目规模估计方法介绍

阅读更多
  软件项目的规模估算历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估算往往和实际情况相差甚远。 因此,估算错误已被列入软件项目失败的四大原因之一。
  软件工程师经常会被问到,编一个什么什么样的软件需要多长时间、多少钱。面对这个问题,有不少人很犯难,因为,第一用户的需求太不具体,第二,自己缺乏一个科学的估计方法。这里向大家介绍几种软件项目规模的估计方法。
概念介绍
  先介绍一个衡量软件项目规模最常用的概念--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]× 已有代码行
  比如:有10,000行代码,假定30%需要重新设计,50%需要重新编码,70%需要重新测试,那么其等价的代码行可以计算为:
  [ (30% + 50% + 70%)/3 ]× 10,000 = 5,000 等价代码行。
  意即:重用这10000代码相当于编写5000代码行的工作量。
方法三、功能点估计法
  功能点测量是在需求分析阶段基于系统功能的一种规模估计方法。通过研究初始应用需求来确定各种输入、输出、计算和数据库需求的数量和特性。通常的步骤是:
  1、计算输入,输出,查询,主控文件,和接口需求的数目。
  2、将这些数据进行加权乘。下表为一个典型的权值表。
    功能类型  权值
    输入    4
    输出    5
    查询    4
    主控文件  10
    接口    10
  3、估计者根据对复杂度的判断,总数可以用+25%、0、或-25%调整。
  据发现,对一个软件产品的开发,功能点对项目早期的规模估计很有帮助。然而,在了解产品越多后,功能点可以转换为软件规模测量更常用的LOC。
方法四、PERT估计法
  PERT对各个项目活动的完成时间按三种不同情况估计:一个产品的期望规模,一个最低可能估计,一个最高可能估计。用这三个估计用来得到一个产品期望规模和标准偏差的Pert 统计估计。Pert 估计可得到代码行的期望值E, 和标准偏差SD.
  详细的估计方法,读者可参考笔者所写的《应用PERT进行项目工期估计》一文,这里不再赘述。
分享到:
评论

相关推荐

    软件项目如何估计规模大小

    软件项目如何估计规模大小 软件项目如何估计规模大小

    论文研究-软件项目工作量动态估计方法研究.pdf

    为解决目前软件行业工作量估计准确率低的问题,提出动态估计软件项目工作量的方法。首先,在项目执行前,针对工作量与规模之间的线性和非线性关系,采用基于规模的工作量估计模型对工作量进行初步估计;其次,在项目...

    软件项目规模估算-功能点分析

    软件项目规模估算-功能点分析

    软件项目估计书-----一个软件项目的工作估计模板

    软件估计书:规模估计、生产率估计、工作量估计、开发成本、外部成本、关键计算机资源 代码行规模估计:模块名称、估算人 关键计算机资源估计:名称、估计数量、实际数量 工作量估算:概要设计、编码阶段等

    软件功能测试工作量的估计模型

    比较了使用通用软件测量国际协会(COSMIC)创新的功能点方法(称为COSMIC功能点)和国际功能点用户组(IFPUG)倡导的称为IFPUG功能点的功能点方法构建的估计模型的性能。评估这些大小调整方法对测试工作量估计的...

    软件项目开发之项目预算表.doc

    档案管理系统项目预算表 规划小组根据用户需求,分解产品的功能,制定产品的结构图。由于此处结构图仅用于项目估计而非用于系统设计,其细分程度由规划小组决定。 基本信息 产品的结构图 产品规模 工作量预算

    浅谈软件项目规模估计——怎么估?

    周三的下午,我像平常一样,写着代码听着歌,突然从天而降一份莫名其妙的故事列表,说让我给个人天,用来投标用。作为一个技术异常牛逼的高端程序员,这对我来说岂不是 APieceOfShit…哦不,Cake。...

    信息化项目成本自动计算器EXCEL版.rar

    信息化项目成本自动估计计算器,填写项目基本信息,规模估算,功能点工作量估算,投入人力成本表,关键资源估算表,项目估计汇总,Delphi估计方法,类比估算法,复用计算与FP估算法。总影响度因子是14个系统特征值的...

    敏捷估计与规划,完整扫描版

    “您的项目进行得怎么样 遇到了令人沮丧的变化 不确定性 还是产品错过了标志点和最终期限 MikeCohn清晰明了地展示了如何有效地开发具有高商业价值的软件 通过敏捷估计与规划 即使环境发生了变化 您仍可以将精力专注...

    项目、软件开发计划模板

    2.1 项目的目的、规模和目标 3 2.2 假设与约束 3 2.3 项目的可交付工件 3 2.4 软件开发计划的演进 3 3. 项目组织 3 3.1 组织结构 3 3.2 对外联系 3 4. 管理流程 3 4.1 项目估计 3 4.2 项目计划 3 4.2.1 阶段计划 3 ...

    [详细完整版]4软件工程.pdf

    (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开 发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护 困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服...

    软件工程知识点

    软件项目往往开始于任务立项,并需要以“软件任务立项报告”的形式针对项目的名称、性质、目标、意义和规模等作出回答,以此获得对准备着手开发的软件系统的最高层描述。 2.项目可行性分析 在软件任务立项报告被...

    常见软件项目风险检查表:商业风险、管理风险、技术风险

    对项目的规模、难度估计是否比较正确? 人力资源(开发人员、管理人员)够用吗?合格吗? 项目所需的软件、硬件能按时到位吗? 项目的经费够用吗? 进度安排是否过于紧张?有合理的缓冲时间吗? 进度表中是否遗忘了...

    课时9 软件项目管理1

    9.1估算软件规模 9.2工作量估计 9.3进度计划 9.4人员组织 9.5质量保障 9.6软件配置管理 9.7能力成熟度模型 9.1估算软件规模 9.2工作量

    成都信息工程大学计算机学院计算机科学与技术2018级软件工程复习资料(老师发的)

    由于软件规模扩大、软件复杂性提高导致软件开发开发周期长、成本高、质量差和维护困难,爆发了软件危机,为了克服软件危机,1968年北大西洋公约组织(NATO)提出了软件工程的概念,试图将工程化的方法应用于软件开发...

    项目管理的理念、思想、知道

    与CPM不同的是,PERT中作业时间是不确定的,是用概率的方法进行估计的估算值,另外它也并不十分关心项目费用和成本,重点在于时间控制,被主要应用于含有大量不确定因素的大规模开发研究项目。 随后两者有发展一致...

    现代软件工程习题及答案

    4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为...

    非常实用的软件测试综合资料库

    软件项目的日程表很难做到准确,很多时候需要预计和猜测。当最终期限迫近和关键时刻到来之际,错误也就跟着来了。 ⑥、自负人更喜欢说: '没问题' '这事情很容易' '几个小时我就能拿出来' 太多不切实际的‘没...

    软件工程黑书考研一轮复习笔记.docx

    软件工程黑书全书知识...2、软件度量有哪些方法:生产率估计(基于规模(KLOC)、基于功能点(FP))、工作量度 量(算法成本模型、COCOMO 模型)。掌握直接测量(基于规模)方法。 49 3、项目计划与风险管理的概念 49

Global site tag (gtag.js) - Google Analytics