一、摘要
Visual Studio 2010支持双向工程,支持5款UML图,分别为:类图(Class Diagram)、序列图(Sequence Diagram)、用例图(Use Case Diagram)、活动图(Activity Diagram)、组件图(Component Diagram).但是,类图中可以放置包图(Package Diagram)相关元素,所以实际上可以让开发人员绘制6款图.
二、双向工程
双向工程包含了正向工程和反向工程。正向工程是指从UML图自动生成程序代码,而反向工程是人程序代码自动生成UML图。
三、UMl图
在最新版的UML2中包含了14款图.分别为:类图、用例图、序列图、活动图、组件图、部署图、对象图、通信图、状态图、包图、组合结构图、交互概览图、时间图、造型图。
下文将会对每个UML图简单的说明:以后文章中,则是主要介绍Visual Studio中包含的6种图,若有兴趣的朋友,可以自己查阅其它UML图的相关资料。
1,类图(支持)
类图表示系统内部的静态结构,可以用来将程序代码分门别类,对开发人员而言,是非常重要的UML图。如果自动生成代码,或者进行反向工程根据代码生成图,类图通常都是首选。
2,用例图(支持)
用例图表示系统对外提供的服务或功能,是开发人员用来跟用户沟通的主要UML图之一。
3,序例图(支持)
序例图用来表示系统内部一群对象之间互传信息的情况,配合用例来使用的话,可以针对每一个用例图设计系统内部的一群对象实现用例的运行情况。
4,活动图(支持)
活动图和用例图是最适合拿来跟用户沟通的两种UML图。活动图就像一般常用的工作流程图,非常容易上手。
5,组件图(支持)
组件图表示系统的组成组件(component)、组件所提供的接口(Interface)或者是所需要的接口,以及组件之间的依赖关系。组件指一个具体模块单元(modular unit),但是必须具备定义明确的接口(well defined interface),并且易于替换(replaceable)。
6,部署图(不支持)
组件图和部署图都是用来表示实际元素的图,前者表示实际的软件程序,后者表示实际的硬件设备。实际上,部署图最常用来表示系统的硬件设备及架构。
7,对象图(不支持)
对象图用来表示系统在某一时刻下的快照(snapshot).快照内容主要包含一群对象(object),以及这些间的连接(link).
8,通信图(不支持)
通信图(Communication Diagram)跟序列图的功用相似,都是用来表示一群对象互传信息的交互情况。只是,通信图采用网状图形,强调对象之间的链接。而序列图采用栅栏状图形,强调集资发送的信息。
9,状态图(不支持)
状态图(State Machine Diagram)用来表示在某一种对象的生命周期中,由于事件(event)触发导致状态(State)的改变情况。开发人员常用状态图来设计某一种对象的行为。
10,包图(支持)
UML一直都有“包”(package)的概念和相关元素,只是没有特别提出一款包图,直到UML 2才正式提出包图。包是一种很常见的分组机制(grouping mechanism),用来将相关的元素分组。常见开发人员用包来表示“子系统”(subsystem),并且使用包图来表示子系统之间的依赖关系。
11,组合结构图(不支持)
组合结构图的实用性并不是在一般的业务系统,而是侧生于实时系统或嵌入式系统。它表示某一对象的内部结构,其内部由一组小对象组成。这种图有两个特色:其一,它锁定的范围是对象内部,而不是一般业务系统的系统内部;其二,它强调对象内部的组成对象,一般在业务系统中对象是平等的,而组合的结构就比较少一些。
12,交互概览图(不支持)
交互概览图是活动图和序列图的混合版,其主要结构像活动图,表示流程,但是参与流程的节点不是一般的动作(action),取而代之的是“交互”(interaction)片段。一个交互片段的内容,正是序列图的一小段交互片段。
13,时间图(不支持)
前面提到的状态图用来表示对象因为事件的触发而转换状态,所以它着重于事件与状态的关系。而时间图也是在表示状态变化,但是它着重于状态与时间的关系,用来表示对象在某一状态停留了多久的时间后,将转换到下一个状态。
14,造型图(不支持)
造型图跟前面提到的13种图截然不同,而且它也是UML 2.2最新提出的一款图。造型图主要用来扩展UML,让UML可以成为另一套以UML为基础的方言.