确定面向模式软件的非功能需求冲突消解方法

2022-10-25 11:59刘志强路永乐
计算机仿真 2022年9期
关键词:冲突安全性节点

刘志强,路永乐

(1. 重庆邮电大学移通学院,重庆 401520; 2. 重庆邮电大学,重庆 400065)

1 引言

在面向模式软件的开发设计时,对非功能需求的定义比较模糊,很难达成共识,另外,非功能需求具有典型主观特性和多样性,与功能性需求之间存在很大的差别。设计模式软件功能需求时,不仅功能性需求与非功能需求之间会发生冲突,而且非功能需求与非功能需求之间也会发生冲突,影响软件的实际应用性能。对于这种情况,研究确定面向模式软件的非功能需求冲突消解方法迫在眉睫。

目前,很多学者和技术人员从用户多样性需求的角度出发,研究消解软件非功能需求冲突的方法。文献[5]提出基于单件模式的主控软件资源冲突问题解决方法,将由同一资源导致的软件异常问题作为研究内容,以单件模式作为问题解决思路,分析主控软件使用框架对资源的需求,根据实际需求设计满足非功能需求的单件模式。实验结果表明,该方法能够提升软件的可靠性,并且具有较高的效率,但是仅通过发现冲突,没有非功能需求之间的层次关系,导致失败风险较高。文献[6]提出基于XACML的策略冲突检测与消解方法,建立属性集合,运用交集运算检测集合中的冲突,并采用有向无环图对冲突进行排列,建立空间区域选择树对排列结果进行冲突消解。实验结果表明,该方法可以实现一次性消解,但是结果的可靠性还有待提升。文献[7]设计了基于残缺历史数据信息的需方参与的协同设计冲突消解博弈模型,运用博弈论将多目标优化问题转换为多目标博弈问题,通过多元回归分析将博弈效用矩阵完备化,构建冲突消解博弈模型。采用Shapley值算法对博弈矩阵进行求解,并验证Shapley值的可靠性。实验结果表明,该方法具有一定的可行性和有效性,但是其安全性综合评估结果不佳。

传统冲突消解方法在面对操作错误、外部攻击等干扰时,消解存在较高的失败风险和安全风险,很难保证高水平的可信性。因此,提出确定面向模式软件的非功能需求冲突消解方法,该方法通过建立层次模型确定非功能需求之间的层次关系,分解软件中的非功能需求,从而获取模糊结果集,为冲突消解提供前提条件。通过去模糊方法计算各层次非功能需求之间的关系复杂度,从而提升了冲突消解的可信性,有效解决了传统方法冲突消解失败风险较高的问题。

2 面向模式软件的非功能需求冲突消解方法

2.1 构建非功能需求层次模型

因为软件质量模型可以系统地描述非功能需求,所以在建立需求模型的过程中,引入软件质量模型的概念,保证后续非功能需求的分解。将软件质量模型作为软件开发的标准,从产品的角度出发描述软件的非功能需求,利用软件质量模型划分非功能需求的维度,搭建非功能需求层次模型。在建立层次模型之前,将其中的功能需求剔除掉,不考虑软件自身的内部属性,只考虑与用户相关的外部属性。将软件内模糊抽象的非功能需求转化为具体的、准确的和可执行的具体需求,定义非功能需求。通过分解非功能需求,将最初的非功能需求分解为非功能子需求乃至更具体的需求,这些分解后得到的需求就是对软件部分属性更详细的解释和说明。需求分解有助于需求细化,从而建立出更符合用户需求的层面模型,为获取软件的非功能需求做准备。

根据上述分析,采用自上向下的方式构建非功能需求层次模型,利用多层次树形结构描述不同层次的非功能需求,在树形结构中,根节点表示被描述对象,中间节点表示模型层次,叶节点表示某一层次中的一个需求项。构建的非功能需求层次模型如图1所示。

图1 非功能需求层次模型

模型中的每一个节点用三元组描述,节点的唯一标识符、名称和子节点集为NFR-NODE=

该模型构建时遵循以下原则

(1)

在遵循上述原则的情况下,构建面向模式软件的非功能需求层次模型,了解非功能需求的层次关系,便于对不同的需求进行相互定位,进一步确定需求和分解需求。

2.2 确定需求并分解

一般情况下,软件开发过程中,功能性需求和非功能需求是混合在一起的,为了解决非功能需求的冲突,必须将非功能需求从中分离出来。

与非功能需求层次模型的构建方式相同,在需求分解中同样采用自上而下的方式,在面向模式的软件中,非功能特性由一些面向方面的横切关注点组成,这些横切关注点即非功能需求特性。将第一层指标作为可选的横切关注点,分解非功能需求特性,得到的横切关注点表示为={,,…,};再以非功能需求层次模型作为参考,依次对面向模式的横切关注点进行分解,得到更具体的横切子关注点子集合,反复进行该操作,每一次都会得到一组对应的子集合,将所有的子集合整理为集合,对于任意一个关注点,都存在已识别的横切关注点⊆,和对应分解得到的横切子关注点集合。采用E-SIG图表示分解过程,具体内容如图2所示。

图2 非功能需求特性分解E-SIG示例图

在完成非功能需求特性分解后,对分解结果进行精细化,从上而下将横切子关注点最终分解为与功能相关的操作性节点,图2中显示的结果即为精细化之后的结果。在得到结果后,消解非功能需求冲突。

2.3 消解非功能需求冲突

针对确定面向模式软件的非功能需求冲突问题,收集需求分解的结果进行评估,得到非功能需求重要性评估表,采用去模糊方法将模糊结果精细化,实现结果从模糊集到精确值的变化,并分析非功能需求相对贡献值的变化,考虑非功能需求之间的相互依赖性和影响,在非功能需求之间进行权衡,从而使非功能需求冲突得到消除。

非功能需求的评估采用专家模糊评价的方式,得到非功能需求的评估模糊结果集,通过式(2)将模糊集转化为概率分布

(2)

式中,表示隶属函数;表示评价变量在隶属函数区间中的随机数。()→[0,1],将单位区间[0,1]分成等份,形成个区间,在区间内放入个表示模糊变量的(),用数组来表示这些区间,执行一个随机数生成程序,得到一个服从区间[0,1],且均匀分布的随机数,通过上述过程得到转化后的非功能需求评估数值。

经过精细化处理后,使用表示相邻两层和上所有非功能需求的相互关系,同时该值也是一个矩阵,矩阵中的每个元素代表不同层次非功能需求之间的影响程度。使用式(3)计算非功能需求叶节点的贡献值。公式如下

(3)

式中,表示在非功能需求层次分解中的所有节点中最深的层数。在得到非功能需求叶节点的贡献值后,判断两个节点(,)之间是否存在某种关系,主要依靠布尔函数来实现判断,计算公式为

(4)

利用得到的关系复杂度和非功能需求节点的贡献值,衡量非功能需求,使非功能需求特性得到平衡,消除确定面向模式软件的非功能需求冲突,使软件得以顺利开发。至此,确定面向模式软件的非功能需求冲突消解方法设计完成。

3 实验研究

为了验证所设计确定面向模式软件的非功能需求冲突消解方法的可信性,进行实验验证。

3.1 建立需求模型

在实验研究中,基于模式软件的基本功能需求,建立实验所需的需求模型,其功能需求主要包括用户管理、用户资料和业务查询、用户业务交易。其中,用户管理与常规管理方式相同,主要包括信息增加、删除和修改;用户查询为个人信息查询和账户明细查询;用户交易包括转账交易、内部交易、网上支付。在以上功能的基础上,还包括一些非功能需求,主要有软件性能、软件安全性、数据精确性等。根据需求描述建立需求模型,建立的模型如图3所示。

图3 非功能需求实验模型

在建立非功能需求实验模型之后,运用该模型模拟非功能需求冲突,模拟的冲突主要为软件非功能需求冲突,具体内容如表1所示。

表1 非功能需求冲突模拟

在完成模型建立和冲突设置后,引用不同消解方法进行消解,在消解完成后,对消解方法的安全性进行评估,计算消解方法的失败风险,根据实验结果,分析消解方法的实际性能。

3.2 安全性评估实验结果及分析

在消解方法安全性评估中,根据模型中各个节点的安全权重和消解冲突给节点带来的正、负影响来计算消解方法安全性综合评估值。计算公式如下所示

=*-*

(5)

=*-*

(6)

式中,表示正向的安全评估指数;表示负向的安全评估指数;表示节点安全权重;表示节点效率权重;和分别表示冲突情况下对节点的正面影响和负面影响;和分别表示消解过程中对节点产生的正面影响和负面影响。消解方法的安全性综合评估值计算公式为

Δ=-

(7)

式中,Δ表示消解方法的安全性综合评估指数。为了加强实验结果的说服力,将安全性综合评估指数的计算分为三个阶段,分别对消解前、消解中和消解后非功能需求模型中的节点进行计算,计算结果如表2所示。

表2 不同消解方法的安全性评估实验结果

表2中数据显示非功能需求冲突在消解前安全性评估值为负数,在经过消解后变为正数。对比观察各个消解方法的综合评估值,从中可以看出,提出的非功能需求冲突消解方法在冲击消解中和冲击消解后均属于非常高的水平,始终高于0.5,而传统的冲突消解方法中虽然解决了需求冲突,但是冲突消解前的评估值在消解后发生了下降的情况,并且始终低于0.5以下,综上所述,提出的非功能需求冲突消解方法安全性更高。

3.3 失败风险实验结果与分析

使用第三方插件监控消解过程,并对消解过程中的失败风险进行预测,输出结果。具体结果如图4所示。

图4 三种消解方法失败风险函数变化曲线

图4中,方法1表示基于单件模式的消解方法,方法2表示基于XACML的消解方法,方法3表示基于残缺历史数据的消解方法,方法4表示提出的冲突消解方法。对比观察图中结果可知,方法1对于非功能需求冲突消解时间比较长,并且在消解完成后,失败风险在0.4左右;方法2结果显示,对于非功能需求冲突所需消解时间大概在140s左右,失败风险在0.38左右;方法3结果表示,对于非功能需求冲突所需消解时间在100s左右,失败风险在0.28左右;方法4结果显示,对于非功能需求冲突所需消解时间在50s以内,失败风险降低到了0.1以下。综上所述,提出的冲突消解方法失败风险低、安全性更高,在实际应用中,其可信性更强,该方法应用效果优于传统的消解方法。

4 结束语

围绕用户的多元化需求问题展开研究与探讨,在大量研究资料的基础上,设计确定面向模式软件的非功能需求冲突消解方法,下面对主要研究成果进行总结:

1)根据需求层次模型,获取非功能需求之间的层次关系,再对需求进行分解,以此来获取模糊结果集。

2)以模糊结果集为基础,运用去模糊方法计算需求之间的复杂度,达到冲突消解的目的。

3)根据实验结果可知,所提方法的安全性评估结果在冲击消解中和冲击消解后均属于非常高的水平,始终高于0.5,通过实验结果证明了设计的冲突消解方法的有效性和可信性。

但是受到实际样本的限制,重点讨论了非功能需求内部的需求冲突,对于与功能需求相关的非功能需求之间的冲突关系,研究不够深入,在后续研究中可以结合环境因素与成本因素进行深入研究。

猜你喜欢
冲突安全性节点
两款输液泵的输血安全性评估
基于合作博弈的多机冲突解脱算法
耶路撒冷爆发大规模冲突
新染料可提高电动汽车安全性
基于图连通支配集的子图匹配优化算法
某既有隔震建筑检测与安全性鉴定
结合概率路由的机会网络自私节点检测算法
面向复杂网络的节点相似性度量*
采用贪婪启发式的异构WSNs 部分覆盖算法*
加强广播电视信息安全性的思考