(计算机科学与技术专业论文)uml模型可执行技术的研究.pdf_第1页
(计算机科学与技术专业论文)uml模型可执行技术的研究.pdf_第2页
(计算机科学与技术专业论文)uml模型可执行技术的研究.pdf_第3页
(计算机科学与技术专业论文)uml模型可执行技术的研究.pdf_第4页
(计算机科学与技术专业论文)uml模型可执行技术的研究.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国防科学技术大学研究生院学位论文 摘要 在软件开发初期,用u m l 对应用系统进行可视化建模,可以有效地辅助软件开发工 作。如何确认分析模型和设计模型的正确性,如何在软件开发初期对系统模型进行有效的 模拟和验证,成为软件开发人员所共同关注的问题。在利用u m l 进行面向对象的软件开 发过程中,还始终存在着一个模型与系统实现之间的鸿沟问题,虽然某些建模工具提供了 代码转换功能,但生成的代码仅是一个语言框架。 可执行u m l 和模型驱动体系结构均力求实现模型至代码的自动生成,通过对模型的 编译或代码的运行,实现对模型的模拟测试。但目前对这两方面的研究工作尚处于起步阶 段,还没有形成统一的标准,完全支持其开发的软件工具尚未出现。 本文在深入跟踪和研究模型驱动体系结构和可执行u m l 的基础上,对u m l 模型的可 执行技术进行了深入研究。本文充分利用可视化建模环境所提供的软件模型信息,提出了 模型至代码自动转换和模型模拟的详细过程:利用现有建模工具构建系统模型,主要包括 类图、顺序图、状态图、协作图,必要时还需构建活动图:提取和组织模型信息;由静态 模型的类图自动生成系统中各个类的语言框架,由状态图信息、协作图信息、活动图信息 生成对象动态行为部分的内容,即语言框架中各个方法的方法体:将这些代码进行组合 转换生成完整的程序代码;运行该程序,由执行输出,借助状态图可以直观地显示软件模 型动态行为的发生过程和执行结果,从而检查模型本身的正确性以及验证设计模型与需求 规范之间的一致性。最后,本文设计开发了一个模型至代码的自动转换工具,并结合一个 实例进行了分析。 关键词:u m l ,可执行u m l ,模型驱动体系结构,模型模拟,代码生成 第1 页 璺堕型兰垫查查堂竺窒尘堕兰堡堡圣 a b s t r a c t i ne a r l ys t a g e so fs o f t w a r ed e v e l o p m e n t ,av i s u a lm o d e l i n gb yu m l f o ra p p l i c a t i o n si sv e r y u s e f u li ns o f t w a r ed e v e l o p m e n t i tb e c o m e st h ec o r ec o n c e l t lo f m o s ts o f t w a r ee n g i n e e ra b o u t h o wt oc o n f i r mt h ec o r r e c t n e s so fa n a l y s i sa n dd e s i g nm o d e l s ,a n dh o wt os i m u l a t ea n dv e r i f y t h em o d e l si n e a r l ys t a g e s t h e r e i sa g a pb e t w e e nt h e m o d e la n ds y s t e me x e c u t i o ni n o b j e c t - o r i e n t e ds o f t w a r ed e v e l o p m e n t ,a l t h o u g hs o m em o d e l i n gt o o l sc a na u t o m a t i cg e n e r a t e c o d e ,t h ec o d ei sj u s tl i m i t e ds k e l e t o nc o d e , e x e c u t a b l eu m la n dm o d e ld r i v e na r c h i t e c t u r ea r eb o t hd e v e l o p e df o rt h ea u t o m a t i cc o d e g e n e r a t i o nf r o m t h em o d e l t h es i m u l a t i o na n dt h et e s to ft h em o d e li se i t h e rb y c o m p i l i n gt h e m o d e lo rb ye x e c u t i n gt h ec o d e b u tb o t ho ft h e mh a v e n tb e e ns t a n d a r d i z e d ,a n dt h et o o l c o m p l e t e l ys u p p o r t i n gt h e m s t i l lh a s n tc o m eo u t b a s e do nt h e s t u d yo ft h ee x e c u t a b l eu m l a n dm o d e ld r i v e na r c h i t e c t u r e ,t h i st h e s i s d o c u m e n t st h et e c h n o l o g yo ft h ee x e c u t a b l eu m lm o d e l t h ep a p e re m p h a s i z e so nh o wt o r e a l i z et h ec o d eg e n e r a t i o na n dm o d e ls i m u l a t i o nw i t ht h es u p p o r to ft h em o d e l i n gt o o l sn o w w i d e l yu s e d f i r s t ,m a k et h es y s t e mm o d e l s 、= v i 如t h em o d e l i n gt o o l ,w h i c hi n c l u d et h ec l a s s d i a g r a m ,t h es e q u e n c ed i a g r a m ,t h e s t a t ed i a g r a ma n dt h ea c t i v i t yd i a g r a mw h e n n e e d e d s e c o n d , g e n e r a t et h es k e l e t o nc o d ew i t ht h et o o lf r o mt h ec l a s sd i a g r a m n l i r d g e ta n do r g a n i z et h e m o d e li n f o r m a t i o n ,g e n e r a t et h em a i nf u n c t i o nf r o mt h es e q u e n c ed i a g r a m ,a n dg e n e r a t et h e b e h a v i o rc o n t e n to fe a c ho b j e c tf r o mt h es t a t ed i a g r a m ,f o u r t h ,g e n e r a t et h ew h o l ec o d eo ft h e p r o g r a mb yc o m b i n a t i o no f t h ec o d e sb e f o r e a tl a s t ,e x e c u t et h ep r o g r a ma n ds i m u l a t et h e m o d e l f r o mt h eo u t p u to fe x e c u t i o nw ec a l ls e et h ep r o c e s sa n dr e s u l to ft h es y s t e m sd y n a m i c b e h a v i o r s ow ec a n v e i l f yt h ec o r r e c t n e s so f t h em o d e la n dt h ec o n s i s t e n c eb e t w e e nt h ed e s i g n m o d e la n dt h er e q u e s t ss p e c i f i c a t i o n i nt h ee n do ft h et h e s i s ,w ed e s i g na n dd e v e l o pat o o l , w h i c h i m p l e m e n t s t h ea u t o m a t i ct r a n s f o r m a t i o no f t h em o d e l ,a n dg i v ea ne x a m p l ei nt h i sw a y k e y w o r d s :u m l ,e x e c u t a b l eu m l ,m o d e ld r i v e ua r c h i t e c t u r e ,m o d e ls i m u l a t i o n ,c o d e g e n e r a t i o n 第1 i 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目:女照搓墼互拯盈蛰盔煎盈究 学位论文作者签名:刍j ! :当 日期: o 中年) 月日 学位论文版权使用授权书 本人完全了船国防科学技术大学有关保留,使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可l ;之将学位论文的全部或部分内容编入有关数据 库进行检索,可吐采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目:型搓型互拉踅挂盔笠盈茳 学位论文作者签名: 鲞i ,:j ! 望 日期:o 午年上月蟛日 作者指导教师签名:彭之4 b日期:山辨1 月,名日 国防科学技术大学研究生院学位论文 图目录 图2 1 四层元模型分层结构示例,。6 图2 2 元模型与通用核心包的关系,6 图2 3 活动实例,7 图2 4 引脚图7 图2 5 构件及构件间的连接,7 图2 6 时限图8 图2 7 交互总览图8 图2 8m d a 开发步骤9 图3 1 模型驱动体系结构的模型架构1 2 图3 。2 系统域图1 5 图3 3x u m l 类图1 6 图3 4 销售人员的状态图1 9 图3 5 含显式桥的状态图2 2 图3 6 复杂匹配关系,2 4 图4 。1 代码生成流程,2 7 图4 2 类图信息2 8 图4 3 状态图信息2 9 图4 4 活动图信息3 0 图4 5 顺序图信息3 l 图4 6 协作图信息组织3 2 图4 7 类图的代码生成3 5 图4 8 状态图示例3 6 图4 9 状态图示例( 部分) 。,。3 9 图4 1 0 订货系统的类图4 0 图4 1 l 动作p r o c e s s o r d e r ( ) 的协作图4 l 图4 1 2 由协作图生成代码时的内部结构4 l 图4 1 3 全局变量型转换4 2 图4 1 4 局部变量型转换。,4 2 图4 1 5 l o c a l 型实例,4 2 图4 1 6 构造型 p a r a m e t e r 代码生成规则,4 3 图4 1 7 p a r a m e t e r 型实例,4 3 图4 1 8 类不直接相关联时的代码生成规则4 4 第谳页 国防科学技术大学研究生院学位论文 图4 1 9 消息带监护条件时代码生成规则,4 4 图4 2 0 调用构造函数时的代码生成规则,4 5 图4 2 l 协作图( 图4 1 1 ) 对应生成的代码4 5 图5 1r o s e 接口。4 9 图5 2 转换工具的u s ec a s e 图,5 1 图5 3 转换工具的包结构,5 2 图5 4 界面,5 3 图5 5u s ec a s e 图5 4 图5 6 系统类图5 6 图5 7 系统中a t m 类、s e s s i o n 类的类图5 7 图5 8a t h 类的状态图5 8 图5 9s e s s i o n 类的状态图。5 8 图5 1 0t r a n s a c t i o n 类的状态图5 9 图5 1 1 类a t m 状态图中部分动作的协作图,6 0 图5 1 2 类s e s s i o n 状态图中部分动作的协作图6 0 图5 1 3 类t r a n s a c t i o n 状态图6 1 第j v 页 国防科学技术大学研究生院学位论文 表3 1 对象与属性的动作语言 表3 2 选择动作语言。 表3 3 联接动作语言 表3 4 联接对象动作语言 表3 5 泛化继承中的动作语言 表3 6 信号规则 表3 7 过程的规则 表目录 表3 8 数据访问规则 表3 9 销售人员的状态转换表 表3 1 0 类之间的对应关系 表3 1 l 属性之间的对应关系 表3 1 2 类的行为之间的对应关系 表4 1 类图代码生成 表5 1a c c o u n t 对象的状态表 第v 页 h埔懈帅加扎船船黔弘的 国防科学技术大学研究生院学位论文 第一章引言 1 1 研究背景 开发一个具有一定规模和复杂性的软件系统就如同建造一座大厦一样是项工程,必 须按照工程学的方法组织软件的生产和管理,需要经过分析、设计、实现、测试和维护等 一系列的阶段。在软件工程的发展过程中,先后涌现了许多软件开发方法,每一种开发方 法都是针对软件开发中一些共性的问题和不同的应用领域而提出的。8 0 年代以来,面向对 象技术逐渐融入到整个软件开发的过程中去,并形成了不同流派的面向对象的软件开发方 法。与传统的软件开发方法相比,面向对象方法具有更好的易维护性、可重用性等优点, 进一步提高了软件的质量,是控制软件复杂性的有效手段。 在分析和设计阶段,一种较好的开发方式是:用可视化的手段对目标系统建模,以直 观的、易于理解的图形方式刻画和描述软件系统所包含的内容。目前u m l ( u n i f l e d m o d e l i n g l a n g u a g e ,统一建模语言) 是最为通用的可视化建模语言,已得到了国内外大量软件开发 组织的使用。同时人们也开发出了许多的可视化建模环境,力争结合可视化和形式化的方 法,形成可视形式化的需求规范或设计规范。对系统进行正确的分析和设计,建立有效的、 正确的系统模型在整个软件的开发过程中起着关键性作用。在建立分析和设计模型阶段所 犯的错误有时是致命性的,开发人员在系统开发结束后若发现问题,德推翻所有工作重颖 对系统进行分析,势必造成人力、物力的巨大浪费,延长了软件开发周期。因此如何确认 分析和设计模型的正确性,如何在软件开发初期就能对系统模型进行有效的模拟验证成为 软件开发人员所共同关注的问题。 众所周知,软件开发的最终目的是产生可执行代码。但是在利用u 札进行面向对象软 件开发时人们逐渐意识到开发过程中始终存在着一个模型与系统实现之间的鸿沟问题。 正如o m g 的主席r i c h a r ds o l e y 在形容一个公司建模工作过程时所描述的:首先是由一个 建模团队找出业务的实现方式,设计一个模型,然后将它写下来图上各种颜色,装订起来 分发给开发人员,放刘每个人的工作台上。开发人员召开关于模型的热烈讨论会,然后回 到工作台继续前面的工作,又把模型抛到了边i l j 。 在u m l 模型的代码生成机制以及软件模型行为的动态模拟方面,国际上一些大公司 做了有益的研究和开发工作,并陆续推出了些工具,比较有代表性的是r a t i o n a l 公司、 i l o g i x 公司和a d v a n c e ds o f t w a r et e c h n o l c i g i e si n c 。但这些研究和实现大多限于u m l 静态 模型中的类图,生成的仅是代码框架,仍不能直接作为实际的应用,对其他有关模型的代 码自动生成机制的研究则不多。在模型的模拟方面,大多采用了基于解释机制的模拟执行。 目前处于起步阶段的可执行u m l ( e x e c u t a b l eu m l ) 和模型驱动体系结构( m d a , m o d e ld r i v e na r c h i t e c t u r e ) 均力求实现由模型至完整代码的自动生成,软件工业界对此表 示了极大的关注和参与热情,并且围绕它正在开展软件环境的研究和开发工作。本文的研 第1 页 国防科学技术火学研究生院学位论文 究工作就是在这个发展趋势的背景下进行的。 1 2 课题主要内容 本文首先介绍了o m g 组织不久前颁布的u m l 2 0 规范、模型驱动体系结构和可执行 u m l 的主要思想和技术。然后提出了如何基于u m l 的集成化软件开发环境,实现由模型 至代码自动生成的转换过程,以及支持代码自动生成的转换工具的设计和开发。 该转换过程充分利用现有建模环境提供的软件模型信息,依据u m l 标准建模语言的 元模型理论,采用面向对象的方式对模型信息进行扩展,得到可以执行的软件模型信息。 获取和组织这些模型信息,将这些模型信息转换生成特定的程序设计语言。执行该程序能 进一步反映出软件模型动态行为的发生过程和执行结果,从而可以对系统模型进行模拟, 检查模型本身的正确性,以及验证设计模型与需求规范之间的一致性。 本文的主要工作包括下列一些内容: 研究和探讨了目前软件工程界较为关注的几个热点技术:o m g 于2 0 0 3 年6 月颁布的 u m l2 0 规范,模型驱动体系结构和可执行u m l 。 在深入分析和理解u m l 表示法和语义的基础上,对模型中表现对象动态行为内容的 部分以特定的程序设计语言作了深入细致的描述。 本文重点围绕着如何实现u m l 模型的可执行进行了研究和探索。对类图、状态图、 协作图、活动图中的信息内容进行了有效的组织,提出并设计了从模型到完整代码自动转 换的详细过程。该过程可以实现由某些简单系统模型的类图、状态图、协作图等信息内容 到该系统所对应程序代码的自动转换。文中详细阐述了该转换过程中的转换规则、转换步 骤以及相关算法等,由此转换生成的程序是可以被独立地运行。 设计开发了一个模型到代码自动生成的转换工具。通过运行生成的程序,可以达到模 型的仿真实现,从而有助于开发初期模型正确性的验证,也使得开发过程中的测试将变得 较为容易。在模拟执行的同时,通过对象状态图中箭头和状态颜色的自动变换来显示对象 的动态执行过程。这种方式更方便,更直观地实现了系统模型的模拟。 1 3 论文结构 论文共分6 章。 第l 章,介绍课题的研究背景和课题目标。 第2 章,介绍u m l 的发展和u m l1 x 版本存在的不足,以及u m l2 0 的主要特征。 第3 章,介绍了模型驱动体系结构的产生背景、关键技术及意义,和支持模型驱动体 系结构的可执行u m l 的发展概况。重点阐述了s t e p h e nj m e l l o r 和m a r cj b a l c e r 所提出的 可执行u m l 的开发过程。 第4 章,提出并设计了模型至代码的自动转换过程,即由系统的动态和静态模型转换 生成可以独立运行的程序代码的过程,并阐述了该转换过程中所采用的详细步骤、算法等 内容。 第5 章,设计了一个实现从模型至代码自动转换的转换工具,结合一个实例进一步描 第2 页 国防科学技术大学研究生院学位论文 述了代码的自动生成过程,并对转换执行过程进行了模拟分析。 结束语部分比较分析了当前在实现模型至代码的自动转换方面的几种方法和工具,总 结了本文的研究成果,指出了下一步将要开展的研究工作。 第3 页 国防科学技术大学研究生院学位论文 第二章u m l2 0 的发展历程及特征 2 1u m l 的发展历程 8 0 年代中后期,面向对象方法逐步发展成为一种成熟有效的软件开发方法。与此同时, 各种面向对象的建模方法也得到了蓬勃发展。从8 0 年代来到9 0 年代中期,建模方法就由 原先的不到l o 种猛增至5 0 多种。在如此众多的建模方法中,最为引人注目的是b o o t h , r u m b a u g h ,j a c o b s o n 三个人各自的研究成果:b o o c h 提出了面向对象软件工程的概念,将 以前面向a d a 的工作扩展到整个面向对象设计领域;r u m b a u g h 提出了面向对象的建模技 术( o m t ) :j a c o b s o n 提出了o o s e 方法瞄j 。 1 9 9 4 年1 0 月b o o c h 和r u m b a u g h 首先将各自先前的研究成果统一起来,于1 9 9 5 年 1 0 月发布了u m0 8 ( u n i t i e dm e t h o d ) 。1 9 9 5 年秋,j a c o b s o n 加盟到他们的工作当中。经过 b o o t h 、r u m b a u g h 和j a c o b s o r l 三人的共同努力,于1 9 9 6 年6 月和1 0 月先后发布u m l 0 9 和u m l0 9 l ,并将u m 命名为u m l l 3 j 。在与众多建模方法的竞争中,u m l 最终承担起了 统一的重任。它融合了众多优秀的面向对象建模方法以及软件工程方法,消除了因方法林 立且彼此独立带来的诸多不便。u m l 的出现为面向对象建模语言的发展历史掀开了新的一 页,迅速受到工业界、学术界以及用户的广泛支持,茹成为面向对象技术领域占主导地位 的建模语言。 1 9 9 7 年1 月,个由建模专家组成的国际性队伍“u m l 伙伴组织”开始同b o o c h 等 三人一起工作,并向o m g 提交了最初的提案u m l1 0 。o m g 的修订任务组于1 9 9 8 年提 交了u m l1 2 ,它纠正了u m l1 1 中的印刷和语法错误以及某些明显的逻辑上的不一致。 1 9 9 9 年6 月,修订任务组又提交了u m ll - 3 。u m l1 3 是建模语言规范的第一个成熟版本, 它修正和改善了u m l1 1 的遗留问题,并矫正了在此之后发现的许多小错误。历经】7 个 月的讨论之后,u m l 修订任务组又于2 0 0 1 年5 月提交了u m l l 4 ,该规范碍到了o m g 的采纳,并一直广泛沿用至今。与先前版本相比,u m l1 4 摄有意义的变化是对外围和扩 展机制、构件和制品、协作和模式等方面所做出的改动。 2 2 u m l i x 的不足 u m l 通过统一的表示方法使不同知识背景的领域专家、系统分析和开发人员以及用户 可以方便地进行交流,在学术界和工业界迅速得到了广泛的认可和应用。但u m l 诞生之 后就一直没有离开过批评,在2 0 0 0 年6 月举行的o m g 国际年会的讨论中就总结指出了 u m l1 x 中所存在的诸多不足”,如: 结构的不一致性和规模复杂性。尽管u m l 的元模型与m o f ( m e t a o b j e c t f a c i l i t y ,元 对象设施) 的元模型是一致的,但是它们都没有严格地遵守四层元模型模式,从而导致了 其它同时依赖于u m l 和m o f 元模型的o m g 标准的实现困难。u m l 元模型规模庞大且 第4 页 国防科学技术大学研究生院学位论文 异常复杂,有百多个元类,7 0 多个标准元素,而且仍在不断扩大,尤其是在行为语义方 面。 不完全支持基于构件的开发。尽管u m l 包含了基于构件开发的基础结构,但是并没 有完全支持基于构件开发的方法和体系架构,如e n t e r p r i s ej a v a b e a n s ,c o r b a c o m p o n e n t m o d e l 及c o m + 等。当前的接口符号不能完全表达出构件之间的交互语义,除了简单的信 息调用和接收,并没有包含输出以及复杂事项的定义等。 交互方面的不足。当前的顺序图符号没有能提供这些顺序图之间的关系。建模人员不 能将顺序图中复杂的行为进行分解,这种分解涉及到参与交互角色的分解以及顺序本身的 分解。此外建模人员不能由一个顺序图引用另一个顺序图,不能将多个顺序图进行组合, 而且在单个顺序图内定义可变性的能力有限。上述问题同样存在于协作图中。 缺乏o c l ( o b j e c t c o n s t r a i n tl a n g u a g e ,对象约束语言) 元模型。o c l 的语义是建立 在u m l 语义基础上的,它们之间的综合是通过自然语言,本身没有元模型。相应地o c l 语义与符号之间的区别不清楚,这导致了不能对o c l 进行确切解释。例如在u m l 模型中, o c l 表述的内容没有完全被定义,没有o c l 元模型,难以确信o c l 实现之间的一致性。 缺乏对图形交换的支持。在u m l1 x 中元模型的定义没有包含详细的图形信息,而这 些信息对以标准的方式、跨不同建模工具表示和交换u m l 模型的图形是必需的。 2 3u m l 2 , 0 的产生及主要特征 鉴于u m l1 x 存在着诸如以上所述一系列的问题,0 m g 于2 0 0 0 年9 月发布了3 个 u m l2 0 提案需求,即u m l2 0 i n f r a s t r u c t u r e 、s u p e r s t r u c t u r e 和o c lr f p ( r e q u e s tf o r p r o p o s a l ) 。在2 0 0 1 年5 月又发布了u m l 2 0d i a g r a mi n t e r c h a n g e 褂、p 。此后,o m g 的各 成员组织纷纷对u m l 进行了深入的研究和多次反复的修订工作。相应于o m g 组织提出 的四个r f p ,u m l2 0 规范由四部分组成:i n f r a s t r u c t u r e ( 底层结构) s u p e r s t r u c t u r e ( 上 层结构) ,o b j e c t c o n s t r a i n t l a n g u a g e ( 对象约束语言) ,d i a g r a m i n t e r c h a n g e ( 图形交换) 。 i n f r a s t r u c t u r e 定义了u m l 2 0 所需的基础语言模型,其目的就是通过定义一个核心元语言, 来对u m l 2 0 其他三部分进行定义 6 i :s u p e r s t r u c t u r e 定义了u m l 2 0 所需的用户级模型, 是通过一系列的包进行规范的,可被建模人员童接用于结构建模和行为建模o b j e c t c o n s t r a i n t l a n g u a g e 主要关心与u m l 元模型密切联系的o c l 元模型的定义【8 】= d i a g r a m i n t e r c h a n g e 的目的则是要实现在不同建模工具之间交换模型图( 钳。2 0 0 3 年3 月2 4 至2 8 日 o m g 成员于美国的o r l a n d o 召开会议,推荐各成员使用u m l 2 0i n f r a s t r u c t u r e 、o b j e c t c o n s t r m ml a n g u a g e 、d i a g r a m i n t e r c h a n g e ,他们认为这三个规范已经完成了最后的修订任 务,用它们代替先前的u m l1 x 是合适的。在6 月1 2 日子巴黎召开的o m g 技术会议上, 分析和设计专案小组( t h ea n a l y s i sa n dd e s i g nt a s kf o r e ) 投票通过了u m l 2 0 上层结构 规范,至此u m l 2 0 宣告完成。 第5 页 国防科学技术大学研究生院学位论文 2 3 1 严格的四层元模型分层结构 就整体结构设计而言,u m l2 0 的设计与u m l1 x 相比严格遵从了四层元模型分层结 构。元一元模型层( m 3 层) 构成了元模型分层的基础,该层的主要目的就是定义规范元模 型的语言,并且一个元一元模型可以定义多个元模型;元模型( m 2 层) 是元一元模型的一个实 例,其主要职责就是定义规范模型的语言,其元素如c l a s s 、a t t r i b u t e 等;模型( m 1 层) 是 元模型的实例,模型层的主要职责就是定义一个语言,从而允许用户对不同的问题域进行 建模;用户模型( m 0 层) 是模型的个实例,它包含了模型中定义的模型元素的运行实例。 这些元模型层相互间的关系见图2 i f 6 1 。 :、。, l n ,;i 睇。外 e 堕 图2 1 四层元模型分层结构示例 2 3 。2u m l 2 。0 i n f r a s t r u c t u r e 的主要特征 图2 2 元模型与通用核心包的关系 u m l2 0i n f r a s t r u c t u r e 通过定义一个通用核心包( c o r e 包,该包是个完全的元模型, 主要是被设计用于重用) ,使得其它元模型( u m l ,c w m ,m o f ) 能在此核心包的基础上 规范自身元类,因而从结构上使u m l 与m o f 、c w m 协调一致( 图2 2 表述了u m l 、c w m 、 m o f 是如何依赖于一个通用核心的) 。此外通过对p r o f i l e s 的定义提供了更强的针对特定 平台( 如c + + ,c o r b a ,e j b ) 和应用域定制元模型的机制,提高了扩展能力。p r o f i l e s 包依赖于c o r e 包,它又是通过重用所有或部分的c o r e 包来定义和规范自己的元类1 6 】口 2 3 3u m l2 0s u p e r s t r u c t u r e 的主要特征 u m l2 0s u p e r s t r u c t u r e 在保持规范完整性的同时,进一步提高了规范的严密性,改进 了u m l i x 中所存在的不足。下面着重就其中的三个主要方面作介绍。 首先,u m l1 x 中活动图被定义为一个状态机的特定实例,该状态机按照动作之间的 控制流和数据流定义了个计算过程。由于要实现向状态机映射,这就导致了活动图上的 国防科学技术大学研究生院学位论文 许多混乱以及一些不必要的约束。在u m l2 0 中,活动被重新设计为使用一个类似p e t r i 网的语义而不是状态机。动作是活动的一个可执行节点,是活动内基本的个单元。动作 的执行代表了被建模系统内的一些转换和过程。用动作进行建模并作为活动的一部分,用 动作取代u m l1 x 中的动作状态、调用状态、子活动状态等是u m l 2 0 中新加入的一种方 法。活动被用于表述模型的流动,这些模型处理其他的行为或其它的模型流。活动的这些 改变所带来的好处在于增大了可建模型的数量,尤其是那些有并行模型流的建模 7 1 。图23 就是一活动实例。 图2 3 活动实例 仁焉础p 封甄忑司 、- 、- - - 输出p i n 输a p i n 图2 4 引脚图 其次,u m l1 x 中的接口符号不能完全表达出构件之间的交互语义,在u m l2 0 中引 入或改进了p o r t ( 端口) 、p i n ( 引脚) 、c o n n e c t o r ( 连接子) 、i n t e r f a c e ( 接口) 等概念,提 高了对基于构件开发的支持。p i n _ 是指动作输入和输出的端口,它给动作提供数值并接收 来自其他动作的结果数值( 图2 4 ) 。p o r t 是元类的一个特征,它指定了一个元类与其所处 环境之间或者是元类与其内部组成部分之间的交互。p o r t 之问可以通过连接子( c o n n e c t o r ) 进行连接。连接子具有基于约束和符号的接口,其中代理( d e l e g a t i o n ) 连接子连接构件的 外部契约和内部行为表示,装配( a s s e m b l y ) 连接子把一个构件的服务和另一构件的需求 连接起来。p o r t 可以完全将对象的实现与它所处的环境分割开,一个复杂的p o r t 能够支持 多个接口规范,其中典型的就是需求型接口( r e q u i r e di n t e r f a c e ,表达对象为完成饪务所需 图2 5 构件及构件问的连接 第7 页 国防科学技术大学研究生院学位论文 要的接口) 和提供型接口( p r o v i d e di n t e r f a c e ,对象对外界所能提供的接口) u 0 1 ( 见图2 5 、。 通过上述这些概念,u m l 2 0 具有了描述任意复杂度的软件系统的能力,能充分利用构件 来描述具有良好定义接口的模块化单元。它不仅能够支持逻辑构件( 如业务构件、进程构 件) 和物理构件( 如e j b 构件、c o r b a 构件等) ,以及构件的部署模型和执行模型,还可 为特定的构件技术、相关软硬件环境开发概图。 第三,上层结构在交互方面的语义更为丰富,表达能力极大提高,而且提供了将复杂 行为进行分解的能力以及将多个顺序图进行组合的能力,改进了对行为建模的封装和度 量。交互既可以用顺序图和协作图表示,同时也可以用时限图( t i m i n gd i a g r a m s ) 、交互 总览图( i n t e r a c t i o no v e r v i e wd i a g r a m s ) 、交互表表示。其中时限图( 图2 6 ) 的主要目的 就是表示生命线状态或条件的变化,它关注于事件发生时间的观察和约束;交互总览图( 图 2 7 ) 通过一系列的活动图来定义交互,主要关注于控制流的总体观察。 型型啦当 i :i 冉叫 g n _ f 厂一1 i7 i 、 pijjf ,j lfl 罨h 拈c 酣d 】 kl 咖o c 。j d 【2 一 图2 , 6 时限图 ? l ! 纠e - t i ia h k 【i i i - lp ,n ”】 j , nz s 出l 二坐刖l 苎三! 型 | i i 五一 【p _ 。q l 一lu i i c s y t 1 。、 i j l f - ,i e r - ) 。 i l ,l ! u o p n d 。r i1 1 川 r 、 图2 7 交互总览图 2 3 4u m l2 0o c l 与d i a g r a m i n t e r c h a n g e 的新特性 o c l 是用于描述u m l 模型中关于表达式的形式化语言。它既可以被用来规范模型中 与应用相关的约束,也可以用于指定相关u m l 模型的查询或作为独立的完整编程语言。 u m l 1 x 中o c l 没有元模型,因而很难规范她定义与u m l 元模型的集成。u m l2 , 0 为 o c l 定义了一种适应于m o f 2 0 的元模型,该元模型定义了o c l 的概念和语义,并充当 语言的抽象语法1 。u m l 2 0o c l 的集合可以嵌套,对集合使用了三个不同的操作,并且 专门为组件等具有行为特性的结构所发送的信息定义了o c l m e s s a g e 类型。u m l 2 0 在o c l 中添加了t u p l e ( 元组) 的概念,将o c l 完全作为一种查询语言,从而赋予o c l 与s q l 基本相同的表达能力。 u m l 1 x 虽然利用x m i ( x m l m e t a d a t a i n t e r c h a n g e ) 作为u m l 的标准数据交换格式, 以实现在不同的建模环境和工具中进行数据交换,但这仍然存在一个很大的弱点,就是无 第8 页 国防科学技术大学研究生院学位论文 法进行图形格式的交换,即在一个建模环境中建立的模型到了另一个工具中就无法正确显 示。u m l2 0 在基于x m l 的s v g ( s c a l a b l ev e c t o rg r a p h i c s ) 图形描述语言基础上,定义 了u m l 2 0d i a g r a mi n t e r c h a n g e ,用以支持图形格式交换”。 2 3 5 支持m d a u m l 2 0 另一个显著特征就是加强了对m d a ( 在第四章 将作详细介绍) 的支持。m d a 定义了构建模型的体系,其目 标是要实现从u m l 模型到最终代码的自动化生成。m d a 将 系统功能规范与该功能在某个特定平台上的实现规范分开, 由同一个基础模型可以为不同的中间件平台产生应用程序。 m d a 的开发大体上可以分为三步( 图2 8 ) 【1 1 【1 2 】:建立 p i m ( p l a t f o r mi n d e p e n d e n tm o d e l ) ,p i m 严格地表示了系统的 结构和功能,但是并不包括实现细节;将p i m 转换为 p s m ( p l a t f o n ns p e c i f i cm o d e l ) ,p s m 代表了开发者所希望的 平台模型,包含了和执行一样的信息内容,是以u m l 而非运 行代码的形式进行表示的:最后由p s m 自动生成应用程序 【1 ”。由于u m l2 0 精化了以前版本中的p r o f i l e s 机制,从而 使得p r o f i l e s 更丰富,可以为不同的域( 如金融,航空,通信 等) 、不同的平台( 如j 2 e e ,n e t ) 、不同的方法( 如统一过 程,a g i l e 方法) 定制u m l 方言,从而使得建模人员能够更 容易为目标平台定制p s m t i o l 。 2 4 小结 图2 8m d a 开发步骤 随着软件技术的发展,目前正被广泛使用的u m l1 x 不断暴露出一些不足之处。u m l 2 0 对u m l1 x 进行了修订,并表现出一些新的特性。它进一步提高了u m l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论