Modlisation oriente objet UML Le Langage de Modlisation
Modélisation orientée objet UML Le Langage de Modélisation objet Unifié Modélisation dynamique
Modélisation dynamique n Principaux concepts et diagrammes de cette vue : q q Le diagramme d’états; Le diagramme d’interaction(séquence + collaboration); Le diagramme de collaboration; Le diagramme d’activités.
Diagramme d’états n Représente le concept de machine à états finis: q q Représente le cycle de vie d’une instance générique d’une classe. Vue locale d’un objet n n Réactions de l’objet en fonction de son état courant. Passage d’un état vers un autre.
Les classes nécessitant un diagramme d’états n n Toutes les classes ne nécessitent pas un diagramme d’états. Classes concernées : q Celles qui ont un comportement dynamique complexe. Deux cas possibles : n n Si les objets de la classe peuvent réagir différemment à l’occurrence d’un même évènement. (réaction = état). Si la classe doit organiser certaines opérations dans un ordre précis. Les états séquentiels précisent la chronologie des évènement d’activation.
Diagramme d’états transitions n Un état se caractérise par sa durée et sa stabilité : q q n Une transition représente le passage instantané d'un état vers un autre : q n L’état d’un objet est constitué des valeurs instantanée des ses attributs. Un objet est à tout moment dans un état donné. Une transition est déclenchée par un événement. Les transitions peuvent aussi être automatiques : q Si on ne spécifie pas l'événement qui la déclenche.
Diagramme d’états transitions n Les évènements : q Syntaxe d’un évènement : n n n Nom_Evenement (Nom_parametre : type, …) [condition] condition est la garde qui valide ou non le déclenchement d’une transition quand l’évènement s’est produit. On peut associer à chaque transition une action à exécuter lors du franchissement dû à un évènement.
Diagramme d’états transitions n Exemple : q L’évènement « il fait trop chaud » entraîne la climatisation ou l’ouverture des fenêtres. A Il fait trop chaud[été] climatiser Il fait trop chaud[hiver] aérer
Diagramme d’états transitions n Les évènements (suite…) : q Possibilité de préciser les actions à exécuter lorsqu’on est dans un état donné, en entrant ou en sortant : n n Entry : action à exécuter dès l’entrée dans l’état. Exit : action à exécuter lors de la sortie de l’état. On : action interne provoquée par un évènement qu ne provoque pas le passage dans un nouvel état. Do : activité (=action dont le temps d’exécution est non négligeable) à exécuter.
Diagramme d’états transitions n Une classe gérant un écran de connexion possède un champs pour saisir le nom d’utilisateur et un champs pour saisir le mot de passe. Ces champs permettent d’afficher (en appuyant sur F 1 lorsque le curseur est dans la zone de saisie) une aide spécifique. Le champs de login gère le complétion. Le champs password ne doit rien afficher lorsqu’un utilisateur tape son mot de passe. L’appui sur le bouton annuler efface les champs. L’appui sur le bouton valider vérifie les informations en Base (BDD) et se connecte à l’application si les informations sont correctes sinon les champs sont effacés.
Diagramme d’états transitions Appui Annuler Attente saisie Entry/ Nettoyer les champs Infos erronées Saisie identifiant On Aide / Afficher aide Do / Gérer complétion Curseur sur champs saisie Curseur sur champs passwd champs saisie Appui Annuler Curseur sur champs passwd Saisie Passwd Verif Infos Entry / interroger BD pour vérifier infos Infos Ok Entry / Ne plus afficher entrées clavier. Exit / Réafficher entrées clavier On Aide / Afficher aide Do / Gérer complétion
Diagramme de séquence (d’interaction) n n Modéliser les aspects dynamiques des systèmes. Montre une interaction : q q n n Ensemble d’objets et leurs relations; Les messages pouvant circuler entre eux. Classe les message par ordre chronologique. Composé d’ 1 ligne de vie et de période(s) d’activité(s).
Diagramme de séquence n Exemple : ao: Autre. Objet o: Objet <<create>> oc: Objet. Crée Methode 1() Ligne de vie set. Att 1(param) appel. Recursif() set. Att 2(param 1) {contrainte/condition} <<destroy>> Période d’activités
Diagramme de séquence n Un interlocuteur (s), souhaite appeler un second interlocuteur (r). S envoie un signal (decrocher. Combine) au commutateur. Le commutateur va permettre le déclenchement de la méthode emettre. Tonalité. Le temps imparti pour composer le numéro est de 30 s. S envoie un signal (numeroter(numero)). Le commutateur itère sur chaque chiffre par l’appel à sa méthode diriger. Appel(Interlocuteur, chiffre). Grâce au commutateur une conversation(c) va se créer. C’est par l’objet Conversation(c) que la sonnerie() va se déclencher chez l’interlocuteur (r). R envoie le signal décrochercombiné. La conversation va déclencher la méthode connecter(Interlocuteur i 1, Interlocuteur i 2) du commutateur. Les interlocuteurs possèdent des méthodes connecter(Interlocuteur autre. Interlo).
Diagramme de séquence S: Interlocuteur : Commutateur r: Interlocuteur decrocher. Combine emettre. Tonalite() Numeroter(n) {temp. Execution < 30 s} diriger. Appels(s, n) <<create>> S: Interlocuteur sonnerie() decrocher. Combine() Connecter(r, s) Connecter(s)
Diagramme de collaboration n n Montre interactions entre objets. Exprime le contexte d’un groupe d’objets Extension du diagramme d’objets. Une interaction est réalisée par un groupe d’objets qui collaborent en échangeant des messages.
Diagramme de collaboration retro-ingénierie public Class Agent. Service. Inscription { public Class Etudiant { private College c; private boolean enregistrer; public void inscrire() { public void set. Enregistrer(boolean val){…} Etudiant e = new Etudiant(); public void obtenir. Emploi. Du. Temps{…} This. c. ajout. Etudiant(e); ajouter. Cours(Cours c) {c. ajouter. Etu(e)} e. set. Enregistrer(true); … e. ajouter. Cours(c 1); e. ajouter. Cours(c 2); e. obtenir. Emploi. Du. Temps(); } } public Class Main { Public static void main(. . ) { College c = …; Agent. Service. Inscription a = new Agent. Service. Inscription(c); }
Diagramme de collaboration retro-ingénierie : Main 1: <<create>> 2: <<create>> 4 : ajouter. Etudiant(e) c: College a: Agent. Service. Inscription 3: <<create>> 6: Obtenir. Emploi. Du. Temps() 5: set. Enregistrer(true) E: etudiant Enregistrer=false; 5. 1: <<become>> Enregistrer=true; 5. 2: ajouter. Etu(e) C 1: Cours 5. 3: ajouter. Etu(e) C 2: Cours
- Slides: 17