1
xmi2JavAct
Etude de l'environnement de développement Eclipse pour la conception d'applications
d'acteurs
De l’UML aux agents répartis
2
PLANPLAN• Présentation
Problématique• Etude de faisabilité
Eléments utilisés & étapes Récapitulatif chronologique
• Méthodologie Etude Eclipse
Qu’est-ce que c’est ? Sa structure
Autres étapes• Résolution
Présentation de la production• Cas concret• Conclusion
Bilan Perspectives Retour sur expérience
3
PRESENTATIONPRESENTATION
• Problématique
UML JavAct?
4
ETUDE DE FAISABILITEETUDE DE FAISABILITE• Cycle de développement
90% du projet : recherches d’une solution adéquate Programmation : tardive, résulte de l’étude
• Peu de réalisation Etude des possibilités avant production
(la partie la plus importante du projet est l’étude) Réalisation d’un logiciel si recherches convaincantes
• Approches possibles Outils de génération UML Java (modifier pour générer du JavAct) Utilisation du format XMI pour générer directement du JavAct
• Pas de processus conventionnel Il ne s’agit pas d’un projet logiciel
• Réalisation d’un prototype Résultant de l’étude & des conclusions Production d’une documentation (étude & logiciel)
• Tests unitaires Tests réalisées au cours de la production
(pas de tests unitaires : programmation finale)
5
EMPLOI DU TEMPSEMPLOI DU TEMPS
Semaine 9 :Présentation du TER
Semaine 11 :-Plan qualité-1ère étude de Javact
Semaine 13 :-XMI-Parsers
Semaine 10 :- JavAct- Cahier des charges
Semaine 12 :Présentation IDE Eclipse
Semaine 14 à 16 :Ebauche d’un programmeDe traitement du XMI
6
EMPLOI DU TEMPSEMPLOI DU TEMPS
Semaine 17/18 :Présentation JavAct
Par le client
Semaine 20 à 23 :-Plug-ins Omondo-Poséidon (Templates)
Semaine 19 :-Signaturecahier des charges-Présentation recherchesplug-ins et problèmeJavAct
A partir de la semaine 24 :Choix de la solution XMIDébut de programmation du prototype et réalisation de la documentation
7
METHODOLOGIEMETHODOLOGIE
• Etude IDE EclipseStructure orientée plug-in
Extensible
Plug-in Plug-in
Plug-in
8
ECLIPSEECLIPSE• Plate-forme de développement d’applications• Structure
Noyau Points d’extensions (plug-ins)
JDT (Java Development Toolkit) PDE (Plug-in Developer Environment)
Eclipse Platform
Workbench
Workspace
Help
VCM
JFace
SWT
Platform Runtime
9
ECLIPSEECLIPSE
• Définit les points d’extensions• Maintient la cohérence• Charge les plug-ins au moment de l’utilisation
Workspace
Platform Runtime
10
ECLIPSEECLIPSEWorkspace
• Gestionnaire de ressources• API de création et gestion des productions des plug-ins
Workbench
11
ECLIPSEECLIPSE
• Interface utilisateur Navigation au sein des ressources Utilisation des plug-ins
• Points d’extensions pour l’ajout de composants graphiques• API pour développement d’interfaces graphiques
JFace SWT
Workbench
JFace
SWT
12
ECLIPSEECLIPSEJFace
SWT
• Standard Widget Toolkit Outils bas niveaux Indépendant du système Garantie l’intégration et la
portabilité
• Applications de constructions Eléments graphiques bas
niveau Gestion de widgets
Help
VCM
13
ECLIPSEECLIPSE
HelpVCM
• Gestionnaire de version • Aide Plug-ins d’aide Plug-ins de documentation Plate-forme d’aide en ligne
14
METHODOLOGIEMETHODOLOGIE
• Recherche Plug-ins UMLEMF, Argo2Ecore, OmondoPersonnalisation de l’existant
• Différentes approchesCréation plug-in traitement XMITemplates (Poséidon)
Règles de traduction
15
LE FORMAT XMILE FORMAT XMI
• Qu’est-ce que c’est ?Langage de balisesReprésentation arborescenteDescription textuelle des diagrammesGénéré par les logiciels UML
• IntérêtsEquivalence sémantique UML ↔ XMIUtilisation d’un parser pour générer le code
Facilité d’utilisationPossibilité d’intégration à Eclipse (langage Java)
16
RESOLUTIONRESOLUTION
• Prototype xmi2JavActMéta-modèle
Données des diagrammes
ParserInstanciation du Méta-modèle
TraducteurExploitation du Méta-modèleProduction sources JavAct
17
META-MODELEMETA-MODELE
18
CAS CONCRETCAS CONCRET• Opération F – G
19
CAS CONCRETCAS CONCRET Fichier XMI : n lignes<?xml version = '1.0' encoding = 'UTF-8' ?><XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Thu Jun 24 17:19:59
GMT+01:00 2004'> <XMI.header> <XMI.documentation> <XMI.exporter>Netbeans XMI Writer</XMI.exporter> <XMI.exporterVersion>1.0</XMI.exporterVersion> </XMI.documentation> </XMI.header>
m lignes correspondants aux éléments graphiques<XMI.content> <UML:Diagram xmi.id = 'di$be8c3e:fd4b98e69e:-7ff9' isVisible = 'true' name = 'DC‘ zoom =
'1.0010000000000001'> <UML:GraphElement.position> <XMI.field>0.0</XMI.field> <XMI.field>0.0</XMI.field> </UML:GraphElement.position> <UML:GraphNode.size> <XMI.field>616.5098</XMI.field> <XMI.field>443.0</XMI.field> </UML:GraphNode.size>…
20
CAS CONCRETCAS CONCRET p lignes correspondants aux données du diagrammes
…
<UML:Interface xmi.id = 'sm$be8c3e:fd4b98e69e:-7fb6' name = 'Sub' visibility = 'public'
isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref = 'sm$be8c3e:fd4b98e69e:-7fea'/>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Operation xmi.id = 'sm$be8c3e:fd4b98e69e:-7f9d' name = 'sub' visibility = 'public'
isSpecification = 'false' ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential'
isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id = 'sm$be8c3e:fd4b98e69e:-7f85' name = 'return' isSpecification = 'false‘ kind = 'return'>
<UML:Parameter.type>
<UML:DataType xmi.idref = 'sm$be8c3e:fd4b98e69e:-7fbf'/>
</UML:Parameter.type>
</UML:Parameter>…
m ≈ 92 % n (m >> p)
21
CAS CONCRETCAS CONCRET Code généré par le prototype
public class InterAdd implements Add {}
public class InterSub implements Sub {}
/** @stereotype <<BehaviorPart>> */public interface Sub extends BehaviorProfile, ActorProfile { public void sub(int x) ;}
/** @stereotype <<BehaviorPart>> */public interface Add extends BehaviorProfile, ActorProfile { public void add(int x) ;}
/** @stereotype <<Acteur>> */public interface Inter extends AddSub {}
/** @stereotype <<BehaviorPart>> */public interface AddSub extends Add, Sub, BehaviorProfile, ActorProfile { public void become(Add beh) ; public void become(Sub beh) ;}
22
CONCLUSIONCONCLUSION
• BilanTER
Première approche du travail en équipeRespect des contraintes
ProjetEtude aboutiePrototype fonctionnelRéutilisable et extensible
23
CONCLUSIONCONCLUSION
• PerspectivesEvolution en fonction de JavActIntégration à Eclipse
• Retour sur expérienceMeilleure répartition du travail
Développement plug-in XMI plus tôtRecherches en parallèle
Réunions plus espacées
24
xmi2JavAct
De l’UML aux agents répartis
Projet réalisé par l’équipe SLAMSIFISROUGEMAILLE Sylvain : Chef de projetCABANAC Guillaume : Responsable documentationROUHAUD Olivier : Qualiticien
Client (Equipe PS – IRIT TOULOUSE III RANGUEIL)M. MIGEON Frédéric : Maître de conférenceMme. MAUREL Christine : Maître de conférence
RemerciementsM. MIGEON et Mme. MAUREL pour leur disponibilité et leur patienceM. MILLAN pour son aide au cours de notre étudeM. CHERBONNEAU responsable du module TER
xmi2JavAct
Top Related