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