1 / 21

Reverse Engineering Goal Models from Legacy Code

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/. 1. Motivation.

leal
Download Presentation

Reverse Engineering Goal Models from Legacy Code

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 http://www.cs.toronto.edu/~yijun/ The 13th 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 The 13th International conference on Requirements Engineering

  3. Put into reengineering perspective Horseshoe Model abstract Reverse engineering Forward engineering Requirements IntentionsTradeoffs GOAL MODEL GOAL MODEL customizablearchitecture SOA Architectures BEHAVIOUR MODEL Web services Functions components LEGACY CODE Code …… time The 13th International conference on Requirements Engineering

  4. Hard goal model The 13th International conference on Requirements Engineering

  5. Soft goal model The 13th International conference on Requirements Engineering

  6. Put into reengineering perspective Horseshoe Model Reverse engineering Forward engineering Requirements IntentionsTradeoffs GOAL MODEL GOAL MODEL customizablearchitecture SOA Architectures BEHAVIOUR MODEL Web services Functions components LEGACY CODE Code …… 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 The 13th International conference on Requirements Engineering

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

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

  13. 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 3.1 The Columba case study 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(); ... The 13th International conference on Requirements Engineering

  14. The 13th International conference on Requirements Engineering

  15. A running Columba 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 email system • popular • PHP + HTML • 70 KLoc • Open-source • unstructured Check this: • It’s reliable, secure, easy to use • but not that fast … The 13th International conference on Requirements Engineering

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

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

  21. RETR '05 Welcome to the 1st RETR workshop • Reverse engineering to Requirements • Collocated with WCRE’05, November Pittsburg, USA • http://www.cs.toronto.edu/km/retr The 13th International conference on Requirements Engineering

More Related