Reverse Engineering Goal Models from Legacy Code

  • Authors:
  • Yijun Yu;Yiqiao Wang;John Mylopoulos;Sotirios Liaskos;Alexei Lapouchnian;Julio Cesar Sampaio do Prado Leite

  • Affiliations:
  • Univ. of Toronto;Univ. of Toronto;Univ. of Toronto;Univ. of Toronto;Univ. of Toronto;PUC-Rio

  • Venue:
  • RE '05 Proceedings of the 13th IEEE International Conference on Requirements Engineering
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

A reverse engineering process aims at reconstructing high-level abstractions from source code. This paper presents a novel reverse engineering methodology for recovering stakeholder goal models from both structured and unstructured legacy code. The methodology consists of the following major steps: 1) Refactoring source code by extracting methods based on comments; 2) Converting the refactored code into an abstract structured program through statechart refactoring and hammock graph construction; 3) Extracting a goal model from the structured program驴s abstract syntax tree; 4) Identifying nonfunctional requirements and derive softgoals based on the traceability between the code and the goal model. To illustrate this requirements recovery process, we refactor stakeholder goal models from two legacy software code bases: an unstructured Web-based email in PHP (SquirrelMail) and a structured email client system in Java (Columba).