1 xmi 2 JavAct Etude de l'environnement de développement Eclipse pour la conception...

Preview:

Citation preview

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