uml
This commit is contained in:
parent
d2ffcf8c9a
commit
40cd963202
BIN
bac2/uml/ATM_usecase.png
Normal file
BIN
bac2/uml/ATM_usecase.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 96 KiB |
BIN
bac2/uml/activity.png
Normal file
BIN
bac2/uml/activity.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 137 KiB |
201
bac2/uml/notes.md
Normal file
201
bac2/uml/notes.md
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
Notes de cours UML
|
||||||
|
==================
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Nous devons voir les diagrammes :
|
||||||
|
|
||||||
|
- de cas d'utilisation
|
||||||
|
- d'interraction overview
|
||||||
|
- **de Class**
|
||||||
|
- **d'état**
|
||||||
|
- d'objet
|
||||||
|
- d'activitée
|
||||||
|
- de séquence
|
||||||
|
|
||||||
|
Modélisation logicielle
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
un **modèle** est une représentation simplifiée d'une partie de la réalité dans un but spécifique.
|
||||||
|
Ces modèles ont pour "valeurs":
|
||||||
|
|
||||||
|
- L'abstraction
|
||||||
|
- Compréhension
|
||||||
|
- Précision
|
||||||
|
- Prédictibilité
|
||||||
|
- Rentabilité
|
||||||
|
|
||||||
|
Dans tout les diagrammes uml, les commentaire sont encadrée et reliés avec des ligne discontinue
|
||||||
|
|
||||||
|
Diagramme de cas d'utilisation
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Représente une "vitrine" du produit avec ces fonctions principales d'un point de vue utilisateurs.
|
||||||
|
|
||||||
|
Représente:
|
||||||
|
|
||||||
|
- Un système (carré entourant une partie du diagramme)
|
||||||
|
- Un ensemble de cas d'utilisation (dans un oval)
|
||||||
|
- Accompagné d'une descriptin semi-structurée
|
||||||
|
- Toujours lié à un acteur (sauf <\<include\>> et <\<exlude\>>)
|
||||||
|
- Les acteurs (bonnome batons)
|
||||||
|
- Les relations entre eux
|
||||||
|
|
||||||
|
Attention de ne pas modéliser des dépendances causales ou séquentielles.
|
||||||
|
|
||||||
|
### Relations
|
||||||
|
|
||||||
|
- extension: ajoute un comportement supplémentaire à un point d'extension.
|
||||||
|
- Dans le cas d'une condition, ajouter "[condition]" à la flèche
|
||||||
|
- inclusion: inclus dans le comportement d'un autre cas d'utilisation
|
||||||
|
- généralisation: remplace un cas d'u par un autre qui fournit plus de détails.
|
||||||
|
- peut être entre cas d'u: spécialisation
|
||||||
|
- peut être entre acteurs: héritage
|
||||||
|
|
||||||
|
![ATM Use Case diagram](./ATM_usecase.png "use case diagram")
|
||||||
|
|
||||||
|
Diagramme d'interaction
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Permet de faire un diagramme d'activité avec les use case. C'est en quelques sorte un use case
|
||||||
|
diagramme séquentielle et causale.
|
||||||
|
|
||||||
|
Activity diagram
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Permet de modéliser un comportement dynamique, une succession d'activités dans un système pour une
|
||||||
|
certaine tâche ainsi que son flux de controle.
|
||||||
|
|
||||||
|
Resemble à un diagramme d'état sans les états.
|
||||||
|
|
||||||
|
- activité: rectangle arrondi
|
||||||
|
- transitions: flèches
|
||||||
|
- chaques activités doit avoir une transition sortante et peut avoir plusieurs transition
|
||||||
|
entrante.
|
||||||
|
- Entrée: cèrcle noir
|
||||||
|
- Sortie: Cible
|
||||||
|
- Fin de flux: cercle baré
|
||||||
|
- Point de jonction/ Décision: losange
|
||||||
|
- choix entre deux séquence mutuellement exclusive.
|
||||||
|
- Condition notées en "[condition]"
|
||||||
|
- sert à merge des chemins alternatifs (!pas chemins concurents)
|
||||||
|
- barre de synchronisation: ligne épaisse avec transition entrante et sortantes.
|
||||||
|
- Un fork qui n'est pas join doit se terminer par un point de sortie (pour une terminaison de
|
||||||
|
l'acitivité complète) ou par un symbole de fin de flux (dans le cas ou l'activité continue
|
||||||
|
même sans cette branche).
|
||||||
|
- swimlanes: couloirs d'activité
|
||||||
|
- Objets: Rectangle
|
||||||
|
- Récurence: Sablier avec "[timeline]" pour spécifier la récurence
|
||||||
|
- Signal: Rectangle avec flèche et anti-flèche
|
||||||
|
-
|
||||||
|
Il est possible de représenter des sous activitées en dessinant un diagramme d'activité dans un
|
||||||
|
rectangle.
|
||||||
|
|
||||||
|
![Activity Diagram](activity.png "activity")
|
||||||
|
|
||||||
|
Class diagram
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Représente les structures statiques d'un système (classes, interfaces et leurs relations)
|
||||||
|
|
||||||
|
- Classes: Rectangle
|
||||||
|
- Noun in PascalCase
|
||||||
|
- Si interface, noté <\<interface\>>
|
||||||
|
- Souligné si instance (et/ou :Type)
|
||||||
|
- Attributs: listées dans rectangle de classe
|
||||||
|
- noun camelCase
|
||||||
|
- peut avoir un type (primitif ou complexe)
|
||||||
|
- peut avoir une valeur par défaut
|
||||||
|
- une portée (class scope = souligné)
|
||||||
|
- une liste de valeurs possibles (enum)
|
||||||
|
- une visibilité (+, -, #, ~)
|
||||||
|
- Opérations: listées dans rectangle de classe
|
||||||
|
- verb in camelCase
|
||||||
|
- peut avoir un type de retour
|
||||||
|
- peut avoir des arguments
|
||||||
|
- une portée
|
||||||
|
- une visibilité (+, -, #, ~)
|
||||||
|
- Les getter & setter des attr ne sont généralement pas mentionnées.
|
||||||
|
- Associations: ligne
|
||||||
|
- connexion bidirectionnelle entre classe
|
||||||
|
- peut être accompagné en annonation du role de cette association (de part et d'autre)
|
||||||
|
- peut être accompagné d'une quantification: m .. n avec * signifiant zero ou plus
|
||||||
|
- peut être étiquetée par explicité ( works for |> )
|
||||||
|
- peut être associé à elle même
|
||||||
|
- Ajouter une croix à la base d'une association permet de la rendre uni-directionnelle
|
||||||
|
- Gnéralisations: Flèche ouverte
|
||||||
|
- Contraintes: commentaire
|
||||||
|
- "{or}" exclusion mutuelle
|
||||||
|
- Agrégation: diamand (<>--)
|
||||||
|
- apartient-à ou est-une-partie-de ou est-composé-de
|
||||||
|
- Composition: diamand solide (<@>--)
|
||||||
|
- agrégat mais avec dépendance forte (si l'agrégat est détruit alors ses parties aussi)
|
||||||
|
|
||||||
|
Sequence
|
||||||
|
--------
|
||||||
|
|
||||||
|
Décrire comment le programme doit se comporter. Comportement des diagrammes statiques.
|
||||||
|
La verticalitée représente le temps.
|
||||||
|
|
||||||
|
- Objets: Etiquette au dessus des lifeline (sous forme d'instance avec :)
|
||||||
|
- Plusieurs instance = plusieurs rectangles superposés
|
||||||
|
- lifeline: ligne verticale
|
||||||
|
- Activation: boite sur la ligne de vie
|
||||||
|
- message: flèches entre les lignes de vies
|
||||||
|
- retour: flèche pointiée
|
||||||
|
- Création: objet au bout d'un message
|
||||||
|
- destruction: X en bas d'une ligne de vie
|
||||||
|
- Opérateurs: Rectangle d'une zone avec label
|
||||||
|
- loop (while [...] do ...)
|
||||||
|
- alt (if [...] then ... else ...)
|
||||||
|
- opt (if [...] then ...)
|
||||||
|
- break (if [...] then ... exit)
|
||||||
|
- par (parallel)
|
||||||
|
- neg (invalide)
|
||||||
|
- critical (section critique)
|
||||||
|
|
||||||
|
D'autre diagrammes peuvent être utilisé à l'intérieur du diagramme de séquence
|
||||||
|
|
||||||
|
Stateshart
|
||||||
|
----------
|
||||||
|
|
||||||
|
Un stateshart décrit le comportement d'un système, d'une partie d'un système ou d'un objet
|
||||||
|
|
||||||
|
Resemble fortement à un activity diagram mais représente des états.
|
||||||
|
|
||||||
|
- Etat initial: Cercle noir
|
||||||
|
- Etat final: target
|
||||||
|
- State: rectangle arondi
|
||||||
|
- peut être un diagrame d'état lui même
|
||||||
|
- transition d'état : flèche avec condition de la transition
|
||||||
|
- actions: format: "event [guard] / action"
|
||||||
|
- sur la flèche si lors de la transition
|
||||||
|
- interne avec mots clés (events)
|
||||||
|
- entry: lorsque le système entre dans un état
|
||||||
|
- exit: lorsque le système sort d'un état
|
||||||
|
- every x s / after x s: se déclenche selon l'évent
|
||||||
|
- guard: Condition pour que la transition ai lieu
|
||||||
|
- il vaut mieux etre détermiste (avoir des guard mutuelement exclusif)
|
||||||
|
- Transition composite: diamand (<>)
|
||||||
|
- etat historique: cercle avec H ou H*
|
||||||
|
- mémorise le dernier état visité
|
||||||
|
- Une transition peut en sortir dans le cas ou cet état n'aurais jammais été défini
|
||||||
|
|
||||||
|
Le stateshart est décrit dans un document.
|
||||||
|
|
||||||
|
```stateshart
|
||||||
|
interface <interface>
|
||||||
|
|
||||||
|
in event <name>
|
||||||
|
...
|
||||||
|
|
||||||
|
out event <name>
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
interface <interface2>
|
||||||
|
|
||||||
|
operation <name>(<parm>):<ret>
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user