已阅读5页,还剩68页未读, 继续免费阅读
(计算机软件与理论专业论文)模型驱动体系结构的研究及其应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文 摘要 模型驱动架构( m o d e ld r i v e n a r c h i t e c t u r e ,m d a ) 是由对象管理组织( o m g ) 提出的一个软件开发框架,是o m g 对早已被提出来的模型驱动开发给出的一个解 决方案。m d a 的技术基础是由o m g 的一些技术规范组成的,如:u m l 、m o f 、) 0 4 i 、 o c l 、c w m 等。m d a 是一个以模型为中心的软件开发框架,它支持软件设计和模型 的可视化、存储、交换和转换等。和传统的软件开发方法相比,m d a 提出的模型 驱动不仅要求模型驱动整个软件开发过程,更重要的是驱动模型转换器自动对模 型进行转换,从而直接生成可运行代码甚至完整的软件系统。 但是m d a 现在还处于非常初级的研究阶段。o m g 的一系列支持m d a 的规范还 不是非常完备。为了更好支持m d a ,这些规范还要进一步改进和发展。同时,m d a 是一种对开发工具要求很高的开发框架。业界的工具开发商也正在积极开展对 m d a 工具的第一轮投资。但是由于规范还不够完善,m d a 工具开发商不能很好地 完全实现m d a 规范的要求。现有的m d a 工具都是通过加入自己的特有的实现来支 持m d a 的开发。 m d a 相关规范的完善和工具开发商的跟进还需要很长时间。m d a 本身被软件 开发人员所掌握、并且在软件产业界得到广泛的应用也需要很长时间。但是幸运 的是,现有的m i ) a 技术和工具已经足够为当前的软件开发带来可观的好处。 本文通过对m d a 原理和技术进行分析,总结了m d a 的发展途径和方向。针对 企业的需求,分析了企业采用m d a 开发过程需要采取的步骤,总结了一个切实可 行的m d a 开发过程方案,并且在一个资产清册管理系统的开发中试验了此m d a 开 发过程。 关键词模型驱动,开发方法,m d a ,u m l ,m o f 浙江大学硕士学位论文 a b s t r a c t m o d e ld r i v e na r c h i t e c t u r e m d a 。i sas o f t w a r ed e v e l o p m e n tf r a m e w o r kw h i c hi s p r o p o s e db yo b j e c tm a n a g e m e n tg r o u p o m gm d a i st h eo m g ss o l u t i o no ft h e m o d e ld r i v e nd e v e l o p m e n tt h a ti sa l r e a d yk n o w nf o ral o n gt i m e m d ai ss u p p o r t e d b yab r a n do f t e c h n o l o g ys p e c i f i c a t i o n st h a ta r ea l s om a n a g e db yo m g , s u c ha su m l , m o f x m i ,o c l c w m ,e t e m d ai sam o d e l c e n t r i cs o f t w a r ed e v e l o p m e n t f r a m e w o r k ,a n di ts u p p o r t ss o f t w a r ed e s i g n , m o d e lv i s u a l i z a t i o n , m o d e ls t o r ea n d m o d et r a n s f o r m a t i o n , e t o c o m p a r i n gt ot h et r a d i t i o n a ls o f i w a r ed e v e l o p m e n t ,t h e m o r ei m p o r t a n tf e a t u r eo fm d ai st h a t 。t h em o d e li nm d an o to n l yd r i v e st h e d e v e l o p m e n tp r o c e s sb u ta l s od r i v e st l l em o d e lt r a n s f o r m a t i o nt o o l s s ot h a tr a n n a b l e c o d eo re c e n c o m p l e t ed e p l o y a b l es o f t w a r ec o u l db eg e n e r a t e df r o mt h em o d e l d i r e c t l y b u tm d ai ss t i l li ni t si n f a n c yp h a s e t h eb r a n ds p e c i f i c a t i o n st h a ts u p p o r tm d aa r e n o tv e r yc o m p l e t es of a r t ob e t t e rf i l l f i l lt h en e e d so fm d a t h o s es p e c i f i c a t i o n ss t i l l n e e dt ob ei m p r o v e da n dd e v e l o p e d i nt h em e a nw h i l e ,m d ai sad e v e l o p m e n t f r a m e w o r kt h a th e a v i l yd e p e n d so nt h et o o l s i nt h ei n d u s t r y , t h et o o l sv e n d o ri s a c t i v e l yi n v e s t i g a t i n gi nf i r s tr o u n do fb u i l d i n gm d a t o o l s b u td u et ot h ei n c o m p l e t e s p e c i f i c a t i 0 1 1 5 t h et 0 0 1v e n d o rc a n ti m p l e m e n tt h e i rt o o lt op e r f e c t l ys u p p o r tt h em d a r e l a t e ds p e c i f i c a t i o n s m o s to ft h ec u w e n ta v a i l a b l em d at o o l sa p p l yt h e i ro w n t e c h n o l o 西e sa n ds o l u t i o n st os u p p o r tt h em d a d e v e l o p m e n tw h e nb u i l d i n gt h e i rt 0 0 1 i ts t i l ln e e d sal o n gf o rt h em d ar e l a t e ds p e c i f i c a t i o na n dt o o l st ob ei m p r o v e da n d c o m p l e t e d a n da l s ot h em d ai t s e l fa l s on e e d sal o n gt i m et ob eg r a s p e db yt h e s o f t w a r ed e v e l o p e r sa n db ea d o p t e dw i d e l yi nt h es o f t w a r ed e v e l o p m e n ti n d u s t r y b u t l u c k i l y , t h ec u r r e n ta v a i l a b l em d at e c h n o l o g i e sa n dt o o l sa r ea l r e a d yg o o de n o u 曲t 0 b r i n gg r e a tb e n e f i tf o rt h es o f t w a r ed e v e l o p m e n t t h i st h e s i s f i r s te x p l a i n e dt h e p r i n c i p l eo f m d a a n dt h eb a s i ct e c h n o l o g i e st h a ts u p p o r tm d a t h e ni tc o n c l u d e sa n d a n t i c i p a t e st h ed e v e l o p m e n td i r e c t i o no fm d a b a s eo nt h e s e ,i ta n a l y s e s t h e r e q u i r e m e n to f a l le n t e r p r i s ef o rt h em d a ,a n dc o n c l u d e saf e a s i b l em d as o l u t i o nf o r t h i se n t e r p r i s e a n df i n a l l yt h es u i t a b l et o o l sc o m b i n a t i o nh a sb e e ns e l e c t e dt op r a c t i c e m d ao na ni n v e n t o r ym a n a g e m e n ts y s t e md e v e l o p m e n t k e y w o r d s m o d e ld r i v e n ,d e v e l o p m e n tm e t h o d o l o g y , m d a ,u m l ,m o f 缸 浙江大学硕士学位论文翻目录 图目录 图2 - 1 传统软件开发过程的生命周期。1 7 图2 - 2 抽象层次的增加1 1 0 图2 - 3m d a 软件开发过程的生命周期旺1 1 1 图2 _ 4m d a 的模型转换过程示意刚2 j 1 4 图3 - 1m d a 的基本框架旺 16 图3 - 2 类建模的u m l 元模型的片蝌”2 1 图3 3m o f 子类化定义的数据建模的元模型2 2 图3 4 抽象语法和抽象语法树2 2 图3 5 特定关系数据模型的抽象语法树2 3 图3 - 6m 1 层数据模型元素是m 2 层数据元模型元素的实例2 4 图3 7 将x m i 的m o f u m l 映射规则应用于u m l 无模型【1 】2 5 图3 _ 8u m l 元模型重型扩展2 7 图3 - 9 模型、语言和系统的关系2 9 图3 1 0 平台独立模型( p 讧) 的例子3 l 图3 1 1 特定于f a b 组件的平台相关模型( p s m ) 的例子3 2 图3 1 2 转换工具中的转换定义【2 】3 3 图3 1 3 从u m l 到j 2 e e j a v a 转换定义示意图3 3 图3 1 4 建模方法的阶段与类型啦! 3 5 图5 - 1m a g i c d r a wu m l 截图4 6 图5 2 资产清册管理系统的用例调研图4 9 图5 3 企业应用系统的典型的多层体系结构5 l 图5 - 4 a n d r o m d a 将不同的j a v a 技术映射到不同的层之中示意图5 2 图5 5 资产清册管理系统的主要用例模型5 3 图5 - 6 资产清册管理系统的部分业务实体模型5 4 图5 7 资产清册管理系统的部分值对象模型5 5 图5 8 资产清册管理系统的部分业务逻辑服务模型5 6 图5 - 9 资产清册管理系统的主页面的w e b 流程状态图模型5 7 图5 1 0 资产清册管理系统的用户申请资产的w e b 流程状态图模型5 8 图5 1 1 资产清册管理系统的审批资产申请的w e b 流程状态图模型5 8 图5 1 2 资产清册管理系统的分配资产的w e b 流程状态图模型5 9 图5 1 3 a n d r o m d a 样例应用程序t i m e t r a c k e r 缺省页面风格截图6 l 图5 1 4 a n d r o m d a 样例应用程序t i m e t r a c k e r 定制页面风格截图6 2 塑兰查兰堡圭兰垡笙壅 壅! 墨 表 表 表 表目录 3 - 1m o f 元层次 4 1 工具评估规则例子 4 2 评估指标例子。 v 2 3 4 1 4 l 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1m d a 的重要性 软件产业在i t 产业中历来占有重要的地位,进入21 世纪,这种地位继续 得到巩固和凸现。纵观软件产业的发展历史,计算技术经历了“以机器为中心一 一以应用为中心以企业为中心”的变化同时,我们不难得出这样的结论: 软件开发方法的进步有助于维持软件产品质量、全寿命期、生产成本的平衡。 以企业为中心的计算主要包括以下方面:基于组件开发”1 ,设计模式“”,中 间件,说明性规约,企业构架,企业应用集成,契约式设计“”。作为将这一系列 新的趋势性技术整合到一起的开发方法,m d a 的出现,为提高软件开发效率,增 强软件的可移植性、协同工作能服和可维护性,以及文档编制的便利性指明了解 决之道。也正因为如此,m d a 被面向对象技术专家预言为未来几年里最重要的方 法学。 虽然m d a 依然是前沿技术,o m g 依然在努力继续改进和完善它。但是,世界 领先的m d a 工具开发商已经开始积极地投入到m d a 工具的开发中,如:c o m p u w a r e 开发的o p t i m a l j ,i b m 开发的r s a ,甚至开放源代码的a n d r o m d a 等等。虽然,支 持m d a 的工具还不是很成熟,为了完全实现o m g 制定的m d h 开发过程还需要很长 路要走,但是软件工业已经迫不及待地要尝试这种新的开发方法带来的可观好 处。凭借现有但还不完善的m d a 工具,已经有很多基于m d a 的成功应用案例。软 件开发人员或多或少已经开始从这最初的m d a 尝试中得到好处。但是在很多项目 里边,尝试帅a 最后也以失败告终。其中的原因可能很多,或是因为开发人员还 没有具备基本的应用m d a 开发的技术水平,如u m l 建模能力等等;或是因为企业 没有对现有系统和项目进行充分的评估,导致现有系统和项目无法从m d a 开发方 法中获益,反而付出了更多代价;或是因为企业低估了在企业内部实施m d a 陡峭 的曲线。总之,m d a 作为一个新的开发方法,要想被成功推广,除了需要成熟工 具支持外,软件开发者与软件企业也都需要做好充分准备。 一 为了在m d a 时代真正到来之前做好充分准备,各个业界领先的公司都开始投 入资源到m d a 研究中。啪1 本篇论文的作者有幸参与了一个金融服务公司最初开始 投入m d a 研究的一个项目。切身感受到了,m d a 作为下一代开发方法,对软件服 务公司在未来的企事业竞争中有着极其重要的影响。 浙江大学硕士学位论文第1 章绪论 1 2 如a 的国内外现状 2 0 0 2 年初,o m g 宣布:模型驱动体系结构是它的战略方向。一年之后,业界 一系列令人眼花缭乱的并购案尘埃落定( 如i b m 并购了r a t i o n a l ,b o r l a n d 并购 了t o g e t h e r s o f t 、b o l d s o f t 和s t a r b a s e ) ,动作快的厂商已发布了具有部分m d a 特性的产品,如o p t i m a l j 、a r c s t y l e r 等。现在,o m g 作为m d a 的发起人,也正 在不断完善m d a 及其它相关的规范。而工具产商们也一方面紧跟着o m g 的步伐开 发他们支持m d a 的产品,一方面大肆宣传其产品作为支持肋a 的工具可以为开发 人员带来的好处。 m d a 还处在一个发展过程中,还在不断演进。虽然m d a 正朝气蓬勃地走来, 但是人们也能看出它所存在的问题。m d a 最大的好处就是业务模型的持久价值, 但是付出的代价是增加了抽象层,而目前看来,层之间的转换并不是人们所期待 的那样顺畅。至少,从p i m 到p s m ,从p s m 到代码,这个实现的过程要远比从3 g l 生成机器代码来得困难汹】。在建模技术方面,u m l 正在暴露其固有的缺陷,它需 要扩展更多的机制来支持精确建模和分析模型,虽然目前o c l 为精确建模提供了 一定的支持,但是这种支持距离可执行模型的理想还很遥远“。回顾m d a 的历史, 可以看出u m l 的巨大成功为m d a 的产生奠定了坚实的基础,同时也感觉到:在由 软件工艺到软件工程的漫漫长路中,m d a 只不过是向前迈进了一小步,但却给整 个软件业掀起了一场波澜,它在模型定义、开发过程等诸多方面都将对未来i t 技术产生深远的影响。 目前在m d a 开发工具市场上的情形是:由于从p i m 到p s m 转换方法的标准化 尚未完成,i b m 、b o r l a n d 等大型厂商大都持谨慎态度,虽然也纷纷在他们的开发 工具中提供部分的m d a 功能,但并没有完全遵循o m g 定义的m d a 规范。虽然如此, i b m 除了在r a t i o n a l 中增加m d a 功能之外,在开源项目e c l i p s e 中,也提出了 e m f ( e c l i p s em o d e l i n gf r a m e w o r k ) 这一创新的m d a 代码生成系统项目,由此 可见i b m 对m d a 这一发展中的技术的重视程度。b o r l a n d 公司宣称他们也在关注 m d a 技术,并且准备在t o g e t h e r 中配置基于m d a 的模型自动生成功能。相对于业 界大厂的冷静和矜持,一些中小厂商和开源社区反而特别活跃,像i n t e r a c t i v e o b j e c t s 公司著名的a r c s t y l e r 、c o m p u w a r e 公司著名的o p t i m a l j ,还有开放源 码的a n d r o m d a 等遵循o m g 规范的m d a 工具已在一些项目中得到了运用,并取得 了显著成效。 要实现o m g 提出的m d a 最终开发方式,m d a 里边还有很多技术性的东西需要 进一步研究,学术界也从如何实现m d a 和如何应用m d a 两个方面进研究。如何实 浙江大学硕士学位论文 第1 章绪论 现m d a 的研究主要集中在建模方式上,即用什么样的建模语言,如何改进u m l 使 其能够做为m d a 的建模语言。如何应用m d a 的研究主要集中在如何利用现有的m d a 技术水平提商软件开发效率。但是纯学术研究领域的研究结果并不是对m d a 非常 有力。国际上已经有许多关于m d a 及其生产力的研究,如其中一项由m i d d l e w a r e 公司在2003 做的研究。此研究声称他们通过应用m d a 的开发方法节省了35 的开发时间。c 3 2 3 尽管这些是真实的合理的结构,但工具几乎只是按其初始的配 置被使用的,也并没有算上培训的时间和工具配置的时间和潜在的修改转换的时 间。而这些是实际应用m d a 开发所必须处理的问题。所有这些工作都需要大量时 间,因此不可以低估这些工作的难度。应用一个m d a3 - 具,开发第一个应用程序 的时间并没有减少,但是对于后续相同平台应用程序的开发,它能够减少很多时 间。但是当平台是不相同的时候,工具就需要被重新配置,模型转换过程可能也 需要修改。 1 3 本文的主要工作 本文首先通过研究m d a ,分析了m d a 的重要性、工作原理、体系结构和技术 基础。分析了传统的软件开发所面临的问题,以及m d a 如何解决这些问题。对m d a 的研究主要是通过阅读m d a 相关的论文、书籍和o m g 的相关规范。本文根据m d a 当前的应用情况,总结了m d a 过去和将来发展的途径和方向。模型驱动开发的历 史虽由来已久,m d a 作为o m g 的模型驱动开发的解决方案也有了几年的历史,但 是人们更观注的是这一新技术方法未来的发展,所以本文通过分析m d a 当前面临 的问题,预测了肋a 的未来的发展。 本文还针对某金融企业对m d a 的需求,分析了企业在采用m d a 开发过程从准 备到实施需要采取的一些步骤。企业在应用每一种新的技术、方法前都要对其进 行评估,以此来确定这种新的技术和方法是否对企业当前的计算环境有效。 由于m d a 非常依赖于工具的支持。为了在众多m d a 工具中选择适合该金融企 业的m d a 工具,本文采用了一种相对简单的基于特性的评估方法。通过对每种工 具对于多个m d a 特性支持的不同程度进行比较,最后通过综合的评分再结合该金 融企业的需求选则出了最合适的工具。 最后本文总结了一个切实可行的旧a 开发过程的方案,并且应用选择出来的 工具,在资产清册管理系统的开发过程中的进行了m d a 的实践。 浙江大学硕士学位论文 第1 章绪论 1 4 论文的组织 全文内容是按从理论到实际应用,从整体概括到具体细节的方式来组织的。 先从m d a 理论入手,阐述了m d a 的技术原理和体系结构,提出了m d a 面临的问题。 然后基于现阶段m d a 的技术和工具,总结了一个可行的m d a 应用方案。最后在资 产清册管理系统中应用该方案进行开发。 全分共6 个章节。 第一章绪论,介绍了研究m d a 的意义、m d a 的现状及全文内容安排。 第二章m d a 介绍,对m d a 的背影,定义以及基本的原理和技术基础做了介 绍和综述。 第三章m d a 的体系结构,具体地介绍了m d a 的组成部分及各部分的功能和 面临的问题。并且根据m d a 现在发展的情况总结了m d a 未来的发展。 第四章实施m d a 开发过程,总结了一个企业如果要实施m d a ,应该采取的 步骤。 第五章资产清册管理系统的m d a 解决方案,介绍了一个可行的应用m d a 开 发一个资产清册管理系统的解决方案。详细阐述了应用m d a 开发方法开发资产清 册管理系统的过程。 第六章总结,对全文进行了概况和总节,并对m d a 的未来进行展望。 1 5 本章小结 本章对研究m d a 的重要性进行了阐述,同时介绍的m d a 研究和应用的现状。 还对本文的主要工作和全文的结构进行了介绍。m d a 被面向对象技术专家预言为 未来几年里最重要的方法学。m d a 还处在一个发展的过程中,还在不断的演进, m d a 的规范和支持m d a 的工具都需要完善和改进。本文的内容是按从理论到实际 应用,从整体概括到具体细节的方式来组织的。 4 浙江大学硕士学位论文 第2 章m d a 介绍 第2 章m d a 介绍 2 1m d a 的出现 m d a 并非是一个新颖而独特的开发方法的创新,而是一个软件工业历史发展 的必然结果。早在i d a 被提出以前,上个世纪8 0 年代c a s e 工具就被发明出来。凹2 1 c a s e 类似于m d a 通过代码可视化,即模型,来主导快速的软件开发,并且通过代 码生成技术来提高开发人员的生产力。但是c a s e 工具最后以失败告终,其中有 很多原因,最主要的原因是由于缺乏标准和规范的支持,各个产商的c a s e 工具 无法相互操作。而一个独立的c a s e 厂商又无法独立的提供全套的c a s e 工具来支 持软件开发全生命周期中的各个部分。虽然c a s e 工具失败了,但是以模型来驱 动软件过程的思想始终流行于软件行业。1 9 9 7 年o m g 采纳u m l 作为标准化的建模 语言。从此u m l 快速地被业界所接受,成了事实上的标准建模语言。各种支持u m l 的工具也被开发出来支持模型驱动的软件开发。但是,人们很快意识到,如果只 用模型驱动软件开发的过程,并不能充分体现模型的价值。于是o m g 提出,将软 件开发的抽象层次提高到模型的高度。模型不再作为“纸上谈兵”图形,而是作 为一种编程语言,直接通过模型来构建系统,就此i d a 被提出。在计算机领域里, 有一个很古老的说法,增加一个抽象的层次,所有的问题都会迎刃而解。h 3 但是, o m g 并不是只为了增加一个抽象的层次而提出i d a 。o m g 已经有足够的技术和标准 规范来支持i d a 。而这也是m d a 与2 0 年前的c a s e 工具最大的不同之处。正是这 些技术和标准规范构成了i d a 庞大的体系结构。由于同c a s e 一样,m d a 也需要大 量工具的支持。这些技术和标准规范保证了各个工具厂商工具的标准化和互操作 的能力。从而避免了m d a 工具重蹈覆辙。 i d a 源自于众所周知的把系统操作的规范从系统利用底层平台能力的方式细 节中分离出来的思想,i d a 提供了一种途径( 通过相关的工具) 来规范化一个平 台独立的系统、规范化平台、为系统选择一个特定的实现平台,并且把系统规范 转换到特定的实现平台。i d a 的三个主要目标是:通过架构性的分离来实现轻便 性、互操作性和可重用性。n 1 2 1 1 传统软件开发 人们经常把软件开发与硬件开发在成熟性方面进行比较。硬件开发领域有长 浙江大学硕士学位论文第2 章m d a 介绍 足的进展,比如:处理器的速度近2 0 年来成指数增长。但是软件开发领域的进 展确很小。就某种程度来说,表现出来的情况确实如此。但是其实软件开发的进 展不能用开发的速度和成本来衡量。 软件开发的进展体现在,人们已经有能力开发更复杂更大型的系统。想象一 下,现在人们可以多么快速和有效地开发一个没有图形界面、没与其它系统集成 的m a i n f r a m e 应用。但是,m a i n f r a m e 开发已经不是主流应用,所以并没有确实 的指标可以看出在这方面的进展到底有多大。 软件开发领域依然有很多主要的问题还没有解决。软件开发是劳动密集型工 作。当有新的技术产生的时候,会一次又一次的导致大量重复的劳动。永远不会 只用一种技术来构建一个系统,系统永远都要和其它系统进行集成。而且更重要 的问题是,需求永远都在变化。 下面各小节是传统的软件开发所面临的主要问题。 2 1 1 1 生产效率 今天我们所知的软件开发过程往往都是由低级的设计和代码驱动的。一个典 型的过程,如图2 1 所示,包括如下几个阶段 1 概念和需求的收集 2 分析和功能的描述 3 设计 4 编码 5 测试 6 ,部署 6 浙江大学硕士学位论文第2 章m d a 介绍 图2 - i 传统软件开发过程的生命周期“1 不管是使用增量开发还是迭代开发,或是传统的瀑布,文档和图表都在第 到第三阶段产生的。其中包括文本和图形化的需求描述,通常有许多u m l 图形, 如用例图、类图、交互图、活动图等等。产生的众多文档给人们整下了深刻的印 象。但是不管怎样,这时候产生的大部分工件全部都只是一些文档,再没有其它 的价值了。 当一个系统随着时间不停地变更时,代码与前三个段产生的文本和图表的之 间的差距会越来越大。因为没有充分的时间来更新图表和其它高级别的文档,改 变经常仅仅发生在代码级别。而且同步文档的价值也值得怀疑。所以为什么人们 要花费宝贵的时间来编写高级别的规约呢? 极限编程的思想已经变得非常的流 行。主要的原因就是人们认识到代码才是软件开发真正的驱动力。开发过程真正 有生产力的阶段是编码和测试。 浙江大学硕士学位论文第2 章m d a 介绍 所以,软件开发分为两种方式,或者是花费时间在软件开发的第一阶段编写 高级别的文档和图表,或者花费时间在维护阶段找出软件真正实现了什么功能。 无论哪一种方式,直接的生产力都源自编写代码。开发人员通常认为编写文档和 图表的工作过于繁重。编写代码才是有生产力的,而建模和编写文档则没有。但 是,成熟的软件项目还是需要完成这些文档和图表。 2 1 1 2 可移植性 软件工业有一些独特的特性把它与其它的工业区别开来。每一年,有时候甚 至是更短的时间,就有新的技术变得流行起来,如:j a v a 、l i n u x 、x m l 、h t m l 、 s o a p 、u m l 、j 2 e e 、n e t 、j s p 、a s p 、f l e x 、w e bs e r v i c e s 等等。许多公司其于 一些原因要紧跟这些新的技术: 客户对新的技术有需求( 如:w e b 的用户界面) 新的技术解决了一些实际的问题( 如:x m l 的可交互性和j a v a 的可移 植性) 工具产商停止对旧的技术的支持转而支持新的技术 新技术为公司提供了切实的好处,许多公司更是无法承担技术落后带来的后 果。因此新技术总是很快地就被采用,已有的系统总是要求被移植到新技术平台 上来。但是由于已有的系统不具备这种可移植性,其结果就是在先前的技术中的 投资失去了其价值,甚至变得一文不值。 2 1 1 3 互操作性 软件系统很少是完全独立的。大部分的系统都需要与其它的系统进行通信, 通常是与已经存在的系统进行通信。一个典型的例子是,在过去的几年中,企业 们建产许多基于w e b 的系统。新的用户界面运行于w e b 浏览器中,但是其中的数 据还是从已经存在的后端系统中获取的。 即使是完全从新构建的系统,也往往应用了多种技术,有新技术,也有旧技 术。比如一个使用e j b 系统,也需要关系数据库作为存贮装置。 多年来,人们认识到,通过组件化的方式构建的系统代替整体构建的系统, 往往系统的升级和维护更加的容易。而且每个组件都是其最合适的技术开发,但 是它们需要相互交互。这就提出了一个互操作性的需求。 2 1 1 4 维护与文档 在前面已经提到,关于文档维护的问题。在整个软件开发的过程中,文档是 浙江大学硕士学位论文 第2 章m i ) a 介绍 薄弱的一个环节,经常是后补上的。大部分的开发人员感觉他们的主要工作是编 写代码,在开发过程中编写文档拖慢了开发的进度,并且文档也没有很好的支持 开发人员的主要工作。所以写文档也被认为是为了某种过程,而不是为了自我的 工作。写文档的唯一动机就是经理们要求必需完成文档。 开发人员的想法当然是错误的。他们的工作是开发一个日后能够被改变和维 护的系统。尽管人们觉得写文档没有多大的用处,但是编写文档还是一项非常基 本的工作。 一种解方案是从代码中生成文档。文档和代码不再是分开的实体,而是统一 编写的。如:e i f f e l 和j a v a 语言所支持的那样。但是这个方法只解决了低级的 文档的问题。考虑到一个软件系统的复杂性,高层次抽象的文档还是必不可少的。 2 1 2 抽象层次的提升 汇编语言程序员虽然不再需要同无聊的0 和1 打交道,但是他们还是用处理 器本地指令集来编程。本地指令集是一个相当低层的概念集。第三代编程语言 ( 3 g l ) 的出现使得生产力出现了飞跃。哪怕最早的3 g l ,比如f o r t r a n 和c o b o l , 都把抽象层提升到比处理器代码集的概念高得多的层次。开发者现在可以用高层 次的结构来编程,语言编译器将这些高层的指令翻译成本地处理器指令。 3 g l 进一步提升了编程环境的抽象层次,而操作系统则提升了计算平台的抽 象层次。如果3 g l 编译器不得不事无巨细地为磁盘和显示操作这样的例程产生详 细的机器代码,那么编译器的任务就太重了,而仅仅产生调用操作系统的磁盘和 显示服务的代码则要轻松得多。因此,通过提高计算平台的抽象性,操作系统部 分地弥补了3 g l 和平台的沟壑。结构化3 g l 进化到了面向对象3 g l ,包括s m a l l t a l k 和c + + ,这些新的语言在不同场合使得重用程序的部分代码变得更为简单。 9 浙江大学硕士学位论文 第2 章b l d a 介绍 图2 - 2 抽象层次的增加1 7 1 随着对复杂功能的需要增长,以及对软件快速面市的需求,改进的开发方法 再次出现了,再一次提升抽象的层次势在必行。而3 g l 的下一个抽象的层次就是 更高级别的建模语言。于是m d a 提出以建模语言为软件开发的主导层次,再一次 提升了软件开发的抽象层次,以此来解决复杂性、可重用性等一系列问题。 2 1 3m d a 的出现 m d a 的出现,为提高软件开发效率,增强软件的可移植性、协同工作能力 和可维护性,以及文档编制的便利性指明了解决之道。m d a 被面向对象技术界 预言为未来两年里最重要的方法学。当今建模的主要问题在于,对于很多企业来 说它只是纸面上的练习。这就造成了模型和代码不同步的问题,代码会被不断修 改,而模型不会被更新,这样模型就失去了意义。弥补建模和开发之间的鸿沟的 关键就在于将建模变为开发的一个必不可少的部分。m d a 的目标是定义一种描 述和创建系统的新途径。m d a 使得u m l 的用途走得更远,而不仅仅是好看的 图画。很多专家预言m d a 开创了软件开发的另一个黄金时代。 2 2m d a 的基本原理 m d a 是一种基于u m l 以及其他工业标准的框架,支持软件设计和模型的可 视化、存储和交换。和u m l 相比,m d a 能够创建出机器可读和高度抽象的模型, 这些模型独立于实现技术,以标准化的方式储存。m d a 把建模语言用作一种编 l o 浙江大学硕士学位论文第2 章m d a 介绍 程语言而不仅仅是设计语言。m d a 的关键之处是模型在软件开发中扮演了非常 重要的角色。1 9 3 2 2 1m i ) a 开发生命周期 在m d a 中软件开发过程是由软件系统的建模行为驱动的。如下图是m d a 的软件开发周期: 图2 - 3m d a 软件开发过程的生命周期” m d a 生命周期和传统生命周期没有大的不同,主要的区别在于开发过程创 建的工件。m d a 开发过程包括p i m ( p l a t f o r mi n d e p e n d e n t m o d e l ,平台无关模型) 、 p s m ( p l a f f o r i l ls p e c i f i cm o d e l ,平台相关模型) 和代码。p i m 是具有高抽象层次、 独立任何实现技术的模型。p i m 被转换为一个或多个p s m 。p s m 是为某种特定 实现技术量身定做的。例如,e j bp s m 是用e j b 结构表达的系统模型。开发的最 浙江大学硕士学位论文 第2 章m i ) a 介绍 后一步是把每个p s m 转换为代码,p s m 同应用技术密切相关。传统的开发过程 从模型到模型的转换,或者从模型到代码的转换是手工完成的。但是m d a 的转 换都是由工具自动完成的。从p i m 到p s m ,再从p s m 到代码都可以由工具实现。 p i m ,p s m ,和c o d e 模型被作为软件开发生命周期中的设计工件,在传统的开发方 式中是文档和图表。重要的是,它们代表了对系统不同层次的抽象,从不同的视 角来看待我们的系统,将高层次的p i m 转换到p s m 的能力提升了抽象的层次。 能够使得开发人员更加清晰地了解系统的整个架构,而不会被具体的实现技术所 “污染”,同时对于复杂系统,也减少了开发人员的工作量。 o m g 的构想是将目前的开发行为提升到更高的抽象层级分析模型级, 把针对特定计算平台的编码工作交由机器自动完成,这样的情况下,业务逻辑与 实现技术被成功地解祸,二者相对独立变化,因此模型的价值在包容已有技术的 条件下被最大化。这种目的根源在于软件开发的现状,在传统的软件开发方法中, 随着项目的进展,设计阶段产生的u m l 模型和代码之间的同步变得越来越困难 代码为了应付新增加的需求和新产生的想法而不断变化,模型却一直停留在 原地不动,这使的模型在一段时间之后就失去了它的价值。o m g 提出了一个最 根本的解决方案一在m d a 中,模型不再是一种辅助工具,而是开发过程的产 品。一个完整的m d a 应用包含:一个权威的p i m t 一个或者多个p s m ;一个或 者多个完整的实现,即开发人员决定支持的所有平台上的应用程序实现。 2 2 2 精确的建模语言 前面提到,在m d a 中,模型的转换是由机器自动处理,而不像传统的软件 开发中同开发人员手工进行模型到模型和模型到代码的转换。而模型都是由建模 语言描述的。建模语言相对于3 g l 已经是提高了一个抽象的层次。所以更高级别 的建模语言势必省略了很多细节。 但是虽然省略了必要的细节,为了能认机器正确的处理和解析模型,就要求 建模语言要足够的精确。这里要指出的是精确性和细节并不是一个概念。以电动 机为例,某公司制造了它,并将其卖给别的公司,别的公司将其用于搅拌机、榨 汁机以及其它家用电器。购买电动机的公司并不在意它内部是如何工作的,这不 属于合同的内容。它们只关心电动机那些会影响同电器其余部分交互的特性。比 如在各个不同转速下马力为多大、电动机外壳的物理尺寸、操作时电磁场的强度 等等。电动机的说明书可以在抽象的层次上非常精确,同时并不提及内部细节。 换句话说,它可能精确地说明了马力、物理尺寸以及场强,但是省略了电动机的 1 2 浙江大学硕士学位论文第2 章m d a 介绍 内部细节。所以,抽象就是省略不相关的细节。抽象并不代表含糊不清。因此, 抽象层次比3 g l 高的模型依然可以精确。 大多数的早期软件建模语言被非正式地定义,并很少注重它的精确性。时常, 人们使用不严密的自然语言来解释建模概念。由于大多数的建模语言在文件中或 在m a r t i n f o w l e r 所提及的设计草图1 3 】中所使用,在那个时期,这个模型概念得到 了充分信任。这种仅仅思想传达了一种设计的本质特性,而把细节留给实现阶段 去处理。 然而,由于模型在这种语言中很可能并且通常是被不同厂商的工具解释成不 同的含义,因此经常导致概念混淆。此外,除非模型解释的问题事先已被明确地 讨论过,否则像这样的分歧还不能被人所发觉,而只是在开发过程的较晚阶段才 能被发现,也就是当问题的结果已明显显现出来的时候。 为了把不明确的概念减少到最少,并且和多数现代其它模型语言形成对比, 第一个标准化的u m l 定义是用元模型来指定的。元模型是一个定义每一种u m l 建模概念特性和这些特性与其他相关概念之间的关系模型。它是用u m l 的基本 子集定义的,并且通过一系列在o c l ( o b j e c tc o n s t r a i n tl a n g u a g e ,对象约束语言) 中正式的强制进行补充 2 3 3 。 2 2 3 可重用的模型转换 m d a 的开发过程可能看起来和传统的软件开发过稷很相似。但是,其中有 一个非常关键的不同之处。在传统的软件开发过程中,从模型到模型的转换,或 者从模型到代码的转换主要是开发人员手工完成的。许多工具虽然可以生成一些 代码,但是通常生成的代码也只是一些模版代码。其中主要编码工作仍然是要手 工完成【4 】。 与之相对的,而在m d a 中,转换是由工具自动完成的。如下图如示。许多 工具能够直接从p s m 来生成代码,这也是原来已有的代码生成工具已经具有的 功能。既然p s m 已经非常接近代码了,所以这一步的转换并不是什么创新。在 m d a 中新的东谣是,从p i m 自动地转换到p s m 。这是m d a 明显的好处。 浙江大学硕士学位论文 第2 章m d a 介绍 图2 - 4m d a 的模型转换过程示意g q e : 而自动模型转换最大的好处就是其可重用性。前文提到过,应用m d a 的开 发方法开发第一个应用程序的时候,与传统的开发方法相比,并不会节省很多开 发时间。但是在后继开发相同平台应用程序的时候,就可以节省大量的开发时间。 2 3m d a 的技术基础 在o m g 的蓝图中,u m l 、m o f 、x m i 、c w m 等一系列标准分别解决了 m d a 的模型建立、模型扩展、模型交换、模型转换这几个方面的问题。o m g 试 图通过标准化的定义,扩大m d a 的应用范围。同时通过这样一个可扩展的建模 语言环境,i t 厂商可以自由实现自己的建模语言,以及语言到可执行代码的映射。 然而不管怎么样,这些都必须处于o m g 的标准化框架之下。 2 3 1 统一建模语言( i 。) u m l ( u n i f i e dm o d e l i n gl a n g u a g e ,统一建模语言) 被m d a 用来描述各种模 型。它并不是为m d a 而生,但是作为目前最为流行的建模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026交管审验考试题目及答案
- 2026河北省文物考古研究院选聘6人备考题库及答案详解(名师系列)
- 2026湖南郴州市郴投大源矿业有限公司招聘1人备考题库附答案详解(精练)
- 2026海尔智家股份有限公司招聘33人备考题库及答案详解(夺冠系列)
- 2026甘肃兰炭医院招聘2人备考题库及答案详解(各地真题)
- 2026湖南益阳市南县城乡发展投资有限公司招聘2人备考题库及答案详解(考点梳理)
- 2026护理基础题考试题及答案
- 幼儿园运动会主题活动名称
- 2026福建厦大附属翔安实验学校招聘非在编合同教师2人备考题库附答案详解
- 2026新疆和田墨玉县人力资源和社会保障局招聘备考题库及答案详解(各地真题)
- 密封条范文模板(A4打印版)
- 二级减速器链传动课程设计
- GB/T 6547-1998瓦楞纸板厚度的测定法
- 水库运行管理试题
- 第10-11课情感分析课件
- 服装制作水平提高QC教学课件
- 无创呼吸机课件
- 一汽大众产品开发过程课件
- 反恐应急演练过程记录表
- 《中国古代文学史》宋代文学完整教学课件
- 兰州兴元铸锻有限责任公司轧钢生产线技术改造项目 环境影响报告书
评论
0/150
提交评论