Sie können zu dieser Seite beitragen, indem Sie hier klicken  (Menu)

 

 

Aktivitätsdiagramm

 

 

Einfache Aktivität

Mit (*) kann der Startknoten und der Endknoten des Aktivitätsdiagramms festgelegt werden.

In einigen Fällen kann man (*top) verwendet um den Startpunkt an den Anfang des Diagramms zu verlegen.

mit --> können Pfeile definiert werden.

@startuml

(*) --> "First Activity"
"First Activity" --> (*)

@enduml

 

 

Beschriftungen an Pfeilen

Ein Pfeil beginnt automatisch an der zuletzt verwendeten Aktivität.

Pfeile lassen sich beschriften in dem man den Text für die Beschriftung in eckige Klammern ( [ und ] ) direkt hinter die Definition des Pfeils schreibt.

@startuml

(*) --> "First Activity"
-->[You can put also labels] "Second Activity"
--> (*)

@enduml

 

 

Pfeilrichtung ändern

Mit dem Symbol -> kann ein waagerechter Pfeil erstellt werden. Mann kann die Richtung der Pfeile auch mit der folgenden Syntax beeinflussen:

@startuml

(*) -up-> "First Activity"
-right-> "Second Activity"
--> "Third Activity"
-left-> (*)

@enduml

 

 

Verzweigungen

Mit den if/then/else Schlüsselworten können Verzweigungen definiert werden.

@startuml
(*) --> "Initialization"

if "Some Test" then
  -->[true] "Some Activity"
  --> "Another activity"
  -right-> (*)
else
  ->[false] "Something else"
  -->[Ending process] (*)
endif

@enduml

Unglücklicherweise muss man manchmal die gleiche Aktivität im Diagrammtext wiederholen.

@startuml
(*)  --> "check input"
If "input is verbose" then
--> [Yes] "turn on verbosity"
--> "run command"
else
--> "run command"
Endif
-->(*)
@enduml

 

 

Mehr über Verzweigungen

Normalerweise ist ein eine Verzweigung mit der zuletzt definierten Aktivität verbunden. Mit dem if Schlüsselwort ist es aber möglich, diese Voreinstellung zu überschreiben.

Außerdem kann man Verzweigungen auch schachteln.

@startuml

(*) --> if "Some Test" then

  -->[true] "activity 1"
  
  if "" then
	-> "activity 3" as a3
  else
	if "Other test" then
	  -left-> "activity 5"
	else
	  --> "activity 6"
	endif
  endif
  
else

  ->[false] "activity 2"
  
endif

a3 --> if "last test" then
  --> "activity 7"
else
  -> "activity 8"
endif

@enduml

 

 

Synchronisation

Mit === code === können Synchronisationsbalken erzeugt werden.

@startuml

(*) --> ===B1=== 
--> "Parallel Activity 1"
--> ===B2===

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

--> (*)

@enduml

 

 

Lange Beschreibungen für Aktivitäten

Die Beschreibung einer Aktivität kann sich auch über mehrere Zeilen erstrecken. Mit dem \n Symbol kann ein Zeilenvorschub in die Beschreibung eingefügt werden. Außerdem kann man HTML Tags verwenden. Hier ein Beispiel:

Mit dem Schlüsselwort as kann man auch eine kurze Kodierung zur Aktivität hinzufügen. Diese Kodierung kann später in der Diagrammbeschreibung verwendet werden.

@startuml
(*) -left-> "this <size:20>activity</size>
	is <b>very</b> <color:red>long2</color>
	and defined on several lines
	that contains many <i>text</i>" as A1

-up-> "Another activity\n on several lines"

A1 --> "Short activity <img:sourceforge.jpg>"
@enduml

 

 

Notizen

Mit den folgenden Befehlen können einer Aktivität Notizen zugeordnet werden: note left, note right, note top or note bottom, Gleich nach der Beschreibung der Aktivität die man festhalten will.

Wenn Sie eine Notiz für den Startpunkt erstellen wollen müssen Sie diese Notiz ganz am Anfang des Diagramms definieren.

Es ist auch möglich, eine Notiz mit mehreren Zeilen zu erstellen. Dazu werden die end note Schlüsselworte verwendet.

@startuml

(*) --> "Some Activity"
note right: This activity has to be defined
"Some Activity" --> (*)
note left
 This note is on
 several lines
end note

@enduml

 

 

Partitionen

Partitionen können mit dem partition Schlüsselwort erzeugt werden. Dabei kann auch eine Hintergrundfarbe festgelegt werden.(Duch einen HTML Farbcode oder Namen).

Neue Aktivitäten werden automatisch in die zuletzt verwendete Partition eingefügt.

Eine Partition lässt sich über das end partition Schlüsselwort schließen.

@startuml

partition Conductor {
  (*) --> "Climbs on Platform"
  --> === S1 ===
  --> Bows
}

partition Audience #LightSkyBlue {
  === S1 === --> Applauds
}

partition Conductor {
  Bows --> === S2 ===
  --> WavesArmes
  Applauds --> === S2 ===
}

partition Orchestra #CCCCEE {
  WavesArmes --> Introduction
  --> "Play music"
}

@enduml

 

 

Der Skinparam Befehl

Mit dem skinparam Befehl kann man die Farbe und die Schriftart der Zeichnung verändern.

Man kann diesen Befehl wie folgt verwenden:

Man kann spezifische Farben und Schriften für immer wiederkehrende Aktivitäten festlegen.

@startuml

skinparam backgroundColor #AAFFFF
skinparam activity {
  StartColor red
  BarColor SaddleBrown 
  EndColor Silver
  BackgroundColor Peru
  BackgroundColor<< Begin >> Olive
  BorderColor Peru
  FontName Impact
}

(*) --> "Climbs on Platform" << Begin >>
--> === S1 ===
--> Bows
--> === S2 ===
--> WavesArmes
--> (*)

@enduml

 

 

Oktagon

Man kann die Form zu einem Oktagon mit dem Befehl skinparam activityShape octagon ändern.

@startuml
'Default is skinparam activityShape roundBox
skinparam activityShape octagon

(*) --> "First Activity"
"First Activity" --> (*)

@enduml

 

 

Komplettes Beispiel

@startuml
title Servlet Container

(*) --> "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