www.modeliosoft.comwww.modeliosoft.com
Peut on être agile avec une approche Model Driven sur
de grands projets ?
Paris le 25 novembre 2010
by
www.modeliosoft.com
Combiner les avantages de Modélisation, MDA, Grands projets, Agilité
• Trop souvent, Modélisation/Agilité ou MDA/Grands projets sont perçus comme antinomiques
• MDA nécessite une organisation d’équipe dédiée, des outils adaptés pour passer à l’échelle de grandes équipes
• Domaines essentiels souvent rébarbatifs pour les développeurs peuvent être facilités par une approche guidée par le modèle– Gestion de version et configuration,
– Intégration,
– Validation,
– Organisation du travail de groupe
2
www.modeliosoft.com
Retour d’expérience: le projet
• Pas de théorie, mais une recherche pragmatique de solutions de confort pour
un développement de qualité
• Développement interne de l’outil Modelio … avec l’outil Modelio
• Plusieurs technologies: C++, Java, Modules MDA Modelio (Java et API
Modelio). 3000 Classes; 15 .. 25 Intervenants.
• Framework spécifique Modelio (gestion de la persistance, de la cohérence,
règles de présentation, gestion des transactions, gestion de l’identification,
production d’API Java …)
• Production automatisée MDA: Metamodèle Framework
• Développement d’un produit (compatibilité ascendante, branches de version,
…) en évolution depuis … 1991.
3
www.modeliosoft.com
L’adhésion des responsables et développeurs: Une nécessité
• Le développeur doit percevoir le gain: productivité, coopération facilitée, niveau de procédure et qualité garantis
• Le responsable doit percevoir le gain en qualité et productivité
• La coopération des contributeurs est indispensable: discipline acceptée et collectivement encouragée
• Tous les développeurs ont le même environnement (toolkit): version de Modelio, extension, IDE, chaîne de production. Mise à jour centralisée.
4
www.modeliosoft.com
Organisation d’un projet : Synoptique
Model Driven, MDA, Intégration continue
? Corrections faites par tel développeurs? Anomalies corrigées? Interventions sur tel composant
5
www.modeliosoft.com
Les outils supports
• Modelio : Modélisation, génération de code
• Modules Modelio: Java Designer, C++ Designer, MDA Designer, Teamwork manager, Document Publisher
• Extensions Modelio dédiées au support du processus de développement (modules Java spécifiques) : intégration avec les autres outils, automatisation de procédures, génération automatique vers framework interne de gestion de modèles
• Eclipse : IDE développements Java
• MS Visual Studio IDE développements C++
• Subversion : gestion de version et configuration, utilisé via le coupage natif Modelio Teamwork Manager.
• Mantis : gestion d’anomalie. Application web.
• Testlink : gestion des tests
• Hudson : production automatisée d’applications.
6
www.modeliosoft.com
Découpage en projet
• Un SVN par projet
• Couplage « lâche » entre projets par « composants de modèles »
7
www.modeliosoft.com
Coopération au niveau du modèle
Obligations du participant:
• Ne pas réserver trop longtemps des parties de modèle
• Compiler/tester avant de livrer
• Documenter sa livraison (ce qui est modifié, pourquoi, comment, impacts sur validation, …)
Etapes
8
www.modeliosoft.com
Customisation Modelio: Outillage Dédié
Modelio Teamwork manager
Paramétrage Modelio
9
www.modeliosoft.com
MDA: plusieurs pratiques au sein du même projet
• Génération complète (Metamodèle framework): Travail exclusif au niveau du modèle
• Génération partielle (conception technique): Génération en mode « Model Driven ». Le modèle est maître. La modificication de code est encadrée (balisée). Architecture globale, classes essentielles et structurantes.
• Génération « roundtrip » (codage): Le code est maître. génération depuis modèle, modification/synchronisation à partir de code. Classes techniques, complémentant l’architecture (ex: IHM, « ActionListener », …)
Le développeur doit respecter les modes « Model Driven » dans ses interventions
La GVC et la coopération sont constamment gérés via le modèle (code 100% reproduit depuis modèle et extensions)
10
www.modeliosoft.com
Passage à l’échelle MDA: on évite
• Cascade de transformations de modèles/mises à jour manuelles– Mise à jour des modifs d’un modèle vers un modèle transformé: OK
– Mise à jour des modifs d’un modèle vers un modèle transformé modifié manuellement
• Plusieurs modèles/artefacts partiellement déduits les uns des autres, chacun gérés en configuration (ex: modèle et code séparés)
• Un modèle de haut niveau sur lequel interviennent un nombre limité de personnes génère/met à jour des modifications disséminées dans un modèle de plus bas niveau sur lesquelles interviennent plusieurs personnes
11
www.modeliosoft.com
Modelio : Des outils pour assister les développeurs sur les grands projets
Diff/Merge de modèles Analyse d’impact sur modèles
12
www.modeliosoft.com
Gains de productivité: ne pas oublier l’essentiel
• Coût codage = 30% coût de réalisation
• Coût de réalisation = 30% coût de possession d’un logiciel
Maintenabilité constitue un enjeu très important
• Une approche guidée par le modèle bien gérée– Améliore l’analyse et la conception, l’architecture
– Automatise (partiellement) le codage
– Assiste la gestion de configuration, de version, test et validation donc améliore la maintenabilité
• Gains obtenus par des procédures et de l’outillage adaptés.
13
Téléchargez le white paper
Téléchargez Modelio Free Edition ou Modelio Enterprise Edition
www.modelio.fr
Téléchargez les extensions - plug-ins Modelio - (SoaML, Tests for UML, …) disponible en open source sur:
www.open-modelio.sourceforge.com
Evaluez Modelio Enterprise Edition, téléchargez Modelio Free Edition, regardez des démos, ou
découvrez les autres atouts de Modelio !
M o d e l i n g S o l u t i o n s