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 2
Building on expertise! Supporting software evolution and software composition! Two axes! Reengineering software systems! Language infrastructure! @@@ More? @@@ 3
Reengineering Topics Metamodeling, Software metrics, Program understanding, Visualization, evolution analysis, Dcode detection, Code analysis, Refactorings... Contributions Reverse Engineering Representation Analyses Evolution 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 Transformations 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 [ICSM 07] Distribution Maps [ICSM 06] Reverse Engineering Representation Language Independent Meta Model [UML 99] An Extensible Reengineering Environment (Moose) [Models 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] Evolution Reengineering Patterns Version Analyses [ICSM 05] HISMO metamodel [JSME 05] Transformations Language Independent Refactorings [IWPSE 00] 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 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 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) 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) 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? 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 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. 12
Maintenance Cost 13
Maintenance is Continuous Development 18.2% Adaptive (new platforms or OS) 4.1% Other Relative Maintenance Effort Between 50% and 75% of global effort is spent on maintenance! 17.4% Corrective (fixing reported errors) 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 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...) 15
Research Agenda How to help remodularize existing software applications? How to enhance programming languages to ease future evolution and reuse of software applications? 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? 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...@@ 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 19
International Collaborations ERCIM WG Software Evolution co-founder Assoc. Team Remoose Geodes, Univ. Montréal (H. Sahraoui/Y.G. Gueheneuc) Software Composition Group, Univ. Bern, Pr. O. Nierstrasz 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) 20
National Collaborations Regional Ecole des mines de douai (Noury Bouraqadi) LIRMM Equipe d Oc INRIA Obasco Contact with MetaWare technologies Qualixo Cast Software Projects Squale, Pôle System@atic Submitted ANR Defis (LIRMM, LIAFA, MetaWare) 21
International and INRIA Positing INRIA Landes (statique and model checking) Klimt (Parsing + DSL + Architecture) Gallium (ocaml) Obasco (AOP) International Reengineering A. van Deursen (model driven) R. Koschke (algorithms for identification) Geodes H. Saharoui (metrics, quality) Lore (S. Demeyer, test) Seal (H. Gall, evolution mining) Reveal (M. Lanza Visualization) SERG (S. Mancoridis, Clustering) Language Design Scala (M. Odersky EPFL) E (Milner, SUN) Mixins (...) Units (Flatt) RPM (R. Ducournau, LIRMM) Reflectivity (M. Denker, SCG) 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 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: 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 Object- Oriented 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 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 26