PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件

简介: 在应用系统软件开发过程中,如果软件由很多对象组成,它的结构仅仅凭借分析很难理清,同时为了有利于软件的开发及重用,所以在开发系统之前建模是非常有必要的,在众多的建模方法中选择一种适应自身应用特点,方便不同背景的人们交流的建模方法已经成为开发人员及用户的迫切愿望。UML 是面向对象软件开发中的一种通用、统一的图形模型语言,是用于软件系统规约化、可视化构造和建模的有效工具。本文介绍了一种简单快速的 UML 编辑软件 —— PlantUML,PlantUML 是一个用来绘制 UML 图的 Java 类库。支持的 UML 图包括:时序图、用例图、类图、组件图、活动图等。PlantUML 可以帮助开发人员建立和编辑 UML,有较好的应用前景。

发布日期: 2012 年 7 月 05 日 
级别: 初级 
访问情况 : 9603 次浏览 
评论: 2 (查看 | 添加评论 - 登录)

 平均分 (7个评分)
为本文评分

随着计算机技术的飞速发展,面向对象的软件开发技术发展迅速并获得了广泛应用,在面向对象的分析、设计技术及面向对象的程序设计语言方面均获得了丰富的研究成果,面向对象的方法占据着主导地位。统一建模语言 UML(Unified Modeling Language,简称 UML)是面向对象软件开发中的一种通用、统一的图形模型语言,是用于软件系统规约化、可视化构造和建模的有效工具。他已经被国际化标准组织吸收为软件建模领域的国际标准。UML 融入了软件技术领域的新思想、新方法和新技术,不仅可以支持面向对象的分析与设计,更重要的是能够有力的支持从需求分析开始的软件开发全过程。基于 UML 的设计和开发过程也越来越受到广泛的关注,UML 在面向对象的分析和设计中显示了其强大的生命力。本文介绍了一种简单快速的 UML 编辑软件 -PlantUML,PlantUML 是一个用来绘制 UML 图的 Java 类库。支持的 UML 图包括:时序图、用例图、类图、组件图、活动图等。PlantUML 可以帮助开发人员建立和编辑 UML,有较好的应用前景。

UML 的简介

统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。UML 合并了由 BOOCH、OMT、OOSE 等方法的基本概念和表示符号的基础上,溶入了软件工程的方法,是一种通用的、易于表达的、具有强大的可视化的建模语言。UML 在 1997 年被国际化标准组织(OMG)接纳为正式官方标准后已经成为新一代面向对象软件设计的事实标准,其与 Rational 统一过程的配合使用已经被业界许多企业所采用。UML 提供了一套描述软件系统模型的概念和图形表示方法,软件开发人员可以使用 UML 对复杂的面向对象软件系统建立可视化的模型,并通过增量式的不断细化直接控制从设计、编码、测试到文档编制的整个软件开发过程。

UML 独立于程序设计语言,用 UML 建立的模型可以采用 C++,Java 以及其它任何一种面向对象的程序设计语言来实现。另外 UML 具有以下等优点;UML 合并了由 BOOCH、OMT、OOSE 等方法的优点,提供了标准的面向对象模型元素定义和表示方法,能够间接地表达面向对象的各种概念和模型元素。UML 是一种图形化的语言,其可视性强,具有较强的表示能力。此外,UML 独立于开发过程,能同多种开发过程结合使用,具有广泛的适用性。最后,UML 易用使用,为开发人员及用户提供了详尽的说明文档。

UML 由视图、图、模型元素和通用机制等几个部分组成。其中,视图是用于表达系统某一方面特征的 UML 建模元素的子集,由多个图构成,是在某一抽象层上,对系统的抽象表示。图是模型元素集的图形表示。模型元素代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常用概念。通用机制用于表示其他信息。另外,UML 有事物,关系和图三个基本构造块。事物是实体抽象化的最终结果,是模型是中的基本成员;关系是将事物联系在一起的方式;图是事物集合的分类。


回页首

PlantUML 的安装及配置

PlantUML 支持在多个平台上安装使用,比如 Eclipse,NetBeans,oneline servlet 等,它也支持多种语言的编辑,例如 C/C++,PHP,Java,Html 等。用户可以从 PlantUML 的官方网站上下载所需用的相应的文件。http://plantuml.sourceforge.net/download.html

下面本文仅以 Eclipse 开发操作平台为例简要地介绍 PlantUML 的安装及配置方法。

  1. 下载更新 PlantUML Eclipse 插件,打开 Eclipse,Help-> Install new software...。

    填入相应的 URL:

    http://basar.idi.ntnu.no/svn/tdt4100/anonymous/trunk/updatesite/

    http://plantuml.sourceforge.net/updatesite/

    图 1. 下载安装 PlantUML 插件

  2. 下载安装成功后,重启 Eclipse。会在 Windows->Show View->Other 看到 PlantUML 的图标。 

    图 2 . PlantUML 图标成功显示

    用户也可以下载相应的 plantuml.jar文件,进行手动安装。


回页首

PlantUML 的使用实例

用户可以根据不同的需要,利用 PlantUML 可以生成不同的视图。操作非常简单方便。

图 3. PlantUML 操作界面

下面本文将用实际的语法实例对应用 PlantUML 生成的各种视图进行说明介绍。

时序图

时序图亦称为 序列图或循序图,是一种 UML 行为图。它通过描述 对象之间发送 消息的时间顺序显示多个对象之间的动态协作。它可以表示 用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

语法实例:

 @startuml
title Sequence Diagram Example
actor Tester1 #red
actor Tester2 #Yellow
Tester1 -> Tester2: 发送请求
Tester2 --> Tester1: 回复请求
@enduml

图 4. 时序图视图

用例图

用例图 - 由主角、用例以及它们之间的关系构成的图。

语法实例:

 @startuml
: 管理员 : as Admin << 管理员 >>
( 应用程序 ) as (Use)
Tester1 -> ( 开始 )
Tester2 --> (Use)
Admin ---> (Use)
note right of Admin : 管理员身份
note left of (Use)
实现 Notes Domino 的功能
end note
note "测试人员进行测试工作" as user
( 开始 ) .. user
user .. (Use)
@enduml

图 5. 用例图视图

类图

类图 - 显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。

语法实例:

 @startuml
skinparam classAttributeIconSize 12
class Test << 主函数 >> {
-Function1
+Function2
#Function3
~Function4
~method1()
+method2()
#method3()
~method4()
}
Test <|-- Test2
Test1 o-- Test2
Test *-- Test3: 调用
@enduml

图 6. 类图视图

活动图

活动图 - 阐明了业务 用例实现的工作流程。业务用例工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。业务用例由一系列活动组成,它们共同为业务主角生成某些工件。工作流程通常包括一个基本工作流程和一个或多个备选工作流程。

语法实例:

 @startuml
(*) --> "Start"
note right: Start Testing
if "result" then
-->[true] "Next Testing"
--> "End"
-right-> (*)
else
->[false] "Change Testing"
-->[Ending process] (*)
endif
@enduml

图 7. 活动图视图

组件图

组件图 - 用来反映代码的物理结构。从组件图中,您可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。

语法实例:

 @startuml
title Lotus
interface "IBMDocs" as SC
package "Test1" {
SC - [ 第一个组件 ]
Notes - [ 第一个组件 ]: use
Symphony - [ 第二个组件 ]
[ 其他组件 ]
}
package "Test2" {
Connections - [ 第三个组件 ]
[ 第一个组件 ] --> iNotes
}
@enduml

图 8. 组件图视图

状态图

状态图 - 描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态

对不同的事件做出反应的。

语法实例:

 @startuml
[*] --> Test
state "Test" as Test {
state "Testing Module" as TM
state "Configuring Module" as CM
[*] --> CM
TM --> CM : Testing1
CM --> TM : Testing2
}
note right of Test : 状态图实例
@enduml

图 9. 状态图视图

对象图

对象图 - 显示了一组对象和他们之间的关系。使用对象图来说明数据结构类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。对象图显示某时刻对象和对象之间的关系。一个对象图可看成一个类图的特殊用例,实例和类可在其中显示。对象也和合作图相联系,合作图显示处于语境中的对象原型(类元角色)。

语法实例:

 @startuml
object Test1
object Test2
@enduml

图 10. 对象图实例

下面本文将简要地介绍一个具体实例的应用。

这个实例是由其官方网站提供:

http://plantuml.sourceforge.net/unicode.html

图 11 是由 PlantUML 的方法生成的实例图。

图 11. 具体实例图

在 PlantUML 的官方主页中,有对各种方法更为详尽的描述及说明。文本仅仅列举了一些简单的语法规则,利用 PlantUML 做出的各种视图。可以看到 PlantUML 提供了非常简单的语法规则,为用户进行编辑提供了较为便捷的方法。

PlantUML 提供了多种语言的编辑方式,如 TXT 文本,HTML,Java,C/C++,LaTex,APT,Word 及 URL 等多种方式,满足不同的用户需求。


回页首

总结

本文向读者介绍了一种开源的软件— PlantUML,它是一种简单快速的 UML 编辑软件,PlantUML 是一个用来绘制 UML 图的 Java 类库。提供了各种简单有效地方法,支持的 UML 各种视图,包括:时序图、用例图、类图、组件图、活动图等。PlantUML 可以帮助开发人员建立和编辑 UML,为开发人员提供了更多的开发条件,有较好的应用前景。

PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件的更多相关文章

  1. 20155301-滕树晨 第二次随笔作业--从现有技能获取的经验应用于JAVA中

    第二次随笔--从现有技能获取的经验应用于JAVA中 你有什么技能比大多人(超过90%以上)更好? 这个想了半天,有一个是我乒乓球还是比较擅长的,在学校里可能比百分之90的人要强,在外面肯定是不如了.再 ...

  2. SSD固态盘应用于Ceph集群的四种典型使用场景

    在虚拟化及云计算技术大规模应用于企业数据中心的科技潮流中,存储性能无疑是企业核心应用是否虚拟化.云化的关键指标之一.传统的做法是升级存储设备,但这没解决根本问题,性能和容量不能兼顾,并且解决不好设备利 ...

  3. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  4. 【转】让你10分钟搞定Mac--最简单快速的虚拟安装

    文章出处:让你10分钟搞定Mac--最简单快速的虚拟安装http://bbs.itheima.com/thread-106643-1-1.html (出处: 黑马程序员训练营论坛) 首先说明一下. 第 ...

  5. 简单快速搭建钓鱼wifi

    前言 钓鱼wifi是很久的话题了,但是传统的方法可能比较麻烦需要手动配置dhcp,dns,网卡,流量转发,比较麻烦,而且还有根据每次的网络环境需要重新的配置,这里介绍用WIFIpumpkin3工具简单 ...

  6. CocoaPods 的简单快速安装方法

    CocoaPods 的简单快速安装方法(Setting up CocoaPods master repo 卡着不动,是因为淘宝镜像已经不能用了. 一.git clone方法安装cocoapods 镜像 ...

  7. 完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能

    #!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input(" ...

  8. Eclipse小技巧--快速输入System.out.println();(转)

    步骤1:指定“Content Assist”的快捷键,参考:善用 Eclipse 组合键,提高输入效率 步骤2:输入源代码是,先输入sysout,然后输入辅助快捷键:Alt+/,这样就可以自动生成:S ...

  9. Git应用于Android项目的入门知识:我的理解

    Git应用于Android项目的基本知识.     常常将git,repo和gerrit三种工具配合起来使用,使Android开发中的部分工作自动化.并适应敏捷项目管理的需要.     repo是Go ...

随机推荐

  1. presto 配置mysql.properties异常Database (catalog) must not be specified in JDBC URL for MySQL connector

    在presto 0.210 以后配置mysql.properties的时候,对于jdbc-url属性配置后面要加上对应要链接的database connection-url=jdbc:mysql:// ...

  2. 0428数字口袋精灵app优化

    "数字口袋精灵app"优化 目录: 一.项目github总仓库推送 二.开发成员 三.分工与合作 四.各模块成果 五.团队成员贡献分 内容: 一.项目github总仓库: http ...

  3. 用VS测试程序

    怀着一种忐忑的心情,我开始了我的软件测试. #include "stdio.h" #include "stdlib.h" int main(int argc, ...

  4. 安装VS的过程

    软件工程学习到第三周,我们需要下载一个新的软件,用来进行软件测试.刚开始知道的时候觉得没甚么,不就是下个软件吗!有什么大不了的,分分钟搞定的事.可是想象很美好,现实很骨感.这是一个巨大的工作量呀,不仅 ...

  5. struts通配符*的使用

    <action name="user_*" class="com.wangcf.UserAction" method="{1}"> ...

  6. lintcode-208-赋值运算符重载

    208-赋值运算符重载 实现赋值运算符重载函数,确保: 新的数据可准确地被复制 旧的数据可准确地删除/释放 可进行 A = B = C 赋值 说明 本题只适用于C++,因为 Java 和 Python ...

  7. WebService(一)

    1.简介 Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用 ...

  8. flink ha zk集群迁移实践

    flink为了保证线上作业的可用性,提供了ha机制,如果发现线上作业失败,则通过ha中存储的信息来实现作业的重新拉起. 我们在flink的线上环境使用了zk为flink的ha提供服务,但在初期,由于资 ...

  9. 【Java并发编程】之三:线程挂起、恢复与终止的正确方法

    挂起和恢复线程 ​ Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的.如果在不合适的时候挂起线程(比如,锁定共享资源时), ...

  10. Java 读取Excel2007 jar包冲突的问题(org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException)

    1.jar包冲突报错问题 2.使用的jar包,以及重复jar包 3.删除重复jar包