Presentation is loading. Please wait.

Presentation is loading. Please wait.

Reverse Engineering Goal Models from Legacy Code

Similar presentations


Presentation on theme: "Reverse Engineering Goal Models from Legacy Code"— Presentation transcript:

1 Reverse Engineering Goal Models from Legacy Code
Yijun Yu1 Yiqiao Wang1 John Mylopoulos1 Sotirios Liaskos1 Alexei Lapouchnian1 Julio Cesar Sampaio do Prado Leite2 RE’05 The 13th International conference on Requirements Engineering

2 The 13th International conference on Requirements Engineering
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 13th International conference on Requirements Engineering

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

4 The 13th International conference on Requirements Engineering
Hard goal model Here is an example of a hard goal model, which is an AND/OR graph. RE’05 The 13th International conference on Requirements Engineering

5 The 13th International conference on Requirements Engineering
Soft goal model Here is an example of a soft goal model, which is an AND/OR graph extended with the partial reasoning rules. RE’05 The 13th International conference on Requirements Engineering

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

7 2. A tool supported reverse engineering
2.1 FPT compiler FPT compiler 2.2 2.3 2.4 2.4 RE’05 The 13th International conference on Requirements Engineering

8 The 13th 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” entry // the following does S S1(I1, O1); S2(I2, O2); // other … // refactored S(I, O); exit I = Variables defined before the entry of the block O= Variables defined in the block that will be used after the exit RE’05 The 13th International conference on Requirements Engineering

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

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

11 2.4 Identifying NFR and softgoals
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 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 13th International conference on Requirements Engineering

12 The 13th 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 13th International conference on Requirements Engineering

13 The 13th International conference on Requirements Engineering
3.1 The Columba case study 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 4 if (handleCoreCommandLineParameters(args)) 5 System.exit(0); ... 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 13th International conference on Requirements Engineering

14 The 13th International conference on Requirements Engineering

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

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

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

18 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 13th International conference on Requirements Engineering

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

20 The 13th 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 13th International conference on Requirements Engineering

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


Download ppt "Reverse Engineering Goal Models from Legacy Code"

Similar presentations


Ads by Google