Software Evolution and Reverse Engineering Founded in 2004 Main aims: Analyze and define approaches,...

17
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, [email protected] Website: http: //essere.disco.unimib.it/ Evoluzione dei Sistemi Software e Reverse Engineering
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    2

Transcript of Software Evolution and Reverse Engineering Founded in 2004 Main aims: Analyze and define approaches,...

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, [email protected]

• Website: http: //essere.disco.unimib.it/

Evoluzione dei Sistemi Software e Reverse Engineering

System evolution carries:– Software Architecture violation

– Not up to date documentation

– .....

Expensive maintenance

Software Evolution and Reverse Engineering

Software Evolution and Reverse Engineering

Main research areas:

• Design Pattern Detection (DPD) for Reverse Engineering

• Software Architecture Reconstruction (SAR)– Program Comprehension

• Legacy System Modernization– Migration of legacy systems to SOA – Model-driven reverse engineering– Function and Data Reengineering

• 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

Design Patterns Detection (DPD)

• 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

Software Architecture Reconstrution (SAR)

• We experimented data mining techniques for DPD:– Supervised Classification (SVM, Naive

Bayes,..)– Unsupervised Classifcation(Clustering, Weka

SimpleKMeans)

• experimenting other tecniques for DPD and SAR

Data Mining Techniques for Reverse Engineering

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?

Solutions??

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 Architectures.– 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 platforms

• 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)

12

• AST of the Java language

• Module that extracts Basic Elements and Metrics

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

• Module allowing to visualize Metrics and Design Patterns

• ASTs of the supported languages

• 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 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)

• Module allowing to visualize and explore all the information 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 model

• Allows to implement new analyses on the model (e.g. correlation analysis)

14

15

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.

Collaborations

Research Collaborations activated or to start: Università di SalernoUniversità del Molise Università di Roma TreThe Technion – Israel Institute of Technology, Unified catalog of Micro architecturesUniversity of Szeged, Ungheria,Benchmark for DPDINRIA (ATLAS Group, Nantes), Model driven reverse

engineeering

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