浅析软件成本估算之NESMA方法的3种应用场景

简介: NESMA为荷兰软件度量协会的简称(Netherland Software Measurement Association),NESMA功能点方法是五种ISO国际功能点标准之一,不但易学易用、快速、经济,而且容易开发和建立用户自己特有的估算模型。

  NESMA为荷兰软件度量协会的简称(Netherland Software Measurement Association),NESMA功能点方法是五种ISO国际功能点标准之一,不但易学易用、快速、经济,而且容易开发和建立用户自己特有的估算模型。

  在五种国际标准中,只有NESMA方法定义了3种应用场景以支持不同粒度的估算,并且随着项目的进展和需求的完善,估算者可以不断修正之前的结果,进行持续的软件度量。因此如果使用行业标准进行早期估算(如编制预算、招投标),则应采用NESMA方法中的预估功能点或估算功能点方法。

  相比IFPUG方法,NESMA方法更着重于项目早期的估算功能,针对IFPUG方法分析过程比较复杂,计算工作量大,估算成本高,不适合项目早期规模估算的不足,NESMA方法基于原有规则提出了2种快速计算的方法,共3种应用场景,在估算的不同时期可选择不同精度的方法进行估算。

  NESMA方法3种应用场景如下:

  a) 预估功能点(简化一)

  功能点规模统计只识别ILF和EIF文件,可用于预算或招投标阶段,采用如下公式计算:

  功能点数≈35ILF+15EIF

  这一公式基于如下假设:平均情况下,每个ILF对应3个EI、2个EO和1个EQ,每个EIF对应1个EO和1个EQ,35和15是将上述ILF、EIF、EI、EO、EQ的复杂度默认为中,再考虑系统整体的功能性得出的。

  b) 估算功能点(简化二)

  功能点规模统计仍是5类基本功能组件的功能点数之和,采用如下公式计算:

  功能点数=10ILF+7EIF+4EI+5EO+4*EQ

  这一公式基于如下假设:将ILF、EIF、EI、EO、EQ的复杂度默认为中,其他步骤与IFPUG方法一样。

  c) 详细功能点

  识别5类基本功能组件的功能点数,并根据复杂度决定取值后计算见表5.2。

各类基本功能组件的功能点数参考值

  NESMA的两种简化方法都是基于“默认”值来计算的,根据大量样本项目分析,此种计算结果与IFPUG方法得到的结果的平均值相近,但对个体项目,特别是小型项目常有较大差异。

  在规模估算时,应考虑可能的需求变更程度,并对规模估算结果进行适当调整。据北京软件造价评估技术创新联盟统计数据,规模变更因子预算时取值为2,招标时取值为1.5,投标为1.26;项目计划为1.26,软件开发团队也可以根据具体情况进行调整,如根据组织内项目规模变更统计数据校正此数据。

目录
相关文章
|
10月前
|
存储 弹性计算 调度
云计算,何为云,又何以计算?
本文由笠泱撰写,是“拥抱云计算”系列的第一篇章,旨在分享云计算的概念及其诞生背景,重点介绍了阿里云飞天操作系统。文章从虚拟化技术的起源讲起,探讨了其如何演变为云计算的基础,并详细解释了云计算的关键特性:按需使用、按量付费和弹性。文中还分类介绍了云计算的主要服务模式(IaaS、PaaS、SaaS等)及部署方式(公共云、私有云、混合云),并分析了亚马逊AWS和阿里云在云计算领域的领导地位。最后,文章通过对比OpenStack与阿里云飞天架构,深入浅出地解析了阿里云飞天系统如何调度算力,帮助读者理解云计算的实际运作机制。阅读本文大约需要30分钟,内容详实,值得一读。
2051 5
云计算,何为云,又何以计算?
|
10月前
|
存储 算法 测试技术
【C++数据结构——线性表】求集合的并、交和差运算(头歌实践教学平台习题)【合集】
本任务要求编写程序求两个集合的并集、交集和差集。主要内容包括: 1. **单链表表示集合**:使用单链表存储集合元素,确保元素唯一且无序。 2. **求并集**:遍历两个集合,将所有不同元素加入新链表。 3. **求交集**:遍历集合A,检查元素是否在集合B中存在,若存在则加入结果链表。 4. **求差集**:遍历集合A,检查元素是否不在集合B中,若满足条件则加入结果链表。 通过C++代码实现上述操作,并提供测试用例验证结果。测试输入为两个集合的元素,输出为有序集合A、B,以及它们的并集、交集和差集。 示例测试输入: ``` a c e f a b d e h i ``` 预期输出:
309 7
|
存储 机器学习/深度学习 人工智能
深入浅出 AI 智能体(AI Agent)|技术干货
随着人工智能技术的发展,智能体(AI Agents)逐渐成为人与大模型交互的主要方式。智能体能执行任务、解决问题,并提供个性化服务。其关键组成部分包括规划、记忆和工具使用,使交互更加高效、自然。智能体的应用涵盖专业领域问答、资讯整理、角色扮演等场景,极大地提升了用户体验与工作效率。借助智能体开发平台,用户可以轻松打造定制化AI应用,推动AI技术在各领域的广泛应用与深度融合。
30728 1
|
JSON JavaScript 前端开发
震惊!JS如何悄无声息追踪你的每一步?揭秘页面访问与关闭的超级上报大法,让数据说话,优化体验不再难!
【8月更文挑战第4天】在Web开发中,跟踪用户行为对提升体验与留存至关重要。本文以在线学习平台为例,介绍如何用JavaScript监听页面访问及关闭,并上报数据。通过`window.onload`监测页面加载,记录用户访问;利用`navigator.sendBeacon`在用户离开时发送少量数据至服务器,无需担心请求失败。需注意隐私合规、性能影响及浏览器兼容性。此技术有助于深入理解用户行为,为产品迭代提供依据。
418 8
|
SQL 分布式计算 关系型数据库
Sqoop入门(一篇就够了)
Sqoop入门(一篇就够了)
8424 3
Sqoop入门(一篇就够了)
|
安全 Linux 数据安全/隐私保护
阿里云镜像仓库:拉取和推送Docker镜像
阿里云镜像仓库:拉取和推送Docker镜像
42804 2
阿里云镜像仓库:拉取和推送Docker镜像
|
存储 算法 Linux
Gzip的压缩级别
【4月更文挑战第29天】压缩级别
1256 1
|
消息中间件 测试技术 领域建模
DDD - 一文读懂DDD领域驱动设计
DDD - 一文读懂DDD领域驱动设计
44327 6
|
Docker 容器
docker 设置国内镜像源
docker 设置国内镜像源
90154 1
|
数据库 测试技术 Java
阿里技术专家详解DDD系列 第二弹 - 应用架构
应用架构,指软件系统中固定不变的代码结构、设计模式、规范和组件间的通信方式。在应用开发中架构之所以是最重要的第一步,因为一个好的架构能让系统安全、稳定、快速迭代。但是今天我们在做业务研发时,更多会关注一些宏观的架构,而忽略了应用内部的架构设计,希望能通过案例分析和重构,推演出一套高质量的DDD架构。
58309 24
阿里技术专家详解DDD系列 第二弹 - 应用架构