Commit 1177d7dc authored by uschwar1's avatar uschwar1
Browse files

adapt for PID-architecture

parent d9a644e3
<<<<<<< HEAD
# Activities in a PID Architecture
=======
# UML Generator with PlantUML
## PlantUML in a nutshell
PlantUML is a component that allows to quickly write a couple of different
diagram types.
There are a few UML diagrams that are used in most situations in software development or systems modeling, including IT infrastructure and business systems. The top three UML diagrams that you should get comfortable with include use case diagrams, class diagrams (if you are a programmer), and sequence diagrams.
### Sequence diagram
Sequence diagrams are used to visualize both interactions within programs, business processes and IT infrastructures. They describe the sequence of interactions (messages) between actors and objects (things like databases or external interfaces).
```plantuml
Alice -> Bob: Authentication Request`
Bob --> Alice: Authentication Response`
Alice -> Bob: Another authentication Request`
Alice <-- Bob: another authentication Response`
```
```plantuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
```
### Usecase diagram
Use case diagrams are created when you are looking at the requirements of your system or program.
They represent the functions or features, the actors and how these relate to each other (their relationships).
```plantuml
(First usecase)
(Another usecase) as (UC2)
usecase UC3
usecase (Last\nusecase) as UC4
UC3 -- UC4:related
```
```plantuml
(First usecase)
(Another usecase) as (UC2)
usecase UC3
usecase (Last\nusecase) as UC4
UC3 -- UC4:related
```
### Class diagram
Object oriented programming languages are based on classes and the relationships between them. UML class diagram notation was developed to represent these programs visually.
Classes contain their attributes (their data) and behaviors (member functions), and are related to each other with a variety of connectors.
```plantuml
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
Class05 --> "1" Class06
```
```plantuml
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
Class05 --> "1" Class06
```
```plantuml
Class01 <|-- Class02
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 -- Class10
```
```plantuml
Class01 <|-- Class02
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 -- Class10
```
```plantuml
Class11 <|.. Class12
Class13 --> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <--* Class20
```
```plantuml
Class11 <|.. Class12
Class13 --> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <--* Class20
```
```plantuml
Class21 #-- Class22
Class23 x-- Class24
Class25 }-- Class26
Class27 +-- Class28
Class29 ^-- Class30
```
```plantuml
Class21 #-- Class22
Class23 x-- Class24
Class25 }-- Class26
Class27 +-- Class28
Class29 ^-- Class30
```
### Activity diagram
Activity diagrams model the behavior of users and systems as they follow a process. They are a type of flow chart or workflow, but they use slightly different shapes.
```plantuml
start
:Hello world;
:This is on defined on
several **lines**;
stop
```
```plantuml
start
:Hello world;
:This is on defined on
several **lines**;
stop
```
### Component diagram
A component diagram shows how the various components in a complex software system relate to each other and communicate using interfaces. They aren’t used for simpler or straight-forward systems.
```plantuml
DataAccess - [First Component]
[First Component] ..> HTTP : use
```
```plantuml
DataAccess - [First Component]
[First Component] ..> HTTP : use
```
### State diagram
State diagrams have been used in programming to describe the various states that a system can be in for decades. They aren’t limited to programming – every system and process has states. These diagrams are faster to create than activity or sequence diagrams, but show less information.
State diagrams show which states lead to each other, and what triggers a change of state.
```plantuml
[*] --> State1
State1 --> [*]
State1 : this is a string
State1 : this is another string
State1 -> State2
State2 --> [*]
```
```plantuml
[*] --> State1
State1 --> [*]
State1 : this is a string
State1 : this is another string
State1 -> State2
State2 --> [*]
```
### Object diagram
Object diagrams in UML are a specialized form of class diagrams. They visualize the more abstract class diagrams as if they have been instantiated and help software developers check whether their abstract structures will work in practice.
```plantuml
object firstObject
object "My Second Object" as Object02
firstObject o-- "4" Object02
```
```plantuml
object firstObject
object "My Second Object" as Object02
firstObject o-- "4" Object02
```
### Deployment diagram
This is another specialized diagram for large and complex systems where software is deployed over multiple systems. These days, web services like Amazon Web Services (AWS) and Google Cloud Platform (GCP) have their own notations
```plantuml
actor actor
agent agent
artifact artifact
boundary boundary
card card
cloud cloud
component component
control control
database database
entity entity
file file
folder folder[
This is a <b>folder
----
You can use separator
====
of different kind
....
and style
]
frame frame
interface interface
node node
package package
queue queue
stack stack
rectangle rectangle
storage storage
usecase usecase
card --> cloud : label1
```
```plantuml
actor actor
agent agent
artifact artifact
boundary boundary
card card
cloud cloud
component component
control control
database database
entity entity
file file
folder folder[
This is a <b>folder
----
You can use separator
====
of different kind
....
and style
]
frame frame
interface interface
node node
package package
queue queue
stack stack
rectangle rectangle
storage storage
usecase usecase
card --> cloud : label1
```
### Timing diagram
This is a special type of sequence diagram that follows the behavior of objects over time. They are used more commonly when designing embedded systems, like programming control software for a washing machine.
```plantuml
robust "Web Browser" as WB
concise "Web User" as WU
@0
WU is Idle
WB is Idle
@100
WU -> WB : URL
WU is Waiting
WB is Processing
@300
WB is Waiting
```
```plantuml
robust "Web Browser" as WB
concise "Web User" as WU
@0
WU is Idle
WB is Idle
@100
WU -> WB : URL
WU is Waiting
WB is Processing
@300
WB is Waiting
```
## The following non-UML diagrams are also supported:
### Wireframe graphical interface
```plantuml
```
```plantuml
```
### Archimate diagram
```plantuml
```
```plantuml
```
### Specification and Description Language (SDL)
```plantuml
```
```plantuml
```
### Ditaa diagram
```plantuml
```
```plantuml
```
### Gantt diagram
```plantuml
```
```plantuml
```
### MindMap diagram
```plantuml
* title
** subtitle1
*** section 1.1
**** subsection 1.1.1
*** section 1.2
** subtitle2
*** section 2.1
*** section 2.2
```
not supported yet in Gitlab
```plantuml
```
### Work Breakdown Structure diagram
```plantuml
```
```plantuml
```
### Mathematic with AsciiMath or JLaTeXMath notation
```plantuml
```
```plantuml
```
### Entity Relationship diagram
```plantuml
```
```plantuml
```
>>>>>>> umlgenerator/master
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment