!"#$
RMoD
Software
Remodularisation
Research Theme: Communicating systems
COM A:
Project Proposal USTL/LIFL-INRIA
9 June 2007
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
Building on expertise
!
Supporting software evolution and software composition
!
Two axes
! Reengineering software systems ! Language infrastructure
Reengineering
Topics
Metamodeling, Software metrics,
Program understanding,
Visualization, evolution analysis, Dcode detection,
Code analysis, Refactorings...
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,
Representation Transformations Reverse
Engineering
Analyses
Representation Transformations Reverse
Engineering
Analyses
Evolution Language Independent Meta
Model [UML’99] An Extensible Reengineering Environment (Moose) [Models’06] Reengineering Patterns Version Analyses [ICSM’05] HISMO metamodel [JSME’05]
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] Software Metrics [LMO’99, OOPSLA’00]
Duplicated Code Identification
[ICSM’99, ICSM’02] Group Identification [ASE’03] Test Generation [CSMR’06] Concept Identification [WCRE’06] Language Independent Refactorings [IWPSE’00]
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
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
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)
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)
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?
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
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.”
Maintenance is Continuous Development
Relative Maintenance Effort
Between 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 functionality
Application Domains
Quality and software engineering are omnipresent
PSA, Airbus and MediaPost
Open-source Java projects
JBoss, AzureusDynamic Web Development
Pharo: for developing real-life applications Starting from Squeak (developed since 1996)
2500 Classes Monolithic
Research Agenda
How to help remodularize existing software
applications?
How to enhance programming languages to ease future
evolution and reuse of software applications?
Remodularisation Support
Tools for understanding applications at large
Building the macroscopeRemodularisation 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?
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 constructionControl of reflective behavior
Model of security (ACL/Capabilities) Supported by NetStyle.ch
Secure hot-upgrade
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
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)
National Collaborations
Regional
Ecole des mines de douai (Noury Bouraqadi)
LIRMM Equipe d’Oc INRIA Obasco
Projects
Squale, Pôle System@atic Submitted ANR Defis
(LIRMM, LIAFA, MetaWare)
Contact with
MetaWare technologies Qualixo
International and INRIA Positing
INRIA
Landes (statique and model checking) Klimt (Parsing + DSL + Architecture) Gallium (oCaml) Obasco (AOP)
International
ReengineeringA. 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)
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
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
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
Conclusion
Remodularisation as a challenge
Two axes in synergyHead in the clouds
Model and analysesFeet on the ground
Applied to real systems