An Approach to Identify and Classify State Machine Changes from Code Changes - Barbosa, Matheus de Oliveira; Ramalho, Franklin (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2020: Anais do XIV Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2020)
During the software development process, various types of artifacts are created representing different views in different levels of abstraction. Among these artifacts, UML Behavioral State Machine (SM) is one of the most used models to represent the software behavior. Due to the changes that occur in the source code of the software, updates are also required in the entire set of the produced artifacts, demanding time and effort. In this work, we propose an approach to identify and classify changes on SMs according to the source code changes. This approach is composed of (i) a taxonomy for changes on SMs; (ii) a mapping from source code changes to SM changes; and (iii) an algorithm that automatically classifies SM changes caused by code changes. Two studies with real and open source projects were carried out: a survey to evaluate the taxonomy and an experiment to evaluate the algorithm effectiveness. The results have shown that source code changes can cause changes on SM and that it was possible to establish a mapping between both kind of changes. The experiment assessed a precision of 65, 60% and a recall of 50, 80% to the algorithm. With the proposed approach, we hope to reach a reduction of the effort and time required to keep SM updated and in compliance with the source code, as well as to provide a way to better comprehend the software evolution.