Stéphane Ducasse clearVue INRIA
humane assessment with Moose Stphane Ducasse clearVue INRIA - - PowerPoint PPT Presentation
humane assessment with Moose Stphane Ducasse clearVue INRIA - - PowerPoint PPT Presentation
humane assessment with Moose Stphane Ducasse clearVue INRIA Wednesday, August 24, 2011 moosetechnology.org Wednesday, August 24, 2011 humane-assesment.com Wednesday, August 24, 2011 Wednesday, August 24, 2011 Wednesday, August 24, 2011
moosetechnology.org
Wednesday, August 24, 2011humane-assesment.com
Wednesday, August 24, 2011feedback is key
Wednesday, August 24, 2011feedback is key
Wednesday, August 24, 2011feedback is key contextual continuous
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, 2011Maintenance is continuous Development
Between 50% and 80% of global effort is spent on “maintenance” !
18% Corrective (fixing reported errors) 18% Adaptive (new platforms) 60% Perfective (new functionality) 4% Other
80% 20% 60% 18% 18% 4%
“Maintenance”
Wednesday, August 24, 2011Software is like geranium... when dead, it does not bloom!
Wednesday, August 24, 2011Software 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, 2011forward engineering actual development
} { } { } { } {
} { } { } { } { } {
reverse engineering
Wednesday, August 24, 2011reverse engineering
Wednesday, August 24, 2011reverse engineering
Wednesday, August 24, 2011reverse engineering
Wednesday, August 24, 2011reverse engineering assessment
Wednesday, August 24, 2011reverse engineering assessment
what is the current situation? what can we do about it?
Wednesday, August 24, 2011Current practices
Wednesday, August 24, 201150% of maintenance is spent reading code!
Between 50% and 80% of global effort is spent on “maintenance” !
80% 20%
We spend a lot of money at the wrong place with the wrong tools!
40% 20% 40%
Wednesday, August 24, 2011Current practices
Wednesday, August 24, 2011tailored manual automatic generic
Wednesday, August 24, 2011tailored manual automatic generic
Wednesday, August 24, 2011We need dedicated tools to help us! We need customable tools to
control and give feedback
Wednesday, August 24, 2011hypothesize apply analysis interpret confident? act act
Wednesday, August 24, 2011hypothesize existing analysis? apply analysis interpret confident? act act
Wednesday, August 24, 2011hypothesize existing analysis? craft analysis apply analysis interpret confident? act act
Wednesday, August 24, 2011hypothesize existing analysis? craft analysis apply analysis interpret confident? act
Wednesday, August 24, 2011hypothesize existing analysis? craft analysis apply analysis interpret confident? act
assessment
humane
Wednesday, August 24, 2011An example: who is really behind that package?
(1) Extraction
(2) Modèle (4) Visualisation (3) Analyses
Wednesday, August 24, 2011(2) Define a model for code ownership
(1) Extraction
(2) Modèle (4) Visualisation (3) Analyses
Wednesday, August 24, 2011(3) Use adequate Map
Wednesday, August 24, 2011Distribution Map shows properties
- ver structure
Ducasse et al 2006
(1) Extraction
(2) Modèle (4) Visualisation (3) Analyses Wednesday, August 24, 2011} { } { } { } { } {
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
...
Wednesday, August 24, 2011} { } { } { } { } {
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
...
Wednesday, August 24, 2011} { } { } { } { } {
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
...
Wednesday, August 24, 2011} { } { } { } { } {
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
...
Wednesday, August 24, 2011} { } { } { } { } {
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
...
Wednesday, August 24, 2011} { } { } { } { } {
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
...
Wednesday, August 24, 2011} { } { } { } { } {
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
...
Wednesday, August 24, 2011} { } { } { } { } {
...
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
Wednesday, August 24, 2011themoosebook.org
Wednesday, August 24, 2011} { } { } { } { } {
...
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
Wednesday, August 24, 2011What is this made of?
Wednesday, August 24, 2011What is this made of?
Wednesday, August 24, 2011package 1 package 2 ... Class A Class B ... method M method N ... source code
Wednesday, August 24, 2011} { } { } { } { } {
...
M c C a b e = 2 1 L O C = 7 5 3 , classes select: #isGod
Wednesday, August 24, 2011reverse engineering assessment
what is the current situation? what can we do about it?
Wednesday, August 24, 2011Handling Moose 5 days to get up to speed 21 days to get proficient
Wednesday, August 24, 2011Software 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, 2011Moose supports Your definition of quality/risk Example (1) Getting bug maps (2) What info to collect? (3) How to present it?
Wednesday, August 24, 2011Moose gives you the opportunity to control your process.
Wednesday, August 24, 2011identify concern
Wednesday, August 24, 2011identify concern create rule
Wednesday, August 24, 2011identify concern create rule discuss results
Wednesday, August 24, 2011identify concern agree? create rule discuss results
Wednesday, August 24, 2011identify concern agree? create rule discuss results
Wednesday, August 24, 2011identify concern agree? create rule discuss results small task?
Wednesday, August 24, 2011identify concern agree? create rule discuss results small task? solve now
Wednesday, August 24, 2011identify concern agree? create rule discuss results small task? solve now plan later
Wednesday, August 24, 2011identify concern agree? create rule discuss results small task? solve now plan later
assessment
daily
Wednesday, August 24, 2011continuous assessment
Wednesday, August 24, 2011feedback is key specific feedback is better
Wednesday, August 24, 2011assessment must be
tailored explicit trained humane
Wednesday, August 24, 2011Tudor Gîrba
www.tudorgirba.com creativecommons.org/licenses/by/3.0/
Stéphane Ducasse
stephane.ducasse.free.fr
Wednesday, August 24, 2011