一种基于性质规约模式生成ltl公式的uml模型检测系统和方法

文档序号:6482391阅读:185来源:国知局

专利名称::一种基于性质规约模式生成ltl公式的uml模型检测系统和方法
技术领域
:本发明涉及模型驱动式软件开发中的模型检测系统和方法,尤其涉及一种基于性质规约模式生成LTL公式的UML模型检测系统和方法。
背景技术
:模型驱动式软件开发方法是对实际问题进行建模并转换、精化模型,直至生成可执行代码的过程。模型驱动架构(modeldrivenarchitecture,简称MDA)是一种对业务逻辑建立抽象模型,然后由抽象模型自动产生最终完备的应用程序的方法。MDA致力于提高软件开发行为的抽象级别,倡导将业务模型定义为精确的高层抽象模型,将开发人员从繁琐的低级劳动中解脱出来,更多关注于业务逻辑层面。统一建模语言UML作为一种标准的可视化建模语言能够为用户提供可视化的建模环境和工具,是实现模型驱动式软件开发方法的核心技术,已经被广泛用于建模系统的模型。UML作为一种标准建模语言,能够很好地描述系统的需求,UML类图、构件图等用于建模系统的静态结构,UML活动图、状态图、顺序图等用于建模系统的动态行为。其中,UML状态图刻画了系统对象在其生命周期内的状态变迁情况,被用于建模系统的动态行为,使用模型检测技术验证UML状态图建模的系统动态行为的正确性具有重要意义。但是,UML模型缺乏严格的语义定义,其正确性很难得到保证。如何提高UML系统模型的正确性,从而提高整个系统模型的质量,为构造高质量的软件系统提供有效的途径,是模型驱动式软件开发过程中面临的主要问题之一。此外,形式化的LTL公式具有复杂的语法和语义,在实际应用中,很难被开发人员理解和掌握,如何重用己有的性质规约模式,自动生成LTL公式定义模板,为开发人员提供一种便捷的使用方式,是模型检测技术在实际应用中面临的主要问题。
发明内容本发明的目的是提供一种基于性质规约模式生成LTL公式的UML模型检测系统和方法,在模型驱动式软件开发过程中,使用已有的模型检测器验证UML状态图建模的系统行为的正确性。本发明的技术方案是,一种基于性质规约模式生成LTL公式的UML模型检测系统,其特征在于,包括UML状态图,用于描述模型对象生命周期中状态的变迁;模型编辑器,用于描述UML建立系统模型过程中的系统需求;模型转换器,用于将所述的UML状态图转换为以SPIN作为模型检测器的输入语言PROMELA;模型检测器,用于验证系统的正确性、安全性、活性以及所述LTL公式描述的系统性质约束;LTL公式编辑器,用于基于性质规约模式自动生成LTL公式定义模板,并由用户定义、配置该性质规约模板,最终将生成的LTL公式输入到所述模型检测器中,验证LTL公式,以及结果分析器,用于当发现所述系统模型中存在错误时,生成反例路径用以描述导致系统产生错误的执行路径时,根据反例路径生成扩展的顺序图,刻画所述系统模型执行过程中的消息交互情况,为用户修改该系统模型提供支持。所述的LTL公式编辑器包括模式库,用于保存预定义的所有性质规约模式LTL公式编辑器输入模块,用于输入所述系统模型需要满足的性质约束;性质规约模式范围选择器,用于支持选择性质规约的使用范围;性质规约模式分类器,用于将模式库中的性质规约模式进行分类处理,使得可根据需要选择合适的性质规约模式;模式到LTL公式映射模块,用于实现根据性质规约模式生成LTL公式模板;用户配置LTL公式模块,用于实例化LTL公式中的变量;得到实例化的LTL公式;LTL公式编辑器输出模块,用于输出LTL公式的实例。一种基于性质规约模式生成LTL公式的UML模型检测方法,其特征在于,包括以下步骤生成UML状态图,模型对象生命周期中状态的变迁;通过模型编辑器描述UML建立系统模型过程中的系统需求;通过模型转换器将所述的UML状态图转换为以SPIN作为模型检测器的输入语言PROMELA;采用LTL公式编辑器,基于性质规约模式,自动生成LTL公式定义模板,并由用户定义、配置该性质规约模板,最终将生成的LTL公式输入到所述模型检测器中,验证LTL公式;利用模型检测器,验证系统的正确性、安全性、活性以及所述LTL公式描述的系统性质约束;最后通过结果分析器,当发现所述系统模型中存在错误时,生成反例路径用以描述导致系统产生错误的执行路径时,根据反例路径生成扩展的顺序图,刻画所述系统模型执行过程中的消息交互情况,为用户修改该系统模型提供支持。所述的LTL公式编辑器以如下步骤对所述UML模型检测选择性质规约模式的使用范围;选择性质规约模式;选择发生类模式或者次序类模式;配置LTL公式;验证LTL公式;如果满足所述系统模型要求,怎结束验证,如果不满足,则返回修改系统模型。相比现有技术,本发明提供的技术方案,在模型驱动式软件开发方法的指导下,在系统建模过程中,集成形式化模型检测技术验证UML模型的正确性,基于性质规约模式生成描述系统性质约束的LTL公式,并使用模型检测器验证UML状态图建模的系统动态行为是否满足LTL公式,检査UML模型是否满足系统所期待的性质约束,实现在建模阶段构造出高质量的系统模型,从而提高最终生成的软件系统的质量。图1是本发明一实施例中基于模型检测器验证UML状态图的体系框架图图2是本发明一实施例中LTL公式编辑器的功能框架图图3是本发明一实施例中性质规约模式的分类图示6图4是本发明一实施例中规约模式的使用范围图示图5是本发明一实施例中LTL公式编辑器的使用步骤流程图具体实施例方式以下结合附图,详细说明本发明的具体实施方式。如图1所示,该图为按本发明的模型验证UML状态图的体系框架的主要功能模块图,包括图中模型编辑器,用户在模型编辑器中,使用UML建模系统的模型,用于描述系统的需求。其中,UML状态图描述了对象生命周期中,状态的变迁情况,对于建模系统的动态行为具有重用意义;模型转换器,为了重用已有的模型检测器验证系统模型的正确性,需要将UML状态图转换为模型检测器能够识别的语言。本发明采用了SPIN作为模型检测器,因此,模型转换器的主要功能是将UML状态图转换为SPIN的输入语言PROMELA。模型转换器的实现原理是根据酒L状态图的操作语义,使用PROMELA的元语表示UML状态图的建模元素,关键点是实现两种建模语言之间的映射关系;模型检测器,其主要功能是实现验证系统模型是否满足安全性、活性的要求。此外,能够验证使用LTL公式描述的系统性质约束。本发明中采用了经典的模型检测器SPIN,用于验证UML状态图的正确性;LTL公式编辑器,其主要功能是基于性质规约模式,自动生成LTL公式定义模板,并由用户定义、配置该性质规约模板,最终将生成的LTL公式输入到模型检测器中,验证LTL公式;结果分析器,当模型检测器发现系统模型中存在错误时,将生成反例路径(counterexample)用以描述导致系统产生错误的执行路径。这些路径信息能够帮助用户分析导致错误产生的原因,但是,模型检测器生成的反例路径很难被一般用户所理解,因此,结果分析器能够根据反例路径生成扩展的顺序图,刻画系统模型执行过程中的消息交互情况,为用户进一步地修改系统模型提供支持。在上述技术方案中,采用模型检测器SPIN作为模型检测引擎,充分利用SPIN提供的验证功能,实现模型检测UML状态图。系统模型满足安全性是指系统模型中不存在死锁的情况,模型检测器SPIN通过检查系统模型中是否存在无效终止状态验证系统是否具有安全性。为了实现7基于SPIN验证UML状态图,首先,需要将UML状态图转换为SPIN的输入语言PROMELA,这一步是根据UML状态图的语义,将状态图建模的系统行为以PROMELA的形式描述出来。其次,直接调用SPIN,利用其安全性验证功能,检査系统模型中是否存在无效终止状态。如果发现存在无效终止状态,则说明系统模型不满足安全性要求。否则,系统模型具有安全性属性,死锁不会发生。系统模型满足活性是指系统模型中不存在环路等待的情况。类似地,基于SPIN验证UML状态图是否满足活性要求,首先,需要将UML状态图转换为PROMELA,然后,利用SPIN的活性验证功能,检査UML状态图建模的系统动态行为中是否存在一条环路。如果存在一条环路,则说明系统模型不满足活性要求。否则,系统模型满足活性要求。验证UML状态图是否满足系统期待的性质约束时,首先,必须使用LTL公式正确地表示系统期待的性质约束,然而,LTL时态逻辑语言具有复杂的语法和语义,很难被用户所掌握。为了便于用户快速、准确地定义LTL公式,本发明的在技术方案中提出基于已有的性质规约模式,生成LTL公式的定义模板,从而实现以模板的方式引导用户逐步生成LTL公式。该方法通过重用已有的性质规约模式,将常见的一些性质规约所对应的LTL公式以模板的方式自动生成,提高了用户定义LTL公式的正确性和效率。一旦生成了正确的LTL公式,便可使用模型检测技术验证UML状态图是否满足LTL公式表示的性质约束。如图2所示,在LTL公式编辑器的组成中,LTL公式编辑器的输入是系统需要满足的性质约束,通常是自然语言描述的系统需求约束条件;输出是LTL公式的实例;从输入到输出的转换过程是由LTL公式编辑器实现的,其中包括性质规约模式范围选择器,支持用户选择性质约束的使用范围;性质规约模式分类器将模式库中的性质规约模式进行分类处理,用户可根据需要选择合适的性质规约模式;模式到LTL公式的映射模块,实现根据性质规约模式生成LTL公式的模板;在映射过程中,用户对LTL公式进行配置,实例化LTL公式中的变量,最终都得到实例化后的LTL公式。LTL公式编辑器的设计采用了模式重用的思想,根据模式提供的信息生成公式定义模板,为用户生成LTL公式提供了大量辅助信息,最终实现以模板的方式生成形式化的LTL公式,以提高生成公式的正确性和效率。根据性质规约模式所描述的系统行为的种类,Dwyer性质规约模式可分为两大类发生(Occurrence)类模式和次序(Order)类模式。在本发明的具体实施8方式中,性质规约模式的分类如图3所示。每种规约模式的特性参见表l,根据规约模式的特性,用户可以选择合适的规约模式来表达需要验证的系统性质。表1性质规约模式所对应的LTL公式<table>tableseeoriginaldocumentpage9</column></row><table>3)满足T和P的状态可能是同一个状态;Response模式表示了因果关系,其中P表示原因,T表示结果;RAfterLUntilR[](丄A,及—(P4(,i)u(71A,JUniversality事件或条件P在感兴趣的范围内的每一个状态处都能被满足GlobalBeforeRAfterLBetweenLandRAfterLUntilRi—(尸,—[](P))[]((ZA(,及)A0i)4(尸,[]((丄A(,i))4(酒))在表1中给出了每种性质规约模式在不同的使用范围下,其所对应的LTL公式的具体表示形式以及该模式的特点。此外,每种性质规约模式可能有五种使用范围,如图4所示。在图4中,阴影部分表示在程序执行的这段范围内,该性质规约模式有效,其中R,Q表示给定的事件/条件。全局范围(Global)表示在整个程序执行范围内,模式均有效;BeforeR表示程序执行到R第一次出现以前,模式一直有效;AfterR表示程序执行到R第一次出现后,模式一直有效;BetweenQandR表示程序执行在Q第一次出现和R的下一次出现之间时,模式有效;AfterQuntilR表示在Q的第一次出现,且直到R出现之间,或者直到程序执行结束,在这期间,模式有效。范围可以进行参数化,例如全局范围没有参数,而Before和After范围有一个参数,Between和After—until有两个参数,这种参数化的表示方式,为定义模式的使用范围提供了很大的灵活性。例如,若Response模式的使用范围是AfterR,则在程序执行过程中,给定的事件/状态R发生之后,Response模式才有效。通常,性质规约模式的使用范围是由该模式的开始和终止状态决定的。由于模型检查器SPIN的显著优点是能够在检查到错误时,自动生成反例路径,用于描述导致错误产生的系统执行路径。为了便于用户分析该反例路径,定位错误,因此使用扩展的UML顺序图描述反例路径,实现反例路径的可视化。10如图5所示,在上述检测系统架构下,基于性质规约模式生成描述系统性质约束的LTL公式的具体步骤如下-步骤SlOl,选择性质规约模式的范围用户根据需要选择性质规约模式的有效范围,该范围是由状态的开始和终止状态决定的;步骤S102,选择性质规约模式,根据系统需要满足的性质的特征(见表l),选择合适的性质规约模式,当用户选择某个模式后,关于该模式的详细说明信息被展现出来,用于帮助用户理解该模式的含义,为用户选择合适的规约模式提供参考信息;步骤S103,选择发生类模式或者次序类模式;步骤S105,配置LTL公式;步骤S106,验证LTL公式;步骤S107,判断是否满足系统模型,如果满足则结束验证,如果不满足,则进入步骤S108;步骤S108,修改模型。在上述步骤中,涉及到生成性质规约模式所对应的LTL公式,则是根据表1中所列出的性质规约模式在不同的使用范围下与LTL公式之间的对应关系,可以确定前述步骤中生成的性质规约模板所对应的LTL公式的具体形式,然后用户根据性质约束所涉及到的建模元素,对LTL公式中的变量如P,S进行实例化。如果满足所述系统模型要求,怎结束验证,如果不满足,则返回修改系统模型。本发明技术方案中提供的LTL公式编辑器,支持以模板的方式生成LTL公式,允许用户对LTL公式进行配置、实例化,构建性质规约模式库,支持性质规约模式的重用。例如,在一个验证测试例子中,建模者根据用户需要,在为本发明的技术方案实现的辅助工具帮助之下,逐步生成LTL公式的定义模板的过程可以如以下步骤展开1)选择性质规约的使用范围,如全局global范围、before范围等,该例子中选择的是全局范围,表示在系统的整个运行过程中该模式都有效;通常,范围是由起始和终止状态决定的;2)根据用户需求选择合适的性质规约模式,该例子所需要验证的性质满足反应式模式Response,因此,在Order模式类中选择该模式;113)生成性质规约模式所对应的LTL公式,并从模型中抽取相关的信息,实例化LTL公式中的变量,从而得到用于描述系统性质的LTL公式;4)调用验证命令,实现验证系统模型是否满足LTL公式所表示的系统性质。验证结果表明,系统模型满足用户定义的LTL公式[](ver砂P/iV—Fw砂/"gCaW&&Kn)^rtgP/AO,没有发现错误。此外,如果用户需要定义的性质约束,无法使用现有的性质规约模式来表示的话,可以通过LTL公式的编辑界面,手工定义具体的LTL公式。当然这一操作过程通常需要用户具有足够的时态逻辑方面的知识,对于高级用户而言是可以进行操作的。根据时态逻辑的相关知识,可以得到下面的推导过程-.(P力[](,尸v"[卜Pv[]s由此,Response模式所对应的LTL公式[]O—<>力等价于ov[]<>;y。ATM例子中系统模型需要满足的性质约束实际上也等价于[],wr砂尸/7V~>[](Fmj5;/"gCaW&&Fmj^"gP/A0,显然后者所含的子公式的个数要多些。使用LTL公式的定义模板,由用户手工定义LTL公式时,很可能得到这种较复杂的LTL公式形式,而对该公式进行验证的结果亦可以在所述工具软件中观察。总之,本发明对在模型驱动式软件开发过程中,可以获得构建高质量的系统模型的效果,具体是-1.在建模过程中,集成形式化的模型检测技术,验证UML模型的正确性,能够有效地提高系统模型的质量,从而确保最终生成的代码的质量,为开发高质量的软件系统提高了一种有效的方法。2.利用已有的模型检测器SPIN作为模型检测引擎,能够将形式化的模型检测技术封装起来,从而使得开发者无需了解复杂的模型检测技术,就能12够使用已有的模型检测器,促进形式化的模型检测技术在软件开发过程中的广泛应用。3.基于性质规约模式自动生成LTL公式定义模板,实现了性质规约模式的重用,为开发人员高效、准确地定义形式化的LTL公式提供了一种便捷的途径。4.可视化的反例路径分析,为用户分析、定位错误提供了方便。权利要求1、一种基于性质规约模式生成LTL公式的UML模型检测系统,其特征在于,包括UML状态图,用于描述模型对象生命周期中状态的变迁;模型编辑器,用于描述UML建立系统模型过程中的系统需求;模型转换器,用于将所述的UML状态图转换为以SPIN作为模型检测器的输入语言PROMELA;模型检测器,用于验证系统的正确性、安全性、活性以及所述LTL公式描述的系统性质约束;LTL公式编辑器,用于基于性质规约模式自动生成LTL公式定义模板,并由用户定义、配置该性质规约模板,最终将生成的LTL公式输入到所述模型检测器中,验证LTL公式;以及结果分析器,用于当发现所述系统模型中存在错误时,生成反例路径用以描述导致系统产生错误的执行路径时,根据反例路径生成扩展的顺序图,刻画所述系统模型执行过程中的消息交互情况,为用户修改该系统模型提供支持。2、如权利要求1所述的基于性质规约模式生成LTL公式的UML模型检测系统,其特征在于,所述的LTL公式编辑器包括模式库,用于保存预定义的所有性质规约模式LTL公式编辑器输入模块,用于输入所述系统模型需要满足的性质约束;性质规约模式范围选择器,用于支持选择性质规约的使用范围;性质规约模式分类器,用于将模式库中的性质规约模式进行分类处理,使得可根据需要选择合适的性质规约模式;模式到LTL公式映射模块,用于实现根据性质规约模式生成LTL公式模板;用户配置LTL公式模块,用于实例化LTL公式中的变量;得到实例化的LTL公式;LTL公式编辑器输出模块,用于输出LTL公式的实例。3、一种基于性质规约模式生成LTL公式的UML模型检测方法,其特征在于,包括以下步骤生成UML状态图,模型对象生命周期中状态的变迁;通过模型编辑器描述UML建立系统模型过程中的系统需求;通过模型转换器将所述的UML状态图转换为以SPIN作为模型检测器的输入语言P顧ELA;采用LTL公式编辑器,基于性质规约模式,自动生成LTL公式定义模板,并由用户定义、配置该性质规约模板,最终将生成的LTL公式输入到所述模型检测器中,验证LTL公式;利用模型检测器,验证系统的正确性、安全性、活性以及所述LTL公式描述的系统性质约束;最后通过结果分析器,当发现所述系统模型中存在错误时,生成反例路径用以描述导致系统产生错误的执行路径时,根据反例路径生成扩展的顺序图,刻画所述系统模型执行过程中的消息交互情况,为用户修改该系统模型提供支持。4、如权利要求3所述的基于性质规约模式生成LTL公式的UML模型检测方法,其特征在于,所述的LTL公式编辑器以如下步骤对所述UML模型检测-选择性质规约模式的使用范围;选择性质规约模式;选择发生类模式或者次序类模式;配置LTL公式;验证LTL公式;如果满足所述系统模型要求,则结束验证,如果不满足,则返回修改系统模型。全文摘要本发明涉及模型驱动式软件开发领域中一种基于性质规约模式生成LTL公式的UML模型检测系统和方法,其特征在于,包括UML状态图、模型编辑器、模型转换器、模型检测器、LTL公式编辑器,基于性质规约模式自动生成LTL公式定义模板、并由用户定义配置该性质规约模板,最终将生成的LTL公式输入到所述模型检测器中,验证LTL公式,并对验证结果进行分析。在系统建模过程中,基于性质规约模式生成描述系统性质约束的LTL公式,并使用模型检测器验证UML状态图建模的系统动态行为是否满足LTL公式,检查UML模型是否满足系统所期待的性质约束,实现在建模阶段构造出高质量的系统模型,从而提高最终生成的软件系统的质量。文档编号G06F9/44GK101504605SQ20091004716公开日2009年8月12日申请日期2009年3月6日优先权日2009年3月6日发明者静刘,宫学强,玲尹,曹虹华,杜德慧,越谢申请人:华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1