论文部分内容阅读
在软件工程日趋发展的今天,随着系统规模的不断扩大,软件应用越来越广泛,软件开发过程也越来越灵活。与此同时,软件的开发难度也越来越大,软件的质量难以得到保障。在模型驱动的软件开发过程中,系统分析人员通过对需求进行理解分析,设计相应的模型,通过模型精化,最终期望能由模型自动生成代码。在现阶段,模型主要是帮助软件设计与开发人员理解、分析系统,尚不能够完全由模型直接生成可用代码,代码仍需由软件设计与开发人员在对模型进行分析理解后人工编写补充,这就可能引起模型与代码间存在不一致的情况。因此,保证实现模型与代码间的一致性,具有重要的意义。本文在统一建模语言(UML)2.0交互概观图和顺序图的指导下,构建直观且富有表现力的基于场景的规约,并提出了用于UML交互模型与Java程序动态验证的方法,用于异常一致性和强制一致性验证。异常一致性规约要求在程序执行过程中从不发生由给定交互概观图所描述的禁止的场景,而强制一致性规约要求如果在程序执行过程中发生了由给定顺序图描述的参考场景,则程序执行轨迹也必须立即遵守由给定交互概观图所描述的场景。如何正确、高效地提取模型与代码中的关键信息,以及如何有效地判断模型与代码的一致性,是本文研究的重点内容。本文所描述的动态验证的方法主要由三个步骤组成。首先,分析解析UML交互模型,提取交互概观图与顺序图中对象交互的关键信息;然后,对待验证的Java程序进行插桩,以便跟踪记录程序执行过程中对象的交互事件;最后,在给定基于场景的规约中,设计一致性验证算法,检查程序执行轨迹与UML交互模型中的消息是否一致,完成基于UML交互模型与Java程序的动态验证。本方法集成在了 UML建模工具UMLet中,为建模和验证的一体化提供了工具保障。