PMP软件开发规模估算——代码行估算、功能点估算、PERT加权估算
在进行软件开发之前,需要进行软件成本估算,计算项目的经济可行性。成本估算是立项的依据,是项目计划的基础。
软件估算方法包括:规模估算、工作量估算、进度估算和成本估算。
本节主要介绍规模估算。软件成本、进度等估算方法请参见下一篇文章。
规模估算
规模估算主要有代码行估算和功能点估算两种方法。
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加权估算相关推荐
- 软件的成本与定价如何决策?PMP软件开发规模估算和成本估算方法详解
在进行软件开发之前,需要进行软件成本估算,计算项目的经济可行性.成本估算是立项的依据,是项目计划的基础. 软件估算方法包括:规模估算.工作量估算.进度估算和成本估算. 本节主要介绍规模估算的调整.工作 ...
- 软件项目管理之(估算代码行,类比估算,自下而上估算)
1.0LOC(Lines of Code)估算代码行 本次项目是做的网上图书订阅系统,如果用C#写的话,如下图2.0WSB图所示,分为用户,图书信息等等方面,用户下边还可以细分,所以估计每一个小板块都 ...
- 怎么度量软件规模:代码行技术?LOC(Lines of Code,代码行)估算代码尺寸
软件工程是一项工程,所以我们要去度量软件开发项目的规模,那我们应该怎么去度量呢?衡量标准是什么?最简单的就是代码行估算技术.什么是代码行呢?就是LOC(Lines of Code,代码行)估算代码尺寸 ...
- 软件开发2:代码检视
看见了if,就想else: 看见malloc,就去找free: 函数调用要小心,需要看看返回值: 看见for循环,就找边界值: 看见return要注意,要去前面找资源: 看见数组把神提,问题往往在下标 ...
- 软件开发中部分代码的注解
初次接触软件开发,先是阅读别人的代码.学习别人的一些经验!下面是遇到的一些代码及注解! @ParentPackage("basePackage") // 默认继承struts ...
- 安卓手机软件开发_无代码手机app软件开发,让人人都是专业开发工程师
点击上方蓝色字关注我们~ 近期,谷歌发布了自己的无代码在线app开发平台,这款全新工具旨在让任何一个人都可以轻松进行手机app软件开发.这样的动作无疑指引着安卓软件开发的未来.
- 在项目开发中统计代码行数的6种方式
文章目录 一.使用find和wc命令统计代码行数 进行参数的过滤筛选 命令参数简要说明 二.PowerShell工具统计代码行数 条件过滤 输出所有文件的行数 PowerShell相关命令的简要说明 ...
- 几个实用的软件开发工具之——代码编辑工具
1 代码编辑工具 1.1 source insight Source insight 是一款非常优秀的代码编辑软件,支持创建工程(同时支持网络创建),语法着色,词语联想,它的代码搜索功能非常强大,非常 ...
- 安卓手机软件开发_无代码,手机app软件开发,让人人都是专业开发工程师
近期,谷歌发布了自己的无代码在线app开发平台,这款全新工具旨在让任何一个人都可以轻松进行手机app软件开发.这样的动作无疑指引着安卓软件开发的未来. 无代码开发手机app其实由来已久,业内反复讨论了 ...
最新文章
- alpha事后诸葛亮
- 那些重金投入区块链的互联网巨头,现在怎样了?|BCCon
- Python的流程控制 - for序列
- unreal world 皮革_UnRealWorld 进阶游戏教程
- 计算机社团活动丰富多彩,描写社团丰富多彩的句子
- 数据告诉你,抖音是怎么在半年之内逆袭的
- VS2010 让你的Javascript代码可以折叠
- 【房价预测】BP神经网络回归的现实应用-上海市二手房价格影响因素分析——思路剖析和结果分享
- 2022腾讯实习生移动客户端开发一面(IEG)
- 09 WebGL通过uniform变量修改点的颜色
- 【applicationContext.xml】spring 配置文件头部声明
- 微博官方API使用方法【全流程教学】
- 【炼丹】炼丹之如何打标(未完成。。。)
- 一、Java基础入门
- 锚定物决定成败?四国央行数字货币对比
- 蓝桥杯练习 分解质因数
- 面经——oppo2022校招Linux系统工程师
- Kaggle赛题-Synthetic Financial Datasets For Fraud Detection
- “四大发明”活字印刷当排首位!
- 分子动力学模拟基础(一)