Rational从Java代码逆向工程生成UML类图和序列图
java代码逆向工程生成uml
java代码逆向⼯程⽣成uml1、模型开发⼯具(MDT)提供了⼀些⽰范性⼯具,在元模型的基础上的发展模式。
它⽀持创建UML图,从代码的逆向⼯程到UML图等等。
2、ArgoUML是⼀个领先的开源UML模型⼯具,它⽀持UML 1.4的所有标准,可以运⾏于任何Java平台上。
3、ModelGoon是⼀个Java包的依赖分析的Eclipse插件,⽤来显⽰项⽬中Java包与包之间的依赖关系,如下图所⽰:4、Green是Eclipse的⼀个插件,是⼀种先进的还简单的UML类图的⼯具,主要学⽣开发使⽤。
它是live round-tripping编辑器,因此可以很容易地从⼀个UML类图⽣成Java代码。
它有很好的可扩展性。
5、Minjava是⼀个Java反向⼯程软件,可帮助理解已存在⼀些Java软件的架构和⾏为。
6、AmaterasUML可以对⼤⼯程的⽀持,上⾯所列的⼀些插件像Green,貌似不⽀持⼤⼯程,如果出现⼤的⼯程⽂件,通常会出现崩溃的情况,⽽且形成的整个UML图显得混乱⽆⽐。
由于我在eclipse上看源码,所以,装了两个适⽤于eclipse的插件,Green和AmaterasUML,下⾯简单谈谈安装和使⽤感受。
1、Green安装和使⽤安装有在线和离线安装,离线就是下载Green安装包,然后将⾥⾯的插件copy到eclipse的插件⽂件夹下即可,这种⽅法现在已经不适⽤了,其官⽹上是这么说的:所以,按照它的说法,使⽤在线安装就好了,注意:在装之前需要安装GEF插件,新版的eclipse貌似已经安装,4.0版本之前的需要⼿动安装。
安装好之后,重启,在任何类名上右击可以看见相关选项:Green UML,点击即可获得相关类的UML图:如下的显⽰效果:2、AmaterasUML的安装于使⽤下⾯是其显⽰效果,可以直接拖拽,如何拖拽,间上⾯的官⽹链接。
下⾯是⽹友遇到的问题,也许你也会遇到,先记下:。
Java利器之UML类图详解
Java利器之UML类图详解前⾔UML(Unified Modeling Language)中⽂统⼀建模语⾔,是⼀种开放的⽅法,⽤于说明、可视化、构建和编写⼀个正在开发的、⾯向对象的、软件密集系统的制品的开放⽅法。
UML展现了⼀系列最佳⼯程实践,这些最佳实践在对⼤规模,复杂系统进⾏建模⽅⾯,特别是在软件架构层次已经被验证有效。
【维基百科】最近看⼀些开源项⽬的时候,总是看到UML中的类图,⼀开始⾃⼰的做法就是跳过去类图的部分,不过后来⼜遇到了⼏次,就决定学习下,不能再选择逃避了,这也是⼀个即将优秀的程序探索者应该必备的素质。
今天把⾃⼰学习到的内容记录⼀下(怕健忘…),相信对类图不清楚的朋友,通过读取这篇⽂章后也能有⼀个⽐较清晰的认识,让你看的懂,画的出。
类图作⽤类图是软件⼯程的统⼀建模语⾔⼀种静态结构图,该图描述了系统的类集合,类的属性和类之间的关系。
帮助⼈们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。
学习好类图的绘制,是⼀位合格的软件⼯程师应有的技能。
类的UML图⽰在UML类图中,类使⽤包含类名,属性,⽅法名及其参数并且⽤分割线分隔的长⽅形表⽰。
例如最简单的⼀个类Person 类有两个属性分别是name和age,并提供对应的get和set⽅法。
java类代码如下/************************************************************************ Module: Person.java* Author: Code4Android* Purpose: Defines the Class Person***********************************************************************/import java.util.*;/** @pdOid 4615fa10-38a3-446e-a7d5-59dcb3e786b5 */public class Person {/** @pdOid f314a698-c3c1-4ec7-a8ea-f8b2df107a29 */private String name = zhangsan;/** @pdOid 271c633b-87e5-4b41-9f70-2ce320635014 */private int age = 23;/** @pdOid ccf5b7c1-d005-4a5f-b823-9988f2dd6f91 */public String getName() {// TODO: implementreturn name;}/** @pdOid 83e01fba-b004-498e-b7ab-778de8be6dfa */public int getAge() {// TODO: implementreturn age;}/** @param name* @pdOid 9525895a-11bf-44a3-afed-b4a014540a98 */public void setName(String name) {// TODO: implement=name;}/** @param age* @pdOid 16fd66cc-2af1-4fef-ae98-2a37f495a487 */public void setAge(int age) {// TODO: implementthis.age=age;}}那么⽤类图表⽰如下,它很简单的表⽰出了类的所有信息。
Rational从Java代码逆向工程生成UML类图和序列图
从 Java 代码逆向工程生成 UML 类图和序列图本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Software Architect 从Java™ 源代码来逆向工程生成 UML 类和序列图。
逆向工程经常被用来从已有的源代码中以一种抽象模型 UML 格式来获得丢失的设计文档,其可以用来研究一个系统的静态结构和动态行为,并用于扩展新的特性到产品。
作者详细说明了使用IBM Rational Software Architect 进行逆向工程的限制,并阐述了克服这些限制的技术。
您将从使用这些技术技巧和窍门中受益,以识别组件,并从Java类中产生像 UML 类和序列图这样的高层抽象。
软件结构师、开发人员及测试人员都熟知统一建模语言(UML),该语言适用于文档化用例、类图、序列图和其他图表。
也可以通过其他许多软件辅助工具来帮助软件工程师来完成这些工作,或者是正向工程或者是逆向工程的。
•正向工程是对一个系统物理结构实现的高层抽象性、逻辑性及独立性设计的传统处理过程。
•逆向工程是对一个已存在系统的分析处理,以鉴别它的组成部分及它们的内在联系,从而以高层抽象性来构建一个系统的框架。
在大多数情况下,逆向工程用于以抽象的模型 UML 格式从已存在的源代码中,提取已丢失的设计文件,从而同时可得知一个系统的静态结构及动态行为。
类及序列图问题的实质IBM® Rational® Software Architect 在很多工业中得以广泛采用,因为它提供了很多的特性以帮助逆向工程师。
问题是当您以Java™ 代码逆向构建 UML 类及序列图时,Rational Software Architect 不能自动地产生有用的 UML 类及序列图。
但是已经存在改善 Rational Software Architect 输出产物的技术。
本篇文章论证了怎样使用这里介绍的技术技巧,从 Java 代码中识别其组成部分及对 UML 种类和序列图进行高层的抽象。
UML中数据流图,用例图,类图,对象图,角色图,活动图,序列图详细讲述保存供参考
UML中数据流图,⽤例图,类图,对象图,⾓⾊图,活动图,序列图详细讲述保存供参考这个⽂章,是我在急需的情况下在园⼦⾥搜索到的,原创作者是:DO-websoftware,为了⾃⼰看⽅便,所以复制到我的空间,希望原创者不要介意哦~~~~很详细的介绍,对我的帮助很⼤,谢谢哦。
类图,对象图,⾓⾊图:⼀、UML中基本的图范畴:在 UML 2 中有⼆种基本的图范畴:结构图和⾏为图。
每个 UML 图都属于这⼆个图范畴。
结构图的⽬的是显⽰建模系统的静态结构。
它们包括类,组件和(或)对象图。
另⼀⽅⾯,⾏为图显⽰系统中的对象的动态⾏为,包括如对象的⽅法,协作和活动之类的内容。
⾏为图的实例是活动图,⽤例图和序列图。
⼆、UML中的类图:1.类图的表⽰:类的 UML 表⽰是⼀个长⽅形,垂直地分为三个区,如图 1 所⽰。
顶部区域显⽰类的名字。
中间的区域列出类的属性。
底部的区域列出类的操作。
在⼀个类图上画⼀个类元素时,你必须要有顶端的区域,下⾯的⼆个区域是可选择的(当图描述仅仅⽤于显⽰分类器间关系的⾼层细节时,下⾯的两个区域是不必要的)。
描述:顶部区域显⽰类的名字。
中间的区域列出类的属性。
底部的区域列出类的操作。
当在⼀个类图上画⼀个类元素时,你必须要有顶端的区域,下⾯的⼆个区域是可选择的(当图描述仅仅⽤于显⽰分类器间关系的⾼层细节时,下⾯的两个区域是不必要的)。
·类名:如果是抽象类,则采⽤斜体·类属性列表:name : attribute type 如 flightNumber : Integer,这是最常见的表达形式name : attribute type = default value 如 balance : Dollars = 0,这是带有默认值的表达形式·类⽅法列表:name(parameter list) : type of value returned注意:在业务类图中,属性类型通常与单位相符,这对于图的可能读者是有意义的(例如,分钟,美元,等等)。
Rational Rose反向工程与正向工程步骤
Rational Rose反向工程与正向工程步骤
一、反向工程:
a)新建组件
打开组件属性
设置语言为Java
指向所加组件点右键,选择[Java/J2EE]下的[Reverse Engneer(反向工程)]
点击[Edit CLASSPATH(编辑类路径)]按钮。
点击New 按钮
点击按钮,出现添加类路径对话框。
点第二个按钮[Directory(目录)],出现选择目录对话框。
一般正确路径此时已选中,直接点[OK]
此时可见路径已加入,点击[确定]
点击[Add]或[Add All]加入要进行反向工程的文件,加入后如下图
点击[Select All]按钮选择所有文件,如下图:
点击[Reverse]按钮,进行反向工程,生成类图
完成后点击[Done]退出Java反向工程对话框,
单下的Add Classes
点击[All]
点击[OK]
成功!
二、正向工程:
添加三个类BAC、BTV、BFactory,如下图:
让三个类分别实现三个接口:
选中新加的三个类
此处选[No],不把此项目加入SourceSafe的版本控制。
左边选中类路径,右边点[Select All]。
点击[OK]
打开文件夹,发现新生成的Java文件,成功!。
uml期末考试题集及答案
B
) (D)顺序 (D)实体
(C)协作图 (C)用例
20. UML 中关联的多重度是指(
(A)一个类有多个方法被另一个类调用 (B)一个类的实类能够与另一个类的多个实类相关联 (C)一个类的某个方法被另一个类调用的次数 (D)两个类所具有的相同的方法和属性 二、多项项选择题: (本大题共 10 小题,每题 2 分,共 20 分)在每 小题列出的五个备选项中有二个至五个是符合题目要求的,请将其 代码填写在题后的括号内。 少选得 1 分, 错选、 多选未选均无分。 (说 明:将答案写在试卷后面的答题纸上) 1. 具有多重属性值的 UML 图形包括( (A)类图 (A)动作 (A)类图 (A)组件 (A)方法 (A)计算能力 (A)类 (B)对象图 (B)触发事件 (B)状态体 (B)转换 (B)工具 (B)基本内存 (B)子系统 ABCD AE ) (D)活动图 ABCDE ) (D)顺序图 ) (D)接口 (D)过程 ABC ) (D)接口 (E)协议 ) (E)路径 (D)接口 (E)事件 (E)语言 (E)实现图 (D)目标状态 CD (E)部署图 ) (E)监护条件 分数 评卷人
4
3、
郑州大学软件技术学院《UML 基础与 Rose 建模案例》课程 2009-2010 学年第一学期期末试题
(适用专业:java、信息管理、 。Net 专业 考试时间:120 分钟) 分数 评卷人
合分人:
(说明:将答案写在试卷后面的答题纸上)
复查人:
一、单项选择题: (本大题共 20 小题,每题 1 分,共 20 分)
电子科技大学考卷(A 卷) 考试时间 教师签名_于 年 楠 月 日(120 分钟) 课程 UML
请将答案填写在答题纸上!不要在考卷上作答! 一、单选题(每小题只有一个正确选项,每小题 2 分,共 30 分) 1.执行者(Actor)与用例之间的关系是( (A)包含关系 (B)泛化关系 ) (C) ) (C)Private ) (D)Package (D) 2.在类图中,下面哪个符号表示继承关系( (A) (B) (B)Protected ) (C)关联关系 (D)扩展关系
java类图逆向自动生成
java类图逆向自动生成
怎么使用PowerDesigner软件逆向生成
java类图
工具/原料
PC电脑
PowerDesigner软件
方法/步骤
1. 打开PowerDesiger软件,点击文件->建立新模型,新建Obect-Oriented Model
2. 点击语言->Reverse Engineer Java,弹出反向生成类图设置窗口
3. 在反向生成类图设置窗口中,选择Reverse Engineer,可以选择Java Files
或Java Directories等,在这里我选择Java Directories
4. 然后点击Add按钮添加目录,在这里我选择一个java源文件目录
5. 5
点击确定,PowerDesigner会显示生成进度窗口,完成以后在PowerDesigner 工作空间下会显示类图目录结构
6. 6
到此便将选中的Java目录下的Java类文件生成了静态类结构,例如:点击controller.admin命名空间,可以看到类图结构
END。
统一建模语言UML复习参考答案
统⼀建模语⾔UML复习参考答案《统⼀建模语⾔UML》复习题⼀、填空题1. ⾯向对象程序的基本特征是:抽象、封装、继承和多态。
2. Rose的正向⼯程以组件为单位,把模型中的⼀个或多个类图转换为java源代码的过程。
逆向⼯程是把代码转换为设计模型。
3. ⽤例图两个最核⼼的元素是参与者与⽤例。
4. 顺序图是由对象、⽣命线、控制焦点和消息等构成的5. 在UML的表⽰中顺序图将交互关系表⽰为⼀张⼆维图,其中纵向是时间轴,时间沿竖线向下延伸。
横向代表了在协作中各独⽴对象的⾓⾊。
6. 状态机图图描述从状态到状态的控制流程,常⽤来对系统的动态特征进⾏建模。
7. 在UML中,状态机由对象的各个状态和连接这些状态的转换组成,是展⽰状态与状态转换的图。
8、在某个信息系统中,存在如下的业务陈述:①⼀个客户提交0个或多个订单;②⼀个订单由⼀个且仅由⼀个客户提交。
系统中存在两个类:“客户”类和“订单”类。
对应每个“订单”类的实例,存在 1 个“客户”类的实例;对应每个“客户”类的实例,存在 0个或多个“订单”类的实例。
9、UML提供⼀系列的图⽀持⾯向对象的分析与设计,其中类图给出系统的静态设计视图;⽤例图对系统的⾏为进⾏组织和建模是⾮常重要的;序列图和协作图都是描述系统动态视图的交互图,前者描述了以时间顺序组织的对象之间的交互活动,后者强调收发消息的对象的组织结构。
供选择的答案:状态图、⽤例图、状态图、序列图、部署图、协作图、类图10、Rational Rose2003具有⾮常友好的图形⽤户界⾯,其初始界⾯主要包括标题栏、菜单栏、⼯具栏、模型浏览器窗⼝、⽂档窗⼝、模型图窗⼝、⽇志窗⼝、状态栏等部分。
11、Rational Rose2003⽤户界⾯包含两种⼯具栏,为⽤户操作提供了⽅便,其中,图⼯具栏依赖于所打开的模型图,⽽标准⼯具栏则与模型图⽆关。
12、如果需要在模型图绘制窗⼝中多放置⼏个相同的图标,在编辑⼯具栏中,先单击选择锁定图标,进⼊“锁定”状态,⽽不必重复多次地返回道编辑⼯具栏中重复选择同⼀个图标。
使用IDEA画UML图的详细步骤
使⽤IDEA画UML图的详细步骤⽬录UML简介如何使⽤IDEA画UML图安装PlantUML插件安装GraphvizGraphviz安装和环境变量配置Graphviz安装环境变量配置UML简介 统⼀建模语⾔ (Unified Modeling Language,UML) 是⼀种为⾯向对象系统的产品进⾏说明、可视化和编制⽂档的⼀种标准语⾔,是⾮专利的第三代建模和规约语⾔。
UML是⾯向对象设计的建模⼯具,独⽴于任何具体程序设计语⾔。
1 UML 作为⼀种统⼀的软件建模语⾔具有⼴泛的建模能⼒。
UML 是在消化、吸收、提炼⾄今存在的所有软件建模语⾔的基础上提出的,集百家之所长,它是软件建模语⾔的集⼤成者。
UML还突破了软件的限制,⼴泛吸收了其他领域的建模⽅法,并根据建模的⼀般原理,结合了软件的特点,因此具有坚实的理论基础和⼴泛性。
UML不仅可以⽤于软件建模,还可以⽤于其他领域的建模⼯作。
1 UML ⽴⾜于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。
UML可以从不同⾓度描述⼈们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。
UML可以建⽴需求模型、逻辑模型、设计模型和实现模型等,但UML在建⽴领域模型⽅⾯存在不⾜,需要进⾏补充。
1 作为⼀种建模语⾔,UML有严格的语法和语义规范。
UML建⽴在元模型理论基础上,包括 4 层元模型结构,分别是基元模型、元模型、模型和⽤户对象。
4 层结构层层抽象,下⼀层是上⼀层的实例。
UML中的所有概念和要素均有严格的语义规范。
1 UML 采⽤⼀组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发⼈员学习和掌握起来⽐较简单。
所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、⼀致。
1如何使⽤IDEA画UML图安装PlantUML插件 使⽤ IDEA 画 UML 图需要安装 plantMUL 插件。
PlantUML 是⼀个⽀持快速绘制的开源项⽬。
统一建模语言UML与Rational Rose工具
需求分析阶段应用
01
利用UML用例图描述系统功能和用户需求
02
通过活动图细化业务流程和交互逻辑
构建概念模型,明确系统范围和边界
03
系统设计阶段应用
使用类图和对象图设计系统静态结构 利用时序图和协作图设计系统动态行为 构建包图和部署图,规划系统物理架构
编码实现阶段应用
1
依据设计阶段的UML模型进行编码实现
逆向工程
当代码发生变化时,Rational Rose可以通过逆 向工程将代码同步到UML模型中,保持模型与代 码的一致性。
测试支持
利用Rational Rose的测试工具,可以创建测试 用例、执行测试并生成测试报告,以确保系统功 能的正确性和稳定性。
05
UML与Rational Rose在软件 开发中的应用
提供了版本控制功能
支持多人协作开发,方便团队管理和控制UML模型的版 本。
Rational Rose工具优势
专业的建模工具
Rational Rose是一款经过广泛验证的 专业建模工具,具有高度的可靠性和稳
定性。
良好的兼容性
支持多种操作系统和开发语言,可以 与其他开发工具无缝集成。
强大的功能支持
提供了全面的UML建模功能,并支持 多种UML图的创建和编辑,满足复杂 软件系统的建模需求。
与其他工具的集成
为了更好地支持软件开发过程,未来UML建模工具可能 会与其他开发工具进行更紧密的集成,实现建模、设计、 开发、测试等全流程的自动化。
多领域应用
UML作为一种通用的建模语言,未来可能会应用于更多 领域,如物联网、大数据、云计算等,为这些领域的软件 开发提供可视化建模支持。
标准化和规范化
C++ 逆向工程生成UML模型图
逆向工程生成UML模型图这一节主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析。
Rational Rose可以支持标准C++和Visual C++的模型到代码的转换以及逆向工程。
下面将详细地说明这两种C++ project的逆向工程的步骤和具体操作。
ANSI C++(标准C++)逆向工程(Reverse Engineer)使用标准C++逆向工程,需要在组件图(component view)中创建一个组件(component),设置好需要进行转换的组件的信息,也就是该组件的语言、所包含的文件、文件所在的路径、文件后缀等等信息,然后Reverse Engineer就可以根据给定的信息将代码转换成类图了。
(一) 右键点击组件视图(Component View),选择New->Component,创建一个新的组件(二) 将component的language属性设定为ANSI C++a) 选中创建的component,点击右键,选中Open Specificationb) 在这个对话框中将该component的language设定为ANSI C++(三) 配置该ANSI C++ component,设置好该component中包含的C++代码文件,并进行C++语言的详细设置a) 选中该component,点击右键,选择ANSI C++->Open ANSI C++ Specificationb) 把Source file root directory设定为你的C++源码文件所在的路径,Reverse engineering root package 中输入转换后的工程的名称,默认为C++ Reverse Engineered,Reverse engineer directories as packages 选项将以文件夹的形式在Rose 的LogicalView中生成与源文件相同的文档结构。
用RationalRose逆向工程(java)生成类图(教程和错误解决)
⽤RationalRose逆向⼯程(java)⽣成类图(教程和错误解决)拿到了项⽬框架⼯程代码却没有uml图,那么⽅法之间的调⽤关系功能流转就不容易看出来,那么如何产⽣类图呢,记忆⾥⽅法有下:1.rose逆向⼯程,2.togetherrose有了,together前天才卸掉,那么就⽤ROSE,摸索后得出以下步骤,知道的就不⽤看了,很粗糙的:)1.新建⼀个ROSE⼯程,选择J2EE模板,2.如图3.在出现的界⾯中,CLASSPATH中加⼊源代码的⽬录,加⼊⽀持的包,点'ADD RECURSIVE'点 ‘SELECT ALL‘‘ 点REVERSE ‘,完成后没任何提⽰,点'DONE'结束。
逆向⼯程完成。
4 逆向⼯程以后不会⾃动⽣成类图,但在logical view 和component view ⾥⾯按照你的java包结构会⾃动⽣成相应的包和类,要按照⾃⼰的要求建⽴类图。
下⾯我们将所选包下的所有类显⽰在新建类图中:ROSE⾥新建CLASS DIAGRAM,然后把类包⼀个个拖到右侧图中,点菜单上的'QUERY'下的'ADD CLASS',确定。
1. rose逆向⼯程的时候,属性类型表现为:Logical View::java::lang::解决办法:菜单->Tools->Java/j2ee->Project选择Fundamental Type 页⾯Remoe Common JDK ClassesAdd Common JDK Classes确定即可,也许是Rose的Bug2. rose逆向⼯程的时候,报错,⼀般是类中没有引⽤了⼀些包在菜单view-》log 选中就能看到log window中出错信息,⼀般可能是找不到类,你在tools-java/j2ee-project specification⾥⾯设置好项⽬的相关项,⽐如classpath等等解决办法:菜单->Tools->Java/j2ee->project specification选择Class Path页⾯,将相应的包加⼊即可。
Rational Rose使用介绍
在 Rose 模型元素中增加 URL
右键单击浏览器中的模型元素 | New | URL
使用 Rational Rose 建模
使用包
包是一个 UML 的结构,它可以将模型元素组
合在一起 Rational Rose 中的包包含模型元素和其他包
包的作用
包主要用于组织模型
在用例视图中,包将用例和参与者组织成更容易管
The documentation window is used to create,
view, or modify text that explains a selected item within a diagram.
Rational Rose 界面
Log Window
The log window reports progress, results, and
理的视图 在逻辑视图中,包将类与其他模型元素组成逻辑组, 并且按照体系结构层次显示系统的物理分解 在组件视图中,用包建模系统体系结构的不同层次
使用 Rational Rose 建模
Rational Rose 支持下列 8 种图
Use Case Diagram Class Diagram
使用 Rational Rose 建模
发布模型
Tools | Web Publisher
使用 Rational Rose 建模
使用控制单元
创建和取消控制单元 右键单击要控制的包 | Units | Control <package> 右键单击要取消的单元 | Units | UnControl <package>
卸载和装载控制单元 右键 | Units | Load…(有Bug,用 File | Units | Load…) 右键 | Units | Unload <package> 右键 | Units | Reload <package>
eclipse下生成Java类图和时序图,生成UML图
eclipse下⽣成Java类图和时序图,⽣成UML图1.安装和使⽤AmaterasUML⽤法:在⼯程名称右键选择New-Other,弹出新建对话框可以看到AmaterasUML选项,在其中选择Class Diagram,并命名后得到.cld⽂件,接着我们把⼯程network包中三个java⽂件拖拽到.cld⽂件视图中,AmaterasUML瞬间帮我们⽣成了这三个类的关系图2.安装和使⽤ModelSpoon功能:能将Eclipse中现有的java类⽣成类图⼀:什么是ModelGoon?它是⼀个Eclipse插件,⽤于基于UML图的模型设计,以及逆向⼯程(即从已有源代码⽣成类图)。
⼆:安装下载ModelGoon-4.4.1-site.zip到电脑,从eclipse中选择help-->install new software.在work with-->Add选择已经下载的ModelGoon-4.4.1-site.zip,⼀路next完成安装。
三:使⽤安装成功后,在eclipse中File-->new-->other-->ModelGoon Diagrams选择Class Diagram,在⾃⼰Java⼯程中创建⼀个后缀是.mgc的⽂件,⽤它来⽣成类图。
⽤法很简单,直接把Java类拖拽到这个⽂件视图中,就会⾃动⽣成UML类图。
2.重启Eclipse3.新建UML图:File->New->Green UML Class Diagram->输⼊UML图名->OK->⾃⼰所需的类右键->Green UML->Add to last viewed diagramPlantUML —— 应⽤于 Eclipse 的简单快速的 UML 编辑软件在应⽤系统软件开发过程中,如果软件由很多对象组成,它的结构仅仅凭借分析很难理清,同时为了有利于软件的开发及重⽤,所以在开发系统之前建模是⾮常有必要的,在众多的建模⽅法中选择⼀种适应⾃⾝应⽤特点,⽅便不同背景的⼈们交流的建模⽅法已经成为开发⼈员及⽤户的迫切愿望。
Rational Rose【UML建模】 教程+使用详解
Rational Rose 简介Rose模型(包括所有框图、对象和其他模型元素)都保存在一个扩展名为.mdl的文件中。
1. 环境简介Rational Rose可视化环境组成Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。
见图1-1。
图1-1:Rose界面浏览器:用于在模型中迅速漫游。
文档工具:用于查看或更新模型元素的文档。
工具栏:用于迅速访问常用命令。
框图窗口:用于显示和编辑一个或几个UML框图。
日志:用于查看错误信息和报告各个命令的结果。
浏览器和视图浏览器是层次结构,用于在Rose模型中迅速漫游。
在浏览器中显示了模型中增加的一切,如参与者、用例、类、组件等等。
Rose浏览器见图1-2。
浏览器中包含四个视图:Use Case视图、Logical视图、Component视图和Deployment 视图。
点击每个视图的右键,选择new就可以看到这个视图所包含的一些模型元素。
图1-2:Rose浏览器1.3框图窗口在图1-3所示的框图窗口中,我们可以浏览模型中的一个或几个UML框图。
改变框图中的元素时,Rose自动更新浏览器。
同样用浏览器改变元素时,Rose自动更新相应框图。
这样,Rose就可以保证模型的一致性。
图1-3:框图窗口各类框图的建立2.1建立用例图use case diagram从用例图中我们可以看到系统干什么,与谁交互。
用例是系统提供的功能,参与者是系统与谁交互,参与者可以是人、系统或其他实体。
一个系统可以创建一个或多个用例图。
创建用例图(图2-1-1)在浏览器内的Use Case视图中,双击Main,让新的用例图显示在框图窗口中。
也可以新建一个包(右击Use Case视图,选择new→package,并命名),然后右击这个新建包的,选择new→use case diagram。
对系统总的用例一般画在Use Case视图中的Main里,如果一个系统可以创建多个用例图,则可以用包的形式来组织。
UML工具介绍(2010年主流UML工具)
Alphonce /index.html
Windows, FreeBSD
√
Spring, Hibernate,
Struts, .NET, Web
Services
Gentleware AG /
30 天试用 2.1 Java
Java
Eclipse 插件,其中的类图、序 列图分析是其特色,可以从代 码分析出序列图。
支 持 UML2 和 基 于 EMF 的 工 具 ( MagicDraw 11.6、RSM…) Eclipse 下的 UML 扩展。支持 Java 5 双向工程。
有试用版
Smalltalk、C++、 Java 、 Delphi (Object Pascal)、 SQL 、 CORBA
Linux,Windows 领域特定建模(DSM)工具。
Metamill 5.0 Modelio 1.2 Modelmaker 11.02
MyUML 091116
NetBeans UML 6.9
JDeveloper 11g Kant&Plato X LumiCode 3.0 MacA&D 7.4
Beto Software /
Osellus /
Step Ahead /javelin.htm
结合了 UML 的 Java 工具
逆向工程。从.Net 程序集转出 序列图和类图。
支持 UML 建模,结构化建模, 数据建模。
有试用版 2.2 C++、Java、C#、 √ Java
IDL
Hale Waihona Puke 和 Eclipse、VS2005/2008 集成, 支持多国语言。支持 RUP 和 WAE 设计模式,支持 DoDAF 框架。支持 SysML。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从 Java 代码逆向工程生成 UML 类图和序列图本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Software Architect 从Java™ 源代码来逆向工程生成 UML 类和序列图。
逆向工程经常被用来从已有的源代码中以一种抽象模型 UML 格式来获得丢失的设计文档,其可以用来研究一个系统的静态结构和动态行为,并用于扩展新的特性到产品。
作者详细说明了使用IBM Rational Software Architect 进行逆向工程的限制,并阐述了克服这些限制的技术。
您将从使用这些技术技巧和窍门中受益,以识别组件,并从Java类中产生像 UML 类和序列图这样的高层抽象。
软件结构师、开发人员及测试人员都熟知统一建模语言(UML),该语言适用于文档化用例、类图、序列图和其他图表。
也可以通过其他许多软件辅助工具来帮助软件工程师来完成这些工作,或者是正向工程或者是逆向工程的。
•正向工程是对一个系统物理结构实现的高层抽象性、逻辑性及独立性设计的传统处理过程。
•逆向工程是对一个已存在系统的分析处理,以鉴别它的组成部分及它们的内在联系,从而以高层抽象性来构建一个系统的框架。
在大多数情况下,逆向工程用于以抽象的模型 UML 格式从已存在的源代码中,提取已丢失的设计文件,从而同时可得知一个系统的静态结构及动态行为。
类及序列图问题的实质IBM® Rational® Software Architect 在很多工业中得以广泛采用,因为它提供了很多的特性以帮助逆向工程师。
问题是当您以Java™ 代码逆向构建 UML 类及序列图时,Rational Software Architect 不能自动地产生有用的 UML 类及序列图。
但是已经存在改善 Rational Software Architect 输出产物的技术。
本篇文章论证了怎样使用这里介绍的技术技巧,从 Java 代码中识别其组成部分及对 UML 种类和序列图进行高层的抽象。
使用逆向工程,您可以很容易就从正向工程中得到您想要的,本篇文章将介绍在逆向工程以下领域中存在的问题:•发现其抽象类及识别它们的等级结构•产生具有聚合及关联关系的高层抽象性的类图•构建序列图接下来的部分为每个问题提供一个解决方案,并论证了怎样产生有意义的类及序列图。
例子向您展示了怎样从一个已给 Java 项目的源代码中,识别一个系统的继承关系及组成部分,以对 UML 类图及序列图进行高层的抽象。
注意:本篇文章中的例子产生于 Rational Software Architect 7.0 版本识别一个 UML 类图的继承树继承关系是一种普遍的对象型的模式。
它允许一组类共享共同的状态和行为,从而子类可以从父类那里继承共同的状态和行为。
从一个已存在系统中发现整个的继承树结构是相当有用的,因为它能向您揭露在树中什么是顶级类以及什么是子类。
而且,您可以识别一个继承树中有哪些共同状态及行为,以及这些共同行为怎样起作用。
您可以在探索过程中以以下三种方式使用 Rational Software Architect。
•从一个工作场所或工作集中发现其抽象结构•从抽象结构表中选择一个类从而显示其抽象类图•在一个浏览表中研究树状结构,您会发现显示在Abstraction之下的一系列抽象类。
第一步是在一个已存在系统中自动得到其顶级类。
这样您就能使用这些类作为切入点以研究继承树中的类。
您可以按以下步骤来完成此项。
1. 打开 Rational Software Architect 中Diagram Navigation视图。
2. 在Object-oriented Pattern下,右键点击Abstraction,然后点击Discover Architecture(如图 1 所示)。
这可以揭示整个工作空间的架构。
图 1.发现整个工作空间的架构图 2 显示了得到一个抽象类图的树状结构所需的剩余步骤:3. 通过右键点击位于Abstraction之下的类Car来打开内容菜单。
4. 显示右边面板中Car类图,通过选择菜单中的Show Diagram选项。
5. 通过选择并右键点击右边面板中类图Car来打开内容菜单。
6. 通过选择内容菜单中Explore in Browse Diagram选项来产生抽象类图的树状结构。
做完第六步,您将在右边面板中见到Car类图的树状结构。
图 2. 从整个工作场所中发现其抽象结构结果有以下缺陷:•结构树中被发现类的同类及子类可能被丢失。
•除去被发现的抽象类之外,其他类没有属性及操作。
要得到第六步产生的树状结构,还需其他的步骤。
您需要增加分离度(如图 3 所示),这决定了从被发现类扩展的层。
图 3. 改变分离度默认度是 1,这就是为什么在继承树中一些子类会丢失的原因。
在本例中,分离度被增加至 2。
第二个问题是除了在树状结构中被发现的类,其他类没有属性和操作。
这不利于使用者出于再使用的目的来研究已存在的普遍模式。
接下来的例子将向您展示,怎样识别具有任意属性及操作的整个继承树。
3. 向 Rational Software Architect 载入一个 Java 项目。
4. 切换至Diagram Navigation视图,按以上步骤所述,从工作场所中发现其抽象结构。
5. 从您感兴趣的第二步中找出一个抽象类。
6. 通过寻找模型搜索器中的类,找出等级树状结构类,双击打开编辑器中的类,按下F4以打开等级树。
确保type hierarchy已被选择。
7. 右键点击类,并将其转变为一个可视的类图,通过选择Visualize > Add to New Diagram File > ClassDiagram,如图4所示。
8. 通过右键点击并选择Visualize > Add to Current Diagram来向当前的图添加剩余的类。
图 4 . 将类可视化为新的类图图 5 展示了产生一个继承树类图的过程:9. 打开并按下F4以显示类的等级。
10. 选择每一个类并将其添加到类图中。
11. 检查并完成右边的图。
图 5. 产生一个继承树类图的机理类图以 Rational Software Architect 默认格式产生。
有几个有用的修改可以帮助您将图表进行可视化。
例如,您可以修改连接路径样式以使用树状样式路径,并且您可以通过在工作区右键点击来打开内容菜单然后点击 Arrange all。
到此产生的类图要比自动产生的看上去更好。
如图 6 所示。
图 6. 带有属性的继承树状图及树状路径连接图6中的类既显示了属性又显示了操作。
属性及操作显示的好处在于,您可以研究它们共同的状态及行为,从而进一步了解一个已存在系统是如何被实现的,这将有助于系统的再使用。
产生一个高层的 UML 类图Rational Software Architect 能让您通过从一个Java项目中,选择多个 Java 文件,来产生类图。
1. 在模型搜索器中,使用Visualize来将它们添加到一个新图或当前的类图中。
如果多个类已经被添加到当前的图中,那么它们之间的关系也将被显示。
图 7 是一个从 Java 代码中自动产生的类图的例子图 7. 一个自动产生的类图如图 7 所示,您可以从模型搜索器中选择多个 Java 文件来将它们在新的类图中可视化。
如果您想添加更多的类,您可以选择更多的 Java 源代码来将它们在当前的类图中可视化。
本图显示类包括在项目及它们的基本关系中。
这有利于在项目中自动发现 UML 类,但是自动发现的关系在这里用处不大。
在图 7 中,几乎所有的关系是use除去继承关系。
使用关系太过平常以至于不能给出有用的设计信息,越来越多的特别的聚集及组成关系被隐藏了甚至当所有的关系在图中都出现过。
聚集关系表现为一对多关系当一个类含有其他类的很多项目时,组成关系用于描述一多一关系当一个类仅含有其他类的一个例子时。
这个高层的抽象意味着对类之间更精确的关系发现,并为本设计的执行提供了有用的信息。
这个类图如果没有抽象关系的细节将不再像以前那样有用。
这里,我们尝试并探索了,以半自动方法产生UML类图的高层抽象方案。
UML 类以和以前同样的技术发现,并且类间的关系由人为指定。
高层的抽象方案基于研究已有源代码所必须的知识。
图 8 的例子显示了,怎样应用这个方法来得到高层的 UML 类图。
图 8. 使用 UML 模型向导建立一个空白模型为了得到一个高层的类图,您必须首先建立一个空白模型。
2. 按图 8 所述步骤建立一个新的空白模型:A. 在文件种类下,选择UML Modeling。
B. 在模板下,选择Blank Model。
C. 在文件名区域,输入Blank Model。
D. 对于目的文件夹,输入example。
E. 默认的图检查框 "Create a default diagram in the new model" 应该被检查。
F. 对于默认的图种类,选择Freeform. Diagram。
G. 点击Finish。
接下来的一步是从自动生产类图中总结选择的类。
Rational Software Architect 中的总结,能让您从一个类中拷贝一个类并粘贴到另一个类图中,这必须在一个空白模型中完成。
如果您将总结的类粘贴到同一个类图,或本空白模型以外另一个类图中时,那么该类的属性和功能将丢失。
3. 通过图 9 所示的步骤,从自动生成的类图中总结已选择的 Java 类:A. 从 classdiagram2.dnx 中选择类FuelTank,Engine,Passenger以及CarB. 在一个已选类上右键点击以打开内容菜单C. 选择Harvest菜单4. 将已总结的类粘贴至分离的创建于步 2 的类图中。
5. 在类间创建聚集及组成关系。
图 9. 一个类图中的总结类下一步,在类间创建关联关系,这使您能够在聚集及组成关系中选择一个。
图 10 显示了一个高层的类图。
图 10. 半自动方法产生的 UML 类图的高层抽象通过将图 10 与图 9 进行比较,您可以发现半自动方法能精确显示类间关系。
本图可用于独立设计执行文件,或已有系统远期改善。
着重点:如果不经过总结,聚集及组成关系将不能应用于 Rational Software Architect 。
创建一个序列图序列图是应用最为广泛的 UML 动态建模方法。
它致力于识别一个系统的行为。
一个序列图通常应用于建模用例,以显示一个系统的方法及功能。
Rational Software Architect 不能从 Java 代码中自动创建一个序列图。
下面的步骤会告诉您怎样去创建一个:1. 创建一个空白模型。