© Éditions Eyrolles
83
chapitre n° 1
Le niveau conceptuel : face à face Merise/UML
Héritage simple
Dans le cas de l’héritage simple (lorsqu’une seule classe hérite d’une seule autre sur-classe), il
n’existe que deux cas : la totalité ou l’absence de contrainte.
Bilan
Dans tous les cas d’héritage, les contraintes se traduiront au niveau physique par programmation de déclencheurs ou de contraintes de vérification SQL (CHECK).
Encapsulation
Concept bien connu des développeurs objet, le principe de l’encapsulation est d’autoriser l’accès
aux données uniquement via les méthodes. Une autre édition consiste à considérer la capacité de
l’objet à cacher ses méthodes. Depuis l’origine, les modèles entité-association ne décrivent pas les
opérations disponibles au niveau des entités. UML note la présence d’une méthode d’une classe
au niveau du troisième compartiment de la classe. Merise/2 permet toutefois d’affiner la définition
des attributs (public, privé, protégé) au niveau du MOD (Modèle organisationnel des données).
L’encapsulation permet :
• d’augmenter le niveau d’abstraction de la classe ;
• de protéger les objets des classes d’une manipulation interdite de la part des clients de la classe ;
• de protéger les clients vis-à-vis des évolutions de la classe elle-même.
Les méthodes d’une classe représentent les services de la classe en question. Une classe fournisseur propose des services aux autres classes clientes. Conformément aux principes de
l’approche objet, il faut vérifier que les classes clientes s’engagent à ne pas faire usage de
connaissances autres que celles décrites dans la spécification de la classe fournisseur. Une
méthode définit une abstraction de service dont les détails d’implémentation sont cachés.
Au niveau d’une base de données, une méthode peut être programmée par une fonction ou
une procédure cataloguée (pour les bases objet-relationnelles, ces méthodes sont définies
directement au niveau du type de la table).
Positionnement des méthodes
L’exemple 1-89 décrit les achats de logiciels par des départements. Si le concepteur veut définir
la méthode achete(), il pourra la placer soit dans la classe Logiciel, Departement ou
Précédent

- 91/316

Suivant