Skip to main content

Component Dynamic Behavior Template

Dynamic behavior template for components.

dynamic_behavior.md

Copy the contents to an empty markdown file and start editing. Remove the help text in block quotes and any unused sections.

# Dynamic Behavior for ComponentName \{#DynamicBehavior_ComponentName}

<!-- This template is to be used to describe the dynamic behavior of a component, it shows how the component behaves for important use cases. It shall be used together with the main markdown file describing the complete component. -->

---

<!-- List of different behaviors with sequence diagrams or activity diagrams -->

## Dynamic Behavior Title1

<!-- Textual description for the behavior. -->
Behavior description...

```plantuml
@startuml
!include dynamic_behavior_sequence.puml
@enduml
```

## Dynamic Behavior Title2

<!-- Textual description for the behavior. -->
Behavior description...

```plantuml
@startuml
!include dynamic_behavior_activity.puml
@enduml
```

Note: The "!include dynamic_behavior_activity.puml" above don't work in an ADO Wiki. You have to convert the .puml to a .png and include it in the markdown. It may work in Visual Studio with the right plugins - but it doesn't help much if it is visualized with the ADO Wiki.

dynamic_behavior_sequence.puml

Copy the text to an empty plantuml file and start editing.

@startuml

skinparam sequence {
ArrowColor Black
ActorBorderColor Black
ParticipantBorderColor Black
LifeLineBorderColor Black
BoxBorderColor Black
}

skinparam note {
BorderColor Black
BackgroundColor AliceBlue
}

participant Client
box "Platform1"
participant "Object1:Class1" AS Obj1
participant "Object2:Class1" as Obj2
end box
participant "Class2" AS Class2
participant "Class3:Interface1" AS IF1

loop cyclic execution.
Client -> Class2: Get()
activate Class2
Class2 -> IF1: Get()
activate IF1
IF1 --> Class2: data
deactivate IF1
== Initial data retrieved, \
create all objects that are not already created. ==
loop for each property
Class2 -> Obj1: Method1()
alt New Request
Class2 -> Obj2**: Create()
note right
Note text with extra description.
end note
end /'end alt New Request'/
end /'end loop for each property'/
destroy Class2
end /'end loop cyclic execution'/

@enduml

Dynamic Behavior Sequence

dynamic_behavior_activity.puml

Copy the text to an empty plantuml file and start editing.

@startuml

<!-- <style>
activityDiagram {
BorderColor black

diamond {
LineColor black
}
arrow {
}
partition {
LineColor black
}
note {
FontColor Blue
LineColor Navy
BackgroundColor #ccf
}
}
document {
BackgroundColor transparent
}
</style> -->

title Template example
start
:ClickServlet.handleRequest();
:new page;
if (Page.onSecurityCheck) then (true)
:Page.onInit();
note left: Init the page
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

Dynamic Behavior Activity

Owner: Software Development Team