非功能需求,指软件产品为满足业务需求而必须具有的,且除功能需求以外的特性。非功能用户需求是描述软件如何实现功能而不是具备什么功能。非功能特性包括产品必须具备的质量属性和必须遵守的约束。例如:软件性能需求、软件安全性需求、软件可用性需求等。
SNAP方法参考了IFPUG方法中对事务功能和数据功能的判定规则形式,简单易懂。
SNAP模型包括4个类和14子类。SNAP中的确定类和子类的过程相当于功能点分析方法中确定系统边界的过程。通过一组基准,根据每个子类的类型和复杂性程度的不同来度量子类的规模大小,整个非功能需求规模就是这些子类规模之和。
我们在使用SNAP方法进行软件非功能需求评估时其基本过程如下:
1、确定评估的目的、范围、边界和分区。
2、关联非功能需求中的类和子类。
3、识别SNAP计数单元(SNAP Counting Units,SCU)。一个SCU就是一个组件、过程或活动。
4、确定每个SCU的复杂性。
5、确定每个SCU中的SNAP Points(SP)。计算SNAP Points是在边界层执行的,SP是所有的SCU规模之和。
6、计算非功能需求规模。
SP是需要计算的最后一个非功能需求规模值。确定了所有子类后,通过结合软件产品的应用边界,确定整个非功能需求规模。
新开发项目的非功能需求规模的计算公式为
DSP=ADD
其中,ADD为所有子类的SP之和;
DSP是新开发类型项目的非功能需求规模。
增强开发项目的非功能需求规模的计算公式为
ESP=ADD+CHG+DEL
其中,ESP为增强开发项目的非功能需求规模;
ADD为新增的功能需求规模;
CHG为变更的功能需求规模;
DEL为删除的功能需求规模。
计算原则:
1、不能更改原项目已定的边界和分区。
2、评估包括新增、修改、删除。