Rational Modeling Language - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Les graphes

Les graphes se reposent en partie sur les concepts d'UML. Ce n'est pas une copie des diagrammes d'UML mais une reconstruction, brique par brique de façon rationnelle (d'où le terme Rational) les dépendances entre arc et sommet.

Il faut prendre, a minima, deux variables libres pour constituer un graphe. L'ordonnée représentant les sommets et l'abscisse les arcs. Par exemple, les graphes suivants :

  • un graphe G1 (état, temps)

Assis ---10 secondes--→ Debout ---20 secondes--→ Assis

  • un graphe G2 (état, prédicat)

Assis ---seLever()--→ Debout ---sassoir()--→ Assis

  • un graphe G3 (prédicat, temps)

seLever() ---10 secondes--→ sassoir() ---20 secondes--→ seLever()

  • un graphe G4 (objet, temps)

Homme ---10 secondes--→ Femme ---20 secondes--→ Homme

  • un graphe G5 (classe, prédicat)

Chapeau ---tranformer()--→ Chapeau de paille ---tranformer()--→ Casquette

Un des points à aborder est la dualité des graphes, comme on peut le voir dans le tableau ci-avant,

Par exemple, les graphes suivants :

  • un graphe G1 (état, temps)

Assis ---10 secondes--→ Debout ---20 secondes--→ Assis

  • G1' (temps, état)

10 secondes ---Assis--→ 20 secondes ---Debout--→ .

Récursivité

Notion de récursivité apparaît dans le fait qu'un graphe est constitué :

- d'un ensemble d'arcs

- d'un ensemble de sommets

Un sommet est soit une variable libre soit un graphe. Un arc est soit une variable libre soit un graphe.

Pour les prédicats :

Par exemple, le graphe G1 "ouvrir la porte" est composé de la manière suivante : (les états et les arcs ne sont pas forcément nommés)

--- chercher clé -→ . --- insérer clé dans la serrure --→ . --- tourner clé --→

G2 "rentrer chez soi"

--- prendre métro ---→ . --- arriver maison --→ . --- ouvrir porte --→ . --- entrer maison --→

Pour les classes :

chien ---estun() --→ animal

labrador --estun() -→ chien

Portée des noms

Le nom des prédicats et des classes est lié à la couche d'abstraction. Le RML n'a pas de grammaire ambiguë. En Java comme en UML pour les classes, l'ambiguïté est levée grâce à la notion de package (ou paquetage). Chaque package à son propre ensemble de nom. Les noms des classes sont préfixés par le nom de package.

Pour les couches d'abstraction il faut bien

Pour les prédicats en langage orienté objet, l'espace des noms est défini par la classe sur laquelle le prédicat porte. Un prédicat ne peut exister seul alors qu'une classe oui :

Classe1 c; // existe

Classe2.prédicat1(); // existe

prédicat1(); // n'existe pas

Pour pallier l'impossibilité de créer un prédicat seul, on passe par une interface, qui est une classe ne contenant que des prédicats.

Un nom hors de son contexte peut avoir plusieurs sens.

Exemple : un prédicat dans deux couches d'abstraction

predicat1 : définition 1 (dans la couche 1)

prédicat1 engendre 2 méthodes méthode1 (orienté temps de traitement) et méthode2 (orienté espace alloué).

méthode1 et méthode2 sont équivalentes.

predicat1 : définition 2 (dans la couche 2)

prédicat1 engendre 2 méthodes méthode3 (orienté temps de traitement) et méthode4 (orienté espace alloué).

méthode3 et méthode4 sont équivalentes.

méthode1 et méthode3 ne sont pas équivalentes.

méthode2 et méthode4 ne sont pas équivalentes.

Page générée en 0.127 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales - Signaler un contenu
Version anglaise | Version allemande | Version espagnole | Version portugaise