--- title: "Génie logiciel, Séance 6, Language UML" author: [SCHINDLER Hugo] date: \today titlepage: true ... \newpage # I/Introduction Orienté objet Expression des besoins Puis spécification des besoins Puis conception # II/ Diagremme de classe ## 1/ Les classes Visibilité des éléments - -privé - +public - $\#$protected Schéma 1 ## 2/ Associations entre classes Schéma 2 Une personne travaille pour une entreprise Une personne voit l'entreprise comme son employeur L'entreprise voit une personne comme son employé Une personne travaille pour une seule entreprise Une entreprise employe une a plusieurs entreprises - 1: exactement 1 - 1...* : un à plusieurs - n: exactement n - 0..1: 0 ou 1 - 0..*: 0 à plusieurs Traduction d'une association en language JAVA **Association 1 à 1** Schéma 3 public class A { private B Rb public A() { Rb=Numm; } public void setRb(B enRb){ Rb=enRb; } } public class A { private B Rb public A() { Rb=Numm; } public void setRb(B enRb){ Rb=enRb; } } **Association 1 à plusieurs** Schéma 4 Utilksation d'un tableau ou d'un vecteur pour association de plusieurs **Navigabilité d'une asociation** L'electeur sait pour qui il vote. Le candidat ne sais pas les gens qui l'ont élu. Schéma 5 **Agrégation** forme particulière d'association exprime un couplage plus fort entre classes Schéma 6 Lorsqu'un livre possède une couverture, la couverture ne peut pas être partagée par d'autres livres. Traduction en JAVA d'une agrégation = identique à l'association. **Composition** Agrégation forte Schéma 7 Les pages sont physiquement dans le livre. Lorsqu'on crée un objet de type Livre, on crée les objets de type Page (associé au livre) **Traduction en language JAVA d'une relation de composition** Schéma 8 **Exercice** Schéma 9 **Les classes d'association** Schéma 10 **Association d'une classe vers elle même** Schéma 11 ## 3/ La généralisation **Relation d'héritage** Schéma 12 Une relation de généralisation traduit une relation "est-un" ou "est une sorte de" **Classe abstraite** Forme {abstract} Ecrire Forme en italique association reflexive **Interface** Element de modélisation classe Schéma 13 Stéréotype : notation du language UML qui permet de définir de nouveaux éléments de modélisation (à partir d'éléments existants) ## 4/ L'agrégation récursive Schéma 14 **Conseils pratiques** Génération du code JAVA automatiquement à partir du diagramme de classe. **Pas besoin de définir l'attribut employe.entreprise** Schéma 15 Code Java: public class Person{ Entreprise employeur; } public class Entreprise{ Vector employe; } # III/ Les diagrammes d'objets et de séquence ## 1/ Le diagramme d'objet Cf diapo 29 ## 2/ Le diagramme de séquence Diagramme d'objet + message échangés entre les objets. Cf diapo 31 Rappel : l'envoie d'un message d'un objet A vers un objet B se traduit lors de l'execution d'une méthode dans l'objet qui reçoit le message. Exemple 2 : Montre le fonctionnement d'une calculatrice pour une opération 12+3= Période d'activité des objets **Structures de contrôles** **Opérateur condtionnel:** Schéma 16 alt : alternative **Opérateur de boucle** Schéma 17 loop : boucle tant que la condition v==true est vérifié l'objet unA envoie le message "messageB" à l'objet unB. **Constructeur/Destructeur** Schéma 18 # IV/ Le diagramme d'états-transitions Schéma 19 # V/ Le diagramme des cas d'utilisation Schéma 20