Exemple d'un projet avec DSML (Domain Specific Modeling
Language)
Dans le projet DSML nous allons ici traiter le cas d'une
application dans le domaine de la téléphonie mobile. Le projet
est de faire une application pour s'enregistrer à une conférence
depuis son téléphone portable. Nous sommes ici dans un domaine
métier propre. Il est délimité, ce qui sous entend qu'on a
un grand besoin de productivité, d'où l'utilisation du DSML. Si
on doit faire une similitude avec UML, on peut dire que le DSML s'apparente
à un diagramme d'activité enrichi. Tout projet DSML commence par
un noeud initial, chaque étape est modélisée sous une
forme graphique compréhensible. Pour chacune d'elle il y a aussi la
possibilité de donner l'étape suivante en fonction du choix de
l'utilisateur. Pour mettre un terme à une suite d'instructions on met un
noeud final qui va marquer la fin de l'activité en cours.
Figure 28 : Exemple d'un projet avec un
DSML
Dans un projet avec DSML les modèles sont accessibles
et sont faits par des experts métier et pas forcément des
développeurs/analystes. En effet, c'est un langage avec peu de concepts,
tout est graphique et donc beaucoup plus compréhensible. Le niveau
d'abstraction est meilleur, donc il y a une utilisation de concepts propres au
domaine de modélisation.
Les générateurs de code intègrent
directement les librairies du Framework/plateforme d'exécution. Ainsi on
a 100% du code généré avec peu de maintenance à
faire car tout le savoir-faire est dans les générateurs.
L'utilisation de DSML a conduit à beaucoup de "success
stories" telles que :
· Nokia qui est de 300% à 1000% plus productif.
David Narraway, chef de projet chez Nokia "UML and other methods and
technologies say nothing about mobile phones. We are looking for more".
· US Air Force 300% plus productif
· Alcatel Lucent plus de 300% plus productif, et a
développé plusieurs DSMLs pour leurs clients.
Figure 29 : Retombées économique, Source
MetaCase 2009
Nous avons avec les DSML un time-to-market plus court, un
feedback plus rapide avec les clients, une réduction des coûts (si
répétition + plusieurs variantes). Le nombre de participants au
projet devient potentiellement plus grand donc une réduction des
coûts de formation. David Narraway "Nokia case showed that the domain
knowledge contained in the modeling language produced faster learning curve for
new employees or transferred personnel. Before, a new developer becomes
productive after 6 months. 2 weeks with the DSML".
B. La génération
d'interfaces graphiques
Comme nous l'avons vu dans l'état de l'art il existe de
nombreux éditeurs graphiques se basant sur le drag and drop (glisser et
déposer). Le principe est très simple : nous avons à
disposition une palette qui liste l'ensemble des représentations
graphiques, on choisit l'élément que l'on veut mettre dans la
fenêtre de conception. Pour cela il suffit de sélectionner
l'élément, maintenir enfoncer la souris et le glisser dans la
partie conception. Ainsi nous avons un rendu visuel, et le code associé
généré automatiquement.
Figure 30 : La palette
Pour montrer la simplicité de la manipulation, nous
allons créer une fenêtre de Test. Cette fenêtre demandera
notre âge, proposera un champ pour entrer notre réponse et un
bouton pour la valider.
Nous avons donc trois champs à mettre en place : la
question, le champ de réponse et le bouton de validation. La question
est matérialisée par un Label, le champ de réponse par un
TextFiel et le bouton de validation par un Button. Il suffit simplement de
choisir ces trois éléments et de les glisser sur la fenêtre
de conception.
Il est donc très accessible et très simple de
pouvoir créer une IHM pour un logiciel, sans avoir aucune connaissance
en programmation.
Figure 31 : Un exemple de conception en drag and
drop
Figure 32 : Résultat lorsque l'on
exécute le programme
|