Upload
stefane-fermigier
View
1.489
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Stéphane Ducasse
Stéphane [email protected]://stephane.ducasse.free.fr/
RMod
Long living softwaresystems
1
S.Ducasse
RModA word of presentation
Co-author of Object-Oriented Reengineering PatternsCo-developer of Moose (reengineering platform)13 PhD Theses in Soft. Eng. 50+ articles
Member of the Squale project
Grounded in realityMaintainer of open-source projectsHarman-Becker AG, Bedag AG,Nokia, Daimler
2
S.DucasseRMod
Roadmap• Some software development facts • Our approach
• Supporting maintenance• Moose an open-platform
• Conclusion
3
1946
S.Ducasse LSE
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
5
S.Ducasse LSE
Maintenance is Continuous Development
6
Relative Maintenance EffortBetween 50% and 75% of global
effort is spent on “maintenance” !
17.4% Corrective(fixing reported errors)
18.2% Adaptive(new platforms or OS)
60.3% Perfective(new functionality)
4.1% Other
The bulk of the maintenance cost is due to new functionalityeven with better requirements, it is hard to predict new functions
S.Ducasse
RMod
System evolution is like... SimCity
7
S.Ducasse
RMod
Maintenance is is needed to evolve the code.
Rever
se en
ginee
ring
Forward engineering
Actual development}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
8
S.DucasseRMod
Roadmap• Some software development facts • Our approach
• Supporting maintenance• Moose an open-platform
• Conclusion
9
S.Ducasse
RMod
Long Living Complex Software
(1) New languages for evolving living software ?
(2) Help teams maintaining large software ?
10
S.Ducasse
RMod
Fondamental aspects of object languages
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. St-Exupery
Subjects Components for field devices Classboxes: Modules for open-classes (Monkey patching in Ruby) OOPAL: OOP + APL Generalizing message passing (FScript) Language symbiosis Encapsulation for dynamic languages Reusable behavior: Traits
Impacts Traits used by Fortress (SUN Microsystems), Scala (EPFL), Perl-6, Squeak, Slate
11
S.Ducasse
RMod
Current Research
Secure hot-upgradeSecurity and dynamic reflexive systemsTowards open VM
12
S.Ducasse
RMod
Help teams maintaining large software
What is the xray for software? code, people, practices
Which analyses? cycles detection, quality models....
How can you monitor your system (dashboards....)How to present extracted information?
13
S.Ducasse
RMod
Covered topics
TopicsMetamodeling, metrics,program understanding,visualization, evolution analysis,duplicated code detection,code, Analysis, refactorings,test generation...ContributionsMoose: an open-source extensible reengineering environment: (Lugano, Bern, Annecy, Anvers, Louvain la neuve, ULB, UTSL)ProjectsHarman-Becker (3 Millions C++), Bedag (Cobol), Nokia, ABB, IMEC
14
Representation Transformations
Reverse
Engineering
Analyses
Evolution
S.Ducasse
RMod
Example: Who is responsible?
15
(1) Extraction
(2) Modèle
(4) Visualisation
(3) Analyses
S.Ducasse
RMod
Who is responsible?
16
(1) Extraction
(2) Modèle
(4) Visualisation
(3) Analyses
Distribution Map of authors on JBoss
S.Ducasse
RModDistribution Map
17
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
Moose is a powerful environment
S.Ducasse
RMod
Moose is designed to be extensible
Method Class
Inheritance
Method Class
Inheritance
Author
File
Duplication
Event
Trace
ClassVersion
ClassHistory
openmeta-described
19
S.Ducasse
RMod
Since 1996 a lot of year/man investment
Used by several research labs (CH, BE, FR)Consulting companies (CH)
http://www.moosetechnology.org
Open source: BSDSupports Java, C, Smalltalk (C++ analysis)
20
S.Ducasse LSE
Applied on real life systems
Several large, industrial case studies (NDA)Harman-BeckerNokiaDaimlerSiemens
Different implementation languages (C++, Java, Smalltalk, Cobol)
We use external C++ parsersDifferent sizes
21
S.Ducasse
RModInterested in your problems!
• Remodularization/Repackaging• SOA - Service Identification• Architecture Extraction/Validation• Software Quality• Cost prediction• EJB Analysis• Business rules extraction• Model transformation
22