uml
This commit is contained in:
		
							
								
								
									
										
											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
 | 
			
		||||
 | 
			
		||||

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

 | 
			
		||||
 | 
			
		||||
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>
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
		Reference in New Issue
	
	Block a user