软件成本度量

1. 软件成本度量的意义

软评的意义主要在于其在软件项目的预算、招投标、实施及决算后评估阶段的重要作用。

  1. 在预算及招投标阶段,软评通过软件成本度量有助于制定合理的项目预算,规范招投标行为。这一阶段,甲方需要准确估算项目成本和合理的投标价格范围,而乙方需要根据自身能力进行竞标。如果缺乏科学有效的软评方法,将可能导致资源浪费、项目失败,甚至产生不当竞争,对软件产业的健康发展产生影响。因此,软评在此阶段具有明显的优势,能够帮助甲方选择可靠的乙方,有效地规避项目风险,促进软件产业健康发展。
  2. 在项目实施阶段,软评通过软件成本度量有助于合理调配资源,有效控制项目范围和质量。在实施过程中,如果因成本估算不准确而导致的项目计划不合理,可能会影响项目进度和质量,或者造成资源浪费。而采用科学的成本度量方法进行规模、工作量、工期和成本估算,可以为资源分配和工期安排提供有效的支撑,同时也能减少需求变更对项目进度及成本的影响,保证软件企业合理的利润。
  3. 在项目决算及后评估阶段,软评通过软件成本度量有助于项目交付、总结和评价。在这一阶段,甲乙双方经常会因为对项目的实际投入存在争议,从而影响到项目的最终交付,也难以对项目的绩效进行科学评价。而通过软评,可以了解项目的实际成本,为决算工作提供合理的依据,同时也能通过对项目决算与预算的对比,考核投资控制的工作成效,总结经验教训,提高未来项目的效益。此外,还可以利用软件企业的度量数据,建立基准数据库,定量分析软件企业或行业的当前能力、问题及发展趋势,为软件企业的发展提供指导,相关主管部门也可依此制定合理的政策引导软件行业健康发展。

2. 国内外标准化现状

软件成本度量标准:旨在提供科学的成本控制依据和规范的成本量化方法。

2.1 国际标准化

目前,ISO/IEC JTC 1/SC7 没有制定和发布直接用于软件成本度量的标准。
已发布的标准集中在功能规模测量方面,包括:

ISO/IEC 14143系列标准

  • ISO/IEC 14143-1:2007 《信息技术 软件测量 第1部分:概念定义》

——是概念标准,是其他标准的基础。
主要内容包括定义、FSMMS(功能规模测量方法)的特性、FSMMs 的要求、应用 FSMM 的过程、FSMM 标号设置的约定、符合性认证。

  • ISO/EC 14143-2:2011 《信息技术 软件测量 第2部分:软件规模测量方法与ISO/IEC 14143-1的符合性评价》

——是支持标准,定义了检查一个候选的FSMM是否符合ISO/IEC 14143-1的过程。
推荐采用ISO/EC 14143-2进行符合性评估,本部分的内容包括评价方的特性、符合性评价的输入、符合性评价规程的任务和步骤、符合性评价的输出、符合性评价的结果。
- ISO/IEC TR 14143-3:2003 《信息技术 软件测量 第3部分:功能规模测量方法的验证》
——是支持标准,提供了一种评估FSMM 性能属性的过程。
主要内客包括验证组的能力和职责、验证输入、验证规程、验讯输出。

  • ISO/IEC TR 14143-4:2002 《信息技术 软件测量 第4部分:基准模型》

——是支持标准。该部分标标准提供了一种用于在FSMM之间对比FSM 结果的基准用户需求的标准汇集,其中还包含选择基准FSMM 的指南;该部分标准可与ISO/IEC14143-3结合使用,能将规范的、定量的FSMM性能证据汇集起来,主要内容包括基准用户需求(RUR)和基准FSM法。

  • ISO/IEC TR 14143-5:2004 《信息技术 软件测量 第5部分:功能规模测量的功能域确定》

——是支持标准。制定该部分标准是为描述功能域(“软件类型”),例如,一个软件能以此判定所属,一个功能测量方法能以此声称其适用性(按ISO/IEC 14143-1的要求)。该部分标准通过描述功能域特性以及能将 FUR 特性用于确定功能域的规程,提供一种确定功能域的手段,主要内容包括功能域的一般要求、功能域特性的一般要求、确定一个 FSM方法对特定功能域的适用性和功能域分类方法示例。

  • ISO/EC 14143-6:2012 《信息技术 软件测量 第6部分:ISO/IEC 14143系列标准和相关国际标准使用指导》

提供了功能规模测量(FSM)相关标准的概括说明以及系列标准之间的关系,以及ISO/IEC的功能规模测量方法标准。
具体包括以下5项:
ISO/EC 19761:2011 《软件工程 COSMIC:功能规模测量方法》
1SO/EC 20926:2009 《软件和系统工程软件管理IFPUG功能规模测量方法 2009》
ISO/EC 20968:2002 《软件工程 MkⅡ功能点分析 计算实践手册》
ISO/EC 24570:2018 《软件工程 NESMA 功能规模测量方法 功能点分析应用的定义和计算指南》
ISO/EC 29881:2010 《信息技术 系统和软件工程FiSMA1.1 功能规模测量方法》

- 具体操作方法的标准

  • SJ/T 11617-2016 软件工程 COSMIC-FFP 一种功能规模测量方法
  • SJ/T 11618-2016 软件工程 MK-Ⅱ功能点分析计数实践指南
  • SJ/T 11619-2016 软件工程 NESMA功能规模测量方法
  • SJ/T 11620-2016 信息技术 软件和系统工程 FiSMA1.1功能规模测量方法
  • ISO/IEC 20926:2009 软件与系统工程 软件测量 IFPUG功能规模测量方法2009

2.2 国家标准

- 国家标准

  • 软件开发成本度量:GB/T36964-2018《软件工程软件开发成本度量规范》
    定义了软件开发成本度量的方法及过程,通过软件开发成本的构成、度量过程和应用场景给出应用指导。
  • 软件测试成本度量: GB/T32911-2016《软件测试成本度量规范》

综合考虑了软件测试过程中涉及的环境、测试工具和测试人工等成本因素,对软件测试成本的度量方法及过程进行了规范。

  • 云计算等新的软件服务方式:GB/T 37735-2019《信息技术 云计算 云服务计量指标》

根据基础设施、平台和应用3种类型,规定了不同类型云服务的计量指标和计量单位,规范了各类云服务的提供、采购、审计和监管过程中的计量活动。

  • 信息技术服务成本度量:20194187-T-469(计划号,已完成立项):《信息技术服务运行维护7部分:成本度量规范》
    将规定运维成本度量的方法及过程,包括运维成本的构成及运维成本度量过程,适用于各类组织度量信息技术服务运行维护成本,包括GB/T29264-2012《信息技术服务 分类与代码》中包含的各类运维服务。

行业标准

  • SJ/T 11617-2016 《软件工程 功能规模测量 COSMIC方法》
  • SJ/T 11618-2016 《软件工程功能规模测量Mk II功能点分析方法》
  • SJ/T 11619-2016《软件工程功能规模测量 NESMA 方法》
  • SJ/T 11620-2016 《软件工程功能规模测量 FiSMA1.1方法》

在这里插入图片描述

3. 软件规模测量方法

常见的软件规模测量方法包括:

  • 功能点分析方法
  • 软件非功能评估过程
  • 软件源代码行测量方法
  • 用例点估算方法
  • 对象点估算方法
  • 故事点估算方法

1.1 功能点分析方法——COSMIC方法

COSMIC方法关注每个功能过程所引起的数据移动。
数据移动是移动单个数据组的基本功能部件。
数据组具有唯一、非空、无序、无冗余的数据属性,各个数据属性互相补充,分别描述了同一个关注对象某个方面的特征。这些数据移动计为功能点,软件的整体规模由这些功能点累加而成。

数据移动的分类如下:

  • 进入:功能用户(人员、其他系统)穿越被度量系统的边界传输数据到达系统内部。
  • 退出:一个数据组从一个功能处理通过边界移动到达需要它的功能用户。
  • 读取:从持久性的存储设备读取数据。
  • 写入:存储数据到达持久性的存储设备。

COSMIC方法的度量过程分以下几个步骤::SM目的和范围的确定、FUR的识别、软件层的识别、功能性用户的识别、软件边界的识别、功能过程的识别、数据组的识别、数据移动的识别、数据移动的分类、功能规模的计算、FUR 变更的规模计算。

在COSMIC方法中,每一个有效的数据移动被看成一个COSMIC功能点(CFP)。在为每一个功能过程都找到其应有的所有数据移动之后,将它们累加在一起便是这个功能过程的规模。

在可操作性方面,COSMIC方法很好地借鉴了IFPUG 方法中基于规则约束的实践经验并且计算规则简单直接,无须调整因子。同时COSMIC方法引入了分层模型操作的概念,对度量复杂系统有一定的合理性,但度量结果会受技术实现方案的影响。
在适用性方面,COSMIC 方法尤其适用于以数据处理为主的商务应用软件、实时系统及嵌入式系统。

1.2 功能点分析方法——NESMA方法

NESMA 方法与 IFPUG方法在发展过程中相互借鉴,与FPUG方法完全兼容,需要识别的功能类型及其复杂性程度的确定与TFPUG方法相似,其估算过程分以下6个步骤:
(1)收集现有文档。
(2)确定软件用户。
(3)确定估算类型。
(4)识别功能类型并确定其复杂性程度。
(5)与用户验证估算结果并进行结果校正
(6)与功能点分析专家验证估算结果。
NESMA方法在各功能类型的复杂性程度确定后,可用复杂性程度矩阵来确定各组件的功能点值。
在这里插入图片描述

NESMA提供了3种类型的功能点分析方法:
(1)详细功能点分析方法

  1. 确定每个功能的类型(IF、EIF、EI、EO、EQ)。门明菜美的书里
  2. 为每个功能测量复杂性程度级别(低、中、高)。
  3. 计算整体未调整功能点。

(2)估算功能点分析方法
在确定每个功能部件(数据功能部件或事务功能部件)的复杂性程度时使用标准值:数据功能全部采用“低”级复杂性程度,事务功能全部采用“中”级复杂性程度计量。步骤如下:

  1. 确定每个功能的功能类型(ILF、EIF、EI、EO、EO)。
  2. 为所有的数据功能选择“低”级复杂性程度,事务性功能选“中”级复杂性程度
  3. 计算整体未调整功能点。
    该方法与详细功能点分析的唯一区别是不用为每个功能识别分配的复杂性程度,而是采用“默认值”。

(3)预估功能点分析方法
在度量时,只识别出软件需求的数据功能数量,根据经验公式得出软件规模。步骤如下:

  1. 先确定数据功能的数量(ILF、EIF)。
  2. 用下列公式直接计算未调整功能点的数量
    35 × N r o I L F s + 15 × N r o E I F s 35×N_{roILFs}+15×N_{roEIFs} 35×NroILFs+15×NroEIFs
    其中,NroILFs表示ILF的数量,NroEIFs表示EIF的数量。
    估算功能点分析方法与预估功能点分析方法的计算结果,与详细功能点分析方法的计算结果有很强的相关性和一致性。在软件项目早期,选择预估功能点分析方法较好。

1.3 COSMIC和NESMA的区别

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369963.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

加速数字化之旅:MessageBox赋能HubSpot与微信公众号的无缝整合

在数字化时代,企业需要整合关键平台以适应快速变化的市场。HubSpot和微信公众号的整合成为数字化营销的核心策略之一。MessageBox作为整合的关键力量,通过其卓越的能力,极大地加速了HubSpot与微信公众号的融合过程。今天运营坛将深入探讨Mess…

【OpenCV人脸检测】写了个智能锁屏小工具!人离开电脑自动锁屏

文章目录 1. 写在前面2. 设计思路3. 人脸检测4. 程序实现 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋…

React Hooks 学习笔记

1.useState() 实现对页面数据的存储,当数据改变时候,自动触发render函数 2.useRef 用来解决两个问题: 1).是获取DOM元素或子组件的实例对象 2).存储渲染周期之间共享的数据 3.useEffect 4.useLayoutEffect 5…

数据结构(C语言)代码实现(六)——单链表的实现

目录 参考、格式 头文件LinkList.h 一、将函数的小括号写成中括号 二、读取权限冲突 三、L->Last指针没有移动 四、函数指针的使用 头文件完整代码 测试函数(主函数)test.cpp 测试结果 参考、格式 数据结构课本2.3节(严蔚敏版&a…

【PLC一体机】PLC一体机中如何实现触摸屏和PC电脑的通讯

博主今天准备把之前买的PLC一体机拿出来玩一下,翻看以前的博文,发现没有记录分享PLC一体机中如何实现触摸屏程序下载的内容。 如之前博文介绍的那样,PLC一体机由PLC和触摸屏两部分集成的设备,因此设备内部已经做好了PLC和触摸屏之…

树莓派5一键安装C++版本OpenCV

安装环境 本人当前的安装环境: 树莓派5Raspberry Pi os (64-bit) Debian12 Bookworm 镜像下载地址 我这里是将镜像安装好后直接安装opencv,如果不是刚安装好的镜像需要注意是否有openCV的python之类的安装过,不然可能出现编译错误 一、扩展内…

HubSpot营销自动化如何优化营销流程?

HubSpot营销自动化在优化营销流程、减少手动工作以及提高效率方面发挥着关键作用。以下是一些具体的方法和策略: 1. 自动化电子邮件营销: 利用HubSpot的电子邮件自动化功能,设置触发条件,使邮件发送根据用户行为或阶段自动进行。…

Java 数据结构 二叉树(一)二叉查询树

目录 树的种类 二叉树 二叉查找树 满二叉树 ​编辑 完全二叉树 二叉树的数据存储 链式存储 数组存储 寻址方式: 二叉树的遍历(了解即可) ​编辑 二叉查询树缺点 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满…

Web项目利用OSS进行图像存储服务

一、OSS介绍 在Web项目中,一些常见的功能,比如展示图片,修改头像等,都需要进行图片的上传操作,但是如果是存储在Web服务器中,在读取图片的时候会占用比较多的资源,影响服务器的性能。 常…

EasyCVR智能视频监控平台云台降低延迟小tips

TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&…

零基础爬什么值得买的榜单——爬虫练习题目一(答三)

一步一步似爪牙,先给爷爬一个! 引言分析数据上一节代码运行 工具:JSON 在线解析使用实操 获取其中一个数据添加代码知识点 结尾 引言 我也太能拖了 这个假期前确实有点懒惰 加上这个周末连班 不能去打篮球 腿没有得到充分的运动 像是千万只蚂蚁在爬一样…

AI Infra论文阅读之将流水线并行气泡几乎降到零(附基于Meagtron-LM的ZB-H1开源代码实现解读)

0x0. 前言 这篇论文对应的链接为:https://openreview.net/pdf?idtuzTN0eIO5 ,最近被ICLR 2024接收,但不少AI Infra的同行已经发现了这个工作的价值,并且已经开源在 https://github.com/sail-sg/zero-bubble-pipeline-parallelis…

编写程序实现二叉树的创建,三种遍历自己销毁

#include <myhead.h>// 定义二叉树节点结构体 struct tree {char value; //二叉树的值struct tree* left; //左子树struct tree* right; //右子树 };// 创建节点 struct tree* create_node(int value) {//申请空间struct tree* new (struct tree*)malloc(sizeof(st…

[Python] opencv - 什么是直方图?如何绘制图像的直方图?

什么是直方图&#xff1f; 直方图是一种统计图&#xff0c;用于展示数据的分布情况。它将数据按照一定的区间或者组进行划分&#xff0c;然后计算在每个区间或组内的数据频数或频率&#xff08;即数据出现的次数或占比&#xff09;&#xff0c;然后用矩形或者柱形图的形式将这…

学成在线:媒体资源管理系统(MAM)

媒体资源管理系统(MAM) 媒体资源管理系统(Media Asset Management)是建立在多媒体、网络、数据库和数字存储等先进技术基础上的一个对各种媒体及内容进行数字化存储、管理以及应用的总体解决方案,可以满足媒体资源拥有者收集、保存、查找、编辑、发布各种信息的要求,为媒体资源…

Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1

目录 【问题描述】maven环境报错 Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1 【解决办法】 检查maven路径是否一致 路径一致的话&#xff0c;更改配置文件settings.xml的镜像源。 添加代码到 <mirrors> <!-- 阿里镜像 --> &l…

Security ❀ TCP异常报文详解

文章目录 1. TCP Out-Of-Order2. TCP Previous Segment Lost3. TCP Retransmission4. TCP Dup Ack XXX#X5. TCP Windows Update6. TCP Previous segment not captured7. 异常案例分析 TCP协议中seq和ack seq的联系&#xff1a; id4的http请求报文由客户端发向服务器&#xff0…

Transformer实战-系列教程1:Transformer算法解读1

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 Transformer实战-系列教程1&#xff1a;Transformer算法解读1 Transformer实战-系列教程2&#xff1a;Transformer算法解读2 现在最火的AI内容&#xff0c;chatGPT、视觉大模…

初识webpack(一)概念、入口配置、输出配置、loader等

目录 (一)概念 webpack的依赖图 (二)webpack的基本使用 (三)webpack的配置文件 1.入口(entry)配置 2.输出(output)配置 (三)loader 1.css文件处理 (1)安装css-loader和style-loader (2)在webpack.config.js中配置loader 2.less文件处理 3.postcss的使用 (1)安装…

mysql索引有哪些,如何分类

前言 按数据结构分类可分为&#xff1a;Btree索引、Hash索引、Full-text索引。 按物理存储分类可分为&#xff1a;聚簇索引、二级索引&#xff08;辅助索引&#xff09;。 按字段特性分类可分为&#xff1a;主键索引、普通索引、前缀索引。 按字段个数分类可分为&#xff1…