Authors:
Philippe Dugerdil
and
Sebastien Jossi
Affiliation:
HEG, University of Applied Sciences of Western Switzerland, Switzerland
Keyword(s):
Reverse Specification, Dynamic Analysis, Static Analysis, Execution Trace, Branch Condition Analysis.
Related
Ontology
Subjects/Areas/Topics:
Health Engineering and Technology Applications
;
Neurocomputing
;
Neurotechnology, Electronics and Informatics
;
Requirements Elicitation and Specification
;
Reverse Engineering
;
Software Engineering
;
Software Engineering Methods and Techniques
Abstract:
During the development of a legacy system reverse engineering method we developed a technique to help with the recovery of the system’s use-cases. In fact, our reverse-engineering method starts with the re-documentation of the system’s use-case by observing its actual users. But these use-cases are never complete and accurate. In particular, the many alternative flows are often overlooked by the users. This paper presents our use-case recovery methodology as well as the techniques we implemented to identify all the flows of the legacy system’s use-case. Starting from an initial use-case based on the observation of the users, we gather the corresponding execution trace by running the system according to this use-case. The analysis of this execution trace coupled with a static analysis of the source code lets us find the possible alternative execution paths of the system. The execution conditions for these paths are analyzed to establish the link to the use-case level. This lets us syn
thesize alternative flows for the use-case. Next we run the system again following these alternative flows to uncover possible new alternative paths, until one converges to a stable use-case model.
(More)