一种基于流程模型的需求验证方法

文档序号:10612600阅读:122来源:国知局
一种基于流程模型的需求验证方法
【专利摘要】本发明涉及一种基于流程模型的软件需求验证方法,所述方法包括以下步骤:步骤S1、根据规则对象的类别将规则加载进规则库中;步骤S2、根据需求生成流程模型;步骤S3、找出流程模型中的模型元素;步骤S4、依据规则约束对模型元素进行判定。所述方法具有以下技术效果:省略了基于自然语言验证活动中的定义模型,预处理需求文档,解析出模型的活动,使得验证活动更简单;使得自动化验证方法对于输入需求的形式化程度没有过分的要求,节约了建模的成本;在保证自然语言描述需求的部分灵活性的前提下,实现自动化验证,减少人力,节约成本。
【专利说明】
一种基于流程模型的需求验证方法
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种基于流程模型的需求验证方法。
【背景技术】
[0002]需求描述了软件系统的行为、特性或属性,是用户和开发人员之间的桥梁,准确、完整的需求是指导系统后续建模、分析、开发和测试的根本依据,在需求工程中,需求验证是确保需求质量的重要的活动。
[0003]目前需求验证活动分为人工审查和自动化验证。
[0004]人工审查通过人工检查,结合问题清单的方式来检查需求。能够很好的检查出需求中的问题,对于需求的形式化程度要求不高,并且能够很好的针对特定系统的需求进行验证,但是成本较高,需要投入大量的人力、时间。
[0005]自动化验证通过和需求描述方法相对应的自动验证工具来进行需求的验证,能够有效的降低人力和资金成本。其基础为形式化验证,常见的形式化验证方法包括推理验证和模型验证。推理验证是构建一个形式化的公理系统,使用严格的推导来验证软件的正确性;模型检测是以有限自动机为形式化模型,通过穷尽系统状态空间进行相关性质的验证。模型验证与推理验证现在相对比较成熟,已经有了很多相关的工具,但是他们都要求系统需求被很好的形式化定义,对于输入的需求有严格的要求。
[0006]人工审查需要投入大量的人力,形式化验证对于二义性等问题解决效果很好,但是严格的形式化定义要求用户经过良好的培训,花费较多的时间才能进行需求的开发。
[0007]目前,针对自然语言描述的需求验证,有研究提出了一种验证过程,主要包括以下内容:
[0008]1.为需求文档定义一个样式、一个结构和一种语言。
[0009]2.选择要检查的属性。
[0010]3.定义一种或多种模型,使得上面关注的属性能够被检查。
[0011]4.预处理需求文档:将需求文档转换成一个有规则的形式。
[0012]5.解析需求的自然语言描述文字,使得需求成为一个能够被分析的形式。
[0013]6.用解析出的信息构造前面定义的模型。
[0014]7.检查模型是否满足选择的要验证的属性。
[0015]8.评估结果,对应的修改需求。这个验证检查需要提供足够详细的信息来帮助需求工程人员识别和修改发现的问题。
[0016]从上述描述中可以看出,验证过程活动较多,需要定义需求的格式样式,处理需求文档,生成模型,之后才能对生成的模型进行属性的检查,从而进行验证,复杂的过程也会使得需要投入大量的成本。
[0017]在当前众多的需求建模方法中,RUCM是一种用例建模方法,它提出了一个用例规约模板来描述用例场景,并且附加了一些限制规则,使得在能够保留部分自然语言的灵活性的条件下,有部分的限制来降低自然语言的二义性。RUCM方法已经通过实验证明了其容易使用,描述的需求容易理解的优点。并且由于RUCM定义的元模型很好的捕获了 RUCM需求中的概念,使得元模型能够很好的被用于生成分析模型,生成测试用例。
[0018]基于规则的需求验证方法主要结合了RUCM方法的特点研究其验证目标,形式化。该方法的验证流程是:在验证执行前根据规则对象的类别将规则加载进相应的规则容器中,在验证执行时,基于模型遍历算法找到每一个模型元素,依据模型元素的类别选择相应类别的规则,依据规则的约束对模型元素进行判定。
[0019]基于规则的需求验证方法,由于是在RUCM方法描述的基础上提出验证规则从而达到需求的验证,导致其提出的规则局限于RUCM方法的描述方式,这也就制约了其验证能力。即使提出新的规则,这些规则也还是针对RUCM最基本的表达方式提出的,仍然具有一定的局限性,例如:
[0020]1.未能定义面向用例规约的流程模型元模型;
[0021 ] 2.未能将RUCM需求模型转换为流程模型。
[0022]3.未能针对嵌入式软件需求描述对应的流程模型提出自然语言描述的规则;
[0023]4.未能解决验证规则的形式化表达问题;
[0024]5.未能解决基于流程模型的RUCM方法中需求的自动化验证。

【发明内容】

[0025]鉴于上述的分析,本发明旨在提供一种基于流程模型的软件需求验证方法,用以解决现有技术中缺少需求自动验证的问题。
[0026]本发明的目的主要是通过以下技术方案实现的:
[0027]—种基于流程模型的软件需求验证方法,其特征在于,具体包括以下步骤:
[0028]步骤S1、根据规则对象的类别将规则加载进规则库中;
[0029]步骤S2、根据需求生成流程模型;
[0030]步骤S3、找出流程模型中的模型元素;
[0031 ]步骤S4、依据规则约束对模型元素进行判定。
[0032]所述步骤S2进一步包括以下子步骤:
[0033]子步骤S21、从数据模型和控制模型的基本元素角度确定流程模型的组成元素;
[0034]子步骤S22、依照RUCM需求模型的组成元素,进一步分析和细分流程模型的组成元素,完善原t旲型;
[0035]子步骤S23、根据模型转换算法,建立流程模型和RUCM需求模型之间的映射,将RUCM需求模型转换为流程模型。
[0036]所述步骤S3进一步包括:
[0037]对步骤S2生成的流程模型进行遍历,找到模型元素。
[0038]所述步骤S3进一步包括以下子步骤:
[0039]I)取出流程模型的路径集合属性,如果为空,遍历结束;
[0040]2)取出路径集合中的一个成员,也就是一条路径,并从路径集合中除掉;
[0041 ] 3)取出路径的节点集合属性;
[0042]4)取出节点结合中的第一个元素,也就是路径的起点;
[0043]5)取出节点的下一个元素直到该节点是路径的终点;
[0044]6)当路径集合为空,遍历完成。
[0045]所述步骤S4进一步包括:
[0046]规则加载模块依据步骤3找到得的模型元素的类别从规则库中选择相应类别的规则进行加载,依据规则的约束对模型元素进行判定。
[0047]在执行步骤SI之前,还包括以下步骤:
[0048]预处理需求文档得到以RUCM方法描述的需求和解析构造模型,即RUCM需求模型。
[0049]本发明有益效果如下:
[0050]省略了基于自然语言验证活动中的定义模型,预处理需求文档,解析出模型的活动,使得验证活动更简单;
[0051]使得自动化验证方法对于输入需求的形式化程度没有过分的要求,节约了建模的成本;
[0052]在保证自然语言描述需求的部分灵活性的前提下,实现自动化验证,减少人力,节约成本;
[0053]能够减少需求中在功能性需求中的部分二义性、不一致性、不完整性等方面的问题以及在实时性和安全性需求描述中的部分问题,使得需求能够更好的被不同的相关人员理解;
[0054]更能发现一些全局性的需求描述错误;
[0055]能够满足用户针对特定项目的部分验证需求,并且能够随着RUCM方法或更多的验证需求进行扩展。
[0056]本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0057]附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表不相同的部件。
[0058]图1为本发明具体实施例的方法流程图。
【具体实施方式】
[0059]下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
[0060]本实施例公开了一种基于流程模型的软件需求验证方法,通过调用验证引擎进行模型遍历、规则加载和执行,达到自动验证的目的。
[0061 ]步骤S1、根据规则对象的类别将规则加载进相应的规则容器中;
[0062]其中,所述规则以OCL语言形式存储在规则库中,具体如下:
[0063]从嵌入式软件的需求模型对应的流程模型的角度提出规则,而基于规则的需求验证方法中,验证引擎的核心与规则二者是独立的,所以可以设计新的规则,然后利用引擎执行验证。
[0064]实时性和安全性是嵌入式软件中比较核心的两个方面,所以在嵌入式软件的需求验证中是两个重要的验证问题,所述规则需要从嵌入式软件的功能性、安全性和实时性三个角度进行限定:
[0065]功能性需求定义了系统的功能或者系统的组成部分,这里所关注的功能性问题是需求功能性描述是否规范。
[0066]安全性需求侧重的是保障系统的安全性,这里所关注的安全性问题是数据使用的安全性。
[0067]实时性需求侧重的是满足系统对于时间约束的满足,这里所关注的实时性问题是时长和时间点的约束。
[0068]对于规则的形式化表达,采用OCL语言来表达。例如对于规则“流程模型中任意一条路径应该至少包括两个节点”可以用OCL结合流程模型的元模型表达如下:
[0069]Context:路径
[0070]Inv:路径.allInstances()_>forAll(sl | s1.节点集合.size> = 2)
[0071]其中路径是流程模型中的路径元素,路径的节点集合属性是一个该路径包含的所有节点的有序集合。
[0072]步骤S2、根据需求生成流程模型
[0073]基于规则的需求验证法只能从RUCM需求模型的元模型考虑验证规则,验证的大多都是描述规范方面的问题。如果从需求描述的流程角度考虑,可以验证更多的需求问题,而这些需求问题是基于RUCM需求模型的基础上所发现不了的。所以,需要生成流程模型作为验证引擎的模型文件,具体包括以下子步骤:
[0074]子步骤S21、从数据模型和控制模型的基本元素角度确定流程模型的组成元素;RUCM在描述需求的时候,它的内部是有一个需求原模型的,而在构建流程模型的时候,就是基于这个内部需求的原模型中的各种元素以及它们之间的关系,可能需要提取其中的基本元素或者仅仅是提出其中我们需要的关键性关系等等,从而构建出流程模型。
[0075]子步骤S22、依照RUCM需求模型的组成元素,进一步分析和细分流程模型的组成元素,完善原模型;而由于流程模型中应该包含数据和控制信息,所以还需要结合这两种流的特点,结合基础,也就是RUCM的需求原模型,最终形成完善的流程模型。
[0076]子步骤S23、根据模型转换算法,建立流程模型和RUCM需求模型之间的映射,将RUCM需求模型转换为流程模型。
[0077]步骤S3、对步骤S2生成的流程模型进行遍历,找到模型元素
[0078]因为在对需求描述的每一个步骤做验证的时候,由于步骤描述都是自然语言表达的,所以不可能对一句话做自动验证,只能验证形式化的部分。验证的时候,需要提出一系列形式化表达的规则,而组成这些规则的都是模型中的元素以及一些逻辑符号,所以我们需要对由RUCM需求模型替换成的流程模型进行遍历,从而找到所需要的元素。
[0079]具体包括以下子步骤:
[0080]I)取出流程模型的路径集合属性,如果为空,遍历结束;
[0081]2)取出路径集合中的一个成员,也就是一条路径,并从路径集合中除掉;
[0082]3)取出路径的节点集合属性;
[0083]4)取出节点结合中的第一个元素,也就是路径的起点;
[0084]5)取出节点的下一个元素直到该节点是路径的终点;
[0085]6)当路径集合为空,遍历完成。
[0086]这样,基于模型遍历算法找到每一个模型元素。
[0087]步骤S4、规则加载模块依据步骤3找到得的模型元素的类别从规则库中选择相应类别的规则进行加载,依据规则的约束对模型元素进行判定。
[0088]根据本发明的一个具体实施例,在执行步骤SI之前,还包括预处理需求文档得到以RUCM方法描述的需求和解析构造模型,即RUCM需求模型的步骤。
[0089]通过采用RUCM,借助RUCM定义好的结构化的用例模板与限制规则,RUCM方法中的元模型可以使得需求在建模时自动映射为其对应的形式化表达方式,而不需要重新定义需求文档的样式、格式语言,处理的活动。
[0090]借助需求描述的流程模型实例进行验证规则的形式化表达,省略了验证过程中解析模型的活动,最终可以在解析需求的自然语言描述文字后,就为所关注的验证规则提供了足够的信息,从而成为能够进行自动化验证的基础。
[0091]本发明具体实施例所公开的基于流程模型的软件需求验证方法具有以下技术效果:
[0092]省略了基于自然语言验证活动中的定义模型,预处理需求文档,解析出模型的活动,使得验证活动更简单;
[0093]使得自动化验证方法对于输入需求的形式化程度没有过分的要求,节约了建模的成本;
[0094]在保证自然语言描述需求的部分灵活性的前提下,实现自动化验证,减少人力,节约成本;
[0095]能够减少需求中在功能性需求中的部分二义性、不一致性、不完整性等方面的问题以及在实时性和安全性需求描述中的部分问题,使得需求能够更好的被不同的相关人员理解;
[0096]更能发现一些全局性的需求描述错误;
[0097]能够满足用户针对特定项目的部分验证需求,并且能够随着RUCM方法或更多的验证需求进行扩展。
[0098]本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0099]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种基于流程模型的软件需求验证方法,其特征在于,具体包括以下步骤: 步骤S1、根据规则对象的类别将规则加载进规则库中; 步骤S2、根据需求生成流程模型; 步骤S3、找出流程模型中的模型元素; 步骤S4、依据规则约束对模型元素进行判定。2.根据权利要求1所述的基于流程模型的软件需求验证方法,其特征在于,所述步骤S2进一步包括以下子步骤: 子步骤S21、从数据模型和控制模型的基本元素角度确定流程模型的组成元素; 子步骤S22、依照RUCM需求模型的组成元素,进一步分析和细分流程模型的组成元素,完善原t旲型; 子步骤S23、根据模型转换算法,建立流程模型和RUCM需求模型之间的映射,将RUCM需求模型转换为流程模型。3.根据权利要求1所述的基于流程模型的软件需求验证方法,其特征在于,所述步骤S3进一步包括: 对步骤S2生成的流程模型进行遍历,找到模型元素。4.根据权利要求3所述的基于流程模型的软件需求验证方法,其特征在于,所述步骤S3进一步包括以下子步骤: 1)取出流程模型的路径集合属性,如果为空,遍历结束; 2)取出路径集合中的一个成员,也就是一条路径,并从路径集合中除掉; 3)取出路径的节点集合属性; 4)取出节点结合中的第一个元素,也就是路径的起点; 5)取出节点的下一个元素直到该节点是路径的终点; 6)当路径集合为空,遍历完成。5.根据权利要求1所述的基于流程模型的软件需求验证方法,其特征在于,所述步骤S4进一步包括: 规则加载模块依据步骤3找到得的模型元素的类别从规则库中选择相应类别的规则进行加载,依据规则的约束对模型元素进行判定。6.根据权利要求1所述的基于流程模型的软件需求验证方法,其特征在于,在执行步骤SI之前,还包括以下步骤: 预处理需求文档得到以RUCM方法描述的需求和解析构造模型,即RUCM需求模型。
【文档编号】G06F9/44GK105975269SQ201610286303
【公开日】2016年9月28日
【申请日】2016年5月3日
【发明人】吴际, 赵晶鑫, 杨海燕, 刘超
【申请人】北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1