Guide d'utilisation de l'outil: Modélisation de la conception d'une application J2EE dans Rational Rose
Ce guide d'utilisation de l'outil décrit l'utilisation de Rational Rose pour modéliser la conception d'une application J2EE.
Outil: Rational Rose
Relations
Eléments connexes
Description principale

Objectif

Ce guide d'utilisation permet également de concevoir des composants J2EE dans l'infrastructure J2EE préfabriquée, représentés dans Rose sous la forme de classes et de collaborations de classes. 

En règle générale, une application J2EE utilise les services d'une base de données relationnelle. Vous concevez un modèle de données pour la base de données, en le représentant dans Rose à l'aide de Rose Data Modeler. 

Pour modéliser une application J2EE dans Rose, effectuez les étapes suivantes :

Pour plus d'informations sur J2EE, reportez-vous à Concept : Présentation de Java 2 Platform Enterprise Edition (J2EE)

Pour accéder à la présentation du développement à base de composants via l'utilisation de la plateforme J2EE, reportez-vous à Concept : Développement de solutions à base de composants .

Voir également :

Configuration de Rational Rose pour le projet J2EE

Configurez Rational Rose conformément aux descriptions de Guide d'utilisation de l'outil : Configuration de Rational Rose pour un projet.

Vous devez en outre activer l'extension Java de Rose et configurer les options propres aux différents projets.

Pour obtenir des informations détaillées sur la configuration de Rose Java, reportez-vous à la rubrique d'aide en ligne de Rational Rose Icône d'aide en ligne Rose Java > Comment > Définir les propriétés du projet.

Organisation du modèle de conception

Création de packages et de couches dans le modèle de conception

Le guide d'utilisation de l'outil : Gestion du modèle de conception à l'aide de Rational Rose décrit la création de packages et de couches dans le produit : Modèle de conception, en commençant par le canevas de modèle RUP livré avec Rose.  Ce canevas fournit un squelette du modèle de conception, y compris les marques de réservation des différents types de package, les sous-systèmes et les diagrammes qu'il convient de créer au cours des activités de conception (Tâche : Conception d'un cas d'utilisation, Tâche : Conception d'une classe et Tâche : Conception en temps réel d'un sous-système).   

Voir également :

Notez que la structure du package figurant dans Produit : Modèle de conception ne doit pas nécessairement correspondre à la structure de package figurant dans le Produit : Modèle d'implémentation. Lorsque vous effectuez la rétro-conception des classes Java, la structure de package du modèle d'implémentation détermine la structure de package des classes Java créées.

Icône d'aide en ligne  Pour plus d'informations sur les packages, reportez-vous à la rubrique d'aide en ligne de Rational Rose Package.

Ajout des packages de langue Java

Vous devez ajouter les packages de langue Java pour Java et J2EE, afin de fournir les services de la plateforme J2EE (appelée couche système). Ces packages sont utilisés lorsque vous créez vos propres classes dans le modèle ; par exemple, si votre classe définit une opération qui renvoie le type Java String (Chaîne), le package de langue Java java.lang contenant la classe String doit figurer dans votre modèle.

 Pour obtenir des informations détaillées, reportez-vous aux rubriques suivantes de l'aide en ligne de Rational Rose :

  • Icône d'aide en ligne Rose Java > Concepts > Utiliser des infrastructures préfabriquées Java

  • Icône d'aide en ligne  Rose Java > Comment > Charger des bibliothèques de classes Java dans un modèle

Ajout des packages de schéma

Le package de schéma contient la conception des tables de base de données de l'application. Pour plus d'informations, reportez-vous à Guide d'utilisation de l'outil : Conception et modélisation de bases de données à l'aide de Rational Rose Data Modeler.

Modélisation des JavaBeans et des classes Java

Cette section ne traite ni du processus de modélisation des EJB (reportez-vous à Modélisation d'EJB), ni des classes de présentation, telles que les pages HTML et JSP (reportez-vous à Modélisation de la couche de présentation).

Elle décrit la modélisation des autres JavaBeans et classes Java (telles que les classes d'utilitaires) pour les applications Java. Pour plus d'informations, reportez-vous à :

Modélisation des EJB

Pour plus d'informations sur les EJB, reportez-vous à Instructions : Enterprise JavaBean (EJB).

Le récapitulatif des étapes à exécuter pour modéliser un EJB dans Rose figure ci-après :

Création d'un sous-système de conception pour l'EJB

En règle générale, les EJB sont regroupés en sous-systèmes de conception. 

Les sous-systèmes de conception sont utilisés pour encapsuler le comportement dans un "package", qui fournit des interfaces explicites et formelles et qui (par convention) n'expose aucun de ses contenus internes. 

Pour plus d'informations sur le mode de création de sous-systèmes de conception, reportez-vous à Guide d'utilisation de l'outil : Gestion de sous-systèmes à l'aide de Rational Rose.

Détermination du type d'EJB et de son mécanisme de persistance

Avant de pouvoir créer l'EJB dans Rose, vous devez déterminer le type d'EJB (bean entity, bean session ou bean géré par message). Pour les beans entity, vous devez choisir entre la persistance gérée par conteneur et la persistance gérée par bean. Pour les beans session, vous devez déterminer si le bean doit être avec état ou sans état.

Reportez-vous à Instructions : Enterprise JavaBean (EJB).

Utilisation de Rose Java pour créer des classes EJB

Rose Java contient un ensemble de boîtes de dialogue permettant de créer de mettre à jour des classes EJB dans Rose.

  Icône d'aide en ligne  Pour plus d'informations, reportez-vous à la rubrique d'aide en ligne Rational Rose Rose Java > Comment > Utiliser les EJB et les servlets

Rose Java peut être utilisé pour :

  • créer un EJB de toutes pièces ;

  • convertir une classe existante du modèle en EJB (Rose Java convertit la classe existante en interface EJB distante et créé les nouvelles classes pour l'interface et pour la classe de bean) ;

  • ajouter des méthodes de recherche à l'EJB ;

  • mettre à jour l'interface à l'aide des méthodes de recherche ou de cycle de vie définies dans la classe d'implémentation de bean ;

  • mettre à jour les propriétés des classes d'EJB (telles que le nom de l'interface home), de persistance (s'il s'agit d'une persistance gérée par bean ou par conteneur) et des descripteurs de déploiement (telles que les zones gérées par conteneur ou les entrées d'environnement).

Un bean entity ou session créé avec Rose Java comporte les éléments suivants :

  • Classe d'interface

  • Classe d'interface distante

  • Classe de bean

  • Propriétés définissant le descripteur de déploiement EJB générique ejb-jar.xml, stocké sous forme de propriétés de classe de bean EJB

  • Opérations et attributs requis par la spécification EJB (méthodes de rappel, par exemple) créés au niveau de l'interface, de l'interface distante et de la classe de bean

Ces classes créées par l'utilitaire EJB Rose Java sont modélisées conformément au mappage défini dans la norme Sun sur le mappage (JSR-000026 UML/EJB Mapping Specification). Icône d'aide en ligne Pour plus d'informations, reportez-vous à la rubrique d'aide en ligne de Rational Rose Rose Java > Concepts > A propos du support pour Java 2 Platform Enterprise Edition (J2EE)

Pour plus d'informations sur les spécifications EJB 1.1 ou 2.0, visitez le site http://java.sun.com/, puis cliquez sur les liens Docs & Training > Java 2 Platform, Enterprise Edition > Enterprise JavaBeans Specification.

Définition des opérations et des attributs

Après avoir créé les classes EJB, vous pouvez ajouter des opérations (des méthodes métier, par exemple) et les attributs de votre choix.

Rose Java contient un ensemble de boîtes de dialogue permettant de créer de mettre à jour des classes EJB dans Rose.

  Icône d'aide en ligne  Reportez-vous à la rubrique d'aide en ligne de Rational Rose Rose Java > Comment > Utiliser les EJB et les servlets > Ajout de méthode à une classe de bean.

Pour plus d'informations sur la définition d'opérations et d'attributs, reportez-vous à :

Modélisation des classes : relations

Créez des diagrammes de classes au cours de la tâche : Conception d'une classe, avec lesquels vous modélisez les relations (des associations, des dépendances et des relations d'héritage, par exemple) entre ces classes.

Le modèle RUP fourni avec Rose constitue un point de départ pour l'élaboration des diagrammes de classes.

Pour plus d'informations sur la modélisation de relations entre des classes, reportez-vous à Tâche : Conception d'une classe.

Modélisation des classes : interactions

Au cours de la tâche : Conception d'un cas d'utilisation, vous créez des messages relatifs aux diagrammes de séquence, qui vous permettent ensuite de décrire les interactions entre des objets de conception. Créez un ensemble de diagrammes de séquence décrivant les principaux flux d'événement de chaque réalisation de cas d'utilisation de votre modèle de conception. 

En tant que concepteur EJB, vous utilisez un diagramme de séquence pour :

  • déterminer les opérations et les arguments d'opérations des classes impliquées dans l'interaction ;

  • documenter les opérations qui seront appelées par une classe au cours de l'itération ;

  • documenter les actions d'un objet à la réception d'un message, en attachant un script au message par exemple. Icône d'aide en ligne  Pour plus d'informations, reportez-vous à la rubrique d'aide Rational Rose > Comment > Créer et travailler dans un modèle > Utilisation de scripts dans des diagrammes de séquence.

Voir également :

Modélisation de la persistance EJB

Une entité EJB représente une vue orientée objets des données persistantes des applications. Modéliser une classe EJB comme une entité et l'indiquer comme étant persistante indique que le Rôle : Concepteur de base de données devra mapper l'objet EJB au modèle de données au cours de la tâche : Conception d'une base de données.

Le rôle Concepteur de base de données crée le modèle de données de l'application au cours de la tâche : Conception d'une base de données.

Rose contient un support de conception de base de données à l'aide de l'outil de modélisation des données Rational Rose, qui permet de convertir les classes persistantes de votre modèle d'objet en modèle de données, et inversement.

Le mappage de classes contenues dans modèle d'objet à des tables du modèle de données est documenté dans la zone Mappé à partir de de la spécification Rose sur les tables du modèle de données.

Reportez-vous également à Produit : Modèle de données et Instructions : Modèle de données.

Pour plus d'informations sur Rose Data Modeler, reportez-vous à Guide d'utilisation de l'outil : Conception et modélisation de bases de données à l'aide de Rational Rose Data Modeler.

Considérations liées à la modélisation pour les EJB session

Les beans session peuvent lire ou écrire des données persistantes. Reportez-vous à Instructions : Conceptions d'Enterprise JavaBeans (EJB)- Accès direct ou EJB entity ?  

Dans ce cas, vous devez utiliser des classes DAO pour isoler les informations de connexion et d'accès à la base de données des EJB à l'aide de l'interface javax.sql. 

Considérations liées à la modélisation pour les EJB entity

Les beans entity peuvent lire et écrire les tables de base de données à l'aide de l'API JDBC. Utilisez des classes DAO pour isoler les informations de connexion et d'accès à la base de données des EJB à l'aide de l'interface javax.sql. 

Considérations liées à la modélisation pour les EJB entity gérés par conteneur

Il est inutile de concevoir des classes DAP pour les EJB entity gérés par conteneurs, car leur persistance est gérée par le conteneur d'EJB.

Modélisation des transactions

Les transactions définissent un ensemble d'appels d'opérations atomiques : soit elles sont toutes effectuées, soit aucune d'entre elles n'est effectuée. Dans le contexte de la persistance, une transaction définit un ensemble de changements effectué sur un ensemble d'objets qui sont soit tous exécutés soit aucun d'entre eux. Les transactions offrent une certaine cohérence, ce qui garantit que des ensembles d'objets passent d'un état cohérent à un autre.

Pour accéder à une présentation de la gestion des transactions, reportez-vous à Concept: Présentation de Java 2 Platform Enterprise Edition (J2EE) - Gestion des transactions.

Modélisez les transactions EJB comme décrit dans Tâche : Conception d'un cas d'utilisation - Modélisation des transactions.  En vous basant sur le modèle de conception, vous décidez lors de l'implémentation de démarquer les transactions en les déclarant dans le descripteur de déploiement (à savoir en définissant l'attribut de transaction d'une méthode EJB sur l'un des suivants : Required, RequiresNew, NotSupported, Supports, Mandatory ou Never) ou en procédant à une programmation à l'aide de l'API de Transaction Java.

Modélisation de la sécurité

Déterminez si la sécurité de l'application peut être gérée de façon déclarative à l'aide des rôles et des autorisations de sécurité figurant dans le descripteur de déploiement EJB, ou si elle doit être programmée à l'aide des API de sécurité J2EE.

Utilisez les diagrammes de séquence pour examiner les différents scénarios de sécurité. Si besoin est, notez sur les diagrammes de séquence les conditions de sécurité.

Pour accéder à une présentation de la sécurité, reportez-vous à Concept : Présentation de Java 2 Platform Enterprise Edition (J2EE) - Gestion de la sécurité.

Application d'une rétro-conception aux composants EJB

Vous générez des classes Java d'EJB en appliquant une rétro-conception à l'aide de Rose Java, comme décrit dans Guide d'utilisation de l'outil : Génération d'éléments partir d'un modèle à l'aide de Rational Rose. Le descripteur de déploiement EJB ejb-jar.xml sera généré automatiquement suite à la rétro-conception de la classe de bean d'EJB.

Recours à l'ingénierie inverse avec les EJB

Vous pouvez appliquer une génération de code à un EJB existant avec Rose Java, conformément à la description figurant dans Guide d'utilisation de l'outil : Génération de code avec Rational Rose. Vous devez appliquer une génération de code à un fichier .jar contenant les classes EJB et le descripteur de déploiement, afin que Rose Java puisse déterminer les relations entre les classes (par exemple la classe représentant l'interface) auxquelles une génération de code est appliquée. 

Modélisation de la couche d'interface utilisateur

Modélisez la couche d'interface utilisateur d'une application J2EE comme pour toute application Web. En règle générale, les classes d'analyse affectées du stéréotype <<boundary>> sont candidates aux classes et collaborations de classes dans la couche d'interface utilisateur. Les classes de frontière peuvent par exemple être implémentées en tant que pages JSP, servlets, pages HTML ou clients Java autonomes, en fonction de la conception correspondante.

Pour plus d'informations, reportez-vous à : 

Activités connexes :

Voir également :

Génération de code et rétro-conception des classes de présentation

Vous pouvez appliquer une génération de code et une rétro-conception aux classes de présentation. Rose Java prend en charge :

  • la génération de code pour les applications Web (.war). Icône d'aide en ligne Pour plus d'informations, reportez-vous à la rubrique d'aide en ligne de Rational Rose Rose Java > Comment > Recourir à l'ingénierie retour à partir de  Source Java vers Rose .

  • la création d'une classe de servlet avec les méthodes appropriées. Icône d'aide en ligne Pour plus d'informations, reportez-vous à la rubrique d'aide en ligne de Rational Rose Rose Java > Comment > Utiliser les EJB et les servlets.