Presentazione Lab ESSeRE June09

Document Sample
Presentazione Lab ESSeRE June09 Powered By Docstoc
					                  Evoluzione dei Sistemi Software e Reverse Engineering

Software Evolution and Reverse Engineering

Founded in 2004

Main aims:

Analyze and define approaches, methodologies, techniques, tools able to
  support software evolution and maintenance

•   ● scientists: 2 faculties, 3 PhD students
•   ● external collaborators

•   Contact: Francesca Arcelli Fontana,

•   Website: http: //
               Software Evolution and Reverse Engineering

System evolution carries:
– Software Architecture violation
– Not up to date documentation
– .....

    Expensive maintenance
             Software Evolution and Reverse Engineering

  Main research areas:

• Design Pattern Detection (DPD) for Reverse
• Software Architecture Reconstruction (SAR)
  – Program Comprehension
• Legacy System Modernization
  – Migration of legacy systems to SOA
  – Model-driven reverse engineering
  – Function and Data Reengineering
                Design Patterns Detection (DPD)

•   DPD for reverse engineering
•   DPD for forward engineering (Design Advisor)
•   Quality design assessment
•   Detection based on DP sub-components
•   Architectural Patterns detection
    – Pattern detection for data reverse engineering
• Exploiting both static and dynamic analysis
              Software Architecture Reconstrution (SAR)

• We have experimented several tools for SAR and
  Program Comprehension on exixting systems of
  different complexity
   – Expecially for Java, C++ systems
   – Cobol, RPG
• We are developing a tool to support Program
  Comprehension providing:
   – Views, diagrams on the system
   – Metrics
   – High level architectural abstractions
   – Anti Patterns detection
            Data Mining Techniques for Reverse Engineering

• We experimented data mining techniques for
  – Supervised Classification (SVM, Naive
  – Unsupervised Classifcation(Clustering, Weka

• experimenting other tecniques for DPD and SAR
                           Systems Modernization

• How applications become legacy?
• Virtually every company has legacy applications of some form
• Often companies don’t have enough money for new projects
  because existing applications cost too much to operate and maintain
• Only some legacy applications will be reusable: which is the right
  level of granularity to support reuse?

SOA are really the future state target for IT?
Archtecture Driven Modernization – ADM (OMG standard)
                            Migration to SOA

• We are currently working on the analysis and
  experimentation of tools and methodologies for
  legacy systems migration towards Service Oriented
   – Program Comprehension and SAR
   – DP Detection
   – Anti Pattern Detection (modularity, dependecy relations)

   – We are experimenting the COMPASS (COde Migration
     Planning and ASSesment) workbench framework of IBM-
     Haifa to understand applications and assist in isolating the
     business component in VB code towards SOA
                     DPD for Migration to SOA

• Exploiting the knowledge associated to some
  Design Patterns to provide a kind of guidance in
  designing SOA-based systems.
• Identifying the design patterns more relevant:
  – in the design of a SOA based system;
  – in the transformation process towards SOA when
    identified in an existing system or in a system under
    development, as they provide additional information
    on the underlying architecture and behaviour.
  – i.e. DP Mediator as a service or service composer,
    DP Façade,..
                 Software modernization exploiting architectural models

Archtecture Driven Modernization – ADM (OMG standard-2004)

•   Capture architectural aspects of existing applications
•   Consolidate best practices leading to successful modernization
•   Modernization from an analysis and design based perspective to prevent
    propagation of obsolete concepts and designs in modern language and

•   Aims to create interoperability standards for modernization tools

     – KDM (Knowledge Discovery Metamodel)-2007: Defines an initial meta-model
       that allows modernization tools to exchange application meta-data across
       applications, languages, platforms and environments

     – Modisco (MOdel DISCOvery): An Eclipse GMT (Generative Modeling
       Technology) component for model-driven reverse engineering
             Software modernization and Marple

Marple (Metrics and ARchitecture
 Reconstruction PLugin for Eclipse)
   • AST of the Java language

   • Module that extracts Basic Elements and

           • Module allowing to visualize
           Metrics and Design Patterns

• Module that detects Design Patterns using
Basic Elements contained in the model

                • ASTs of the supported

• AST to “MetaAST” transformation function

• “MetaAST” that allows the representation
of “all” object oriented languages

• Module allowing to analyze the “MetaAST” in
order to extract the information to be inserted
in the model (e.g. Metrics Collector: calculates
the metrics)
          • Module allowing to visualize and
          explore all the information within the
• Module allowing analyses on the model that
enrich it with the detected information (e.g.
Design Pattern Detection: detects Design
Patterns using basic elements within the
model)                                        13
   • Allows to implement new
   languages AST transformation
   functions (e.g. Python)

   • Allows to implement new
   analyses on the “MetaAST” (e.g.
   DataFlow Analysis)
            • Allows to implement
            new visualizations and
            explorations of the
• Allows to implement new
analyses on the model (e.g.
correlation analysis)
      S    w
D t   o    a
a a   f    r
      t    e

            Collaborations with other DISCo-Laboratories

• ITIS (Batini, Viscusi), Function and Data
  Reverse Engineering
• MAD Data Mining for Reverse Engineering
• LTA, Dynamic Analysis for DPD and SAR
• SAL, Detection of architectural patterns,
  detection of interfaces/services, software
  evolution through architectural reflection
• Open-IT, Application of reverse engineering
  techniques to close software, software protection
  (decompiling techniques)
• TangoLab, stage on projects supporting
  activities in Ciad.

Research Collaborations activated or to start:
Università di Salerno
Università del Molise
Università di Roma Tre
The Technion – Israel Institute of Technology, Unified
              catalog of Micro architectures
University of Szeged, Ungheria,Benchmark for DPD
INRIA (ATLAS Group, Nantes), Model driven reverse

Microfocus (APM, Metrics)
Replay (System Modernization)
IBM Haifa (Migration to SOA-Compass)

Shared By: