Merise / UML

Introduction

Pour s'adapter aux nouvelles technologies logicielles, notamment la venue des langages orientés objets et du langage UML[1], la méthode Merise a dû s'enrichir et évoluer.

Exemple :

Une maison de santé reçoit des patients, deux types de personnel sont salariés : les médecins qui réalisent les consultations et les infirmiers administrent les soins.

Les médecins ont une spécialisation (médecin du sport, gynécologue,...) et un tarif à l'acte.

Les infirmiers ont des primes.

Les patients sont juste référencés par leur numéro de sécurité sociale.

Imaginons le MCD [2]suivant:

MCD d'une maison de santé

Une autre représentation du MCD [2]:

Une autre représentation du MCD

Ces deux solutions, correctes, présentent des inconvénients structurels.

Si nous regardons le premier modèle conceptuel, nous pouvons voir qu'il y a des attributs dupliqués entre les deux entités médecins et infirmiers (le nom, le prénom, l'adresse...).

Si nous étudions le deuxième modèle conceptuel, nous nous rendons compte que certaines rubriques seront vides :

  • Spécialisation et tarif pour les infirmiers (elle concerne les médecins).

  • Prime pour les médecins.

Pour résoudre ces problèmes, nous allons utiliser l'héritage.

L'héritage

Le principe global de l'héritage est de factoriser les propriétés identiques dans une entité commune. Cette entité commune est aussi nommée entité générique ou sur type d'entité.

Les propriétés spécifiques seront contenues dans une entité spécialisée nommée aussi sous type.

Chaque sous type hérite des propriétés et des associations du sur type. La relation qui fait correspondre un sous type à son sur type est une généralisation. La relation inverse est une spécialisation.

Héritage

Le MLDR[3] de cet exemple de l'héritage :

  • Employé(NumEmployes, Nom, Prenom, Adresse, CodePostal, Ville, Telephone)

  • Medecins(#NumEmployes, Specialisation, Tarif)

  • Infirmiers(#NumEmployes, Prime)

  • Patient(NumSecu)

  • Consulter(#NumEmployes, #NumSecu)

  • Soigner(#NumEmployes, #NumSecu)

L'identifiant de Médecins et d'Infirmiers est celui d'Employés : les entités spécialisées héritant des propriétés de l'entité générique, on ne fait pas apparaître l'identifiant des entités spécialisées.

La méthode MERISE

Merise repose sur quelques principes fondamentaux :

Merise est une méthode d'analyse

  • L'analyse est le moyen permettant de faire évoluer les systèmes d'information (mise en évidence de nouveaux besoins en informations, amélioration des procédures, des traitements...).

  • L'analyse du SI repose sur la modélisation. Un modèle est une représentation simplifiée de la réalité : on ne retient que les éléments utiles et nécessaires au système d'information.

  • Il existe plusieurs méthodes de modélisation: Merise, UML [1]...

  • MERISE permettait d'analyser les données et les traitements selon le MCD[2], MLD[4], MPD[5]: consiste à implémenter le modèle dans le système de gestion de base de données, c'est-à-dire le traduire dans un langage de définition de données. )

La séparation des données et des traitements

La méthode Merise est caractérisée par une approche conjointe des données et des traitements qui est formalisée par des modèles spécifiques. Le côté statique du système est décrit par les modèles de données tandis que le côté dynamique est mis en œuvre par les modèles de traitement qui met en lumière les traitements effectués sur les données c'est-à-dire les opérations qui sont réalisées en fonction d'événements

Une approche qui part du général vers le particulier

La méthode Merise au travers de ses modèles partait d'une vision globale du système d'information qui était affinée au fur et à mesure de la progression dans la réalisation de la méthode.

Le langage de modélisation UML

UML[1] « langage de modélisation unifié ») est un métalangage de modélisation, il a été normalisé en 1997 par l'OMG (Object Management Group). Son but est de formaliser les concepts orientés objet au travers des diagrammes.

Les premières versions d'UML[1] proposaient neuf diagrammes spécifiques :

  • Le diagramme de cas d'utilisation qui représente les relations entre les acteurs et les fonctionnalités du système.

Diagramme de cas d'utilisation
  • Le diagramme de classes est un ensemble d'éléments qui montre la structure du modèle étudié.

Diagramme de classe
  • Le diagramme d'objets (objet : instance d'une classe) représente les objets et leurs interdépendances.

Diagramme d'objet
  • Le diagramme d'états/transitions représente le cycle de vie des objets générés par une classe.

Diagramme d'état/transition
  • Le diagramme de composants détaille les éléments logiciels (exécutables, fichiers...) et leurs dépendances.

Diagramme de composants
  • Le diagramme de déploiement montre la répartition physique des éléments matériels du système (processeurs, périphériques) et leurs connexions.

Diagramme de déploiement
  • Le diagramme de séquence détaille les messages échangés entre les acteurs et le système selon un ordre chronologique.

Diagramme de séquence
  • Le diagramme de collaboration qui représente les messages échangés entre les objets.

Diagramme de collaboration
  • Le diagramme d'activités est une variante du diagramme états/transition qui représente le déclenchement d'évènements selon certains états du système.

Diagramme d'activités

Analogie Merise/UML

1-Modèle de contexte (diagramme des flux) -Diagramme des cas d'utilisation

  • Le modèle de contexte (ou diagramme des flux) de Merise est souvent utilisé au démarrage d'un projet car il permet de définir le périmètre du système d'information. Il utilise la notion d'acteurs internes et d'acteurs externes. Il est tentant de rapprocher le diagramme des flux du diagramme des cas d'utilisation

  • Le diagramme des cas d'utilisation Aussi nommé Use Case, ce diagramme peut permettre de représenter les relations existantes entre les acteurs et le domaine étudié.

ExempleLocation des véhicules

Diagramme des flux MERISE

Diagramme de flux

Diagramme des cas d'utilisation UML[1]

Diagramme de cas d'utilisation

Ces diagrammes montrent le passage de la méthode MERISE à la modélisation en utilisant UML[1]

2-Modèle Conceptuel des Données/Diagramme de classes

Le MCD[2] et le diagramme de classes partagent beaucoup de points communs. Cependant, au niveau du processus d'analyse, le diagramme de classes se rapproche plus du modèle logique des données.

Le langage UML[1] pour représenter une base de données ne passe pas d'un état correspondant à un MCD[2] à un MLD[4]. Il faut donc à l'analyste une bonne approche ou vision de la base de données pour la représenter sans faille en langage UML[1]. Le découpage MCD[2], MLD[4]apporte plus de sécurité, à ce niveau là, qu'UML[1].

Voici quelques éléments de comparaison entre Merise et UML.

  • Entité →Classe

  • Attributs →Propriétés

  • Identifiant →Propriété éventuellement en clé primaire

  • Les cardinalités →s'expriment différemment dans le diagramme de classes. Elles sont inversées par rapport à la méthode Merise. Voici un tableau donnant des éléments de comparaison.

    Merise

    UML

    0,1

    0..1

    1,1

    1

    0,n

    0..* ou *

    1,n

    1..*

Voici au travers de quelques exemples les différences entre Merise et UML[1].

MERISE/UML
  • Association non porteuse

Merise/UML : Association non porteuse
  • Association porteuse

MERISE/UML : Association porteuse
  • Association ternaires non porteuse

MERISE/UML : Associations ternaires non porteuse
  • Association ternaires porteuse

MERISE/UML :Associations ternaires porteuse
MERISE/UML
  • La réflexivité

Représentation de la réflexivité
  • L'héritage

L'héritage MERISE
  • La contrainte de partition

La contrainte de partition : MERISE
La contrainte de partition : UML
  • L'exclusion

L'exclusion : MERISE
L'exclusion : UML

Exercices : Série de TD 06 et 07

Voici une série d'exercices comprenant des tâches de modélisation à la fois en utilisant MERISE et UML.