augmenter la productivité de vos développements jee grâce ... · •jee, .net, php.. deux...
TRANSCRIPT
ArchitectsCommunity
Augmenter la productivité de vos développements JEE grâce à l’approche orientée modèles DSM
Architecte JEEBertrand Florat
29 janvier 2008
Déroulement de la discussion
L’inertie du code et de la documentation sont des enjeux majeurs de productivité
Une solution est l’approche orienté modèle...• ...dont le champs d’application doit être correctement circonscrit
L’approche MDD nécessite la méta-modélisation de l’architecture..• ...et se décline en deux visions : MDA et DSM
• …l’approche DSM étant souvent pertinente
L’outillage Open Source DSM est maintenant à maturité• ...et peut être mis en œuvre dans une chaine de fabrication intégrée
Cette approche a été mise en œuvre avec succès notamment à l’Unedic...• ...dont nous tirons une première analyse
Questions / réponses
L’inertie du code et de la documentation sont des enjeux majeurs de productivité
La documentation• Tache lourde et peu agile
• Souvent mal alignée sur le code ou uniquement à moment précis
• Modèles (UML en général) « contemplatifs et non productifs » (Jean Bezivin)
• ROI faible
Le code• Hétérogène suivant les développeurs
• Nécessite de nombreuses tâches fastidieuses automatisables
• Difficile à maintenir
Une solution est l’approche orienté modèle...
MD : Model Driven
Apporte un niveau d’abstraction au dessus du code
Les modèles au centre du développement• Centralisent l’information de conception
Des modèles productifs• Servent de documentation
• Servent à générer itérativement une partie du code final
...dont le champs d’application doit être correctement circonscrit
S’applique à tous les langages Orienté Objet• JEE, .NET, PHP..
Deux finalités : modèles de code ou modèles de données formelles
N’assure pas la génération de la totalité du code• De 50 à 70 %
• Trop de modélisation tue la modélisation
Ticket d’entrée• Impact humain (Nouvelle de vision, organisation, formation)
• Si existant, rétro-modélisation à prévoir
• Si utilisation de langage spécifiques, cout du développement de l’outillage
• Nécessite une méta-modélisation
L’approche MDD nécessite la méta-modélisation de l’architecture...
Concepts de l’architecture
Liens entre ces concepts
Plusieurs méta-modèles suivant les couches
Pierre angulaire de l’approche
Facilité proportionnelle à l’utilisation de frameworks
Nécessite une grande maturité, se faire aider
Méta-modèle d’architecture
Écran
Action
Actegestion
Composantmétier
Composantd’accès
Couche IHM Couche Processus / Métier
Transaction
Table
Couche service
événement
...et se décline en deux visions : MDA et DSM
MDA (Model Driven Architecture)• OMG
• UML
• Indépendance à la plateforme PIM / PSM
DSM (Domain Specific Modeling)• Méthode pragmatique
• DSL (langage spécifique)
• Modèle unique
Choix actuel ADC Capgemini Ouest
Mis partiellement en œuvre Capgemini Ouest depuis
2002 : qualité ↑, productivité =
…l’approche DSM étant souvent pertinente
Les développeurs ou concepteurs fonctionnels manipulent « leurs » concepts, pas ceux d’UML: <<Contrat>>, pas <<Classe>>
Supporte la validation implicite du méta-modèle• Mais des validations complémentaires sont à prévoir
Personnalisation et ergonomie avancée « UML: prêt-à-porter, DSM: sur mesure » (Xavier Blanc, Lip6) Approche particulièrement pertinente pour:
• La modélisation de traitements formels spécifiques basé sur des frameworks • La modélisation d’informations métier
Attention, ne pas réinventer l’UML ! Les profiles UML 2.0 (notamment le stéréotypage) vont dans le sens
du DSM avec moins de flexibilité Peu adapté aux spécifications, utiliser l’UML
What's wrong with MDA ?
A notre avis, le MDA (académique) est trop complexe à comprendre et à appliquer
• Qu'est ce qui est de l'ordre du PIM ou du PSM ?
• Transformations de modèles PIM vers PSM (M2M) faiblement outillée et très complexe
• Complexité de la chaîne de fabrication, augmentation du nombre d’artéfacts...
L’UML ne permet pas le contrôle dynamique (besoin de validations ultérieures)
Le MDA n’adresse pas les vrais problématiques (traçabilité code/modèles)
Intégration IDE limitée.
Problématique de l’indépendance à la plateforme : qui a réellement ce besoin ?
• La réécriture des scripts de génération et des outils de migration T2T ne suffisent-ils pas à migrer le code ?
L’outillage Open Source DSM est maintenant à maturité...
…
EMF
EMF (Eclipse Modeling Framework) est le socle applicatif sur lequel repose la plupart des outils MDE utilisés dans le cadre d’Eclipse.
EMF comprend principalement:• Un méta-méta-modele (niveau M3) nommé « ecore »
• Des fonctions d’import/export en XMI 2 pour la persistence de modèles.
• EMF.Codegen (JET): générateur de code à partir des modèles.
• EMF.Edit: framework : framework pour la création d’éditeurs arborescents
• EMF.edit contient les classes nécessaires à la création d’éditeur arborescents
GMF
GMF (Graphical Modeling Framework) est un projet OSS porté principalement par Borland ayant pour but la génération d’éditeurs graphiques (modeleurs)
Sera intégré dans les prochaines versions de Borland Together
Outils propriétaires équivalents : MagicDraw, Microsoft DSL Tools
GMF s’appuie sur • EMF pour la génération des classes métier et d’édition du méta-modèles
• GEF pour les fonctionnalités de modeleur (fonctions de dessin, palettes, undo/redo etc..)
GMF est un framework très prometteur mais également jeune mais très actif.
Exemple de modeleur spécifique généré
Acceleo
Acceleo est un générateur de code orienté Template OSS développé par OBEO
Approche bottom-up : on part du code (les Templates) et non du méta-modèle
Permet de générer des artéfacts (code Java, fichiers XML, sites Web HTML...) à partir des données contenues dans un modèle
Outil propriétaire équivalent : Mia-Generation (MIA Software)
<% metamodel http://www.eclipse.org/uml2/2.0.0/UML %><%script type="uml.Class" name="classTemplate" file="<%name%>.java"%>public class <%class.name%>{
public <%class.name%>{ //Constructeur//<%startUserCode%>
//code concret//<%endUserCode%>
}}
meta-modèle utilisétype d'artéfact et nom du fichier cible
inclusion de code manuel (conservé lors des générations de code suivantes)
corps de la classe utilisant des éléments définis dans le méta-modèle qui seront remplacés par les valeur du modèle
...et peut être mis en œuvre dans une chaîne de fabrication intégrée
Notion de Fabrique Logicielle (SoFa)
Chaîne de fabrication JEE Capgemini ADC Ouest en cours de mise en place
Couches présentation et navigation : opérationnel
Couches métier et services : en cours
Cette approche a été mise en œuvre avec succès notamment à l’Unedic...
Projet Unédic / OBEO avec Capgemini en assistance
Test sur projet de 5000 JH (couche navigation)
Solution technique: EMF + GMF 1 + Acceleo
1 méta-modèle, 100 méta-éléments, 3 modeleurs, 70 templates
Coût outillage : 200 JH sur 6 mois, réalisation OBEO / Unédic
Gain de productivitéet qualité importants de l'ordre estimé de 30 % conception + développement
...dont nous tirons une première analyse
Forces Simplicité et pragmatisme
Outils adaptés au métier de l’utilisateur
Contrôle dynamique
Flexibilité méthodologique
Faiblesses GMF est un outil récent en cours de
documentation
Besoin d’expertise pour la personalisation
Attention à la montée en charge (taille et distribution des modèles )
GMF : orienté boites / traits, pas de copier/coller
Opportunités Risques
Evolution des méta-modèles
Couplage avec Eclipse
Intégration continue des modèles
Gain de productivité considérables
Questions / Réponses
Echanges