一种基于RUCM的需求验证方法转让专利

申请号 : CN201510419702.8

文献号 : CN104965956B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴际张莹杨海燕任健

申请人 : 北京航空航天大学

摘要 :

本发明涉及一种基于RUCM的需求验证方法,具体包括以下步骤:输入需求,采用RUCM方法生成半形式化的需求表达方式;对需验证的内容进行定义;解析需求的自然语言描述文字,在元模型中定义RUCM模型中的元素,将需求以RUCM元模型实例的方式表现出来;自动化验证引擎基于需验证的内容,对RUCM元模型实例进行自动化验证;对自动化验证结果进行评估,如果评估结果不满足,则对应修改需求,重复上述步骤。所述方法在保证自然语言描述需求的部分灵活性的前提下,实现自动化验证,减少人力,节约成本;同时,可定制可扩展的自动化验证引擎能够满足用户针对特定项目的部分验证需求,并且能够随着RUCM方法或更多的验证需求进行扩展。

权利要求 :

1.一种基于RUCM的需求验证方法,具体包括以下步骤:步骤1、需求描述服务器根据输入的需求,采用RUCM方法生成半形式化的需求表达方式,进一步包括:对RUCM中的表示条件和状态的句式进行句子模式和条件状态表达式的形式化定义,为用户提供表达该类句型的方法;

在模式和形式化定义时,结合条件状态表达的词库,提出多种可自动解析的句子模式和多个形式化定义的用词;

步骤2、验证内容定义服务器对需验证的内容进行定义,即定义要验证的目标;

步骤3、解析服务器解析需求描述服务器生成的需求表达方式的自然语言描述文字,在元模型中定义RUCM模型中的元素,将需求以RUCM元模型实例的方式表现出来;

步骤4、自动化验证引擎基于验证内容定义服务器定义的需验证的内容,对解析服务器生成的RUCM元模型实例进行自动化验证;

步骤5、评估服务器对步骤4的自动化验证结果进行评估,如果评估结果不满足要求,则对应修改需求,重复上述步骤。

2.根据权利要求1所述的基于RUCM的需求验证方法,其中,所述步骤2中验证内容定义服务器对需验证的内容进行定义进一步包括以下三个方面:

1)需求中的模板内容完整性,满足格式定义,语句模式正确,关键字使用正确;

2)用例模板内部元素之间一致性,包括:用例基本信息的描述,包括和其它用例的依赖关系,用例的输入数据、输出数据,参与者;对于参与者与系统之间的交互流的描述和用例基本信息中定义的一致;

3)分支、条件结构,包括:分支流程入口/出口正确的标明;条件判断结构完整正确。

3.根据权利要求1所述的基于RUCM的需求验证方法,其中,所述步骤4中自动化验证引擎包括遍历验证模块、语句分析模块、规则解析模块和规则执行模块。

4.根据权利要求3所述的基于RUCM的需求验证方法,其中,遍历验证模块对关键字使用和语句模式正确性进行检查,为之后的验证活动做保障;

语句分析模块通过关键字和定义的相关词库来识别句子的类别,为之后验证句子模式,格式定义做准备;

规则解析模块对规则库和用户定义的规则进行语法检查,并解析为规则执行模块能够识别的规则验证代码;

规则执行模块,对所有元模型实例用规则解析模块生成的规则验证代码对需求进行自动化验证。

5.根据权利要求4所述的基于RUCM的需求验证方法,其中,所述步骤4进一步包括以下步骤:遍历验证模块遍历所有用例的用例规约模板;在遍历过程中调用语句分析模块来分析每个句子的类别;规则解析模块从规则库中提取规则,解析为规则执行模块可执行的规则验证代码并发送给规则执行模块;规则执行模块加载形式化的需求和规则验证代码对需求进行自动验证,输出验证结果。

说明书 :

一种基于RUCM的需求验证方法

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种基于RUCM的需求验证方法。

背景技术

[0002] 描述软件系统的行为、特性或属性的需求,是用户和开发人员之间的桥梁,准确、完整的需求是指导系统后续建模、分析、开发和测试的根本依据,在需求工程中,需求验证是确保需求质量的重要的活动,可以帮助需求人员发现需求中的问题。
[0003] 目前需求验证活动有人工审查和自动化验证。人工审查是通过人工检查,结合问题清单的方式来检查需求,自动化验证是通过和需求描述方法相对应的自动验证工具来进行需求的验证。
[0004] 人工审查的方法能够很好的检查出需求中的问题,对于需求的形式化程度要求不高,并且能够很好的针对特定系统的需求进行验证,但是成本较高,需要投入大量的人力、时间。
[0005] 自动验证通过工具来自动进行验证,能够有效的降低人力和资金成本,其基础为形式化验证,常见的形式化验证方法包括推理验证和模型验证。推理验证是构建一个形式化的公理系统,使用严格的推导来验证软件的正确性;模型检测是以有限自动机为形式化模型,通过穷尽系统状态空间进行相关性质的验证。模型验证与推理验证现在相对比较成熟,但是要求系统需求被很好的形式化定义,对于输入的需求有严格的要求。
[0006] 人工审查需要投入大量人力;自动化验证要求严格的形式化,要求用户经过良好的培训,花费较多的时间才能进行需求的开发,很难适应特定项目特点。
[0007] RUCM是一种用例建模方法,它提出了一个用例规约模板来描述用例场景,并且附加了一些限制规则,使得在能够保留部分自然语言的灵活性的条件下,有部分的限制来降低自然语言的二义性。既保留了自然语言的部分灵活性又有合理的限制使得用户容易理解,容易编写,从而可以很好的解决在需求建模、需求验证方面需要投入大量时间和人力的问题。RUCM方法已经通过实验证明了其容易使用,描述的需求容易理解的优点,并且由于RUCM定义的元模型很好的捕获了RUCM需求中的概念,使得元模型能够很好的被用于生成分析模型,生成测试用例。
[0008] 但是,目前的RUCM对于自动化验证的方法来说,形式化程度不够,而严格的形式化为需求人员建模带来了挑战。
[0009] 针对自然语言描述的需求验证,目前通用的验证过程主要包括以下内容:
[0010] 1.为需求文档定义一个样式、一个结构和一种语言;
[0011] 2.选择要检查的属性;
[0012] 3.定义一种或多种模型,使得上述属性能够被检查;
[0013] 4.预处理需求文档:将需求文档转换成一个有规则的形式;
[0014] 5.解析需求的自然语言描述文字,使得需求成为一个能够被分析的形式;
[0015] 6.用解析出的信息构造前面定义的模型;
[0016] 7.检查模型是否满足选择的要验证的属性;
[0017] 8.评估结果,对应的修改需求。
[0018] 从上述描述中可以看出,验证过程活动较多,需要定义需求的格式样式,处理需求文档,生成模型,之后才能对生成的模型进行属性的检查,从而进行验证,复杂的过程也会使得需要投入大量的成本。通用的验证方法不能发现个性项目的问题,需求描述方法的局部修改使得验证工具需要进行较大的改动。

发明内容

[0019] 鉴于上述的分析,本发明旨在提供一种基于RUCM的需求验证方法,用以解决现有技术中RUCM对于自动化验证的方法来说,形式化程度不够,而严格的形式化为需求人员建模带来了挑战;同时,通用的验证方法不能发现个性项目的问题,需求描述方法的局部修改使得验证工具需要进行较大的改动的问题。
[0020] 本发明的目的主要是通过以下技术方案实现的:
[0021] 一种基于RUCM的需求验证方法,具体包括以下步骤:
[0022] 步骤1、需求描述服务器根据输入的需求,采用RUCM方法生成半形式化的需求表达方式;
[0023] 步骤2、验证内容定义服务器对需验证的内容进行定义,即定义要验证的目标;
[0024] 步骤3、解析服务器解析需求描述服务器生成的需求表达方式的自然语言描述文字,在元模型中定义RUCM模型中的元素,将需求以RUCM元模型实例的方式表现出来;
[0025] 步骤4、自动化验证引擎基于验证内容定义服务器定义的需验证的内容,对解析服务器生成的RUCM元模型实例进行自动化验证;
[0026] 步骤5、评估服务器对步骤4的自动化验证结果进行评估,如果评估结果不满足要求,则对应修改需求,重复上述步骤。
[0027] 其中,所述步骤1进一步包括:
[0028] 对RUCM中的表示条件和状态的句式进行句子模式和条件状态表达式的形式化定义,为用户提供表达该类句型的方法;
[0029] 在模式和形式化定义时,结合条件状态表达的词库,提出多种可自动解析的句子模式和多个形式化定义的用词。
[0030] 3、根据权利要求1所述的基于RUCM的需求验证方法,其中,所述步骤2中验证内容定义服务器对需验证的内容进行定义进一步包括以下三个方面:
[0031] 3)需求中的模板内容完整性,满足格式定义,语句模式正确,关键字使用正确;
[0032] 4)用例模板内部元素之间一致性,包括:用例基本信息的描述,包括和其它用例的依赖关系,用例的输入数据、输出数据,参与者等;对于参与者与系统之间的交互流的描述和用例基本信息中定义的一致;
[0033] 3)分支、条件结构,包括:分支流程入口/出口正确的标明;条件判断结构完整正确。
[0034] 其中,所述步骤4中自动化验证引擎包括遍历验证模块、语句分析模块、规则解析模块和规则执行模块。
[0035] 其中,
[0036] 遍历验证模块对关键字使用和语句模式正确性进行检查,为之后的验证活动做保障;
[0037] 语句分析模块通过关键字和定义的相关词库来识别句子的类别,为之后验证句子模式,格式定义做准备;
[0038] 规则解析模块对规则库和用户定义的规则进行语法检查,并解析为规则执行模块能够识别的规则验证代码;
[0039] 规则执行模块,对所有元模型实例用规则解析模块生成的规则验证代码对需求进行自动化验证。
[0040] 其中,所述步骤4进一步包括以下步骤:
[0041] 遍历验证模块遍历所有用例的用例规约模板;在遍历过程中调用语句分析模块来分析每个句子的类别;规则解析模块从规则库中提取规则,解析为规则执行模块可执行的规则验证代码并发送给规则验证模块;规则验证模块加载形式化的需求和验证规则代码对需求进行自动验证,输出验证结果。
[0042] 本发明有益效果如下:
[0043] 省略了基于自然语言验证活动中的定义模型,预处理需求文档,解析出模型的活动,使得验证活动更简单。采用的RUCM用例建模方法使得自动化验证方法对于输入需求的形式化程度没有过分的要求,节约了建模的成本。在保证自然语言描述需求的部分灵活性的前提下,实现自动化验证,减少人力,节约成本。
[0044] 验证的内容能够减少需求中的部分二义性、不一致性、不完整性等方面的问题,使得需求能够更好的被不同的相关人员理解。验证规则中对于格式、模式等方面的验证,通过保证这些内容的正确,减少需求中的二义性问题。另外通过对不一致性和不完整在用例规约中的具体分析,设计出的关于条件、结构正确完整的规则验证,能够发现部分不一致性、不完整性方面的问题。
[0045] 可定制可扩展的验证引擎使得能够满足用户针对特定项目的部分验证需求,并且能够随着RUCM方法或更多的验证需求进行扩展。
[0046] 本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0047] 附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
[0048] 图1为本发明具体实施方式方法流程图。

具体实施方式

[0049] 下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
[0050] 一种基于RUCM的需求验证方法,具体包括以下步骤:
[0051] 步骤1、在需求描述服务器中输入需求,由需求描述服务器采用RUCM方法生成半形式化的需求表达方式。
[0052] 所述验证过程省去了通用验证过程中预处理需求文档和解析构造模型的活动。通过借助RUCM已经定义好的结构化的用例模板与限制规则,使得需求在建模时就已经成为一个有规则的形式,而不需要重新定义需求文档的样式、格式语言,处理的活动;并且借用RUCM方法中的元模型可以使得需求在建立时自动映射为其对应的形式化表达方式的优点,借助需求的元模型实例进行验证规则的形式化表达,省略了验证过程中解析模型的活动,最终可以在解析需求的自然语言描述文字后,就为所关注的验证规则提供了足够的信息,从而成为能够进行自动化验证的基础。
[0053] 所述步骤进一步包括,针对验证内容中需要对需求的条件分支结构进行验证的要求,对RUCM中的表示条件和状态的句式进行句子模式和条件状态表达式的形式化定义,为用户提供表达该类句型的方法,使得句子结构清晰,容易理解。在模式和形式化定义时,不采取单一的形式化定义,而是结合条件状态表达的词库,提出多种可自动解析的句子模式和多个形式化定义的用词。
[0054] 步骤2、验证内容定义服务器对需验证的内容进行定义,即定义要验证的目标。
[0055] 所述要验证的目标包括以下三个方面:
[0056] 1)需求中的模式、格式定义
[0057] 对需求中的模式、格式定义进行验证,使得用户能够更好的关注于需求的捕获,自动地验证这些问题,包括模板内容完整性,满足格式定义,语句模式正确,关键字使用正确几个方面。
[0058] 其中,模板内容完整包括:数据都有定义,每个分支流要明确指明分支的来源,置条件不能为空。满足格式定义包括:条件语句的形式化定义,约束表达式的格式定义,RFS域的格式。
[0059] 2)用例模板内部元素之间一致性。
[0060] RUCM已经定义好的结构化的用例模板中各个元素之间存在着制约关系,通过对这些制约关系的验证,能够保证模板中各个元素之间的部分一致性。一致性是指需求中没有冲突,如果模板元素两个中有相同的含义,则必须保证相同。RUCM方法包含两个部分,一个是用例基本信息的描述(包括和其它用例的依赖关系,用例的输入数据、输出数据,参与者等),一部分是对于参与者与系统之间的交互流的描述,这部分是采用自然语言描述的。因为自然语言描述的需求容易出现问题,要保证第二部分的描述和用例基本信息中定义的一致。
[0061] 比如当流程中说到系统向一个Actor发出什么Data时,这里的Data一定是Output中定义的数据,Actor一定是参与者中的一个。
[0062] Input和output中所定义的数据应该都被使用。
[0063] 有时候Input,output中的信息,是站在外部系统或用户的角度来对系统的功能提出要求,它需要什么数据,需要什么数据被处理,因此如果在流程中并没有出现这些数据,则意味需求缺失了,是不一致问题。
[0064] 流程中对于其他用例的包含扩展应与基本信息中的描述一致。
[0065] COLLECT INPUT/DELIVER OUTPUT FROM和TO后的ACTOR应该是用例相关的ACTOR;并且句子中的数据应该在input或output被列出。
[0066] 3)分支、条件结构
[0067] 包括分支流程入口/出口正确的标明,条件判断结构完整正确两个方面。用例规约中重要的概念是场景,一个场景通常对应着一个分支,分支流结构是否正确意味着能否正确地识别一个场景。条件判断结构的完整正确提供对于可能的状态冲突、遗漏某些输入情况的处理等情况来设计规则进行验证。
[0068] 步骤3、解析RUCM中文字部分,形成元模型的实例化表达;
[0069] 解析服务器解析需求描述服务器生成的需求表达方式的自然语言描述文字,在元模型中定义RUCM模型中的元素,将需求以RUCM元模型实例的方式表现出来。
[0070] 步骤4、自动化验证引擎基于验证内容定义服务器定义的需验证的内容,对需求描述服务器生成的RUCM元模型实例进行自动化验证。
[0071] 自动化验证,自动化检查模型是否满足选择的要验证的属性
[0072] 自动化验证,是由以下四个模块:遍历验证模块,语句分析模块,规则解析模块,规则执行模块来执行的。
[0073] 遍历验证模块主要对关键字使用,和语句模式正确性进行检查,为之后的验证活动做保障。
[0074] 语句分析模块通过关键字,和定义的相关词库来识别句子的类别,为之后验证句子模式,格式定义做准备。
[0075] 规则解析模块,将规则库和用户定义的规则进行规定的语法检查,解析为规则执行模块能够识别的规则验证代码。
[0076] 规则执行模块,规则最终会反应为元模型实例的不变式,执行模块会找到所有元模型实例,用规则解析模块生成的规则验证代码对需求进行自动化的验证。
[0077] 自动化验证引擎基于需求验证内容服务器定义的需验证的内容,对需求描述服务器生成的RUCM元模型实例进行自动化验证进一步包括以下步骤:
[0078] 自动化验证引擎遍历所有用例的用例规约模板,对所有用例规约流程中的每个句子进行验证,输出部分验证结果,在遍历过程中调用语句的分析模块来分析每个句子的类别;规则解析模块从规则库中提取规则,解析为规则执行模块可识别的规则验证代码并发送给规则验证模块;规则验证模块加载形式化的需求和验证规则代码对需求进行自动验证。
[0079] RUCM工具的良好扩展性,要求对其提供自动化验证的工具具有良好的可扩展性,能够为将来扩展的RUCM的验证提供便利。
[0080] 验证工具的规则基于RUCM的元模型,但是RUCM元模型的设计是针对需求开发的,需要添加针对验证的元模型,因此需要扩展RUCM元模型的设计,添加针对验证的元模型的设计。针对扩展的元模型仍然保留了RUCM元模型的良好扩展性。结合RUCM方法能够自动映射为其元模式实例的半形式化表达方式的特点,将每条规则设计到经过扩展后的元模型上,使得能够统一的验证。
[0081] 验证引擎的可扩展性包括多个方面,验证元模型的扩展,规则库的扩展,验证结果模板的扩展等内容。规则分为规则对象和规则约束两部分,规则对象对应元模型,规则约束对应规则表达式。通过约定规则表达式的定义方式,结合RUCM元模型的可扩展特点,可以实现规则的添加扩展。
[0082] 通常的自动化验证工具都定义好了验证规则,对于具体的需求不能提供很好的验证点,这里提供接口使得用户在工具支持的范围内能够根据自己的需求对于需求中所关注的问题进行验证。通过元模型元素实例的选择,提供规则表达式的定义,就可以实现针对特定需求的可定制规则验证。
[0083] 本发明所公开的基于RUCM的需求验证方法具有以下技术效果:
[0084] 省略了基于自然语言验证活动中的定义模型,预处理需求文档,解析出模型的活动,使得验证活动更简单;使得自动化验证方法对于输入需求的形式化程度没有过分的要求,节约了建模的成本;在保证自然语言描述需求的部分灵活性的前提下,实现自动化验证,减少人力,节约成本。
[0085] 验证的内容能够减少需求中的部分二义性、不一致性、不完整性等方面的问题,使得需求能够更好的被不同的相关人员理解。验证规则中对于格式、模式等方面的验证,通过保证这些内容的正确,减少需求中的二义性问题。另外通过对不一致性和不完整在用例规约中的具体分析,设计出的关于条件、结构正确完整的规则验证,能够发现部分不一致性、不完整性方面的问题。
[0086] 能够满足用户针对特定项目的部分验证需求,并且能够随着RUCM方法或更多的验证需求进行扩展。
[0087] 本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0088] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。