Вы можете внести свой вклад на этой странице, нажав здесь  (Menu)

 

 

Диаграмма активности (бета)

Текущий синтаксис диаграммы активности имеет несколько ограничений и недостатков (например, её сложно поддерживать).

Таким образом, новый синтаксис и реализация предложены как бета версия пользователям (начиная с V7947), так что мы сможем определить новый формат и синтаксис.

Другое преимущество этой новой реализации, это то, что для неё не будет требоваться установленный Graphviz (как для диаграмм последовательностей).

Новый синтаксис заменит старый. Однако, по причине совместимости, старый синтаксис всё ещё будет распознаваться, чтобы обеспечивать восходящую совместимость.

Пользователи будут просто поощряться при мигрировании на новый синтаксис.

 

 

Простая активность

Описания активностей начинаются с : и заканчиваются с ;.

Форматировать текст возможно используя синтаксис creole.

Они косвенно связаны в порядке их определения.

@startuml
:Hello world;
:This is on defined on
several **lines**;
@enduml

 

 

Старт/Стоп

Вы можете использовать ключевые слова start и stop чтобы обозначать начало и конец диаграммы.

@startuml
start
:Hello world;
:This is on defined on
several **lines**;
stop
@enduml

Вы также можете использовать ключевое слово end.

@startuml
start
:Hello world;
:This is on defined on
several **lines**;
end
@enduml

 

 

Условия

Вы можете использовать ключевые слова if, then и else чтобы добавить проверяющие если на вашу диаграмму. Описания могут быть добавлены используя круглые скобки.

@startuml

start

if (Graphviz installed?) then (yes)
  :process all\ndiagrams;
else (no)
  :process only
  __sequence__ and __activity__ diagrams;
endif

stop

@enduml

Вы можете использовать ключевые слова elseif чтобы создать несколько проверок:

@startuml
start
if (condition A) then (yes)
  :Text 1;
elseif (condition B) then (yes)
  :Text 2;
  stop
elseif (condition C) then (yes)
  :Text 3;
elseif (condition D) then (yes)
  :Text 4;
else (nothing)
  :Text else;
endif
stop
@enduml

 

 

Повторяющийся цикл

Вы можете использовать ключевые слова repeat и repeatwhile чтобы создать повторяющиеся циклы.

@startuml

start

repeat
  :read data;
  :generate diagrams;
repeat while (more data?)

stop

@enduml

 

 

Цикл while

Вы можете использовать ключевые слова while и end while чтобы создавать повторяющиеся циклы.

@startuml

start

while (data available?)
  :read data;
  :generate diagrams;
endwhile

stop

@enduml

Возможно добавить описание используя ключевое слово endwhile, или используя ключевое слово is..

@startuml
while (check filesize ?) is (not empty)
  :read file;
endwhile (empty)
:close file;
@enduml

 

 

Паралельные процессы

Вы можете использовать ключевые слова fork, fork again и end fork чтобы определить параллельные процессы.

@startuml

start

if (multiprocessor?) then (yes)
  fork
	:Treatment 1;
  fork again
	:Treatment 2;
  end fork
else (monoproc)
  :Treatment 1;
  :Treatment 2;
endif

@enduml

 

 

Заметки

Форматирование текста может быть сделано синтаксисом creole.

Заметку можно сделать плавающей, с помощью ключевого слова floating.

@startuml

start
:foo1;
floating note left: This is a note
:foo2;
note right
  This note is on several
  //lines// and can
  contain <b>HTML</b>
  ====
  * Calling the method ""foo()"" is prohibited
end note
stop

@enduml

 

 

Цвета

Вы можете задать цвет некоторым активностям.

@startuml

start
:starting progress;
#HotPink:reading configuration files
These files should edited at this point!;
#AAAAAA:ending of the process;

@enduml

 

 

Стрелки

Используя нотацию ->, вы можете добавить текст к стрелке, aи поменять их цвет.

Так же можно сделать стрелки: из точек, из дефисов, жирные и спрятанные.

@startuml
:foo1;
-> You can put text on arrows;
if (test) then
  -[#blue]->
  :foo2;
  -[#green,dashed]-> The text can
  also be on several lines
  and **very** long...;
  :foo3;
else
  -[#black,dotted]->
  :foo4;
endif
-[#gray,bold]->
:foo5;
@enduml

 

 

Connector

You can use parentheses to denote connector.

@startuml
start
:Some activity;
(A)
detach
(A)
:Other activity;
@enduml

 

 

Группирование

Вы можете группировать активности вместе, определяя раздел:

@startuml
start
partition Initialization {
	:read config file;
	:init internal variable;
}
partition Running {
	:wait for user interaction;
	:print information;
}

stop
@enduml

 

 

Дорожки

Используя символ |, вы можете определять плавающие линии.

Также возможно изменять цвет плавающих линий.

@startuml
|Swimlane1|
start
:foo1;
|#AntiqueWhite|Swimlane2|
:foo2;
:foo3;
|Swimlane1|
:foo4;
|Swimlane2|
:foo5;
stop
@enduml

 

 

Отсоединение

Возможно убрать стрелку используя ключевое слово detach.

@startuml
 :start;
 fork
   :foo1;
   :foo2;
 fork again
   :foo3;
   detach
 endfork
 if (foo4) then
   :foo5;
   detach
 endif
 :foo6;
 detach
 :foo7;
 stop
@enduml

 

 

SDL

Изменяя последний разделитель ;, вы можете установить различный рендеринг для активности:

@startuml
:Ready;
:next(o)|
:Receiving;
split
 :nak(i)<
 :ack(o)>
split again
 :ack(i)<
 :next(o)
 on several line|
 :i := i + 1]
 :ack(o)>
split again
 :err(i)<
 :nak(o)>
split again
 :foo/
split again
 :i > 5}
stop
end split
:finish;
@enduml

 

 

Полноценный пример

@startuml

start
:ClickServlet.handleRequest();
:new page;
if (Page.onSecurityCheck) then (true)
  :Page.onInit();
  if (isForward?) then (no)
	:Process controls;
	if (continue processing?) then (no)
	  stop
	endif
	
	if (isPost?) then (yes)
	  :Page.onPost();
	else (no)
	  :Page.onGet();
	endif
	:Page.onRender();
  endif
else (false)
endif

if (do redirect?) then (yes)
  :redirect process;
else
  if (do forward?) then (yes)
	:Forward request;
  else (no)
	:Render page template;
  endif
endif

stop

@enduml