Résumé d’UML ASI3 – Fiche I. Diagramme de cas d’utilisation Cas d'utilisation1 Acteur1 ActeurNonHumain Cas d'utilisation21 Acteur2 Cas d'utilisation22 Cas d'utilisation 2 <<inclure>> CU2i <<étendre>> <<étendre>> CU2b CU2a Héritage II. Inclusion Extension <<inclure>> <<étendre>> Spécification 1 Extension 1 possible Spécification 2 Extension 2 possible Fiche de Cockburn (Description d’un cas d’utilisation) Thomas ROBERT Titre : … Résumé : … Acteurs : Act1 (A), Act2 (B), … Motivation : A veut… Pré-condition(s) : … Post-condition(s) : … Exceptions : o Exception E1 : [Titre] [Actions] o … Remarques ergonomiques (éventuellement) : … Contraintes non fonctionnelles (éventuellement) : … Scénario nominal : [Enchainement de cockburn / DAC / DSS] Page 1 v1 Résumé d’UML ASI3 – Fiche III. Enchainement de Cockburn Action de départ : … Action acteur 1. (A) fait … 2. (B) fait … 4. … Action système 3. Le système … Action de fin : … IV. Diagramme d’activité Diagramme d'activité (DAC) Utilisateur 1 Utilisateur 2 Activité [condition] Activité [sinon] Activité Activité Activité * Activité itérative Phase Activité Thomas ROBERT Page 2 v1 Résumé d’UML ASI3 – Fiche V. Diagramme de séquence acteur:Classe objet:Classe objetCréé:Classe message (params) retour messageAsynchrone() messageReflexif() [condition1] message() Optionnel / Boucle [condition2] message() opt / boucle message() [condition] alt [condition1] message() [sinon] message() Switch Pour un cas d’utilisation, on fait un diagramme de séquence système. Il n’y a que l’acteur et un objet « système ». VI. Diagramme Objet Classe <<instanceOf>> objet1:Classe1 objet4:Classe3 <<instanceOf>> objet2:Classe1 objet3:Classe2 (Proche du diagramme de classes) Thomas ROBERT Page 3 v1 Résumé d’UML ASI3 – Fiche VII. Diagramme de classes Classe1 Classe2 Association n-aire Classe Si en assoc. avec d'autres classes : classe associative Sinon : association attribuée Relation entre 2 objets m..n Classe Compositite Classe1 Classe <<association>> m..n Classe Classe2 Classe association reflexive Lien faible m..n [<<Stéréotype>>] NomDeLaClasse Classe Classe 0..* Classe dépend de > 0..1 agrégation 0..1 1..* composition Lien fort attribut1 : Type = valeur par défaut attribut2 : Type <<enumeration>> attribut3 /attributDérivé ... rôle1 1..* labelAssociation > rôle2 Classe 1 méthode1(param1 : Type1 = val1, ...) : TypeRetour ... {ordered} aCollectionOrdonnée > Classe assoc. de classe Classe {bag} aCollectionAvecDoublons > Généralisation Semblable à static Thomas ROBERT Classe Classe {sequence} aCollectionOrdonnéeAvecDoublons > Page 4 Classe v1 Résumé d’UML ASI3 – Fiche VIII. Diagramme de packages Classe1 Classe3 Classe2 1 dépend de 2 = 1 utilise 2 On peut stéréotyper les packages <<category>> si on veut désigner une catégorie IX. Dépendances Association entre classes Dépendance entre packages des classes, même navigabilité On veut des dépendances unidirectionnelles non-cycliques. Dépendance conceptuelle : Dépendance opérationnelle (publique) : Dépendance contextuelle (privée) : association, généralisation classe utilisée en paramètre dans une méthode classe utilisée dans le corps de la méthode En créant des dépendances unidirectionnelles, on choisit qu’une classe ait connaissance de l’autre. Méthodes pour casser une dépendance bidirectionnelle : A' B' A' B' Escalation Héritage A A1 Thomas ROBERT Composition : Association abstraite : <<abstract>> A A2 Démotion Commun A1 A2 A A B B <<interface>> Page 5 A' v1 Résumé d’UML ASI3 – Fiche X. Diagramme d’états Nom de l'état composite Etat entry / actionEntree do / activitéClassique exit / actionSortie evenementTrInt / activitéAlt Etat1 evt1 [condition] actionAFaire evt2 evtTransitionInterne Etat3 evtSortie2 evtAutoTransition Suivi à la fin de l'activité Auto-trans. : lance exit & entry Trans. interne : non... evtSortieCommun Sortie correspondant à l'état final de l'état composite Etat3 Ex : after(temps) Action : Non interruptible Activité : Interruptible Evènements : o Signaux : Asynchrone o Message : Appel d’opération, synchrone o Temporel : after(duree) o Modifiant : when(condition booléenne) Thomas ROBERT Page 6 v1 Résumé d’UML ASI3 – Fiche XI. Patterns d’analyse 1. Pattern <<history>> : à un instant Etudiant 2. * * UV Etudiant * 0..10 <<history>> UV Anti-pattern : Actions vs association Une association ne peut être une action. Pour des actions, créer des opérations et si besoin de classe pour qualifier l’action. (Ex : qualification d’un prêt dans une bilio) 3. Anti-pattern : Non transmutabilité de l’objet Un objet ne peut changer de classe au cours de sa vie, même pas se spécialiser. Solution : pattern player-rôle. 4. Pattern Player-Role Player * 1..* <<abstract>> Pattern Powertype PowerType Rôle Rôle1 6. 5. ( modèle) PartitionedType Type1 Rôle2 Type2 Pattern Abstraction-Occurrence Abstraction 1 * Occurence XII. Patterns GRASP 1. Patterns de conception Expert : Détient l’information Créateur : Construction d’objets (B crée A : A B / B utilise A / B a les données d’init de A) Contrôleur : Gestion des évènements d’entrées (Classe façade) Polymorphisme : Comportement avec variantes Fabrication pure : Classe artificielle pour respecter les patterns Indirection : Eviter le couplage de classes (Objet intermédiaire) Protection des variations : Limiter l’impact des variations (Interfaces stables, limiter les dépendances) Afficheur Afficheur Donnée Donnée Indirection Observateur 2. Thomas ROBERT Patterns d’évaluation Faible couplage : Limiter les dépendances (couplage = nombre de dep. d’autres classes) Forte cohésion : Limiter la complexité (opérations cohérentes) Page 7 v1 Résumé d’UML ASI3 – Fiche XIII. Méthodes d’analyse et de conception 1. Grille de Levesque Permet de trouver le besoin 2. MU : Modèle d’usage (diagramme de CU) Liste les cas d’utilisation 3. DO & DCP : Analyse textuelle (méthode Abbot) Partie du texte Nom propre Nom commun Verbe actif Verbe être Verbe avoir Verbe modal Adjectif Verbe transitif Verbe intransitif Elément de modélisation objet classe méthode héritage agrégation contraintes attribut méthode exception ou evt Exemple Jim Jouet, Poupée Achète, recommande Est un, un genre de A, possède Doit trouver Agé de 2 ans Entre, fournir Dépend de On peut réaliser un DO (diagramme objet) ou un DCP (diagramme de classes participantes). 4. DSA : Transformée de Jacobson d’analyse DSS + DCP → DSA (Diagramme de séquence d’analyse) On remplace le système par les objets qui sont derrière. 5. 6. Thomas ROBERT MD : Fusion et croisement de Jacobson Fusion : DCP1 + … + DCPn → MD (Modèle du domaine (diag. de classes)) Croisement de Jacobson : DCPx + DSAy → MDinit DSC : Transformée de Jacobson de conception <<Bondary>> Visualise ou transmet des données à l’acteur <<Control>> Cas d’utilisation / Session / Profil utilisateur / Système / Classes du domaine <<Entity>> Classes du modèle du domaine Page 8 v1