Process Smells: um catálogo de Bad Smells para processo de software. - Santos, Edison de Jesus (2019)
O uso sistemático de especificação de processo de software favorece a qualidade do produto gerado e orienta os passos para a construção do software aderente a qualidade esperada dos projetos de desenvolvimento de software. Processos de software evoluem junto às necessidades da instituição e dos profissionais que o utilizam, e necessitam ser monitorados e avaliados constantemente para manter as suas qualidades. Para avaliar processos, as formas mais conhecidas entre as práticas da indústria e a literatura da Engenharia de Software se utilizam de (i) dados obtidos após a execução do processo ou (ii) de simulação. Em ambos os casos não é possível antever problemas na execução do processo de software em determinado projeto de desenvolvimento. Processos de software são comumente especificados e representados por linguagens de modelagem de processo de software conhecidas como SPML. Dentre essas linguagens, a SPEM se destaca por ser um perfil UML para modelagem de processo de software e sistemas. Apesar das SPML, como o SPEM, serem usadas para melhorar o entendimento de um processo, a especificação de um processo pode ser feita de forma inadequada, ferindo fatores de qualidade desejadas para tal processo. Este fenômeno pode ser comparado ao conceito de bad smells, que são anomalias de design em código de software. Assim, o conceito de process smell, introduzido neste trabalho, observa problemas no design de processos de software. Sendo assim, a ocorrência de process smell na especificação de um processo pode gerar impactos negativos à qualidade do processo e por consequência afetar a qualidade do produto de software. Neste sentido, esta pesquisa teve como objetivo especificar um catálogo de process smells para apoiar a identificação de violações estruturais que correspondem a anomalias em processos de software especificados com SPEM. Para tanto foi estabelecida uma metodologia para especificação e avaliação da proposta composta de duas etapas, ambas contando com validações feitas por estudo de entrevista com profissionais da Engenharia de Software. Na primeira etapa foi estabelecido o catálogo de process smells. Na segunda etapa foram estabelecidas estratégias e detectados os process smells. Como resultados, esta pesquisa mostrou que o catálogo proposto de process smells é notadamente aceito pelos engenheiros de software. Contudo, avaliando o contexto da execução de um processo na prática, podem existir process smells mais significativos do que outros. Espera-se que o catálogo produzido possa apoiar a identificação de process smells em modelos de processo de software com o objetivo de indicar pontos nos quais o processo pode ser melhorado, antes mesmo da sua primeira execução, evitando problemas que afetam negativamente os atributos de qualidade do processo. Adicionalmente, foram obtidos aspectos que podem orientar melhorias deste catálogo em trabalhos futuros.