Les cartes CRC pour l'analyse des classes UML

Les cartes CRC

Un système Orienté Objet (OO), est un système constitué par un ensemble d'objets qui collaborent et communiquent par envoi de messages. Lorsqu'un objet envoie un message à un autre objet, c'est que en réalité il demande un service à cet objet, ce dernier doit rendre son service public et faire en sorte de l'offrir à ses collaborateurs. Plusieurs services sont définis et offerts par le système OO.
La collaboration s'avère alors comme un principe fondamental des systèmes OO. UML, étant un langage de modélisation des systèmes OO, offre un outil qui permet la modélisation de la Collaboration. Cet outil portant le nom de Collaboration est représenté pare une ellipse en pointillées.
La Collaboration en UML
Lors de l'Analyse d'un Système d'Information, il est important de relever toutes les entités "Classes" potentielles dans un premier temps. On peut dans ce cas utiliser une heuristique très simple qui consiste à identifier les noms communs (Classes) ou les noms propres (Objets) utilisés pour décrire le problème et peut être encore la solution. Ces noms vont être collectés et filtrés pour enlever d'éventuelles redondances.
Le modèle d'une carte CRC
Une fois que les classes sont identifiées on procède alors à identifier pour chacune d'elles quelles sont ses responsabilités ainsi que ses collaborateurs. En se référant au principe de l'Encapsulation toute classe est responsable de fournir un certain nombre de services. Par exemple la classe Etudiant est responsable de nous fournir des renseignements sur le nom, le prénom et l'âge de l'étudiant. Dans certains cas, une classe étant responsable de fournir des renseignements précis est incapable de se faire toute seule et est obligée alors de collaborer avec d'autres classes pour répondre à cette exigence.
Pour identifier les responsabilités d'une classe, il suffit de poser la question suivante : la classe connaît des choses et sait faire des choses. La classe Etudiant connaît par exemple son nom et prénom et sait s'inscrire à un séminaire. La responsabilité d'une classe définit ce que la classe connaît et ce qu'elle sait faire. Pour bien analyser les responsabilités d'une classe UML on peut recourir à utiliser la technique des cartes CRC. Une carte CRC se présente comme une carte qui peut faire 7 x 11 cm ou 6 x 9 cm ou n'importe quelle autre taille. Elle comporte trois rubriques essentielles qui sont la rubrique classe (nom de la classe), la rubrique Responsabilités, où l'on va énumérer les différentes responsabilités de la classe, et la rubrique Collaborateurs qui va contenir le nom des classes avec qui notre classe va collaborer pour assurer ses responsabilités.

Exemple

On suppose qu'une Université souhaite gérer les cours dispensés dans plusieurs établissements. Pour cela, on dispose des renseignements suivants :
 Chaque établissement possède un site Internet.
 Chaque établissement est structuré en départements, qui regroupent chacun des enseignants spécifiques. Parmi ces enseignants, l’un d’eux est responsable du département.
 Un enseignant se définit par son nom, prénom, tél, mail, date de prise de fonction et son grade.
 Chaque enseignant ne dispense qu’une seule matière.
 Les étudiants suivent quant à eux plusieurs matières et reçoivent une note pour chacune d’elle.
 Pour chaque étudiant, on veut gérer son nom, prénom, tél, mail, ainsi que son année d’entrée à l’établissement.
 Une matière peut être enseigné par plusieurs enseignants, mais a toujours lieu dans la même salle de cours (chacune ayant un nombre de places déterminées).
 On désire pouvoir calculer la moyenne par matière ainsi que par département.
• On veut également calculer la moyenne générale d’un élève et pouvoir afficher les matières dans lesquelles il n’a pas été noté.
 Enfin, on doit pouvoir imprimer la fiche signalétique (prénom, tél, mail) d’un enseignant ou d’un élève.
Nous voulons alors analyser ce système en utilisant l'outil carte CRC. Pour ce faire nous allons commencer par analyser le texte en utilisant l'heuristique décrite en haut. Les noms communs sont alors mis en rouge. On observe alors qu'il y a sept classes en tout (Etablissement, Département, Enseignant, Etudiant, Matière, Note, Salle).
L'étape suivante consiste à produire les cartes CRC par classe d'analyse.

Analyse CRC

On commence par la classe Etablissement qui connaît son site Internet, donc le site Internet fait désormais partie des responsabilités de cette classe. D'autre part la classe Etablissement sait lister ses départements et du coup elle va figurer parmi les responsabilités de cette classe sauf que dans ce cas la classe Etablissement (principe de l'Encapsulation) va collaborer avec la classe Département pour pouvoir lister ses départements. On aura donc la carte CRC suivante :


Si on prend la classe Département alors on peut considérer le nom du département, les enseignants du dit département ainsi que son responsable comme étant les responsabilités de cette classe. Par ailleurs, pour que Département puisse nous fournir des informations détaillées sur ses enseignants ainsi que sur son responsable, alors elle doit nécessairement collaborer avec la classe Enseignant. De ce fait on va avoir la carte suivante :

Commentaires

Posts les plus consultés de ce blog

Mon cours Introduction au Génie Logiciel

Scope d'un projet