Resumo:
The systematic use of software process specifications favors the quality of the product generated and guides the steps for building software that adheres to the expected quality of software development projects. Software processes evolve along with the needs of the institution and the professionals who use it, and need to be constantly monitored and evaluated to maintain their qualities. To evaluate processes, the best known ways among industry practices and Software Engineering literature use (i) data obtained after executing the process or (ii) simulation. In both cases, it is not possible to predict problems in the execution of the software process in a given development project. Software processes are commonly specified and represented by software process modeling languages known as SPML. Among these languages, SPEM stands out for being a UML profile for modeling software processes and systems. Although SPML, such as SPEM, are used to improve the understanding of a process, the specification of a process can be done inappropriately, violating the desired quality factors for that process. This phenomenon can be compared to the concept of bad smells, which are design anomalies in software code. Thus, the concept of process smell, introduced in this work, observes problems in the design of software processes. Therefore, the occurrence of process smell in the specification of a process can generate negative impacts on the quality of the process and consequently affect the quality of the software product. In this sense, this research aimed to specify a catalog of process smells to support the identification of structural violations that correspond to anomalies in software processes specified with SPEM. To this end, a methodology was established for specifying and evaluating the proposal consisting of two stages, both relying on validations carried out through interview studies with Software Engineering professionals. In the first stage, the process smells catalog was established. In the second stage, strategies were established and process smells were detected. As a result, this research showed that the proposed catalog of process smells is notably accepted by software engineers. However, evaluating the context of executing a process in practice, there may be process smells that are more significant than others. It is expected that the catalog produced can support the identification of process smells in software process models with the aim of indicating points at which the process can be improved, even before its first execution, avoiding problems that negatively affect quality attributes of the process. Additionally, aspects were obtained that can guide improvements to this catalog in future work.