RMoD Software Remodularisation



Similar documents
Stéphane Ducasse. 43 years INRIA Lille Nord Europe- LIFL/USTL - CNRS UMR8022

How To Understand And Understand Smalltalk

Génie Logiciel et Gestion de Projets. Evolution

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

Supporting Software Change in the Programming Language

Using Recovered Views to Track Architectural Evolution

CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool

The Class Blueprint A Visualization of the Internal Structure of Classes

Software Comprehension and Reuse supported by Analytics and Repository Mining

OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture

Exploiting Dynamic Information in IDEs Eases Software Maintenance

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript

Program Understanding in Software Engineering

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

EvoSpaces: 3D Visualization of Software Architecture

Paris, October ICSM 2007 Working Session. Francesca Arcelli Fontana

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship

White Coats: Web-Visualization of Evolving Software in 3D

Dynamic Analysis. The job of the reverse engineer is similar to the one of the doctor, as they both need to reason about an unknown complex system.

Aspect Mining in Procedural Object-Oriented Code

Aspect-Oriented Programming

BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests

Analysis and Design of Software Systems Practical Session 01. System Layering

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

Representing Code History with Development Environment Events

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

An Automatic Reversible Transformation from Composite to Visitor in Java

A Multi-layered Domain-specific Language for Stencil Computations

The OpenCloudware collaborative project

The OpenCloudware collaborative project

Visualizing Software Architecture Evolution using Change-sets

Unification of AOP and FOP in Model Driven Development

Software Engineering & Architecture

Strategies for Program Inspection and Visualization

CodeCrawler Lessons Learned in Building a Software Visualization Tool

Using Library Dependencies for Clustering

A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint

Java Wiretap. Extracting Feature Execution Models for Reverse Engineering

How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution

Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

Chapter 13: Program Development and Programming Languages

A Framework of Model-Driven Web Application Testing

Adaptability in Object-Oriented Software Development Workshop report

sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Integration of Application Business Logic and Business Rules with DSL and AOP

MDA and Programming Languages

Toward Families of QVT DSL and Tool

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Curriculum Vitae. Zhenchang Xing

VISUALIZATION TECHNIQUES OF COMPONENTS FOR LARGE LEGACY C/C++ SOFTWARE

Service Oriented Architecture 1 COMPILED BY BJ

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution

Grouping in Object-Oriented Reverse Engineering

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Assuring Software Quality by Code Smell Detection

Insights into System Wide Code Duplication

Infrastructures for Digital Business Ecosystems : the wrong question?

School of Computer Science

Challenges in bootstrapping a model-driven way of software development

Evolution Feature Oriented Model Driven Product Line Engineering Approach for Synergistic and Dynamic Service Evolution in Clouds

Software Engineering. So(ware Evolu1on

Maispion: A Tool for Analysing and Visualising Open Source Software Developer Communities

A METHOD FOR REWRITING LEGACY SYSTEMS USING BUSINESS PROCESS MANAGEMENT TECHNOLOGY

Safe Kernel Scheduler Development with Bossa

Generating Aspect Code from UML Models

Managing Software Evolution through Reuse Contracts

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

Run-time Variability Issues in Software Product Lines

Understanding Software Static and Dynamic Aspects

A Visualization Approach for Bug Reports in Software Systems

Program Understanding with Code Visualization

COCOVILA Compiler-Compiler for Visual Languages

CSC408H Lecture Notes

Development of Tool Extensions with MOFLON

A Framework for Obtaining the Ground-Truth in Architectural Recovery

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Mining a Change-Based Software Repository

The Service Revolution software engineering without programming languages

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Doctoral University 8th EUA-CDE Workshop Regional Engagement and Doctoral Education

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

How to simplify the evolution of business process lifecycles

API Architecture. for the Data Interoperability at OSU initiative

OVERVIEW OF JPSEARCH: A STANDARD FOR IMAGE SEARCH AND RETRIEVAL

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

INNOVATOR. The integrated tool suite for business process and software engineering

Managing the Services Lifecycle SOA & BPM

Clone Detection in a Product Line Context

Ghizlane El Boussaidi , boul. Lévesque Est Phone : (450)

Component visualization methods for large legacy software in C/C++

An empirical study of fine-grained software modifications

Chapter 9 Software Evolution

Comprensione del software - principi base e pratica reale 5

Service-oriented architecture in e-commerce applications

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Wednesday, September 29, Thanks for being here!

Transcription:

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