Examen CAR 2 Heures Tout documents autorisés le 17 Novembre 2005



Documents pareils
Ingénierie des Modèles. Méta-modélisation

Générer du code à partir d une description de haut niveau

MDA (Model Driven Architecture) principes et états de l art.

Intégration d un ERP guidée par les modèles

L approche Model-Driven Architecture, crédible pour développer un progiciel de

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

THESE. DOCTORAT EN SCIENCES APPLIQUEES Spécialité : Informatique

Projet Active Object

Meta Object Facility. Plan

Une architecture pour les transformations de modèles et la restructuration de modèles uml

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

En vue de l obtention du. Discipline : Informatique. Présentée et soutenue par Mohamed HADJ KACEM. Le Jeudi 13 Novembre 2008

Etat de l art sur le développement logiciel dirigé par les modèles.

Méthodologies de développement de logiciels de gestion

Eclipse et ses plugins de modélisation (EMF GEF GMF). Entrée en matière. par. Jacques Barzic. Avertissement

M1 : Ingénierie du Logiciel

Chapitre VI- La validation de la composition.

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Vue d ensemble. < SISE > Vue d'ensemble

MEMOIRE. Présenté à L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTÈRE INFORMATIQUE NTSID. Par.

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Architecture Reconfigurable Hétérogène à Gestion Hiérarchique Distribuée pour la Reconfiguration et la Prise de Décision

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

IFT2255 : Génie logiciel

Démarche dirigée par les modèles pour la conception d entrepôts de données multidimensionnelles. F.Atigui, F.Ravat, O.Teste, G.

Nom de l application

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Développement d un interpréteur OCL pour une machine virtuelle UML.

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

UML est-il soluble dans les méthodes agiles?

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

GOL502 Industries de services

OCL - Object Constraint Language

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Spécification et transformation de langages de points de vue des systèmes répartis ouverts

Patrons de Conception (Design Patterns)

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC THÈSE PRÉSENTÉE À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

Refonte front-office / back-office - Architecture & Conception -

Elaboration de processus de développements logiciels spécifiques et orientés modèles : application aux systèmes à évenements discrets

Chapitre 2. Eléments pour comprendre un énoncé

Conception fonctionnelle de services d entreprise fondée sur l alignement entre cœur de métier et système d information

Modelio by Modeliosoft

Conception, architecture et urbanisation des systèmes d information

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Analyse,, Conception des Systèmes Informatiques

Cours en ligne Développement Java pour le web

Université de Bangui. Modélisons en UML

DES SYSTÈMES D INFORMATION

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Université Mohamed Khider Biskra. Faculté des sciences exactes et des sciences de la nature et de la vie. Département d Informatique.

Gé nié Logiciél Livré Blanc

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Information utiles. webpage : Google+ : digiusto/

Introduction du test dans la modélisation par aspects

INGÉNIERIE DIRIGÉE PAR LES MODÈLES ET COMPOSANTS SENSIBLES AU CONTEXTE

MASTER 2 PROFESSIONNEL. Génie Logiciel, Logiciels Répartis et Embarqués

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Alfstore workflow framework Spécification technique

Intégration de l interface graphique de Ptidej dans Eclipse

Conception des bases de données : Modèle Entité-Association

Manuel d'installation de GESLAB Client Lourd

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

DEVIS D ÉVALUATION. Efficacité du système d assurance qualité du Collège Shawinigan. Automne 2013

CC30 Certificat de compétence Conception, développement et animation de sites Web

Systèmes et réseaux d information et de communication

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Cours de Génie Logiciel

Diagrammes de Package, de déploiement et de composants UML

Approche dirigée par les modèles pour la génération d une chorégraphie distribuée à partir d un processus d orchestration BPMN

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Le Guide Pratique des Processus Métiers

Catalogue de Pattern pour le CSCW

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

L'année méthodologique internationale

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Formation : Modélisation avec UML 2.0 et Mise en pratique

Les nouvelles architectures des SI : Etat de l Art

THÈSE. Présentée à. L Université Paris VIII. Pour obtenir le grade de DOCTEUR DE L UNIVERSITE DE PARIS VIII. Spécialité INFORMATIQUE

Discussion et implémentation dans un dispositif de scénarisation, d une évaluation diagnostique de l apprenant

3. UML - Unified Modeling Language Diagrammes statiques

Object Management Group

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

MEGA ITSM Accelerator. Guide de Démarrage

Traduction des Langages : Le Compilateur Micro Java

A. Architecture du serveur Tomcat 6

Théodore THLIVITIS Architecture du SI, Conseil & Management

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Objecteering. La convergence SOA, UML2, BPMN, EA, pour le développement guidé par le modèle.

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur

B-web V4 MANUEL D UTILISATION. Espace de travail. Clear2Pay Belgium SA B-web V4 Manuel d Utilisation: Espace de travail

Transcription:

Examen CAR 2 Heures Tout documents autorisés le 17 Novembre 2005 Rappel : Tout méta-modèle ou profil doit être commenté! 1 Question de compréhension du cours barème indicatif : 5 points Q : Lorsque l on veut suivre une approche MDA, est-il obligatoire de faire des modèles UML (expliquez)? Non, cela n est pas obligatoire. MDA préconise l élaboration de CIM, de PIM et de PSM. Il n est en aucun cas obligatoire d utiliser UML pour construire l un de ces modèles. On peut parfaitement suivre une approche MDA sans faire de modèle UML! Q : Expliquez les différences entre profils UML et métamodèles MOF? Profils et métamodèle permettent de définir de nouveaux formalismes. La grosse différence entre un profil UML et un métamodèle MOF est que le profil UML n est qu une extension au métamodèle UML. Un modèle profilé reste toujours un modèle UML. Par contre, un métamodèle MOF peut n avoir aucun lien avec le métamodèle UML. Les modèles instances des métamodèles MOF ne sont donc totalement indépendants des modèles UML. Concernant ces deux technologies, il est actuellement difficile de dire aujourd hui si une permet plus de chose qu une autre (l exemple du formalisme de représentation des réseaux est illustratif car il a été traité avec les profils et peut être traité avec les métamodèles). Q : Pourquoi peut-on dire que le MOF est son propre métamodèle (expliquez très précisément)? Si l on veut faire le métamodèle du MOF on tombe sur le MOF lui-même. En effet, tous les concepts du MOF (class, opération attribut, package, ) permettent de construire des «diagrammes de classes». Or, le MOF est lui-même représenté par un diagramme de classe. Donc, le MOF peut s auto définir, il est donc son propre métamodèle! Q : Est-il possible de faire des PIM avec UML? Est-il possible de faire des PSM avec UML? (expliquez précisément chacun des cas) Un modèle UML est, par nature, indépendant d une plate-forme d exécution. Il est donc tout à fait naturel de faire des PIM avec UML. Les profils UML permettent d adapter UML à un domaine particulier. Il est alors possible de construire un profil permettant d adapter UML à une plate-forme d exécution (EJB ou Java par exemple). Ainsi, les modèles profilés selon ces profils seront dépendants d une plateforme d exécution. Ils seront des PSM.

Q : Quel est l intérêt de modéliser une transformation de modèles avec Q/V/T alors que l on peut la coder directement en Java avec EMF? Actuellement, le seul intérêt est de rendre la transformation pérenne. En effet, celle-ci sera exprimée dans un langage standard (QVT). Il n est pas encore réaliste de dire que l intérêt sera de rendre la transformation productive (il n existe pas encore de moteur de transformation QVT). 2 Gestion de Projet barème indicatif : 15 points Métamodélisation On considère le méta-modèle de gestion de projet suivant : Projet 0..1 0..1 intervenant * * suivante * tache Tache description : string * tache Intervenant Il définit qu un projet, identifié par un nom, contient plusieurs intervenants et plusieurs tâches. Une tâche est définie par un nom et une description et peut désigner plusieurs tâches suivantes. Un intervenant est défini par un nom et est assigné à une ou plusieurs tâches. Soit le projet suivant (3 tâches et 2 intervenants): Rédaction du sujet d examen de CAR de l année 2005/2006 Tâche1 : Rédaction v0 Rédiger première version du sujet Tâche2 : Relecture 1 Relire la première version du sujet Xavier Tâche3 : Rédaction 2 Ecrire la deuxième version du sujet Marie-Pierre

Q1 : Nous voulons représenter ce projet sous forme d un modèle conforme au méta-modèle de gestion de projet. Décrivez, les instances du métamodèle de gestion de projet composant ce modèle? Ce modèle est composé de : +Une instance de la métaclasse projet. Celle-ci a pour nom : «Rédaction du sujet d examen de CAR de l année 2005/2006». Cette instance contient toutes les instances des taches et des intervenants décrites ci-après. +Deux instances de la métaclasse intervenant nommée respectivement Xavier et Marie-Pierre +Trois instance de la métaclasse tache nommées respectivement «Tâche1 : Rédaction v0», «Tâche2 : Relecture 1» et «Tâche3 : Rédaction 2». La tache 1 a pour suivant la tache 2 qui a pour suivant la tache 3. L intervenant Xavier est lié à la tache 1 et à la tache 2. L intervenant Marie-Pierre est lié à la tache 2 et à la tache 3. On souhaite maintenant distinguer l intervenant humain de l intervenant machine. En effet, certaines tâches d un projet peuvent être entièrement réalisées par un intervenant machine alors que d autres nécessitent une intervention humaine. Q2 : Modifier le méta-modèle pour introduire cette notion. Intervenant Humain Machine On souhaite maintenant préciser que les tâches qui sont associées aux intervenants machines sont des programmes spécifiés en UML. Plus précisément, ces programmes sont spécifiés par un package UML qui contient tous les éléments UML nécessaires (classes, cas d utilisation, instances, ). Q3 : Modifier le méta-modèle pour préciser le fait qu une tâche, associée à un intervenant qui est une machine, est spécifiée à l aide d un package UML.

Tache description : string UML Package TacheMachine Class Operation Avec cette solution, il faudrait ajouter une contrainte permettant de préciser que les taches associées aux intervenants machine sont obligatoirement des TacheMachine! Transformation Afin de suivre automatiquement le déroulement d un projet, il a été décidé de transformer un projet en une classe UML. Le nom de cette classe correspond au nom du projet Cette classe possède toujours un unique attribut, nommé état, qui permet de connaître l état actuel du projet. Cette classe possède toujours une opération permettant d obtenir la valeur de l attribut «état». Cette classe possède deux opérations par tâche du projet. Une opération pour informer du démarrage de la tâche et une pour informer la fin de la tache. Le code de ces opérations est vraiment sommaire. Il permet simplement d affecter à l attribut «état» une valeur permettant de connaître la dernière action réalisée (démarrage ou fin de la tâche numéro x). Pour le projet donné en exemple, la classe obtenue serait la suivante : Rédaction du sujet d'examen de CAR de l'année 2005/2006 +etat : string +obteniretatcourant():string +démarrertache1() +démarrertache2() +démarrertache3() +finirtache1() +finirtache2() +finirtache3()

Le code de l opération démarrertâche1() serait par exemple : etat = «Tâche 1 démarrée». Ainsi, grâce à cette classe, il serait possible de suivre automatiquement le déroulement du projet «Rédaction du sujet d examen de CAR de l année 2005/2006»! Q4 : Définissez les règles de cette transformation. L objet de la question est de faire apparaître les règles de la transformation (entre les métaclasses des métamodèles). Il fallait aussi montrer que cette transformation n est pas complètement possible car UML ne peut pas contenir du code! Règles : R1 : Pour une instance de la métaclasse Projet construire une instance de la métaclasse UML::Class. Le nom de la classe correspond au nom du projet. R2 : Pour une classe UML construite ajouter un attribut nommé état dont le type est string R3 : Pour une instance de la métaclasse Tache construire deux instances de la métaclasse UML::Operation et faire en sorte que ces opérations appartiennent à la classe construite à partir du projet contenant la tache (cf. R1). Le nom des opérations correspond au nom de la tache précédé respectivement de «demarrer» et «finir». Note, il n est pas possible d ajouter le corps des opérations (méthode) dans le modèle UML à moins d utiliser un profil tel que le profil UML pour Java. Néanmoins, cela violerait l objectif de la transformation! Q5 : Expliquez comment vous pouvez utiliser EMF pour coder cette transformation. Donnez brièvement les classes et les méthodes qu il faudrait développer. L objectif de cette question était de mesurer la compréhension du framework EMF. Pour coder cette transformation, il faut : Générer les API du métamodèle de gestion de projet Utiliser les API du métamodèle UML () Construire un projet Java qui utilise les deux API précédentes. Ce projet contiendra une classe «TranformProjet2UML». Cette classe contiendra une opération par règles. La signature de l opération contiendra deux paramètres : Le paramètre d entrée typé selon l API générée à partir du métamodèle de gestion de projet Le paramètre de sortie typé selon l API UML2 Exemple, pour la R1, public UML2.Class applyr1(projet pr) {} Cette classe contiendra une opération permettant de démarrer la transformation. Cette opération permettra de lire un fichier XMI contenant le modèle d entrée et sauvegardera le modèle de sortie dans un autre fichier XMI. Dans le cas d une tâche exécutée par une machine, le code de l opération associée au démarrage de la tâche devrait contenir, en plus de l affectation de l attribut «état», un appel vers le programme correspondant à la tâche. Ainsi, ce programme serait automatiquement exécuté.

Q6 : Comment modifier les métamodèles et la transformation pour faire en sorte que cela soit possible? Cette question est très délicate. Pour pouvoir songer à faire cela, il faut pouvoir identifier la classe UML contenant l opération «main» du programme. Il faut donc que la TacheMachine référence toutes ces informations. UML spécification Package TacheMachine mainclass Class mainoperation Operation De plus, il reste toujours la limitation de UML qui ne peut pas contenir de ligne de code. Synthèse : Q7 : Cette utilisation des techniques de métamodélisation est-elle cohérente avec l approche MDA? Ce que nous venons de faire ne suit pas les principes de l approche MDA. En effet, il n existe pas de CIM, de PIM et de PSM. Pour autant, nous avons utiliser toutes les technologies supports au MDA (modélisation et transformation de modèles). Q8 : Est-il possible de parvenir au même résultat (modélisation de projet, génération de code, ) en utilisant uniquement le mécanisme de profil UML? Pour pouvoir répondre par l affirmative à cette question, il fallait présenter un profil UML permettant de modéliser des projets. Cela est faisable car cela ne nécessite que peu de stéréotypes et de tagged value. Le standard SPEM définit un tel profil Pour pouvoir répondre par la négative à cette question, il fallait prouver qu il n existe pas de profil permettant de modéliser des projets. Chose fausse car cela a déjà été dans un standard OMG, le standard SPEM.