Software Evolution and Reverse Engineering Founded in 2004 Main aims: Analyze and define approaches, methodologies, techniques, tools able to support software.

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

Modeling with SoaML, the Service-Oriented Architecture Modeling Language: Part 1. Service Identification Rohit Goel, Tommy Omen, Ashley Pham.
Architecture-Driven Modernization Platform SIG KDM RFP.
Legacy Migration and Modernization: Leveraging the Value of Your Existing Applications in a Modern Enterprise Architecture Bob Mastro – Vice President.
© S. Demeyer, S. Ducasse, O. Nierstrasz Reverse Engineering.1 2. Reverse Engineering What and Why Setting Direction  Most Valuable First First Contact.
Object-Oriented Analysis and Design
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Architecture Eclipse Framework with Plugin Concept JTransformer Plugin Analysis + Transformation interface: logical Program.language keeps representation.
Page 1 SOA-Enabled Modernization Dr. Vitaly Khusidman
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Strategies to relate the program and problem domains using code instrumentation Mario Marcelo Berón University of Minho Pedro Rangel Henriques University.
The ARTIST project Add name here / institution presentation event / date Advanced software-based seRvice provisioning and migraTIon of legacy SofTware.
Knowledge Discovery: How To Reverse-Engineer Legacy Sytems © 2008 INRIA Knowledge Discovery: How to Reverse-Engineer Legacy Systems Hugo Bruneliere,
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
A Generic And Extensible Framework For Model Driven Reverse Engineering.
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
Introduction to MDA (Model Driven Architecture) CYT.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
I T & S A e r o s p a c eD e f e n c e THALES Research & Technology THALES recommendations for the final OMG standard on Query / Views / Transformations.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
1 Introduction to Software Engineering Lecture 1.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
™ ™ Assurance Ecosystem Djenana Campara Chief Executive Officer, KDM Analytics Board Director, Object Management Group (OMG) Co-Chair Software Assurance.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Introduction Problem Statement Research Goals Conclusion Contact / More Information { shimin, ltahvild Componentizing legacy system.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Software Architecture in the Future 1960s. Assembly languages, subroutines, semicolon as connectors 1970s. Structuring of programs to achieve qualities.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect, V7.5 Module 18: Applying Patterns and Transformations.
1 Here are some quotations to get an overview of the kinds of issues of interest.
Reverse Engineering Dept. of I&CT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool Teaching material for the book Model-Driven.
Introduction to OOAD and UML
The ARTIST project Advanced software-based seRvice provisioning and migraTIon of legacy Software.
Review of last class Software Engineering Modeling Problem Solving
Software Analytics Platform
Object-Oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 18 Maintaining Information Systems
Complexity Time: 2 Hours.
Software Maintenance.
Enterprise Data Model Enterprise Architecture approach Insights on application for through-life collaboration 2018 – E. Jesson.
Reverse Engineering: A Roadmap
Service Oriented Architecture (SOA)
UML profiles.
Software Design Lecture : 14.
Re- engineeniering.
From Use Cases to Implementation
Software Architecture & Design
Presentation transcript:

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: //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

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 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 engineeering Microfocus (APM, Metrics) Replay (System Modernization) IBM Haifa (Migration to SOA-Compass)