软件工程项目估算——基于LOC、FP等的估算

软件工程姓名估算:LOC、FP、面向经验COCOMOⅡ模型、面向对象估算

本文将简要介绍如何进行各种估算,内容基于《软件工程:实践者的研究方法》;

概念介绍

名词意思
LOCline of code代码行
FPfunction point功能点
S_opt乐观值
S_m可能值
S_pess悲观值

对于LOC和FP,无论使用哪一种,都需要估算出一个乐观的、可能的、和悲观的规模值,分别为S_opt、S_m、S_pess
通过计算三者的加权平均值来计算估算变量S(LOC或者FP)的期望值,例如:

在这里插入图片描述

这个例子中,可能值的权重最大,具体权重信息题目一般会有说明。
(注意:实际上,我做过的大部分题目中不需要进行加权平均值的计算,题目直接给出LOC值和FP值,具体情况下面有例题)

LOC估算

基于LOC估算的实例(后继估算均以同一CAD软件为例):
在这里插入图片描述
假设这类系统的平均生产率是620LOC/pm。(pm表示一种度量单位,常见于项目估算中)
若一个劳动力价格是每月8000美元,则每行代码的成本约为13美元。
根据LOC估算及历史生产率数据,该项目总成本的估算值是33200*13=431000美元
工作量的估算值是33200/620=54人月。

FP估算

功能点度量(FP)首先由Albrecht[ALB79]提出,可以有效地用作测量系统提供的功能的手段。
功能点是使用基于软件信息域的可数(直接)度量和软件复杂性评估的经验关系得出的
信息域值按以下方式定义:
外部输入 (EI) 数量
外部输出数量(EO)
外部查询数量 (EQ)
内部逻辑文件 (ILF) 的数量
外部接口文件 (EIF) 的数量

基于FP估算时,问题分解关注的不是软件功能,而是信息域的值。
实例:
分别对CAD软件的输入、输出、查询、文件和外部接口进行估算,参看下图给出的表。然后计算FP的值。为了进行估算,假定复杂度加权因子都取平均值。下图给出了估算的结果:
在这里插入图片描述
注意,上图中的加权因子去取的是取整值,所以 估算值*加权因子 和结果FP值有一点点差异
在这里插入图片描述
估算设计两个参数,分别是
UFP:总FP;本例中=320
TFC:技术复杂因子;本例中=1.17
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后,得出FP的估算值:
FPestimate=总计×(0.65+0.01*∑FPi=375
在这里插入图片描述

如果这类系统的组织平均生产率是6.5FP/pm。
如果一个劳动力价格是每月8000美元,则每个FP的成本约为1230美元。
根据FP估算和历史生产率数据,项目总成本的估算值是461000美元,工作量的估算值是58人月。

经验估算模型COCOMO-Ⅱ

对于经验估算模型COCOMO-Ⅱ,只需记得以下公式即可:
在这里插入图片描述
pm为每人月工作量
NAP为应用点数量
%reuse表示可重用比例
PROD表示劳动生产率
根据不同的开发团队经验和能力,PROD不同,具体见下表:

开发团队经验和能力很低正常很高
PROD47132550

NAP、%reuse、团队开发经验能力一般题中都会给出,所以算工作量只是一个非常简单的记忆+运算的过程
例题:
在这里插入图片描述
以上主要为快速记忆或应试所准备,细节原理请参见《软件工程:实践者的研究方法》
如需书籍pdf,→软件工程:实践者的研究方法

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值