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.

🎉 Copied!

@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.

🎉 Copied!

@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:
  • -down-> (default arrow)
  • -right-> or ->
  • -left->
  • -up->

🎉 Copied!

@startuml

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

@enduml

Verzweigungen

Sie können if/then/else Schlüsselwörter verwenden, um Verzweigungen zu definieren.

🎉 Copied!

@startuml
(*) --> "Initialization"

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

@enduml

Leider müssen Sie dann manchmal dieselbe Aktivität im Diagrammtext wiederholen:

🎉 Copied!

@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.

🎉 Copied!

@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.

🎉 Copied!

@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.

🎉 Copied!

@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

WARNING
 This translation need to be updated. 
WARNING

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.

🎉 Copied!

@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.

🎉 Copied!

@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.

🎉 Copied!

@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.

🎉 Copied!

@startuml
'Default is skinparam activityShape roundBox
skinparam activityShape octagon

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

@enduml

Komplettes Beispiel

🎉 Copied!

@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


Privacy Policy      Advertise