以全面而统筹的眼光解决问题, 则必须从局部分析不同的侧面, 面向多视点的需求工程即为该理论的一个应用. 多视点需求工程越来越受到重视, 但是各视点间却缺少统一, 这不仅不利于获取完整的系统需求, 还导致需求变更困难等问题. 为了解决以上问题, 首先提出一个新的多视点建模过程框架, 合理的建模框架有利于获取完整的系统需求. 其次在多视点建模过程框架下建立追踪元模型, 阐明系统需求在多视点元模型间的平稳过渡. 最后结合需求追踪矩阵方法在追踪元模型间建立起追踪关系, 进而通过计算变化追踪矩阵在需求变更时可以追踪到相关元素并进行更改, 解决需求变更困难的问题.
To solve a problem with a comprehensive and integrated vision, we must analyze different aspects from the perspective of locality and consider it in a divide-and-conquer manner. The multi-viewpoint requirement engineering is getting more and more attention, but there is a lack of unity among viewpoints. This not only fails to capture the complete system requirements, but also causes difficulties in changing requirements. In order to solve these problems, this study first builds a multi-viewpoint based modeling process framework, for a reasonable modeling framework is conductive to obtain complete system requirements. Secondly, the tracking meta-model under the new multi-viewpoint modeling process framework is set up, aiming to illustrate the smooth transition of system requirements across multi-viewpoint meta-model. Finally, a tracking relationship among the tracking meta-model with the requirement tracking matrix method is established, thus relevant elements can be tracked and changed by calculating the change tracking matrix as the requirement changes. The above research can solve the problem of difficulty in requirements change.
统一建模语言(Unified Modeling Language, 简称UML)是一种用于对软件系统的制品进行可视化、详述、构造和文档化的图形建模语言[
引入多视点的需求建模方法[
然而, 在不同的软件开发阶段和不同的涉众下建立的不同模型, 视点的分散性导致了模型间缺乏统一. 目前, 在传统的基于UML的面向对象建模方法中, 多视点下模型间关联困难的原因主要表现在三个方面[
目前, 针对需求变更困难问题的解决方法有很多种, 但被需求工作者广泛使用的是基于需求追踪的方法. 2013年, Cimatti A[
因此, 本文一方面将面向目标的I*模型和软件体系结构模型引入到传统的基于UML (Unified Modeling Language)的面向对象的建模阶段中, 旨在设计一个基于多视点的建模过程框架. 一方面在三个不同视点下建立追踪元模型, 阐明新的建模过程框架如何实现系统需求在多视点元模型间的平稳过渡. 另一方面通过计算需求追踪矩阵, 在多视点元模型间建立起可追踪关系, 实现对系统需求的追踪并验证.
在我们的研究领域中, 为了有效解决多视点下模型间关联困难的问题并获取完整的系统需求, 本文将建模过程划分为I*[
基于多视点的建模过程框架
GRL (Goal-oriented Requirements Language)[
I*目标建模框架是一种在早期阶段需求工程中着重描述软件环境中各参与者意图的建模方法[
I*目标模型的元模型
功能需求是指开发人员必须实现的软件功能或软件系统应具备的外部行为[
用例着重于系统功能需求, 关注的是系统与外部参与者间的交互, 用于描述可发生的所有动作序列, 而场景则是特定的动作序列. 所以, 用例与场景的关系中, 场景是用例的一个实例, 用例则是对于主角与系统交互层面上的那些相关交互场景的集合的描述.
场景元模型
软件体系结构[
如
软件体系结构元模型
本小节建立了追踪元模型如
通过分析不同层次元模型元素含义以及它们间的关联关系, 实现了系统需求在I*目标元模型、场景元模型、软件体系结构元模型间的平稳过渡.
追踪元模型
根据
需求传播途径
需求追踪矩阵是一种主要管理需求变更和验证需求是否得到实现的有效工具, 可以跟踪每个需求的状态[
根据
建立以上四个追踪矩阵可有效管理需求变更, 当需求中的某个元素改变时, 可以根据追踪矩阵找到并更改这个元素所影响的其他元素. 通过
除了对系统需求在元模型间进行逐层的追踪, 还可以跨层追踪, 例如当“目标”发生变化时, 可通过计算矩阵
还可以通过计算矩阵Mg-s-a判断“目标”变化时影响哪些“构件”, 其中
通过计算矩阵
所以, 通过跨层追踪得到矩阵
通过分析矩阵运算结果可追踪到相关的需求变化关系, 从而有效管理需求变更, 例如矩阵中第
本小节以自动取款机(ATM)系统为例, 对以上方法进行可行性分析与研究.
首先建立基于ATM系统的可追踪元模型如
在目标元模型层和场景元模型层间: “成功取款”、“查询账户信息”以及“基本操作”属于ATM系统的功能需求, 即目标. 一个目标的完成需要一系列的动作支持, 而动作的执行都是由目标所驱动, 例如“成功取款”目标由“取款”场景支持, 而此场景又包括“输入取款金额”、“验证取款金额”、“数据传输”以及“取出现金”这一系列动作. 又比如: “基本操作”目标由“发起会话”和“传输数据”场景支持, “插卡”和“验证密码”则是“发起会话”场景所包含的一系列动作. 对非功能需求而言, “ATM设备安全”以及“ATM系统安全”是从“ATM安全”的目标中分解出来的非功能需求, 即软目标, 并且“ATM系统安全”软目标可以通过“安装防病毒系统”和“及时升级测试”这两个动态操作来满足.
基于ATM系统的追踪元模型
在场景元模型层和软件体系结构元模型层间: 将ATM系统功能划分并分布到特定构件, 并且将特定功能的构件部署在节点上来展示系统的架构. 例如, “插卡”、“输入取款金额”以及“取走现金”的动作都在“ATM客户端”界面上操作, 接着将“ATM客户端”这一构件部署到“ATM机”节点上. 同理, 将与“取款”功能相关的的“账户管理”构件部署在“银行数据库服务器”节点. 同时, “ATM机”、“ATM服务器”以及“银行数据库服务器”之间又通过特定的网络连接.
然后, 通过分析基于ATM系统部分功能的追踪元模型, 得到ATM系统部分需求的传播途径如
接下来, 根据基于ATM系统的需求传播途径图, 得到场景-目标追踪矩阵
然后根据矩阵运算式(1)、式(2)、式(3)实现元模型的跨层追踪. 例如, 通过式(1)计算矩阵
根据以上矩阵运算结果, 得到基于ATM系统的目标元模型与场景元模型间, 以及目标元模型与软件体系结构元模型间的追踪关系如
基于ATM系统的需求传播途径
以“成功取款”目标为例, 验证基于ATM系统的目标元模型层和场景元模型层间, 目标元素与动作元素追踪关系的准确性. 根据
ATM系统中目标层与场景层间追踪关系
ATM系统中目标层与软件体系结构层间追踪关系
再以“成功取款”目标为例, 验证基于ATM系统的目标元模型层和软件体系结构元模型层间, 目标元素和节点元素追踪关系的准确性. 根据
因此, 通过矩阵运算, 在ATM系统多视点元模型间建立了可追踪关系, 一方面实现了在不同视点下元模型的统一, 另一方面可有效管理需求变更.
本文主要研究了一种在多视点的元模型间进行需求追踪的方法. 一方面把面向目标的I*模型和软件体系结构模型引入到传统的基于UML (Unified Modeling Language)的面向对象的建模阶段中, 旨在设计一个基于多视点的建模过程框架. 合理的建模框架使我们对需求的理解更加完整. 另一方面在多视点间建立了追踪元模型, 并且通过矩阵运算实现了多视点下元模型间的追踪. 这不仅解决了视点分散性问题, 实现了多视点元模型间的统一, 还有效解决了需求变更困难的问题. 然而, 本文在场景元模型和软件体系结构元模型间主要针对功能需求进行了追踪并验证, 缺乏对非功能需求追踪的研究. 接下来的研究方向可从非功能需求在多视点元模型间的追踪继续展开.
Booch G, Rumbaugh G, Jacobsen I. The unified modeling language user guide. Massachusetts: Addison-Wesley, 1999: 15–17.
Leite JCSP, Freeman PA. Requirements validation through viewpoint resolution. IEEE Transactions on Software Engineering, 1991, 17(12): 1253–1269.
Finkelstein A, Kramer B, Nuseibeh B, et al. Viewpoints: A framework for integrating multiple perspectives in system development. Software Engineering and Knowledge Engineering, 1992, 2(1): 31–57.
Goknil A, Kurtev I, van den Berg K, et al. Change impact analysis for requirements: A metamodeling approach. Information and Software Technology, 2014, 56(8): 950–972.
朱雪峰, 金芝. 关于软件需求中的不一致性管理. 软件学报, 2005, 16(7): 1221–1231.
王映辉, 王立福, 张世琨, 等. 一种软件需求变化追踪方法. 电子学报, 2006, 34(8): 1428–1432.
Zubcoff JJ, Garrigos I, Casteleyn S, et al. Evaluating the use of pareto efficiency to optimize non-functional requirements satisfaction in i* modeling. IEEE Latin America Transactions, 2016, 14(1): 331–338.
周莹新, 艾波. 软件体系结构建模研究. 软件学报, 1998, 9(11): 866–872.
Mendonça DF, Rodrigues GN, Ali R, et al. GODA: A goal-oriented requirements engineering framework for runtime dependability analysis. Information and Software Technology, 2016, 80: 245–264.
Georg G, Mussbacher G, Amyot D, et al. Synergy between activity theory and goal/scenario modeling for requirements elicitation, analysis, and evolution. Information and Software Technology, 2015, 59: 109–135.
Mylopoulos J, Chung L, Liao S, et al. Exploring alternatives during requirements analysis. IEEE Software, 2001, 18(1): 92–96.
孙昌爱, 金茂忠, 刘超. 软件体系结构研究综述. 软件学报, 2002, 13(7): 1228–1237.
梅宏, 申峻嵘. 软件体系结构研究进展. 软件学报, 2006, 17(6): 1257–1275.
Tibermacine C, Sadou S, That MTT, et al. Software architecture constraint reuse-by-composition. Future Generation Computer Systems, 2016, 61: 37–53.
李潇, 魏长江. 基于追踪矩阵获取完整性需求的研究. 计算机科学, 2019, 46(6): 188-195.
王映辉, 张世琨, 刘瑜, 等. 基于可达矩阵的软件体系结构演化波及效应分析. 软件学报, 2004, 15(8): 1107–1115.