教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 系统编程教程 · UML语言 · UML编程技巧

XDE里面模式驱动地设计与设计(二)

学院最新推荐文章
教程推荐
『XDE里面模式驱动地设计与设计(二)』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-9-1 
  摘要:
   软件模式,特别是设计模式在现今的软件开发中越来越重要。在许多的标准,工具,以及开发方法中都引入了模式的概念。本文介绍了如何在UML中对软件模式进行建模,并结合具体的工具Rational XDE,对如何定义,如何应用模式作了详细地介绍,并指出了一些相关的问题。

第二部分:XDE中的模式机制

1 概述

   在前一期的系列文章中,我们对模式,特别是设计模式在UML中的建模方法作了简要地,理论上的介绍。现在该要进行实践了。现在支持模式建模并能够基于模式进行应用程序开发的工具并不是很多。Rational XDE是其中最为著名的一个,并且确实提供了极为优秀的功能。

   XDE的Java版有两种,一种是基于Eclipse内核的独立运行版本(目前只支持Eclipse1.0)。另为一个是集成在WASD中的,作为WASD的一个插件同其以其运行(目前只支持WASD 4.0)。实际上WASD使用的就是Eclipse的内核,所以,这两者在功能上(甚至外观上)都没有多大的区别。现在Rational已经被IBM所合并,所以有足够的理由可以相信,在未来的WSAD中,XDE的功能会被更加完美的整合到其中。

   XDE最大的卖点有两个,一个是分析设计同代码编写在是在同一个IDE中完成的,并可以进行正向-逆向工程,完美的实现迭代开发中所需要的模型-代码的映射。另外一个就是这篇文章的主题:模式的定义和应用。你不仅可以使用XDE中预定义好了的23个经典的GoF设计模式,还可以自己定义模式,在开发中应用它们,或者导出供其他人使用。

   模式机制是XDE中实现重用的核心技术。你可以通过这个机制来实现模型元素和其它制品的重用。它提供了Model-to-Model和Model-to-Code的变换功能。这使得你能够将一个涉及的模型作为来帮助一个特定的设计。它还是得你能够将一个模式中的元素内容合并到已存的设计模型中。
2 XDE中的模式描述

   在XDE中,模式的描述基本上遵循了UML所定义的参数化协作标准。但是,由于UML中定义的只是如何来对模式建模,而对如何定义模式,应用模式,以及具体的代码生成并没有过多涉及。因而,XDE在UML的基础上,作了一些合理的扩展。

   首先,我们来看一看Asset的概念。一个Asset是一些软件制品的集合,它们被组织在一起以期能够解决某一个问题。Asset能够通过其定义的可变点(Variability Point)来进行扩展,在进行Asset重用的时候,开发者需要对这些可变点提供具体的内容来充实Asset,以完成Asset的重用。



   Rational现在推崇一种Asset Based Development过程方法,来作为其对RUP的一个补充,Asset就是其关键。这儿并不打算对Asset和Asset Based Development作过多地论述,那已经偏离了这篇文章的主题。从模式这个范畴而言,你可以简单的把Asset看作是模式的定义,描述及其具体的实现。

   在XDE中, Asset表示为一个构造型为<<Asset>>的包。被申明为<<Asset>>的包可以被导出以利于在不同的开发者,甚至不同的工具中重用,只要它们都遵循Asset的规范Reusable Asset Specification。

   模式是一种Asset,但是Asset并不一定是模式。一个模型可以被包装在一个Asset中,而其中并不带有任何的模式描述。XDE能够处理这两种可重用项目。在XDE中,模式表示为包含在一个<<Asset>>包中的,带有模板参数的合作图。有很多种方法可以创建一个<<Asset>>包,但需要注意的是,创建一个UML的包并手工地将其版型设置为<<Asset>>并不会将这个包注册为模式。

   在XDE中,<<Asset>>包可以被导出为一个.ras文件。一个.ras文件实际上就是一个zip文件,不过它有着自己的内容结构,这和J2EE中的.war文件很类似。它使用了rasset.xml和resource.xml这两个xml文件来提供对这个压缩文档的描述。RASAsset.xsd文件是RAS的XML Schema,定义rasset.xml和resource.xml这两个文档的内容格式和含义。其它的文件是模型和文档制品。

   在XDE中,模式由如下的一些部分组成:

   Asset

   在一个模式的底部是一个版型为<<Asset>>的包。模式中涉及到的所有内容都包含在这个包中,它也是用来导出符合RAS规范的可重用模式的逻辑单元(实际的物理封装单元可是一个包,也可以是一个模型)。模式也可以不存在于Asset包中,但是因为模式的创建目标,就是希望能够通过RAS规范来进行重用的,所以并不推荐使用这种方法。

   模板协作(Template Collaboration)

   在模式Asset中就是template collaboration,它是模式的核心。几乎模式所涉及的所有内容都定义在其中。模版参数的属性可以通过Pattern Explorer来查看。

   模板参数(Template Parameters)

   一个模板协作包含有一个或者多个模板参数,每一个定义一个特定的模式输入。例如,如果你想有一个名为MyClassInput的参数,你可以使用那个名字创建一个模板参数。

   类型元素(Type Element)

   每一个模板参数都有一个类型,通过其Type属性来定义。例如,如果模板参数的类型是class,那么这个模板参数就只接受类作为其参数值。这同在定义一个函数的参数时,需要指定其参数的类型(比如int)是一样的。

   基础上下文(Root Context)

   一个模式还有一个基础上下文,在创建模式时所引入的其它元素被组织在这个地方。这些元素通常都会被直接创建,需要很少或者根本不需要参数来创建它们。比如在一个模式中会被用到的一个支撑类。缺省情况下,基础上下文就是Asset包。你可以在Pattern Explorer中将其切换到其它的包中。

   实际上在模式所在的Asset包中,可以存在任何类型的元素,比如描述模式结构的类图,描述模式中参与者之间的交互的顺序图,等等,都可以被放在基础上下文中,在模式被扩展的时候一起被复制到扩展点处。

   为了提供对模型的可视化开发和表示,XDE在Eclipse的基础上,添加了新的Model透视图(Perspective)。实际上所有模型相关的内容,不仅仅是模式,都是在这个透视图中实现的。而对模式,除了所有模型公用的Model Explorer外,还有一个Pattern Explorer和Pattern Property视图来提供对模式的定义和描述。对这些界面的使用都还比较简单,关键的是要搞清楚那些属性,设置值是来做什么的。除了上面的那些标准的Eclipse图形元素外,XDE中还引入了Pattern Wizard来帮助你完成模式的应用。

3. 模式的应用

   XDE模式的应用,可以看作是一种基于模版(Template)的方法:定义好的模版参数,通过创建,或者同已有模型中同模版参数类型一致的元素的融合,来完成对模式的扩展。模式中没有被定义为模版参数的元素,将在扩展点处被自动创建。

   在应用一个模式的时候,有两个基本概念:

   1、扩展点(expansion location):这是在模式被应用后,生成的类和其它元素被放置的地方。即使是模式并没有生成任何的元素,而且其基本上下文中也没有涉及到任何得元素,对于模式的应用而言,这个扩展点仍然是需要的。

   2、绑定(binding)和绑定点(binding location)。绑定是模式中的参数被赋予具体的参数值的过程,这个参数值可以是用户指定的一个模型元素,也可以是用缺省值自动创建的元素。当一个模式被应用之后,在指定的绑定点中就有一个绑定对象被创建,它被用来维护这个模式的模版参数和具体的参数值之间的绑定关系。通常绑定的作用是用来在修改了模式之后,重新应用模式,而不需要在通过Pattern Wizard来再次设定应用模式所需的参数值,你也可以直接在绑定对象中修改被绑定的参数值。在缺省的情况下,绑定点和扩展点是同一位置。

   有了这两个基本的概念后,我们可以把模式的应用简单的描述为如下的过

[1] [2] [3] 下一页  

作者:无 来源:无
】【关闭窗口
·上页:
·下页:
相关文章
     系统编程教程 - UML编程技巧
普通教程净室软件工程及发展
普通教程XDE里面模式驱动地设计与设计(二
普通教程原型办法论---关于软件原型办法
普通教程XDE里面模式驱动地设计与设计(三
普通教程XDE里面模式驱动地设计与设计(一
普通教程在Weblogic上配置Hibernate为JN
普通教程从工程实践谈软件系统设计
普通教程用Rational Rose和UML设计J2EE运
普通教程用Rational Rose和UML设计J2EE运
普通教程用Rational Rose和UML设计J2EE运
推荐教程Visio 2002技术图表漫游
普通教程软件工程连载翻译文章
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光