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