Notre DSL est d´evelopp´e sous la conception de regrouper des ´el´ements en trois composants : Model , View et Control . Cela nous permet de r´ealiser la transformation de code pour les plateformes sp´ecifies. Parce qu’on a bien concevoir le
structure, on peut transformer le code facilement. Il soutient ´egalement la modification plus facile de mod`ele si l’exigence a chang´ee. La figure4.1est la structure de notre DSL.
Figure 4.1:Le concept de DSL
4.1.1.1 Application
Application joue le rˆole comme la racine de notre arbre qui contient les composants de View , Model et Control. L’objet principal contient toutes les informations de base sur une application. Chaque projet doit contenir exactement un objet principal qui peut ˆetre dans un contrˆoleur arbitraire.
4.1.1.2 Model
Modelest le premier ´el´ement dans l’arbre est le Model. Dans la partie de model, le structure des attributs et des valeurs des param`etres sont d´ecrits.
Ces attributs seront d´efinissent le type, le nom et la description d’entit´e. Le type des attributs peut ˆetre String , Integer , Float , Boolen ou Array.
4.1.1.3 View
View est le deuxi`eme ´el´ement. Les ´el´ements de la partie de View sont la mise en page (Layouts) et des composants d’interface (Widget).
Pour les layout , on a maintenant d´efinit juste 2 types , c’est table layout
et linear layout . Chaque type de layout doit ˆetre d´efinit ses param`etre de caract`eres par exemple : la taille, la dimension, la marge, l’orientation, la gravit´e, le colon etc.
Pour les widget , on a d´efinit le widget de base pour les applications mobiles comme TextView, Button, Label, ImageView, TextInput, RadioButton.
TextView et Label servent `a pr´esenter des texts pour l’utilisateur. LeTextView
est d´efinit par le mot-cl´e TextView suivi son nom et dans le parenth`ese contient ses propri´et´es. C’est la mˆeme pour le Label mais ceci indiqu´e par le mot-cl´e Label.
Botton permet `a l’utilisateur la possibilit´e d’appeler des actions qui ont ´et´e li´es `a des ´ev´enements de la touche. Pour la d´efinition de bouton, il est indiqu´e par le mot-cl´e Botton suivi son nom et il existe la d´efinition par d´efaut suivant.
ImageView sert `a afficher l’image aux utilisateurs. Il est indiqu´e par le mot-cl´e
ImageView suivi son nom et le chemin o`u se trouve l’image. Et dans le parenth`ese se compose ses description.
TextInput est un champ pour mettre des entr´ees de l’utilisateur, indiqu´e par le mot-cl´e TextInputsuivi son nom et ses descriptions dans la parenth`ese.
RadioButton sert `a d´efinir le choix, il peut y avoir plusieurs choix comme une liste des choix. La valeur esttrue et false.
4.1.1.4 Control
Control est la derni`ere partie de notre DSL. Il sert `a d´efinir des actions de l’application. Les ´el´ements de View et les donn´ees de Model sont reli´es avec les actions par la d´esignation dans le control. Une classe de control peut se contient plusieurs actions. Chaque action est d´ecrite en forme de codeFragment . Pour l’instant, on peut d´efinir les actions par les ´ev´enements de base commeonTouch,onLeftSwipe
, onRightSwipe , etc. pour les ´el´ements de la partieView et faire le mappage entre les ´el´ements deViewet de Model. Les images suivantes repr´esentent quelques parties du code des descriptions de la partie de Control.
Pour les actions qui se pr´esentent dans notre DSL, il y 9 actions. La forme pour d´ecrire ces actions sont d´efinies dans l’ActionDef.
– InvokeActiviyAction: cette action sert `a fait l’appel d’autre actions qui sont d´efinies. La d´efinition de InvokeActiviyAction commenácant par le mot-cl´e
invoke suivi par le nom d’action dont on a envie d’appeler.
– GoToURLAction: cette action est utilis´e lorsque l’application se compose de la fonction d’acc´eder `a l’Internet. La d´efinition de GoToURLAction com- menácant par le mot-cl´egoto suivi par l’url du site-web destinataire.
– SetIntent: cette action permet de transformer des informations entre les classes dans une application. Par laquelle on d´efinit des informations d’envoyer sur la d´efinition commenácant par le mot-cl´esetIntent. Dans le cas o`u l’information envoy´e est pris d’un ´el´ement de l’interface (par exemple : TextInput), on doit d´efinir le nom du ´el´ement View suivi par le nom de classe destinataire.
– GetIntent: cette action permet de transformer des informations entre les classe dans une application aussi mais c’est au niveau de r´ecepteur. La d´efinition de
GetIntent commenácant par le mot-cl´e getIntent suivi par leWidget
qui va repr´esenter l’information envoy´e par exemple le TextView,l’ImageViwer.
– DrawLine : cette action permet de faire le graphique de d´esigner un line. Sa d´efinition commenácant par le mot-cl´edrawlineet puis la coordonn´e `a partir et d’extr´emit´e.
– DrawRactangle : cette action permet de faire le graphique de d´esigner un carr´e. Sa d´efinition commenácant par le mot-cl´e drawractangle et la coor- donn´e du cˆot´e `a gauche, `a sup´erieur, `a droit, `a inf´erieur du rectangle `a tirer.
– DrawTable: cette action permet de faire le graphique de d´esigner un tableur carr´e. Apr`es le le mot-cl´e drawtable , on doit d´efinir dans o`u le tableur affichera, ensuit c’est la taille en unit´e carr´e, la couleur de la bordure et la taille de la bordure.
– MappingTask: Les ´el´ements deView et les donn´ees de Model sont reli´es par cette action. La d´efinition deMappingTaskcommenácant par le mot-cl´e
mapsuivi par le nom de l’´el´ementViewqui sera le pr´esentateur. Ensuit c’est l’´el´ement de l’attribut d´efinit dans le Model.
– ShowScreen: C’est l’action qui soutient la fonction de l’affichage de l’interface.
Sa d´efinition commence avec le mot-cl´e showScreen suivi par le nom de l’interface.
Apr`es avoir r´ealis´e le DSL pour notre domaine, on doit exporter notre langage en forme de plugin pour l’utilisation de mod´eliser et de r´ealiser la transformation de mod`ele PSM. Une fois on a le plugin, on importe le plugin de MobileAppDSL dans notre Eclipse IDE.