Mardi Gras – CSIM2 – 2 juin 2010 Pietro Descombes
Plan <ul><li>CSIM2 en bref
Utilisation de l'outil
Fonctionnement
Approfondissement
Questions
Demos </li></ul>
En bref – CSIM2 QESACO? CSIM2   ? partenariat Moyen Analyse dynamique du code (exécution) Analyse dynamique du code (exécu...
En bref – Partenariat Jérôme Layat Julien Repond Prof. Philippe Dugerdil Pietro Descombes
En bref – Problématique : la réappropriation ~ 50-90%  du   coût de  maintenance <ul>[source: Standish group] </ul>
En bref – Problématique : fossé entre le code et le domaine métier <ul>la technique comble le fossé entre le code et le do...
En bref – Appariement (résultat) Diagramme de robustesse ( ≈ MVC) Code source if ( IsTrue ) { doSomething(); }
Utilisation – Edition des diagrammes Cas d'utilisation (use-case) Diagramme de robustesse ( ≈ MVC) étape description 1 cli...
Utilisation – Instrumentation du code class C1 { méthode1() { // corps } méthode2() { // corps } } class C1 { méthode1() {...
Utilisation – Exécution de l'application ( + traçage) trace étape description 1 clic sur le bouton 2 calcul 3 affichage du...
Fonctionnement – Ressources ↔ analyseurs cas d'util. scénario robustesse code source trace
Fonctionnement – Ressources -> faits les faits de base : fait de base fait généré depuis un analyseur (une ressource) anal...
Fonctionnement – Trouver un fait de base ? Exemple... oui analyseur de code source étend JFrame? ClassHasStereotype design...
Fonctionnement – Inférence fait inféré fait fait fait fait moteur d'inférence règle
Prochain SlideShare
Chargement dans…5
×

Mardi gras du 2 juin 2010 : CSIM2

1 032 vues

Publié le

présentation de l'outil de réappropriation de code legacy

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 032
Sur SlideShare
0
Issues des intégrations
0
Intégrations
13
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mardi gras du 2 juin 2010 : CSIM2

  1. 1. Mardi Gras – CSIM2 – 2 juin 2010 Pietro Descombes
  2. 2. Plan <ul><li>CSIM2 en bref
  3. 3. Utilisation de l'outil
  4. 4. Fonctionnement
  5. 5. Approfondissement
  6. 6. Questions
  7. 7. Demos </li></ul>
  8. 8. En bref – CSIM2 QESACO? CSIM2   ? partenariat Moyen Analyse dynamique du code (exécution) Analyse dynamique du code (exécution) moyen se réapproprier le code oublié but appariement entre les éléments recherchés et les composants du code source résultat Compréhension de Systèmes d'Information Basé sur la Modélisation Métier concours pour trouver un nom plus sexy signification technologies
  9. 9. En bref – Partenariat Jérôme Layat Julien Repond Prof. Philippe Dugerdil Pietro Descombes
  10. 10. En bref – Problématique : la réappropriation ~ 50-90% du coût de maintenance <ul>[source: Standish group] </ul>
  11. 11. En bref – Problématique : fossé entre le code et le domaine métier <ul>la technique comble le fossé entre le code et le domaine conceptuel </ul>
  12. 12. En bref – Appariement (résultat) Diagramme de robustesse ( ≈ MVC) Code source if ( IsTrue ) { doSomething(); }
  13. 13. Utilisation – Edition des diagrammes Cas d'utilisation (use-case) Diagramme de robustesse ( ≈ MVC) étape description 1 clic sur le bouton 2 calcul 3 affichage du résultat
  14. 14. Utilisation – Instrumentation du code class C1 { méthode1() { // corps } méthode2() { // corps } } class C1 { méthode1() { sondeDébut(C1.class, &quot; méthode1 &quot;); // corps sondeFin(C1.class, &quot; méthode1 &quot;) ; } méthode2() { sondeDébut(C1.class, &quot; méthode2 &quot;); // corps sondeFin(C1.class, &quot; méthode2 &quot;); } } instrumentation sondeDébut(Class c, String méthode) { // génération de la trace } sondeFin(Class c, String méthode) { // génération de la trace } appels trace 12123 entrée C1.méthode1() 12255 entrée C1.méthode2() 12325 sortie C1.méthode2() 13003 sortie C1.méthode1() exécution
  15. 15. Utilisation – Exécution de l'application ( + traçage) trace étape description 1 clic sur le bouton 2 calcul 3 affichage du résultat
  16. 16. Fonctionnement – Ressources ↔ analyseurs cas d'util. scénario robustesse code source trace
  17. 17. Fonctionnement – Ressources -> faits les faits de base : fait de base fait généré depuis un analyseur (une ressource) analyseurs de ressources fait fait fait fait (de base)
  18. 18. Fonctionnement – Trouver un fait de base ? Exemple... oui analyseur de code source étend JFrame? ClassHasStereotype designClass = C stereotype = boundary certitude = élevée class C extends JFrame { // contenu } Code source
  19. 19. Fonctionnement – Inférence fait inféré fait fait fait fait moteur d'inférence règle
  20. 20. Fonctionnement – Règles robustnessClassIsIn Step(R, i) classIsIn Step(C, i) & joint Occurrence (R, C) Règle &quot; ex &quot; Règle &quot;topo&quot; match (C1, B1) robustnessCollaborate (B1, B2) & clases Collaborate (C1, C2) & joint Occurrence (C2, B2) ... & si match (C2, B2) alors
  21. 21. Approfondissement – Création de nouveaux faits règle 1 fait f2 fait f1 formule de certitude Σ1 fait f5 fait f5 fait f3 fait f2 règle 2 formule de certitude Σ2 formule de fusion Σ 3 fait f5 cor-réla-tion
  22. 22. Approfondissement – Appariement temporel
  23. 23. Approfondissement – Appariement structurel
  24. 24. Suite <ul><li>Éditeur de cas d'utilisations
  25. 25. Cas concret </li></ul><ul>Un nom prononçable et parlant ! </ul><ul>aussi par mail : [email_address] </ul>Démos Questions ? Apéro ! Concours

×