5. Software is complex.
29% Succeeded
18% Failed
53% Challenged
The Standish Group, 2004
6. How large is your project?
1’000’000 lines of code
* 2 = 2’000’000 seconds
/ 3600 = 560 hours
/ 8 = 70 days
/ 20 = 3 months
7. Software development
is more than forward engineering.
Fo
rw
ar
d
en
gin
ee
rin
g
{ { { {
{
{
} { {
Actual development
} } }
}
} } } }
{
8. Maintenance is
is needed to evolve the code.
Fo
rw
ing ar
r
ee d
en
gin gin
en ee
e
rs rin
ve g
Re
{ { { {
{
{
} { {
Actual development
} } }
}
} } } }
{
9. Roadmap
• Some facts
• Our approach
• Supporting maintenance
• Moose an open-platform
• Some visual examples
• Conclusion
LSE
S.Ducasse 9
10. Supporting the evolution of applications
Our research goal and agenda grounded in reality
How to help companies maintaining their large
software?
What is the xray for software?
code, people, practices
Which analyses?
How can you monitor your system (dashboards....)
How to present extracted information?
S.Ducasse 10
12. Software Metrics
[LMO99, OOPSLA00]
Duplicated Code Identification
Understanding Large Systems [ICSM99, ICSM02]
Group Identification
[WCRE99, TSI00, TSE03]
Static/Dynamic Information [ASE03]
Test Generation
[ICSM99]
Feature Analysis [CSMR 06]
Concept Identification
[JSME 06]
Analyses [WCRE 06]
Class Understanding
[OOPSLA01,TSE04]
Package Blueprints Reverse
[ICSM 07]
Engineering
Distribution Maps
[ICSM 06]
Representation Transformations
Language Independent
Refactorings
[IWPSE 00]
Evolution
Language Independent Meta
Model (FAMIX) Reengineering Patterns
[UML99] Version Analyses
An Extensible Reengineering [ICSM 05]
Environment (Moose) HISMO metamodel
[Models 06] [JSME 05]
LSE
S.Ducasse 12
13. One Example: who is responsible of what?
(4) Visualisation
(3) Analyses
(2) Modèle
(1) Extraction
Distribution Map of authors
on JBoss
S.Ducasse 13
14. Moose is a powerful environment
McCabe = 21
NOM 0
= 102 0
3,0
75
=
...
C
LO
Metrics Queries Visualizations
{ {
{
{
}
}
}
} }
{
15. Metrics compress the system into numbers
0
Cyclomatic complexity = 21 00
3,
75
NOM
= 102 =
OC
L
{ {
{
{
}
}
}
} }
{
28. Based on similar commit signature
Edit Takeover
Monologue Familiarization Dialogue
LSE
S.Ducasse 28
29. How can we predict changes?
Common wisdom stresses that what changes yesterday
will change today, but it is true?
In the Sahara the weather is constant,
tomorrow: 90% chance that it is the same as today
In Belgium, the weather is changing really fast (sea
influence), 30% chance that it is the same as today
LSE
S.Ducasse 29
30. With history analysis we can get the
climate of a software system
Past Late Future Early
Changers Changers
1, TopLENOM1..i (S, t1) ∩
TopEENOMi..n (S, t2) ≠ ∅
YWi(S) =
0, TopLENOM1..i (S, t1) ∩
TopEENOMi..n (S, t2) = ∅
∑ YWi(S, t1, t2)
YW(S, t1, t2) =
Past Present Future n-2
hit
versions version versions
LSE
S.Ducasse 30
31. Roadmap
• Some facts
• Our approach
• Supporting maintenance
• Moose an open-platform
• Some visual examples
• Conclusion
LSE
S.Ducasse 31
33. Moose has been validated on real life systems
written in different languages
• Several large, industrial case studies (NDA)
• Harman-Becker
• Nokia
• Daimler
• Siemens
• Different implementation languages (C++, Java,
Smalltalk, Cobol)
• Different sizes
LSE
S.Ducasse 33
34. Current Team Previous Team
Stéphane Ducasse Serge Demeyer
Tudor Gîrba Michele Lanza
Adrian Kuhn Sander Tichelaar
Current Contributors menPrevious Contributors
~ 100 years
Hani Abdeen Ilham Alloui Tobias Aebi Frank Buchli
Gabriela Arevalo Mihai Balint Thomas Bühler
Calogero Butera
Philipp Bunge
Marco D’Ambros Daniel Frey
Georges Golomingi
Orla Greevy Markus Hofstetter David Gurtner Reinout Heeck
Matthias Junker Adrian Lienhard Markus Kobel Michael Locher
Martin von Löwis
Mircea Lungu Pietro Malorgio Michael Meer
Michael Meyer Damien Pollet Laura Ponisio Daniel Ratiu
Sara Sellos Lucas Streit Matthias Rieger Azadeh Razavizadeh
Toon Verwaest Roel Wuyts Andreas Schlapbach Daniel Schweizer
Richard Wettel Mauricio Seeberger Lukas Steiger
Daniele Talerico Herve Verjus
Violeta Voinescu.
35. Possible New Research Directions
• Remodularization
• Clustering analysis
• Open and Modular modules
• SOA - Service Identification
• Architecture Extraction/Validation
• Software Quality
• Cost prediction
• EJB Analysis
• Business rules extraction
• Model transformation
LSE
S.Ducasse 35
36. Evolution is difficult
• We are expert in reengineering
• We are interested in your problems!
• Moose is open-source, you can use it, extend it, change
it
• We can collaborate!
{ {
{
{
}
}
}
} }
{
NOM > 10 &
LOC > 100
LSE
S.Ducasse 36