Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Architecture logicielle
  3. Ingénierie pilotée par les modèles
Extrait - Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique (2e édition)
Extraits du livre
Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique (2e édition) Revenir à la page d'achat du livre

Ingénierie pilotée par les modèles

Sémantique introductive

« Je réduis le geste à l’effet », Brancusi.

En guise de préliminaires, et afin d’échafauder notre propos sur des bases sémantiques solides, il est bien naturel d’entamer cet ouvrage par une tentative de définition. Le thème principal étant l’architecture, il n’est pas inutile de faire le point sur la signification qu’on prêtera à ce terme. À bien y réfléchir, ce n’est pas chose si facile, c’est même l’objectif profond de ce livre. Dans ce simple mot résident à la fois l’histoire de la construction bâtie, dans tous les domaines humains, et la complexité des systèmes informatiques modernes. Il suffit de vouloir lui opposer le mot design pour se confronter aux premières difficultés sémiotiques. Nous allons dans un premier temps confronter leurs définitions. Bien que le parallèle avec l’industrie ou le bâtiment ne tienne pas longtemps quand on parle d’univers numériques, il est très instructif d’évoquer l’acception courante de ces deux termes.

Ce qui paraît commun à tous les domaines d’application, c’est que le design est une activité dont les composantes principales sont la créativité et l’esthétique. Il apparaît aussi que les phases de design précèdent toujours celles d’architecture. Enfin, les notions d’usage, de quotidien et d’ergonomie sont intimement fondatrices de la discipline, car le design est considéré comme un art appliqué, voire utilitaire. Les deux frères ennemis que sont l’esthétique et la technique sont au cœur de nombreux débats sur la légitimité du design. Dans une belle architecture, la technique doit se faire oublier au profit de l’esthétique. L’esthétique constituera l’étape finale de notre voyage au cœur des architectures numériques. Le sujet étant suffisamment...

Architecture logicielle

L’architecture est la structure générale d’un système qui peut contenir des sous-systèmes qui s’interfacent avec d’autres sous-systèmes. L’architecture logicielle est la structure de haut niveau d’un système logiciel. L’architecture considère l’évolutivité, la sécurité et la portabilité du système. En toute logique, l’implémentation devrait suivre l’architecture. Au niveau architectural, les détails d’implémentation sont cachés. L’architecture doit se placer à un niveau d’abstraction suffisamment haut pour que le système puisse être vu comme un tout. Elle doit aussi être le support des fonctionnalités du système, ainsi elle doit bien prendre en compte le comportement dynamique du système.

L’architecture doit aussi prendre en compte les capacités du système, autrement dit ses exigences non fonctionnelles telles que sa performance, sa flexibilité, sa maintenabilité, sa sécurité…

1. Architecte

Le rôle des architectes est de visualiser le comportement du système et de créer ses plans. Ils définissent la façon dont les éléments du système travaillent ensemble et font la distinction entre exigences fonctionnelles et non fonctionnelles. Ils sont responsables de l’intégration des exigences non fonctionnelles dans le système.

Le respect de ces exigences provoquera sans doute des conflits et donnera donc lieu à des arbitrages. C’est l’une des fonctions essentielles de l’architecte.

2. Points clés d’une architecture

Dans la plupart des projets, les architectes sont des membres de l’équipe de développement. Sur les gros projets, ils travaillent conjointement avec les chefs de projet, les experts métier, les développeurs, les testeurs et les équipes de qualification et de gestion de configuration. Les architectes sont responsables de l’interaction avec les clients, les bêta-testeurs et les utilisateurs finaux pour s’assurer que les exigences sont bien remplies.

Un architecte n’est pas un designer. Nous l’avons vu, la différence clé entre architecture...

Architecture pilotée par les modèles (MDA)

L’architecture pilotée par les modèles est un cadre de travail pour le développement logiciel défini par l’OMG (Object Management Group). L’accent est mis sur l’importance des modèles dans les processus de développement. Le développement du système est assujetti à la modélisation du système.

L’objectif est de maîtriser la complexité en scindant les modèles en deux parties. On élabore d’un côté le modèle métier indépendant de la plateforme (PIM) et de l’autre le modèle spécifique à la plateforme (PSM). Toute la difficulté réside dans la transformation du modèle PIM vers le modèle PSM via des outils automatisés. Ce qui permet sur le papier de s’abstraire des contraintes technologiques pour se concentrer sur le design de composants réutilisables quelle que soit la plateforme. Cela peut avoir son utilité dans une approche orientée services (SOA) dans laquelle on essaye de mettre en place une démarche d’architecture d’entreprise et de s’affranchir de l’hétérogénéité des applicatifs.

L’approche MDA (Model Driven Architecture) est justifiée par la rationalisation des investissements technologiques pris par la direction des systèmes d’information (DSI) et la lutte contre l’obsolescence. Pour s’éviter au maximum d’être pris en otage par une technologie, on établit des modèles qui permettront de réduire les coûts d’une éventuelle transition vers un autre support.

1. Fondations

L’approche MDA est bâtie sur quatre pylônes : un standard appelé Meta-Object Facility (MOF) qu’on peut exprimer au travers d’un format d’échange de métadonnées (XMI), un langage de modélisation unifié et multi-usage (UML) et un langage de contraintes (OCL) qu’on peut appliquer à l’UML ou au MOF.

a. MOF

À l’origine, pour définir l’UML, lui-même un langage de définition de modèles, il fallait une architecture de méta-modélisation. Voici donc pourquoi MOF est apparu...