Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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 http://www.cs.toronto.edu/~yijun/

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

3 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

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

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

6 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

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

8 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

9 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

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

11 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

12 RE’05 The 13 th International conference on Requirements Engineering 3. Case studies Case study selection criteria Email 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

13 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 email 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();...

14 RE’05 The 13 th International conference on Requirements Engineering

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

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

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

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

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

20 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

21 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 http://www.cs.toronto.edu/km/retr


Download ppt "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."

Similar presentations


Ads by Google