CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [分享] 利用Rational对.NET程序进行建模
phplove
明星会员
Rank: 11Rank: 11Rank: 11Rank: 11



UID 254169
精华 9
积分 23522
帖子 2044
威望 11186
ZD币 2982 元
阅读权限 230
注册 2007-10-10
状态 离线
  楼主
发表于 2007-10-21 12:58  资料  个人空间  短消息  加为好友 
开发者在线

利用Rational对.NET程序进行建模

IBM Rational建模工具
Rational Software Modeler、Rational Application Developer、Rational Systems Developer和Rational Software Architect——这些全都是Rational建模工具——构建于Eclipse集成开发环境(integrated development environment,IDE)之上。它们提供可视化的绘图工具,以帮助您了解现有应用程序,或者更容易地创建和理解新的应用程序。
扩展了Rational Modeling Extension for Microsoft .NET(简称Rational Modeling Extension)的Rational Software Modeler(或者Rational Systems Developer或者Rational Software Architect)提供由UML模型生成C#代码的功能。它还提供代码绘图工具,以帮助您了解现有的Microsoft .NET应用程序。本文将介绍如何在Rational Software Modeler(或者Rational Systems Developer或者Rational Software Architect)中处理Microsoft .NET解决方案,以及如何利用代码建模技术从现有的C#代码和.NET汇编生成各种图(Class、Sequence和Browse Diagrams)。本文没有涉及到从UML模型生成C#代码的内容。以下,Rational Modeling Extension指的是安装在Rational Software Modeler里面的Rational Modeling Extension。
Code Modeling(代码建模)是什么?
我们所称的code modeling(代码建模)简单地说就是IBM Rational建模工具中的一种技术,它可以帮助您利用UML Notation,并且在不依赖于本别地保留的UML语义(抽象语法)的情况下,图形化地描述代码级概念。用UML表示代码元素有很多好处。最重要的是,UML是开放的标准,并且是软件开发团体所知道的。通过创建可视地表示系统的内部构件的图和视图,可以很容易地了解任何复杂的系统。在3GL领域,例如,Java和C++,利用代码建模技术很容易做到这件事。
代码建模与像IBM Rational Rose或IBM Rational XDE这样的产品所提供的传统的双向工程(Round Trip Engineering,RTE)是不同的,因为它具有以下特征:
◆使用UML标记(具体语法)
◆不需要了解UML语义(抽象语法)
◆不需要了解3GL语义如何映射到UML语义
◆与传统的RTE相比较,消除了3GL-to-UML映射同步的开销
总是如实并即刻地用UML标记描述代码,将变更映射到代码,并且当通过图进行编辑时,可以马上对代码进行更新。
与传统RTE相比较,大大地简化了团队工作流
能够用于Mixed-Modeling(混合建模),就是依靠真正的UML语义元素,以及DDL(表)描述,和其他语义范畴来描述代码元素
Rational Modeling Extension for Microsoft .NET简介
Rational Modeling Extension用来补充Microsoft Visual Studio 2005的功能,以及Visual Studio中的Class Designer特性的功能(Class Designer也是上面描述的代码建模的一种实现)。Rational Modeling Extension不是要代替Class Designer特性。所以,Rational Modeling Extension不提供完整的可视代码编辑功能,就像Rational Systems Developer、Rational Application Developer,或Rational Software Architect中的Java或C++代码建模支持。
在.NET中,这是Class Designer的工作,Rational Modeling Extension只是提供C#(基于源代码文件)和CTS类型(基于汇编中包含的二进制码)的只读的可视化表示。通过用Class Designer不支持的可视化特性来补充Class Designer,已经足够提供重要的价值了。
虽然Rational Modeling Extension允许您像Class Designer那样使用类图来可视地描述C#(Classes、Interfaces、Structs、Delegates,等),但是它还支持您通过观察Browse和Topic图中的各种.NET元素之间的关系来审阅应用程序的结构。此外,它还能让您在序列图中描述.NET类之间的典型或者what if的交互。Class Designer不支持Topic、Browse,或序列图。
在Rational Modeling Extension中处理Microsoft Visual Studio工程
对于绝大多数.NET开发人员来说,Microsoft Visual Studio是编写和调试C#代码的首选IDE。Rational Software Modeler、Rational Systems Developer,和Rational Software Architect代表用UML2设计应用程序的市场导向的解决方案。RationalModeling Extension的设计预计到了这一点,并且提供了用户可以在Rational Software Modeler(或者Rational Systems Developer或者Rational Software Architect)中处理Visual Studio工程的方法。利用Rational Modeling Extension,用户可以用UML可视地设计他们的.NET应用程序,然后使用转换来生成Visual Studio工程中的代码,并且由此,利用Visual Studio(包括Class Designer特性)和Rational Modeling Extension中的代码可视化功能继续进行代码开发和调试。
从技术上说,Rational Modeling Extension使用Visual Studio可扩展API,从关于其内容(像工程所引用的C#文件和汇编)的Visual Studio C#工程中获得信息。Visual Studio可扩展API只能从打开的解决方案中查询并返回信息。由于这一限制,只要Rational Modeling Extension在使用中,包含了将要在Rational Modeling Extension中进行建模的C#工程的解决方案就应该在Visual Studio中是打开的。
将Visual Studio工程导入到Rational Modeling Extension中
要处理Visual Studio C#工程,您首先要将工程导入到Rational Modeling Extension中。这可以通过使用.NET Solution Import向导很容易地做到,该向导可以从File > Import > Others > .NET Solution打开(如图1所示)。
图1:.NET Solution Import向导




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
phplove
明星会员
Rank: 11Rank: 11Rank: 11Rank: 11



UID 254169
精华 9
积分 23522
帖子 2044
威望 11186
ZD币 2982 元
阅读权限 230
注册 2007-10-10
状态 离线
  沙发
发表于 2007-10-21 12:58  资料  个人空间  短消息  加为好友 
Import向导的第一页上应该填写解决方案文件的路径(如图2所示)。向导将解析该解决方案文件,从而找到包含该解决方案的C#工程,而拥有相同名称的相应Eclipse工程将在Eclipse工作区中创建(如图3所示)。导入器还将创建Eclipse到该工程所使用的C#文件和.NET汇编的链接。这些链接用于获取关于C#工程内容的信息。这些链接存储在相应Eclipse工程的.project文件中。
图2:.NET Solution Import向导
图3:.NET Solution Import向导
在您成功地将Visual Studio .NET解决方案导入到Eclipse中之后,Rational Modeling Extension将切换到.NET透视图。您可以利用Project Explorer来查看工程内容。注意,工程内容只能通过Project Explorer视图(与透视图无关)来查看,不能通过其他视图来查看。
一个导入的工程实例显示如下。图4展示了Visual Studio中的Solution Explorer视图,图5展示了Rational Modeling Extension Project Explorer视图中的导入工程的相应视图。
图4:MS Visual Studio Solution Explorer视图
图5:Rational Modeling Extension Project Explorer视图
您可以扩展.NET Assemblies或C#文件,以查看其中定义的类型,并且您可以在图中将这些类型可视化(独立的图,和属于实际的UML模型中的图)。您还可以通过扩展封装它们的相应类型来可视地查看C#(利用语句、C#属性,操作,等等)。




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
phplove
明星会员
Rank: 11Rank: 11Rank: 11Rank: 11



UID 254169
精华 9
积分 23522
帖子 2044
威望 11186
ZD币 2982 元
阅读权限 230
注册 2007-10-10
状态 离线
  板凳
发表于 2007-10-21 12:59  资料  个人空间  短消息  加为好友 
可视化:Rational Modeling Extension提供的可用性特性
Visualize菜单
Visualize菜单,如图6所示,允许您将所选的元素添加到新的序列图、Topic图,或类图中。您还可以利用Explore in Browse Diagram命令来探究所选的元素。当然,可用的选项依赖于所做的选择。例如,如图6所示,如果所选的元素是CTS Enumeration,那么序列图选项是不可用的。
图6:Visualize上下文菜单
Visualize命令可视化.NET元素所需的时间总量依赖于以下因素:
◆C#工程的大小
◆所选的元素数量
◆查询深度
在一些情况下,由于这些因素,可能需要若干秒来完成Visualize命令。
Browse和Topic图
如前面所提到的,Visualize菜单允许您在Browse图中探究.NET元素。图7例举了一个Browse图,它是提供了探究现有元素及其关系的快速方法的临时、不可编辑的图。Browse Diagrams是为了了解代码结构和其相关性特性而走查代码的好方法。
图7:进行可视化的Browse图
Browse图允许您选择想要查看的关系,当您点击Apply时,利用新的查询将生成新的browse图。您还可以利用工具栏上的导航按钮导航Browse图。由于Browse图是临时的,所以不能保存。然而,您可以通过访问图上的File > Save As弹出菜单,将browse图的快照保存为常规的UML图(.dnx)或Image文件。
Topic图可以用于快速地创建.NET元素之间关系的动态视图。图8展示了Topic向导提供的预定义查询,以便您可以查看这些关系。
图8:Topic图预置
Topic图——像Browse图一样——是查询驱动的,并且不能编辑,但您可以定制查询(这将导致图的刷新)。您还可以只刷新该图,从而使代码变更反映在图上。
Sequence diagrams(序列图)
序列图展示了对于具体交互的.NET元素实例之间的消息流的顺序。Visualize菜单也允许您创建序列图(图9)和创建新的交互。
图9:序列图
如您所看到的,您可以在序列图中的生命线之间创建各种类型的消息,并选择现有的操作作为消息的标记。局限性是您不能创建新的消息类型,而只可以选择现有的消息。




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
phplove
明星会员
Rank: 11Rank: 11Rank: 11Rank: 11



UID 254169
精华 9
积分 23522
帖子 2044
威望 11186
ZD币 2982 元
阅读权限 230
注册 2007-10-10
状态 离线
  地毯
发表于 2007-10-21 12:59  资料  个人空间  短消息  加为好友 
Show Related Elements
Show Related Elements是一个非常有用的特性,它可以帮助您查询图上的相关元素。在Rational Modeling Extension中,通过右键单击类图上的任意.NET元素可以进行Show Related Elements动作。Show Related Elements选项出现在Filters子菜单中。
Rational Modeling Extension还提供增强的Show Related Elements对话框,如图10所示。对话框提供了您可以用来快速查看相关元素的预定义的定制查询。默认Details是折叠的,对话框中只有左边窗格是可见的。单击Details按钮,您可以查看实际的关系,以及与所选查询相关的其他设置。对查询所做的任何变更都可以存储起来为将来使用。
图10:.NET元素的Show Related Elements对话框
您可以选择Incoming、Outgoing,或Both方向。例如,如果您想要看到所选元素的超类层次,那么选择Outgoing。为了查看子类层次,选择Incoming。
还值得注意的是.NET Show Related Elements Filters Preferences页,如图11所示。
图11:.NET Show Related Elements Filters的Preference页
当执行Show Related Elements动作时,参数可以让您选择滤出.NET Assembly类型。注意该设置将影响查询相关元素的所有操作(例如,Browse图和Topic图上的查询)。
Visualize existing > .NET type 菜单
Visualize existing > .NET type 菜单,如图12所示,位于图的弹出菜单上。它允许您可视化图上任何现有的.NET类型。
图12:Visualize existing > .NET type 菜单
当您选择该菜单时,将启动Visualize .NET type对话框,它允许您选择想在图上可视化表示的.NET类型。该菜单可以让您免于首先在Project Explorer中找到.NET类型,然后将其拖到图中,或者访问Visualize > Add to current Class Diagram命令。Visualize .NET type对话框只允许您选择工作区中的类型。
Rational Modeling Extension中导航到C#代码
通过双击Project Explorer中的元素,或者双击从类图中可视化来的C#元素(注意这在Browse图中是不可行的,在Browse图中,双击操作有通过一系列图导航的特殊含义),您可以很容易地导航到Visual Studio中的C#文件中恰当行。当您双击Rational Modeling Extension中的C#元素时,控制将切换到Visual Studio,并且光标将置于C#文件中的恰当行上。
将C#代码更新导入Rational Modeling Extension
如本文前面所叙述的,Rational Modeling Extension目前的版本不支持C#代码的可视化编辑,但用户可以在Rational Modeling Extension中刷新导入的工程和图,来快速地反映Visual Studio中所做出的任意代码变更。要这样做,您需要按照以下这些简单的步骤进行。
首先,在Visual Studio中对C#文件做出您的修改。
在Visual Studio中保存工程。
接下来,切换到Rational Modeling Extension。
右键单击需要更新的Visual Studio工程的根文件夹,并单击Refresh。
当您单击Refresh时,就从Visual Studio中得到了更新了的工程内容,并且Project Explorer和各种图中相应的元素也更新了。
结束语
Rational Modeling Extension提供了大量关于MS .NET可视化建模的特性。如前面所提到的,除了本文中所介绍的C#和CTS绘图及可视的探究能力,还有以下能力,它们是其他文章的主题:
◆从UML转换到C#
◆从C#转换到UML
◆使用UML模型、转换,及代码建模的组合来实现对架构管理的Mixed Modeling(混合建模)方法
◆使用UML到C#和C#到UML转换的组合,以及IBM Rational model fusing技术来实现架构管理的Architecture Reconciliation方法
Rational Modeling Extension为.NET开发带来了全新的体验,它极大地支持利用UML建模技术来设计应用程序。除了利用一些命令,例如Show Related Elements,还有利用类图、序列图,Topic和Browse图,您可以很容易地了解现有应用程序的结构和设计。




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
 



当前时区 GMT+8, 现在时间是 2008-7-6 00:55

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.076634 second(s), 7 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版 - WAP