Académique Documents
Professionnel Documents
Culture Documents
Prsent par : Marc ZIMMERMANN Tuteurs entreprise : Jean-Pierre CHANET et Catherine ROUSSEY Tuteur ISIMA : Jonas KOKO
Institut Suprieur dInformatique de Modlisation et de leurs Applications Complexe des Czeaux 63173 Aubire Cedex
Prsent par : Marc ZIMMERMANN Tuteurs entreprise : Jean-Pierre CHANET et Catherine ROUSSEY Tuteur ISIMA : Jonas KOKO
Remerciements
Je tiens remercier Catherine ROUSSEY et Jean-Pierre CHANET qui mont encadr, aid et guid tout au long de ce stage. Je remercie Jean-Claude CHAMPOMIER, Vincent SOULIGNAC, Gil de SOUSA et Andr MIRALLES pour mavoir donn accs leurs travaux et pour le temps quils mont accord. Les modles UML quils mont fournis ont t dune grande aide pour mes ralisations. Je tiens enfin remercier lensemble des personnes qui ont permis ce stage de se drouler dans dexcellentes conditions.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
Rsum
Mon stage de troisime anne lISIMA sest droul au Cemagref o jai t charg de raliser un workflow XML pour linteroprabilit des donnes. Pour crer larchitecture des logiciels, les dveloppeurs ont recourt des mthodes guides par les modles. Cette approche sintitule en anglais Model Driven Architecture (MDA). Le langage privilgi pour dcrire le MDA est lUnified Modeling Language (UML). Ainsi de nombreux Ateliers de Gnie Logiciel (AGL) permettent de dcrire ces modles grce UML, et un standard existe pour leur srialisation : XML Metada Interchage (XMI). Or les volutions nombreuses et indpendantes dUML et dXMI ont appauvri linteroprabilit des modles. Lobjectif du travail dcrit dans ce document est dtudier les compatibilits entre XMI et de fournir des outils afin damliorer linteroprabilit entre AGL. Cest la technologie eXtensible Stylesheet Language Transformation (XSLT) qui a t utilise pour raliser les outils. Les transformations des modles seffectuent au moyen dune conversion dans un langage intermdiaire : Web Ontologie Language (OWL). Ainsi les outils permettent de crer lontologie associe au modle et toutes les versions XMI existantes. Ces transformations sont intgres dans une application Java, nomme Model-Ontology Stylesheet Tranformation (MOST), totalement configurable afin de pouvoir sadapter aux volutions venir dUML et dXMI.
Mots cls : atelier de gnie logiciel, interoprabilit, Java, modle, ontologie, OWL, UML, workflow, XMI, XML, XSLT.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
Abstract
My training period for the third year at the ISIMA was conducted at the Cemagref where I was in charge of realizing an XML workflow for data interoperability. Developers use methods guided by the models to design and create software. These methods are known as Model Driven Architecture (MDA). The preferred language to describe the MDA is the Unified Modeling Language (UML). So, many computer-aided software engineering (CASE) tools help developers to describe these models using UML, and a standard exists for their serialization: XML Metadata Interchange (XMI). But many independent evolutions of UML and XMI have reduced the interoperability of models. This report presents the compatibility study between XMI versions and describes the design process of the software developed to improve interoperability between CASE softwares. This tool is named Model-Ontology Stylesheet Transformation (MOST). This tool was based on eXtensible Stylesheet Language Transformation technology (XSLT). The transformations of models are made using a conversion into an intermediate language: Web Ontology Language (OWL). Thus, the application creates the ontologies associated to the model and all existing versions of XMI. These transformations are embedded in a fully configurable Java application in order to adapt to future evolutions of UML and XMI.
Keywords : computer-aided software engineering, interoperability, Java, model, ontology, OWL, UML, workflow, XMI, XML, XSLT.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
4.2.1 Maquette et exemples de principes ........................................................................... 47 4.2.2 Gnration de larchitecture du code ......................................................................... 50 4.2.3 Implmentation des modules ..................................................................................... 50 5 Rsultats et prolongements ................................................................................................ 51 5.1 Etats des lieux ...................................................................................................................... 51 5.1.1 Ce qui a t ralis ...................................................................................................... 51 5.1.2 Ce quil reste faire .................................................................................................... 51 5.1.3 Amliorations possibles et prolongement .................................................................. 51 5.2 Bilan ..................................................................................................................................... 52 Conclusion ................................................................................................................................. 53 Index des illustrations .................................................................................................................... Rfrences bibliographiques ...........................................................................................................
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
Lexique
AGL : Atelier de Gnie Logiciel. Suite de logiciels permettant de construire des logiciels complexes en garantissant leur maintenabilit. Ces ateliers automatisent un grand nombre de tches du dveloppement logiciel. Design Pattern : En franais patron de conception, ils dcrivent des solutions standards pour rpondre des problmes rcurrents de conception darchitectures des logiciels. Le mme terme est utilis dans le domaine de la conception dontologies pour proposer des solutions des problmes de modlisation. DTD : Document Type Definition. C'est une grammaire qui dcrit les balises utilisables dans un document XML et leurs imbrications possibles. DTD est un type de schma XML qui possde son propre langage, non bas sur XML. Interoprabilit : En informatique cest la capacit dun systme fonctionner avec d'autres, existants ou futurs, sans restriction d'accs ou de mise en uvre. Ontologie : Ensemble formalis de termes du vocabulaire associ un domaine. L'ontologie constitue un modle reprsentant un ensemble de concepts dun domaine, ainsi que les relations entre ces concepts. OMG : Object Management Group. Association amricaine cre en 1989 destine promouvoir et standardiser le modle objet. OWL : Web Ontology Language. Langage permettant de dcrire des ontologies Web. Il est bas sur trois sous-langages possdant des pouvoirs d'expressions croissants : OWL-Lite, OWL-DL et OWL-Full. RDF : Resource Description Framework. RDF est un langage gnral pour la reprsentation dinformations Web. Il fait partie des recommandations du W3C et est srialis en XML. RDF Schema : RDFS est une extension de la smantique de RDF. Il permet de dcrire des ressources et les liens entre elles. RDFS est notamment utilis pour dcrire des ontologies. Srialisation : mcanisme permettant de stocker des informations dans un fichier. UML : Unified Modeling Language. Langage de modlisation dans le domaine du dveloppement logiciel. Spcification de l'OMG. W3C : World Wide Web Consortium. Organisme but non lucratif destin promouvoir la compatibilit des technologies Web. Workflow : Enchainement de tches raliser pour atteindre un objectif. XMI : XML Metadata Interchange. Standard d'change d'informations de mtadonnes UML bas sur XML. Permet l'change de donnes entres AGL. Standard de srialisation d'UML. XML : eXtensible Markup Language. Langage informatique permettant de stocker de manire arborescente des donnes de type texte grce des balises (reconnaissables par des chevrons <>).
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
XML Schema : Un XML Schema permet de dcrire la structure d'un fichier XML (lments, attributs, types de donnes,). C'est un document XML, alternative la DTD. XSD inclus une dclaration de types de donnes. XPath : XML Path Language. Langage de requtes pour slectionner des nuds dans un fichier XML. Il permet de naviguer dans l'arborescence d'un fichier XML. XSD : XML Schema Definition. Equivalent XML Schema. XSLT : eXtensible Stylesheet Language Transformations. Langage permettant la transformation dun fichier XML vers un autre document (XML, HTML, texte).
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
Introduction
Dans le domaine du dveloppement logiciel la conception des architectures est guide par les modles. Cette dmarche s'appelle Model Driven Architecture (MDA). Le langage privilgi pour dcrire le MDA est UML. Des ateliers de gnie logiciel permettent de raliser ces modles et de gnrer le code correspondant dans divers langages objets. Pour stocker et changer les modles UML un standard dit par lOMG existe : XML Metadata Interchange (XMI). Cependant les normes UML et XMI ont volu sparment. Les modles peuvent donc tre dcrits dans plusieurs versions dUML et srialiss dans plusieurs versions de XMI. Cette situation pose des problmes d'interoprabilit des donnes entre les AGL. Le premier objectif de ce stage est de fournir des outils de transformation de fichiers XMI afin damliorer linteroprabilit entre AGL. Le second objectif est dextraire les connaissances prsentes dans ces modles. Afin de reprsenter les modles sans leur aspect implmentation li UML, ils seront convertis dans un formalisme de reprsentation des connaissances bas sur XML : le Web Ontology Language (OWL). Ces outils seront raliss grce la technologie eXtensible Stylesheet Language Transformations (XSLT). Concrtement, partir d'un modle UML stock dans un fichier XMI ces outils doivent permettre de produire des fichiers OWL reprsentant la smantique du modle UML. Ensuite ces fichiers OWL seront traduits dans les diffrents formats existants de XMI. Pour raliser ces objectifs la premire tche consistera tudier la compatibilit entre les formats XMI et les AGL. La seconde tche sera de crer les outils permettant de produire les fichiers OWL. Enfin la dernire tape sera la ralisation des outils pour transformer les fichiers OWL en fichiers XMI. Lensemble de ces outils de transformations sera intgr dans une application crite en Java, nomme Model-Ontology Stylesheet Transformation (MOST). Ce rapport prsente ltude et les rsultats de ce stage avec dans une premire partie la prsentation du contexte du stage, dans une seconde lanalyse du problme. La solution envisage pour rpondre au problme sera dcrite dans la troisime partie et les principales ralisations seront expliques dans la quatrime. Enfin la dernire partie dressera un bilan des travaux raliss.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
1/53
1 Prsentation du contexte
Lobjectif de cette partie est de prsenter le contexte de cette tude. Elle prsente dans un premier temps lorganisme dans lequel ces travaux ont t raliss. Dans un second temps elle prsente le contexte technique de ltude, cest--dire les principales technologies mises en jeu.
Le Cemagref en quelques chiffres cest : 9 centres et 2 implantations hors centres (Strasbourg et Martinique) 20 units de recherche propres (UR) 5 units de recherche mixtes (Cirad, Inra, IRD, Engees, AgroParisTech, SupAgro) 1400 collaborateurs dont 500 ingnieurs et chercheurs, 200 doctorants et 40 postdoctorants Un budget en 2010 de 110 M (dont 31 M de ressources propres)
Figure 1 : Les centres du Cemagref
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
2/53
Et dune unit de recherche mixte : Mutations des activits, des espaces et des formes dorganisation dans les territoires ruraux (UMR Mtafort). Les thmes de recherche abords sont les suivants : Dveloppement Territorial et Agriculture Multifonctionnelle Innovations technologiques pour l'agriculture durable et l'environnement Modles, systmes d'information et gestion viable de l'environnement
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
3/53
dployer et grer des rseaux de capteurs communicants adapts aux problmes agrienvironnementaux concevoir et grer des systmes dinformation, tels que des entrepts de donnes ou des systmes de gestion des connaissances, adapts au contexte de lagri-environnement
Les thmes de recherche associs sont les modles, les systmes d'information et la gestion viable de l'environnement. Les domaines de spcialit de lquipe sont le gnie logiciel, la modlisation UML, les entrepts de donnes spatiales, linformatique, les tlcommunications et les rseaux de capteurs.
Le langage informatique de balisage XML est un standard recommand par le W3C [W3CXML]. Son objectif est de favoriser linteroprabilit des donnes entre des systmes dinformation diffrents. Il permet de stocker des informations arborescentes dans des fichiers de type texte. La structure de ses facilement reconnaissable par chevrons (< et >). Les principaux structure dun document XML dans la figure ci-contre. balises est lusage des lments de sont dcrits
Le langage XML est trs largement utilis dans de nombreux domaines de linformatique et de nombreux autres langages se basent sur sa syntaxe. Un document XML doit respecter un certain nombre de rgles dites par le W3C. Parmi celles-ci on peut citer la correspondance des balises ouvrantes et fermantes, lexistence dune racine unique, etc. En plus de respecter ces rgles un document XML a la possibilit de devoir tre valide par rapport un schma. Deux types de schma sont principalement utiliss : DTD et XSD (aussi appel XML Schema). La DTD est une mthode de validation de la syntaxe et de la structure dun fichier XML, elle dfinit les balises et attributs utilisables dans un document XML et leurs imbrications possibles. DTD nest pas base sur la syntaxe dXML. Le XML Schema est le successeur de la DTD et est plus restrictif car il impose les types de donnes des lments. XSD est un document XML.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
4/53
1.2.1.2
Un document XML peut tre transform en un autre document XML grce la technologie XSLT. XSLT sappuie sur des feuilles de style, ce sont des documents XML qui contiennent les transformations qui doivent tre ralises. Une transformation XSLT se passe gnralement de la faon suivante : on donne un document XML et une feuille de style un processeur XSLT qui applique les transformations et produit un nouveau document qui peut tre srialis dans un fichier XML, HTML ou texte. Les processeurs XSLT acceptent cependant plusieurs documents XML et plusieurs feuilles de style en entre et peuvent produire plusieurs documents en sortie (sorties multiples en XSLT 2.0 uniquement).
Une feuille de style contient un ensemble de fonctions appeles template rules. Une template rule est constitue de deux parties : un pattern et un template. Le pattern est un motif qui sert identifier les nuds de larbre dentre auxquels va sappliquer la template rule. Le template est le fragment darbre qui va tre crit dans larbre rsultat. Un template peut contenir des rsultats sous forme de texte ou encore des instructions XSLT, par exemple pour le traitement des nuds enfants du nud courant.
Dans cet exemple pour chaque nud Pattern on crit deux nuds dans larbre rsultat, ResultTreeFragment et PatternNodeValue contenant le contenu du nud Pattern. En labsence dune template rule adapte un nud cest une template rule native qui est applique ce nud. Elle permet de continuer le parcours rcursif de larbre.
Le document est ainsi parcouru en appliquant chaque nud la template rule ayant le meilleur pattern correspondant. La recherche des nuds dans les arbres XML se fait grce la technologie XML Path Language (XPath).
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
5/53
Unified Modeling Language (UML) est un langage graphique permettant de spcifier, construire et documenter les objets dun systme informatique. UML reprsente lunification des techniques les plus utilises et les mieux conues de modlisation orient objet. UML fait partie dune architecture de mtadonnes plus grande encore : Meta Object Facility (MOF). UML et MOF sont des spcifications de lObject Managment Group *OMGMMS+.
Un modle est une abstraction dun systme physique rel dans un certain but. Un mta-modle est un modle qui dfini le langage de description des modles. Un mta mta-modle est un modle qui dfini le langage de description des mta-modles. Chaque couche de cette architecture est considre comme une instance de la couche suprieure. Les modles UML sont srialiss dans des fichiers XMI (XML Metadata Interchange). XMI est aussi un standard de lOMG pour linteroprabilit et la srialisation des modles UML [OMGMMS]. Le langage XMI est bas sur la syntaxe XML.
1.2.2.2
Une ontologie est un modle permettant de dcrire de manire formelle les concepts dun domaine et les relations entre ces concepts. OWL est une famille de langages permettant de dcrire des ontologies. OWL est une recommandation du W3C [W3COWL]. OWL est bas sur des logiques de description (oprateurs du type intersection, union, ngation, quivalence, ). Ces logiques de description permettent de faire des raisonnements et de classifier les instances des concepts. Les raisonnements en OWL sont sujets deux hypothses : lOpen World Assumption : signifie que ce qui nest pas dit est suppos indfini, autrement dit le fait que quelque chose ne soit pas dclar comme vraie ne suffit pas conclure quelle est fausse. lUnique Name Assumption nest pas respecte par OWL : deux noms diffrents ne font pas ncessairement rfrences deux objets diffrents.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
6/53
Il existe trois types dontologies OWL : OWL Lite, OWL DL et OWL Full. Ces trois types ont des pouvoirs dexpression croissants. Cependant du fait de sa grande expressivit OWL Full nest pas un langage dcidable, cest--dire que laboutissement dun algorithme sur une ontologie OWL Full nest pas garanti en temps fini. Dans le langage OWL les classes dfinissent les concepts du domaine et les individus sont des instances de ces classes. Les relations entre les classes sont dfinies par des properties. Les properties peuvent tre schmatises de la manire suivante :
Deux types de properties sont remarquables : les datatype properties lient les individus des types de donne et les objects properties lient des individus dautres individus. En OWL il existe des conditions ncessaires et/ou suffisantes qui permettent de dterminer si un individu appartient une classe. Ces conditions sont appeles des restrictions, il en existe plusieurs sortes : Pizza : subclassOf(aPourGarniture only Tomate) Une Pizza a pour garniture uniquement des Tomates Pizza : subclassOf(aPourGarniture some Tomate) Une Pizza a pour garniture au moins une Tomate Pizza : subclassOf(aPourGarniture max Tomate n) Une Pizza a au maximum n Tomate pour garniture Pizza : subclassOf(aPourGarniture min Tomate m) Une Pizza a au minimum m Tomate pour garniture Ensuite des raisonneurs permettront de classifier les individus dune ontologie et par exemple, en fonction de ses ingrdients un plat pourra tre reconnu comme une Pizza. Une ontologie OWL peut tre srialise dans un fichier. La srialisation dontologies est base sur Resource Description Framework (RDF) et RDF Schema (RDFS). RDF et RDFS ont des syntaxes bases sur XML.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
7/53
XML fournit la syntaxe du langage (balises) et les autres langages dfinissent un vocabulaire (noms des balises).
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
8/53
2 Analyse du problme
Cette partie dtaille lanalyse du problme avec dans une premire partie la rdaction du cahier des charges qui identifie les travaux raliser. Dans une deuxime partie une tude de linteroprabilit entre ateliers de gnie logiciel est rsume. Enfin la dernire partie explique le plan de travail adopt.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
9/53
Cette liste n'a pas pour but d'tre exhaustive mais prsente des AGL trs utiliss dans le domaine du dveloppement logiciel. Les AGL utiliss au Cemagref sont Enterprise Architect, Mega, Objecteering (maintenant Modelio) et PowerAMC.
Mega Modelio Objecteering Poseidon XMI 2.1 XMI 2.1 XMI 1.0 XMI 1.1 XMI 1.2 XMI 1.1 XMI 2.1 XMI 1.1
XMI 1.2 XMI 1.2 XMI 2.1 XMI 1.0 XMI 1.1 XMI 1.2 XMI 2.1 XMI 1.0 XMI 2.1 XMI 2.1
PowerAMC StarUML
Ces informations sont disponibles sur les documentations en ligne et guides de l'utilisateur des AGL. La colonne UML correspond la norme UML choisie par l'atelier de gnie logiciel pour reprsenter le modle, il est ensuite crit dans une version de XMI. Ici UML 2.x reprsente seulement les versions UML 2.0 et UML 2.1.1, et l'absence de version mineure indique que la documentation n'en fait pas mention.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
10/53
On remarque dj des associations privilgies entre UML et XMI. Afin dtre plus complet jai recens les versions de UML et de XMI existantes grce aux spcifications de lOMG *OMGMMS].
UML 1.3 UML 1.4 UML 1.5 UML 2.0 UML 2.1.1 UML 2.1.2 UML 2.2 UML 2.3 XMI 1.0 DTD XMI 1.1 DTD DTD DTD XMI 1.2 DTD XMI 1.3 XMI 2.0 XMI 2.1 XSD XSD XMI 2.1.1 Figure 10 : Associations entre UML et XMI
Les cases grises indiquent que les associations UML/XMI correspondantes nexistent pas. Les annotations DTD et XSD indiquent que les spcifications de lOMG incluent un document de validation des fichiers XMI. La premire remarque qui peut tre faite sur ce tableau est quil nexiste pas toujours une unique version de XMI permettant de srialiser les modles dune version dUML donne. Il convient aussi de noter que parmi toutes les spcifications dUML et dXMI seulement une partie est effectivement utilise par les AGL pour la srialisation de modles UML, savoir : UML 1.3 XMI 1.0 UML 1.3 XMI 1.1 UML 1.4 XMI 1.1 UML 1.4 XMI 1.2 UML 2.0 XMI 2.1 UML 2.1 XMI 2.1
Association n-aire oui oui oui oui Figure 11 : Equivalence des versions d'UML
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
11/53
(1) Est parfois implment sous forme de strotype de classe. Il n'est pas fait mention ici des mthodes car elles ne sont pas utilises. En effet le but des modles sur lesquels je vais travailler n'est pas de faire du dveloppement mais de la reprsentation de connaissances. Tous les objets sur lesquels se focalise cette tude sont prsents dans toutes des versions dUML. Ainsi un modle dcrit en UML 1 peut tre entirement dcrit avec UML 2 (ce qui est logique compte tenu de la compatibilit ascendante) et vice versa.
Il m'a donc fallu trouver un moyen de distinguer quelle est la bonne syntaxe pour dcrire ces objets. Mes recherches m'ont conduit vers des mthodes de validation des fichiers XML qui sont la DTD et le XSD. Ce sont deux manires plus ou moins restrictives de dcrire le contenu d'un fichier XML. Si un fichier XML respecte les rgles dictes par une DTD ou un XSD alors il est considr comme conforme cette DTD ou ce XSD. L'OMG a produit des DTD et XSD pour certains couples de version UML/XMI. Par exemple, pour UML 1.3 XMI 1.1, la structure conforme dune gnralisation est la suivante :
Grce ces schmas j'ai t en mesure de vrifier la validit des sorties des AGL par rapport aux spcifications de l'OMG.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
12/53
Les rsultats de la validation des sorties XMI sont rsums dans les tableaux ci-dessous :
UML 1.3 XMI 1.0 Enterprise Architect Enterprise Architect XMI 1.1
Objecteering
Objecteering
PowerAMC
PowerAMC PowerAMC
ArgoUML
ArgoUML
StarUML
UML / AGL Modle Package Classe Attribut Gnralisation Association Commentaire Enumration Classe d'association Association n-aire
(*)
(*)
(*)
Figure 15 : Conformit des AGL pour UML 1.3 UML 1.4 XMI 1.2 Enterprise Architect Enterprise Architect UML 2.1 XMI 2.1
Objecteering
Objecteering
PowerAMC
ArgoUML
ArgoUML
StarUML
UML / AGL Modle Package Classe Attribut Gnralisation Association Commentaire Enumration Classe d'association Association n-aire
(*) (*)
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
StarUML 13/53
Modelio
Modelio
BOUML
BOUML
Mega
Mega
StarUML
Modelio
Modelio
BOUML
BOUML
Mega
Mega
Lgende Conformit Conforme Non conforme (mais passe en traitement gnral) Non conforme (ncessite un traitement spcifique) Sortie non gnre Information manquante (*) Strotype : classe/attributs
On remarque que peu d'AGL sont totalement conformes. Cependant j'ai identifi un "degr de gravit" dans la non-conformit. Il consiste dire que les non-conformits qui sont traitables de la mme manire que les conformits sont peu graves. Tandis que les autres ncessiteront un traitement spcifique.
Pour un AGL la colonne de gauche reprsente les ports dentres XMI et celle de droite les ports de sorties. Les ports qui sont ouverts sont reprsents en vert, ceux ferms en rouge. Sur ce rseau nous pouvons voir que rien ne garanti la communication entre deux AGL et encore moins la communication dans les deux sens. Par exemple Bouml et StarUML sont incapables
me
Marc ZIMMERMANN
Rapport de stage de 3
anne
14/53
dchanger des modles, ArgoUML accepte la sortie XMI 1.2 de Bouml mais Bouml naccepte pas celle dArgoUML. A cela il faut ajouter les nombreuses et varies non-conformits des critures des fichiers XMI par les AGL. Elles diminuent d'autant plus l'interoprabilit. Ainsi on constate que, sans mcanisme intermdiaire, l'interoprabilit entre les AGL est plutt pauvre. On note malgr tout une amlioration pour UML 2 XMI 2.1. Il reste dterminer si cette amlioration rsulte dune relle volont dinteroprabilit ou du caractre rcent de ces versions.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
15/53
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
16/53
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
17/53
Les phases de dveloppement : Prise en compte du besoin et rdaction du cahier des charges Analyse et tude de faisabilit Conception de larchitecture du systme Conception des modules du systme Implmentation des modules Les objectifs des tests correspondant aux phases de dveloppement sont les suivants : le test unitaire : teste le bon fonctionnement dun module (indpendamment du systme) le test dintgration : teste le bon fonctionnement du systme lors de lajout dun module le test fonctionnel : vrifie que le systme rend bien les services attendus le test de validation : vrifie que le systme rpond bien aux exigences du cahier des charges
Pour la ralisation de chaque module les parties conception, implmentation et tests unitaires sont regroupes dans une itration. Une itration est la ralisation dune fonctionnalit du systme qui, une fois valide, est intgre au systme. Lintrt de fonctionner par itrations est de ne pas pouvoir remettre en cause, une itration donne, ce qui a t dvelopp antrieurement.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
18/53
Le cycle de dveloppement en Y traite en parallle la capture des besoins fonctionnels (que doit faire le module ?) et la capture des besoins techniques (comment raliser cette fonctionnalit ?). Une fois des rponses trouves ces deux questions limplmentation peut dbuter.
Ce plan de dveloppement a t suivi autant pour lapplication Java que pour la ralisation des transformations XSLT. En effet, pour XSLT la conversion de chaque objet UML a fait lobjet dune itration et pour Java ce sont les diffrentes fonctionnalits.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
19/53
3 Conception de la solution
Cette partie prsente la solution thorique cre pour raliser les objectifs du stage. Elle introduit le principe de fonctionnement des outils et explique le choix des technologies qui ont t retenues pour les ralisations.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
20/53
Concrtement nous pouvons identifier les principales feuilles de style raliser, par exemple pour les prtraitements de conformit, une feuille de style pour : PowerAMC UML 1.3 XMI 1.0 PowerAMC UML 1.3 XMI 1.1 StarUML UML 1.3 XMI 1.1 Pour les prtraitements de formatage une feuille de style par version XMI, soit quatre au total. Pour UML2OWL six feuilles de style correspondant aux transformations de chaque version UML/XMI vers OWL. Pour OWL2UML six feuilles de style correspondant aux transformations dOWL vers chaque version UML/XMI. La succession des traitements de ce workflow est implmente dans une application Java appele MOST. Les liens avec les feuilles de styles responsables des transformations sont raliss au moyen dun fichier de configuration.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
21/53
Lapplication accepte en entre un fichier (XMI ou OWL) et des commandes de lutilisateur. En fonction des commandes elle produit des sorties obtenues par transformation du fichier en entre avec les feuilles de styles et un processeur XSLT. Les parties suivantes prsentent respectivement les solutions dveloppes pour la ralisation des transformations XSLT et de lapplication MOST.
Marc ZIMMERMANN
Rapport de stage de 3
anne
22/53
3.2.1.1
Prtraitement de conformit
La nature et les diffrences entre les non-conformits identifies conduisent associer une transformation de conformit un triplet AGL, version XMI, version UML. Par exemple la sortie UML 1.3 XMI 1.0 de PowerAMC prsente des non-conformits, il lui sera donc associ un fichier XSLT dans lequel seront crites les transformations ncessaires pour la rendre conforme. De la mme manire sa sortie UML 1.3 XMI 1.1 aura elle aussi un fichier de transformation adapt. Chaque fichier de transformation de conformit agira ainsi de manire cible sur une sortie XMI non-conforme.
3.2.1.2
Prtraitement de formatage
Il sagit ici de rajouter des lments dans les fichiers XMI, qui ne sont pas ncessaires la conformit mais indispensables pour la conversion UML vers OWL. Ces lments sont un nom et un identifiant. Le tableau suivant rcapitule la ncessit pour les objets davoir un nom et/ou identifiant. Objet UML:Model UML:Package UML:Class UML:Attribute UML:Generalization UML:Association UML:AssociationEnd UML:DataType Identifiant oui oui oui non oui oui oui oui Nom oui oui oui oui non non non non
La phase de prtraitement de formatage peut tre applique de manire gnrique une version de XMI. En effet le test et lajout si besoin dun nom et dun identifiant ne requiert pas connaissance de la version dUML et de lAGL exportateur. Ainsi un seul fichier XSLT sera affect chaque version de XMI.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
23/53
Les agrgations reprsentent les relations dappartenance dun nud fils un nud parent au sens des arborescences. Par exemple en XMI un nud attribut appartient un nud classe. On remarque sur ces figures que le nombre dobjets UML est suprieur celui des objets OWL, cela implique qu un objet OWL seront associs plusieurs objet UML. Pour la ralisation des transformations UML vers OWL il faut bien garder lesprit que la transformation inverse doit ensuite pouvoir tre ralise. Il faut donc veiller ce que les transformations implmentes soient rversibles. Le tableau suivant rsume les associations entre objets UML et OWL qui ont t choisies pour raliser les conversions.
UML OWL Modle Ontologie Package Ontologie Classe Classe Attribut Datatype property Mthode (inutilises) Gnralisation (hritage) subClassOf Association Object property Agrgation Object property Composition Object property Commentaire Annotation property Type de donnes Type de donnes XSD Enumration Value Partition (Design Pattern) Classe d'association 2 Object properties Association n-aire Object properties Figure 29 : Correspondance UML-OWL
Modle et package Les modles et packages sont des conteneurs qui regroupent des classes appartenant un mme domaine. Ils reprsentent en quelque sorte un modle de donnes, cest pourquoi ce sont les ontologies qui vont leur tre associes.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
24/53
Classe Les classes sont utilises autant en UML quen OWL pour reprsenter des objets ou un ensemble dindividus. Elles seront donc associes lune lautre. Attribut Les attributs sont des proprits liant les classes dautres objets (gnralement des types de donnes). En OWL ce sont les datatype properties qui lient les classes aux types de donnes. La conversion entre attribut et datatype property se fera donc de la faon suivante :
Mthode
Dclaration(s) : 1 datatype property : hasNom Restriction(s) : 1 restriction sur la classe Organisation : hasNom some String
Les mthodes ne sont pas prises en compte dans ces transformations car les modles utiliss ne sont pas destins au dveloppement logiciel mais la reprsentation de connaissances. Gnralisation Le concept de gnralisation-spcialisation est prsent en UML et en OWL. En OWL il est matrialis par la relation de subsomption (intitule subclassOf en RDFS).
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
25/53
Association, agrgation et composition En XMI les associations, agrgations et compositions sont trs similaires. Elles dfinissent des relations entre les objets. En OWL les relations entre objets sont dfinies par des object properties. La conversion association-object property se fera comme suit :
Dclaration(s) : 2 object properties o hasAssociation_Organisation_Activit (inverseOf isAssociation_Organisation_Activit) o isAssociation_Organisation_Activit (inverseOf hasAssociation_Organisation_Activit) Restriction(s) : 2 restrictions sur la classe Organisation o has Association_Organisation_Activit min 0 Activit o has Association_Organisation_Activit max 9999 Activit Restriction(s) : 3 restrictions sur la classe Exercice o isAssociation_Organisation_Activit some Organisation o isAssociation_Organisation_Activit min 1 Organisation o isAssociation_Organisation_Activit max 1 Organisation
Ici on ne retrouve que deux restrictions sur la classe Organisation car la cardinalit minimum est nulle. Or la restriction some implique une cardinalit au moins gale 1. De plus on aperoit lapparition dun 9999 la place dune cardinalit *. Cest un choix dimplmentation, rpondant la contrainte quOWL ne gre les cardinalits que sous forme dentier, pas de chaine de caractres. Cet exemple met en vidence les deux cas particuliers. Dans le cas gnral on retrouve trois restrictions et les mmes cardinalits en UML et OWL. Les noms des object properties sont crs partir du type de lassociation (association, agrgation ou composition) et des noms des classes lies. Ce choix a t fait car les noms des associations et des rles ne sont pas toujours renseigns. Enumration Lnumration en UML est une collection dobjets. Il nexiste pas nativement de collections en OWL mais un Design Pattern a t crer dans ce but, cest la Value Partition.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
26/53
1. 2. 3. 4.
Crer une classe correspondant au nom de lnumration Crer des sous-classes correspondant aux objets de lnumration Dfinir les classes comme non quivalentes (owl:disjointWith) Crer un axiome de couverture pour que lnumration ne puisse pas avoir dautres items que ceux existants (owl:unionOf)
Classe dassociation Une classe dassociation en UML permet de donner des attributs pour qualifier une association. Le diagramme UML dune classe dassociation est reprsent ci-dessous.
Pour traduire une classe dassociation en OWL on peut la dcomposer en objets UML de base possdant dj des objets OWL associs. Par exemple, la premire solution envisage, dcompose la classe dassociation en une classe Localisation et une association entre Photo et Evnement. On associe ensuite les objets OWL correspondant, cest--dire trois classes OWL, des datatype properties pour les attributs de Localisation et des object properties pour lassociation. Cependant cette solution dtruit en OWL le lien qui existait entre la classe Localisation et lassociation. Afin de conserver au mieux le sens de la classe dassociation nous allons nous intresser un diagramme UML quivalent celui de la classe dassociation :
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
27/53
Ce diagramme reprsente sans perte de sens la classe dassociation. Cest donc celui-ci qui sera traduit en OWL. Il sagit ici de trois classes, deux attributs et deux associations. Ce sont des objets UML auxquels des objets OWL ont dj t associs. Association n-aire Bien que la transformation des associations n-aire ne soit pas encore implmente la solution qui est pressentie est de considrer toutes les associations quelles recouvrent et les traduire en object properties.
Commentaire Les commentaires en OWL sont matrialiss par des annotation properties. Parmi celles existantes deux sont utilises dans ces outils : rdfs:comment pour les commentaires et rdfs:label pour les noms des objets. Type de donne En UML il est possible de crer des types de donnes. En OWL2 ce sont les types de donne XSD qui sont utiliss.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
28/53
Le traitement dun package se fait de la manire suivante : 1. Import de la nouvelle ontologie dans lontologie courante 2. Cration du fichier contenant la nouvelle ontologie 3. Pour tous les packages fils : application de lalgorithme Traiter package 4. Pour toutes les associations : dclaration des object properties 5. Pour toutes les classes : application de lalgorithme Traiter classe Le traitement des packages se fait de manire rcursive, ce sont donc les packages feuilles (ceux qui nont pas denfants de type package) qui sont traits en premiers, ensuite on dpile les appels.
A une classe UML on associe une classe OWL. Les classes UML sont traites comme suit : 1. Pour tous ses attributs : dclaration de datatype properties (elles sont ainsi dclares dans lontologie) 2. Cration de la classe OWL 3. Ecritures des restrictions lies aux datatype properties (attributs de la classe UML) 4. Ecritures des restrictions lies aux object properties (associations de la classe UML) 5. Ecritures des restrictions subClassOf (lies aux hritages de la classe UML)
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
29/53
Traiter une ontologie cest : 1. construire le package UML correspondant 2. traiter les ontologies importes 3. traiter ses classes
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
30/53
Le traitement dune classe OWL suit la logique suivante : 1. Cration de la classe UML correspondante 2. Pour toutes les restrictions de type datatype property : crer un attribut 3. pour toutes les restrictions du type subClassOf : crer une gnralisation 4. pour toutes les restrictions du type object property : crer une association
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
31/53
MOST propose deux types de transformations : UML vers OWL et OWL vers UML. Pour chacune de ces transformations lutilisateur doit spcifier un fichier transformer (XMI ou OWL) et choisir un fichier de transformation (XSLT). L'application dispose de la possibilit de configurer les transformations qu'elle propose aux utilisateurs. On distingue deux types d'utilisateurs de l'application MOST : l'utilisateur standard qui peut uniquement transformer des fichiers l'utilisateur spcialiste, qui hrite de l'utilisateur standard, peut configurer les transformations mises disposition par l'application
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
32/53
3.3.1.1
Les cas dutilisations du mode de transformation UML2OWL sont dtaills dans la figure cidessous :
Le mode de transformation UML vers OWL permet de transformer un modle UML en ontologie. Pour cela lutilisateur doit dans un premier temps choisir le fichier XMI quil souhaite transformer. Une fois ce modle choisi, lapplication affiche les versions dUML, dXMI et lAGL utiliss pour crer ce fichier. En fonction de ces informations elle dtermine aussi quelles sont les meilleures transformations appliquer au fichier et les prslectionne. Une fois le fichier renseign, lutilisateur a la possibilit de vrifier sa validit par rapport une DTD ou un XSD. Cette opration nest pas obligatoire. Lutilisateur choisi ensuite les prtraitements de conformit et de formatage appliquer au fichier avant transformation. Lapplication de prtraitement de conformit nest pas obligatoire. Enfin lutilisateur choisi le fichier de transformation UML vers OWL parmi ceux proposs et lance la transformation. Le mode de transformation OWL2UML ne propose que la slection du fichier dentre et le choix de la transformation.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
33/53
3.3.1.2
Lapplication MOST est configurable grce un fichier ini. Le chargement et la sauvegarde de ce fichier se font automatiquement au lancement et larrt de lapplication. Configurer lapplication signifie choisir les transformations quelle propose. En cours dutilisation les acteurs peuvent ajouter, modifier ou supprimer des transformations. A chaque modification le fichier de configuration est sauvegard. Le but de la configurabilit de cette application est dabsorber au maximum les nombreuses volutions du contexte de lapplication, savoir : version UML, version XMI et AGL. Ces oprations naffectent que les fichiers XSLT et ne ncessitent pas de modifier le code de lapplication et de la recompiler.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
34/53
Le gestionnaire de transformation : cest lui qui possdera la responsabilit des transformations appliquer au fichier dentre.
Le fichier de configuration : un fichier de configuration est un fichier possdant des sections qui contiennent des paramtres (cl=valeur). La structure de donne choisie pour modliser un fichier de configuration est une table de hachage contenant des tables de hachage donnant accs des valeurs.
Le gestionnaire de configuration : il a la charge dinteragir avec le fichier de configuration. C'est--dire le lire, le sauvegarder et mettre disposition ses informations. Linterface graphique : lapplication se prsentera sous la forme dun wizard .Cela permettra lutilisateur de suivre le processus de transformation de manire intuitive. Ce wizard sera modlis la manire dun diaporama, cest--dire une JFrame qui sert de conteneur des JPanel qui dfilent par actions sur des boutons Suivant et Prcdent. Une classe principale MOST qui possde tous les composants principaux, cest--dire les gestionnaires et linterface graphique. Cest le point dentre de lapplication, il est modlis grce au Design Pattern singleton. Lidentification des classes candidates et ldition des diagrammes de classe permettent de crer le squelette de lapplication et dy placer ses principaux organes.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
35/53
Les diagrammes de squence donnent une vue temporelle des changes de messages entre les classes du modle. Ils rpondent la question : Quel est lordre des changes de messages ?
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
36/53
Les diagrammes de collaboration et de squence permettent de dcrire, pour chaque fonctionnalit de lapplication, les enchainements de messages changs entre les classes. On a alors mis en place les communications entre les diffrents organes de notre application. Larchitecture de lapplication est dsormais compltement dcrite et prte pour limplmentation.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
37/53
Bien que les deux restantes soient libres dutilisation, compatible XSLT 2.0 et disponibles en librairie pour .Net et pour Java cest Saxon qui a t choisie comme processeur XSLT plutt quAltovaXML. Le choix ne sest pas fait sur les performances de ces librairies mais sur leurs supports. En plus dtre la plus rpandue et la plus ancienne Saxon bnficie dune Javadoc trs complte [SAXON]. Si cela ne suffit pas le dveloppeur peut entrer directement en contact avec le concepteur et dveloppeur de Saxon, qui se trouve aussi tre lauteur de la recommandation W3C sur XSLT 2.0.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
38/53
4 Ralisations
Dans cette partie sont prsents les principales ralisations et les rsultats concrets.
A lexcution le processeur recherche la template rule la plus adapte un nud. Cest de cette manire que la template rule spcialise remplace lappel de la template rule gnrique. Ainsi lors de la recopie de cet lment on va pouvoir lui appliquer un traitement adapt.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
39/53
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
40/53
Dans la suite de cette partie nous allons prsenter les transformations UML vers OWL au travers dun exemple bas sur un modle UML de test. Dans cet exemple ce nest pas la pertinence de la modlisation qui est recherche mais sa simplicit et sa capacit couvrir les principaux cas de figures. Le modle Ecole est dcrit par les diagrammes de classes suivants :
Afin de visualiser les rsultats de ces transformations nous allons utiliser lditeur dontologies Protg 4 [PROTEG]. Il offre une vue de la hirarchie des classes (vue graphique avec le plug-in Graph Viz), des object properties et des datatype properties.
Modles et packages Chaque modle ou package est transform en une ontologie stocke dans un fichier OWL. Les liens entre ces ontologies sont matrialiss par le mot cl owl:imports. Dans cet exemple nous disposons dun modle : Ecole, et de trois packages Ecole Ingenieur, Acteur et Infrastructure. Ldition de lontologie Ecole fait apparaitre les imports suivants :
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
41/53
On remarque deux types dimports : - les imports directs : ontologies directement importes - les imports indirects : ontologies importes par des ontologies importes (directement ou indirectement) Classes et gnralisations Conformment aux algorithmes dfinis plus haut une classe OWL est associe chaque classe UML. Et les relations de gnralisation-spcialisation sont dcrites par le mot cl rdfs:subClassOf. La hirarchie des classes se prsente alors sous la forme suivante :
Attributs
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
42/53
On peut ici remarquer le fait quOWL distingue bien deux datatype properties ayant le mme nom, celle associe Personne et celle associe Ecole Ingenieur. Des restrictions sont ensuite associes aux classes OWL, par exemple pour la matire enseigne par un enseignant comme le montre les figures ci-dessus. Associations Pour chaque association on dclare deux object properties inverses nommes par les classes quelles lient.
Des restrictions sont ensuite ajoutes aux classes avec les cardinalits correspondant aux associations. Par exemple :
Plusieurs remarques peuvent tre faites ici : - Le nombre de restrictions varie effectivement en fonction de la cardinalit minimum (si 0 alors pas de some) - Pour lauto-association Personne-Personne les deux proprits inverses apparaissent (is et has).
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
43/53
Enumrations Les numrations sont associes au design pattern value partition. Les principaux points de ce design pattern sont dtaills ici : La hirarchie des classes :
Laxiome de couverture :
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
44/53
Il est normal que lnumration Nom_Ecole_Ingenieur napparaisse pas dans ce modle car au moment de la rdaction de ce rapport elles ne sont pas encore traites par OWL2UML. Cependant une erreur apparait, cest la transformation des agrgations en association entre les classes Ecole_Ingenieur et Materiel et Ecole_Ingenieur et Personne. Ce problme est d aux non-conformits de StarUML. En effet la DTD associ UML 1.3 XMI 1.1 prvoit pour les marqueurs des agrgations la valeur shared, or StarUML utilise la valeur aggregate.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
45/53
La solution est simple : dans le fichier XMI il suffit de remplacer toutes les occurrences de shared par aggregate. Autrement dit il faut rendre la sortie des outils non-conforme.
4.1.4.1
Deux types de modles ont t utiliss pour raliser les tests : les modles simples et les modles dintgrations. Ils sont respectivement utiliss pour les tests unitaires et les tests dintgrations. Les modles pour les tests dintgrations sont enrichis chaque nouvel objet UML qui est trait. A lissue de chaque application dune transformation un modle la sortie est tudie scrupuleusement. Le but est de vrifier que ce qui tait trait ltape prcdente lest toujours identiquement et que les nouveaux traitements sont oprationnels. Les rsultats de ces tests sont reprsents dans un tableau comme suit :
UML 1.3 UML to OWL Modle Package Classe Attribut Gnralisation Association + Type + Multiplicits Commentaires Enumration Figure 66 : Tableau de validation des transformations 1 seule UML 1.4 UML 2.1
XMI 1.0 XMI 1.1 XMI 1.1 XMI 1.2 XMI 2.1
Une fois les rsultats jugs satisfaisants le passage litration suivante est autoris.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
46/53
4.1.4.2
Tests de robustesse
Les modles UML rels tant plus complexes et plus volumineux ils ont t utiliss pour des tests de robustesse. Il sagit ici de vrifier le fonctionnement des transformations en conditions relles. Le tableau suivant dcrit quantitativement les modles utiliss pour ces tests.
lignes packages classes attributs gnralisations associations 31203 43 263 496 235 165 944 5 29 58 674 2 21 37 945 2 23 48 10800 1 90 363 4420 4 40 60 Figure 67 : Dtails des modles rels 20 4 14 5 14 10 11 7 172 61
GIEA SIE Pesticides +Activits mtrologiques +Gestion exploitation +Pratiques agricoles SIGEMO SYNAPSE
Ces modles ont aussi servi valider les transformations auprs des clients. Ces derniers connaissant bien leurs modles, ils ont t mme de vrifier la validit des donnes en sorties des transformations. Un premier jalon a t pass le 13 Juillet et a abouti la validation des transformations dans ltat o elles se trouvaient cette date.
4.2.1.1
Interface graphique
Le premier prototype est celui de linterface graphique de MOST. Sa premire version sous forme dinterface statique trois onglets na pas t valide. La raison est que le processus de transformation ntait pas intuitif apprhender avec une telle interface. La seconde version sest naturellement oriente vers un wizard cest--dire une application graphique pas--pas. Lenchainement des tapes se prsente sous la forme suivante :
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
47/53
4.2.1.2
Le second exemple de principe vise prouver que les transformations XSLT sont possibles depuis Java et Saxon. Trivialement la rponse est oui puisque cest le but mme de la librairie. En quelques lignes de code on peut appliquer une transformation un fichier XML. De plus il est possible de remonter les erreurs et avertissement lutilisateur (dans un panneau de texte par exemple). Dfinition de la librairie Saxon comme fabrique de transformations :
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
48/53
4.2.1.3
Gestion de la configuration
Troisime tape : rendre lapplication configurable par utilisation dun fichier ini. Cest une technique largement utilise dans le domaine du dveloppement logiciel et il existe des classes limplmentant dans divers langages objets. Bien que des codes existent dj jai tout de mme cr mes propres classes de gestion de fichier de configuration. Le principe reste toujours le mme : utilisation de tables de hachage et structure du fichier du type : [section] avec cl=valeur.
4.2.1.4
La dernire fonctionnalit de MOST vrifier est la validation de fichiers XML par DTD et par XSD. Ces techniques sont conceptuellement similaires mais diffrent quelque peu dun point de vue technologique. Pour la validation par DTD il faut en premier ajouter un doctype, cest une rfrence au fichier contenant la DTD que doit respecter le fichier XML. Ensuite on utilise un parser qui lit le fichier XML et dtecte les erreurs de conformit. Pour la validation par XSD pas de doctype mais un parser diffrent pour lequel on spcifie un fichier XSD. De la mme manire le parser lit le fichier et remonte les erreurs de conformit dans un panneau de texte ddi.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
49/53
1. 2. 3. 4.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
50/53
5 Rsultats et prolongements
Cette ultime partie dresse un bilan du travail ralis et donne les perspectives davenir des ralisations.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
51/53
lapparition de doublons dans les datatype properties signifie que deux classes ont un mme attribut. Il serait peut-tre judicieux de faire hriter deux classes ayant un mme attribut dune classe mre a qui on laffecterait. Ainsi les ontologies donnent une autre vue des modles qui pourraient permettre de rflchir sur la modlisation et ventuellement de la retravailler.
5.2 Bilan
Le travail dj ralis contribue efficacement linteroprabilit des donnes entre ateliers de gnie logiciel. Ainsi il accompagnera les changements dAGL utiliss par le Cemagref dans un premier temps, puis par dautres par la suite (ces outils de transformations ont pour projet dtre libres dutilisation). Ils seront potentiellement intgrs dans le travail dun autre stagiaire dont le but est la cration dun outil collaboratif de production de connaissance afin dajouter des donnes provenant dUML, ces connaissances tant stockes sous forme dontologies. Sur un plan plus personnel ce stage ma permis dacqurir de nouvelles comptences techniques grce la maitrise des langages XML et XSLT, et dapprofondir mes connaissances en UML et en programmation Java. Le travail sur les ontologies ma aussi ouvert une nouvelle approche des modles : par la smantique et la logique. Jai aussi progress dans ma mthode de travail et dans lorganisation des tches accomplir ainsi que dans lanticipation de celles venir. Enfin ce stage ma permis de dcouvrir les activits du Cemagref, plus particulirement en Auvergne, et le monde de la recherche.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
52/53
Conclusion
Malgr un standard ddi, XMI, ltude ralise au cours de ce stage montre que linteroprabilit des donnes entre les ateliers de gnie logiciel nest pas compltement oprationnelle. Cest la consquence des volutions indpendantes des normes UML et XMI et du non respect de ses normes par les diteurs de logiciels. Lobjectif de ce stage est atteint car des outils de transformation bass sur XSLT ont t dvelopps pour produire les sorties OWL et XMI correspondant un modle UML. Ces outils, valids par des tests sur des modles rels, sont intgrs dans une application Java, appele ModelOntology Stylesheet Transformation, entirement configurable. Il est plus que probable que ces travaux ncessitent dtre prolongs afin de prendre en charge les versions dUML et dXMI venir. En consquence je laisse disposition des futurs dveloppeurs une structure de travail propice la reprise de ces outils. En effet, tout dabord lapplication MOST permet dintgrer de nouvelles transformations sans avoir redvelopper. Ensuite la base de tests existante permettra au dveloppeur de valider ses travaux. Enfin les documents de spcification de ltude mene constitueront une aide pour se familiariser avec les outils et leur contexte. Ainsi, bien que de nouveaux dveloppements paraissent invitables, les outils raliss au cours de ce stage amliorent dj cette interoprabilit. Au Cemagref ils seront utiles pour la conservation des donnes lors de la migration vers de nouveau AGL. Par la suite ces outils seront distribus librement et pourront tre utiles dautres organismes. Pour moi ce stage a t loccasion de mettre en pratique et dapprofondir mes connaissances en UML et programmation Java. Il ma permis de maitriser de nouvelles technologies et de me familiariser avec le monde de la recherche au travers des activits du Cemagref.
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
53/53
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
Figure 48 : Diagramme de collaboration : Modifier la configuration.................................................... 36 Figure 49 : Diagramme de squence : Modifier la configuration.......................................................... 37 Figure 50 : Template rule gnrique ..................................................................................................... 39 Figure 51 : Template rule spcialise .................................................................................................... 39 Figure 52 : Template rules pour le traitement des packages ................................................................ 40 Figure 53 : Diagramme de classe Ecole ................................................................................................. 41 Figure 54 : Ontologies du modle Ecole ............................................................................................... 42 Figure 55 : Classe OWL du modle Ecole (Graph Viz) ........................................................................... 42 Figure 56 : Datatype properties du modle Ecole................................................................................. 42 Figure 57 : Restriction lie aux attributs ............................................................................................... 42 Figure 58 : Object properties du modle Ecole ..................................................................................... 43 Figure 59 : Restrictions lies aux associations ...................................................................................... 43 Figure 60 : Classes de la Value Partition................................................................................................ 44 Figure 61 : Classe OWL disjointes .......................................................................................................... 44 Figure 62 : Axiome de couverture ......................................................................................................... 44 Figure 63 : Modle Ecole reconstruit .................................................................................................... 45 Figure 64 : DTD UML 1.3 XMI 1.1 .......................................................................................................... 45 Figure 65 : Agrgation StarUML non conforme .................................................................................... 46 Figure 66 : Tableau de validation des transformations ......................................................................... 46 Figure 67 : Dtails des modles rels .................................................................................................... 47 Figure 68 : Enchainement des crans de MOST .................................................................................... 48
Marc ZIMMERMANN
Rapport de stage de 3
me
anne
Rfrences bibliographiques
[JAVA2] Java 2 Platform, Standard Edition, v 1.4.2 API Specification http://java.sun.com/j2se/1.4.2/docs/api/index.html Java pour les ZZ Cours ISIMA 3, filire Calcul et Modlisation Scientifiques Loc YON Mthodes et Outils de Dveloppement Logiciel. Cours tronc commun ISIMA 2 Christine FORCE Catalog of OMG Modeling and Metadata Specifications http://www.omg.org/technology/documents/modeling_spec_catalog.htm A Practical Guide To Building OWL Ontologies Using Protg 4 and CO-ODE Tools Edition 1.2 Matthew Horridge The University Of Manchester March 13, 2009 Saxon9 Javadoc http://www.saxonica.com/documentation/javadoc/index.html UML en Franais http://uml.free.fr/ OWL Web Ontology Language http://www.w3.org/TR/2004/REC-owl-features-20040210/ W3C Recommendation Extensible Markup Language (XML) http://www.w3.org/XML/ XSL Transformations (XSLT) Version 2.0 http://www.w3.org/TR/xslt20/ W3C Recommendation XSL Concepts and Practical Use http://nwalsh.com/docs/tutorials/xsl/xsl/frames.html Paul Grosso, Norman Walsh
[JAVAZZ]
[MODL]
[OMGMMS]
[PROTEG]
[SAXON]
[UMLFr]
[W3COWL]
[W3CXML]
[W3CXSL]
[XSLPra]
Marc ZIMMERMANN
Rapport de stage de 3
me
anne