LIMA, M. A. E. A.; http://lattes.cnpq.br/5783905837905959; LIMA, Melquisedec Albert Einstein de Andrade.
Resumo:
Among the models approached by the UML language, there is the state machine model,
which allows modeling the behavior of an isolated software object, showing explicitly how
the object responds to external stimulus. When using the state machine model in a software project, the source code reflects the state machine such that a software error may be directly related to the state machine. Identifying the cause of an error related to the state machine model is not always a trivial task and can often go through the error assessment process, identify software elements that impacted by the error, determine its cause, and correct the software. Identifying the causes of a failure is the most time-consuming process in the software life cycle. There are works that address techniques for finding reported bugs in source code, but we have not found any work that lists or classifies bugs according to state machine. The task of identifying which state machine element a reported bug relates to is very laborious. Given this problem, the objective of this research was to develop a technique of automatic classification of bugs related to state machines. The proposed technique is composed of a bug taxonomy from the state machine perspective and an algorithm for automatic bug classification. To evaluate the proposed technique, we performed a survey to evaluate the taxonomy and a quantitative experiment in real software projects to evaluate the classifying algorithm. As result, we found that: (i) taxonomy meets demand, with a number of categories and clarity adequate for its purpose; (ii) the algorithm for automatic classification achieved a performance of 80% precision and 80% recall using the KNN machine learning algorithm.