Objetdirect redsen

880 views
809 views

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
880
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
48
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Objetdirect redsen

  1. 1. Modélisation et Agilité sont-ils compatibles ? La piste du Domain Driven Design (DDD) et du Behaviour Driven Development (BDD) Retour d’expérience Administration du Canton de Vaud Jérémie Grodziski Jeremie.grodziski@redsen.fr Grégory Weinbach gweinbach@objetdirect.com 1GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation Bernard Quinodoz
  2. 2. Notre métier Comment industrialiser nos développements applicatifs ? Comment moderniser notre patrimoine applicatif ? Comment former efficacement nos collaborateurs ? Quels outils, quels frameworks choisir ? Depuis 12 ans, Objet Direct répond concrètement à ces questions avec des prestations de conseil et d’expertise dans le domaine du génie logiciel objet. Comment aligner le SI sur les processus métiers de l’entreprise ? Quelle démarche projet, quelle méthode pour améliorer nos processus projets ? 2GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  3. 3. OBJET DIRECT, une offre IT complète Formation, coaching Réalisation de projets Offres de conseil IT 3GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  4. 4. OBJET DIRECT filiale du groupe VISEO, Multi-spécialiste de votre SI Optimisation et intégration des processus Pilotage de l’entreprise Optimisation de la performance CONSEIL AUDIT / DIAGNOSTIC DEVELOPPEMENT INTEGRATION TIERCE MAINTENANCE APPLICATIVE VENTES DE LICENCES Conseil architecture du SI Applications métiers spécifiques Web & Objet ERP BIWeb et Objet 4GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  5. 5. Groupe VISEO Une présence sur chaque continent Paris Bordeaux Toulouse Lyon Grenoble Marseill e Morlaix Les implantations de VISEO permettent d’accompagner les clients dans leurs projets internationaux et d’adresser des clients locaux VISEO Inc. Création 2005 VISEO GmBH Création 2007 VI- ONE North Africa Création 2004 VISEO Asia Hong Kong/ Singapour Création 2009 Un maillage régional pour favoriser la proximité avec nos clients 5GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  6. 6. Présentation Redsen Conseil SI & Urbanisation Conseil en Organisation et Gestion de Projets Expertise & Accompagnement Projet Formation MASTER DATA MANAGEMENT ENTERPRISE ARCHITECTURE AUDIT ALIGNEMENT STRATÉGIQUE DU SI ATELIERS DE RÉFLEXION VEILLE SÉMINAIRES STRATEGIC DESIGN DOMAIN DRIVEN DESIGN TEST ET BEHAVIOUR DD ACCOMPAGNEMENT QUALITÉ AGILE PMO ITIL EXPERTISE LANGAGE ET PLATEFORMES DATA MANAGEMENT BUSINESS INTELLIGENCE 6GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  7. 7. Contexte ¡ L’Administration du Canton de Vaud ● Application de gestion •  Maintenance coûteuse •  Refonte engagée 7GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  8. 8. Besoin métier Logiciel ? 8GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  9. 9. Besoin métier Logiciel Concevoir Implémenter 9GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  10. 10. Besoin métier Logiciel Concevoir Implémenter Valider 10GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  11. 11. Bonjour, pouvez vous me décrire votre activité principale? Nous gérons principalement les dénonciations suite à des contraventions ou des délits. Dans quel but ? le but est d’encaisser le paiement de l’amende que doit le contrevenant Qu'est-ce qu'un dossier ? Un dossier est créé lorsqu'une préfecture reçoit une dénonciation. Il permet de suivre les actions réalisées de la procédure d'encaissement. Nous gérons des dossiers notamment pour encaisser les amendes. Comment faites vous ? 11GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  12. 12. Un constat simple GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 12 [ Pour faire un bon logiciel vous devez savoir de quoi il parle ● son Domaine
  13. 13. Qui connait le Domaine ? GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 13 [ Le spécialiste du Domaine J ● Comment faire « entrer » le Domaine dans le logiciel ?
  14. 14. La connaissance sur le domaine est collectée dans un Modèle qui est une vue sur le Domaine GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 14 [ le Modèle de Domaine !
  15. 15. Pourquoi concevoir avec des modèles ? Pour communiquer Pour réfléchir Pour maîtriser la complexité 15GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  16. 16. GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 16 DomaineDomaine ModèleDomaine Modèle Code Ubiquitous Language Domaine Modèle Code
  17. 17. 17GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  18. 18. Constituer le modèle de Domaine ¡ La manière traditionnelle GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 18 Analyse Conception Développement
  19. 19. Constituer le modèle de Domaine ¡ Le Modèle de Domaine selon le DDD GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 19
  20. 20. Rôles DDD GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation 20
  21. 21. 21GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  22. 22. Nous gérons principalement les dénonciations suite à des contraventions ou des délits. le but est d’encaisser le paiement de l’amende que doit le contrevenant Un dossier est créé lorsqu'une préfecture reçoit une dénonciation. Il permet de suivre les actions réalisées de la procédure d'encaissement. Nous gérons des dossiers notamment pour encaisser les amendes. 22GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  23. 23. 23GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  24. 24. Mon modèle est il bon ou mauvais ? 24GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  25. 25. …un modèle est adapté ou non à un usage [ Comment définir cet usage ? 25GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  26. 26. Besoin métier Logiciel Concevoir Implémenter Valider 26GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  27. 27. « User story »... ¡ « Saisir une dénonciation » En tant que secrétaire Lorsque je reçois une dénonciation suite au délit Je veux saisir cette dénonciation Afin de déclencher la procédure 27GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  28. 28. « Etant donné un contexte / un état … » 3 2 1 « Alors je constate… » Enchaînement d’actions sous forme de scénarios Comportement d’un système vu de son usage « Quand je fais l’action… » 28GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation Système
  29. 29. Scénario abstrait Saisir une dénonciation : Etant donné une dénonciation et une infraction reçue Quand la secrétaire saisit cette dénonciation Alors un nouveau dossier est créé suivant la procédure choisie Alors l'action effectuée et son auteur sont présent dans le suivi administratif du dossier Alors le dossier appartient à la bonne préfecture Alors le dossier concerne la bonne personne Alors le dossier se trouve dans le bon état Alors le solde du dossier est correct Alors une dénonciation associée au dossier a été créée Alors les informations de la dénonciation sont correctes 29GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  30. 30. …et scénario concret Etant donné une dénonciation reçue par Gérard concernant Jérémie Grodziski 05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont les faits sont "excés de vitesse » émise au 20.03.2010 par "la Gendarmerie cantonale" référence 123987456 Etant donné que l'infraction a été commise le 19.03.2010 10:30 à Autoroute Lausanne Genève, hauteur Morges Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC a la Préfecture de Morges abrégée MOR Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est créé Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi administratif avec la date du jour et l'utilisateur zptdce Alors le dossier appartient à la Préfecture de Morges Alors le dossier concerne Jérémie Grodziski Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE Alors le solde du dossier est égal a 0 Alors une dénonciation liée au dossier est créée 30GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  31. 31. Etant donné une dénonciation reçue par Gérard concernant Jérémie Grodziski 05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont les faits sont "excés de vitesse » émise au 20.03.2010 par "la Gendarmerie cantonale" référence 123987456 Etant donné que l'infraction a été commise le 19.03.2010 10:30 à Autoroute Lausanne Genève, hauteur Morges Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC a la Préfecture de Morges abrégée MOR Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est créé Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi administratif avec la date du jour et l'utilisateur zptdce Alors le dossier appartient à la Préfecture de Morges Alors le dossier concerne Jérémie Grodziski Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE Alors le solde du dossier est égal a 0 Alors une dénonciation liée au dossier est créée 31GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  32. 32. Etant donné une dénonciation reçue par Gérard concernant Jérémie Grodziski 05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont les faits sont "excés de vitesse » émise au 20.03.2010 par "la Gendarmerie cantonale" référence 123987456 Etant donné que l'infraction a été commise le 19.03.2010 10:30 à Autoroute Lausanne Genève, hauteur Morges Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC à la Préfecture de Morges abrégée MOR Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est créé Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi administratif avec la date du jour et l'utilisateur Gérard Alors le dossier appartient à la Préfecture de Morges Alors le dossier concerne Jérémie Grodziski Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE Alors le solde du dossier est égal a 0 Alors une dénonciation liée au dossier est créée 32GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  33. 33. Etant donné une dénonciation reçue par Gérard concernant Jérémie Grodziski 05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont les faits sont « excés de vitesse » émise au 20.03.2010 par "la Gendarmerie cantonale" référence 123987456 Etant donné que l'infraction a été commise le 19.03.2010 10:30 à Autoroute Lausanne Genève, hauteur Morges Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC à la Préfecture de Morges abrégée MOR Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est créé Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi administratif avec la date du jour et l'utilisateur Gérard Alors le dossier appartient à la Préfecture de Morges Alors le dossier concerne Jérémie Grodziski Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE Alors le solde du dossier est égal a 0 Alors une dénonciation liée au dossier est créée 33GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  34. 34. Scénarios en succès 34GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  35. 35. Scénarios en échec 35GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  36. 36. Sous le capot… un framework BDD Scénarios TXT Adaptateurs Code Java Modèle du domaine / Code Java Junit avec JBehave Exécution parse exécuteinvoque 36GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  37. 37. Adaptateurs du scénario vers le code des POJOs du domaine When Then 37GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  38. 38. Adaptateurs du scénario vers le code des services métiers (avec persistance) When Then 38GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  39. 39. Challenger mon modèle Etant donné une dénonciation reçue par Gérard concernant Jérémie Grodziski 05.11.1976 pour une contravention CIRCULATION_ROUTIERE dont les faits sont "excés de vitesse » émise au 20.03.2010 par "la Gendarmerie cantonale" référence 123987456 Etant donné que l'infraction a été commise le 19.03.2010 10:30 à Autoroute Lausanne Genève, hauteur Morges Etant donné que les dispositions légales enfreintes sont LCR 90/1, 91/4a Quand Gérard saisit la dénonciation pour CONTRAVENTIONS_PROCEDURE_SC a la Préfecture de Morges abrégée MOR Alors un dossier suivant la procédure CONTRAVENTIONS_PROCEDURE_SC est créé Alors l'action SAISIR_DENONCIATION est renseignée dans le suivi administratif avec la date du jour et l'utilisateur zptdce Alors le dossier appartient à la Préfecture de Morges Alors le dossier concerne Jérémie Grodziski Alors le dossier se trouve dans l’état ATTENTE_DECISION_SENTENCE Alors le solde du dossier est égal a 0 Alors une dénonciation liée au dossier est créée exécuté par validé par 39GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation Scénarios TXT Modèle du domaine / Code Java
  40. 40. « Manifeste Agile » Individus et interactions Logiciels opérationnels Collaboration avec les utilisateurs Adaptation au changement Processus et outils Documentation exhaustive Négociation contractuelle Suivi d’un plan « Nous reconnaissons la valeur des seconds éléments mais privilégions les premiers » 40GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  41. 41. « Manifeste Agile » Individus et interactions Logiciels opérationnels Collaboration avec les utilisateurs Adaptation au changement Processus et outils Documentation exhaustive Négociation contractuelle Suivi d’un plan « Nous reconnaissons la valeur des seconds éléments mais privilégions les premiers » 41GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation [DDD] Analyste/Concepteur = Développeur [DDD] Modèle = Code [BDD] Scénarios = Supports de validation [BDD] Dev itératifs, Cycles courts, Métriques
  42. 42. Incrémental ? Au niveau technique et fonctionnel Domaine Service User Interface Test avec les objets du domaine (POJO) Test avec les services incluant la persistance Test de l’interface web avec Selenium ..avec le même scénario mais des adaptateurs différents ! Au niveau fonctionnel, avec des scénarios enrichis au fur et à mesure avec les cas exceptionnels et les cas d’erreurs Au niveau technique 42GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  43. 43. Bilan ¡  Niveau d’anomalies extrêmement bas ¡  Refactoring majeur du métier fait en 2 jours sans aucune régression ¡  Modification des processus prenant 30 jours avec l’application existante, 0,5j maintenant ¡  Réelle capitalisation sur le domaine, isolée de la technique ¡  Complexité très basse dans les rapports de qualimétrie ¡  Les utilisateurs sont satisfaits, prêt à évangéliser l’approche, veulent les modèles dans l’application ! ¡  Productivité ¡  Maintenabilité à long terme ? 43GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  44. 44. Chiffres ¡ 156 user stories, environ 250 scénarios ¡ 50 000 lignes de codes ¡ 300 classes du domaine ¡ 600 j/h développement aujourd’hui, 800 à terme 44GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  45. 45. La clé de l’agilité de l’approche Des scénarios exécutables permettent de valider et de construire le modèle du domaine dans des itérations courtes, de manière incrémentale avec feedback immédiat BDD DDD Agilité 45GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  46. 46. La clé de l’agilité de l’approche Des scénarios exécutables permettent de valider et de construire le logiciel dans des itérations courtes, de manière incrémentale avec feedback immédiat BDD DDD Agilité 46GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation
  47. 47. Questions 47GW/PR/SEM/7967-1.3 - MDDay 2010 - Agilité et Modélisation

×