Post on 10-Jan-2016
description
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