SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
humane
           assessment
           with Moose
                             Stéphane Ducasse
                                      clearVue
                                         INRIA
Wednesday, August 24, 2011
ology.org
                               ooset echn
Wednesday, August 24, 2011
                             m
s ment .com
                               m ane- asse
Wednesday, August 24, 2011
                             hu
Wednesday, August 24, 2011
Wednesday, August 24, 2011
feedback is key
Wednesday, August 24, 2011
feedback is key




Wednesday, August 24, 2011
contextual
                             continuous
                             feedback is key




Wednesday, August 24, 2011
complex, large
    {               {
        {                   {
                                }
            }
            }
                }       {       }   =

Wednesday, August 24, 2011
= 250’000 lines of code




Wednesday, August 24, 2011
= 250’000 lines of code

        * 2 

 = 500’000 seconds




Wednesday, August 24, 2011
= 250’000 lines of code

        * 2 

 = 500’000 seconds

        / 3600 	 140 hours
               ~




Wednesday, August 24, 2011
= 250’000 lines of code

        * 2 

 = 500’000 seconds

        / 3600 	 140 hours
               ~

        / 8 		 ~ 18 days




Wednesday, August 24, 2011
= 250’000 lines of code

        * 2 

 = 500’000 seconds

        / 3600 	 140 hours
               ~

        / 8 		 ~ 18 days

        / 20 	 ~ 1 month



Wednesday, August 24, 2011
Maintenance is continuous
                                    Development
                                                              4% Other

                                       18% Adaptive
               20%                     (new platforms)               4%
                                                                  18%

                                                                             60%
                             80%                                  18%
                                        18% Corrective
                                        (fixing reported errors)
       Between 50% and 80% of
       global effort is spent on                                     60% Perfective
                                                                     (new functionality)
           “maintenance” !
                                                    “Maintenance”


Wednesday, August 24, 2011
Software is like geranium...




                             when dead, it does not bloom!
Wednesday, August 24, 2011
Software is a living entity...
            Early decisions were certainly good at that time

            But the context changes

            Customers change

            Technology changes

            People change


Wednesday, August 24, 2011
fo
                                                                    rw
                                               g
                                              rin




                                                                     ar
                                                                         d
                                              ee




                                                                         en
                                          in
                                         ng




                                                                          gi
                                                                             ne
                                         ee




                                                                              er
                                     rs




                                                                               in
                                    ve




                                                                                  g
                                    re




    {               {
        {                   {                                                         {               {
                                }                                                         {               {
            }
            }                                       actual development                        }               }
                }       {       }                                                                 }               }




Wednesday, August 24, 2011
engineering
                                  reverse




                             {                {
                                  {                   {
                                                          }
                                      }
                                      }
                                          }       {       }




Wednesday, August 24, 2011
engineering
                                  reverse




                             {                {
                                  {                   {
                                                          }
                                      }
                                      }
                                          }       {       }




Wednesday, August 24, 2011
engineering
                                  reverse




                             {                {
                                  {                   {
                                                          }
                                      }
                                      }
                                          }       {       }




Wednesday, August 24, 2011
assessment
                                 engineering
                                  reverse




                             {                {
                                  {                   {
                                                          }
                                      }
                                      }
                                          }       {       }




Wednesday, August 24, 2011
assessment
                                                              what is the current situation?
                                                              what can we do about it?
                                 engineering
                                  reverse




                             {                {
                                  {                   {
                                                          }
                                      }
                                      }
                                          }       {       }




Wednesday, August 24, 2011
Current
                    practice
                             s
Wednesday, August 24, 2011
50% of maintenance is spent reading code!


         20%
                                         20%
                                                 40%
                80%


 Between 50% and 80% of                    40%
 global effort is spent on
     “maintenance” !



               We spend a lot of money at the wrong place
                         with the wrong tools!

Wednesday, August 24, 2011
Current
                    practice
                             s
Wednesday, August 24, 2011
manual        automatic
              tailored        generic




Wednesday, August 24, 2011
manual        automatic
              tailored        generic




Wednesday, August 24, 2011
We need dedicated
     tools to help us!


                                  We need
                             customable tools to
                             control and give
                                feedback




Wednesday, August 24, 2011
apply
     hypothesize
                                         analysis


      confident?             interpret



                  act
Wednesday, August 24, 2011
existing        apply
     hypothesize             analysis?       analysis


      confident?                 interpret



                  act
Wednesday, August 24, 2011
craft
                                         analysis

                              existing         apply
     hypothesize             analysis?        analysis


      confident?                 interpret



                  act
Wednesday, August 24, 2011
craft
                                         analysis

                              existing         apply
     hypothesize             analysis?        analysis


      confident?                 interpret



                  act
Wednesday, August 24, 2011
h um ane
      sessm ent                           craft
    as                                   analysis

                              existing         apply
     hypothesize             analysis?        analysis


      confident?                 interpret



                  act
Wednesday, August 24, 2011
An example: who is really behind that package?


                             (4) Visualisation
     (3) Analyses

(2) Modèle


                    (1) Extraction




Wednesday, August 24, 2011
(2) Define a model for code ownership


                             (4) Visualisation
     (3) Analyses

(2) Modèle


                    (1) Extraction




Wednesday, August 24, 2011
(3) Use adequate Map




Wednesday, August 24, 2011
Distribution Map
   shows properties
   over structure




                      (4) Visualisation
    (3) Analyses

(2) Modèle


              (1) Extraction




Ducass
       e       et al 20
                           06
Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
os eboo k.org
                             themo
Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
What is this made of?
Wednesday, August 24, 2011
Wednesday, August 24, 2011
What is this made of?
Wednesday, August 24, 2011
Class A   method M
             package 1
                             Class B   method N
             package 2
                                ...       ...
                 ...


               source code




Wednesday, August 24, 2011
Wednesday, August 24, 2011
classes sel

  McCabe
             ect:


            = 21
                  C
                      #isGod



                      =
                          75
                            3,0
                                00
                                                                     ...
                LO




                                     {               {
                                         {                   {
                                                                 }
                                             }
                                             }
                                                 }       {       }



Wednesday, August 24, 2011
assessment
                                                              what is the current situation?
                                                              what can we do about it?
                                 engineering
                                  reverse




                             {                {
                                  {                   {
                                                          }
                                      }
                                      }
                                          }       {       }




Wednesday, August 24, 2011
Handling Moose


     5 days to get up to speed

     21 days to get proficient




Wednesday, August 24, 2011
Software engineers that extended Moose


     Delphi/Java programmers
      customized models
      extended meta models
      defined specific rules

     Smalltalk programmers
      new tools to support code integration


Wednesday, August 24, 2011
Moose supports Your definition of quality/risk



      Example
      (1) Getting bug maps
      (2) What info to collect?
      (3) How to present it?




Wednesday, August 24, 2011
Moose gives you the opportunity to control
                             your process.




Wednesday, August 24, 2011
Wednesday, August 24, 2011
identify
            concern




Wednesday, August 24, 2011
identify         create
            concern           rule




Wednesday, August 24, 2011
identify         create
            concern           rule


                                discuss
                                results




Wednesday, August 24, 2011
identify                  create
            concern                    rule


                                         discuss
                             agree?
                                         results




Wednesday, August 24, 2011
identify                  create
            concern                    rule


                                         discuss
                             agree?
                                         results




Wednesday, August 24, 2011
identify                  create
            concern                    rule


                                         discuss
                             agree?
                                         results


                             small
                             task?
Wednesday, August 24, 2011
identify                  create
            concern                    rule


                                         discuss
                             agree?
                                         results


              solve          small
              now            task?
Wednesday, August 24, 2011
identify                  create
            concern                    rule


                                         discuss
                             agree?
                                         results


              solve          small              plan
              now            task?             later
Wednesday, August 24, 2011
d ailyent
  as sessm
            identify                  create
            concern                    rule


                                         discuss
                             agree?
                                         results


              solve          small              plan
              now            task?             later
Wednesday, August 24, 2011
Wednesday, August 24, 2011
Wednesday, August 24, 2011
asses sment
                             continuous

Wednesday, August 24, 2011
feedback is key




                 specific feedback is better
Wednesday, August 24, 2011
explicit
      humane
      assessment must be     tailored
                             trained



Wednesday, August 24, 2011
Tudor Gîrba              Stéphane Ducasse
                             www.tudorgirba.com           stephane.ducasse.free.fr




                                     creativecommons.org/licenses/by/3.0/




Wednesday, August 24, 2011

Más contenido relacionado

Más de ESUG

The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Más de ESUG (20)

Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalk
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Humane Assessment

  • 1. humane assessment with Moose Stéphane Ducasse clearVue INRIA Wednesday, August 24, 2011
  • 2. ology.org ooset echn Wednesday, August 24, 2011 m
  • 3. s ment .com m ane- asse Wednesday, August 24, 2011 hu
  • 6. feedback is key Wednesday, August 24, 2011
  • 7. feedback is key Wednesday, August 24, 2011
  • 8. contextual continuous feedback is key Wednesday, August 24, 2011
  • 9. complex, large { { { { } } } } { } = Wednesday, August 24, 2011
  • 10. = 250’000 lines of code Wednesday, August 24, 2011
  • 11. = 250’000 lines of code * 2 = 500’000 seconds Wednesday, August 24, 2011
  • 12. = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~ Wednesday, August 24, 2011
  • 13. = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~ / 8 ~ 18 days Wednesday, August 24, 2011
  • 14. = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~ / 8 ~ 18 days / 20 ~ 1 month Wednesday, August 24, 2011
  • 15. Maintenance is continuous Development 4% Other 18% Adaptive 20% (new platforms) 4% 18% 60% 80% 18% 18% Corrective (fixing reported errors) Between 50% and 80% of global effort is spent on 60% Perfective (new functionality) “maintenance” ! “Maintenance” Wednesday, August 24, 2011
  • 16. Software is like geranium... when dead, it does not bloom! Wednesday, August 24, 2011
  • 17. Software is a living entity... Early decisions were certainly good at that time But the context changes Customers change Technology changes People change Wednesday, August 24, 2011
  • 18. fo rw g rin ar d ee en in ng gi ne ee er rs in ve g re { { { { { { } { { } } actual development } } } { } } } Wednesday, August 24, 2011
  • 19. engineering reverse { { { { } } } } { } Wednesday, August 24, 2011
  • 20. engineering reverse { { { { } } } } { } Wednesday, August 24, 2011
  • 21. engineering reverse { { { { } } } } { } Wednesday, August 24, 2011
  • 22. assessment engineering reverse { { { { } } } } { } Wednesday, August 24, 2011
  • 23. assessment what is the current situation? what can we do about it? engineering reverse { { { { } } } } { } Wednesday, August 24, 2011
  • 24. Current practice s Wednesday, August 24, 2011
  • 25. 50% of maintenance is spent reading code! 20% 20% 40% 80% Between 50% and 80% of 40% global effort is spent on “maintenance” ! We spend a lot of money at the wrong place with the wrong tools! Wednesday, August 24, 2011
  • 26. Current practice s Wednesday, August 24, 2011
  • 27. manual automatic tailored generic Wednesday, August 24, 2011
  • 28. manual automatic tailored generic Wednesday, August 24, 2011
  • 29. We need dedicated tools to help us! We need customable tools to control and give feedback Wednesday, August 24, 2011
  • 30. apply hypothesize analysis confident? interpret act Wednesday, August 24, 2011
  • 31. existing apply hypothesize analysis? analysis confident? interpret act Wednesday, August 24, 2011
  • 32. craft analysis existing apply hypothesize analysis? analysis confident? interpret act Wednesday, August 24, 2011
  • 33. craft analysis existing apply hypothesize analysis? analysis confident? interpret act Wednesday, August 24, 2011
  • 34. h um ane sessm ent craft as analysis existing apply hypothesize analysis? analysis confident? interpret act Wednesday, August 24, 2011
  • 35. An example: who is really behind that package? (4) Visualisation (3) Analyses (2) Modèle (1) Extraction Wednesday, August 24, 2011
  • 36. (2) Define a model for code ownership (4) Visualisation (3) Analyses (2) Modèle (1) Extraction Wednesday, August 24, 2011
  • 37. (3) Use adequate Map Wednesday, August 24, 2011
  • 38. Distribution Map shows properties over structure (4) Visualisation (3) Analyses (2) Modèle (1) Extraction Ducass e et al 20 06 Wednesday, August 24, 2011
  • 39. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 40. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 41. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 42. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 44. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 45. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 47. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 48. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 49. os eboo k.org themo Wednesday, August 24, 2011
  • 50. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 51. What is this made of? Wednesday, August 24, 2011
  • 53. What is this made of? Wednesday, August 24, 2011
  • 54. Class A method M package 1 Class B method N package 2 ... ... ... source code Wednesday, August 24, 2011
  • 56. classes sel McCabe ect: = 21 C #isGod = 75 3,0 00 ... LO { { { { } } } } { } Wednesday, August 24, 2011
  • 57. assessment what is the current situation? what can we do about it? engineering reverse { { { { } } } } { } Wednesday, August 24, 2011
  • 58. Handling Moose 5 days to get up to speed 21 days to get proficient Wednesday, August 24, 2011
  • 59. Software engineers that extended Moose Delphi/Java programmers customized models extended meta models defined specific rules Smalltalk programmers new tools to support code integration Wednesday, August 24, 2011
  • 60. Moose supports Your definition of quality/risk Example (1) Getting bug maps (2) What info to collect? (3) How to present it? Wednesday, August 24, 2011
  • 61. Moose gives you the opportunity to control your process. Wednesday, August 24, 2011
  • 63. identify concern Wednesday, August 24, 2011
  • 64. identify create concern rule Wednesday, August 24, 2011
  • 65. identify create concern rule discuss results Wednesday, August 24, 2011
  • 66. identify create concern rule discuss agree? results Wednesday, August 24, 2011
  • 67. identify create concern rule discuss agree? results Wednesday, August 24, 2011
  • 68. identify create concern rule discuss agree? results small task? Wednesday, August 24, 2011
  • 69. identify create concern rule discuss agree? results solve small now task? Wednesday, August 24, 2011
  • 70. identify create concern rule discuss agree? results solve small plan now task? later Wednesday, August 24, 2011
  • 71. d ailyent as sessm identify create concern rule discuss agree? results solve small plan now task? later Wednesday, August 24, 2011
  • 74. asses sment continuous Wednesday, August 24, 2011
  • 75. feedback is key specific feedback is better Wednesday, August 24, 2011
  • 76. explicit humane assessment must be tailored trained Wednesday, August 24, 2011
  • 77. Tudor Gîrba Stéphane Ducasse www.tudorgirba.com stephane.ducasse.free.fr creativecommons.org/licenses/by/3.0/ Wednesday, August 24, 2011