Gestion des défauts

[20 minutes]

Un groupe industriel construisant des moteurs cherche à organiser la gestion des défauts observés sur des moteurs confrontés à des tests en situation réelle. Pour cela un de ses ingénieurs modélise le processus de gestion des défauts, tel qu'il existe actuellement, par le diagramme de classes suivant.

Diagramme de classes de gestion des défautsInformations[1]

Question

Décrivez en français ce que représente ce diagramme.

Solution

Pour chaque moteur on relève tous les défauts observés à des dates différentes. Pour chacun de ces défauts on note le kilométrage et on diagnostique la gravité.

Les défauts sont classés par type, chaque type de défaut étant codifié (on peut imaginer par exemple, la casse, la fuite, etc.).

Les défauts sont relevés par des opérateurs, employés du groupe et affectés à une usine.

Les moteurs sont d'un modèle particulier, fabriqué dans une usine, et sous la responsabilité d'un responsable également employé du groupe.

Question

Étant donné ce modèle, est-il possible de savoir dans quelle usine a été fabriqué un moteur et qui est responsable de sa production ?

Solution

Oui, car chaque moteur est associé à un modèle, qui est est associé à une usine et un responsable.

Question

La responsabilité d'un modèle est elle toujours assumée par un employé travaillant dans l'usine dans laquelle ce modèle est produit ?

Solution

Non, cette contrainte n'est pas exprimée.

Question

Pourquoi avoir fait le choix d'une classe Type pour codifier les défauts, plutôt qu'un attribut de type énuméré directement dans la classe Defaut ?

Solution

Car la typologie des défauts est une donnée relativement dynamique, et, ainsi représentée de nouveaux types peuvent être ajoutés sans toucher à la structure de données (tandis qu'avec un type énuméré, la typologie serait inscrite en dur dans la structure de données).

Question

Pourquoi l'attribut kilométrage apparaît-il à la fois dans les classes Defaut et Moteur et pourquoi avoir fait apparaître la méthode SetKilometrage ?

Solution

Le kilométrage d'un moteur est une donnée qui évolue dans le temps, ce avec quoi le diagramme de classes est peu à l'aise. Le kilométrage d'un moteur est le kilométrage actuel d'un moteur, tandis que celui d'un défaut est le kilométrage qu'avait le moteur quand le défaut a été relevé. Afin de pouvoir réactualiser la valeur du kilométrage présent d'un moteur, il est nécessaire d'avoir une méthode SetKilometrage qui permette de le faire aisément.

Question

Ce diagramme permet-il de répondre à la question : Quel est le nombre moyen de défauts rencontrés par les moteurs de chaque modèle ayant été mis en service avant 2000 ? Quelles sont les classes et attributs utiles ?

Solution

Oui, il faut pour cela interroger les objets des classes Defaut, Moteur et Modele et utiliser l'attribut debutFabrication de la classe Modele.

Question

Peut-on également répondre à la question : Quel est le kilométrage moyen des moteurs ayant été concernés par au moins deux défauts d'une gravité supérieure à 5 ?

Solution

Oui, il faut interroger la classe Defaut (en relation avec la table Moteur) et utiliser l'attribut kilometrage de la classe Defaut (celui de la classe Moteur est inutile ici).