plantUML语法学习(1))

Simple Activity

新的语法是 : 节点 ; 结束

@startuml
title act_new_1
:步骤一;
:此处简单的Mark语法 **加粗字体**;
@enduml

在这里插入图片描述

Start/Stop 开始和结束

@startuml
title act_new_2
start
:步骤一;
:mark 语法 **加粗字体**;

stop
@enduml

在这里插入图片描述

Conditional 条件语句

控制语句的使用,注意内容 () 的使用

@startuml
title act_new_3
start
if(是否已下载文件?) then (是)
    :执行 diagrame\n\\n可实现换行;
else (否)
    :需要下载文件\t可实现空格ab后才能执行;
endif
stop
@enduml

在这里插入图片描述

Repeat loop 循环处理(控制语句)

使用关键字 repeat, repeat while () 来实现

@startuml
title act_new_4
start
repeat
    :读取文件;
    :编译;
repeat while (更多,执行下一个?)

stop
@enduml

在这里插入图片描述

While loop 循环控制

使用 while endwhile 循环控制

@startuml
title act_new_5
start
while (执行条件允许文件存在?)
    :读取文件;
    :编译;
endwhile
stop
@enduml

在这里插入图片描述
可以追加标签

@startuml
title act_new_5
start
:打开文件;
while (检查文件大小?) is (有内容)
    :读取文件;
    :编译;
endwhile ()
:关闭文件;
end
@enduml

在这里插入图片描述

Parallel processing 并行处理

使用 fork 关键字创建并行处理

@startuml
title act_new_7
start 
if (multiprocessor?) then (yes)
fork
    :Treatment 1;
fork again
    :Treatment 2;
end fork
else (monoproc)
     :Treatment 1;
     :Treatment 1;
endif

@enduml

在这里插入图片描述

Notes 注释

和旧版基本相同,单行注释使用 note right|left 内容,注意后面没有分号。而多行注释依旧使用 note right|left 换行 内容 换行 end note的方式处理

@startuml

title act_new_8

start
: 步骤1;
note left: This is a __NOTE__
: 步骤2;
note right
    支持 mark 编辑语法
    This note is on several
    //lines// and can
    contain <b>HTML</b>
    ====
    * Calling the method ""foo()"" is prohibited
end note
stop

@enduml

在这里插入图片描述

color颜色

在冒号前可以追加 #十六进制 的颜色编号或者名称

@startuml
title act_new_9
start
:进程开始;
#red:试着读取文件
文件必须有可写权限!;
#AAAAAA:结束进程;
stop
@enduml

在这里插入图片描述

流程图

流程图语法在开始位置必须为 节点 --> 节点, 使用 (*) 来标识开始和结束。
内部则可以 使用 --> 节点 。

节点是具有唯一性的,当流程中出现节点名称相同的时候会产生混乱, 所以在写 uml 的时候注意保证节点的唯一性

开始与结束

@startuml
title act_1

(*) --> "文档 内容"
-->(*)
@enduml

在这里插入图片描述

进程节点

在箭头后追加 [标签内容] 可以放置标签。
在 --> 中间可以通过 up,down,left,right 来人为控制箭头的方向

@startuml
title act_2
(*) -->"开始"
--> "节点名称"
-->[箭头的注释] "节点名称0"
-up-> "节点名称1"
-down->  "节点名称2"
-left->  "节点名称3"
-right->  "节点名称4"
-->(*)
@enduml

在这里插入图片描述

条件语句(控制流程)

使用 if 条件 then \n else 和 endif 写控制语句

@startuml

title act_3

(*)->1
if  "介绍" then
    -->[true] "真"
else
    -->[false] "真"
endif
->(*)
@enduml

在这里插入图片描述

注释

单行注释

note right:  右侧的内容
note left:  右侧的内容

多行注释

note right:
多行内容
endnote

分区

@startuml

title act_4

(*) --> 开始
partition "分区名称" {
    --> "基本节点"
}
--> (*)

@enduml

在这里插入图片描述

Parallel processing 并行处理

Parallel processing 并行处理
使用 ===标记===, 来处理, 重新从某位置开始的时候使用 ===标记=== --> 节点 重新开始
@startuml
title act_5

(*) -->内容

--> ===B1===
--> "Parallel Activity 1"
--> ===B2===

===B1=== --> "Parallel Activity 2"
--> ===B2===

--> (*)

@enduml

在这里插入图片描述

综合案例

@startuml

title act_6

(*) --> "ClickServlet.handleRequest()"
--> "new Page"

if "Page.onSecurityCheck" then
  ->[true] "Page.onInit()"

  if "isForward?" then
   ->[no] "Process controls"

   if "continue processing?" then
     -->[yes] ===RENDERING===
   else
     -->[no] ===REDIRECT_CHECK===
   endif

  else
   -->[yes] ===RENDERING===
  endif

  if "is Post?" then
    -->[yes] "Page.onPost()"
    --> "Page.onRender()" as render
    --> ===REDIRECT_CHECK===
  else
    -->[no] "Page.onGet()"
    --> render
  endif

else
  -->[false] ===REDIRECT_CHECK===
endif

if "Do redirect?" then
 ->[yes] "redirect request"
 --> ==BEFORE_DESTROY===
else
 if "Do Forward?" then
  -left->[yes] "Forward request"
  --> ==BEFORE_DESTROY===
 else
  -right->[no] "Render page template"
  --> ==BEFORE_DESTROY===
 endif
endif

--> "Page.onDestroy()"
-->(*)

@enduml

在这里插入图片描述

Sequence Diagram 时序图

基本语法

使用 节点 -> 节点: 描述 -> 为实线
如果使用虚线则 用 -->
箭头的方向可以是双向的 节点 <-- 节点

@startuml

title seq_1

用户 -> 平台: 发送登录请求
平台 --> 用户: 验证通过
用户 -> 平台: 另一个请求
用户 <-- 平台: 返回验证消息
@enduml

在这里插入图片描述

Comments 注释

内部注释使用 ’ 单引号来开始 单行注释, 多行注释则使用 /’ 和 '/ 包括

Declaring participant (角色)

提供了的声明参加者(角色),来丰富图形, 默认情况下在箭头两边的已经隐式声明了(participant),也可以使用 participant 节点 来显示声明角色,这种状况主要是为了声明角色的顺序

@startuml
title seq_2

actor Foo1
boundary Foo2
control Foo3
entity Foo4
database Foo5
Foo1 -> Foo2 : To boundary
Foo1 -> Foo3 : To control
Foo1 -> Foo4 : To entity
Foo1 -> Foo5 : To database

@enduml

在这里插入图片描述
追加色彩

@startuml
title seq_3

actor 客户 #red
' 声明角色的时候在后面可以追加颜色
' 注释内容并不会显示
' The only difference between actor
' and participant is the drawing

participant 服务端
participant "I have a really\nlong name" as L #99FF99
/'  这里使用 `as` 关键字声明了 L 来作为别名
    你也可以这样写:
    participant L as "I have a really\nlong name"  #99FF99
    '/

服务端->客户: 请求认证
客户->服务端: Authentication Response
客户->L: Log transaction
@enduml

在这里插入图片描述

Use non-letters in participants 非字符处理

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PlantUML是一种基于文本的工具,它可以通过简单的文本描述生成各种类型的图形。它的语法非常简洁易懂,易于学习和使用。 首先,要用PlantUML生成图形,需要在文本文件的开头加上`@startuml`标记,用`@enduml`标记结束。 PlantUML支持以下几种基本的图形类型: - 顺序图(Sequence Diagram):描述对象之间消息的流动。 - 用例图(Use Case Diagram):描述系统与外部参与者之间的关系。 - 类图(Class Diagram):描述类与类之间的静态结构。 - 状态机图(State Diagram):描述对象的状态转换。 - 组合结构图(Composite Structure Diagram):描述对象之间的组合结构。 - 活动图(Activity Diagram):描述业务流程或系统行为。 - 组件图(Component Diagram):描述系统的组件及其关系。 在PlantUML中,可以使用一些关键字和符号来描述图形: - `actor`:用于定义参与者(Actor)。 - `object`:用于定义对象。 - `class`:用于定义类及其属性和方法。 - `interface`:用于定义接口。 - `state`:用于定义状态。 - `->`:表示消息的发送。 - `--`:表示对象之间的关联关系。 - `..>`:表示继承或实现关系。 除了基本的图形描述之外,PlantUML还支持许多其他功能,如注释、颜色、箭头样式、创建别名等。同时,还可以使用插件来扩展其功能。 总的来说,PlantUML提供了一种简单而强大的文本描述图形的方式,使得我们可以快速地生成各种类型的图形。无论是软件开发、系统设计还是业务分析,都可以通过使用PlantUML来更好地可视化和沟通。 ### 回答2: PlantUML是一种用于绘制UML图表的工具,它采用文本描述的方式来生成图形。PlantUML支持多种类型的UML图,如类图、时序图、用例图等。 PlantUML语法相对简洁,主要基于ASCII字符,使得编写代码更加方便快捷。下面是一些常用的PlantUML语法规则: 1. 类图: 类图用于描述类与类之间的关系,可以使用关键字`class`定义类或抽象类。通过使用`->`来表示关联关系,使用`--`来表示依赖关系。可以使用`<>`表示实现接口。例如: ```plantuml class A class B A --> B ``` 2. 时序图: 时序图用于描述对象之间消息传递的顺序,可以使用关键字`participant`定义参与者。使用`->`表示消息发送,`-->`表示消息回复。可以使用`activate`和`deactivate`来表示参与者的生命周期。例如: ```plantuml participant A participant B A -> B: Message B --> A: Reply ``` 3. 用例图: 用例图用于描述系统功能和角色之间的关系。可以使用关键字`actor`定义角色,使用关键字`usecase`定义功能。使用`-->`表示关联关系。例如: ```plantuml actor User usecase "Login" as login User --> login ``` 4. 流程图: PlantUML还支持绘制流程图,可以使用关键字`start`定义起始点,使用关键字`end`定义结束点。使用关键字`->`表示流程传递。例如: ```plantuml start :Process 1; if (Condition) then (yes) :Process 2; else (no) :Process 3; endif end ``` 总之,PlantUML提供了一种简洁、高效的绘图方式,可以帮助开发人员更好地理解和沟通UML图表。熟悉PlantUML语法规则能够让我们更快速地创建出清晰的UML图。 ### 回答3: PlantUML 是一种使用文本描述的工具,可以通过图形化的方式绘制各种图表,包括流程图、时序图、类图等。它的语法相对简单,以下是一些常用的语法规则: 1. 定义元素:可以通过使用关键字和特殊字符来定义各种元素,例如使用 `actor` 关键字定义一个参与者(演员),使用 `usecase` 关键字定义一个用例。 2. 连接元素:可以使用连线符号 `-` 或 `--` 来连接元素,表示它们之间的关系。例如 `A - B` 表示 A 与 B 相连,`A -- B` 表示 A 与 B 相关联。 3. 分组元素:可以使用花括号 `{}` 来分组元素,表示它们之间的关系。例如 `{ A, B }` 表示 A 和 B 属于同一组。 4. 注释:可以使用 `//` 符号来给图表添加注释,用于说明图表的含义或解释图表中的某些元素。 5. 控制线条样式:可以使用特殊字符 `--<` 和 `>--` 来控制线条的样式。例如 `A --> B --< C` 表示从 A 到 B 有一条实线,从 B 到 C 有一条虚线。 6. 约束条件:可以使用关键字和特殊字符 `if`、`else`、`endif` 来表示条件约束。例如 `if (条件) then(操作)else(操作)endif`。 7. 循环:可以使用关键字和特殊字符 `repeat`、`while`、`endwhile` 来表示循环。例如 `repeat while (条件)(操作)endwhile`。 PlantUML 提供了丰富的语法规则,可以根据具体需要绘制各种类型的图表。在实际使用时,可以参考官方文档或在线资源,学习更多的语法规则和示例,以实现更复杂和精美的图表绘制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值