Génie Informatique et Statistique

Semestre 9
  UE 9-2 - Options GIS (115200)
    Options de département (115030)
      Ingénieries Logicielles (115031)

Enseignant(s) : Olivier Caron, Bernard Carré et Anne Etien

ECTS : 1.75


Objectifs à atteindre


« Développer vite et mieux ». Face à ce double objectif, les chaînes de production logicielle que ce soit au niveau des modèles ou au niveau des langages intègrent de nouvelles approches et environnements qui améliorent le développement logiciel. Citons en exemple, l'environnement de développement ouvert Eclipse qui exploite les capacités réflexives et génériques du langage Java pour atteindre cet objectif.
Cantonnés à l'origine dans un rôle de spécification de systèmes, les modèles logiciels (à la UML) prennent de plus en plus d'importance dans le cycle de développement logiciel. Les modèles sont vérifiables, composables, transformables et peuvent également générer du code. Les techniques de l'Ingénierie Dirigée par les Modèles (IDM) et les ateliers qui les standardisent deviennent les outils privilégiés de l'ingénieur en informatique.
Ce module a pour objectif de montrer les multiples bénéfices de l'exploitation des modèles et des capacités des langages dans des environnement ouverts durant les différentes étapes d'un développement logiciel : capitalisation des modèles d'applications (indépendamment des technologies), amélioration de la qualité du code, amélioration de la productivité,...


Programme détaillé


puce Catégories logicielles: bibliothèques, frameworks, patrons et modèles de conception, architectures à méta-niveaux (MDA, Model Driven Architectures), architectures à plugins (Eclipse), ...
puce Apports des techniques de programmation générique, méta-programmation et programmation réflexive, programmation par annotations et par aspects
puce Ingénierie Dirigée par les modèles: de la spécification à l'exécution des modèles en passant par la vérification, l'application de modèles (patrons, templates), la transformation de modèles, la génération de code.
puce Techniques de méta-modélisation: méta-modèle d'UML, MOF (Méta-Object Facility), OCL, conception de méta-modèles, profils UML (méta-modèles légers)
puce Techniques de l'IDM : transformations, raffinements, transformations modèle vers modèle, modèles vers code (génération), PIM (Platform Independent Models: modèles métiers) vers PSM (Platform Specific Models ou modèles technologiques: Java, EJB, SQL, ...)
Les séances de T.P. illustrent ce cours par le développement progressif et guidé d'une chaîne complète automatisée d'ingénierie logicielle à partir d'une modélisation UML vers plusieurs cibles technologiques ( UML -> SGBD, UML vers EJB)
Elles s'appuient sur les technologies : UML, Java, l'environnement ECLIPSE et ses nombreux plugins ou extensions (EMF, Papyrus, ...)


Pré-requis


Modélisation UML, Programmation Java


Volume horaire


Total : 25h
Cours : 12h
TP : 12h
DS : 1h



Bibliographie


puce MDA en action, Ingénierie logicielle guidée par les modèles, Xavier Blanc, Editions Eyrolles
puce Ingénierie dirigée par les modèles, J.M. Favre, J. Estublier, Mireille Blay-Fornarino, Hermes lavoisier