Crise du logiciel (1968)?
la construction de logiciels coutait très cher (200 millions de dollars pour fabriquer
OS-360), les délais n'étaient pas respectés (2 ans de retard pour lespremiers
compilateurs Algol 68, ADA),
1- Rappel sur le Génie Logiciel
Génie = utiliser une ingénierie
Ingénierie = production et commercialisation de produits industriels basée sur des
connaissances scientifiques
Le génie logiciel est « l'art » de produire de bons logiciels, au meilleur rapport
qualité/prix
Le génie logiciel est basé sur des méthodologies et des outils qui permettent
d'automatiser partiellement la production de logiciels,
Octobre 2004 : Importantes perturbations du réseau France Telecom pendant 48h
• Novembre 2004 : paralysie totale du réseau Bouygues Telecom pendant une
vingtaine d’heures
Pourquoi une crise logiciel, même âpres l’invention du GL en 1968 ?
La réponse est dans la façon dont on construit un logiciel
Echec du génie logiciel ?Non: mais Cycle de vie est trop long
Solution :Utiliser des outils pour accélérer le développement
Pour accélérer le cycle de vie d’un logiciel on utilise des outils pour accélérer une
étape des étapes de développement (la conception!)
• Exemples:
Des assistants pour les modèles (E/A) , UML
Des générateurs d’interfaces, etc.
E/A • PowerDesigner • MysqlWorkbench UML • Visual C++ • Umbrello • Papyrus
Générateurs d’interfaces • windev
Dans tous les cas : Limitation dans la conception
=> codage?• Un nouveau cycle de vie: refaire la conception et le codage…
• Solution: IDM
Chapitre 1 Pourquoi l’IDM
-Développement standard :conception+programation->programme <-compliments,
évolution(programmeur)
-avec une stratégie modèles : compliments, évolution(programmeur) -> conception et par le
genirateur du code -> programme exe
OMG Analyse des besoins ->( conception-> codage-> test)-> Monde réel
Ou : les conception : Se focaliser sur les modèles
Le codage,le test : Génération automatique du code et du jeux de test
ADM: Architecture Dirigée par les Modèles
• Utiliser les modèles pour la conception (ULM, classes)
• Se focaliser sur la conception et non pas sur le codage
• Générer automatiquement le code Source et le jeux de Test
IDM & ADM
OMG constate l’importance de MDA Et donc elle la rend payante
•Les chercheurs universitaires exigent un partage gratuit des
standards et proposent le terme IDM (MDE) à la place du ADM (MDA)
•IDM est gratuit, est lié à la recherche scientifique. Il par contre non unifié (chaque
équipe de recherche a son propre standard, et ses propres outils)
IDM , MDE : Ingénierie Dirigée par les Modèles
ADM,MDA: Architecture Dirigée par les modèles
Chapitre 2 Modélisation UML
UML (Unified Modeling Language ou "langage de modélisation unifié) est une
notation permettant de modéliser un problème de façon standard.
UML représente un moyen de représenter les composantes d'un
système informatique.
A partir de 1997, UML est une norme de l'OMG, reconnue et utilisée
par de nombreuses entreprises.
UML est un langage semi-formel de modélisation orientée objet
• Modélisation Orientée Objet
modéliser informatiquement des éléments d'une partie du monde réel en
un ensemble d'entités informatiques (objets)
Intérêt d'une méthode objet
• définir le problème à haut niveau sans rentrer dans les spécificités du
langage
• définir un problème de façon graphique
• utiliser les services de l’objet sans rentrer dans le détail de
programmation (Encapsulation)
• Réutilisation du code
Notion d’Objet Une abstraction du monde réel c.-à-d. des données
informatiques regroupant des caractéristiques du monde réel
Notion de Classe • Structure d'un objet, c.-à-d. une déclaration de
l'ensemble des entités qui composeront l’objet
• Un objet est donc "issu" d'une classe, il est l’instance de sa
classe
Chapitre 3 Eclipse
JDT : Le Java Development Tooling
EDI: (workbench) puissant, et rapide à charger
Eclipse est une plate-forme de développement d'applications
– S'exécute sur un grand nombre d'OS
– Langage:
• HTML, Java, C++, PHP, XML...
Chapitre 4
IDM est une discipline récente du génie logiciel
L'IDM est donc une forme d'ingénierie par laquelle tout ou partie d'une application
informatique est engendrée à partir de modèles.
un modèle Il s’agit d’une description d’un système réel ,ou une partie de ce
système.
Un modèle est une description ou une spécification partielle d'un système. c'est une
vue simplifiée d'un système réel.
- Description d'un système existant - Spécification d'un système à construire
La relation entre un système et son modèle est une relation de Représentation
Le méta-modèle est une abstraction d’un modèle.
C’est ensemble de règles qui aident à construire un modèle
n’est pas le modèle du modèle. n’est pas une instance du modèle
• Un modèle UML est conforme au méta modèle UML
• Un fichier XML est conforme à sa DTD
Les niveaux de l’OMG propose 4 niveau
Le MDA définit 2 principaux niveaux de modèles
PIM : Platform Independent Model .modèle métier
Modèle spécifiant une application
indépendamment de la Uniquement spécification de la partie métier d'une
application
PSM : Platform Specific Model. Modèle d’intégration
Modèle spécifiant une application après projection sur une plate-forme
technologique donnée
Raffinement=تحسين
Chapitre 5 Les standards OMG (MDA/MDE)
MOF: Meta Object Facilities , c’est un standard OMG. Il s’agit d’un ensemble de
notations (diagrammes) pour décrire les Méta-Modèles , c’est un meta-meta-
modele
MOF a permet de définir des méta-modèles comme :M-Modèle EMF-Eclipse
Il existe deux versions de MOF:
Essential -MOF : version de base Complete -MOF : version détaillée
MOF et EMF
EMF: Framework de modélisation intégré dans l'atelier de développement Eclipse
(IBM) pour le langage Java
Ecore: est le méta-modèle EMF pour créer des modèles
Ecore est ligné sur Essential-MOF
Une transformation est un ensemble de règles appliquées au modèle source
pour atteindre le modèle cible
Moteur de transformation
• Une règle de transformation définit la manière dont le modèle source est
transformé en un modèle destination. Une règle est constituée d’une
condition et d’un résultat
• La condition est un ensemble de concepts
Les règles
• la vérification de la condition correspond à l’analyse du modèle source de la
transformation
• l’exécution de la règle par le moteur de transformation a lieu pour chaque
ensemble de concepts qui valide la condition
• et la création consiste à générer un ensemble de concepts dans le modèle de
sortie dont les champs sont remplis par les variables affectées durant
l’exécution.
QVT (Query/View/Transformation)] est un standard défini par l'OMG. Il s'agit
d'un langage standardisé pour exprimer des transformations de modèles
Query (Requête) - Filtrer et sélectionner des éléments d’un modèle
View (Vues) - interroger, et voir le modèle ou une partie du modèle
Transformation : transformer le modèle
• QVT-Relation : approche impérative (comme en Prolog ) on vas du sommet
vers le bas
• QVT Core : approche déclarative (comme en C++, Java) : Écrire dans un
langage textuel la transformation, et le résultat est toujours le mème quelque
soit la transformation
• QVT-Operational : Approche hybride : un mélange entre le Relation et le Core
Boîte noire Le mécanisme boîte noire permet de brancher et d'exécuter du
code externe au cours de l'exécution d'une transformation.
• Ce mécanisme permet l'implémentation d'algorithmes complexes dans
n'importe quel langage et permet de réutiliser des bibliothèques existantes.
ATLAS Transformation Language (ATL) est un langage de transformation de
modèles basé sur le QVT-CORE.
IDM , MDE : Ingénierie Dirigée par les Modèles
ADM,MDA: Architecture Dirigée par les modèles
UML: langage de modélisation unifié
JDT : Le Java Development Tooling
EDI: (workbench) puissant, et rapide à charger
PIM : Platform Independent Model
PSM : Platform Specific Model
QVT : Query/View/Transformation
XML : eXtensible Markup Language (langage de balisage
extensible)
OMG : Object Management Group
MOF: Meta Object Facilities
EMF: Framework de modélisation Eclipse
ATL: ATLAS Transformation Language