classDiagram direction LR class Personne { - nom: string - age: int } class Fenetre { + etat: string + opération(p : Personne) } Personne ..> Fenetre
POO, documentation et tests - TD1
Héritages, relations, UML, modélisation
1 UML
1.1 Dépendance
- Lorsqu’un changement dans une classe implique la modification du comportement d’une autre classe
- Dans l’exemple, l’état de la fenêtre va dépendre de l’attribut outils de la personne
1.2 Association
- relation structurelle entre deux classes
- il est possible de naviguer d’un objet d’une classe, à un ou plusieurs objets de l’autre classe
classDiagram direction LR class Entreprise { - nom: string - adresse: string } class Personne { - nom: string - age: int } Entreprise "*" -- "*" Personne : emploie
1.3 Agrégation
- lorsqu’un élément est constitué d’un autre
- Supprimer l’agrégat (vélo) ne supprime pas le composant (roue)
- ici on peut imaginer retirer la roue d’un vélo pour la mettre sur un autre vélo
classDiagram direction LR class Velo { - couleur: string } class Roue { - taille: int } Velo "1" o-- "2" Roue : posséde
1.4 Composition
- le composant est détruit lorsque l’agrégat est détruit
classDiagram direction LR class Entreprise { - nom: string - adresse: string } class Departement { - nom: string } Entreprise "1" *-- "*" Departement : a
1.5 Généralisation
- Héritage
classDiagram direction TB class Animal{ + age: int + gender: String + isMammal() : bool + mate() } class Duck{ + beakColor: String + swim() + quack() } Animal <|-- Duck