Mise en œuvre de l’application webstock
L’architecture MDA
La démarche de développement MDA, concept très en vogue dans les projets J2EE/JEE actuels, sera mise en œuvre dans ce chapitre avec l’atelier EclipseUML for JEE. Soutenue par l’OMG (Object Management Group), MDA (Model Driven Architecture) vous permet de modéliser votre application indépendamment de son implémentation cible (niveau matériel ou logiciel), permettant ainsi une bonne réutilisation de vos modèles. Cette approche de développement couvre l’ensemble du cycle du projet, de la conception au déploiement. Elle s’appuie sur une association des modèles créés, ou PIM (Platform Independant Model), qui représentent l’aspect métier, avec des modèles PM (Platform Model), JEES Livre Page 291 Jeudi, 29. novembre 2007 12:48 12 Mise en œuvre de l’application webstock Développement EJB3 avec Eclipse et Web Tools PARTIE III 292 transformés pour obtenir in fine un modèle d’application spécifique, dit PSM (Platform Specific Model). La figure 12.1 illustre l’architecture de l’approche MDA. Des outils de génération automatique de code permettent de créer le programme directement à partir des modèles. En résumé, la mise en œuvre de MDA est entièrement fondée sur les modèles et leurs transformations. Le fait qu’elle soit indépendante de toute plate-forme assure un développement portable des langages et technologies sous-jacentes. Méthodologie de mise en œuvre L’approche MDA se déroule en deux grandes étapes : 1. Conception. Consiste à réaliser un modèle indépendant de toute plate-forme (PIM) exprimé en UML. Pour obtenir ce modèle, il faut choisir la ou les plates-formes d’exécution (plusieurs plates-formes peuvent être utilisées pour mettre en œuvre un même modèle). 2. Transformation. Consiste à projeter un modèle PIM suffisamment détaillé vers un modèle spécifique PSM. Les caractéristiques d’exécution et les informations de configuration qui ont été définies de façon générique sont alors converties pour tenir compte des spécificités de la plate-forme cible (dans notre cas EJB3/JSF/JPA). La génération du code s’effectue à l’aide de composants cartridge (cartouches), chaque cartouche étant conçue pour générer du code Java pour les technologies J2EE/JEE standards (Struts, Spring, etc) et d’autres plates-formes.
EclipseUML for JEE
EclipseUML est un projet Eclipse développé sous la tutelle de la société Omondo, membre contributif de l’OMG (Object Management Group). L’outil est décliné en deux éditions, Free et Studio. EclipseUML s’appuie sur le standard UML2 de l’OMG. Les premières générations de cet outil étaient destinées à la modélisation UML et à la génération de code Java. Il propose aujourd’hui neuf diagrammes UML, en particulier les diagrammes de classes, les cas d’utilisation et les diagrammes d’état. En juin 2007, EclipseUML Europa a vu le jour pour offrir au monde JEE un atelier MDA pratique et complet, couvrant l’intégralité du cycle de développement et permettant un reverse JEE à partir d’un modèle existant.
L’application webstock
Webstock est une application simple de gestion d’un stock d’articles destinée à illustrer les aspects avancés du développement JEE. Cette application couvre les besoins de la chaîne de vente d’articles et de pièces détachées informatiques WebStore. Ces besoins peuvent s’élargir à la consultation du système central de la chaîne de magasins. Dans le cadre des étapes de création de l’application, le cycle MDA devrait comprendre les itérations suivantes : • Modélisation UML du contexte métier du domaine webstock • Sérialisation et export XMI du modèle UML • Génération de code • Déploiement et tests Dans un premier temps, vous allez vous focaliser sur la modélisation de l’application et sur le modèle métier correspondant. Environnement de travail Votre environnement de développement sera Eclipse 3.3 avec Web Tools. Pour les besoins de l’étude de cas, les prérequis sont les suivants : • EclipseUML version free pour Europa, téléchargeable à l’adresse http://www.ejb3.org/. • Web Tools 2, la version compatible Eclipse 3.3, récupérable à partir du site Eclipse, à l’adresse http://www.eclipse.org/Web Tools/. • JBoss 4.2.1, pour un déploiement supportant EJB3. Modélisation avec EclipseUML Dans cette section, vous allez définir la conception de l’application webstock avec l’éditeur EclipseUML. L’architecture n-tiers de l’application sera illustrée par différents diagrammes. Architecture n-tiers À la génération du code, EclipseUML fournit l’ossature d’une application n-tiers selon les bonnes pratiques JEE (en particulier en s’appuyant sur les principaux modèles de conceptions existants, dont un certain nombre sont abordés dans ce chapitre). AndroMDA Il est recommandé de se documenter sur l’outil de génération AndroMDA (http://www.andromda.org), qui s’appuie sur un certain nombre de stéréotypes. Voir en particulier l’excellente traduction de Getting Started with AndroMDA for Java par Sébastien Arbogast, disponible à l’adresse ftp://ftp-developpez.com/ sarbogast/fichiers/andromda-intro.pdf.
Le modèle MVC est inhérent à votre application
Pour une meilleure performance de la démarche MDA, vous vous focaliserez sur la modélisation des différents comportements de chacune des couches. Pour ce faire, vous utiliserez les trois diagrammes de base suivants : • diagrammes de use cases, pour expliciter les points d’entrée de l’application et son interaction avec l’utilisateur physique ; • diagrammes de classes, pour exprimer le modèle métier de l’application ainsi que les DAO ; • diagrammes d’état, pour expliciter le déroulement du processus métier pour chacun des use cases du modèle. Modèle métier Pour créer votre modèle métier de l’application webstock composée de beans entité EJB3 (voir figure 12.4), commencez par créer un projet Java usuel à l’aide d’Eclipse. 1. Dans le répertoire source, créez un nouveau répertoire appelé, par exemple, book.webstock.entities. Ce dossier contiendra l’ensemble de vos entités. 2. Dans la vue Package Explorer, faites un simple clic sur le dossier que vous venez de créer. 3. Cliquez sur File, New, Other, UML Diagrams et UML Class Diagram. 4. Saisissez le nom de votre diagramme. 5. Dans l’éditeur qui s’affiche, modélisez vos entités comme illustré à la figure 12.3.