Mardi gras du 2 juin 2010 : CSIM2
Upcoming SlideShare
Loading in...5
×
 

Mardi gras du 2 juin 2010 : CSIM2

on

  • 1,278 views

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

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

Statistics

Views

Total Views
1,278
Views on SlideShare
1,270
Embed Views
8

Actions

Likes
1
Downloads
8
Comments
0

1 Embed 8

http://www.slideshare.net 8

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mardi gras du 2 juin 2010 : CSIM2 Mardi gras du 2 juin 2010 : CSIM2 Presentation Transcript

  • Mardi Gras – CSIM2 – 2 juin 2010 Pietro Descombes
  • Plan
    • CSIM2 en bref
    • Utilisation de l'outil View slide
    • Fonctionnement View slide
    • Approfondissement
    • Questions
    • Demos
  • 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
  • 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
      [source: Standish group]
  • En bref – Problématique : fossé entre le code et le domaine métier
      la technique comble le fossé entre le code et le domaine conceptuel
  • 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 clic sur le bouton 2 calcul 3 affichage du résultat
  • Utilisation – Instrumentation du code class C1 { méthode1() { // corps } méthode2() { // corps } } class C1 { méthode1() { sondeDébut(C1.class, " méthode1 "); // corps sondeFin(C1.class, " méthode1 ") ; } méthode2() { sondeDébut(C1.class, " méthode2 "); // corps sondeFin(C1.class, " méthode2 "); } } 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
  • Utilisation – Exécution de l'application ( + traçage) trace étape description 1 clic sur le bouton 2 calcul 3 affichage du résultat
  • 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) analyseurs de ressources fait fait fait fait (de base)
  • 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
  • Fonctionnement – Inférence fait inféré fait fait fait fait moteur d'inférence règle
  • Fonctionnement – Règles robustnessClassIsIn Step(R, i) classIsIn Step(C, i) & joint Occurrence (R, C) Règle " ex " Règle "topo" match (C1, B1) robustnessCollaborate (B1, B2) & clases Collaborate (C1, C2) & joint Occurrence (C2, B2) ... & si match (C2, B2) alors
  • 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
  • Approfondissement – Appariement temporel
  • Approfondissement – Appariement structurel
  • Suite
    • Éditeur de cas d'utilisations
    • Cas concret
      Un nom prononçable et parlant !
      aussi par mail : [email_address]
    Démos Questions ? Apéro ! Concours