SlideShare ist ein Scribd-Unternehmen logo
1 von 77
Downloaden Sie, um offline zu lesen
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
                                        (ïŹxing 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) DeïŹne 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 proïŹcient




Wednesday, August 24, 2011
Software engineers that extended Moose


     Delphi/Java programmers
      customized models
      extended meta models
      deïŹned speciïŹc rules

     Smalltalk programmers
      new tools to support code integration


Wednesday, August 24, 2011
Moose supports Your deïŹnition 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

Weitere Àhnliche Inhalte

Mehr von ESUG

Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
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 RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
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 resultsESUG
 
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 6ESUG
 
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 GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
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 ModesESUG
 
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 ReportESUG
 
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 APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
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 CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
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 JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
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 TransformationsESUG
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalkESUG
 

Mehr von 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
 

KĂŒrzlich hochgeladen

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 

KĂŒrzlich hochgeladen (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 

Humane Assessment Tools for Continuous Feedback

  • 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 (ïŹxing 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) DeïŹne 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 proïŹcient Wednesday, August 24, 2011
  • 59. Software engineers that extended Moose Delphi/Java programmers customized models extended meta models deïŹned speciïŹc rules Smalltalk programmers new tools to support code integration Wednesday, August 24, 2011
  • 60. Moose supports Your deïŹnition 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