diff --git a/Cours6.md b/Cours6.md new file mode 100644 index 0000000..62d1638 --- /dev/null +++ b/Cours6.md @@ -0,0 +1,222 @@ +--- +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 + + +