Vous pouvez contribuer à cette page en cliquant ici  (Menu)

 

 

Diagrammes de composants

Prenons quelques exemples :

 

 

Composants

Les composants doivent être mis entre crochets.

Il est aussi possible d'utiliser le mot-clé component pour définir un composant. Et vous pouvez définir un alias, grâce au mot-clé as. Cet alias sera utile plus tard, pour définir des relations entre composants.

@startuml

[First component]
[Another component] as Comp2  
component Comp3
component [Last\ncomponent] as Comp4

@enduml

 

 

Interfaces

Les interfaces sont définies à l'aide du symbole () (parce que cela ressemble à un cercle).

Vous pouvez aussi utiliser le mot-clé interface pour définir une interface. Vous pouvez aussi définir un alias, à l'aide du mot-clé as. Cet alias pourrait être utilisé plus tard, lors de la définition des relations.

Nous verrons plus tard qu'il n'est pas obligatoire de définir les interfaces.

@startuml

() "First Interface"
() "Another interface" as Interf2
interface Interf3
interface "Last\ninterface" as Interf4

@enduml

 

 

Exemple simple

Les liens entre les éléments sont à utiliser avec des combinaisons de lignes pointillés (..), lignes droites(--), et de flèches (-->).

@startuml

DataAccess - [First Component] 
[First Component] ..> HTTP : use

@enduml

 

 

Mettre des notes

Vous pouvez utiliser les commandes suivantes : note left of , note right of , note top of , note bottom of suivi de l'identifiant du composant pour définir des notes reliées à un seul objet.

Une note peut aussi être créée seule avec le mot clé note, puis ensuite reliée à d'autres objets avec le symbole ...

@startuml

interface "Data Access" as DA

DA - [First Component] 
[First Component] ..> HTTP : use

note left of HTTP : Web Service only

note right of [First Component]
  A note can also
  be on several lines
end note

@enduml

 

 

Regrouper des composants

Vous pouvez utiliser le mot-clé package pour regrouper des composants et des interfaces ensembles.

@startuml

package "Some Group" {
  HTTP - [First Component]
  [Another Component]
}
 
node "Other Groups" {
  FTP - [Second Component]
  [First Component] --> FTP
} 

cloud {
  [Example 1]
}


database "MySql" {
  folder "This is my folder" {
	[Folder 3]
  }
  frame "Foo" {
	[Frame 4]
  }
}


[Another Component] --> [Example 1]
[Example 1] --> [Folder 3]
[Folder 3] --> [Frame 4]

@enduml

 

 

Changer la direction des flèches

Par défaut, les liens entre classes ont deux tirets -- et sont orientées verticalement. Il est possible d'utiliser un lien horizontal en mettant un simple tiret (ou point) comme ceci :

@startuml
[Component] --> Interface1
[Component] -> Interface2
@enduml

Vous pouvez aussi changer le sens en renversant le lien

@startuml
Interface1 <-- [Component]
Interface2 <- [Component]
@enduml

Il est aussi possible de changer la direction des flèches en ajoutant les mots clés left, right, up ou down à l'intérieur des flèches :

@startuml
[Component] -left-> left 
[Component] -right-> right 
[Component] -up-> up
[Component] -down-> down
@enduml

Vous pouvez raccourcir les flèches en utilisant seulement les premiers caractères de la direction (par exemple, -d- à la place de -down-) ou les deux premiers caractères (-do-).

Veuillez noter qu'il ne faut pas abuser de cette fonctionnalité : Graphviz donne généralement de bon résultat sans modification.

 

 

Utiliser la notation UML2

La commande skinparam componentStyle uml2 est utilisée pour changer vers la notation UML2.

@startuml
skinparam componentStyle uml2

interface "Data Access" as DA

DA - [First Component] 
[First Component] ..> HTTP : use

@enduml

 

 

Description longue

Il est possible de mettre un long texte sur plusieurs lignes en utilisant des crochets.
@startuml
component comp1 [
This component
has a long comment
on several lines
]
@enduml

 

 

Couleurs individuelles

Il est possible de spécifier une couleur après la définition du composant.

@startuml
component  [Web Server] #Yellow
@enduml

 

 

Sprites et stéréotypes

Vous pouvez utiliser des sprites dans les stéréotypes des composants.
@startuml
sprite $businessProcess [16x16/16] {
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFF00FFFF
FF00000000000FFF
FF000000000000FF
FF00000000000FFF
FFFFFFFFFF00FFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
}


rectangle " End to End\nbusiness process" <<$businessProcess>> {
 rectangle "inner process 1" <<$businessProcess>> as src
 rectangle "inner process 2" <<$businessProcess>> as tgt
 src -> tgt
}
@enduml

 

 

Skinparam

Utilisez la commande skinparam pour changer la couleur et la mise en forme du texte du schéma.

Vous pouvez utiliser cette commande :

Vous pouvez définir des couleurs et des fontes spécifiques pour les composants et interfaces stéréotypés.

@startuml

skinparam interface {
  backgroundColor RosyBrown
  borderColor orange
}

skinparam component {
  FontSize 13
  BackgroundColor<<Apache>> Red
  BorderColor<<Apache>> #FF6655
  FontName Courier
  BorderColor black
  BackgroundColor gold
  ArrowFontName Impact
  ArrowColor #FF6655
  ArrowFontColor #777777
}

() "Data Access" as DA

DA - [First Component] 
[First Component] ..> () HTTP : use
HTTP - [Web Server] << Apache >>

@enduml

@startuml
[AA] <<static lib>>
[BB] <<shared lib>>
[CC] <<static lib>>

node node1
node node2 <<shared node>>
database Production

skinparam component {
	backgroundColor<<static lib>> DarkKhaki
	backgroundColor<<shared lib>> Green
}

skinparam node {
	borderColor Green
	backgroundColor Yellow
	backgroundColor<<shared node>> Magenta
}
skinparam databaseBackgroundColor Aqua

@enduml