在进行软件开发之前,需要进行软件成本估算,计算项目的经济可行性。成本估算是立项的依据,是项目计划的基础。

软件估算方法包括:规模估算、工作量估算、进度估算和成本估算。

本节主要介绍规模估算。软件成本、进度等估算方法请参见下一篇文章。

规模估算

规模估算主要有代码行估算和功能点估算两种方法。

1 代码行数估算LOC:根据历史项目经验推测。PERT加权平均法。

预期规模E=(a+4b+c)/6,标准差SD=(c-a)/6。1sd的概率为68%,2sd的概率为95,3sd的概率为99。此方法估值偏低。

2 功能点数估算FP::IFPUG

功能点方法是一种估算软件项目大小的方法,它是从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计。功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为最主流的软件规模度量方法。在2013年由工业和信息化部发布的行业标准《软件研发成本度量规范》中也推荐使用功能点方法进行软件规模度量,进而对软件项目工作量、工期、成本进行估算。

2.1 估算流程:需求-》WBS分解-》功能点(代码行数)-》经验系数(复杂度、技术难度、生产率等)-》工作量(人月)-》进度-》成本。

1)根据软件需求进行WBS分解,获得工作项。

2)然后划分类别。

3)计算工作任务涉及的数据项和数据文件数目,据此估算每个需求的功能点权重(功能点数)。

4)再根据调整系数(经验得出)计算最后的功能点总数。

2.2 估算参数

1)任务类别:EI,EO,EQ,ILF,EIF。

EI:外部数据输入系统,如录入、修改、插入等。

EO:系统向外部输出,如打印,现实、导出等。

EQ:系统向外部提供查询输出,如查询。

ILF:输入的业务数据。由外部输入维护的系统相关数据,如程序配置文件,账户信息等。

EIF:引用的接口数据。由外部系统提供的接口数据,如接口文件,外部参数等。

2)功能点数计算:功能点计算依据涉及的数据和文件,进行复杂度计算,分为数据处理和事物处理,分值根据企业经验确定,以下为示例。

界面录入:具体的录入项(包括按钮、复选框等)

文件存储:存储文件的数据项的数目。

EI估计

EO和EQ估计

ILF和EIF估计

将以上所有功能点数加和,便得到原始功能点数(未调整的功能点数UFP)

在实际使用中,为了简化操作(如项目初期,不可能计算涉及的数据项和文件),采用功能复杂度代替上述数据项和文件数(也可以采用CMMI的标准,进行准确的复杂度和涉及项之间的映射转换)。

使用公式判定功能点数的excel公式:

=IF(AND(J7="EI",I7="简单"),3,IF(AND(J7="EI",I7="普通"),4,IF(AND(J7="EI",I7="复杂"),6,IF(AND(J7="EO",I7="简单"),4,IF(AND(J7="EO",I7="普通"),5,IF(AND(J7="EO",I7="复杂"),7,IF(AND(J7="EQ",I7="简单"),3,IF(AND(J7="EQ",I7="普通"),4,IF(AND(J7="EQ",I7="复杂"),6,IF(AND(J7="ILF",I7="简单"),7,IF(AND(J7="ILF",I7="普通"),10,IF(AND(J7="ILF",I7="复杂"),15,IF(AND(J7="EIF",I7="简单"),5,IF(AND(J7="EIF",I7="普通"),7,IF(AND(J7="EIF",I7="复杂"),10,0)))))))))))))))

PMP软件开发规模估算——代码行估算、功能点估算、PERT加权估算相关推荐

  1. 软件的成本与定价如何决策?PMP软件开发规模估算和成本估算方法详解

    在进行软件开发之前,需要进行软件成本估算,计算项目的经济可行性.成本估算是立项的依据,是项目计划的基础. 软件估算方法包括:规模估算.工作量估算.进度估算和成本估算. 本节主要介绍规模估算的调整.工作 ...

  2. 软件项目管理之(估算代码行,类比估算,自下而上估算)

    1.0LOC(Lines of Code)估算代码行 本次项目是做的网上图书订阅系统,如果用C#写的话,如下图2.0WSB图所示,分为用户,图书信息等等方面,用户下边还可以细分,所以估计每一个小板块都 ...

  3. 怎么度量软件规模:代码行技术?LOC(Lines of Code,代码行)估算代码尺寸

    软件工程是一项工程,所以我们要去度量软件开发项目的规模,那我们应该怎么去度量呢?衡量标准是什么?最简单的就是代码行估算技术.什么是代码行呢?就是LOC(Lines of Code,代码行)估算代码尺寸 ...

  4. 软件开发2:代码检视

    看见了if,就想else: 看见malloc,就去找free: 函数调用要小心,需要看看返回值: 看见for循环,就找边界值: 看见return要注意,要去前面找资源: 看见数组把神提,问题往往在下标 ...

  5. 软件开发中部分代码的注解

    初次接触软件开发,先是阅读别人的代码.学习别人的一些经验!下面是遇到的一些代码及注解! @ParentPackage("basePackage")    // 默认继承struts ...

  6. 安卓手机软件开发_无代码手机app软件开发,让人人都是专业开发工程师

    点击上方蓝色字关注我们~ 近期,谷歌发布了自己的无代码在线app开发平台,这款全新工具旨在让任何一个人都可以轻松进行手机app软件开发.这样的动作无疑指引着安卓软件开发的未来.

  7. 在项目开发中统计代码行数的6种方式

    文章目录 一.使用find和wc命令统计代码行数 进行参数的过滤筛选 命令参数简要说明 二.PowerShell工具统计代码行数 条件过滤 输出所有文件的行数 PowerShell相关命令的简要说明 ...

  8. 几个实用的软件开发工具之——代码编辑工具

    1 代码编辑工具 1.1 source insight Source insight 是一款非常优秀的代码编辑软件,支持创建工程(同时支持网络创建),语法着色,词语联想,它的代码搜索功能非常强大,非常 ...

  9. 安卓手机软件开发_无代码,手机app软件开发,让人人都是专业开发工程师

    近期,谷歌发布了自己的无代码在线app开发平台,这款全新工具旨在让任何一个人都可以轻松进行手机app软件开发.这样的动作无疑指引着安卓软件开发的未来. 无代码开发手机app其实由来已久,业内反复讨论了 ...

最新文章

  1. alpha事后诸葛亮
  2. 那些重金投入区块链的互联网巨头,现在怎样了?|BCCon
  3. Python的流程控制 - for序列
  4. unreal world 皮革_UnRealWorld 进阶游戏教程
  5. 计算机社团活动丰富多彩,描写社团丰富多彩的句子
  6. 数据告诉你,抖音是怎么在半年之内逆袭的
  7. VS2010 让你的Javascript代码可以折叠
  8. 【房价预测】BP神经网络回归的现实应用-上海市二手房价格影响因素分析——思路剖析和结果分享
  9. 2022腾讯实习生移动客户端开发一面(IEG)
  10. 09 WebGL通过uniform变量修改点的颜色
  11. 【applicationContext.xml】spring 配置文件头部声明
  12. 微博官方API使用方法【全流程教学】
  13. 【炼丹】炼丹之如何打标(未完成。。。)
  14. 一、Java基础入门
  15. 锚定物决定成败?四国央行数字货币对比
  16. 蓝桥杯练习 分解质因数
  17. 面经——oppo2022校招Linux系统工程师
  18. Kaggle赛题-Synthetic Financial Datasets For Fraud Detection
  19. “四大发明”活字印刷当排首位!
  20. 分子动力学模拟基础(一)

热门文章

  1. 安装/卸载docker
  2. 卡尔曼转矩观测_基于卷积神经网络的永磁同步电机转矩观测器
  3. 四川迪瑞机电无代码开发系统,软件定制的新途径
  4. java下标越界的三种处理方式,数组下标越界,该怎么解决
  5. 高精度除法(大数相除)
  6. android启动之lk--kernel
  7. 炉石传说爆牌鱼斩杀算法C语言实现
  8. 什么是5G视频手机报?
  9. win7计算机应用教程,win7系统使用教程
  10. DataScience:数据处理技术之针对时间序列数据衍变—构造时间滑动窗口数据的简介、代码实现、案例应用之详细攻略