论文部分内容阅读
在统一建模语言(Unified Modeling Language)UML2.0规范中,模型的语法是通过元模型以类图形式定义的,静态语义用对象约束语言(Object Constraint Language)OCL描述,动态语义直接用英文的自然语言表达。采用这种方法描述的动态语义,存在着不完全、不一致、模糊性等缺陷,为软件开发的后续工作带来了不利影响:不利于对复杂系统的模型进行严格的语义分析和正确性验证。顺序图是统一建模语言UML定义的动态图中最重要的图形之一,给出其准确、完整、一致的语义将有利于对复杂系统的模型进行严格的语义分析和正确性验证,从而给软件的后续开发提供帮助。UML 2.0版本定义的顺序图用来描述对象之间的动态交互关系,着重体现对象间消息传递的时间顺序却没有严格的时间限制,因此用一个合适的时序逻辑描述语言来给出它的语义是可行的。XYZ/E是一个可执行线性时序逻辑语言,既可描述系统的动态行为又可表示程序性质。对顺序图进行形式化规约后,就可在统一的时序逻辑框架下分析顺序图的性质。UML2.0顺序图的组成元素用XYZ/E很难直接表示出准确、完整、一致的语义,因此本课题的一个关键任务就是找出一个可用XYZ/E直接表示出语义的中间模型,将顺序图转换成这个中间模型后再用XYZ/E描述该模型的语义,从而间接地描述顺序图的语义。本文采用控制流分析方法构造一个中间模型。在UML2.0提供的六种基本类型的活动包(可看作是特殊的控制流图)中选择结构化活动图做为基础,根据顺序图的控制流设计一个扩充了的结构化活动图模型一并发控制流图(Concurrent Control Flow Graph)CCFG作为中间模型。用OCL做为形式语言,定义了从顺序图到CCFG的一组转换规则。然后用XYZ/E给出了一个基于CCFG的UML2.0顺序图的时序逻辑语义。最后,通过案例研究说明该方法的使用及其可行性。