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. nginx gzip压缩配置

    gzip(GNU-ZIP)是一种压缩技术.经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多.gzip 的压缩页面需要浏览器和服务器双方都支持,实际上就是服务 ...

  2. mysql数据库查询

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...

  3. 第9次Scrum会议(10/21)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华小组照片 二.开会信息 时间:2017/10/21 17:20~17:45,总计25min.地点:东北师范 ...

  4. winform default模式下和英文模式下 修改问题

    1.修改控件大小.位置等属性在default模式下修改: 2.修改控件属性最好不要做鼠标拖动放大,拖动修改位置等,建议用属性栏中的数字来改变.

  5. Android开发第二阶段(5)

    今天:对图片的替换修改,使整个app的图案化更美观. 明天:对Android的对sdcard的操作学习

  6. 本周WEB技术学习情况

    相较于之前本周有了明显的进步    之前不熟悉的知识点在多次的实机中得到巩固加深,用得越来越得心应手 我认为只要多用功更加自主的学习  web其实并不难 希望自己天天进步

  7. lintcode-129-重哈希

    129-重哈希 哈希表容量的大小在一开始是不确定的.如果哈希表存储的元素太多(如超过容量的十分之一),我们应该将哈希表容量扩大一倍,并将所有的哈希值重新安排.假设你有如下一哈希表: size=3, c ...

  8. LAMP环境搭建Wordpress个人博客

    LAMP简要介绍 L:LinuxA:Apache(httpd)M:MySQL , MariadbP:php, perl , python 静态资源:图片,文档,视频,HTML代码,CSS代码,js代码 ...

  9. this.AcceptButton = button1的用法:

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. java 两个数组合并

    需求:两个字符串合并(如果想去重复,参考下一篇--数组去重复及记录重复个数) //方法一 Arrays类 String[] a = {"A","B"," ...