myeclipse UML建模手册 word版本.docx
《myeclipse UML建模手册 word版本.docx》由会员分享,可在线阅读,更多相关《myeclipse UML建模手册 word版本.docx(27页珍藏版)》请在冰豆网上搜索。
myeclipseUML建模手册word版本
一、介绍2
1.UML概念及常见建模工具2
2.MyEclipse的UML工具2
二、系统需求3
三、创建UML模型仓库3
四、创建及修改UML图4
3.创建UML图形4
4.类图和常见修改功能6
5.正向工程-UML类图生成java代码11
6.反向工程-java代码生成UML类图13
7.绘制工具16
8.用例图(UseCaseDiagram)17
9.活动图17
10.序列图(SequenceDiagram)19
1、介绍
1.UML概念及常见建模工具
UML:
统一建模语言(UnifiedModelingLanguage,UML),是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。
它捕捉了被构建系统的有关决策和理解,用来理解、设计、浏览、配置、维护以及控制系统的信息,可以与所有的开发方法、生命阶段、应用领域和媒介一同使用。
简言之,就是一组标准化的可扩展的可视化建模语言,结果表现为图形,注意它不是一门编程语言,只用来描述系统,不能用来开发和实现系统功能。
1997年,OMG组织(ObjectManagementGroup对象管理组织)发布了统一建模语言。
UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。
UML提出了一套IT专业人员期待多年的统一的标准建模符号。
通过使用UML,这些人员能够阅读和交流系统架构和设计规划--就像建筑工人多年来所使用的建筑设计图一样。
2.MyEclipse的UML工具
MyEclipse的UML建模工具实际上是基于ArgoUML开发的,并加入了反向工程和正向工程的能力,可以从代码生成UML图或者从图生成代码。
MyEclipseUML为开发人员提供了下面的UML功能:
●UML图:
用例图,类图,序列图,协作图,状态图,活动图,部属图
●集成的图片编辑器,大纲视图和属性视图
●UML透视图
●不限位置的绘制工具
●通过热区直接编辑接点和连接内容
●图片保存在UMLModelRepository(UML模型仓库)文件中(例如cardemo.umr)
●包含UML模型文件的项目类型以及文件存储位置不受限制
●从模型生成Java代码
●导出图形为图片文件,支持多种格式:
GIF、PNG、PS、EPS和SVG
●从任何MyEclipseJ2EE或者EclipseJava项目生成类图
⏹批量反向工程处理任何项目或者源代码目录,Java包或者单独类的组合
⏹从Eclipse的PackageExplorer透视图拖拽任何Java类或者接口添加进UML类图上
⏹自定义反向工程设置
●从Outline视图将任何UML元素拖放到任何兼容的UML图中
●对类图进行自动布局
另外,MyEclipse还提供了专门的UML透视图,来便于进行UML的设计工作。
MyEclipse
UML透视图提供了精心调整过的的界面组织来方便进行建模活动。
默认视图包括UML
DiagramEditor(UML图形编辑器),Outline(大纲)视图,已经自定义的Properties(属
性)视图。
工具栏上的操作按钮进行了调整和增加,这样依赖使创建新图的过程快速和方便
的多。
图1列出了对各部分进行了标示的UML透视图。
图1MyEclipseUML透视图
2、系统需求
由于MyEclipse集成ArgoUML实现UML的开发功能,而ArgoUML当前版本则需要JDK/JRE1.5或者更高版本,因此必须安装这些版本的JDK/JRE之后运行MyEclipse才可使用。
当然MyEclipseAllINOne版本本身已经自带了JRE1.5,无需额外配置。
对操作系统的支持上,则支持Windows7/8,WindowsVista,XP,2003和2000以及Linux,而苹果的Mac系统则不支持,这是因为SWT本身的一个向SWT中插入Swing组件的Bug所导致的。
3、创建UML模型仓库
MyEclipseUML使用一种特殊的文件格式来保存所有的UML图形以及模型元素到单
一文件中,即UMLModelRepository(UMR)。
UMR文件的后缀是".umr",并且在PackageExplorer视图中以图标的方式进行区分显示。
在Eclipse项目中可以创建任意多个UMR文件。
其实UMR文件的真实存储格式是ZIP,可以使用7Zip,WinZIP,WinRAR等软件打开,就跟JAR文件的存储格式差不多。
使用MyEclipseUML创建图形的第一步工作,就是用新建UML向导来创建一个UML模型仓库文件(UMR)。
为了方便起见,我们事先已经创建了一个名为UMLTest的Java项目。
具体步骤如下:
1.启动新建UMR向导。
可以通过使用菜单File>New>UMLModelRepository,或者点击工具栏上的按钮
,也可以来启动创建UML模型文件的向导。
2.在Enterorselecttheparentfolder(输入或者选择父目录)一栏中选中要保存文件的项目,在UMLModelRepository(UML模型仓库)一栏中,输入文件名,在UMLRootModelName(UML根模型名称)一栏中,输入想要的名字(图2左)。
图2新建UMR向导及空模型文件
3.选择Finish按钮,关闭向导对话框,并在刚指定的位置下创建UML文件,稍后MyEclipse会启动UMLDiagramEditor(UML图形编辑器)。
默认情况下新建的UMR文件只有一个空的类图(图2右)。
4.切换MyEclipse透视图为MyEclipseUML,这样便于修改和创建UML图。
4、创建及修改UML图
3.创建UML图形
单个UML模型文件可以包含任意数目的和任何类型的UML图形。
向文件中添加图形,需要在编辑器中打开UML文件,然后从编辑器工具栏上左数第一个按钮,从下拉列表中选择要建的图的类型即可(图3)。
另外还可以从Outline(大纲)视图下点击视图中的类似按钮,也可以创建图形。
支持的UML图形列表列表则参考表1。
图3使用编辑器工具来创建图形
表1可以创建的UML类图型列表
当一个模型文件中加入了多个图之后,如何进行切换到想编辑的图呢?
有两个地方可以进行图之间的切换:
第一个地方是在大纲视图,双击需要修改的图的名字即可;另一个地方就是在打开的图的编辑器的工具栏上,有一个下拉的列表可以切换图。
此过程请参考图4。
图4在大纲和编辑器中切换多个试图
向编辑器的图中加入UML元素可以通过单击编辑器工具栏上的按钮来完成,另外双击工具栏上的组件按钮可进入MassAdd(批量添加)模式,此时每点击一次画布就加入一个元素,要退出此模式可以点击编辑器工具栏上的光标状Select(选择)按钮即可。
另外,
带有下拉列表选择的功能,例如矩形绘制,也可以进入批量添加模式。
如果要将绘制的图形导出为图片文件,在编辑器的画布空白处右键点击,然后选择菜单Exportasimage,接着在弹出的对话框中输入要保存的图片文件名以及存储路径即可,支持这些导出格式:
PNG,GIF,PostScript,EncapsulatedPostScript(封装过的PostScript)和SVG(ScalableVectorGraphics,可伸缩矢量图形)格式。
这样导出的图片可以用作图软件来处理,或者插入到文档或者网页中进行显示。
4.类图和常见修改功能
实际建模时候,大概类图是最经常用到的一种图形了。
类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。
类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类――订单,商品,顾客,经理,管理员,账户等等。
类图也可以表现面向对象中提到的接口。
类图上使用包含三个部分的矩形来描述,如图5所示。
最上面的部分显示类的名称,中间部分包含类的属性(成员变量)列表,最下面的部分包含类的操作(或者说"方法"、函数)列表。
当在一个类图上画一个类元素时,你必须要有顶端的区域,下面的二个区域是可选择的(当图描述仅仅用于显示系统的高层架构时,下面的两个区域是不必要的)。
位于类图最顶部的,是类名。
类名上可以显示图标,也可以不显示,这是可选的功能,
同理所有的UML图都可以拥有定制的图标,这是可以扩展到内容。
类的属性栏(中部区域)在分隔线上列出类的属性列表。
属性节是可选择的。
每个属性
的定义使用如下格式:
名称:
属性类型。
图5单个类图
类操作列表位于类图长方形的第三个(最底部)区域中,他也是可选的。
和属性一样,类操作的操作以列表显示。
操作使用下列格式定义:
操作名(参数列表):
返回数值类型。
构造器也包含在操作列表中。
如图5所示的,<>Student()表明这是一个构造器(构造器没有返回值);而getUsername():
String则定义了一个返回值为String类型的方法getUsername();另外setUsername(inusername:
String)定义了一个设置用户名的方法,输入参数是String类型的,参数名为uername,in这个标记用来指示参数是输入值(当然不是必须的,不写in也可以)。
除了类之外,常见的类图还包括接口。
接口如图17.7中左上的IMoveable所示,定义了一个行走和停止的行为。
实际上接口中也可以规定属性,但是MyEclipseUML在这里不支持这样的格式。
如果一个类需要实现一个接口,则可以通过带有闭合的单向箭头的虚线进行连接,即表示实现定义。
例如图中的Animal实现了IMoveable接口,用Java到代码来表示就是:
classAnimalimplementsIMoveable。
图6接口和类继承,实现,关联
类之间可以有继承关系,通过带有闭合单向箭头的实线进行连接。
例如图6中,类
Cat继承自Animal。
另外,类和类之间还可以有关联关系等,例如一个家庭对应多只猫。
双向关联关系已实现的方式连接,并在线上显示关联类型。
例如图中的House关联着多只
Cat。
表2列出了双向关联中的可能只所表示的含义的描述信息。
如果是单向关联,则用不封闭的单项箭头来表示:
→,从一个类连接到另一个类。
表2双向关联中可能的多重值描述
另外一个很重要的概念就是可见性。
在面向对象的设计中,存在属性及操作可见性的记号。
UML识别四种类型的可见性:
public,protected,private及package。
UML规范并不要求属性及操作可见性必须显示在类图上(其实MyEclipse生成的图使用不同的和Eclipse中一致的图标来表示可见性了,但是别的工具一般是按照UML的规范来使用记号来标识的),但是它要求为每个属性及操作定义可见性。
为了在类图上的显示可见性,放置可见性标志于属性或操作的名字之前。
虽然UML指定
四种可见性类型,但是实际的编程语言可能增加额外的可见性,或者不支持UML定义的
可见性。
表3显示了UML支持的可见性类型的不同标志。
可见性的例子如:
+username:
String这样的属性定义。
标志
可见性
+
public
#
Protected
-
Private
~
Package
表3可见性列表
在Java的开发中,经常会遇到包(Package)这个概念。
UML中也支持类似的概念:
软件包,用来将多个相关的类或者接口组织在一块。
软件包使建模者能够组织模型分类器到名字空间中,这有些象文件系统中的文件夹。
把一个系统分为多个软件包使系统变成容易理解,尤其是在每个软件包都表现系统的一个特定部分时。
软件包在UML中以文件夹的方式进行显示,并在文件夹头部显示包名,文件夹中包含类或者接口。
图7中列出了一个包含两个类的软件包lang。
图7软件包及注释
另外,和常见的编程语言支持注释一样,UML也支持注释(Comment),如图7右侧即是一个注释元素以及注释关联线。
注释可以添加到任何对象上。
接下来看看在MyEclipse中如何绘制类图。
首先自然是打开新建的Class图,然后可以看到UML编辑器的工具栏按钮列表:
表4类图编辑工具栏
在这些工具栏中,最常用的当属类图编辑功能了。
点击UML编辑器工具栏上的按钮
即可创建一个新的类。
双击类图的三个方框的空白处:
类名,属性列表和操作列表处,即可
快速修改类名或者加入新的属性和操作定义。
如果双击已经存在的属性或者操作定义,则可以变为文本输入框,进入修改模式来修改。
基本上所有的UML元素都支持此种修改方式,MyEclipse的术语叫Texthot-zone(文字热区)。
文字热区是节点或者连接点的中间的可编辑区域,例如关联类的连线中间,通过双击可以激活。
激活后,热区内显示方形的可编辑输入框。
输入框内可以直接输入文本,也支持删除、复制、粘贴、剪切带操作。
要提交文字热区内地修改使之生效,可以点击文字热区之外的任何地方即可,随后编辑区消失并代之以显示原来被编辑的UML内容(图8)。
图8快速编辑类,连接区和编辑区和Texthot-zone
另外一种热区,Connectionhot-zone,即连接热区。
位于类图的四周,鼠标移过时可以看到多出的几个按钮,一般提供连接到节点的一些关联类,自关联,子类,依赖等等,可以点击按钮到另一个节点来完成连接,也可以只单击按钮自动生成一个应的关联类。
要修改图形的大小,需要把鼠标放到图形的四个角上的某一个,出现黑色的小方块后,拖动即可调节其大小(不过图有个最小值,不能调节的比最小值还小)。
要移动元素,可以用鼠标画框的方式选中需要移动的元素,然后再其中的任意一个元素上点击并拖放即可移动图形的位置。
最后一个和编辑有关的就是Properties(属性)视图,当选中不同的元素时,会显示
对应的可以修改的属性值,如图9所示。
例如选中类A中的属性后,此时Properties
视图如图17.10所示。
Properties视图中也可以编辑对应的值,并且以多页标签的方式来显
示所有可以修改,添加或者删除的内容(相对比下,在编辑器的画布上能改的属性则非常有
限)。
Properties标签下的工具栏,可以处理一些操作例如转到上级(GoUp),新建属性(NewAttribute),新建数据类型(NewDatatype),新建版型(NewStereotype),以及删除模型(DeletefromModel)等等。
在Name输入框中可以修改属性名,Type可以选择数据类型,InitialValue中可以输入初始值,Visibility中可以选择可见度,包括Protected(受保护的),Public(公开的)和Private(私有的)。
Changeability中则可以选择是否为可以修改的值。
Modifiers中则可以修改修饰符。
图9UMLProperties视图
Properties视图中另外一个相对固定的标签页就是Ducumentation(文档),可以用来给每个UML的元素撰写一些说明文档。
在这一页,Author框输入作者信息,Version框输入版本,Since框输入什么时候开始有,Deprecated则指示是否为废弃的类或者属性等信息,See则输入参考信息,Documentation则输入详细的注释信息。
图10Documentation标签
当选中图形的最外层时,例如直接选中类图本身,此时就可以修改Presentation标签
下和图形显示有关的属性了。
Display(显示)右侧的两个复选框分别可以指定是否显示属
性(Attributes)和操作(Operations)列表。
Bounds(边界)则指定图形的坐标和大小,坐
标的格式是:
x,y,width,height,即:
横坐标,纵坐标,宽度,高度。
需要说明下在计算
机绘图中,坐标的起点一般都是左上角,也即(0,0)这个点。
BodyFillColor指定了图形
的主体填充色彩。
HeaderFillColor则指定了头部填充色彩(类图中位于最上侧,即类名显
示处)。
Line则指定了线条(一般是边框等)的显示颜色。
如图17.12所示。
图11Presentation标签
最后两个标签分别是Constrains和TaggedValues。
Constrains主要可以给元素添加,
删除和修改一些限制信息,一般情况下使用不到。
TaggedValues则列出了做了标记的值列
表,例如当按照图10中设置了文档后,类的TaggedValues显示的内容列表如图12
所示。
在这个标签的工具栏上可以删除一些标签,还可以双击Tag(标记)和Value(取值)
进行相关值的编辑。
图12TaggedValues标签
5.正向工程-UML类图生成java代码
在实际的项目开发中,如果设计出来的图不能变成Java代码,那的确是让UML的功能大打折扣,尤其是详细到每个类的属性和操作,包名这样的详细设计,如果过后还需要一点点的把对应的代码写出来,的确让人头痛。
所幸的是,MyEclipse的UML,或者说ArgoUML以及大多数的专业一点的UML设计器,都提供正向工程—从UML类图生成特定语言。
MyEclipse支持直接从UML类图中的类定义生成Java代码。
操作步骤如下:
1.打开包含类图的UML仓库文件(UMR),这些类必须按照Java的规范进行设计才可生成Java代码;
2.选择菜单UML>GenerateJava...,来启动正向工程(Forward-Engineering)向导,如图13所示。
图13选择菜单GenerateJava
随后,将会弹出如图14所示的正向工程向导对话框。
按照下列步骤进行操作即可(也可参照图中的箭头提示):
3.点击对话框中的JavaOutputFolder(Java输出目录)右侧的Browse按钮,在弹出的对话框中选择任何Java或者J2EE项目的源代码目录(一般名为src),然后,点击OK按钮关闭对话框。
被选中的目录将存放从类图所最终生成的Java代码。
2.在GenerateJavasourceforselectedUMLJavaentities(生成选中的UMLJava
实体的Java源代码)下面的类来列表中,选中一个或者多个需要翻译为Java代码
的类。
3.点击Finish按钮来关闭对话框,然后进行代码生成处理过程。
图14UML正向工程向导
在稍后可能会出现一些警告和提示的对话框。
一般包括:
无返回类型的操作定义没有写入void类型,例如:
setAge(inage:
Integer)应该加入void修改为:
setAge(in
age:
Integer):
void;一些非法的关联选项(虽然画图的时候可以随便来画,但是生成的时候,务必确保这些关联有实际的意义)。
这种情况下,对应的Java代码就不能生成,只有修正了这些问题才能如期产生代码。
还有的时候是MyEclipse本身的Bug,导致生成的类文件是空白的。
总之此功能不是很完备。
在生成过程结束后,就可以在指定的源代码目录中看到生成的类文件的Java源码了。
6.反向工程-java代码生成UML类图
MyEclipse的Java代码到UML反向工程的过程有两种不同的方式可以实现,包括批量处理模式和拖放模式,下面我们对这两种模式一一进行介绍。
批处理模式:
该模式下可以把任意Java项目中源代码目录中的任何选中的类、接口
等定义转换成UML的类图。
按照下列步骤进行操作:
1.打开原来的测试项目,然后在项目中新建一个UML模型文件,并双击并打开这个UMR文件。
当然也可以选择以前创建的任何Java或者J2EE项目,只要项目中包含源代码即可。
2.选择菜单UML>ReverseEngineerUMLfromJava...来启动MyEclipseUML反向
工程向导。
随后即弹出UML反向工程向导对话框,如图15所示。
图15UML反向工程向导第一页
3.在向导对话框中选中需要反向工程处理的Java包或者类,然后点击Next按钮进入下一页,如图16所示。
图16UML反向工程类图生成设置
4.在图16中进行反向工程的选项设置,一般情况下保持默认设置即可。
这些设置包括JavaProcess(Java处理)下的选项:
Createclassdiagrams(生成类图);Hideclass
interfacedetails(隐藏类和接口的详细内容)。
以及另一个选项栏目JavaUMLGeneration(JavaUML生成):
ModelJavaattributeas(将Java属性建模为)UML
attributes(UML属性)或者UMLassociations(UML关联);ModelJavaarraysas(将
Java数组建模为)UMLdatatype(UML数据类型)或者UMLmultiplicity1...n(UML
一对多)。
5.点击Finish按钮来开始反向过程处理过程。
稍等片刻后,即可看到反向过程的执行结果汇总对话框,并让我们可以选中生成的一个或者多个类图,如图17所示。
检查Outline视图中的UML图列表,可以看到反向工程是基本上每个包都生成了一个类图,而不是像大家想象的那样都把类放到了一张图上。
例如在这个例子中就生成了两个新类图:
_classes和dao_classes。
这样,双击这两个类文件就可以看到生成的类文件了,非常方便。
基本上还没碰到过什么大问题。
稍后将UML导出为图片,就可以在项目文档中自由的引用了。
图17反向工程汇总对话框
接下来要介绍的,是反向工程的另一个模式:
拖放模式。
这个模式适合于快速小批量的从Java代码中所定义的类和接口生成对应的UML类图,可以无缝的将任何Java类和接口添加到任一个UML模型的类图中。
操作步骤如下:
1.从PackageExplorer视图中,选中一个或者多个类或者接口(需要提示大家的是,
除了源代码包里面的类可以选中,Library里面的类也可以被选中);
2.鼠标单击