MODÉLISATION DES DONNÉES : Approche pour la conception des bases des données

Par

1. INTRODUCTION

2. CONCEPTS DE BASE

3. AUTRES CONCEPTS

3.1. Occurrence
3.2. Identifiant
3.3. Dimension d'une association
3.4. Cardinalité

4. EXEMPLE DE MCD

5. DÉPENDANCES

5.1. Rappel du langage algébrique
5.1.1. Projection
5.1.2. Anti-projection
5.1.3. Produit cartésien
5.1.4. Jointure
5.1.5. Thêta-jointure
5.1.6. Sélection
5.1.7. Division
5.1.8. Dépendance fonctionnelle
5.1.9. Décomposition
5.2. Dépendance fonctionnelle (DF) et contrainte fonctionnelle (CIF)
5.2.1. Dépendance fonctionnelle entre propriétés d'un objet ou d'une association
5.2.2. Dépendance fonctionnelle entre objets
5.2.3. Contrainte d'intégrité fonctionnelle
5.3. Dépendance multivaluée (DM)
5.4. Dépendance de jointure (DJ)

6. FORMES NORMALES

6.1. Première forme normale (1FN)
6.2. Deuxième forme normale (2FN)
6.3. Troisième forme normale (3FN)
6.4. Forme normale de Boyce-Codd (BCFN)
6.5. Quatrième forme normale (4FN)
6.6. Cinquième forme normale (5FN)

7. ÉLABORATION D'UN MCD

8. CONTRAINTES SÉMANTIQUES

8.1. Contraintes entre associations
8.1.1. Contrainte d'existence
8.1.2. Contrainte de non-existence
8.2. Contraintes entre propriétés
8.3. Association d'associations

9. TRADUCTION EN SCHÉMA RELATIONNEL

10. EXTENSION POUR LA CONCEPTION PAR OBJETS

10.1. Rappel sur la conception orientée objets
10.1.1. Abstraction de données
10.1.2. Classes
10.1.3. Relations entre les classes
10.2. Généralisation / spécialisation

1. INTRODUCTION

L'objectif de ce document est d'initier le lecteur au formalisme de modélisation des données tel que le définit la méthode MERISE.

MERISE définit trois niveaux de description du système d'information : La représentation distincte des données et des traitements selon les 3 niveaux évoqués, conduit à l'élaboration de six modèles, mais ce document ne s'intéresse qu'à la modélisation des données au niveau conceptuel.
Le niveau conceptuel décrit les choix de gestion adoptés par l'entreprise. Schématiquement, ce niveau de description répond à la question « quoi ? », c'est-à-dire « que veut-on faire qui reste vrai quelles que soient les solutions d'organisation et les solutions techniques à mettre en œuvre ? ».
Ce document synthétise les différentes étapes nécessaires à la réalisation du modèle conceptuel des données (MCD). Il aborde ensuite les aspects liés à la normalisation qui permet la conception de bases de données cohérentes.

2. CONCEPTS DE BASE

Le formalisme utilisé pour décrire un MCD est celui du modèle entité-association. La représentation de ce formalisme s'appuie sur trois concepts de base : L'objet est une entité ayant une existence propre. L'association est un lien ou relation entre objets sans existence propre. La propriété est la plus petite donnée d'information décrivant un objet ou une association.

La représentation graphique utilisée pour visualiser les données est la suivante :



Une propriété ne doit être présente que sur un seul objet ou une seule association.
Les ambiguités liées à la polysémie (un même nom de propriété désignant deux notions différentes) doivent être levées en nommant de façon précise les propriétés.
Les ambiguités liées à la synonymie (des noms différents de propriétés désignant une même notion) doivent être éliminées.
Un objet possède au moins une propriété.
Une association peut n'avoir aucune propriété.

3. AUTRES CONCEPTS

3.1. OCCURRENCE

L'occurrence d'une propriété est l'une des valeurs que peut prendre cette propriété.
L'occurrence d'un objet est l'un des ensembles d'occurrences de ses propriétés.
L'occurrence d'une association est l'une des liaisons entre occurrences d'objets participant à l'association.

Les propriétés d'un objet doivent avoir une occurrence quelle que soit l'occurrence de l'objet. Dans le cas contraire, il est nécessaire de créer un autre objet portant cette propriété.

Lorsqu'une propriété d'un objet peut avoir plusieurs occurrences pour une occurrence de l'objet, il faut : De la même manière, lorqu'une propriété d'une association peut avoir plusieurs occurrences pour une occurrence de l'association, il faut :

3.2. IDENTIFIANT

L'identifiant d'un objet est la ou les propriétés permettant de déterminer de façon unique chacune des occurrences de l'objet. La valeur de l'identifiant doit être différente pour chaque occurrence de l'objet.

Pour repérer l'identifiant dans la représentation graphique d'un objet, le ou les propriétés constituant l'identifiant sont précédées d'un symbole (# ou *).

L'identifiant d'une association est la concaténation des identifiants des objets reliés.

3.3. DIMENSION D'UNE ASSOCIATION

La dimension d'une association est le nombre d'objets intervenant dans cette association.

Une association réflexive (de dimension 1) relie un objet à lui même.

3.4. CARDINALITÉ

Les cardinalités d'un objet dans une association désignent le nombre minimum (0 ou 1) et le nombre maximum (1 ou n) de liens qu'il existe entre une occurrence de l'objet et une occurrence de l'association.

Une valeur minimum à 0 signifie qu'au moins une occurrence de l'objet n'est pas liée à l'association.
Une valeur minimum à 1 signifie que toutes les occurrences de l'objet sont liées à l'association.
Une valeur maximum à 1 signifie qu'aucune occurrence de l'objet n'est liée plus d'une fois à l'association.
Une valeur maximum à n signifie qu'au moins une occurrence de l'objet est liée plusieurs fois à l'association.

Á partir de ces valeurs minimum et maximum possibles, il existe quatre types de cardinalité :

Une représentation schématique des liens entre les occurrences d'objets peut aider à déterminer les cardinalités d'une association.

Exemple:


4. EXEMPLE DE MCD

5. DÉPENDANCES

5.1. RAPPEL DU LANGAGE ALGÉBRIQUE

Une relation n-aire définie sur des ensembles D1, D2, ..., Dn est un sous-ensemble du produit cartésien D1 x D2 x ... x Dn. Une relation n-aire est un ensemble de n-uplets <d1, d2, ..., dn> oú .
Chacun des ensembles Di est appelé attribut de la relation. La relation est notée R(D1, D2, ..., Dn).

Dans le cadre d'une définition d'un modèle de données, les langages d'interrogation pour la recherche de données peuvent être scindés en deux classes : Le principe d'un langage algébrique est de considérer que l'information à sélectionner peut s'exprimer sous forme d'une relation obtenue par applications successives d'opérateurs dont les opérandes sont les relations de base.
Ces opérateurs sont décrits dans la suite de ce paragraphe. Les langages prédicatifs ne sont pas abordés dans ce document.

Par convention, les premières lettres de l'alphabet sont utilisées pour désigner les attributs et les dernières lettres pour désigner les ensembles d'attributs.

5.1.1. Projection

La projection R[X] d'une relation n-aire R(X, Y) est définie par :

5.1.2. Anti-projection

L'anti-projection R]X[ d'une relation n-aire R(X, Y) est définie par :

5.1.3. Produit cartésien

Le produit cartésien R x S de deux relations n-aires R(X) et S(Y) est définie par :

5.1.4. Jointure

La jointure (ou produit) R * S de deux relations n-aires R(X, Y) et S(Y, Z) est définie par :

5.1.5. Thêta-jointure

La Thêta-jointure (ou Thêta-produit) de deux relations n-aires R(X, A) et S(B, Y) est définie par (Thêta est un opérateur de comparaison entre A et B) :

5.1.6. Sélection

La sélection R{F} de la relation n-aire R(X) par la formule logique F applicable sur les n-uplets de R, est définie par :

La formule F est construite à partir des opérateurs de la logique : conjonction, disjonction, négation, égalité, inférieur, supérieur, différent.

5.1.7. Division

La division de deux relations n-aires R(X, A) et S(B, Y) pour lesquelles les attributs A et B sont compatibles, est définie par :

5.1.8. Dépendance fonctionnelle

Une dépendance fonctionnelle X Y entre X et Y dans une relation n-aire R(X, Y, Z) est définie par :

5.1.9. Décomposition

Une relation R(X1, X2, ..., Xn) est décomposable selon (X1, X2), (X2, X3, X4), ..., (Xn-3, Xn-2, Xn-1), (Xn-1, Xn) si
R = R[X1, X2] * R[X2, X3, X4] * ... * R[Xn-3, Xn-2, Xn-1] * R[Xn-1, Xn].

5.2. DÉPENDANCE FONCTIONNELLE (DF) ET CONTRAINTE FONCTIONNELLE (CIF)

5.2.1. Dépendance fonctionnelle entre propriétés d'un objet ou d'une association

Une propriété ou un ensemble de propriétés P2 dépend fonctionnellement d'une propriété ou d'un ensemble de propriétés P1, si la connaissance de la valeur de P1 détermine une et une seule valeur de P2.

Cette dépendance est notée P1 P2 et se lit « P2 dépend fonctionnellement de P1 » ou « P1 détermine P2 par DF ».

Un identifiant détermine par DF toutes les autres propriétés de l'objet ou de l'association.

Une DF P1 P2 est dite élémentaire si aucune partie de l'ensemble de propriétés P1 ne détermine la propriété ou l'ensemble de propriétés P2.

Les DF sont régies par la règle mathématique de transitivité : si P1 P2 et P2 P3 alors P1 P3.

Une DF P1 P2 est dite directe s'il n'y a pas de transitivité P1 P3 et P3 P2.

5.2.2. Dépendance fonctionnelle entre objets

Il existe une DF O1 O2 entre deux objets O1 et O2 liés par une association, si chaque occurrence de O1 n'est associée qu'à au plus une occurrence de O2. En d'autres termes, la présence des cardinalités (0,1) ou (1,1) sur un objet, révèle une DF vers l'autre objet.
O1 est l'objet source de la DF et O2 l'objet but.

La DF est dite forte pour une cardinalité (1,1) et faible pour une cardinalité (0,1).

Exemple :



Une DF forte n'est pas porteuse de propriétés. Si une DF forte est porteuse de propriétés, alors ces propriétés doivent être déplacées sur l'objet source de la DF.
Une DF révèle une relation entre objets de type « est un ».

5.2.3. Contrainte d'intégrité fonctionnelle

Une contrainte d'intégrité fonctionnelle sur un objet signifie que cet objet est totalement identifié par la connaissance d'un ou plusieurs autres objets au sein d'une même association.

5.3. DÉPENDANCE MULTIVALUÉE (DM)

étant donné une association A(P) et X, Y des ensembles de propriétés inclus dans P, il existe une DM entre les ensembles de propriétés X, Y lorsque :


Cette dépendance est notée X Y.

Remarque : .

Exemple :



Les données de l'association EFFECTUE peuvent être :

garagiste intervention modèle
Martin électricité Citroën
Piquard Carrosserie Ford
Martin Mécanique Renault
Piquard Carrosserie Fiat
Tussier Dépannage Peugeot
Piquard Alarme Fiat
Martin électricité Renault
Piquard Alarme Ford
Martin Mécanique Citroën

Il existe une DM garagiste intervention et une DM garagiste modèle s'expliquant par le fait qu'un garagiste qui effectue un ensemble de types d'intervention pour un ensemble de modèles de voiture, est capable d'effectuer chacun de ces types d'intervention sur chacun de ces modèles de voiture.

5.4. DÉPENDANCE DE JOINTURE (DJ)

étant donnée une association A(P) et X1, X2, ..., Xn des ensembles de propriétés dont l'union est P' tels que , il existe une DJ lorsque :
R = R[X1] * R[X2] * ... * R[Xn-1] * R[Xn].

Cette dépendance est notée *[X1][X2]...[Xn-1][Xn].

Si , la dépendance est dite partielle.
Si P = P', la dépendance est dite totale.

Exemple :



Les données de l'association RECETTE peuvent être :

famille saveur catégorie
Viandes Sucré Fruits
Viandes Sucré Légumes
Desserts Sucré Fruits
Desserts Acide Fruits

Ce cas correspond à X1 = (famille, saveur), X2 = (saveur, catégorie) et X3 = (catégorie, famille).

La projection RECETTE[X1] donne :

famille saveur
Viandes Sucré
Desserts Sucré
Desserts Acide

La projection RECETTE[X2] donne :

saveur catégorie
Sucré Fruits
Sucré Légumes
Acide Fruits

La jointure RECETTE[X1] * RECETTE[X2] donne :

famille saveur catégorie
Viandes Sucré Fruits
Viandes Sucré Légumes
Desserts Sucré Fruits
Desserts Sucré Légumes
Desserts Acide Fruits

La projection RECETTE[X3] donne :

catégorie famille
Fruits Viandes
Légumes Viandes
Fruits Desserts

La jointure RECETTE[X1] * RECETTE[X2] * RECETTE[X3] redonne l'association RECETTE.

Cette dépendance indique qu'il ne suffit pas qu'une famille de recettes ait une saveur dominante et que cette saveur corresponde à une catégorie d'ingrédients, pour qu'une recette à base de cet ingrédient et de saveur spécifiée, soit fabriquée.
Un dessert possède une saveur sucrée, une saveur sucrée peut correspondre à un légume mais un dessert sucré à base de légumes n'est pas fabriqué car il n'y a pas de légumes dans un dessert.

6. FORMES NORMALES

6.1. PREMIÈRE FORME NORMALE (1FN)

Un objet ou une association est en 1FN s'il possède un identifiant et si aucune propriété n'est à multiples valeurs.

6.2. DEUXIÈME FORME NORMALE (2FN)

Un objet ou une association est en 2FN s'il est en 1FN et si toutes les DF entre ses propriétés sont élémentaires.

Exemple :



L'association DEVOIR est en 1FN mais pas en 2FN car :
#(nom, matière, numéro) note,
#(nom, matière, numéro) moyenne,
(nom, matière) moyenne.

La deuxième DF n'est pas élémentaire.

Avec ce modèle, l'occurrence de la propriété « moyenne » sera répétée pour chacun des mois.

Pour que l'association DEVOIR soit en 2FN, il faut retirer la propriété « moyenne » de cette association et la placer dans une nouvelle association MOYENNE :


6.3. TROISIÈME FORME NORMALE (3FN)

Un objet ou une association est en 3FN s'il est en 2FN et si toutes les DF entre ses propriétés sont directes.

Exemple :



L'objet COMMUNE est en 2FN mais pas en 3FN car :
#code postal nom commune,
#code postal numéro département,
#code postal nom département,
#numéro département nom département.

La troisième DF n'est pas directe.

Avec ce modèle, la même occurrence de la propriété « nom département » sera répétée pour chaque commune appartenant au même département.
Pour que l'objet COMMUNE soit en 3FN, il faut créer un nouvel objet DEPARTEMENT pour refléter cette DF :



Ce modèle permet de plus de gérer l'ensemble des départements, y compris ceux qui ne sont pas rattachés à une commune.

6.4. FORME NORMALE DE BOYCE-CODD (BCFN)

Un objet ou une association est en BCFN s'il est en 3FN et si quand X Y () est vérifié alors X contient un identifiant de l'objet ou de l'association.

Exemple :

On suppose qu'une matière n'est enseignée qu'une seule fois dans une classe et que par un seul professeur. De plus, un professeur n'enseigne qu'une seule matière.



L'association EMPLOI est en 3FN mais pas en BCFN car :
(matière, classe) professeur
professeur matière

Il existe donc des DF dont la source ne contient pas l'identifiant de l'association.

Ce modèle n'interdit pas l'existence des occurrences du type <« Mathématiques », « 6A », « Martin »> et
<« Mathématiques », « 6A », « Piquard »>, et ceci est en contradiction avec la première contrainte.

Pour que l'association EMPLOI soit en BCFN, il faut la décomposer :


6.5. QUATRIÈME FORME NORMALE (4FN)

Une association est en 4FN si elle est en BCFN et si elle ne possède pas de DM ou bien,
X Y étant la DM, il doit exister une propriété A telle que X A soit verifiée.

Exemple :

On suppose qu'un garagiste qui effectue un ensemble de types d'interventions pour un ensemble de modèle de voiture, est capable d'effectuer chacun de ces types d'interventions sur chacun de ces modèles de voitures.



L'association EFFECTUE est en BCFN mais pas en 4FN car il existe une DM (voir au paragraphe 5.3) et, puisque cette association n'est pas porteuse d'une propriété, il n'existe pas de DF.

Ce modèle présente des difficultés de mise à jour. Si l'occurrence <« Tussier », « Pare-brise », « Seat »> est ajoutée,
il faut ajouter aussi les occurrences <« Tussier », « Dépannage », « Seat »> et <« Tussier », « Pare-brise », « Peugeot »>.

Pour que l'association EFFECTUE soit en 4FN, il faut la décomposer :



Si l'association EFFECTUE avait été porteuse d'une propriété « temps de réparation », elle aurait été en 4FN
puisque la DF #(garagiste, intervention, modèle) temps aurait existé.

6.6. CINQUIÈME FORME NORMALE (5FN)

Une association est en 5FN si elle est en 4FN et si elle ne possède pas de DJ ou bien,
*[X1]…[Xn] étant la DJ, il doit exister une propriété A telle que X A soit verifiée.

Exemple :



L'association RECETTE est en 4FN mais pas en 5FN car il existe une DJ (voir au paragraphe 5.4) et, puisque cette association n'est pas porteuse d'une propriété, il n'existe pas de DF.

Ce modèle présente des difficultés de mise à jour. Si l'occurrence <« Viandes », « Acide », « Vins »> est ajoutée,
il faut également ajouter l'occurrence <« Viandes », « Acide », « Fruits »>.

Pour que l'association RECETTE soit en 5FN, il faut la décomposer :


7. ÉLABORATION D'UN MCD

Soit l'énoncé suivant :

La progression d'une recette donne les différents stades qui permettent la réalisation du travail. Cette progression est un enchaînement successif et logique des diverses manipulations qui concourent à l'aboutissement du plat à réaliser. Chacune de ces manipulations fait apparaître un temps d'exécution ou de cuisson. L'application de ces manipulations dans l'ordre spécifié conduit à la réalisation de la recette. Les termes techniques de base permettent de définir la manipulation à effectuer pour chacune des phases de la progression : décanter, émincer, éplucher, flamber, hacher, peler, trier, rôtir, … Les termes techniques employés dans une progression supposent l'utilisation du matériel adéquate. Le matériel est regroupé par catégorie : couteaux, plaques, ustensiles de cuisson, robots, … Un même matériel peut participer à plusieurs phases de la progression. Plusieurs matériels peuvent intervenir dans une même phase de la progression. Une quantité est indiquée pour chaque matériel utilisé dans une manipulation. Une recette est constituée à partir d'une liste d'ingrédients auxquels sont associés une quantité à utiliser. Les ingrédients sont répartis par type : légumes, fruits, poissons, boucherie, charcuterie, épicerie, boulangerie, cave, … Un ingrédient n'est répertorié que dans un seul de ces types. Chaque ingrédient possède une saveur. Les recettes sont regroupées par famille : hors d'œuvre, potages, poissons, entrées, rôtis, entremets, oeufs, viandes, … Une recette n'est repertoriée que dans une seule de ces familles.

Il s'agit d'élaborer le MCD correspondant à cet énoncé.

La lecture de ce texte permet de dégager les propriétés suivantes :
D'autres propriétés peuvent être éliminées car elles sont synonymes de celles précédemment citées :
Une progression n'est autre qu'une recette. Un stade ou une phase dans une progression correspond à un terme technique auquel a été rajouté un numéro d'ordre. Une manipulation est un terme technique. Un enchaînement de manipulations est une progression.

La notion de quantité employée dans cet énoncé est ambiguë (polysémie) puisqu'elle fait référence à la quantité d'ingrédients et à la quantité de matériels. Cette dernière propriété est renommée :
Á partir de ces propriétés une liste de DF peut être faite :
Il manque toutefois des informations sémantiques à cet énoncé, en particulier pour le nombre de spécimens de matériel à utiliser dans une manipulation. Ce nombre est-il dépendant de la recette ou bien est-il toujours le même à partir du moment oú la manipulation apparait dans une recette ?
Si l'on suppose que ce nombre est indépendant de la recette, la DF suivante est reconnue :
(matériel, terme technique) nombre de spécimens.

Les propriétés et les DF associées permettent de concevoir les objets suivants :
Le modèle suivant peut ensuite être élaboré à partir de ces éléments :



Ce modèle est en 5FN. Il présente tout de même une anomalie sur le numéro d'ordre dans l'association PHASE. En effet, rien n'indique dans ce schéma que la numérotation est séquentielle.

8. CONTRAINTES SÉMANTIQUES

8.1. CONTRAINTES ENTRE ASSOCIATIONS

8.1.1. Contrainte d'existence

Ce type de contrainte fait dépendre l'existence d'une occurrence d'une association entre des occurrences d'objets, de l'existence d'une occurrence d'une autre association reliant ces objets ou une partie de ces objets.

Exemple :

Un mécanicien n'effectue des réparations sur des voitures qu'à l'atelier qui correspond au type d'intervention à réaliser.

Le modèle correspondant est :



Il faut pouvoir indiquer dans ce modèle que l'occurrence <« Martin », « A01 », « Carrosserie »> n'est possible pour l'association REPARATION que si l'occurrence <« A01 », « Carrosserie »> existe pour l'association ATTRIBUTION.

8.1.2. Contrainte de non-existence

C'est l'inverse du type de contrainte précédent. L'existence d'une occurrence d'une association entre des occurrences d'objets doit dépendre de la non-existence d'une occurrence d'une association qui pourrait relier ces objets ou une partie de ces objets.

Exemple :



Un livre peut être un roman ou une étude mais pas les deux.

8.2. CONTRAINTES ENTRE PROPRIÉTÉS

Ces contraintes correspondent à des règles de gestion imposées par le système d'information.
Elles ne sont en général pas indiquées sur la représentation graphique du modèle mais font plutôt partie des annexes.
Leur description n'est pas formalisée. Il ne s'agit pour ces contraintes que de faire apparaitre sous une forme syntaxique quelconque, une règle de calcul importante.

Exemple :



La moyenne d'un élève dans une matière est obtenue en divisant par le nombre de notes obtenues par cet élève dans cette matière, la somme des notes obtenues par cet élève dans cette matière.
Cette contrainte s 'exprime par :

8.3. ASSOCIATION D'ASSOCIATIONS

Le concept d'association tel qu'il a été défini au paragraphe 2, est modifié pour prendre en compte le cas oú des contraintes apparaissent entre des associations d'objets.
Cette extension au concept initial permet d'exprimer différemment les contraintes entre associations vues au paragraphe 8.1.
Ce principe est limité au cas oú l'identifiant de l'une des associations est contenu dans l'identifiant de l'autre association.

Exemple :



La contrainte d'existence entre les deux associations REPARATION et ATTRIBUTION peut être remplacé par une association d'associations :



L'orientation du lien entre REPARATION et ATTRIBUTION précise quelle est l'association dont l'identifiant est contenu dans l'identifiant de l'autre association : l'association REPARATION est identifiée par #(mécanicien, ATTRIBUTION) c'est-à-dire #(mécanicien, intervention, atelier).

La cardinalité 0,n sur le lien REPARATION-ATTRIBUTION permet de spécifier que certaines occurrences de l'association ATTRIBUTION ne sont pas liées à une occurrence de l'association REPARATION.
En d'autre terme, un atelier peut être spécialisé dans une intervention sans qu'il y ait un garagiste qui y travaille.

9. TRADUCTION EN SCHÉMA RELATIONNEL

Chaque propriété d'un objet ou d'une association devient un attribut d'une relation.
Chaque objet devient une relation dont la clé est l'identifiant de l'objet.
Pour une DF forte, l'identifiant de l'objet but est ajouté à la relation définie à partir de l'objet source.
Une association devient une relation dont la clé est l'identifiant de l'association et à laquelle ont été ajoutés tous les attributs issus des propriétés de l'association.

Exemple :



Le schéma relationnel correspondant à ce modèle est le suivant :

individu(#nom, prénom, adresse)
catégorie(#code_catégorie, intitulé)
permis(#nom, #code_catégorie, date_obtention)
type_vehicule(#type, code)
véhicule(#numéro_série, marque, type)
carte_grise(#nom, #numéro_série, immatriculation, date)

10. EXTENSION POUR LA CONCEPTION PAR OBJETS

10.1. RAPPEL SUR LA CONCEPTION ORIENTÉE OBJETS

La conception orientée objets est une méthode qui conduit à l'élaboration d'une architecture basée sur les objets manipulés par le système étudié.

Cette méthode est un processus de conception ascendante. Elle favorise l'élaboration de composants logiciels autonomes et cohérents pouvant être utilisés pour constituer de nouveaux systèmes. Ce processus de conception conduit à l'élaboration d'un système modulaire sous réserve que les principes de modularité soient respectées.

La méthode ascendante est à opposer à la méthode descendante dont le principe est la décomposition d'un système en unités fonctionnelles fondées sur les traitements. Cette méthode ne permet pas de constituer des éléments logiciels réutilisables.

Faire la différence entre ces deux approches c'est faire la distinction entre les deux questions : « sur quoi agit le système ? » et « que fait le système ? ».

10.1.1. Abstraction de données

Une abstraction de données est un principe qui permet de séparer le comportement de la structure interne d'un objet.
Le comportement d'un objet est défini par les services que cet objet peut offrir à l'extérieur et les opérations qu'il peut effectuer.
La structure interne de l'objet et la mise en œuvre du comportement sont cachées de l'extérieur par encapsulation. L'encapsulation occulte les détails physiques par masquage de l'information.

10.1.2. Classes

Une classe est la description d'un ensemble d'objets ayant des propriétés communes. Chaque classe peut être membre d'une hiérarchie de classes. Cette hiérarchie relie les classes par des relations de nature différentes.
L'interface d'une classe donne une vue externe de la classe c'est à dire une déclaration des opérations applicables sur les objets de cette classe. Elle permet donc de savoir ce que peuvent offrir ou faire les objets de cette classe sans détails de mise en œuvre.
L'interface d'une classe est composée de primitives : attribut (composant ou propriété d'un objet), procédure (action sur l'état d'un objet) ou fonction (retour d'une valeur calculée sur l'état d'un objet). L'état d'un objet correspond aux valeurs courantes de chacune de ses propriétés.

10.1.3. Relations entre les classes

Utilisation
Cette relation traduit une collaboration de type client/fournisseur. Cela signifie qu'une classe utilise une autre classe pour réaliser le comportement de ses objets.

Agrégation
Cette relation traduit une dépendance de type composée/composantes. Elle indique qu'une classe est responsable des objets d'une autre classe. Au sens usuel, elle peut se traduire par &"171; contient » ou « est composée de ».

Association
Cette relation traduit un lien bidirectionnel représentant une dépendance sémantiques entre objets.

Héritage
Cette relation traduit un partage de comportement et de propriétés entre classes. Elle exprime une généralisation / spécialisation entre classes c'est à dire le fait qu'une classe spécialise une autre plus générale. Elle peut se traduire usuellement par « est un ».

Instanciation
Cette relation traduit une génération d'objets d'une classe par une autre classe.

10.2. GÉNÉRALISATION / SPÉCIALISATION

La relation d'héritage définie entre classes est introduite dans le modèle conceptuel par généralisation ou spécialisation des objets.

La première méthode consiste à spécialiser un objet en créant un ou plusieurs objets spécialisés.
La seconde méthode est inverse. Elle consiste à généraliser un ou plusieurs objets en créant un objet générique. L'objet générique porte toutes les propriétés communes aux objets spécialisés.

Exemple :



Il est possible de créer un objet générique PERSONNE à partir des objets PROFESSEUR et ELEVE :




Autre lien sur Merise
http://perso.ifrance.com/rad/radmod/modmeris.htm