Software Remodularisation - support slidex

Jun 9, 2007 - Post doctoral Fellows. S. Denier (Sept 2008 - Projet région System@tic .... ERCIM WG Software. Evolution co-founder. Assoc. Team Remoose.
642KB taille 1 téléchargements 269 vues
!"#$

RMoD Software Remodularisation Research Theme: Communicating systems COM A: Project Proposal USTL/LIFL-INRIA 9 June 2007 Stéphane Ducasse 1

Outline ! Building on expertise ! RMoD ! ! ! ! !

Team Challenges and objectives Foundations Application domains Research Agenda

! Collaborations and grants ! ! ! ! !

International collaborations National collaborations International and INRIA positioning Publications and software Programme committees and conference organisations

! Conclusion S.Ducasse

2

!"#$

Building on expertise ! Supporting software evolution and software composition ! Two axes ! Reengineering software systems ! Language infrastructure ! @@@ More ? @@@

S.Ducasse

3

!"#$

Reengineering

Analyses Reverse Engineering

Topics Metamodeling, Software metrics, Program understanding, Visualization, evolution analysis, Dcode detection, Code analysis, Refactorings...

Representation

Transformations

Evolution

Contributions Moose: an open-source extensible reengineering environment: (Lugano, Bern, Annecy, Anvers, Louvain la neuve, ULB, UTSL) Contacts Harman-Becker (3 Millions C++), Bedag (Cobol), Nokia, ABB, IMEC S.Ducasse

4

!"#$

Understanding Large Systems [WCRE’99, TSI’00, TSE’03] Static/Dynamic Information [ICSM’99] Feature Analysis [JSME ‘06] Class Understanding [OOPSLA’01,TSE’04] Package Blueprints Reverse [ICSM’07] Engineering Distribution Maps [ICSM’06]

Software Metrics [LMO’99, OOPSLA’00] Duplicated Code Identification [ICSM’99, ICSM’02] Group Identification [ASE’03] Test Generation [CSMR’06] Concept Identification Analyses [WCRE’06]

Representation

Language Independent Meta Model [UML’99] An Extensible Reengineering Environment (Moose) [Models’06]

S.Ducasse

Transformations

Language Independent Refactorings [IWPSE’00]

Evolution

Reengineering Patterns Version Analyses [ICSM’05] HISMO metamodel [JSME’05]

5

!"#$

Language infrastructure 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 (Pecos IST Project) Classboxes: Modules for open-classes [OOPSLA’05] OOPAL: OOP + APL Generalizing message passing - [OOPSLA’03] Language symbiosis (Jour. Program) Encapsulation for dynamic languages [ECOOP ‘04, OOPSLA’04] Reusable behavior: Traits [ECOOP’03, OOPSLA’03, Toplas, ..., OOPSLA’07]

Impacts Traits used by Fortress (SUN Microsystems), Scala (EPFL), Perl-6, Squeak, Slate, Dr-Scheme Multiple type systems S.Ducasse

6

!"#$

Outline ! Building on an expertise ! RMoD ! ! ! ! !

Team Challenges and objectives Foundations Application domains Research Agenda

! Collaborations and grants ! ! ! ! !

International collaborations National collaborations International and INRIA positioning Publications and software Programme committees and conference organisations

! Conclusion S.Ducasse

7

!"#$

Team ! Permanent Staff ! S. Ducasse, DR2 INRIA ! A. Bergel, CR2 INRIA

! Post doctoral Fellows ! S. Denier (Sept 2008 - Projet région System@tic Qualité logicielle)

! External collaborators @@ not sure to keep@@ ! R. Wuyts, Pr, IMEC-KUL (under building) ! W. Demeuter, Pr, VUB (under building)

S.Ducasse

8

!"#$

Team ! PhD students ! M.Suen (DGA-CNRS / Security in dynamic languages) ! A. Abdeen (ANR / Package Analyses) ! J. Menanteau (Sept 2008 / Projet region Qualité logicielle)

! Other PhD students ! H. Fernandes (salarié - 30 % co-tutelle Listic Univ. Savoie) ! A Razavizadeh (20 % co-tutelle Listic Univ. Savoie)

S.Ducasse

9

!"#$

Challenges and objectives ! How to help development teams to maintain and evolve their software programs? ! ! ! !

What are the analyses? How to identify problems? How to display results? How to support decisions?

! What language constructs to support better composition and evolution?

S.Ducasse

10

!"#$

Typical large scale long living systems! Large: couple thousands of classes Large: 2s per line of 1M LOC system = 3 months! Undocumented Knowledge loss Lack of structure overview (layers, cycles, core) Multi-developer Multi years

S.Ducasse

11

!"#$

Software Evolution Laws Continuous Changes. “a program that is used must be continually adapted else it becomes progressively less satisfactory” Increasing Complexity. “As a program is evolved its complexity increases unless work is done to maintain or reduce it.”

S.Ducasse

12

!"#$

Maintenance Cost

S.Ducasse

13

!"#$

Maintenance is Continuous Development

18.2% Adaptive (new platforms or OS)

Relative Maintenance Effort 17.4% Corrective Between 50% and 75% of global (fixing reported errors) effort is spent on “maintenance” !

4.1% Other

60.3% Perfective (new functionality)

The bulk of the maintenance cost is due to new functionality even with better requirements, it is hard to predict new functions

S.Ducasse

14

!"#$

Application Domains Quality and software engineering are omnipresent PSA, Airbus and MediaPost Open-source Java projects JBoss, Azureus

Dynamic Web Development Pharo: for developing real-life applications Starting from Squeak (developed since 1996) 2500 Classes Monolithic Several complex domains (UI, IDE, Compilation, Audio, 3D...)

S.Ducasse

15

!"#$

Research Agenda How to help remodularize existing software applications?

How to enhance programming languages to ease future evolution and reuse of software applications?

S.Ducasse

16

!"#$

Remodularisation Support Tools for understanding applications at large Building the macroscope

Remodularisation analyses Which analysis? Key class identification Layers New ways to look at coupling

Software quality and monitoring How remodularisation (coupling/layers) fits into software quality? How does the system evolve? S.Ducasse

17

!"#$

Language Constructs for Modular Design Traits Large application (Collection library) Reconsidering traits (state addition) Pure traits-based language

Security and dynamic reflective systems Security by construction Control of reflective behavior Model of security (ACL/Capabilities) Supported by NetStyle.ch

Secure hot-upgrade @@ should probably expand with objectives....@@ S.Ducasse

18

!"#$

Outline ! Building on expertise ! RMoD ! ! ! ! !

Team Challenges and objectives Foundations Application domains Research Agenda

! Collaborations and grants ! ! ! ! !

International collaborations National collaborations International and INRIA positioning Publications and software Programme committees and conference organisations

! Conclusion S.Ducasse

19

!"#$

International Collaborations ERCIM WG Software Evolution

Research Groups A. Black (Oregon, USA) O. Nierstrasz (Bern, Switzerland) R. Wuyts (IMEC/KUL, Belgium) E. Tanter (Santiago, Chile) Sahraoui/Guéheneuc (Montréal, Canada) S. Krishnamurthi (Providence, USA) T. D’Hondt (VUB, Belgium)

co-founder

Assoc. Team Remoose Geodes, Univ. Montréal (H. Sahraoui/Y.G. Gueheneuc) Software Composition Group, Univ. Bern, Pr. O. Nierstrasz

S.Ducasse

20

!"#$

National Collaborations Regional

Contact with

Ecole des mines de douai (Noury Bouraqadi) LIRMM Equipe d’Oc INRIA Obasco

MetaWare technologies Qualixo Cast Software

Projects Squale, Pôle System@atic Submitted ANR Defis (LIRMM, LIAFA, MetaWare)

S.Ducasse

21

!"#$

International and INRIA Positing Geodes H. Saharoui (metrics, quality) Lore (S. Demeyer, test) Seal (H. Gall, evolution mining) Reveal (M. Lanza Visualization) SERG (S. Mancoridis, Clustering)

INRIA Landes (statique and model checking) Klimt (Parsing + DSL + Architecture) Gallium (oCaml) Obasco (AOP)

Language Design Scala (M. Odersky EPFL) E (Milner, SUN) Mixins (...) Units (Flatt) RPM (R. Ducournau, LIRMM) Reflectivity (M. Denker, SCG)

International Reengineering A. van Deursen (model driven) R. Koschke (algorithms for identification)

S.Ducasse

22

!"#$

Publications and Software Publications 2005-2008 10 PhDs (5 in 2005, 3 in 2006, 2 in 2007, 1 in 2008) 2 books (27000 dls) 2 chapters 18 journal articles (TSE, Toplas, 30 articles (ECOOP, OOPSLA, ICSM, WCRE, CSMR...)

Software Moose: reengineering open-source environment Squeak 3.9 release responsible Pharo: high quality open-source Smalltalk JSmall: mini Java VM

S.Ducasse

23

!"#$

Programme commitees and conferences Conferences and Workshop Organizations LMO’2005, ESUG’05,’06,’07 (100 part), Workshop chair Tools’07, Tools’08, Dyla’07

Programme Committees International: ECOOP’05,’07, ICSM’05,’06,’07,’08, CSMR’06,’07,’08, ICPC’06,’07,’08, Models/UML’05,’06, ’07, DLS’05,’06, WCRE’05,’06, ESUG’05

National: Node ‘05, ’06, LMO’05,’06,’08, IDM’05,’06,’07,’08. JFDLA‘05,’07, Cal’06.

International Workshops:

S.Ducasse

Design Pattern Theory and Practice 05, Program Comprehension through Dynamic Analysis (PCODA’05’06). Meta-Models. Schemas and Grammars for Reverse Engineering (ATEM’06), Mining Software Repositories (MSR'07), Semantic Technologies in System Maintenance (STSM'08), Model Co-Evolution and Consistency Management (MCCM'08), Implementation, Compilation, Optimization of ObjectOriented Languages, Programs and Systems (ICOOOLPS 2008) Self-sustaining Systems (S3-2008)24 !"#$

Risk Analysis On the edge of two challenging topics Small team Difficult since industry wants reengineers not “reengsearchers” Solutions Stepwise bootstrapping Narrowing the field: remodularisation as a focus Identify key players in France Working with collaborations

S.Ducasse

25

!"#$

Conclusion Remodularisation as a challenge Two axes in synergy

Head in the clouds Model and analyses

Feet on the ground Applied to real systems Platform and solutions tested on real software

S.Ducasse

26

!"#$