Sujet Test 6 : modélisation

Vous avez 15min pour faire le test.

Rendu

Type de rendu

Rendu sur feuille.

Éléments de notation

Les principales questions sont les quatre premières (une bonne note si vous y répondez bien).

Sujet

Vous devez modéliser un système de gestion des employés dans une entreprise, où chaque employé possède un nom, un poste et un salaire. Certains employés sont des managers qui supervisent une équipe constituée d'autres employés, ses subordonnés.

La classe de base est Employé, et la classe Manager hérite de cette classe. Les actions possibles sur un employé sont de retourner une description indiquant le le nom, le poste et le salaire (__str__) et d'augmenter le salaire d'un certain pourcentage (augmenter_salaire(pourcentage)). Avec un manager, il est possible d'ajouter un subordonné à son équipe (ajouter_subordonné(un_employé)) et la description doit mentionner également le nombre de membres dans son équipe.

Question 1

Faites un diagramme UML avec les classes Employé et Manager, et les relations entre ces classes.

Question 2

Écrivez le code de ces classes, en veillant à bien utiliser super().

Question 3

Écrivez une fonction créer_employés() qui :

Question 4

Écrivez les fonctions de tests suivant, qui appellent créer_employés() dans un premier temps :

Question 5

Ajoutez une méthode qui vérifie qu'il n'y a pas de boucle dans le système hiérarchique: il suffira de vérifier qu'un manager ne peut pas se superviser lui-même, même avec plusieurs niveaux hiérarchiques de distance (on suppose que cette méthode sera ensuite appelée sur chaque manager).