缩略图

面向非功能需求的软件规模度量方法研究

作者

俞璐

合肥信息工程监理咨询有限公司  安徽合肥  230000

一、引言

在软件项目开发进程中,软件规模度量是项目规划、成本估算、进度安排的基石。传统软件规模度量方法聚焦功能性需求,像 IFPUG(InternationalFunction Point Users Group) 功 能 点 分 析 方 法、NESMA(Netherlands SoftwareMetrics Association)功能点分析方法,在处理以功能性需求为主的项目时成效显著。然而,随着各类信息系统复杂度提升,非功能性需求(如数据安全性、系统可用性、性能稳定性等)在项目中占比日益增加,传统方法对非功能性需求度量的缺失,导致项目规模估算偏差,进而引发项目成本失控、进度延误等问题。因此,探索面向非功能需求的软件规模度量方法,成为当前信息化项目管理领域亟待解决的关键课题。

二、传统功能点分析方法概述

(一)IFPUG 功能点分析方法

IFPUG 功能点分析方法是应用广泛的传统功能点度量方法。它以用户可识别的功能为基础,通过对系统输入EI、输出EO、查询EQ、内部逻辑文件ILF、外部接口文件 EIF 等元素的计数,计算功能点值,以此度量软件规模。其核心在于识别和量化软件的功能性需求,步骤包括确定计数范围、识别功能组件、计算未调整功能点(UFP)、计算价值调整因子(VAF) ,最终得到调整后功能点(AFP)。例如,在医院信息管理系统中,统计患者信息录入界面(输入)、检验报告输出(输出 )、医嘱查询操作(查询)等,能有效度量功能性需求规模,但对于系统需满足的患者数据高安全性需求(非功能性 ),无法直接度量。

(二)NESMA 功能点分析方法

NESMA 功能点分析方法是对 IFPUG 方法的优化与拓展,在欧洲等地区广泛应用。它简化部分计算流程,更注重实践中的可操作性。同样以功能性需求为核心,从系统的功能复杂度角度,对功能点进行更灵活的计算与调整。比如在小型医院信息系统项目中,NESMA 可通过快速功能点计数方式,快速估算软件规模,但面对非功能性需求,如系统的高可用性需求(像故障时快速切换备份系统、保障业务连续 ),传统 NESMA 方法缺乏有效度量手段,无法将这些非功能性需求对软件规模的影响纳入考量。

传统功能点分析方法在功能性需求度量上的成熟应用,无法掩盖其对非功能性需求度量的不足。当信息化项目中非功能性需求占比较高时,仅依靠传统方法会使软件规模估算偏离实际,影响项目后续管理。

三、软件非功能规模评估过程(SNAP)方法

(一)SNAP 方法的提出背景与目标

随着信息系统对非功能性需求依赖度提升,为弥补传统方法缺陷,软件非功能规模评估过程(SNAP)方法应运而生。SNAP 方法旨在整合功能性需求和非功能性需求的评估,构建全面的软件规模度量体系,使软件规模度量能涵盖信息化项目全需求维度,为项目工作量估算、资源分配提供更精准依据,尤其针对非功能性需求占比较高的业务处理类信息化项目,提升规模度量的准确性与实用性。

(二)SNAP 方法的原理与框架

SNAP 方法基于对信息系统软件需求的全面理解,将功能性需求与非功能性需求视为相互关联、共同影响软件规模的要素。其框架包含需求识别、需求分类与权重分配、规模度量计算等关键环节。

① 需求识别:全面梳理信息系统的功能性需求与非功能性需求,确保无需求遗漏。

② 需求分类与权重分配:对识别出的功能性与非功能性需求进行分类,依据需求对信息系统的重要性、复杂度等因素,为不同类型需求分配权重。例如,对于医院信息系统,数据安全性需求权重可能较高,因涉及患者隐私与医疗数据完整性;而对于门诊挂号系统,性能稳定性需求(应对高峰期挂号压力 )权重会相对突出。

(三)SNAP 方法的使用规则

需求采集规则:采用多元化需求采集手段,如需求访谈、问卷调查、原型评审等。需求访谈需覆盖医院项目干系人(包括医护人员、医院信息科人员、患者代表等 ),确保从不同视角获取全面需求;问卷调查设计要围绕功能性与非功能性需求维度,设置清晰、可量化问题;原型评审则针对软件原型,从医护人员操作体验角度挖掘非功能性需求(如医嘱录入界面便捷性反映的可用性需求 )。

权重确定规则:组建需求评审委员会,成员包含医疗信息化领域专家、项目管理团队、技术骨干等。通过德尔菲法(Delphi Method ),即多轮匿名咨询专家意见,结合医院实际场景(如医疗行业规范、医院业务需求 ),确定各类需求权重。例如,在三甲医院信息化项目中,遵循医疗行业数据安全规范,数据安全性需求权重经专家评审后合理确定。

(一)项目背景介绍

选取某三甲医院信息系统升级项目作为验证对象。该项目因业务拓展与医疗质量提升需求,需强化数据安全性(保障患者病历隐私、防止医疗数据泄露)、提升性能稳定性(应对门诊高峰期挂号、缴费等业务高并发 )、优化可用性(简化医护人员操作流程、提升系统容错能力 ),非功能性需求占比达 45% 以上,传统功能点度量方法难以准确评估项目规模,适合用 SNAP 方法验证。

(二)SNAP 方法应用流程

需求分类与识别阶段

将医院信息化项目需求划分为功能性需求(如电子病历建档、医嘱管理等业务功能)和非功能性需求(如数据安全等级、系统响应时间、并发量等)。其中,非功能性需求按医疗行业特性细化如下:

① 性能需求:HIS 系统高峰期(上午 8:00-10:00)支持 ⩾200 个终端同时挂号、缴费操作,响应时间 ⩽3 秒;

② 安全性需求:电子病历数据需符合《医疗信息系统安全规范》三级等保要求,数据加密算法采用国密 SM4 ;

③ 可靠性需求:PACS 系统全年停机时间 ⩽4 小时,灾难恢复时间(RTO)⩽15 分钟。

五、结论与展望

本文深入研究面向非功能需求的软件规模度量方法,介绍传统功能点分析方法局限性后,引入 SNAP 方法。阐述其原理、框架与使用规则,通过医院信息化实际项目验证,证明 SNAP 方法能有效整合功能性与非功能性需求,提升软件规模度量全面性与准确性,为非功能性需求占比较高的医院信息化项目的工作量评估提供可行方案,解决传统方法在该类项目中的不足,对优化医院信息化项目管理流程、提高项目成功率具有重要实践意义。

尽管 SNAP 方法在医院信息化实际项目中展现出优势,但仍有完善空间。未来可进一步优化非功能性需求的转换模型,结合人工智能、大数据技术,依据更多医疗行业项目数据,实现需求权重与转换公式的智能适配;拓展 SNAP方法在不同领域信息化项目的应用研究,总结各类业务信息化非功能性需求特点与度量规律;加强与敏捷开发、DevOps 等现代软件开发模式的融合,使软件规模度量在信息化项目全生命周期中更动态、精准,持续推动软件项目规模度量领域的发展与创新,为信息化行业高效项目管理提供更有力支撑。