présentation du projet moose

22
Stéphane Ducasse Stéphane Ducasse [email protected] http://stephane.ducasse.free.fr/ RMod Long living software systems 1

Upload: stefane-fermigier

Post on 05-Dec-2014

1.489 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Présentation du projet Moose

Stéphane Ducasse

Stéphane [email protected]://stephane.ducasse.free.fr/

RMod

Long living softwaresystems

1

Page 2: Présentation du projet Moose

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

Page 3: Présentation du projet Moose

S.DucasseRMod

Roadmap• Some software development facts • Our approach

• Supporting maintenance• Moose an open-platform

• Conclusion

3

Page 4: Présentation du projet Moose

1946

Page 5: Présentation du projet Moose

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

Page 6: Présentation du projet Moose

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

Page 7: Présentation du projet Moose

S.Ducasse

RMod

System evolution is like... SimCity

7

Page 8: Présentation du projet Moose

S.Ducasse

RMod

Maintenance is is needed to evolve the code.

Rever

se en

ginee

ring

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

8

Page 9: Présentation du projet Moose

S.DucasseRMod

Roadmap• Some software development facts • Our approach

• Supporting maintenance• Moose an open-platform

• Conclusion

9

Page 10: Présentation du projet Moose

S.Ducasse

RMod

Long Living Complex Software

(1) New languages for evolving living software ?

(2) Help teams maintaining large software ?

10

Page 11: Présentation du projet Moose

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

Page 12: Présentation du projet Moose

S.Ducasse

RMod

Current Research

Secure hot-upgradeSecurity and dynamic reflexive systemsTowards open VM

12

Page 13: Présentation du projet Moose

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

Page 14: Présentation du projet Moose

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

Page 15: Présentation du projet Moose

S.Ducasse

RMod

Example: Who is responsible?

15

(1) Extraction

(2) Modèle

(4) Visualisation

(3) Analyses

Page 16: Présentation du projet Moose

S.Ducasse

RMod

Who is responsible?

16

(1) Extraction

(2) Modèle

(4) Visualisation

(3) Analyses

Distribution Map of authors on JBoss

Page 17: Présentation du projet Moose

S.Ducasse

RModDistribution Map

17

Page 18: Présentation du projet Moose

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Moose is a powerful environment

Page 19: Présentation du projet Moose

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

Page 20: Présentation du projet Moose

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

Page 21: Présentation du projet Moose

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

Page 22: Présentation du projet Moose

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