1、第3章 UML建模工具简介,本章导读,随着UML的提出与发展,建模工具也越来越多。每一个软件开发者都希望找到适合自己的、拥有自己所需要的功能并且尽可能简单的建模工具。为此,本章主要介绍几种应用比较广泛、在建模工具中颇具影响力的四种工具。,3.1常用UML建模工具,面向对象的软件建模工具应对软件系统的模型进行可视化、构造和文档化。一套面向对象的软件建模工具应该给予特定的概念和表示方法,通过对建模人员进行过程性支持、辅助进行建模外,还要安装规范生产相应的开发文档,尽可能多的生成代码。,3.1常用UML建模工具,在UML的发展中有很多工具被使用,其中比较有代表性的有Rational Rose、Pow
2、erDesigner等,这里提出四种工具加以介绍,3.1.1 Rational Rose,Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持, Rational Rose包括了统一建模语言(UML)、OOSE和OMT。其中统一建模语言(UML)由Rational公司三位世界级面向对象技术专家Grady Booch、Ivar Jacobson和Jim Rumbaugh通过对早期面向对象研究和设计方法的进一步扩展得来的,它为可视
3、化建模软件奠定了坚实的理论基础。,3.1.1 Rational Rose,图3.1 Rational Rose,3.1.2 Visio,Microsoft Office Visio是微软公司出品的软件,Office Visio 提供了各种模板:业务流程的流程图、网络图、工作流图、数据库模型图和软件图,这些模板可用于可视化和简化业务流程、跟踪项目和资源、绘制组织结构图、映射网络、绘制建筑地图以及优化系统。 Visio有两个版本:Microsoft Office Visio Professional和 Microsoft Office Visio Standard。Office Visio Sta
4、ndard具备Office Visio Professional 包含的许多功能,但是Office Visio Professional还包含更多图表类型的模板以及若干项高级功能。,3.1.2 Visio,图3.2 Microsoft Office Visio,3.1.3 PowerDesigner,PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。 利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队
5、设备模型进行控制。 它可与许多流行的数据库设计软件,例如: PowerBuilder,Delphi,VB等相配合使用来缩短开发时间和使系统设计更优化。,3.1.3 PowerDesigner,图3.3 PowerDesigner,3.1.4 StarUML,StarUML(简称SU),是一款开放源码的UML开发工具,是由韩国公司主导开发出来的产品,可以直接到StarUML网站下载。 StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强。,3.2 StarUML安装与配置,本节主要从Sta
6、rUML的安装过程及必要的配置进行介绍。,3.2.1 StarUML的安装,首先下载StarUML安装包,本章及本书中介绍的是StarUML5.0.2版本,也是现在用的最多的版本。 (1)双击启动staruml-5.0-with-cm.exe,进入安装向导界面,如图3.5所示。,3.2.1 StarUML的安装,图3.5 StarUML5.0.2安装界面,3.2.1 StarUML的安装,(2)单击“Next”按钮,进入许可协议选择界面,如图3.6所示。,3.2.1 StarUML的安装,图3.6 “License Agreement”界面,3.2.1 StarUML的安装,(3)阅读完相关条
7、约后选择第一个单选按钮,出现“Next”按钮后单击它,即进入安装路径的设置页面,如图3.7所示。,3.2.1 StarUML的安装,图3.7 “Select Destination Location”界面,3.2.1 StarUML的安装,(4)图3.7对话框中的路径是默认路径,修改路径时需要选择“浏览”按钮,选择所需要的安装路径即可。选择好路径后就可以点击“Next”按钮进入选择菜单的程序文件夹中,如图3.8所示。,3.2.1 StarUML的安装,图3.8 “Select Start Menu Folder”界面,3.2.1 StarUML的安装,(5)选择默认值,单击“Next”按钮进入
8、图3.9。,3.2.1 StarUML的安装,图3.9 “Select Additional Tasks”界面,3.2.1 StarUML的安装,(6)在该图中,可以在桌面上创建StarUML的快捷图标,当然根据自己的喜好可以选择也可不选。处理完后单击“Next”按钮,进入图3.10。,3.2.1 StarUML的安装,图3.10 “Ready to Install”界面,3.2.1 StarUML的安装,(7)该图提示给用户,安装之前用户所做的操作。如果想进行修改则单击“Back”按钮;如果确认没有问题则单击“Install”按钮,开始安装,安装界面如图3.11所示。,3.2.1 StarU
9、ML的安装,图3.11 “Installing”界面,3.2.1 StarUML的安装,(8)安装成功,出现图3.12。 在复选框中如果选中则单击“Finish”按钮后,StarUML即可运行,如图3.4所示。,3.2.1 StarUML的安装,图3.12 安装成功,3.2.2 StarUML的配置,为了能与面向对象的程序设计语言相关联,实现双向工程,需要在StarUML中配置profile属性。 打开StarUML设计界面,通过“Model/Profile.”菜单设置工程所需的profile。设置成功后就决定了工程所使用的规则和约定。根据语言的关联,可以选择适合的项,这里为了与Java语言关
10、联,必须包含“Java Profile”项,如图3.13所示。,3.2.2 StarUML的配置,图3.13 “Profile Manager”对话框,3.3 使用StarUML建模,StarUML是一款开放源代码的UML开发工具,StarUML支持UML语法规则检验,正反向Java、C+、C#工程,并且支持多种图片格式导出。同时它支持23种GOF(Gang of Four)模式以及3种EJB(Enterprise JavaBean)模式。,3.3.1 StarUML主界面,StarUML的开发界面主要由工具箱、绘图区、模型资源管理器和属性区等构成。具体结构如图3.14所示。,3.3.1 St
11、arUML主界面,图3.14 StarUML界面结构图,3.3.2 StarUML的模型、视与图,StarUML中清晰地区分了模型(Model)、视(View)与图(Diagram)的概念。模型是包含软件模式信息的元素。视则是模型中信息的可视表达法,图则是表示用户特定设计思想的可视元素的集合。 UML包含了11种图,在StarUML开发中通过“Add Diagram”可以弹出如图3.15所示的菜单以供设计时选择。,3.3.2 StarUML的模型、视与图,图3.15 StarUML的11种图,3.3.3 StarUML建模的基本过程,1. 创建或打开项目(工程) (1)创建新项目 启动Star
12、UML或在设计窗口中选择“FileNew Project By Approach”,弹出如图3.16所示的“New Project By Approach”对话框。从项目列表中选择合适的方法后单击单击“OK”按钮(建议不要选“Set As Default Approach” 复选框),即可打开StarUML窗口,如图3.4所示。 另外还可以选择“FileNew Project”菜单,采用默认的方法创建项目。如果之前在环境中修改过默认方法,则以最后一次修改为准。,3.3.3 StarUML建模的基本过程,图3.16 “New Project By Approach”对话框,3.3.3 StarU
13、ML建模的基本过程,(2)打开项目 为了继续保存的项目,项目文件必须先打开。 选择“FileOpen”菜单,在打开项目对话框,选择一个项目文件(.UML),单击“Open”按钮即可打开。,3.3.3 StarUML建模的基本过程,2. 设置profile 为了与Java语言交互,设置profile属性,界面如图3.13所示。,3.3.3 StarUML建模的基本过程,3. 创建模块 模块是一种包,它提供了对StarUML功能与特征的扩充。模块的创建可以是几种新扩充元素的结合。不但可以为某用途对一个独立的模块配置扩充元素,而且还可以在同一模块中创建同一类型的扩充元素。 其他的插件(Add-In)
14、功能 在项目中创建三个元素的方法相同,如果添加模块,需要选择图3.4窗口中右侧的“Model Explorer”小窗口中的“Untitled”模块。通过“Model”主菜单或右击选定的模型,可以选择“Add/Model”,默认名称为 “Model1”,在其属性区可以修改所需要的名称,如“tsgl”。,3.3.3 StarUML建模的基本过程,4. 创建参与者和用例 (1)创建参与者 参与者定义了在与实体交互时该实体的用户可以发挥作用的一套清楚的角色。参与者可以被认为是对于每个用来交流的用例而言的独立角色。,3.3.3 StarUML建模的基本过程,如果在创建用例图之前创建参与者,则需要经过以下
15、步骤进行: 通过“Model”主菜单或右击选定模型,选择“Add/Actor”; 在模型资源管理器中就会出现图标; 相关属性可以在属性区设置和修改。,3.3.3 StarUML建模的基本过程,例如“借阅者”的浏览窗口和属性窗口如图3.17所示。 如果在用例图中创建参与者,则只需要选择工具箱中的元素即可,具体操作同其他元素的添加相同,参看。,3.3.3 StarUML建模的基本过程,图3.17 “借阅者”的“Model Explorer”和“Properties”窗口,3.3.3 StarUML建模的基本过程,(2)创建用例 用例构造用于定义系统行为或者气压的语义实体而不展示其内部结构。每个用例
16、指定一系列行为,包括变体,可执行的实体,与参与者实体交互。 其创建过程与参与者类似,不再赘述。,3.3.3 StarUML建模的基本过程,5. 创建类 根据需要,同创建参与者的方式一样创建类。在创建类时需要为其创建属性及操作,也就是Java语言中类体中的变量和方法。具体操作步骤如下: (1)对类创建属性或操作。 (2)对属性或操作设置数据类型。,3.3.3 StarUML建模的基本过程,6. 创建图 在StarUML中提供了常用的11种图,其类型及描述如表3.4所示。 其中还有UML中的对象图就是类图的一个实例,没有单独的设计图形,在第5章中会有详细介绍。 (1)创建图 (2)图中添加元素,3
17、.3.3 StarUML建模的基本过程,7. 保存项目 8. 导出 选择“File”菜单的“Export Diagram”可以将图表导出通过选择合适的文件类型保存为其他格式,例如图片等, 从“File”菜单,选择“Save”,所有资料只有一个单一的项目文件(*.uml),所以目前应该只有一个文件生成。,3.4 双向工程,无论是从模型生成代码还是代码生成模型,都是一项非常复杂的工作。StarUML将正向和逆向工程结合在了一起,并且提供了一种在描述系统的架构或设计和代码的模型之间进行双向交换的机制。,3.4.1 正向工程,正向工程(代码生成)是指从模型直接产生一个代码框架,这将为程序员节约很多用于
18、编写类、属性、方法代码的琐碎的工作时间。这将为程序员节约很多用于编写类、属性、方法代码的琐碎的工作时间。但是这不等同于不用编写代码了,而是存在了一个框架,这个框架可以使开发人员思路更清晰。在StarUML中,可以将模型中的一个或多个类图转换为Java、C+、C#源代码的过程。,3.4.1 正向工程,生成Java代码的具体步骤如下: 单击“ToolsJava”菜单,选择“Generate Code”从“Java Code Generation”对话框中选择设计模块 为了使模块或者图的所有类都生成stub code,选择“Select All” 选择一个有效的输出路径 在弹出的“Options S
19、etup”对话框中选中“Generate the Documentation by JavaDoc”和“Generate empty JavaDoc”复选框 弹出“Java code generated successfully”的提示,说明现在StarUML已将图产生了代码 单击“Code Generation”对话框的“Finish”按钮后就可以编辑生成的代码,以增加应用,3.4.2 逆向工程,逆向工程是分析Java代码,然后将其转换到模型的类的过程。StarUML可以从现有的Java代码创建一个类图,这被称为“reverse engineering”,当从现有的代码生成图表,或者修改了生
20、成的代码,并且想在图表中反应出来时,就要启用逆向工程了。 通过图表或者文本编辑器去反复工作的过程,是面向对象变成中的一个基本过程,被称为“round-trip engineering”。,3.4.2 逆向工程,其逆向工程的实现步骤如下: 单击“ToolsJava”菜单,选择“Reverse Engineer.” 选择Java代码所在的目录,并单击“Add”或“Add All”按钮,将它们包括在逆向工程过程中 选择需要的类加入模块 在弹出的“Option Setup”对话框中选择默认的“public”、“package”、“protected”和“private”。同样,选中默认的单选按钮“Cr
21、eate the field to the Attribute”。其他可以不用选中 对选项做了检查后,点击“Run”; 弹出“Java reverse engineering has been completed successfully”提示信息,表示逆向工程已成功,单击“确定”按钮,在单击“Reverse Engineering”中的“Finish”按钮;,3.5 小 结,本章主要介绍了Rational Rose、PowerDesigner、Visio和StarUML四种常用的UML开发工具,其中重点介绍了比较简单、易用且开源的StarUML。从使用工具的角度介绍了StarUML的安装和配
22、置过程,重点介绍了StarUML的建模过程。,习 题,1StarUML提供了几种UML图?各有什么特点? 2在StarUML中可以实现双向工程吗?要实现Java语言的工程需要进行怎样的设置? 3一个项目工程包含几个元素? 4如何对一个添加一个类的属性和操作? 5如何添加图? 6请描述一个StarUML工程的基本创建过程。 7( )是通过到实现语言的映射而把模型转换为代码的过程 A正向工程 B逆向工程 C前向工程 D后向工程 8下面关于正向工程与逆向工程的描述,哪个不正确( )。 A正向工程是通过到实现语言的映射而把模型转换为代码的过程 B逆向工程是通过从特定实现语言的映射而把代码转换为模型的过程 C正向工程是通过从特定实现语言的映射而把代码转换为模型的过程 D正向工程与逆向工程可以通过StarUML支持来实现,