TP1+2: UML et Génération de code

Documents pareils
Introduction à Eclipse

Projet de développement

Bases de données cours 1

BIRT (Business Intelligence and Reporting Tools)

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

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Compte Rendu d intégration d application

TP1 : Initiation à Java et Eclipse

Installation et prise en main

TD3 - Facturation avec archivage automatisé

Etude de cas : PGE JEE V2

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

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

Bases Java - Eclipse / Netbeans

TP1 : Initiation à Java et Eclipse

Introduction au Génie Logiciel

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

4. SERVICES WEB REST 46

La solution pour gérer vos connaissances techniques et scientifiques

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

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Commentaires du testeur

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Eclipse atelier Java

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

TD/TP 1 Introduction au SDK d Android

Le langage C. Séance n 4

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Environnements de développement (intégrés)

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

Devenez un véritable développeur web en 3 mois!

GEST_INSTANCES APPLICATION DE GESTION DES INSTANCES ET REUNIONS EN EPLE ETABLISSEMENT PUBLIC LOCAL D ENSEIGNEMENT

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

BI2 : Un profil UML pour les Indicateurs Décisionnels

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

[COMPTE RENDU SEMAINE DU 21 AU 27 JANVIER] Client

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

RTDS G3. Emmanuel Gaudin

Institut d Informatique & d Initiative Sociale

Machines virtuelles Cours 1 : Introduction

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

GANTTPROJECT. Julien TENDERO

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

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

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

De quoi avez-vous besoin pour ce manuel?

Environnements et Outils de Développement Cours 1 Introduction

Cours 1 : La compilation

JOnAS Day 5.1. Outils de développements

IFT2255 : Génie logiciel

CATALOGUE FORMATIONS DOMAINE Bases de données

Traduction des Langages : Le Compilateur Micro Java

Normes et description. des ressources continues et données d autorité Analyse de l information Recherche documentaire : méthodes et outils

Documentation Liste des changements apportés

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

Information utiles. webpage : Google+ : digiusto/

D1- L'environnement de travail

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

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

Visual Paradigm Contraintes inter-associations

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

L utilisation du réseau ISTIC / ESIR

Programmation Orientée Objet

Cours en ligne Développement Java pour le web

< Atelier 1 /> Démarrer une application web

«Vous éditez, nous archivons!»

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

Utilisation d Hyperplanning 2011

La mémoire. Un ordinateur. L'octet. Le bit

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Plan du cours. Historique du langage Nouveautés de Java 7

Remote Method Invocation (RMI)

Vérifier la qualité de vos applications logicielle de manière continue

PG208, Projet n 3 : Serveur HTTP évolué

ECLIPSE ET PDT (Php development tools)

Introduction aux Bases de Données Relationnelles Conclusion - 1

ANNEXES. Evaluation de la formation à Polytech Lille Département GIS. Enseignements les plus utiles. Enseignements à renforcer

Préconisations Techniques & Installation de Gestimum ERP

Web Tier : déploiement de servlets

Groupe Eyrolles, 2003, ISBN : X

PROJET AZURE (par Florent Picard, A2011)

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

TP01: Installation de Windows Server 2012

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

TP1 : Initiation à l algorithmique (1 séance)

Data Tier Application avec SQL Server 2008 R2

Bases de données avancées Introduction

Armand PY-PATINEC 2010

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

R00 Installation du logiciel R sous Windows

CLOTURE ET ARCHIVAGE D UN EXERCICE COMPTABLE

Transcription:

Le but de ce TP est d aborder le principe de la génération de code à partir de diagrammes de classe UML. Les objectifs sont les suivants : comprendre le lien entre les diagrammes de classe/diagrammes d objets UML et les langages orientés objets comme Java manipuler concrètement ces correspondances en utilisant des outils de modélisation pour la transformation UML (genmymodel et MagicDraw) et l environnement Eclipse (pour la manipulation du code Java) revisiter les exemples vus en TD comprendre le lien entre diagrammes de classe/diagrammes d objets UML et JPA/les bases de données relationnelles comme SQL comprendre les stratégies de génération de code ainsi que leurs limites ou leurs différences 1 Un diagramme de classe UML simple Figure 1 : diagramme de classe Question #1: Elaborer 3 diagrammes d objet conformes à ce diagramme de classe Nul besoin d éditeur à ce stade : élaborer ces diagrammes sur une feuille. Question #2 : Donner le code Java correspondant à ces 3 diagrammes d objet TP 1

Cette fois ci, nous avons besoin d un éditeur de modélisation. Dans un premier temps nous allons utiliser genmymodel : http://www.genmymodel.com un outil Web, collaboratif développé en France. L inscription est gratuite. Récemment une limite d utilisation (e.g., pas plus de 20 éléments par projet) a été ajoutée, mais cela ne devrait pas être un frein majeur au déroulement du TP 1. Inscrivez-vous en ligne puis créez un nouveau projet Dans ce projet, créer un nouveau diagramme de classe et éditer ce diagramme pour obtenir celui de la Figure 1. Ensuite, générer le code Java correspondant. Vous devez obtenir une archive «zip» de ce code. Nous allons maintenant étudier et exploiter le code Java généré à l aide d Eclipse. Créer un nouveau projet Java (File -> new -> Java project ) Importer (via File -> Import -> File system) dans votre projet le contenu de votre archive «zip». 1 Il sera certainement nécessaire de supprimer des modèles au fur et à mesure ou de créer plusieurs projets TP 2

Vous pouvez maintenant vérifier votre réponse à la Question #2 avec une implémentation 2 Un diagramme de classe UML (bis) Question #3: Réitérer l exercice pour le diagramme de classe suivant (i.e., les deux questions précédentes s appliquent au diagramme de classe de la Figure 2) Question #4 : Elaborer un diagramme d objet dans lequel au moins 3 objets B ont été créés et au moins deux objets Z. Ecrire le code Java correspondant à ce diagramme d objet. Ecrire également le code Java qui implémente la logique de suppression d un objet Z. Figure 2 : un diagramme de classe plus complexe (note : les classes A et C sont abstraites) 3 Des objets aux classes TP 3

Question #5: Elaborer le diagramme d objet équivalent au code Java ci-dessous, ainsi que le diagramme de classe associé. Est-il possible d automatiser la rétro-ingénierie de code Java vers diagramme de classe UML? 4 Transformation UML-Java Question #6: Etudier le code généré dans les questions précédentes puis décrire les règles de transformation qui ont abouti à la génération de ce code à partir du diagramme UML. 5 Transformation UML-SQL, JPA Cette partie aborde quelques notions avancées. Question #7 : Générer le code SQL correspondant au diagramme de classe de la Figure 3. Pourquoi n y a-t-il que deux tables? Question #8 : JPA (pour Java Persistence Architecture) est une API pour faciliter le «mapping» entre les objets Java et les bases de données relationnelles (comme SQL). Générer le code JPA. Etudier le mécanisme pour supprimer des objets instances de G. TP 4

Figure 3 : un autre diagramme de classe 6 Avec Magic Draw UML Plutôt que d utiliser Genmymodel, nous allons utiliser un autre outil de modélisation et un autre générateur de code, Magicdraw. MagicDrawUML est un outil de style WYSIWYG modélisant divers diagrammes UML. Cet outil répond aujourd'hui à la problématique d'avoir un atelier de génie logiciel UML professionnel. Une vingtaine de types de diagrammes sont disponibles (classe, séquence, use case, objet, déploiement, ). Pour une description plus détaillée, l on pourra se référer à http://www. www.magicdraw.com/ TP 5

Les différents types de diagrammes proposés par MagicDraw. Création d un projet Menu : Fichier -> Nouveau Projet TP 6

Création d un projet MagicDraw. Création d un package Sur le package Data : Clic droit -> nouvel élément -> Package Création d un diagramme de classes Sur le package Data : Clic droit -> nouveau Diagramme -> Diagramme de classes Restructuration et application de motif («design pattern») Clic droit sur une classe -> Outils -> Appliquer Motif TP 7

Génération de code Application d un patron de conception par MagicDraw. Option projet -> Ingénierie de code -> répertoire courant par défaut. Choisissez le répertoire source à la racine de votre projet Java de votre workspace Eclipse. Génération de code dans MagicDraw. TP 8

Puis sélectionnez les classes à générer et faites Ctrl + G. Travail à effectuer l Faites les diagrammes UML vu sur le TD1-2 : arbre généalogique ; compilateur l Revisiter la partie 4 (Transformation UML-Java) avec Magicdraw. Décrire les règles de transformation qui ont abouti à la génération de ce code à partir du diagramme UML. Quelles sont les différences avec Genmymodel? Discuter les différentes stratégies de génération de code. l Ecrire le programme Java correspondant au programme de l exercice du compilateur, i.e., utilisez les classes générées par Magicdraw à partir de votre diagramme de classes UML de l exercice du compilateur TP 9