




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东大学硕士学位论文 摘要 统一建模语言( u m l ) 已经成为面向对象建模事实上的工业标准,用于大型 复杂系统。随着被建模系统越来越复杂,模型一致性问题也变的更加突出。目 前,多数的u m l 建模工具并没有提供一个好的一致性管理框架,用户不得不人 工检查模型的一致性,这无疑增加了设计人员的负担,而且模型质量也很难保 证。因此,建立一个高效、柔性的一致性管理框架已经成为提高模型质量、确 保模型可实现性的迫切要求 本文首先介绍了u m l 语言的四层元模型结构,通过对u m l 语言特点的分析 指出了u m l 模型一致性问题产生的原因。然后简要介绍了一致性问题研究现状, 并对现有的一致性检测方法进行了归纳和总结,通过分析,指出了各自的优缺 点。在对一致性问题分析的基础上,分别从语言和模型的角度对一致性问题进 行分类。 要进行模型一致性检测,必须增加u m l 的语义约束,消除u m l 内在的不确 定性,但是为了更好的利用现有的可视化建模工具,本文采用了u m l 标准扩展 机制对u m l 元模型进行扩展,利用扩展后u m l 元模型对特定应用进行建模,然 后通过o m g 的元模型交换机制( ) ( m i ) 将u m l 元模型和所建模型分别转化为x m l d t d 和x m l 文档,再利用对象关系映射机制将基于x m i 表示的元模型和模型导 入关系数据库。同时用数据库查询来表示一致性规则,根据用户定制的检测策 略,执行相应的查询,完成一致性检查,并将结果反馈给用户,提出相应的修 改建议。本文提出的一致性检测框架既保证了模型的通用性,又充分利用关系 数据库高效、强大的查询和数据分析功能,具有较高的实用性。文章的最后为 全文做了总结和展望,指出了不足和下一步的研究方向。 关键词:u m l 、一致性、x m i 山东大学硕士学位论文 a b s t r a c t t h eu n i f i e dm o d e l i n gl a n g u a g ec l i m l ) h a sb e c o m ead e - f a c t oi n d u s t r i a l s t a n d a r df o ro b j e c t - o r i e n t e dm o d e l i n go fl a r g e ,c o m p l e xs y s t e m s t h ep r o b l e mo f m o d e lc o n s i s t e n c yi sb e c o m i n gt h em o r ea n dm o r ep r o m i n e n ta st h em o r ec o m p l e x o ft h em o d e l e ds y s t e m u n t i ln o w , t h em o s to fu m lm o d e l i n gt o o l sf a l ls h o r to f p r o v i d i n gac o m p r e h e n s i v ec m f ( c o n s i s t e n c ym a n a g e m e n tf r a m e w o r k ) ,a n dt h e c h e c k i n go fm o d e li n c o n s i s t e n c yi s s t i l lc o m p l e t e db ym a n p o w e r , s oi tm u s t i n e v i t a b l yi n c r e a s et h ew o r k l o a do ft h ed e v e l o p e r s ,a n dm a k et h eq u a l i t yo ft h e m o d e l sd i f f i c u l tt oe n s u r e t h e r e f o r ee s t a b l i s h i n ga ne f f e c t i v ea n df l e x i b l ec m fh a s b e e nm o r ea n dm o r eu r g e n tt op r o m o t et h em o d e lq u a l i t ya n de n s u r et h er e a l i z a b i l i t y o f t h em o d e l i nt h i sa r t i c l e ,a tt h eb e g i n n i n gt h ef o u r - l a y e rm e t a m o d e ls t r u c t u r eo fu m l l a n g u a g ei si n 仃o d u c e d ,a n dt h er e a s o n so fp r o d u c t i o no fu m l m o d e lc o n s i s t e n c y p r o b l e mt h r o u g ha n a l y z i n go ft h ec h a r a c t e r i s t i c so fu m ll a n g u a g ea r ep o i n t e do u t t h e nt h er e s e a r c hs t a t u si nq u oo fu m lc o n s i s t e n c yp r o b l e mt h ec u r r e n t c o n s i s t e n c yc h e c k i n gm e t h o d sa r er e v i e w e da n ds u m m a r i z e di nb r i e f a st h e f o l l o w i n g ,t h ec o n s i s t e n c yp r o b l e m sa l ec l a s s i f i e df r o mt h ep o i n to f t h el a n g u a g ea n d m o d e l b e f o r et h em o d e lc o n s i s i t e n c yb e e nc h e c k e d ,s e m a n t i cr e s t r i c t i o nm u s tb e e n h a n c e dt oe l i m i n a t et h ea m b i g u i t yi n h e r e n ti nu m l b u ti no r d e rt ou t i l i z et h e c u r r e n tv i s u a lu m lm o d e l i n gt o o l sm u c hb e a e r ,u m ls t a n d a r de x t e n s i o n m e c h a n i s m sa r ea d o p t e di nt h i st h e s i st oe x t e n dt h eu m l m a t e m o d e l ,t h e nt h e e x t e n d e du m lm e t a m o d e li su s e di nm o d e l i n gf o rt h es p e c i f i ca p p l i c a t i o nf i e l d s ,a s t h ef o l l o w i n gt h eo m gx m ic a nb eu s e dt ot r a n s f o r mt h eu m lm e t a r n o d e la n d m o d e li n t ox m ld t da n dx m ld o c u m e n t ,w h i c ha r e i m p o r t e d i n t ot h e c o r r e s p o n d i n gd a t a b a s es c h e m aa n dt a b l et h r o u g ht h eo b j e c t - r e l a t i o n a lm a p p i n g m e t h o d a tt h es a n e t i m e ,c o n s i s t e n c yr u l e sc a l lb ee x p r e s s e db yt h ed a t a b a s e q u e r i e s ,t h e na c c o r d i n gt ot h ec h e c k i n gs t r a t e g yc o n s t i t u t e db yt h eu s e r , t h e i i 山东大学硕士学位论文 c o r r e s p o n d i n gq u e r i e sw i l lb ee x e c u t e da n dt h ec o n s i s t e n c yc h e c k i n gi sc o m p l e t e d l a s t l yt l a e u s e rg e tt h ef e e d b a c ko nt h ec h e c k i n gr e s u l ta n dt h ec o r r e s p o n d i n g m o d i f i c a t i o ns u g g e s t i o n t h i sk i n do fu m lc o n s i s t e n c yc h e c k i n gf r a m w o r k d i s c u s s e di nt h i st h e s i s w h i c hh a sm o r ep o w e r f u lp r a c t i c a b i l i t y , c a l ln o to n l ye u s u r l ; t h eg e n e r a l i t yo ft h em o d e l ,b u ta l s ou t i l i z es u f f i c i e n t l yt h eh i g h - e f f i c i e n c ya n d p o w e r f u lc h e c k i n ga n dd a t aa n a l y z i n gf u n c t i o no f t h ed a t a b a s e a tl a s to ft h et h e s i s , t h es u m m a r i z a t i o na n dp r o s p e e t a t i o nf o ro b rr e s e a r c ha r cm e u t i o n e d ,a n dt h e s h o r t c o m i n g so f o u r t h e s i sa n dt h ef o l l o w i n gr e s e a r c hg o a la g ep o i n t e do u t k e y w o r d s :u m l 、c o n s i s t e n c y 、x m i i l l 原创- i 生声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:查塑室日期: 讼o s 年4 9s 日 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保留或向国 家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅:本人授权山 东大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或其他复制手段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:妞导师签名: e t 期:查:生 山东大学硕士学位论文 1 1 课题的背景及意义 第1 章引言 最近的十年,随着企业级的分布式应用飞速发展,带来了对系统性能、可 伸缩性的严格要求,大量分布式系统的出现,以及众多异构平台的整合需求, 促进了中间件技术的飞速发展,过去的十年,是企业应用系统和中间件技术的 十年。人们不再像汇编的时代那样关心一点一滴的内存得失,而开始把更多的 精力用于搭建灵巧的架构、实现变化多端的业务逻辑。 五十年的计算发展史也证明了这样一个事实,那就是入所需要考虑的计算 的层面越来越抽象,越来越集中于业务逻辑而非在计算平台上的实现细节,抽 象的根本原因是软件越来越复杂,复杂到人脑已经不能同时把握原有抽象层面 上所有的细节,而软件的复杂性根源于软件所解决的问题的复杂性,而且随着 计算机越来越多地应用,所能处理的问题也熄越来越复杂,因此软件的复杂化 已成为一种必然趋势,抽象也渐渐成为不可逆转的方向。对复杂问题抽象的最 好办法就是对其建立模型,模型提供了一个物理系统的抽象,模型可以让系统 开发人员抛开无关的细节,而把注意力放到系统的重要部分来思考系统,并对 系统的体系结构进行可视化和控制,还可以借助建模来分析和管理项目的风险。 每个系统都可以从不同的方面用不同的模型来描述,每个模型都是一个在语义 上闭合的系统抽象。模型可以是结构的,强调的是系统的组织:也可以是行为 的,强调的是系统的动态方面。 现代软件开发大多以面向对象的角度进行建模,采用对象或类作为其主要 构造块。面向对象的方法可以使人们扶尽可能自然的角度认识这个世界。此外, 任何模型都需要语言来对其进行描述,为了便于理解和交流,人们迫切需要一种标 准的可视化的建摸语言,统一建模语言( u n i f i e d o d e l i n gl a n g u a g e ,简称u m l ) 是2 0 世纪8 0 年代末9 0 年代初出现的面向对象分析与设计( o o a & d ) 方法浪潮 的产物,它直接统一了g o o c h 、r u r b a u f h 以及j a c o b s o n 方法,并于】9 9 7 年1 1 月,被o m g 全体成员一致通过,成为o m g 标准。经过多年的不断完善,u m l 已经成为软件设计和建摸的事实上的表示法。u m l 的优势主要体现在可以使用 单一的集成的表示法来对系统的多个方面进行建模,范围从结构( 侈如类图) 到行为( 例如:交互图) 。 但是,u m l 的上述优点也不可避免的带来了一致性问题,首先作为通用的 建模语言,就会允许对模型存在多种解释,因此其表达有可能与目标领域的语 义要求不符此外,由于d m l 采用多视图表示,而这些视图并不是孤立存在, 彼此间相互关联,存在信息的冗余和相互交织 5 ,这些冗余信息间也可能存在 山东大学硕士学位论文 不一致。 为什么我们需要检查u m l 模型的一致性? 目的有两点,首先,检查模型一 致性是为了保证模型的正确性。通常,一致性问题体现了设计的错误或者错误 的使用u 甩。而这些问题在设计过程中越早被发现,越容易被修改,而且比在 后续阶段发现付出的代价更小。第二点,是为了保证模型的可实现性,通常是 指将u m l 模型转换成一种编程语言,一种精确的、无二义的表示。这两点在迭 代式歼发过程中显得非常重要,在这个过程中,模型的构造是渐增的,从需求 开始,直至最后生成代码。这个过程通常包括多个视点,通常由多个设计人员 完成,如果没有一致性分析,将很难确定模型能否正确的演进,也不能确定相 互协作的设计人员的工作是否统一。 然而,目前大多数的u m l 建模工具并没有提供一个全面的一致性管理框架 ( c o n s i s t e n c ym a n a g e m e n tf r a m e w o r kc m f ) 。构造一个好的c m f 是非常重要的 9 。这个框架应该是柔性的,允许不同的配置,可以扩展,允许加入新的约束。 它还应该支持批量检查模式和用户定制模式。同时应该在表达上对用户非常友 好,使得使用者能够很容易的表达约束。此外,这个框架应该是高效的,也就 是说,能够处理不同规模的模型,快速的完成分析,准确的给出检测结果。同 时还希望这个框架可以提供一致性修正操作,能够对设计给出辅助的提示。 要断定是否满足一致性,就要给出验证的依据。就像其他语言,u m l 有自 己语法和语义。u m l 模型的语法正确性和良构性通常是后续一致性分析的前提 条件。语法是保证模型可读以及可以被验证。例如,“一个类在模型中只能有一 个唯一的名字”就是一个语法上的要求。如果不能保持模型的良构性,通常会 导致模型表达模棱两可。另外语义不完整也可能导致二义性。因为u m l 本身不 是个完全形式化的语言,而相当多的u m l 模型最后都需要被转化成一种形式化 表示,比如源代码。通常在这种转化完成前,需要经过一系列的细化过程。语 法有助于语言的可读性,语义则对语言构件赋予含义。然而,有些u m l 的语义 并没有被明确定义,例如在多继承下,同名的属性如何继承等。这样可能会产 生多种解释 1 0 在语义层上的一致性是确保一个u m l 模型的完整的所需要的, 通常也是将模型转化到一种形式化表示时需要的 9 3 。 模型语法和语义正确,是u m l 一致性基本的要求。其一致性要求还可以通 过使用u m lp r o f i l e s 进一步加以扩展。u m lp r o f i l e s 是一种标准的用于扩展 u m l 的机制,它包括一系列的衍型( s t e r e o t y p e s ) 来丰富u m l 在特定领域的语 义。例如,在u m l 实时p r o f i l e 1 1 中包含衍型“c a p s u l e ”,当把该衍型用于 某个类时,就表示这个类是活动的,即它拥有控制线程。它同样表示这个类可 以通过其公共端口和其他的c a p s u l e s 排他的通讯,这些端i z i 是用来实现特定的 协议角色的一些属性。此时,可以通过检查c a p s u l e s 之间的消息,看其端口是 否与实现相同协议的端口相一致来检查一致性。 山东大学硕士学位论文 事实上,u m l 一致性分析已经超越了检查语言自身的语法和语义。通常还 包括相关领域,如建模方法,目标编程语言,被建模系统等h 2 。多数建模语 言,包括u m l ,都有自己的表达方法和好的惯例,指导语言在不同开发周期中 的使用这些好的惯例多为建模方法的产物。为了正确使用这些惯例通常要对 语言强加一些约束,这样可以减少表达的含义模糊。其他u m l 模型所需依据的 颁域还包括建模领域、应用领域和执行领域。由于u m l 是一含通用的建模语言。 其合法的表达式在这些领域并不一定都有意义。例如,在j a v a 语言中不支持类 的多重继承。因此当模型需要转换到j a v a 语言时,就要对这些概念的使用加以 限制。类似的例子还包括模式,比如模型视图控制模式( m v c ) 1 3 ,使用这个 模式时,模型中的类不应该直接或间接的依赖控制器类,因此,为了帮助建模 者在相关领域内正确的使用u m l ,强加一些相关约束是必要的。 近几年,随着a ( m o d e ld r i v e na r c h i t e c t u r e 模型驱动框架) 方法的提 出,使得系统开发的重点转移到对系统的精确建模和模型转换上。为了实现模 型间的自动转换,就要求模型必须具备完备性、一致性、无二义性。因此,模 型一致性的检测成为设计人员必须解决的一个重要问题 6 7 ( 8 】。建立一个柔 性的一致性管理框架对于保证软件设计的质量,以及实现模型的自动转换都起 着至关重要的作用。 1 2 本文的工作与创新 1 通过对模型一致性问题产生原因的分析,给出模型中一致性问题的分 类。 2 分析模型一致性检测所面临的问题,提出了一种基于x m i 和数据库查 询的致性管理框架。 1 3 本文的组织 第一章是前言部分,介绍了课题的研究背景、意义以及所做的工作:第二 章介绍了u m l 语言的体系结构及定义方式,指出了一致性问题产生的原因, 然后介绍了目前一致性问题研究现状,并对一致性问题的检测方法进行了归纳 和分析;在前两章的基础上,第三章给出了一致性问题的分类方案。第四章酋 先分析了构建模型一致性管理框架所面临的挑战,给出了一致性管理框架应该 满足的要求。第五章给出了基于数据库查询的模型一致性管理框架及其实现方 法,并对该框架所采用的模型跌射方法做了深入的分析。第五章总结了全文, 指出了本文没有解决的问题,并对下一步的研究工作做了展望。 山东大学硕士学位论文 第2 章u m l 模型一致性问题概述 2 1u m l 语言体系结构及定义方式 2 1 1u m l 四层元模型体系结构 u m l 的体系结构基于一个四层元模型结构,其中包括用户对象、模型、元 模型、和元一元模型四个层次。在u m l 规范的“u m l 语义”部分对这四个层次 的解释如下: 元一元模型( m e t a - m e t a m o d e l ) :用于元模型体系结构建模的基础结构 ( i n f r a s t r u c t u r e ) 。定义了说明元模型的语言。例如元类( m e t a c l a s s ) 、元属 性( m e t a a t t r i b u t e ) 、元操作( m e t a o p e r a t i o n ) 都属于该层。 元模型( m e t a m o d e l ) :元一元模型的一个实例。定义了一个说明模型的语 言。例如类( c l a s s ) 、属性( a t t r i b u t e ) 、操作( o p e r a t i o n ) 、组件( c o m p o n e n t ) 等都是属于属于改层。 模型( m o d e l ) :元模型的一个实例。定义了一个描述信息领域的语言。 用户对象( u s e ro b j e c t ) :模型的一个实例,定义了一个特定的信息领域。 元一元模型层是元模型体系结构的基础。其主要职责是定义一种语言用来 描述一个元模型。该层通常用m 3 表示,m o f 1 4 就是一个元一元模型的例子。一 个元一元模型通常比元模型的描述更简洁,而且通常定义多个元模型。 元模型是元一元模型的实例,这就意味着每一个元模型中的元素都是元一元 模型中一个元素的实例。元模型层的主要职责是定义一个用来描述模型的语言。 该层通常用m 2 表示;u m l 和o m g 的c w m ( c o m m o nw a r e h o u s em e t a m o d e l ) 模型 都是元模型的例子元模型通常比用来定义它们的元一元模型描述更加详细,尤 其是当它们定义动态语义时。u m l 元模型是m o f 的一个实例。 一个模型是一个元模型的实例。模型层的主要职责是用来定义描述各领域 的语义的语言,例如允许用户对各种不同的领域问题建模,如软件、商业过程 以及需求等。该层通常用m 1 表示。一个用户模型是u m l 元模型的一个实例。这 个用户模型既包括模型元素也包括这些模型元素实例的简要说明( s n a p s h o t s ) 。 在元模型体系结构的最底层是m 0 层,包含运行时模型中定义的模型元素的 实例。那些定义在 f 1 层中的简要说明被用作对m 0 层运行时实例的约束。下面 给出一个该四层结构的例子 4 山东大学硕士学位论文 m 栅哟由 图2 - 1 四层元模型体系结构的例子 当处理多于3 个元一层时,越是在该体系结构中的位置考上的层,其描述会 越来越简洁,其规模会越来越小。以m o f 为例,它处于m 3 层,只是在u m l 中定 义了一些元类。在建立元模型时,有一个特殊的地方是关于定义语言的反射 ( r e f l e c t i v e ) 特性,即语言可以被用来定义自身。u m l 中的 i n f r a s t r u c t u r e l i b r a r y 就具有这样的特性,它包含了定义自身所需的所有元 类。当一个语言是反射的,就不需要再定义其他语言来描述其语义。因为m o f 是基于i n f r a s t r u c t u r e l i b r a r y 的,所以m o f 是反射的,因此不需要在m o f 上 构建其他元一层。 1 1 5 2 1 2u m l 四层元模型体系结构存在的问题 u m l 规范中说,它的元模型是从抽象语法、良构规则、语义三个视角,用 山东大学硕士学位论文 半形式化( s e m i f o r m a l ) 的方式来描述的,三者分别定义u m l 的语法、静态语 义和动态语义。 在形式化语言研究领域,迄今大部分成果和成熟技术是关于严格的形式化 描述的。衡量一种语言是不是形式化的,关键在于它的语法是不是采用严格的 形式化描述。至于语义的描述则允许是非形式化的。 u m l 的抽象语法是用一个由u m l 的子集所描述的模型给出的,其中包括u m l 类图和“支撑自然语言”描述。对u m l 的每个包,u m l 规范使用一个或多个类 图来表示其中的各种构造物以及它们之间的关系,然后用大量的自然语言文字 进行解释,如此定义每个包的抽象语法。除此之外,目前用于描述语言语法的 各种形式化手段( 例如巴克斯范式、乔姆斯基变换文法、自动机等等) 都没有 采用。 由于存在自然语言的描述,上述元一元模型和元模型都不是形式化的,用前 者描述后者也不像在形式化语言领域用一种元语言定义一种形式化语言那样严 格。因为u m l 元模型是一个逻辑模型而不是物理( 或实现) 模型,它强调语义 陈述而隐藏实现细节。u m l 需要定义类、属性、操作、关联、泛化、活动、状 态等一大批面向对象建模概念的语义,其他元模型( 例如接口描述语言i d l ) 也有这样的需要。因此,作为这些元模型共同基础的元一元模型就在更高的层次 上定义了陈述这些概念所需的基础概念。u m l ( 元模型) 只是在用自然语言陈述 自己提供的建模概念时引用元一元模型的概念,使其陈述显得较为精确。但是并 不是像一种真正的形式化语言那样,完全依靠一种形式化的元语言来定义整个 语言。u m l 规范称这种定义方式为“松散的( 非严格的) 元模型建模”,即m n 级模型是m n + l 级模型的一个实例。( 它所谓的“严格”的元模型建模,是指“m n 级模型的每一个元素都是m n + l 级模型的恰好一个元素的实例”,这也不是像定 义一种形式化语言那么严格。) u m l 采用这种松散的定义方式,主要是为了便于理解,但是却为模型的一 致性问题的检验带来了困难。 2 2u m l 模型一致性问题产生的原因 通过上面的分析可以看出,u m l 自身的不精确性会导致一致性问题的产生, 此外还有建模人员使用上的问题。我们将u m l 模型一致性问题产生的原因归纳 为以下几种: ( 1 ) u m l 自身语义的不确定性 由于u m l 目标是成为一种面向对象的通用的建模语言,因此为了增 加语言描述的灵活性和通用性,u m l 并没有采取完全形式化描述, 因此,对于同一种语义需求,不同的人可能采取不同的表达方式, 这些不同的表达之间可能存在一致性问题。 6 山东大学硕士学位论文 ( 2 ) u m l 多视图间的信息冗余 u m l 的多视图机制可以降低系统设计的复杂性,但是这些视图并不 是孤立存在,而是彼此间相互关联,存在信息的冗余,这些冗余信 息间也有存在不一致的可能。 ( 3 ) 违反标准、模式、规范等 对于标准、模式、规范等,在建模过程中,都是需要遵守的,这样 可以提高设计的质量和重用性。但是由于错误的理解或者使用,模 型的表达可能与正确的要求不一致。 2 3u m l 模型一致性问题研究现状 对于软件设计中的不一致性问题,通过研究,人们提出了多种处理方法, 其中比较突出的成果包括r o b b i n s 等提出的a r g o u m l 1 6 ;n e n t w i c h 等提出了 通过使用一阶逻辑来验证u m l 模型的x l i n k i t 1 7 ;c a s s 和o s t e r w e i l 提出基 于一致性管理的设计向导方法 1 8 。其他主要的成果还包括在需求分析中的 致性研究,尽管这些工作主要集中在需求说明 1 9 2 3 ,但是其很多思想却和 解决设计中的一致性问题相类似。 目前,对于一致性检测的方法,我们可以将其归纳为四种类别:第一类是 人工审查技术 2 4 。这类方法是以人工方式自顶向下对模型进行阅读,对模型中 任何可能导致信息不一致的因素进行评审。第二类,是试图完善u m l 元模型, 实现从一个模型元素更容易的访问与其相关的其他模型元素 2 5 。前面提到, u m l 缺少很多语义,或者只是以非形式化的文字形式进行描述,因此该类研究 就是想通过定义更加完善的元模型来尽量减少这种非形式化的语义描述。第三 类,是试图加强元模型中表达约束的语言。对象约束语言( o c l ) 2 就是一个 用来表达u m l 约束的语言 2 6 3 。该类研究主要集中在两个方向,一是如何加强 ( e l 的表达能力,更好的描述约束;另一个是定义一种新的语言或表达方式, 来描述所有的约束。第四类,也是研究最广泛的一类,提出接受u m l 内在的表 达的不确定性,同时提出,等将u m l 模型转换为一种更加形式化同时更便于分 析的表达后,再进行一致性分析。显然,要将u m l 模型转换到一个形式化的表 示,首先要通过一些语义范畴,对u m l 表达式的解释达成一致,以便消除其二 义性。该类方法中最重要的一点是当模型采用那些更加形式化的方法表示后, 是否有工具可以对其执行一致性分析。 2 4 一致。陛检测方法的分析 目前,关于一致性检测,有一件事已经基本达成共识,就是在分析模型一 致性前,需要减少u m l 内在的不确定。在上述四类方法种,第一类主要依靠人 工审核,这种方式的检查结果受人为因素影响较大,而且审查过程比较繁琐第 7 山东大学硕士学位论文 二类是通过形式化元模型来减少不确定性,通过修改或者扩展u m l 元模型达到 更容易的进行一致性检测。第三类方法试图通过拥有更好的约束来减少不确定 性,有些人建议扩展o c l ,他们认为现有的o c l 基本体不能充分表达所有的约 束;另外一些人建议使用其他的约束描述语言,比如图形一致性条件( g r a p h i c a l c o n s i s t e n c yc o n d i t i o n sg c c ) 2 7 。第四类,也是最常见的方法,建议将u m l 模型转换到一些形式化表示中,要求所选择的形式化表示要有好的工具支持。 下面,我们简要给出四种方法的优缺点,详见表2 1 。 方法 优点缺点 人工审查适应范围广 工作量大,检查结果受人 为因素影响较大 元模型法 自然的扩展语言 对选择的语义有着严格 的约定 约束法强化元语言,提供更好约束 实现较难,通常需要访问 一些不易提供的元数据 形式化表示法一致性检查相对容易实现,同时可有可能执行效率不高,和 以提供一致性管理框架工具集成比较困难 2 4 1 元模型方法 元模型方法试图对u m l 元模型定义一种完全形式化的语义。他们认为一个 更加形式化的u m l 可以更容易的进行一致性检测。他们将可以形式化的约束都 作为语法,只是将那些不能形式化的作为语义,例如:“附加在衍型上的约束不 能与其所继承的衍型的约束相矛盾,也不能与其相关的基类的约束相冲突” 1 2 。虽然o m g 已经通过元模型和o c l 良构规则定义了u m l 语言的语法,然而, 很多语义规则还是通过自然语言来描述的。因此,该方法是通过增加u m l 元模 型的表达力来减少非形式化定义的语义约束的数量 1 0 。该方向上贡献比较突 出是精确u m l ( p u m l ) 组织 2 s 。这个组织的且标是识别u m l 中不确定的区域, 然后为其定义精确的语义。其目标是确保每一个u m l 的元素都是完全的,这里 “完全的”含义是:有精确的语法,结构良好,以及在u m l 基础的核心语义模 型中有精确的含义。一旦一个模型元素是完全的,这个组织就会通过稳妥的修 改元模型或和添加o c l 约束来记录它。 另一个在改方法领域有着突出贡献的是o m e g a 组织 2 9 。这个组织目标是 选择一个充分表达的u m l 子集,即o m e g a 子集( 一个适用于实时嵌入式应用的 子集) ,然后为其赋予形式化语义,称为o m e g a 核心模型。基于这个核心,他们 定义了一个开发方法,用来定义如何利用形式化技术开发嵌入式系统。这里形 式化的目的是为了自动模型检查,合成以及使用定理证明技术。 山东大学硕士学位论文 另一个组织提倡扩展u m l 元模型 3 0 ,以便更好支持模型检查,进行模型 细化。他们研究的重点是不同抽象层次的不同模型间的一致性问题。他们通过 定义衍型和相关的o c l 约束来实现细化规则,用来识别不一致性。 2 4 2 约束语言方法 第一类方法是通过尽可能的加强u m l 元模型来处理一致性问题。而第二类 方法主要是通过提高约束定义语言的表达能力来形式化更多的语义约束。由于 目前u m l 采用o c l 来表达约束,该方法对o c l 有两种不同的观点,一种认为可 以继续保留o c l ,但必须增强o c l 表达能力。例如约束“标记值中的数据值必 须与标记值中类型属性所定义的数据类型相一致”就不能用o c l 来表示,因为 o c l 没有一个函数可以将一个数据字符串转化成一个元类型( m e t a t y p e ) e 1 0 3 。 o c l 另外一个不足是不能表达一致性修复规则和修复操作,而这些规则和操作 在自动修复不一致错误时是非常有用的。另一种观点认为目前的o c l 语法很难 使用,特别是对于没有建模经验的人 i o ,建议使用新的约束表示语言,但是 支持这种观点的人并不是很多。 文献 3 1 中提出了一种扩展o c l 的方法,并在 3 2 中得到应用。作者建议 通过引入动作子句( a c t i o nc l a u s e s ) 来加强o c l 的表达能力,其格式如下: i f t o s e n d 引入的动作( a c t i o n s ) 应该被用来描述操作,而且应该在后置条件时间运行。 这种扩展存在的问题是强迫建模者过早的提交执行的细节。下面举例说明如何 使用动作子旬,该例子描述了一个信用卡到期的情形: c o n t e s t :c r e d it c a r d i n v :v a l i d f r o m i s b e f o r e ( g o o d t h r u ) a c t i o n :i fg o o d t h r u i s a f t e r ( d a t e n o w ) c o n t e x t :c r e d i t c a r d :i n v a l i d a t e 0 p r e :n o n e p o s t :v a l i d = f a l s e a c t i o n :i fc u s t o m e r s p e c i a lt oc u s t o m e rs e n dp 0 1 i t e i n v a l i d l e t t e r ( ) a c t i o n :i fn o tc u s t o m e r s p e c i a lt oc u s t o m e rs e n di n v a l i d l e t t e r ( ) 因为从模型到元模型之间的导航经常是递归的, 3 3 建议添加一个传递闭包操 作符( t r a n s i t i v ec l o s u r eo p e r a t o r ) ,来适应这种情况。该操作符具有如下 语法: “给定一个类型为t 的集合e ,以及o c l 表达式f ( x ) 其返回值是类型为t 的元 素的集合,则表达式:e - c l o s u r e ( x :t l f ( x ) ) 指通过传递闭包函数f 返回元素 集合e ” 9 山东大学硕士学位论文 第二种扩展o c l 的方法是通过时态逻辑操作符( t e m p o r a ll o g i c o p e r a t o r s ) 3 4 3 5 3 6 来增强约束语言的表达能力。但是时态约束( t e m p o r a l c o n s t r a i n t s ) 应该从元模型层上的顺序或者状态图中表示,然而,这就需要设 计人员具备u 札元模型的知识,但是通常应用系统的设计人员并不具备这样的 知识。该扩展是基于运算树逻辑c t l ( c o m p u t a t i o n a lt r e el o g i c ) 的,c t l 表 达式是一个布尔表达式,因此可以通过扩展p r o p e r t y c a l l 的非终结在o c l 中实 现,其形式如下: p r o p e r t y c a l := “p o s s i b l y ”“f i n a l l y ”b l o c k e x p r e s s i o n “p o s s i b l y ”“g l o b a l l y ”b l o c k e x p r e s s i o n “p o s s i b l y ”? b l o c k e x p r e s s i o n u n t i l ”b l o c k e x p r e s s i o n 然而,执行这些操作符是需要指定上下文的,而且通常需要元素的元层 ( m e t a - l e v e l ) 信息。比如,在一个顺序图消息中执行操作符 “g l o b a l l y ( e x p r e s s i o n ) ”时,只要未来的每个消息都能满足,就返回真,但 这需要访问给定交互的消息集合。 2 4 。3 形式化表示方法 该类一致性检测方法认为,不确定性是u m 乙固有的,与其形式化元模型或 元语言,不如将u m l 模型用一个形式化语言来表示。这样做的好处是不但可以 利用这种形式语言的良构、成熟的特点,还可以充分利用该支持该语言的工具, 并将其用于一致性分析在该类方法有两种不同的方法,第一种方法是继续保 持模型的原有表示,保持其元模型不变,与此同时,并行的采用另一种形式语 言表示。前面提到,这种方法的一个闯题就是性能。也就是要考虑同步的保持 模型的两个拷贝,在内存、速度、复杂性等的代价。第二种方法是忽略模型的 元模型表示,只保留采用形式语言描述的模型,这个方法的问题是与已存在的 采用元模型表示模型的工具( 如r a t i o n a lr o s e 3 7 ) 不易集成。显然,如果 采用的形式化语言与元模型差别越大,与这些工具相集成的难度也越大。 在将模型从一种不确定的表示翻译到一种形式化表示的过程中,需要做一 些选择来消除那些不确定。而这些选择固化了那些不精确的语义因此,如果 这些选择不当,该过程有可能造成与某些语义领域不适应。所以,应该建立一 个机制来定制这个翻译过程,用来适应给定的语义领域。该方法面临的另一个 问题是可跟踪性。就是在新的形式化表示下检测到的不一致问题,有可能很难 在原来的语言表示的模型中定位 1 0 山东大学硕士学位论文 第3 章u m l 模型一致性分类方案 因为l o l l 的图形化、半形式化以及比较容易学习,因此它成为目前的主流 建模语言,常被用于设计的描述。我们可以从两个层次认识咖l 一致性问题。 第一个层次是从描述语言的角度来看待一致性问题,因为u m l 是一种语言,因 此它也满足通常语言的基本要求。第二个层次是从对目标系统构建一个实际模 型的角度看待一致性问题。此时的不一致问题是在实现设计概念中产生的。 3 1 从语言的角度分类 从语言的角度看,一致性问题分为语法一致性和语义一致性两种。如果一 个一致性规则可以用形式化语言来描述,就是语法的,反之,就是语义的。 i j m l 语言的语法是通过其元模型来表示的。i j m l 元模型是一个模式,它精确 定义了创建模型所需的构造物和规则。例如:个关联可以有两个或更多的关 联端。图3 一l 描述了一个类图的元模型,它是u m l 元模型的一个子集 1 。 山东大学硕士学位论文 球m团粼g酗辎恨一艺f1_【in匝 山东大学硕士学位论文 一个模型如果不能满足元模型,那么它是不一致的。然而,即便满足元模 型模型仍有可能不一致。这主要是由于u m l 元模型定义的元语言的表达能力。 为了对元语言进行补充,o m g 又给出了o c l ,一个高阶逻辑语言,用来对u m l 的 良构性做约束。o c l 是一个单纯的表达语言,用来检查对象及其结构,并返回 t r u e f a l s e 值,但是它并不修改模型。用o c l 表达的良构规则通常是进行更迸 一步的一致性检查所必须满足的前提条件。下面是一些用o c l 表达的良构规则 的例子 1 : 任何元素都不能直接或间接的包含自己 n o ts e l f a l l o w n e d e l e m e n t s0 - i n c l u d e s ( s e l f ) 被拥有的元素必须有一个拥有者 s e l f m u s t b e o w n e d ( ) i m p l i e so w n e r 一 n o t e m p t y ( )一 与其他形式化语言不同,u m l 的很多语义是没有被精确的定义,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开展全球品牌市场拓展提升国际影响力
- 压力差压变送器校准方案
- 2025年放射科医生影像报告书写准确性检测答案及解析
- 磷化工工业固废处理方案
- 描写自然风景的写人作文范例
- 2025年神经内科神经系统解剖模拟考试卷答案及解析
- 2025年肝胆外科手术常规操作规范答案及解析
- 2025年遗传医学的家族遗传病筛查模拟考试答案及解析
- 在线教育平台课程设计与评价
- 人工智能智能交通规划
- 2025年国家工作人员学法用法题库(含答案)
- 中秋国庆节假期安全教育安全防范不松懈宣传课件模板
- 级配碎石培训课件
- 2025年新团员入团考试试题及答案
- 第2课《中国人首次进入自己的空间站》课件-2025-2026学年统编版语文八年级上册
- 2025成人高等学校专升本招生统一考试政治试题及答案解析
- 新汉语水平考试 HSK(四级)
- 职业院校人才培养工作状态数据采集与管理制度
- T∕CGMA 033001-2018 压缩空气站能效分级指南
- 诊断学基础知识常见症状ppt课件
- 外研版六年级上册英语学案
评论
0/150
提交评论