RE’05 The 13 th International conference on Requirements Engineering Reverse Engineering Goal Models from Legacy Code Yijun Yu 1 Yiqiao Wang 1 John Mylopoulos.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

CROSSmeeting UM, Fev T5: Slicing Techniques Applied to OSS Pedro Rangel Henriques Daniela da Cruz Dep. de Informática/CCTC, Universidade do Minho,
Reverse Engineering Computer Science Computer Science University of Windsor University of Windsor Shaochun Xu.
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.
Software Reuse SEII-Lecture 28
1 Program Slicing Purvi Patel. 2 Contents Introduction What is program slicing? Principle of dependences Variants of program slicing Slicing classifications.
合久必分,分久必合 Long union must separate, long separation must unite Discovering aspects from requirements goal models Yijun Yu 1 Julio C. S. P. Leite 2 John.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Reverse Engineering When is it the most cost effective? Raymond Utz.
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
Software Reuse & Refactoring By: Matthew Merricks Brian Smith Brian Smith Ryan Waggoner Ryan Waggoner.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Refactoring workshop, WCRE'03 Software refactoring guided by multiple soft-goals Yijun Yu, John Mylopoulos, Eric Yu, Julio C. Leite, Linda Lin Liu, University.
Evaluating Architectures Quality control: rarely fun, but always necessary
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
The Center for Advanced Research In Software Engineering (ARISE) The University of Texas at Austin Reengineering of Large-Scale Polylingual Systems Mark.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
9 Refactoring Refactoring changes the software structure but does not change the functionality of the program –important activity during evolution Refactoring.
A Web/Grid Services Approach for a Virtual Research Environment Implementation Y. W. Sim, C. Wang, L. A. Carr, H. C. Davies, L. Gilbert, S. Grange, D.
Cluster Reliability Project ISIS Vanderbilt University.
Standard SRS Copyright, 2001 © Jerzy R. Nawrocki Requirements Engineering Lecture.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering 1 Object-oriented Analysis and Design Chap 21 Test-Driven Development and Refactoring.
Feature-Oriented Nonfunctional Requirement Analysis for Software Product Line Mats Hofman.
The roots of innovation Future and Emerging Technologies (FET) Future and Emerging Technologies (FET) The roots of innovation Proactive initiative on:
Lecture 7: Requirements Engineering
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
A Social Organization Perspective on Software Architecture Manuel KolpJaelson CastroJohn Mylopoulos Department of Computer Science University of Toronto.
November Ron McFadyen1 Composite Pattern A composite is a group of objects in which some objects contain others; one object may represent groups,
02/04/2008 A Concrete Syntax for UML 2.1 Action Semantics Using +CAL 13th IEEE International Conference on Engineering of Complex Computer Systems – ICECCS.
A Goal Based Methodology for Developing Domain-Specific Ontological Frameworks Faezeh Ensan, Weichang Du Faculty of Computer Science, University of New.
Research Methods in Human Computer Interaction Shahnewaz A. Jolly Instructor: Dr. Saul Greenberg 30th November,
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
COTS-Aware Requirements Engineering and Software Architecting
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
The Effect of on By:. Purpose The purpose of this project was to.
Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher(2009) with material from Amyot User Requirements Notation (URN)
Evaluating Architectures. Quality Control Rarely fun, but always necessary 1.
CSE 303 – Software Design and Architecture
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
 2001 John Mylopoulos STRAW’ Software Architectures as Social Structures John Mylopoulos University of Toronto First ICSE Workshop titled “From.
CSC 2720 Building Web Applications Basic Frameworks for Building Dynamic Web Sites / Web Applications.
Refactoring Agile Development Project. Lecture roadmap Refactoring Some issues to address when coding.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
Do Metrics Help to Identify Refactoring? Jean-Guy Schneider Rajesh Vasa
 Authors  Purpose  Main Phases  Related Literature  PDD  Examples  Conclusions.
Reverse Engineering Dept. of I&CT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
Introduction and Overview Winter 2013 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
Building Enterprise Applications Using Visual Studio®
The language focusses on ease of use
Towards Requirements-Driven Autonomic Systems Design
Introduction to Software Evolution and Maintenance
Web Applications Security What are web Applications?
Business Rule Based Configuration Management and Software System Implementation Using Decision Tables Olegas Vasilecas, Aidas Smaizys VGTU, Vilnius, Lithuania.
Reverse Engineering Goal Models from Legacy Code
Software Re-engineering - Theoretical and Practical Approaches
Ada – 1983 History’s largest design effort
Chapter 8 Software Evolution.
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Requirements Engineering Lecture 6
Refactoring.
Presentation transcript:

RE’05 The 13 th International conference on Requirements Engineering Reverse Engineering Goal Models from Legacy Code Yijun Yu 1 Yiqiao Wang 1 John Mylopoulos 1 Sotirios Liaskos 1 Alexei Lapouchnian 1 Julio Cesar Sampaio do Prado Leite 2

RE’05 The 13 th International conference on Requirements Engineering 2 1. Motivation In legacy software, the purpose (goals, requirements) of a software system is almost always lost in legacy code In the new era, open and dynamic systems require high-variability software So, we need to recover the purpose of the legacy software in order to adapt it for the new context

RE’05 The 13 th International conference on Requirements Engineering Put into reengineering perspective Horseshoe Model Intentions Tradeoffs Requirements Architectures Functions Code …… LEGACY CODE BEHAVIOUR MODEL GOAL MODEL Reverse engineering GOAL MODEL SOA Web services customizable architecture components Forward engineering abstract time

RE’05 The 13 th International conference on Requirements Engineering Hard goal model

RE’05 The 13 th International conference on Requirements Engineering Soft goal model

RE’05 The 13 th International conference on Requirements Engineering Put into reengineering perspective Horseshoe Model Intentions Tradeoffs Requirements Architectures Functions Code …… LEGACY CODE BEHAVIOUR MODEL GOAL MODEL Reverse engineering GOAL MODEL SOA Web services customizable architecture components Forward engineering

RE’05 The 13 th International conference on Requirements Engineering 2. A tool supported reverse engineering

RE’05 The 13 th International conference on Requirements Engineering 2.1 Software Refactoring Software refactoring = “Restructuring existing code by altering its internal structure without changing its external behaviour” –- Martin Fowler, also “Comments signal the semantic gap between the code and the programmers’ purpose” // refactored S(I, O); // the following does S S 1 (I 1, O 1 ); S 2 (I 2, O 2 ); // other … I = Variables defined before the entry of the block O= Variables defined in the block that will be used after the exit entry exit

RE’05 The 13 th International conference on Requirements Engineering 2.2 Statecharts refactoring Statecharts are used to bridge the semantics abstraction gap between source code and goal models 1.refactored source code 2.equivalent statechart 3.higher-level statechart 4.unstructured high-level program 5.structured high-level program

RE’05 The 13 th International conference on Requirements Engineering 2.3 Goal model from structured programs

RE’05 The 13 th International conference on Requirements Engineering 2.4 Identifying NFR and softgoals 1.Create a set of functional tests If removing a method does not break the functional test, then the goal associated with the method is a NFR 2.If the identified NFR improves some quality attribute, then There is a soft goal for the quality attribute There is a contribution from the NFR to the softgoal

RE’05 The 13 th International conference on Requirements Engineering 3. Case studies Case study selection criteria software systems as they are the target for personal RE Software popularity: with a large user base, must support wide-range of requirements Open-source: the validity of the findings can be verified Applicable with our tool support

RE’05 The 13 th International conference on Requirements Engineering 3.1 The Columba case study 1 ColumbaLogger.createDefaultHandler(); 2 registerCommandLineArguments(); 3 // handle commandline parameters 4 if (handleCoreCommandLineParameters(args)) 5 System.exit(0);... Why Columba? it is an system popular 140 KLoc Open-source Java Ver. 1.0RC2 What’s New! Ver. 1.0RC3 has put one of our resulting NFR into comments 1 ColumbaLogger.createDefaultHandler(); 2 registerCommandLineArguments(); 3 handle_commandline_parameters(args);... 1 // ColumbaLogger.createDefaultHandler(); 2 registerCommandLineArguments(); 3 handle_commandline_parameters(args);... boolean maintainability_logging = false;... 1 if (maintainability_logging) 2 ColumbaLogger.createDefaultHandler(); 3 registerCommandLineArguments();...

RE’05 The 13 th International conference on Requirements Engineering

RE’05 The 13 th International conference on Requirements Engineering A running Columba

RE’05 The 13 th International conference on Requirements Engineering The core functional Columba

RE’05 The 13 th International conference on Requirements Engineering JUnit testing for Preserved Functionality

RE’05 The 13 th International conference on Requirements Engineering 3.2 The Squirrel Mail case study Why Squirrel Mail? it is also an system popular PHP + HTML 70 KLoc Open-source unstructured Check this: It’s reliable, secure, easy to use but not that fast …

RE’05 The 13 th International conference on Requirements Engineering Restructure AST Goal Graph into Stakeholder Goals

RE’05 The 13 th International conference on Requirements Engineering 4. Conclusion A reverse engineering process is proposed to recover a goal model from legacy code. This is a critical step in reengineering legacy code to improve its quality through variability. Reverse Engineering research has focused almost exclusively on recovering design information (rather than purposes) Future work –Need to further evaluate the effectiveness of heuristics used –Need more experiments

RE’05 The 13 th International conference on Requirements Engineering Welcome to the 1 st RETR workshop Reverse engineering to Requirements Collocated with WCRE’05, November Pittsburg, USA