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

Objecteering mdday2010

  • 1.
    www.modeliosoft.comwww.modeliosoft.com Peut on êtreagile avec une approche Model Driven sur de grands projets ? Paris le 25 novembre 2010 by
  • 2.
    www.modeliosoft.com Combiner les avantagesde 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
  • 3.
    www.modeliosoft.com Retour d’expérience: leprojet • 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
  • 4.
    www.modeliosoft.com L’adhésion des responsableset 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
  • 5.
    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
  • 6.
    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
  • 7.
    www.modeliosoft.com Découpage en projet •Un SVN par projet • Couplage « lâche » entre projets par « composants de modèles » 7
  • 8.
    www.modeliosoft.com Coopération au niveaudu 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
  • 9.
    www.modeliosoft.com Customisation Modelio: OutillageDédié Modelio Teamwork manager Paramétrage Modelio 9
  • 10.
    www.modeliosoft.com MDA: plusieurs pratiquesau 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
  • 11.
    www.modeliosoft.com Passage à l’échelleMDA: 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
  • 12.
    www.modeliosoft.com Modelio : Desoutils pour assister les développeurs sur les grands projets Diff/Merge de modèles Analyse d’impact sur modèles 12
  • 13.
    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
  • 14.
     Téléchargez lewhite 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