Exemples de schémas conceptuels dynamiques et statiques

Des différences de détails pour l'aspect statique

Ce chapitre est pour vous, cher lecteur, l'occasion de mettre en pratique une des conclusions de la précédente unité de cours : votre capacité à vous adapter à toute méthode de spécification formelle autre que NIAM.

Nous comparons rapidement les syntaxes des formalismes NIAM et UML[1] dans le tableau suivant. Pour information, la collection des symboles, et leur définition sémantique que nous examinons se nomment dans le jargon des modèles conceptuels « le méta-modèle[2] ».

Par ailleurs l'examen de la méthode UML[1] est un prétexte pour aborder de nouveaux concepts.

D'ou vient la méthode UML[1] (Unified Modeling Language) ?

S'appuyant sur les concepts objets, c'est une synthèse entre trois méthodes assez voisines très répandues : OMT[3] (Object Modeling Technique), Booch, et OOSE[4] (Object Oriented Software Engineering). Les trois auteurs de ces méthodes ont coopéré à cette synthèse UML : Rumbaugh James[5], Booch Grady[6], Jacobson Ivar[7].

Synthèse réussie, à constater la rapidité avec laquelle UML[1] se répand, et la liste des utilitaires logiciels qui intègrent ses diagrammes dans les ateliers de génie logiciel.

On constate que NIAM est à un niveau de granulométrie[8] plus fin, qui tient à un découpage binaire de l'aspect relationnel. Il oblige à une analyse des idées décomposées jusqu'à un niveau réellement élémentaire. Il permet une correspondance avec les propriétés de l'algèbre ensembliste. De ce point de vue, NIAM offre un avantage pédagogique certain.

En revanche, il est moins pratique dans l'élaboration opérationnelle des modèles. Il est moins concis qu'UML. NIAM a les défauts de ses qualités.

On a donc raison de préférer UML dans un contexte professionnel, qui permet beaucoup plus de libertés, par exemple dans l'expression des cardinalités, et qui de plus est plus complet, proposant également un modèle dynamique. Mais il est plus dangereux, car les incohérences sont plus difficilement décelables.

UML : Modèle statique

NIAM

Acteur[9], use case[10], association

Acteur UML.

concepts absents

Classe[11], attribut[12], opération

Classe UML.

L'identifiant est absent.

Il est repéré par un attribut à qui on donne implicitement le statut de principal.

A n'en pas douter, l'évolution d'UML comblera cette absence.

Concept[13] ou ensemble, identifiant

Concept Niam.

Concept opération absent

Association (entre deux classes)

Rôles [14]

Rôle UML.

Idée[15] (ou relation binaire) entre deux concepts[13] (ensembles)

Rôles[14]

Concept NIAM.

Classe d'association

Classe association UML.

Ce concept absent de NIAM est très pratique pour qualifier le nouvel ensemble constitué par les couples d'objets pris dans l'association A-B.

Cardinalités : ensemble des entiers positifs

Cardinalités UML.

Exemples = 0..1 ; 1 ; 1..3 ; *

* = plusieurs

On peut de plus exprimer des contraintes de cardinalité sur chaque ensemble.

(Voir plus loin)

« Les cardinalités du sens de l'association B vers A sont obligatoirement l'inverse de celles de A vers B. »

Cardinalités seulement binaires

Cardinalités NIAM.

Absence de symbole : pas de contrainte

Unicité[16]

Totalité[17]

« Les cardinalités du sens de l'association B vers A sont indépendantes de celles de A vers B . »

Généralisation-spécialisation

Généralisation UML.

Relation d' [18] héritage [18]

Relation héritage NIAM.

Classe abstraite (sans instances)

Abstract super-type (sans occurrences)

Association particulière d'agrégation (composé de, composant ou faisant partie de)

Cardinalités UML.

Le symbole flèche « losange » se place toujours du coté de l'agrégat, le contenant.

Traduction en phrase élémentaires :

Un objet de la classe A , par exemple un appartement, est composé de plusieurs pièces.

Plusieurs pièces font partie d'un appartement.

La sémantique de cette association implique deux propriétés :

  • les associations opèrent une partition exclusive dans l'ensemble agrégé (une pièce ne peut appartenir à deux appartements)

  • si on supprime un appartement, les pièces associées disparaissent.

Pour conserver explicitement la trace du contenu de chaque appartement, il faudrait créer une classe d'association.

NIAM ne distingue pas de noms particuliers pour une idée.

Ce sont les rôles qui définissent la sémantique de la relation.

Cette relation d'agrégation se traduit par le schéma :

Agrégation NIAM.

Association unaire

Association unaire UML.

Idée[15] portant sur le même concept[13]

Association unaire NIAM.

Contraintes[19] entre deux associations

Contrainte UML entre deux associations.

Se note entre accolades.

« Contrairement à NIAM , les contraintes, leur nom, leur signification dans UML sont libres. »

« Attention de ne pas en abuser : l'informaticien devra les traiter ! »

Contrainte[19] portant sur les instances d'une classe :

Contrainte UML portant sur les instances d'une classe.

Le principe de qualification libre d'une contrainte sur les occurrences d'un concept n'existe pas dans NIAM

Contraintes[19] entre deux idées[15] ou entre deux relations d'héritage[18]

Contrainte NIAM entre deux idées.

Le symbole Symbole NIAM. peut contenir une contrainte :

  • d'unicité

  • d'égalité

  • d'exclusion

  • de totalité.

Le symbole est une contrainte de sous-ensemble

Les qualificateurs.

Prenons un exemple

Les qualificateurs UML.

Traduction : dans un hôtel, il y a des chambres, qui portent entre-autre un numéro d'étage comme attribut.

Le qualificateur permet de compter les chambres par étage : pour un numéro d'étage, il y a Y chambres.

Dans NIAM, il vaut mieux créer un concept à la place d'un attribut chaque fois que l'on doit utiliser un identifiant, comme ici le numéro. Le schéma NIAM correspondant à cet exemple comportera donc 3 concepts (hôtel, chambre et étage), et deux idées. Le schéma est moins concis, mais gagne en clarté.

C'est d'ailleurs vrai aussi pour UML.

  1. UML : Unified Modeling Language : méthode de spécification formelle résultat d'une synthèse entre les trois méthodes OMT, Booch et OOSE.

  2. méta-modèle

    Ensemble des règles syntaxiques du langage formel de description d'un modèle (conceptuel).

  3. OMT : Object Modeling Technique : Méthode de specification formelle de James Rumbaugh.

  4. OOSE : Object Oriented Software Engineering : méthode de spécification formelle de Ivar Jacobson.

  5. Rumbaugh James : Auteur de méthodes de spécification formelle, co-auteur de la méthode UML.

  6. Booch Grady : Auteur de méthodes de spécification formelle, qui a donné son nom à cette méthode. Co-auteur de la méthode UML.

  7. Jacobson Ivar : Auteur de méthodes de spécification formelle, inventeur des « case-use », co-auteur de la méthode UML.

  8. granulométrie

    Finesse d'observation des éléments du modèle.conceptuel statique ou dynamique.

  9. acteur

    Utilisateur d'un système d'information, mais qui peut aussi être modélisé comme un objet dans un modèle conceptuel

  10. use case

    Cas d'utilisation, en français : liste des actions à exécuter par le système d'information, imaginées par les acteurs pour définir une fonction.

  11. Classe

    Dans un LOO, et dans les IFC, une classe regroupe des objets de même type, possédant des propriétés et un comportement semblable.

  12. attribut

    Champs — ou données — décrivant la structure interne d'un objet, dans le contexte de la programmation orientée objet.

  13. concept

    Dans un modèle conceptuel, c'est une classe (unique) d'objets pertinente pour décrire le système d'information et son organisation sémantique.

  14. rôle

    En spécification formelle, et surtout dans NIAM, un rôle formalise l'expression d'une relation orientée entre deux concepts.

  15. idée

    Terme utilisé dans la méthode de spécification NIAM : information mettant en jeu une seule relation (ensembliste) entre deux concepts. Le modèle conceptuel est un ensemble d'idées mises en relations.

  16. contrainte d'unicité

    Indique que dans une relation orientée les objets de l'ensemble de départ ne sont liès qu'à un seul objet de l'ensemble d'arrivée.

  17. Totalité

    Indique que dans une relation orientée tous les objets de l'ensemble de départ sont concernés. Se traduit par "Tout objet" ou "Chaque objet".

  18. Héritage

    Dans un LOO, et dans les IFC, mécanisme qui permet à des objets d'une sous-classe de bénéficier des propriétés des classes "parents" ou sur-classes.

  19. contrainte

    En spécification formelle, une contrainte s'applique pour filtrer la mise en relation entre les objets des deux concepts en présence.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)