Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29881 定义了 FiSMA(芬兰软件测量协会)功能规模度量方法,这是一种从用户角度量化软件功能规模的标准化方法。与传统的代码行度量不同,FiSMA 基于提供给用户的功能服务的数量和复杂度来度量软件规模,从而在整个软件开发生命周期中实现更准确的项目估算、生产力基准测试和合同管理。
FiSMA 通过识别和分类软件系统向用户提供的服务来度量功能规模。标准定义了四种基本服务类型:交互式服务(涉及输入、输出和导航的基于对话框的用户交互)、内部数据服务(数据存储和检索操作)、接口服务(与外部系统的通信)以及数据操作服务(批处理和数据转换操作)。每种服务根据其复杂度分配功能规模单位(FSU),复杂度由涉及的数据元素数量、数据组数量和验证规则数量决定。
FiSMA 度量过程包括四个阶段:目的定义(确定度量的范围和视角)、服务识别(从需求或设计规范中识别所有用户可见的服务)、服务分类与度量(基于复杂度分配 FSU 值)以及结果聚合(按服务类别和总计汇总规模)。
| 服务类型 | 描述 | 复杂度因素 | 典型 FSU 范围 |
|---|---|---|---|
| 交互式服务 | 带输入/输出字段的用户对话框 | 字段数量、验证规则、导航深度 | 每服务 4-25 FSU |
| 内部数据服务 | 持久数据读取/写入/删除 | 实体数量、关系复杂度 | 每服务 3-18 FSU |
| 接口服务 | 外部系统通信 | 消息类型、协议复杂度、映射规则 | 每服务 5-30 FSU |
| 数据操作 | 批处理和计算 | 算法复杂度、数据量 | 每服务 3-20 FSU |
每种功能规模度量方法都有不同的特点。IFPUG(ISO/IEC 20926)侧重于计数五种功能类型:外部输入、输出、查询、内部逻辑文件和外部接口文件。COSMIC(ISO/IEC 19761)度量由功能过程触发的数据移动——输入、输出、读取、写入。FiSMA 的不同之处在于以服务作为规模的主要度量单位,更好地适应面向服务和事件驱动的架构。
FiSMA 面向服务的方法为现代开发范式提供了优势:它自然适用于 RESTful API 规模度量(每个端点是一个服务)、微服务分解(服务直接映射到限界上下文)和敏捷用户故事估算(用户故事通常涵盖一个或两个服务)。经验研究表明,FiSMA 度量与开发工作量的相关性 R² 值为 0.82-0.91,在不同项目类型上与 COSMIC 和 IFPUG 相当或略优。
FiSMA 功能规模在用作参数化估算模型的输入时最有价值。标准建议通过将实际开发工作量(人时)除以交付服务功能规模来建立组织生产力基线。一经校准,这些基线可使新开发项目的工作量估算精度达到 ±25%——显著优于仅依靠专家判断(通常为 ±40-60%)。
对于合同管理,FiSMA 提供了独立于技术的软件功能规范。基于 FiSMA 度量的固定价格合同减少了范围说明中的歧义,为变更单谈判提供了客观基础。标准包括一份合同附件模板,内含度量惯例、争议度量的升级程序以及与交付功能规模挂钩的验收标准。
答:不能。FiSMA 专门度量功能规模——软件为其用户做什么。非功能需求(性能、安全性、可扩展性)必须单独捕获,并作为成本驱动因素或复杂度乘数纳入估算模型。标准建议使用 ISO/IEC 25010 来构建非功能需求组合。
答:当使用商业现成(COTS)组件或从现有系统复用实现某个服务时,该服务的功能规模仍然全量计数,因为用户感知的功能保持不变。然而,所需的开发工作量可能减少——这种区别在估算建模阶段而非度量阶段处理。
答:适用。FiSMA 面向服务的度量与敏捷用户故事映射和迭代交付高度契合。标准建议将总功能规模分解为与 Sprint 发布一致的部分,从而实现速度跟踪和发布规划。服务级别的粒度也支持随着功能在 Sprint 间演进进行持续度量。
答:FiSMA 维护功能规模度量从业人员的认证计划。标准建议组织指定经过认证的 FiSMA 度量师进行关键合同的度量,确保一致性和对 ISO/IEC 29881 度量规则的符合性。认证包括通过笔试和实际案例研究证明在服务识别、分类和度量方面的能力。