Accéder au contenu principal

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

Rédaction d'un document Cahier des Charges

Comment rédiger un Cahier des Charges Pour rédiger un document cahier des charges d'un projet logiciel ou autre, nous proposons cette template qui pourrait servir éventuellement comme guide. Il s'agit de définir successivement les points suivants : Contexte et définition du projet, Objectifs, Scope, Parties Prenantes, Description des besoins à répartir entre les besoins fonctionnels et non fonctionnels. Contexte et définition du problème Dans cette rubrique, vous allez définir le problème pour bien clarifier la finalité du travail.  Il est important de souligner aussi les besoins ainsi que les contraintes et ce de manière  très sommaire. Par exemple, vous pouvez exposer la situation actuelle ou futur de votre système tout en mettant l’accent sur les problèmes auxquels vous voulez faire face. Objectifs Après avoir exposé le problème dans la première partie, ici vous allez exprimer quelles sont les attentes et les résultats escomptés. Normalement ces att

Scope d'un projet

Comment définir le Scope d'un projet Le Scope ou Périmètre d'un projet est un point clé pour la réussite du dit projet. Il doit figurer parmi les éléments d'un document cahier des charges et partagé avec le Manager du projet, le Client ainsi que les parties prenantes. Pour bien définir le Scope d’un projet, il est opportun de définir les points suivants : Les objectifs du projet Les buts ou finalités (goals) à atteindre Les sous-phases ou étapes Les tâches Les ressources Le budget La planning Bien sûr pour pouvoir ce faire, il est nécessaire d'élaborer une étude approfondie de la finalité du projet en concertation avec d’une part le client et d’autre part avec les parties-prenantes. Une fois ces points sont détaillés, il y a lieu après de clarifier les limitations du projet à savoir les points à inclure dans le projet et ceux à ne pas inclure. Il est à rappeler également que les objectifs du projet doivent respecter les critères SMART .

Ateliers de Génie Logiciel 2019-2020

Ateliers de Génie Logiciel Sommaire de gestion Objectif Les ateliers de génie logiciel constituent un atout majeur pour les élèves ingénieurs ou étudiants inscrits dans des filières IT et qui suivent le cours de Génie Logiciel. Ils correspondent à diverses technologies dans le domaine de l’industrie du logiciel et permettent de compléter la formation par rapport surtout aux aspects pratiques. Cela pourrait représenter la boîte à outils indispensable pour n’importe quel ingénieur de logiciel. Nous tenons à travers ces ateliers à consolider les savoirs en matière de technologie logicielle d’une part et doter chaque élève ou étudiant des outils nécessaires pour bien accomplir ses tâches et savoir choisir la technologie appropriée et adaptée au contexte d’autre part.  Buts Nous visons à cerner toutes les facettes technologiques liées au développement du logiciel selon les normes requises et en respectant les bonnes pratiques en la matière. Ces ateliers sont basés sur un