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