Top
首页 > 老文章 > 正文

Visual Studio2010的UML模型浏览器功能展示

模型工程(Modeling Project)是模型数据、图表文件和其他用户想要存储的资源(如Excel、Word文档)的容器。用户可以在任何新建的或者已有的解决方案中添加该工程,在解决方案中同样支持不同语言程序的工程(C#、VB、Web等)
发布时间:2010-06-01 04:45        来源:        作者:高阳
【赛迪网报道】Visual Studio 2010中新增加了“Modeling Project”的工程模板,通过这个工程模板可以创建模型工程,在模型工程中再创建UML图。也就是说UML类图、活动图、用例图和组件图,只能在模型工程中才能创建,并且可以按照模型架构进行设计与层次创建。 模型工程(Modeling Project)是模型数据、图表文件和其他用户想要存储的资源(如Excel、Word文档)的容器。用户可以在任何新建的或者已有的解决方案中添加该工程,在解决方案中同样支持不同语言程序的工程(C#、VB、Web等)。模型工程同样也支持版本控制。 创建模型工程。打开VS菜单中的New|Project|Modeling Project命令,如图1所示。
创建模型工程后,在Solution Explorer下有一个默认创建的文件夹“ModelDefinition”,里面的*.uml文件是建模工具自动添加和维护的,不需要用户任何的手工干预。它们存储了UML图内部所对应的模型关系定义,这是整个模型工程的核心。*.uml文件和模型中的Package对象是一一对应的,当创建好一个新的模型工程后,会有一个默认的ModelDefinition.uml文件被创建,它对应了整个模型的根Package,也就是“UML Model Explorer”窗口中的根节点,如图2所示。
在UML Model Explorer中用鼠标右键单击,选择Add|Package命令,或者创建一个UML Class Diagram图(在图上添加),当在模型中创建一个新的Package对象时会对应生成一个*.uml文件。 应用&实践 模型浏览器――UML Model Explorer的基本功能展示 在Visual Studio 2010 Architecture和Ultimate版本中,新增加了一个工具窗(UML Model Explorer)来帮助用户理解和使用所创建的UML模型。它是一个树状结构的WPF组件,用来展示UML模型中的层次结构。在这里,模型是指所创建的Modeling Project中的内容。一般来说,UML Model Explorer中的根节点用来表示Modeling Project本身。具体步骤如下: ①打开VS,新创建两个Modeling Project(命令为“My First Modeling Project”和“My Second Modeling Project”)。打开UML Model Explorer后会发现两个与Solution Explorer中相对应的节点,如图3所示。
由上图看出,UML Model Explorer是创建的模型的逻辑视图,而Solution Explorer展示的是物理视图,例如,所创建的模型是存储在哪个文件中。每次创建一个Modeling Project,UML Model Explorer中都会显示一个新的节点。这个节点其实是一个UML Package,并使用与Modeling Project相同的名字。所有在这个Modeling Project中创建的模型元素都会显示在该根节点下。创建Modeling Project是唯一在UML Model Explorer中创建根节点的方法。 在Visual Studio 2010中,所有显示在根节点下的模型元素都存储在Modeling Project中对应的ModelDefinition文件夹中。事实上,每当有UML Package创建时,都会有对应的*.uml文件产生。所有在该UML Package中的元素(不包括新建的UML Package),都存储在对应的*.uml文件中。如果在一个Package中创建了新的Package,新的*.uml文件会被创建出来,用来存储这个Package中包含的元素。 ②创建元素。首先在“My Second Modeling Project”中新建一个class。然后在UML Model Explorer中,用鼠标右键单击该根节点,并选择Add|Class命令。以此类推,可以创建多个元素。每个节点右边的灰色文字表示该节点的类型,如图4所示。
例如,当选择Class后,新创建的Class就会出现在“My Second Modeling Project”节点下,并处于可编辑状态,可以修改该节点的名字。若要修改已存在的节点名称,可以通过双击该节点的名字区域,或者选中该节点后按下“F2”键,使之处于可编辑状态。 ③用鼠标右键单击Class或者Interface元素节点,添加Operation和Attribute,如图5所示。
④除了可以在UML Model Explorer中直接添加元素外,我们还可以拖曳新的元素至图表中,这些元素也同样会在UML Model Explorer中显示出来。例如,可以在“My First Modeling Project”中创建新的UML Class Diagram。通过在Solution Explorer中用鼠标右键单击该工程节点,选择Add|New Item命令,在弹出的对话框中选择“UML Class Diagram”,并给它一个名字“ClassDiagram”,单击“OK”按钮。在Solution Explorer中会看到一个空的UML Class Diagram文件,如图6所示。
⑤在刚才新建的图表中创建两个Class,并用UML Association将两个类连接起来。现在在UML Model Explorer中,会看到在“My First Modeling Project”节点下多出来两个Class节点。Association关系也会在节点中表示出来,如图7所示。
在默认情况下,所有图表的“Linked Package”属性都会设置为代表Modeling Project的UML Package。当该图表中有新的元素被创建时,该属性用来表示新创建的元素应该包含在哪个Package中。此处的属性被设置为“My First Modeling Project”,如图8所示。
⑥在“My First Modeling Project”节点下创建三个UML Package。每次创建新的Package都会导致新的*.uml文件生成。查看Solution Explorer会发现在“My First Modeling Project”中的ModelDefinition文件夹中有三个新的*.uml文件,每个对应一个新建的Package,如图9所示。
⑦现在我们将创建三个UML Class Diagram并关联到这三个Package上。用鼠标右键单击“My First Modeling Project”,在菜单中选择Add|New item…命令,然后选择“UML Class Diagram”命令。重复三次,可以创建出三个UML Class Diagram。然后,在Solution Explorer中双击打开UMLClassDiagram1.classdiagram文件,在Properties窗口中设置图表的“Linked Package”属性,就能将该图表与名为“One”的UML Package连接起来。以此类推,将UMLClassDiagram2与名为“Two”的Package、将UMLClassDiagram3与名为“Three”的Package关联起来,如图10所示。
⑧粘贴引用(Paste Reference)和删除元素。 UML Model Explorer提供了一个很重要的功能,可以让不同图表上显示相同的元素。我们只要将元素从UML Model Explorer中拖曳到图表上即可。首先,将UML Model Explorer中的Class1节点分别拖曳至三个新创建的UML Class Diagram中,将Class2节点拖曳到cd UMLClassDiagram1中,如图11所示。
这样,Class1同时显示在三个图表中,Class2显示在cd UMLClassDiagram1中,Class1与Class2之间的关系自动显示在其中。通过图表中Class1图形的ToolTip或者将图形变宽就能够看到它的全名,例如cd UMLClassDiagram2图表,是用来表示该元素虽然显示在该Package中(先前图表本身已经关联到一个Package里),但其实并不属于它。Class1属于My First Modeling Project这个Package,UMLClassDiagram1代表名为“One”的Package。 现在,UML Model Explorer有Class1元素。如果我们在UML Model Explorer中新增一个Operation,新增加的Operation会同时显示在三个图表中,而三个图表中的Class1图形只是镜像,指向同一个元素。修改Class1上任何一个数据,图表上都会有相应的改变。 同样,在任何一个图表中对Class1图形进行操作,例如增加一个Attribute,也会导致元素本身的改变,然后会将修改更新到所有其他图表中。复制UML Model Explorer中My First Modeling Project的Class1,从UML Model Explorer中拖曳是创建元素镜像最直观的方法,也可以通过右键菜单的“Paste Reference”命令做到这一点,如图12所示。
当在图表中删除这些图形时(直接按“Delete”键或者通过右键菜单选择“Remove From Diagram”命令),删除的只是镜像,而不是元素本身。所以,当UMLClassDiagram1上的Class1被删除时,所有其他的镜像及在UML Model Explorer上的元素仍然会被保留。如果在UML Model Explorer上删除Class1,或者在任意一个图表里选择Class1图形,然后通过右键菜单选择“Delete From Model”命令,则删除的是元素本身,所有该元素的镜像也会一起被删除,如图13所示。
注意:UML Model Explorer是Modeling Project的逻辑视图。它表示所有能够在不同图表上显示的元素。这些元素不仅仅可以在图表上操作,也可以通过UML Model Explorer操作。
加载更多

专题访谈

合作站点
stat