Conventions communes aux profils UML Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* Référence : Livrable 2.1 Date : Juin 2002 * : Les partenaires du projet ACCORD sont CNAM, EDF R&D, ENST, ENST- Bretagne, France Telecom R&D, INRIA, LIFL et Softeam. Le projet est conjointement financé par les partenaires et par le RNTL (Réseau National des Techniques Logicielles). Projet ACCORD Page 1 sur 8
Sommaire 1 Introduction... 3 2 Spécification du profil CORBA... 3 2.1 Méta-modèle virtuel de stéréotypes... 3 2.1.1 Notion de stéréotype... 3 2.1.2 Expression du méta-modèle virtuel avec UML... 4 2.2 La spécification du profil CORBA... 4 2.3 Un exemple... 4 3 Spécification du profil EJB... 4 4 Eléments de description d'un profil... 5 5 Modèle générique de documents de spécification de profil... 6 5.1 Description Générale... 6 5.2 Domaine... 6 5.3 Définition technique... 6 5.3.1 Packages UML utilisés... 6 5.3.2 Stéréotypes... 6 5.3.3 Tagged Values... 7 5.3.4 Contraintes Structurelles... 7 5.3.5 Méta-modèle Virtuel (Facultatif)... 7 5.3.6 Icônes Graphiques... 8 5.4 Définition opérationnelle... 8 5.4.1 Règles de Transformation (Interne / Externe)... 8 5.4.2 Règles de Présentation... 8 5.5 Exemples... 8 6 Références... 8 Projet ACCORD Page 2 sur 8
1 Introduction Dans le cadre du projet ACCORD, plusieurs profils UML vont être spécifiés tels que, entre autres, le profil permettant de décrire des composants EJB (actuelle version EJB 2.0) et le profil pour le modèle de composant CORBA (norme future version CORBA 3). Le but de ce document consiste à définir les règles communes de spécification des profils du projet ACCORD. Chaque lot du projet ACCORD ayant à spécifier un profil devra donc suivre les règles énoncées dans ce document. L OMG et le JCP (Java Community Process) ont, à ce jour, standardisé plusieurs profils. Nous avons étudié plus particulièrement les profils CORBA [1] et EJB [2] pour définir ces règles communes de spécification. Les sections 2 et 3 de ce document décrivent respectivement les documents de spécification du profil CORBA et du profil EJB. La section 4 énumère les éléments essentiels servant à la spécification de profils. Enfin, la section 5 présente le modèle générique de documents de spécification des profils du projet ACCORD. 2 Spécification du profil CORBA Le document étudié est la version 1.0 de la spécification du profil CORBA [1]. Le document OMG présente tout d'abord l'intérêt d'un profil CORBA par rapport à une simple description IDL : un schéma UML présente l'avantage d'ajouter de la sémantique. Cet aspect est illustré par l'exemple d'un attribut d'une interface CORBA matérialisé par une association. La cardinalité du rôle de l'association permet de savoir si la valeur de l'attribut peut être vide ou pas. Cette information ne peut pas être exprimée en IDL. Cette section contient ensuite une courte section sur les grandes décisions du profil. La section 2 du document OMG présente une définition générale d'un profil. Le profil CORBA étant l'un des premiers à être normalisé, les auteurs se sont attachés à également définir les différents concepts pour spécifier un profil. Selon eux, la spécification d'un profil doit : Identifier le sous-ensemble du méta-modèle UML nécessaire au profil cible. Etablir les règles de cohérences de ce sous-ensemble. Ces règles seront décrites par l'intermédiaire d'un ensemble de contraintes écrites soit en langage naturel soit par le langage OCL (Object Constraint Language). Définir l'ensemble des «ajouts standards» rattachés à ce sous-ensemble. UML propose une extension possible d'uml à l'aide de 3 éléments possibles : les méta-classes Stereotype, Constraint et Tagged Value. Spécifier la sémantique en langage naturel. 2.1 Méta-modèle virtuel de stéréotypes 2.1.1 Notion de stéréotype La spécification UML donne la définition suivante pour les stéréotypes : Le concept de Stereotype permet de classer (annoter) des éléments et se comporte suivant des règles comme des nouveaux éléments d'un méta-modèle virtuel. Règles d'utilisation des stéréotypes: Projet ACCORD Page 3 sur 8
Un Stereotype est un GeneralizableElement, donc la relation d'héritage est possible pour les stéréotypes. De même, il est possible de définir des stéréotypes abstraits pour éviter des répétitions quand des stéréotypes ont des propriétés communes. Un élément généralisable (GeneralizableElement) est un élément du modèle (ModelElement), et des relations de dépendances (Dependency Relationships ) peuvent être définies entre des éléments du modèle, donc des relations de dépendances sont possibles pour des stéréotypes. Un stéréotype n'est pas un Classifier, donc des stéréotypes ne peuvent participer à des relations d'associations. 2.1.2 Expression du méta-modèle virtuel avec UML Le document OMG propose de décrire en UML le méta-modèle virtuel avec les règles suivantes: Le modèle est exprimé via le diagramme de classes UML. Chaque Stéréotype est exprimé par une boite Classifier (bien que un stéréotype ne soit pas un Classifier). Le stéréotype est identifié par le mot clé <<Stereotype>>. Si un stéréotype est relié par une relation de dépendances vers une métaclasse UML, cette relation est annotée par le mot-clé <<baseelement>>. Les relations d'héritages entre stéréotypes sont exprimées de manière usuelle. Les contraintes sont exprimées en anglais et en OCL. 2.2 La spécification du profil CORBA La section 3 du document OMG spécifie le profil CORBA. La structuration de cette section est la suivante: 1) Identification du sous-ensemble UML utile au profil CORBA : c'est une énumération des paquetages du Méta-modèle UML nécessaires et, dans ces paquetages, l'énumération des méta-classes. 2) Description du méta-modèle virtuel : Conformément aux règles décrites dans la section, les descriptions des diagrammes de classes sont définies dans un paquetage de nom CORBAProfile. 3) Spécifications plus précises des différents éléments introduits dans le méta-modèle: signification en langage naturel du stéréotype introduit, définition des contraintes possibles pour ce stéréotype, illustration de l'utilisation de ce stéréotype : l'illustration peut se faire par un exemple UML d'utilisation du stéréotype et/ou la correspondance du stéréotype et le langage IDL. 2.3 Un exemple Le document OMG se termine par un exemple significatif décrivant complètement les stéréotypes du profil. Une correspondance de ce schéma UML et de la spécification IDL est donnée pour cet exemple. 3 Spécification du profil EJB Le profil UML pour EJB (JSR 000026) est en cours d élaboration au JCP (Java Community Process). Il est actuellement dans la phase Public Review du JCP ; c est à dire qu il devrait être bientôt validé comme standard. Le document sur lequel nous avons travaillé est le draft public du 25 mai 2001 [2]. Ce document définit un profil UML (version 1.3) pour EJB (version 1.1). Ce document est composé des parties suivantes : Projet ACCORD Page 4 sur 8
4) Introduction : Une brève introduction qui, entre autres, précise à qui s adresse ce document. 5) Overview : Cette partie explique l intérêt du profil UML pour EJB et présente rapidement les concepts des profils UML. 6) UML Profile : Cette partie est la partie la plus importante du document. Elle définit le profil UML pour EJB. Cette partie est composée de plusieurs sous-parties : i. La définition des termes employés par le document ii. L identification des packages du méta-modèle UML utilisés. iii. Les extensions proposées sur le méta-modèle UML. Cette partie est vide, aucune extension n a été apportée au méta-modèle UML. iv. L identification des Model Element prédéfinis et nécessaires pour le profil v. L ensemble des stéréotypes et tagged values définies par le profil. vi. Les règles sémantiques permettant la génération de code Java à partir de modèles UML utilisant le profil UML pour EJB. vii. Les règles OCL de conformité du profil. Dans le draft étudié, cette partie est vide. 7) UML Descriptor : Une DTD définissant la structure des fichiers XML représentant les modèles UML décrivant les artefacts Java et EJB à inclure dans les archives EJB. 8) Virtual Metamodel : Le méta-modèle virtuel du profil. Ce méta-modèle est présenté à titre indicatif. 9) Rationale : La justification du profil et des choix effectués. 10) Examples : Des exemples. 11) Related Documents : Des références. 12) Revision History : L historique des révisions. 4 Eléments de description d'un profil L étude de ces documents nous montre que la description d un profil passe nécessairement par quatre points. Premièrement : le domaine du profil. Les profils permettent d adapter UML à un domaine particulier (EJB ou CORBA pour les profils que nous avons étudiés). La description d un profil passe donc nécessairement par la description du domaine particulier auquel le profil est attaché. La description de ce domaine peut se faire en définissant le méta-modèle du domaine. Ce méta-modèle devra décrire les concepts du domaine en question ainsi que les différentes relations existantes entre ces concepts. Si un tel méta-modèle existe et qu il est défini dans un autre document, la description du profil pourra alors simplement le référencer. Deuxièmement : la définition technique du profil. Techniquement, un profil n est qu un ensemble de stéréotypes, de tagged values et de contraintes. Ces éléments permettent d établir une correspondance entre les concepts UML et les concepts du domaine représentés par le profil. Il est important de noter qu en principe seule cette partie suffit à définir un profil selon le standard UML. Troisièmement : la partie opérationnelle du profil. Concrètement, un profil ne peut se résumer uniquement à une liste de stéréotypes, de tagged values et de contraintes. C est aussi et surtout un ensemble de règles qui permettent de rendre le profil opérationnel. Par exemple, le profil EJB contient un ensemble de règles pour générer automatiquement le code Java correspondant ainsi que Projet ACCORD Page 5 sur 8
les fichiers de déploiement. Cette partie qui n est pas clairement identifiée dans la définition classique de profil UML est fondamentale. Quatrièmement : un exemple d utilisation du profil. Tous les documents de description de profil que nous avons étudiés présentent des exemples. Un exemple, qui a un but pédagogique, est plus que nécessaire dans la description d un profil. Les quatre points que nous venons d énoncer sont essentiels pour la description d un profil. Nous pensons que les documents de description de profils doivent clairement identifier ces points et c est pour cela que nous proposons la structure présentée dans la section 5. 5 Modèle générique de documents de spécification de profil Les cinq sous-sections suivantes représentent les cinq parties des documents de description de profils pour le projet ACCORD. Mise à part la première partie qui correspond à la description générale du profil, les quatre autres parties correspondent aux points que nous avons identifiées dans la section 4 de ce document. 5.1 Description Générale Cette partie décrit le profil d une façon générale. Elle précise l objectif du profil ainsi que le public concerné. Elle référence les documents (standard ou non) nécessaires et identifie, si elles existent, les relations avec d autres profils. 5.2 Domaine Cette partie présente le domaine couvert par le profil. Le but n est pas de définir formellement ce domaine mais, simplement, de le présenter à titre d information. Cette présentation permet de faciliter la compréhension de l ensemble des éléments du profil (stéréotypes, tagged values et contraintes) ainsi que la correspondance avec UML. Nous conseillons fortement l utilisation d un méta-modèle pour représenter les concepts du domaine représenté par le profil. Chacun des concepts sera alors être représenté par une méta-classe du méta-modèle et les relations entre concepts seront représentées par des associations entre les méta-classes du méta-modèle. Si un tel méta-modèle existe déjà, un lien vers celui-ci pourra être établi. 5.3 Définition technique Cette partie définit les aspects techniques des profils, c est à dire les stéréotypes, les tagged value et les contraintes. Ce sont ces éléments qui définissent les correspondances entres les concepts du domaine couvert par le profil et les concepts UML. 5.3.1 Packages UML utilisés Les stéréotypes, tagged values et contraintes d un profil sont rattachés à des métaclasses du méta-modèle UML. Cette partie permet d identifier quels sont les packages du méta-modèle UML qui contiennent ces méta-classes. 5.3.2 Stéréotypes Cette partie dresse la liste des stéréotypes définis par le profil. Nous conseillons d utiliser un tableau en début de partie afin de lister les différents stéréotypes du profil [Tableau 1]. Puis, pour chacun des stéréotype, nous conseillons d expliquer la correspondance avec le concept du domaine couvert par le profil. Projet ACCORD Page 6 sur 8
Tableau 1 - Exemple de tableau dressant la liste de stereotypes. 5.3.3 Tagged Values Cette partie dresse la liste des tagged values définies par le profil. Nous conseillons d utiliser un tableau en début de partie afin de lister les différents tagged values du profil [Tableau 2]. Puis, pour chacune des tagged value, nous conseillons d expliquer la correspondance avec le concept du domaine couvert par le profil. Tableau 2 - Exemple de tableau dressant la liste de tagged values. 5.3.4 Contraintes Structurelles Cette partie dresse la liste des contraintes définies par le profil. Nous conseillons d utiliser, si possible, le langage OCL pour définir des contraintes. Un exemple de contrainte :!"#%$%&')(*,+-+/.10*2 3 45768(9 %&;:=<>%=?@? A!")!B<C>&D.1 FEGA!IHF!"!KJL>NM) O!"%1P Q RTS%U V9WYXZX[%\^]L_ à\%bu S%[%S^\c7deXfaReW gb\%chàs^g"ijkzlksnm,o/_yxrkgp\%xjts 5.3.5 Méta-modèle Virtuel (Facultatif) Plusieurs descriptions de profil utilisent la notion de méta-modèle virtuel pour représenter l ensemble des stéréotypes, tagged values et contraintes du profil [Figure 1]. Les méta-modèles virtuels permettent de représenter graphiquement ces éléments ainsi que leurs relations avec les méta-classes du méta-modèle UML. La façon de définir un méta-modèle virtuel est très bien décrite dans le profil CORBA [1]. Etant donné qu un méta-modèle virtuel ne contient aucune information supplémentaire, son utilisation est facultative. Figure 1 - Exemple de méta-modèle virtuel. Projet ACCORD Page 7 sur 8
5.3.6 Icônes Graphiques Cette partie dresse la liste des différentes icônes graphiques définies dans le profil. 5.4 Définition opérationnelle Cette partie définit les règles qui permettent de rendre le profil opérationnel. Notons que ces règles ne font pas actuellement partie de la définition classique de profil UML. Il nous paraît donc intéressant de les définir dans une partie bien distincte du document. Notons, de plus, que ces règles sont fonction du contexte d utilisation du profil. En effet, certaines règles pourront permettre de générer du code alors que d autres pourront permettre la modification de modèles. Nous avons identifié, à l heure actuelle, deux catégories de règles «d opérationnalisation». Il est important de noter que cette classification n est pas figée et qu elle peut être facilement étendue. 5.4.1 Règles de Transformation (Interne / Externe) Cette partie définit les règles qui permettent de transformer le modèle. Ici, les transformations comprennent aussi bien la génération de code, que la génération de documentation ou que la transformation vers d autres modèles conformes au même profil ou non. Nous qualifions règles de transformation interne toute règle qui permet de modifier des modèles en faisant en sorte que ceux-ci restent conforme au même profil. Nous qualifions règles de transformation externe toute règle qui permet soit de générer du code ou de documentation soit la construction de nouveaux modèles conformes à d autres profils. La définition de ces règles peut soit se faire en utilisant le langage naturel soit se faire en utilisant un langage capable d exprimer de telles transformations (i.e. le langage J dans le cadre de l utilisation de l atelier Objecteering). 5.4.2 Règles de Présentation Cette partie définit les règles qui permettent la manipulation des aspects graphiques de modèles. Nous avons identifié, à ce jour, deux types de règles de présentation. Il est possible d étendre cette liste. 5.4.2.1 Filtrage Les règles de filtrage permettent de masquer ou non certains éléments graphiques d un modèle. Ces règles permettent de ne présenter que certains aspects d un modèle. 5.4.2.2 Vues prédéfinies Une vue prédéfinie identifie précisément un diagramme particulier (et non pas un type de diagramme). Ces vues sont utilisées pour faciliter la communication entre les membres d une même équipe. Les règles de vues prédéfinies permettent la construction automatique du diagramme correspondant à la vue. 5.5 Exemples Cette partie fournit un certain nombre d exemples d utilisation du profil. Les exemples ont principalement un but pédagogique et facilitent la compréhension du profil. 6 Références [1] UML Profile for CORBA Specification, V1.0, OMG, October 2001. [2] UML Profile for EJB, Public Draft, 25/05/2001 Projet ACCORD Page 8 sur 8