Using reverse engineering techniques to infer a system use case model

Summary In this article, a strategy that seeks to assist the arduous cognitive process that involves understanding a GUI‐based system is presented. In order to reach this goal, a UML use case model with the most relevant features is obtained. To derive this model, the strategy performs the following...

Full description

Saved in:
Bibliographic Details
Published in:Journal of software : evolution and process Vol. 31; no. 2
Main Authors: Miranda, Enrique A., Berón, Mario, Montejano, Germán, Riesco, Daniel
Format: Journal Article
Language:English
Published: Chichester Wiley Subscription Services, Inc 01-02-2019
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Summary In this article, a strategy that seeks to assist the arduous cognitive process that involves understanding a GUI‐based system is presented. In order to reach this goal, a UML use case model with the most relevant features is obtained. To derive this model, the strategy performs the following steps: Extraction and filtering of specific system static information and implementation of a clustering process that inspects this information including GUI widgets, which are components closely related to the system problem domain. Although these steps are commonly known and used in the context of reverse engineering, the strategy introduces unusual approaches regarding the proposals found in the available literature. More specifically, the strategy presents (a) a set of metrics that infers the relative importance of a method or a function within the analysed system, (b) a summarization process driven by different features of software systems, and (c) a technique to cluster software artefacts and to map the cluster model onto a use case model. The article also propose a methodology that allows to compare the achieved results. The assessment of the approach suggests that the strategy can assist the software engineer to understand a software system providing a useful fine‐grained use case model. In the context of software maintenance, the most time‐consuming activities are those the software engineer must execute to understand a system. Reverse engineering provides methods and tools aiming to assist this arduous cognitive process. We propose a reverse engineering strategy that extracts a UML use case model with the most relevant features for the system under study. This model provides a connection between a high‐level ion of the system functionalities and the source code artifacts that implement those functionalities.
ISSN:2047-7473
2047-7481
DOI:10.1002/smr.2121