首页 / 专利库 / 人工智能 / n元语法 / 软件质量需求建模和推理方法

软件质量需求建模和推理方法

阅读:1019发布:2020-10-25

专利汇可以提供软件质量需求建模和推理方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种 软件 质量 需求建模和推理方法,用于提供一种面向软件质量需求的形式化建模、 自动推理 和分析平台rΣ,其包括以下步骤:设定相关概念;图形化建模,点击rΣ绘图区域,选取相应的建模元素,然后点击画布生成相应建模元素;形式化建模,根据面向软件质量需求目标 建模语言 Σ的语义和语法设计;策略评估,以确定实现策略是否是一个可接受的策略;策略发掘,以检查所有可能的设计选项的组合,并把这些策略按照根 节点 的满足状态分类;模型扩展,以捕捉不同建模结果之间的关联关系。本发明可以生成文本格式的质量需求建模结果。同时不再需要人工交互。另外支持对质量需求实现策略的多目标决策,可以捕获模型之间的相互依赖关系。,下面是软件质量需求建模和推理方法专利的具体信息内容。

1.一种软件质量需求建模和推理方法,用于提供一种面向软件质量需求的形式化建模、自动推理和分析平台rΣ,其特征在于,包括以下步骤:
根据软件质量需求,设定建模元素,具体为:
NFR型软目标:从目标的度捕捉软件质量需求的软目标;
可操作化软目标:捕捉有关需求实现知识的软目标;
贡献:反映可操作化软目标的影响的概念,包括四类定性的贡献:使能、破坏、帮助和损害HURT,分别由“++”,“--”,“+”和“-”标注;
满足状态:刻画软目标实现情况的概念,包括六种定性的满足状态:完全满足、部分满足、完全拒绝、部分拒绝、未知和冲突,分别标记为√,w+,×,w-,?和与或分解:位于相邻两个层次上NFR型软目标之间的关系;
可操作化分解:位于可操作化软目标和NFR型软目标之间的关系;
副作用:不同于所述可操作化分解的另一种位于可操作化软目标和NFR型软目标之间的关系;
图形化建模,在平台rΣ中设定绘图区域,选取相应的建模元素,然后点击画布生成相应建模元素;
形式化建模,根据面向软件质量需求目标建模语言Σ的语义和语法设计;
策略评估,以确定实现策略是否是一个可接受的策略;
策略发掘,以检查所有可能的设计选项的组合,并把这些策略按照根节点的满足状态分类;
模型扩展,以捕捉不同建模结果之间的关联关系。
2.根据权利要求1所述的软件质量需求建模和推理方法,其特征在于,在形式化建模步骤中,Σ的定义如下:Σ=
其中,NSG是由需求相关者所确定所有质量需求的软目标的集合;
OSG是所有可操作化软目标的集合;
CNT1={++,--,+,-}∪[-1.0,1.0]是和OSG型元素所关联的所有连接符的集合,用来表示目标之间的贡献关系;
CNT2={∧,∨,(,)}表示分解结构的所有连接符的集合;包括表示与或分解结构的合取和析取符号,以及界定相邻分解层次的花括号;
引入记号Atom(Σ)来表示Σ中基本的目标建模元素,并定义Atom(Σ)=NSG∪OSG;
同时,使用记号Form(Σ)来表示Σ中所有的公式;生成规则如下:
(1)、
(2)、nsg1(◇nsgi),
wherei=2,...n,j=1,...n,nsg1,nsg2,nsgi ∈ NSG,osg1,osgj ∈ OS
G,*∈{++,--,+,-}∪[-1.0,1.0],◇表示NSG或者OSG中有限元素的∨或者∧运算;
(3)、所有通过对规则(1)和规则(2)有限次迭代而生成的公式都属于Form(Σ);
另外,平台rΣ中形式化建模的功能通过Σ转换算法来实现,具体如下:
输入:目标树模型G=;
输出:
(1)、遍历V中所有节点,找到入度为0的节点,并根据该节点构造初始的公式F;公式F包含和这个节点名称相同的原子,并且后边添加为满足状态准备的花括号和为其后代准备的圆括号;
(2)、遍历子节点,并把它们的名字添加到公式F的圆括号中;E中所表示的子节点之间的分解关系和贡献关系的也按照Σ的语法保留和表示出来;为每一个子节点添加为满足状态准备的花括号和为其后代准备的圆括号;
(3)、重复步骤(2)直到执行完出度为0的节点;
返回F。
3.根据权利要求2所述的软件质量需求建模和推理方法,其特征在于,在策略评估步骤中,策略评估的实现算法如下:
输入:目标树模型G=,备选叶节点的状态指认;
输出:
(1)、为模型G调用Σ转换算法,返回公式F;
(2)、对F应用推理规则,确定需要被推理的节点;
(3)、对被选取节点应用状态转移函数,并计算出对父节点的效用;
(4)、对父节点应用效用推理函数,并计算出父节点的满足状态;
(5)、重复步骤(2),(3)和(4)直到根节点;
(6)、返回根节点的满足状态。
4.根据权利要求3所述的软件质量需求建模和推理方法,其特征在于,在策略发掘步骤中,策略发掘的实现算法如下:
输入:目标树模型G=
输出:
(1)、对每一个叶节点指认满足状态√和×,并返回包含所有设计选项组合的实现策略集合C;
(2)、对于C中的任意元素c,调用策略评估的实现算法;
(3)、重复步骤(2),直到C中的所有元素都被执行;
(4)、返回基于根节点不同的满足状态的,所有不同初始状态的叶节点组合的分类。
5.根据权利要求4所述的软件质量需求建模和推理方法,其特征在于,在模型扩展步骤中,模型扩展的算法如下:
输入:目标树模型G1=和G2=;对被扩展模型G1声明
输出:
(1)、调用Σ转换算法,返回两个公式F1,F2;
(2)、确定两个公式F1和F2中的共享原子集合,记为M;
(3)、对于M中任意的元素m,使用∨符号为F1中的精化结果添加F2中的精化结果;
(4)、重复步骤(3)直到M中的所有元素都被执行,返回公式F′1;
(5)、把F′1转换为图形G′1;
(6)、返回G′1。

说明书全文

软件质量需求建模和推理方法

技术领域

[0001] 本发明属于软件技术领域,尤其涉及一种适用于对软件质量需求的建模、推理、分析和设计决策过程的软件质量需求建模和推理方法。

背景技术

[0002] 随着软件应用领域的不断扩展和深入,软件对人类社会各种活动的影响日益加剧。在软件开发过程中,质量需求是一个不可忽视的因素。一般认为,质量需求和相关的实现策略会对软件设计决策和架构产生重要的影响。而且质量需求的满足也是用户挑选最终软件产品的重要原因。因此如何有效的建模,分析质量需求并选取合适的实现策略已经成为软件需求工程领域中的重要问题。
[0003] 在软件质量需求的建模和分析领域中,面向目标的需求工程方法被认为是最有的方法。一些面向目标的建模和推理工具也被提出。例如,KAOS的Objectiver/GRAIL,NFR框架的RE-Tool,i*的OpenOME,TROPOS的GR-Tool,以及GRL的jUVMNav。所有这些工具都支持图形化的建模过程,并把图形结果作为唯一的输出。然而,图形建模结果的弊端是它在没有安装图形建模工具的平台上并不能打开和编辑。这对于多个分析人员之间的建模结果共享是不利的。而且NFR框架和i*下的推理过程是交互式的过程。在推理过程中,工具使用者需要和相关人员频繁沟通,这在模型比较复杂的情况下是很耗时甚至不现实的。TROPOS的工具采用SAT求解器克服了交互式推理的缺点,但是它并不支持对多个实现策略的决策。而且GR-Tool仅仅接受单个定量决策因素,并输出最终结果。另外,GRL只关注软件质量需求实现策略的评估而非决策,KAOS方法定位于对功能需求的建模。显然,目前的各类工具还无法满足针对质量需求的、支持公式模型的自动化推理工具来支持实现策略的决策。

发明内容

[0004] 本发明的目的在于提供一种软件质量需求建模和推理方法,以解决现有的各类建模和推理工具尚难以针对质量需求,支持公式模型的自动化推理、支持实现策略决策的问题。
[0005] 为了解决上述问题,本发明提供一种软件质量需求建模和推理方法,用于提供一种面向软件质量需求的形式化建模、自动推理和分析平台rΣ,其包括以下步骤:根据软件质量需求,设定建模元素,具体为:NFR型软目标:从目标的度捕捉软件质量需求的软目标;可操作化软目标:捕捉有关需求实现知识的软目标;贡献:反映可操作化软目标的影响的概念,包括四类定性的贡献:使能、破坏、帮助和损害HURT,分别由“++”,“--”,“+”和“-”标注;满足状态:刻画软目标实现情况的概念,包括六种定性的满足状态:完全满足、部分满足、完全拒绝、部分拒绝、未知和冲突,分别标记为√,w+,×,w-,?和 与或分解:位于相邻两个层次上NFR型软目标之间的关系;可操作化分解:位于可操作化软目标和NFR型软目标之间的关系;副作用:不同于所述可操作化分解的另一种位于可操作化软目标和NFR型软目标之间的关系;图形化建模,点击rΣ绘图区域,选取相应的建模元素,然后点击画布生成相应建模元素;形式化建模,根据面向软件质量需求目标建模语言Σ的语义和语法设计;策略评估,以确定实现策略是否是一个可接受的策略;策略发掘,以检查所有可能的设计选项的组合,并把这些策略按照根节点的满足状态分类;模型扩展,以捕捉不同建模结果之间的关联关系。
[0006] 由上分析,和传统的支持工具相比,rΣ可以生成文本格式的质量需求建模结果,该结果在不破坏模型语义的基础上便于保存和编辑。同时rΣ提供了自动的实现策略的评估过程,不再需要人工交互。另外rΣ支持对质量需求实现策略的多目标决策,通过返回多个备选方案,允许分析人员确认最优结果。最后rΣ支持模型的扩展,可以捕获模型之间的相互依赖关系,从而提供了模型知识共享的机制和基于分解结构的冲突认定机制。附图说明
[0007] 图1为rΣ的部件图。图中,图形编辑器(Graphical Editor)接收使用者在rΣ上的绘图动作,并生成图形建模结果。Σ转换(Σ-Transformation)功能接收图形建模结果,同时也接受直接的公式文本输入。策略评估(Strategy Evaluation)功能接收Σ转换的结果Σ公式,并请求使用者对叶节点的状态指认。策略发掘(Strategy Exploration)功能调用策略评估的算法,输出基于根节点满足状态的实现策略列表。另外,模型扩展(Model Extension)功能使用多个模型,进行精化结果的共享,返回被扩展的质量需求模型。
[0008] 图2为rΣ界面展示。图中,rΣ的界面由四个区域构成。左上区域是功能按键区域。到目前为止,rΣ支持Σ转换、策略评估、策略发掘和模型扩展。图形建模是默认的功能,它的按键在这个区域不可见。右上区域是绘画区域,包括建模元素按键,和画布区域。左下区域为项目列表区域,展现目前活动的所有建模项目的名称。右下是公式结果区域,提供已选模型的公式表示。弹出窗为策略评估的细节展示。
[0009] 图3为企业财务服务系统私密性需求模型;
[0010] 图4为企业财务服务系统友好性需求模型;
[0011] 图5为企业财务服务系统可靠性需求模型;
[0012] 图6为企业财务服务系统私密性需求模型策略评估结果;
[0013] 图7为企业财务服务系统私密性需求模型策略发掘结果;
[0014] 图8为企业财务服务系统可靠性需求模型扩展结果。

具体实施方式

[0015] 下面结合附图和具体实施方式对本发明做进一步详细说明。
[0016] 为了解决现有技术存在的问题,本发明的软件质量需求建模和推理方法提供一种面向软件质量需求的形式化建模、自动推理和分析平台rΣ。
[0017] 在本发明中,rΣ假定对软件质量需求的建模、自动推理和分析是在面向目标的需求工程方法下进行的,并遵循树状分解结构对软件质量需求进行精化。为了更好的理解工具的使用,首先介绍几个相关概念:
[0018] NFR型软目标(NFR Softgoal):是一类从目标的角度捕捉软件质量需求的软目标,例如可靠性,安全性,准确性和性能等。它们是关于软件如何更好实现功能,而不是关于如何实现功能的需求。在图形化建模过程中,例如图2和图3所示,使用状符号来表示此类概念。
[0019] 可操作化软目标(Operationalization Softgoal):是一类捕捉有关需求实现知识的软目标。NFR型软目标通常是横切关注点,因此它们很难直接指认给一个或者多个具体的部件或者子系统实现。但是,通过目标精化的过程,可操作化软目标可以用来找出可以接受的实现方案。在图形化建模过程中,例如图2和图3所示,使用重体云状符号来表示此类概念。
[0020] 贡献(Contribution):是一类反映可操作化软目标的影响的概念。把这种从单个可操作化软目标到单个NFR型软目标的影响叫做贡献。在rΣ中,有四类定性的贡献:使能MAKE,破坏BREAK,帮助HELP,和损害HURT,分别由“++”,“--”,“+”和“-”标注。对于定量的贡献,其分类依赖于具体的度量区间。
[0021] 满足状态(Satisficing Status):是一类刻画软目标实现情况的概念。在本rΣ中,有六种定性的满足状态:完全满足,部分满足,完全拒绝,部分拒绝,未知和冲突,分别标记为√,w+,×,w-,?和 对于定量的满足状态,它们依赖于具体的度量区间。
[0022] 与或分解(AND/OR Decomposition):是一种位于相邻两个层次上NFR型软目标之间的关系。与分解意味着父节点的实现需求子节点全部实现,或分解意味着父节点的实现仅仅需要任意一个子节点的实现。而且,与分解意味着父节点的拒绝仅仅需要任意一个子节点的拒绝,或分解意味着父节点的拒绝需求子节点全部拒绝。在图形化建模过程中,例如图2和图3所示,与分解和或分解分别由带有一条或者两条垂直短线的直线表示。
[0023] 可操作化分解(Operationalization Decomposition):是一种位于可操作化软目标和NFR型软目标之间的关系。通过可操作化分解过程,每一个NFR型软目标都会被精化为相应的带有正向贡献的可操作化软目标。每一种可操作化软目标都为父节点提供了一种解决方案。在图形化建模过程中,例如图2和图3所示,可操作化分解用带有正向贡献(“++”,“+”)的直线表示。
[0024] 副作用(Side Effect):是另一种位于可操作化软目标和NFR型软目标之间的关系。在实际建模过程中,一个可操作化软目标也可以隐式的包含对其他NFR型软目标的贡献。通过副作用过程,一个可操作化软目标可以显式的关联到其他NFR型软目标,其贡献可以使正向的,也可以是负向的。在图形化建模过程中,例如图2-图8所示,副作用关系用带有负向贡献(“-–”,“-”)的直线表示,也可以像可操作化分解一样,用带有正向贡献(“++”,“+”)的直线表示。
[0025] 具体实施时,本发明包括一下步骤:
[0026] 图形化建模。通过鼠标点击rΣ绘图区域,可以选取相应的建模元素,然后点击画布生成相应建模元素。需要注意的是分解关系和贡献关系有方向性。具体的方向由鼠标点击两个节点的顺序决定。模型创建完成以后,可以对结果进行保存,以便下一次打开。rΣ支持多标签视图模式,方便多个在建项目之间的导航。只需要点击建模元素按键下方的标签名就可以实现项目之间的导航。
[0027] 形式化建模。该功能根据面向软件质量需求目标建模语言Σ的语义和语法设计。Σ的定义如下:
[0028] Σ:=
[0029] 其中,NSG是由需求相关者所确定所有质量(非功能)需求软目标的集合。
[0030] OSG是所有可操作化的软目标的集合。
[0031] CNT1={++,--,+,-}∪[-1.0,1.0]是和OSG型元素所关联的所有连接符的集合,它们用来表示目标之间的贡献关系。
[0032] CNT2={∧,∨,(,)}是表示分解结构的所有连接符的集合。它包括表示与或分解结构的合取和析取符号,以及界定相邻分解层次的花括号。
[0033] 引 入 记 号 Atom(Σ)来 表 示Σ 中 基 本 的 目 标 建 模 元 素,并 定 义Atom(Σ)=NSG∪OSG。类似的,使用记号Form(Σ)来表示Σ中所有的公式。生成规则如下:
[0034] 1.
[0035] 2.nsg1(◇nsgi), where i=2,...n,j=1,...n,nsg1,nsg2,nsgi∈NSG,osg1,osgj∈OSG,*∈{++,--,+,-}∪[-1.0,1.0],◇表示NSG或者OSG中有限元素的∨或者∧运算;
[0036] 3.所有通过对规则1和规则2有限次迭代而生成的公式都属于Form(Σ)。
[0037] rΣ中形式化建模的功能通过Σ转换来实现,其算法如下:
[0038] 算法1:Σ转换
[0039] 输入:目标树模型G=;该表示方法为图论中广泛使用,具体而言,G是一个图,V是它的顶点的集合,E是它的边的集合。
[0040] 输出:
[0041] 1.遍历V中所有节点,找到入度为0的节点,返回公式F,其包含和这个节点名称相同的原子,并且后边添加为满足状态准备的花括号和为其后代准备的圆括号;
[0042] 2.遍历子节点,并把它们的名字添加到F的圆括号中。E中所表示的子节点之间的分解关系和贡献关系的也按照Σ的语法保留和表示出来。为每一个子节点添加为满足状态准备的花括号和为其后代准备的圆括号;
[0043] 3.重复步骤2直到执行完出度为0的节点;
[0044] 4.返回F。
[0045] 策略评估。策略评估是面向目标建模方法的支持工具中最重要的活动。通过评估,可以知道一个实现策略是否是一个可接受的策略。如果是的话,那么评估过程就可以停止。如果不是,需要调整策略重新评估。对于策略评估功能,rΣ允许用户有选择的指认所有叶节点的初始满足状态。那些没有被指认的叶节点可以看做是“未知”状态。通过这种方式,可以减少使用者的输入工作量,从而只关注被指认的叶节点。策略评估的实现算法如下:
[0046] 算法2:策略评估
[0047] 输入:目标树模型G=,备选叶节点的状态指认;
[0048] 输出:
[0049] 1.为模型G调用算法1,返回公式F;
[0050] 2.对F应用推理规则,确定需要被推理的节点;
[0051] 3.对被选取节点应用状态转移函数,并计算出对父节点的效用;
[0052] 4.对父节点应用效用推理函数,并计算出父节点的满足状态;
[0053] 5.重复步骤2,3和4直到根节点;
[0054] 6.返回根节点的满足状态。
[0055] 策略发掘。策略发掘可以检查所有可能的设计选项的组合,并把这些策略按照根节点的满足状态分类。通常,那些使根节点正向满足的实现策略可以作为备选策略。这样就可以为以后的多目标决策提供决策集合。策略发掘的实现算法如算法3所示:
[0056] 算法3:策略发掘
[0057] 输入:目标树模型G=
[0058] 输出:
[0059] 1.对每一个叶节点指认满足状态√和×,并返回包含所有设计选项组合的实现策略集合C;
[0060] 2.对于C中的任意元素c,调用算法2;
[0061] 3.重复步骤2,直到C中的所有元素都被执行;
[0062] 4.返回基于根节点不同的满足状态的,所有不同初始状态的叶节点组合的分类。
[0063] 模型扩展。和其他面向目标的方法支持工具相比,模型扩展功能是rΣ独一无二的功能。它捕捉了不同建模结果之间的关联关系。从多视点需求管理的角度来说,不同建模结果之间的关联关系通常在需求冲突检测过程中需要。因此,这些关联关系对于需求冲突检测是有帮助的。另外一个好处是,负责被扩展模型的需求相关者可以获得更丰富的精化知识和实现策略。模型扩展的算法如下:
[0064] 算法4:模型扩展
[0065] 输入:目标树模型G1=和G2=;对被扩展模型G1声明
[0066] 输出:
[0067] 1.调用算法1,返回两个公式F1,F2;
[0068] 2.确定F1和F2中的共享原子,返回共享原子集合M;
[0069] 3.对于M中任意的元素m,使用∨符号为F1中的精化结果添加F2中的精化结果;
[0070] 4.重复步骤3直到M中的所有元素都被执行,返回公式F′1;
[0071] 5.把F′1转换为图形G′1;
[0072] 6.返回G′1。
[0073] 与上述G=中字母含义类似,G1、V1、E1、V2、E2、G′1、F1都是新生成的图、顶点集合、边集合。F1表示新的,和G1对应的公式。
[0074] 上面概括性的描述了本发明的各个步骤,为了更清楚的解释本发明,下面结合一具体实施例对本发明进行详细描述。
[0075] rΣ已经用于金融服务系统的质量需求的建模与分析,其支持美国,欧洲和澳大利亚的股票交易。使用中,交易分析人员向分布在世界各地的服务器提出请求,系统会动态的调用可用的功能模,最终构建相应的服务架构。在构建架构的过程中,会涉及到关于哪些模块应该调用,模块间的约束如何满足,从而保证各种质量需求。
[0076] 私密性需求是否很好的满足是财务服务系统的一项重要的指标。它对于客户以及操作人员私人信息和各种实时数据的保护都至关重要。通过对开发人员的访谈,以及类似系统的调查,抽取了私密性需求,并把相关的精化结果用目标建模的方式表达出来。对于私密性需求来说,账户身份验证、请求控制和数据保护是三个重要考虑的方面。
[0077] 如图3,其给出了私密性需求的具体的建模结果,其中很多作为叶节点的设计选项都用重体云状图表示出来。同时,使用同样的方法,也建模了友好性需求和可靠性需求。图4和图5展示了这两类需求的建模结果。
[0078] 使用rΣ可以对私密性需求生成如下公式:
[0079] 表1:私密性需求的Σ公式
[0080]
[0081]
[0082] 完全满足节点Algorithm[Account],AccessPrioritization[System],Signature[Data]和Routers[System],并且完全拒绝其他节点,使用策略评估功能,可以得到对私密性需求的策略评估的结果,如图6所示。
[0083] 对企业财务服务系统私密性需求模型使用策略发掘功能。点击策略发掘按键,可以得到图7。从图7可以看到有许多实现策略可以使得私密性需求部分满足。对于接下来的决策过程,采用启发式规则:对于同一个父节点,最多满足一个子节点。同时引入开发成本和开发时长的因素做线性求和。最终完全满足节点PasswordComplexityGuarantee[Account],Firewall[System],LocationIdentification[System], ApplyingSSL[Data], 并完全拒绝其他节点作为最终实现策略。
[0084] 对可靠性需求执行模型扩展操作,结果如图8所示。可以看到节点LessFailure[System]被添加了新的节点LessInput[System],分析人员得到了新的实现策略,然而其分解关系又体现了一种冲突状态(一个节点不能同时被贡献分解和与或分解)。
[0085] 综上所述,借由本发明开发的rΣ支持质量需求模型的图形化建模、Σ转换、策略评估、策略发掘和模型扩展。通过使用rΣ,可以更快更好的进行质量需求目标模型的建模和推理。和传统的支持工具相比,rΣ可以生成文本格式的质量需求建模结果,该结果在不破坏模型语义的基础上便于保存和编辑。同时rΣ提供自动的实现策略的评估过程,不再需要人工交互。另外rΣ支持对质量需求实现策略的多目标决策,通过返回多个备选方案,允许分析人员确认最优结果。最后rΣ支持模型的扩展,可以捕获模型之间的相互依赖关系,从而提供了模型知识共享的机制和基于分解结构的冲突认定机制。
[0086] 由技术常识可知,本发明可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈