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 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 ». Par ailleurs l'examen de la méthode UML est un prétexte pour aborder de nouveaux concepts.
D'ou vient la méthode UML (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 (Object Modeling Technique), Booch, et OOSE (Object Oriented Software Engineering). Les trois auteurs de ces méthodes ont coopéré à cette synthèse UML :
Rumbaugh James, Booch Grady, Jacobson Ivar.
Synthèse réussie, à constater la rapidité avec laquelle UML 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 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.
Vous trouverez à l'extérieur de cette unité, en fichier complémentaire, un fichier PDF "UML_NIAM.pdf" des différences de détails entre UML et NIAM pour un même aspect.
Le contenu de ce fichier peut être agrandi et imprimé pour vous permettre de mieux visualiser ces informations que ne le permettent les images à l'intérieur de cette page web.
Voici une liste de définitions de termes utilisés dans les images ci dessus :
Acteur
Use case
Classe
Attribut
Concept
Rôles
Idée
Unicité
Totalité
Héritage
Contraintes