Documente Academic
Documente Profesional
Documente Cultură
Introduction
le diagramme de classes est Considr comme le plus important de la modlisation oriente Objet Exprime la structure interne dun systme. permet de fournir une reprsentation abstraite des objets du systme qui vont interagir ensemble pour raliser les cas dutilisation.
nest pas adapt (sauf cas particulier) pour dtailler, dcomposer, ou illustrer la ralisation dun cas dutilisation particulier.
Il sagit dune vue statique Lintrt : modliser les entits du systme dinformation. Il permet de reprsenter lensemble des informations finalises qui sont gres par le domaine. permet de modliser les classes du systme et leurs relations indpendamment dun particulier dun langage de programmation particulier (Chaque langage de Programmation Orient Objets
donne un moyen spcifique dimplmenter le paradigme objet (pointeurs ou pas, hritage multiple ou pas, etc.)
Concepts de base
UML est bas sur diffrents concepts de base :
Objet, Classe
Lien, Association , Hritage Contrainte
Rappel
Encapsulation
Paquetages Visibilit
Encapsulation et Paquetages
Lencapsulation est un mcanisme consistant rassembler les donnes et les mthodes au sein dune structure en cachant limplmentation de lobjet, cestdire en empchant laccs aux donnes par un autre moyen que les services proposs. Lencapsulation permet de dfinir des niveaux de visibilit des lments dun conteneur (classe)
Paquetages: Lors de la modlisation dapplications complexes, les classes sont regroupes dans des paquetages ddis des domaines ou activits particulires.
Exemple de paquetages
Client
Facturation
Interaction entre packages = dpendance entre packages : toute modification dun package entrane des modifications du package point
Comptabilit
Visibilit
le motcl public ou le caractre + : Proprit ou classe visible partout. Aucun caractre, ni motcl: Proprit ou classe visible uniquement dans le paquetage o la classe est dfinie. Le motcl protected ou le caractre #: Proprit ou classe visible dans la classe et par tous ses descendants. Le motcl private ou le caractre : Proprit ou classe visible uniquement dans la classe. Recommandation Dans la pratique, lorsque des attributs doivent tre accessibles lextrieur il est prfrable que cet accs ne soit pas direct mais se fasse par lintermdiaire doprations.
Elments de Base
Les Classes
Les Attributs
Les Oprations
Reprsentation Graphique
Syntaxe : [ strotype ]
[<Nom_du_paquetage_1>::...::<Nom_du_paquetage_N>:: ]
Les attributs
Syntaxe :
<nom attribut> : visibilit> [/] <nom_<type> [ '['<multiplicit>']' [{<contrainte>}] ] [ = <valeur_par_dfaut> ]
Liste des attributs de la classe avec les modifications daccs ventuels. Certains attributs napparaissent pas directement, ils seront dduits partir des relations entre classes.
Attribut de classe (static en Java ou en C++) qui garde une valeur unique et partage par toutes les instances de la classe. Un attribut de classe nest donc pas une proprit dune instance mais une proprit de la classe et laccs cet attribut ne ncessite pas lexistence dune instance.
Attribut drivs (symbole \) peuvent tre calculs partir dautres attributs et de formules de calcul
Exemple
Les mthodes
out : Paramtre de sortie uniquement. Il ny a pas de valeur dentre et la valeur finale est disponible pour lappelant. inout : Paramtre dentre/sortie. La valeur finale est disponible pour lappelant. Le type du paramtre (<Type>) peut tre un nom de classe, un nom dinterface ou un type de donn prdfini. Les proprits (<proprits>) correspondent des contraintes ou des informations complmentaires comme les exceptions, les prconditions, les postconditions ou encore lindication quune mthode est abstraite (mot-clef abstract), etc.
Exemple
Notion dassociation
Association = Relation entre deux classes (association binaire) ou plus (association naire), Indique quil peut y avoir des liens entre des instances des classes associes.
Deux faons de modliser une association
Notion dassociation
Association = Relation entre deux classes (association binaire) ou plus (association naire), Indique quil peut y avoir des liens entre des instances des classes associes.
Deux faons de modliser une association
Multiplicit ou cardinalit
La multiplicit associe une terminaison dassociation, dagrgation ou de composition dclare le nombre dobjets susceptibles doccuper la position dfinie par la terminaison dassociation
Exemple : Un objet de la classe Voiture est compos dau moins trois roues et dau plus dix roues.
Les principales multiplicits normaliss sont : plusieurs : * ou 0..* exactement n : n au minimum n : n..* entre n et m : n..m Remarque
Il faut noter que, pour les habitus du modle entit/relation, les multiplicits sont en UML lenvers (par rfrence Merise) pour les associations binaires et lendroit pour les n-aires avec n > 2.
Exemple
Travail faire : Faites une description de ce diagramme de classe en explicitant en une phrase chacune des multiplicits.
Exemple
Un box peut tre lou par au maximum un seul contrat ou peut rester non lou. Un contrat concerne la location d'un seul box la fois. Un box peut tre vide ou contenir au maximum 2 vhicule. Un vhicule est autoris aller dans un box (au minimum) ou plus. Un contrat ne concerne qu'un seul locataire. Un locataire peut souscrire plusieurs contrat mais doit en avoir souscrit au moins un.
Association binaire
Lassociation et ses diffrents ornements.
Association rflexive
Lassociation rflexive entre classes a pour principale fonction de structurer les objets dune mme classe. asymtrique (parent de) Il est conseill dajouter les rles des extrmits elle permet de crer une hirarchie entre les objets sinon elle partitionne les instances de la mme classe. symtrique et non transitive (amie de) la fois symtrique et transitive (a le mme ge) les objets sont regroups en classes dquivalence.
Sur une association, elles apportent plus dinformations; elles peuvent par exemple restreindre le nombre d'instances vises (ce sont alors des "expressions de navigation").
Les contraintes peuvent s'exprimer en langage naturel.
Exemple
Association drive
Les associations drives sont des associations redondantes, qu'on peut dduire d'une autre association ou d'un ensemble d'autres associations. Elles permettent d'indiquer des chemins de navigation "calculs", sur un diagramme de classes. Elles servent beaucoup la comprhension de la navigation (comment joindre telles instances d'une classe partir d'une autre). Souvent un ensemble de contraintes, exprimes en OCL, est ajout une association drive pour dfinir les conditions de drivation.
ClasseAssociation
Une association peut tre raffine et avoir ses propres proprits, qui ne sont disponibles dans aucune des classes quelle lie. Une classe association est une classe comme une autre qui peut entretenir des relations avec dautres classes
ClasseAssociation: exemple
Association qualifie
Restreindre la porte de lassociation quelques lments cibls (comme un ou plusieurs attributs) de la classe. Ces lments cibls sont appels un qualificatif. Qualificateurs (qualifiers) Un qualificateur est un attribut ou un groupe dattributs qui servent filtrer une population instanciable. Un qualificateur caractrise lassociation. Il est reprsent par un petit rectangle sur la terminaison de lassociation.
Un compte dans une banque appartient au plus deux personnes. Autrement dit, une instance du couple {Banque , compte} est en association avec zro deux instances de la classe Personne. Mais une personne peut possder plusieurs comptes dans plusieurs banques. Cest--dire quune instance de la classe Personne peut tre associe plusieurs (zro compris) instances du couple{Banque , compte}.
Association qualifie
-Une instance du triplet {Echiquier, range, colonne} est en association avec une instance unique de la classe Case. Inversement, une instance de la classe Case est en association avec une instance unique du triplet {Echiquier, range, colonne}.
Association NAire
La gestion de ce type dassociation est trs dlicate (multiplicit). Sont trs peu utilises. utiliser des associations binaires combines avec des contraintes du langage OCL. Exemple: un tudiant suit entre cinq et dix modules. Pour un groupe dtudiants donn (entre 4 et 25), un module est assur enseignant par un seul enseignant.
Relation dagrgation
Une agrgation est une forme particulire dassociation. La signification de cette forme simple dagrgation est uniquement conceptuelle. Elle ne contraint pas la navigabilit ou les multiplicits de lassociation. Elle nentrane pas non plus de contrainte sur la dure de vie des parties
Une agrgation peut notamment (mais pas ncessairement) exprimer :
A un mme moment, une instance d'lment agrg peut tre lie plusieurs instances d'autres classes (l'lment agrg peut tre partag).
Relation de composition
La composition, appel galement agrgation composite , est une agrgation particulire. La relation de composition dcrit une contenance structurelle entre instances. llment composite est responsable de la cration, de la copie et de la destruction de ses composants. la multiplicit du ct composite ne doit pas tre suprieure 1
Les cycles de vies des lments (les "composants") et de l'agrgat sont lis : si l'agrgat est dtruit (ou copi), ses composants le sont aussi.
A un mme moment, une instance de composant ne peut tre lie qu' un seul agrgat. Les "objets composites" sont des instances de classes composes.
Relation de dpendance
Une dpendance est une relation unidirectionnelle exprimant une dpendance smantique entre des lments du modle. La dpendance est souvent strotype pour mieux expliciter le lien smantique entre les lments du modle. Cest une Relation d'utilisation unidirectionnelle (une modification de l'lment dont on dpend, peut ncessiter une mise jour de l'lment dpendant). Les strotypes normaliss sont: friend (on accorde une visibilit spciale la classe source dans la cible), drive la source est calcule partir de la cible), appel (appel dune opration par une autre), instantiate (une opration de la source cre une instance de la cible),
La relation de dpendance lie deux ou plusieurs classes ensemble. Une flche en pointill lie la classe client (queue de la flche) son fournisseur (pointe de la flche). Une modification du fournisseur affecte en principe tous les clients
Relation dHritage
Les concepts abstraits permet de simplifier la reprsentation. Le principe dabstraction est assur par le concept de lhritage.
Le principe de substitution permet de dterminer si une relation d'hritage est bien employe pour la classification : "Il doit tre possible de substituer n'importe quel instance d'une superclasse, par n'importe quel instance d'une de ses sous-classes, sans que la smantique d'un programme crit dans les termes de la super-classe n'en soit affecte." Si Y hrite de X, cela signifie que "Y est une sorte de X" (analogies entre classification et thorie des ensembles).
Interface
les classes permettent de dfinir en mme temps un objet et son interface (un autre type de classeur). Il peut sagir de linterface complte dun objet, ou simplement dune partie dinterface qui sera commune plusieurs objets. Le rle de ce classeur, strotyp interface , est de regrouper un ensemble de proprits et doprations assurant un service cohrent (dune classe, paquetage ou composant). Une interface est reprsente comme une classe except labsence du mot-clef abstract (car linterface et toutes ses mthodes sont, par dfinition, abstraites) et lajout du strotype interface . Une interface doit tre ralise par au moins une classe.
Graphiquement, cela est reprsent par un trait discontinu termin par une flche triangulaire et le strotype realize . Une classe (classe cliente de linterface) peut dpendre dune interface (interface requise). On reprsente cela par une relation de dpendance et le strotype use .
Interface (suite)
Interface (suite)
Interface (suite)
Exemple
Exemple
Cette tape empirique (base sue lexprience) se fait gnralement en collaboration avec un expert du domaine. Les classes correspondent gnralement des concepts du domaine.
Attention, mfiez vous de certains attributs qui sont en ralit des relations entre classes.
Suite
Organiser et simplifier le modle en liminant les classes redondantes et en utilisant lhritage.