Buscar

2021-tcc-pbtsilva

Prévia do material em texto

UNIVERSIDADE FEDERAL DO CEARÁ
CAMPUS QUIXADÁ
CURSO DE GRADUAÇÃO EM ENGENHARIA DE SOFTWARE
PUBLIO BLENILIO TAVARES SILVA
UTILIZANDO ALGORITMOS DE MACHINE LEARNING CAIXA BRANCA PARA
AVALIAR A MANUTENIBILIDADE DOS MODELOS DE FEATURES
QUIXADÁ
2021
PUBLIO BLENILIO TAVARES SILVA
UTILIZANDO ALGORITMOS DE MACHINE LEARNING CAIXA BRANCA PARA
AVALIAR A MANUTENIBILIDADE DOS MODELOS DE FEATURES
Trabalho de Conclusão de Curso apresentado ao
Curso de Graduação em Engenharia de Software
do Campus Quixadá da Universidade Federal
do Ceará, como requisito parcial à obtenção do
grau de bacharel em Engenharia de Software.
Orientadora: Profa. Dra. Carla Ilane Mo-
reira Bezerra
Coorientador: Prof. Dr. Ivan do Carmo
Machado
QUIXADÁ
2021
Dados Internacionais de Catalogação na Publicação 
Universidade Federal do Ceará
Biblioteca Universitária
Gerada automaticamente pelo módulo Catalog, mediante os dados fornecidos pelo(a) autor(a)
S582u Silva, Publio Blenilio Tavares.
 Utilizando Algoritmos de Machine Learning Caixa Branca para Avaliar a Manutenibilidade dos
Modelos de Features / Publio Blenilio Tavares Silva. – 2021.
 86 f. : il. color.
 Trabalho de Conclusão de Curso (graduação) – Universidade Federal do Ceará, Campus de Quixadá,
Curso de Engenharia de Software, Quixadá, 2021.
 Orientação: Profa. Dra. Carla Ilane Moreira Bezerra.
 Coorientação: Prof. Dr. Ivan do Carmo Machado.
 1. Aprendizado do Computador. 2. Engenharia de Linha de Produto de Software. 3. Manutenibilidade.
4. Modelo de Características. I. Título.
 CDD 005.1
PUBLIO BLENILIO TAVARES SILVA
UTILIZANDO ALGORITMOS DE MACHINE LEARNING CAIXA BRANCA PARA
AVALIAR A MANUTENIBILIDADE DOS MODELOS DE FEATURES
Trabalho de Conclusão de Curso apresentado ao
Curso de Graduação em Engenharia de Software
do Campus Quixadá da Universidade Federal
do Ceará, como requisito parcial à obtenção do
grau de bacharel em Engenharia de Software.
Aprovada em: ___/___/______
BANCA EXAMINADORA
Profa. Dra. Carla Ilane Moreira
Bezerra (Orientadora)
Universidade Federal do Ceará (UFC)
Prof. Dr. Ivan do Carmo Machado (Coorientador)
Universidade Federal da Bahia (UFBA)
Prof. Dr. Enyo José Tavares Gonçalves
Universidade Federal do Ceará (UFC)
Me. Anderson Gonçalves Uchôa
Pontifícia Universidade Católica do Rio de Janeiro
(PUC-Rio)
À Deus.
À minha família. Vocês me inspiram e me en-
chem de confiança.
AGRADECIMENTOS
Agradeço em primeiro lugar à Deus, à quem devo tudo e sem o qual nada seria
possível!
Agradeço aos meus pais Benedito e Consuelo pelo amor, incentivo e apoio incondi-
cional em todas os momentos de minha vida. Não existem palavras suficientes para agradecer.
Agradeço aos meus irmãos Ruben e Suele pelo companheirismo. Agradeço especial-
mente ao meu irmão Ruben pelas orientações e ajudas durante a graduação e por me introduzir à
Engenharia de Software.
Agradeço à minha orientadora, Profa. Dra. Carla Bezerra pela experiência e conheci-
mento transmitidos e por todo o auxílio no desenvolvimento deste trabalho.
Ao meu coorientador, Prof. Dr. Ivan Machado pelas orientações na criação do
questionário para a classificação da manutenibilidade de MF enviado aos especialistas.
Sou grato aos professores do Campus UFC Quixadá pelo conhecimento transmitido
durante a graduação, que foi sem dúvidas essencial para que eu chegasse a esse momento.
Agradeço aos amigos que conquistei durante a graduação, em especial Caio Weliton,
Elenilson Monteiro e Samuel Barbosa, pela amizade, conversas e troca de experiências.
Por fim, agradeço a todas as pessoas que de alguma forma contribuíram com a
realização deste trabalho.
“O sonho é que leva a gente para frente. Se a
gente for seguir a razão, fica aquietado, acomo-
dado.”
(Ariano Suassuna)
RESUMO
Linhas de Produtos de Software (LPS) são geralmente especificadas por meio de um modelo
de features (MF), artefato concebido nas primeiras fases do ciclo de vida da LPS. Este artefato
pode facilmente vir a se tornar demasiadamente complexo, o que dificulta a manutenção da
LPS. Por isso, é essencial avaliar continuamente a manutenibilidade deste artefato, o que pode
ser feito através de medidas. São descritas na literatura algumas abordagens que avaliam a
manutenibilidade do MF por meio da agregação de medidas de manutenibilidade. Modelos
de machine learning (ML) podem ser utilizados para criar estas abordagens, pois são capazes
de agregar os valores de um conjunto de variáveis independentes em um único dado alvo,
também chamado de variável dependente. Além disso, se forem utilizados modelos de ML caixa
branca é possível interpretar e explicar os resultados obtidos com esse tipo de modelo de ML.
Neste contexto, este trabalho se propõe a criar modelos de ML caixa branca para classificar
a manutenibilidade do MF, com base em 15 medidas de manutenibilidade. Para construção
dos modelos realizamos os seguintes passos: (i) comparamos duas abordagens de avaliação
da manutenibilidade dos MFs por meio de um oráculo de classificações da manutenibilidade
do MF feitas de forma manual por 15 especialistas em LPS; (ii) utilizamos a melhor das duas
abordagens para pré-classificar o dataset de treinamento dos algoritmos de ML; (iii) geramos 3
modelos de ML e os comparamos com as métricas de classificação acurácia, precisão, recall, F1
e AUC-ROC; e, (iv) utilizamos o melhor dentre os 3 modelos para criar um mecanismo capaz de
fornecer indicativos de melhoria aos engenheiros de domínio. O melhor dos 3 modelos utilizou
o algoritmo de árvore de decisão que obteve acurácia, precisão e recall de 0.81, F1 de 0.79
e AUC-ROC de 0.91. Utilizando este modelo, conseguimos reduzir a quantidade de medidas
necessárias para avaliar a manutenibilidade do MF de 15 para 9 medidas. A árvore de decisão
gerada pelo algoritmo foi utilizada para criar um mecanismo capaz de fornecer sugestões de
mudança nas medidas de manutenibilidade para que a manutenibilidade do artefato melhore.
Palavras-chave: Aprendizado do Computador. Engenharia de Linha de Produto de Software.
Manutenibilidade. Modelo de Características.
ABSTRACT
Software Product Lines (SPL) are generally specified using a Feature Model (FM), an artifact
designed in the early stages of the SPL life cycle. This artifact can easily become too complex,
which makes it difficult to maintain SPL. Therefore, it is essential to continuously assess the
maintainability of this artifact, which can be done through measurements. Some approaches
that assess the maintainability of the FM through the aggregation of maintenance measures
are described in the literature. Machine Learning (ML) models can be used to create these
approaches, as they can aggregate the values of a set of independent variables into a single target
data, also called a dependent variable. Besides, if white box ML models are used, it is possible to
interpret and explain the results obtained with this type of ML model. In this context, this work
proposes to create ML white-box models to classify the maintainability of the FM, based on 15
maintenance measures. To build the models, we performed the following steps: (i) we compared
two approaches to assess the maintainability of FMs through an oracle of FM maintainability
classifications made manually by 15 SPL specialists; (ii) we use the best of the two approaches to
pre-classify the ML dataset training dataset; (iii) we generated 3 ML models and compared them
with the metrics of classification accuracy, precision, recall, F1 and AUC-ROC; and, (iv) we use
the best of the 3 models to create a mechanism capable of providing improvement indicators
to domain engineers. The best of the 3 models used the decision tree algorithm that obtained
accuracy, precision, and recall of 0.81, F1 of 0.79, and AUC-ROC of 0.91. Using this model, we
were able to reduce the number ofmeasures needed to assess the maintainability of the FM from
15 to 9 measures. The decision tree generated by the algorithm was used to create a mechanism
capable of providing suggestions for changing maintenance measures so that the maintainability
of the artifact improves.
Keywords: Computer Learning. Feature Model. Maintainability. Software Product Line
Engineering.
LISTA DE FIGURAS
Figura 1 – Features obrigatórias e opcionais. . . . . . . . . . . . . . . . . . . . . . . . 19
Figura 2 – Features "OR". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figura 3 – Features alternativas ou “XOR”. . . . . . . . . . . . . . . . . . . . . . . . 20
Figura 4 – MF de biblioteca gráfica. . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figura 5 – DyMMer - Visualização do MF. . . . . . . . . . . . . . . . . . . . . . . . . 24
Figura 6 – Funções de associação para MIFM. . . . . . . . . . . . . . . . . . . . . . . 27
Figura 7 – Exemplo de problema de classificação genérico. . . . . . . . . . . . . . . . 30
Figura 8 – Gráfico de uma função sigmóide. . . . . . . . . . . . . . . . . . . . . . . . 31
Figura 9 – Exemplo de árvore de decisão binária. . . . . . . . . . . . . . . . . . . . . 33
Figura 10 – Matriz de confusão binária. . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 11 – Área sob a curva ROC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figura 12 – Acurácia do modelo de árvore de decisão com diferentes valores para a
profundidade máxima da árvore. . . . . . . . . . . . . . . . . . . . . . . . 58
Figura 13 – Histogramas que mostram a distribuição das 15 medidas do MiniCOfFEE e
da manutenibilidade dos MFs no dataset. . . . . . . . . . . . . . . . . . . . 60
Figura 14 – Coeficiente de correlação de Spearman entre as 15 medidas de manutenibili-
dade e a classificação da manutenibilidade dos MFs. . . . . . . . . . . . . . 61
Figura 15 – Importância das 15 medidas de manutenibilidade para o modelo de ML que
utilizou o algoritmo de árvore de decisão. . . . . . . . . . . . . . . . . . . . 62
Figura 16 – Acurácia dos 3 modelos de ML em cada etapa da validação cruzada. . . . . 66
Figura 17 – Precisão dos 3 modelos de ML em cada etapa da validação cruzada. . . . . . 66
Figura 18 – Recall dos 3 modelos de ML em cada etapa da validação cruzada. . . . . . . 67
Figura 19 – F1 dos 3 modelos de ML em cada etapa da validação cruzada. . . . . . . . . 67
Figura 20 – AUC-ROC dos 3 modelos de ML em cada etapa da validação cruzada. . . . 67
Figura 21 – MF antes as sugestões fornecidas pelo mecanismo serem aceitas. . . . . . . 69
Figura 22 – MF após as sugestões fornecidas pelo mecanismo serem aceitas. . . . . . . 69
LISTA DE QUADROS
Quadro 1 – Catálogo de medidas MiniCOfFEE. . . . . . . . . . . . . . . . . . . . . . 22
Quadro 2 – Comparativo entre os trabalhos relacionados e o trabalho proposto. . . . . 39
Quadro 3 – Perfis dos especialistas que participaram da avaliação dos MF. . . . . . . . 48
Quadro 4 – Comparação entre classificações feitas por especialistas, pela abordagem
Silva e pela abordagem Oliveira . . . . . . . . . . . . . . . . . . . . . . . 49
Quadro 5 – Valores das métricas de comparação entre as abordagens Silva e Oliveira . 50
Quadro 6 – Conjuntos de medidas de manutenibilidade obtidos no processo de seleção
de variáveis independentes. . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Quadro 7 – Acurácia média com diferentes conjuntos de medidas de manutenibilidade
aplicados ao modelo de ML que utilizou o algoritmo Naive Bayes. . . . . . 63
Quadro 8 – Acurácia média com diferentes conjuntos de medidas de manutenibilidade
aplicados ao modelo de ML que utilizou o algoritmo de regressão logística. 63
Quadro 9 – Acurácia média com diferentes conjuntos de medidas de manutenibilidade
aplicados ao modelo de ML que utilizou o algoritmo de árvore de decisão. . 63
Quadro 10 – Valor máximo, valor mínimo, média e desvio padrão de cada métrica de
classificação em uma validação cruzada de 10 etapas para o modelo de ML
que utilizou o algoritmo Naive Bayes. . . . . . . . . . . . . . . . . . . . . 65
Quadro 11 – Valor máximo, valor mínimo, média e desvio padrão de cada métrica de
classificação em uma validação cruzada de 10 etapas para o modelo de ML
que utilizou o algoritmo de regressão logística. . . . . . . . . . . . . . . . 65
Quadro 12 – Valor máximo, valor mínimo, média e desvio padrão de cada métrica de
classificação em uma validação cruzada de 10 etapas para o modelo de ML
que utilizou o algoritmo de árvore de decisão. . . . . . . . . . . . . . . . . 65
Quadro 13 – Média das métricas precisão, recall, F1 e AUC-ROC para cada classe com o
modelo de ML que utilizou o algoritmo de árvore de decisão. . . . . . . . 66
LISTA DE ABREVIATURAS E SIGLAS
LPS Linhas de Produtos de Software
MF Modelo de Features
ML Machine Learning
COfFEE CatalOg of measures for Feature modEl quality Evaluation
DyMMer Dynamic feature Model tool based on Measures
LPSD Linhas de Produtos de Software Dinâmicas
DTMax Profundidade máxima da árvore
NF Número de features
NLeaf Número de features folha
CogC Complexidade cognitiva
NTop Número de features do topo
RDen Coeficiente de densidade de conectividade
FoC Flexibilidade de configuração
NM Número de features obrigatórias
FEX Extensibilidade das features
SCDF Número de features dependentes de ciclos únicos
MCDF Ciclos múltiplos dependentes de features
RoV Razão de variabilidade
NVC Número de configurações válidas
NGOr Número de grupos Or
NGXOr Número de grupos XOr
IA Inteligência Artificial
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . 18
2.1 Linha de Produtos de Software . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Modelo de Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Medidas de Manutenibilidade do MF . . . . . . . . . . . . . . . . . . . . 21
2.3 Ferramenta DyMMer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Abordagens de Avaliação da Manutenibilidade de MF Utilizando Medi-
das de Manutenibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.1 Abordagem Silva et al. (2020) . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.2 Abordagem Oliveira e Bezerra (2019) . . . . . . . . . . . . . . . . . . . . 26
2.5 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.1 Algoritmos de Classificação . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5.1.1 Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5.1.2 Regressão Logística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5.1.3 Árvore de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.2 Métricas para Modelos de Classificação . . . . . . . . . . . . . . . . . . . 32
2.5.2.1 Acurácia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.2.2 Precisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.2.3 Recall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.2.4 F1 Score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.2.5 AUC-ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.3 Modelos de Caixa Branca e Caixa Preta . . . . . . . . . . . . . . . . . . . 35
3 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . 37
3.1 Metrics for analyzing variability and its implementation in software pro-
duct lines: A systematic literature review (EL-SHARKAWY et al., 2019) . 37
3.2 Measures for quality evaluation of feature models (BEZERRA et al., 2014) 37
3.3 Exploring quality measures for the evaluation of feature models: a case
study (BEZERRA et al., 2017) . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4 Classifying feature modelsmaintainability based on machine learning al-
gorithms (SILVA et al., 2020) . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 Development of the maintainability index for SPLs feature models using
fuzzy logic (OLIVEIRA; BEZERRA, 2019) . . . . . . . . . . . . . . . . . 39
3.6 Análise Comparativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4 UMA INVESTIGAÇÃO COMPARATIVA DAS ABORDAGENS DE AVA-
LIAÇÃO DA MANUTENIBILIDADE DO MF . . . . . . . . . . . . . . 41
4.1 Planejamento do Estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.1 Questões de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.2 Passos do Estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1.2.1 Procedimentos para a Coleta dos Dados . . . . . . . . . . . . . . . . . . . 43
4.1.2.2 Procedimentos para a Análise dos Dados . . . . . . . . . . . . . . . . . . . 45
4.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.1 Compilação dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 QP1: Com que frequência cada abordagem classifica a manutenibilidade
de um MF da mesma forma que especialistas em LPS? . . . . . . . . . . . 50
4.2.3 QP2: As abordagens de avaliação da manutenibilidade dos MFs são mais
pessimistas ou otimistas em relação às classificações feitas por especialis-
tas em LPS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2.4 QP3: Qual a variação das classificações de cada abordagem em relação às
classificações feitas por especialistas em LPS? . . . . . . . . . . . . . . . 51
4.3 Ameaças à Validade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5 AVALIANDO A MANUTENIBILIDADE DO MF UTILIZANDO MO-
DELOS DE ML CAIXA BRANCA . . . . . . . . . . . . . . . . . . . . . 54
5.1 Planejamento do Estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.1 Questões de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.2 Passos do Estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.2.1 Coleta e Preparação dos Dados . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.2.2 Seleção das Variáveis Independentes . . . . . . . . . . . . . . . . . . . . . 56
5.1.2.3 Treinamento dos Modelos de ML . . . . . . . . . . . . . . . . . . . . . . . 57
5.1.2.4 Avaliação dos Modelos de ML . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2.1 QP1: É possível reduzir a quantidade de medidas de manutenibilidade
necessárias para avaliar a manutenibilidade de um MF? . . . . . . . . . . 58
5.2.2 QP2: Qual o melhor modelo de ML para avaliação da manutenibilidade
do MF? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2.3 Criação do Mecanismo para Fornecer Indicativos de como Melhorar a
Manutenibilidade do MF . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3 Ameaças à Validade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . . . . . . 73
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
APÊNDICE A–FORMULÁRIO DE AVALIAÇÃO DA MANUTENIBI-
LIDADE DO MF . . . . . . . . . . . . . . . . . . . . . 79
APÊNDICE B–ÁRVORE DE DECISÃO BINÁRIA . . . . . . . . . . . 83
15
1 INTRODUÇÃO
Produtos de software podem ser criados por meio do reuso de componentes pré-
existentes, o que inclui não somente código mas também arquitetura, requisitos, testes, entre
outros. O reuso desses componentes traz uma série de benefícios, entre eles estão: a diminuição
no tempo necessário para que o produto entre no mercado (time-to-market) e o aumento na
qualidade final do produto, uma vez que os componentes reusados já foram desenvolvidos,
testados e utilizados (MARQUES et al., 2019).
Uma das principais estratégias de reuso de software é a de Linhas de Produtos de
Software (LPS) (BARROS-JUSTO et al., 2018). Clements e Northrop (2002) definem uma
LPS como “um conjunto de produtos que juntos atendem a um segmento de mercado específico
ou cumprem uma missão específica”. Segundo Soares et al. (2018), uma LPS também pode
ser definida como “uma família de sistemas criada e desenvolvida a partir de um conjunto
de features”, onde uma feature é “uma unidade de funcionalidade de um sistema de software
que satisfaz um requisito, representa uma decisão de design e provê uma potencial opção de
configuração”.
Features são um conceito central dentro do paradigma de LPS e o artefato utilizado
para especificá-las é o Modelo de Features (MF). O MF é uma representação que especifica
todas as features de uma LPS, assim como os relacionamentos e restrições existentes entre elas e
o conjunto de todas as combinações válidas entre as features (BÜRDEK et al., 2016). O MF é
concebido na fase de engenharia de domínio, nos estágios iniciais da criação de uma LPS, por
isso, erros neste artefato podem se espalhar por toda a LPS (BEZERRA et al., 2017).
O fato de todas as features de uma LPS serem especificadas no MF faz com que este
artefato possa facilmente vir a se tornar demasiadamente complexo com o decorrer do tempo, o
que dificulta sua manutenção e a evolução da LPS. Esse aumento na complexidade ocorre porque
as mudanças sofridas pela LPS (mudanças nos requisitos que resultam em adição ou remoção de
features, por exemplo) geralmente implicam em mudanças no MF (BÜRDEK et al., 2016). Por
isso, é essencial avaliar a qualidade deste artefato durante a evolução de uma LPS para que o
modelo permaneça manutenível.
Uma das estratégias comumente utilizadas para avaliar a manutenibilidade do MF é
a que faz uso de medidas de qualidade (OLIVEIRA; BEZERRA, 2019). Bezerra et al. (2014)
realizaram um mapeamento sistemático com o objetivo de identificar medidas de qualidade do
MF e apresentaram como resultado um catálogo de 32 medidas que podem ser utilizadas na
16
avaliação da qualidade de um MF. Contudo, ainda é difícil avaliar a qualidade geral de um MF
utilizando-se dessa estratégia, pois, cada medida tem foco em uma característica específica do
modelo e não neste como um todo. Além disso, em geral as faixas de valores das medidas são
amplas e não há um indicativo claro de quais valores podem ser considerados adequados ou
inadequados (OLIVEIRA; BEZERRA, 2019).
Um modo de superar os problemas mencionados anteriormente seria a agregação de
várias medidas em um valor único que indique a manutenibilidade geral de um MF. Oliveira e
Bezerra (2019) utilizaram uma estratégia desse tipo, aplicando lógica fuzzy à um conjunto de
15 medidas de qualidade para agregá-las, de modo a produzir um índice único capaz de indicar
o grau de manutenibilidade de um MF. A estratégia utilizada por Oliveira e Bezerra (2019)
também permite classificar a manutenibilidade de um MF em muito baixa, baixa, média, alta e
muito alta a partir do valor do índice.
Em nosso trabalho anterior (SILVA et al., 2020), foi utilizada outra estratégia para
agrupar os valores de medidas de manutenibilidade em um valor único. Foram aplicados
algoritmos de clustering, um tipo de algoritmo de Machine Learning (ML), para agrupar os MF
de acordo com os valores de um conjunto de medidas de manutenibilidade e, assim, classificar
a manutenibilidade do MF em muito ruim, ruim, moderada, boa e muito boa. Uma vantagem
dessa abordagem que é possível utilizar algoritmos de caixa-branca (também chamados de
interpretáveis), que são um tipo de algoritmo de ML cujo processo de predição pode ser entendido
de forma intuitiva e cujos resultados podem ser interpretados e entendidos em linguagem próxima
à humana (LIPTON, 2018). Utilizando este tipo de algoritmo não somente seriaavaliada a
manutenibilidade de um MF, mas poderiam ser fornecidas também sugestões de melhoria para o
MF aos engenheiros de domínio.
Uma grande dificuldade da abordagem de ML é obter um dataset do MF pré-
classificados para ser utilizado no treinamento dos algoritmos. Um modo de classificar os dados
seria utilizando especialistas em LPS, mas para conseguir um dataset de tamanho razoável
seria necessário um número relativamente grande de especialistas, o que torna a opção inviável.
Por isso, optou-se neste trabalho por utilizar uma abordagem de classificação automática da
manutenibilidade do MF, como a de Oliveira e Bezerra (2019) ou a proposta em nosso trabalho
(SILVA et al., 2020) anterior para pré-classificar o dataset de treinamento dos algoritmos.
Neste contexto, o objetivo do presente trabalho é utilizar algoritmos de ML caixa
branca para classificar a manutenibilidade do MF e utilizar os dados obtidos a partir da execução
17
dos modelos de classificação para fornecer aos engenheiros de domínio indicativos de melhoria
do MF por meio de sugestões de mudança nas medidas de manutenibilidade. Para isso, será
realizada uma comparação entre a abordagens de classificação da manutenibilidade do MF
proposta por Oliveira e Bezerra (2019) e a proposta em nosso trabalho anterior (SILVA et
al., 2020). O resultado da comparação será utilizado como base para escolher uma das duas
abordagens para pré-classificar o dataset, que será utilizado no treinamento dos algoritmos de
ML. Os modelos de classificação obtidos também serão comparados e um deles será escolhido
para criar um mecanismo de sugestão de melhoria da manutenibilidade do MF. Com isso,
engenheiros de domínio poderão realizar a avaliação da manutenibilidade de LPS de forma fácil
e rápida e as sugestões de melhoria poderão ser utilizadas para guiar o processo de melhoria da
LPS a partir de mudanças no MF.
Este trabalho está organizado da seguinte forma. O Capítulo 2 apresenta os conceitos
necessários para o entendimento do trabalho. No Capítulo 3 são apresentados trabalhos relacio-
nados com o presente trabalho. No Capítulo 4 é feita uma comparação entre duas abordagens
de classificação da manutenibilidade dos MFs. No Capítulo 5 são criados modelos de ML de
caixa branca para a avaliação da manutenibilidade dos MFs e um mecanismo capaz de fornecer
indicativos para a melhoria da manutenibilidade dos MFs. Por fim, o Capítulo 6 apresenta as
conclusões e trabalhos futuros.
18
2 FUNDAMENTAÇÃO TEÓRICA
Nesta seção serão apresentados os conceitos mais relevantes necessários para o
entendimento deste trabalho. Na Seção 2.1 serão apresentados conceitos básicos de LPS. Na
Seção 2.1.1 será descrito em detalhes o artefato MF. Na Seção 2.2 serão abordadas medidas de
manutenibilidade para avaliação de modelos de features. Na Seção 2.3 será descrita a ferramenta
de extração de medidas de qualidade DyMMer utilizada neste trabalho. Na Seção 2.4 serão
apresentadas duas abordagens de avaliação da manutenibilidade de ML descritas na literatura.
Na Seção 2.5 conceitos relacionados a machine learning serão abordados e a técnica utilizada
neste trabalho será apresentada.
2.1 Linha de Produtos de Software
O reuso de software é um método para lidar com o aumento na complexidade dos
produtos de software e a demanda pela diminuição do tempo necessário para disponibilizar um
produto no mercado (time-to-market) permitindo que as empresas se mantenham competitivas
(JUSTO et al., 2018). Uma das principais estratégias de reuso de software é a de LPS (BARROS-
JUSTO et al., 2018). Uma LPS é uma família de sistemas criada a partir de um conjunto de
features em comum (SOARES et al., 2018). Uma feature pode ser definida como “uma unidade
de funcionalidade de um sistema de software que satisfaz um requisito, representa uma decisão
de design e provê uma potencial opção de configuração” (SOARES et al., 2018).
O processo de definição de uma LPS é dividido em duas fases, sendo estas: (i)
engenharia de domínio e (ii) engenharia de aplicação (MARQUES et al., 2019). Na fase
engenharia de domínio o conhecimento do domínio é utilizado para identificar as features
comuns e variáveis (MARQUES et al., 2019). Esta fase pode ser divida nas atividades de análise
do domínio, projeto do domínio, implementação do domínio, testes do domínio, e gerenciamentos
dos produtos (LINDEN et al., 2007). E na fase engenharia de domínio também que é gerado
o MF, sendo este considerado o principal artefato desta fase (LINDEN et al., 2007). Já na
fase de engenharia de aplicação as necessidades do cliente são identificadas e posteriormente
utilizadas para derivar novos produtos (criando novas configurações de produtos) (MARQUES
et al., 2019).
19
2.1.1 Modelo de Features
O MF especifica todas as features de uma LPS, as restrições existentes entre elas
e o conjunto de todas as combinações válidas entre as features (BÜRDEK et al., 2016). O
MF é, a notação mais popular para modelagem de LPS (BÉCAN et al., 2016). No design
e implementação orientados a recursos o MF é geralmente representado visualmente por um
diagrama de features (APEL et al., 2016).
Um diagrama de features é uma notação gráfica para especificar um MF (APEL
et al., 2016). Esta notação tem a forma de uma árvore onde cada nó recebe o nome de uma
feature da LPS. Uma feature pai representa um conceito mais geral enquanto uma feature filha
representa um conceito mais específico (uma feature filha só pode ser selecionada quando sua
feature pai também foi) (APEL et al., 2016).
Em um MF existem tanto features obrigatórias (devem estar presentes em todos
os produtos derivados da LPS), quanto opcionais (podem ou não estar presentes nos produtos
derivados da LPS). No diagrama de features estes dois tipos de features são representados por
um círculo na feature filha, que é preenchido quando a feature é obrigatória e vazio quando é
opcional (APEL et al., 2016), como é mostrado na Figura 1.
Figura 1 – Features obrigatórias e opcionais.
Fonte: Adaptado de Apel et al. (2016).
Em um MF podem existir ainda features “OR” (quando dentro de um grupo de
features uma ou mais podem estar presentes nos produtos derivados da LPS) e alternativas ou
“XOR” (quando dentro de um grupo de features apenas uma pode estar presente nos produtos
derivados da LPS). O modo como features “OR” e “XOR” são representadas no diagrama de
features é apresentado nas Figuras 2 e 3, respectivamente.
No MF podem existir também restrições entre as features (também chamadas de
cross-tree constraints). Existem dois tipos básicos de cross-tree constraints, os quais são: (i)
inclusão, quando a presença de uma feature A exige a presença de uma feature B e (ii) exclusão,
20
Figura 2 – Features "OR".
Fonte: Adaptado de Apel et al. (2016).
Figura 3 – Features alternativas ou “XOR”.
Fonte: Adaptado de Apel et al. (2016).
quando a presença de uma feature A exige a ausência de uma feature B.
A Figura 4 mostra o exemplo de um MF de uma biblioteca gráfica. Como é possível
observar na Figura, apenas a feature “Edge Type” é obrigatória, todas as outras são opcionais.
Isso significa que a feature “Edge Type” estará em todos os produtos derivados dessa LPS
enquanto as outras podem ou não estar. As features “Directed” e “Undirected” filhas da feature
“Edge Type” são exemplos de features em um relacionamento do tipo alternativo, isso significa
que entre elas apenas uma pode ser escolhida para estar presente em um produto derivado da
LPS. As features “Cycle”, “ShortestPath”, “MST” e “Transpose” são exemplos de features em
um relacionamento do tipo “OR”, o que significa que um subconjunto delas pode ser escolhido
para compor os produtos derivados da LPS. No MF mostrado na Figura 4 existem duas restrições
do tipo inclusão mas nenhuma do tipo exclusão. Uma dessas restrições é “MST => Directed”
, o que significa que sempre que a feature “MST” for selecionada para estar em um produto a
feature “Directed” também deve ser.Figura 4 – MF de biblioteca gráfica.
Fonte: Adaptado de Apel et al. (2016).
21
O MF é um dos primeiros artefatos produzidos em uma LPS (BEZERRA et al.,
2014), e as mudanças sofridas pela linha de produtos no decorrer do tempo geralmente também
provocam mudanças neste artefato (BÜRDEK et al., 2016). Consequentemente, com o tempo o
MF pode se tornar complexo o que dificulta sua manutenção e a evolução da LPS. Por isso, o
MF foi o artefato escolhido neste trabalho para se avaliar a manutenibilidade da LPS.
2.2 Medidas de Manutenibilidade do MF
Na engenharia de software, a qualidade de um produto é expressa por meio de um
conjunto de atributos de qualidade que são divididos em: (i) atributos internos, que podem ser
medidos diretamente a partir do software; e, (ii) atributos externos, que precisam ser medidos de
maneira indireta (ALSOLAI; ROPER, 2020). Um dos principais atributos de qualidade externos
é a manutenibilidade, que lida com o grau com que um produto de software pode ser entendido,
reparado ou melhorado (JHA et al., 2019).
Nas últimas décadas os produtos de software tem se tornado cada vez maiores, mais
complexos e mais difíceis de manter (JHA et al., 2019). Isso mostra o porquê da manutenibi-
lidade ser reconhecidamente uma área de interesse primário dentro da engenharia de software
(ALSOLAI; ROPER, 2020). Aproximadamente 70% do tempo de desenvolvimento de um
produto de software envolve atividades de manutenção. Por esse motivo, a manutenibilidade está
diretamente relacionada aos custos de um produto de software e, consequentemente, ao sucesso
do produto e da organização (JHA et al., 2019).
No paradigma de LPS a manutenibilidade também é considerada um importante
atributo de qualidade. LPS evoluem durante todo o seu ciclo de vida, enquanto que nas metodolo-
gias tradicionais a evolução acontece predominantemente na fase de manutenção (BEZERRA et
al., 2016b). Isso faz com que em LPS, a manutenibilidade seja tanto quanto ou mais importante
que nas metodologias tradicionais de desenvolvimento de software.
A manutenibilidade de uma LPS pode ser avaliada por meio da análise de seu MF,
pois este artefato é criado nos estágios iniciais do desenvolvimento de uma LPS e nele são
descritas as features comuns e variáveis (BEZERRA et al., 2016b). O fato de as mudanças
sofridas pela LPS ao longo do tempo geralmente também resultarem em mudanças no MF
(BÜRDEK et al., 2016), faz deste um bom artefato para avaliar a manutenibilidade de uma LPS
durante seu ciclo de vida.
Uma possível estratégia para avaliar a manutenibilidade de um MF (buscando com
22
isso avaliar também a qualidade da LPS como um todo) seria utilizar medidas de qualidade
(OLIVEIRA; BEZERRA, 2019). Medidas de qualidade são utilizadas para refletir características,
subcaracterísticas e atributos de qualidade de uma determinada entidade ou artefato (BEZERRA
et al., 2014).
Bezerra et al. (2014) realizaram um mapeamento sistemático no qual identificaram
32 medidas de qualidade para MF que foram descritas em um catálogo, denominado CatalOg of
measures for Feature modEl quality Evaluation (COfFEE). Para validar as medidas do catálogo
foram realizadas revisões em pares com especialistas em qualidade de software e LPS.
Em um estudo posterior, Bezerra et al. (2017) analisaram as medidas descritas
no catálogo COfFEE com o objetivo de investigar de que modo essas medidas poderiam ser
utilizadas na avaliação de qualidade de modelos de features. Neste segundo estudo foram
descobertas correlações entre algumas medidas do catálogo COfFEE e descobriu-se que a
caracterização da qualidade de um MF poderia ser feita com apenas 15 das 32 medidas. Foi
então criado um novo catálogo descrevendo apenas estas 15 medidas denominado MiniCOfFEE
(Quadro 1).
Quadro 1 – Catálogo de medidas MiniCOfFEE.
Nome da Medida Descrição da Medida
Number of Features (NF) Número de features no modelo
Number of Mandatory Features (NM) Número de features obrigatórias no modelo
Number of Top Features (NTop) Número de features decendentes diretas da raiz
Number of Leaf Features (NLeaf) Número de features sem filhos
Cognitive Complexity (CogC) Número de pontos de variação
Feature Extensibility (FEX) NLeaf + SCDF + MCDF
Flexibility of Configuration (FoC) NO / NF
Maximum Depth of Tree (DT Max) Número de features do caminho mais longo desde a raiz do MF
Number of Valid Configurations (NVC) Número de configurações possíveis e válidas do MF
Ratio of Variability (RoV) Número médio de filhos por features
Density of the dependency graph (RDen) Número médio de features referenciadas em restrições por feature
Number OR Groups (NGOr) Número de pontos de variação com cardinalidade [1..*]
Number XOR Groups (NGXOr) Número de pontos de variação com cardinalidade [1..1]
Single Cyclic Dependent Features (SCDF) ∑(Participantes de restrições de features e filhas de pontos variantes comcardinalidade [1..1])
Multiple Cyclic Dependent Features (MCDF) ∑(Participantes de restrições de features e filhas de pontos variantes comcardinalidade [1..*])
Fonte: Adaptado de Bezerra et al. (2014), Oliveira e Bezerra (2019).
23
Apesar das medidas de qualidade fornecerem informações úteis sobre a manutenibili-
dade de um MF, é difícil avaliar a manutenibilidade deste artefato como um todo. Em geral, cada
medida considera apenas aspectos específicos do artefato e não este como um todo. Uma possível
solução, seria agregar os valores de várias medidas em um índice de manutenibilidade. Isso é
feito no trabalho de Oliveira e Bezerra (2019), onde as 15 medidas do catálogo MiniCOfFEE são
agregadas em um índice de manutenibilidade utilizando-se para isso lógica fuzzy.
No presente trabalho, as medidas de manutenibilidade descritas no catálogo Mini-
COfFEE são agregadas visando caracterizar a manutenibilidade geral de um MF, mas utilizando
um modelos de ML de caixa branca. Desse modo, será possível avaliar a manutenibilidade do
MF e também fornecer indicativos de como melhorar a manutenibilidade do artefato.
2.3 Ferramenta DyMMer
Dynamic feature Model tool based on Measures (DyMMer) é uma ferramenta desktop
para extração automática de medidas de qualidade dos MFs de LPS e Linhas de Produtos de
Software Dinâmicas (LPSD) (BEZERRA et al., 2016a). Os MFs suportados pela ferramenta
DyMMer são descritos em um arquivo XML no formato definido pelo repositório S.P.L.O.T.
(MENDONCA et al., 2009). Ao importar na ferramenta um arquivo XML neste formato é
possível visualizar e interagir com o MF por meio da interface gráfica.
Dentre as principais funcionalidades da ferramenta DyMMer estão (BEZERRA et
al., 2016a):
1. Importar MFs. Não é possível criar MFs diretamente pela ferramenta. Contudo, é
possível importar MFs descritos em arquivos XML no formato definido pelo repositório
S.P.L.O.T.
2. Visualizar MFs. Após importar um MF é possível visualizar e interagir com a árvore e as
restrições do MF como pode ser visto na Figura 5. A ferramenta exibe as features por tipo
(obrigatórias, opcionais, agrupamentos OR e agrupamentos XOR) e destaca features ativas
e inativas (conceitos específicos para LPSD).
3. Editar MFs. Após importar um MF, é possível editá-lo. A ferramenta permite adicionar
e remover features, ativar e desativar features, alterar restrições e gerenciar os contextos
(caso a LPS seja dinâmica).
4. Calcular e exportar medidas. A ferramenta DyMMer também permite o cálculo de
medidas de qualidade dos MF, tanto para LPS, quanto para LPSD. No total são 40 medidas
24
suportadas pela ferramenta, sendo 32 para LPS e LPSD e 8 específicas para LPSD. A
ferramenta permite também a exportação das medidas calculadas para uma planilha no
formato Microsoft Office Excel.
Figura 5 – DyMMer - Visualização do MF.
Fonte: Adaptado de Bezerra et al. (2016a).
A ferramenta DyMMer tem suporte às 15 medidas descritas no catálogo MiniCOf-
FEE, as quais serão utilizadas neste trabalho para a avaliação da manutenibilidade do MF. Por
isso, a ferramenta foiescolhida para realizar o cálculo das medidas neste trabalho.
2.4 Abordagens de Avaliação da Manutenibilidade de MF Utilizando Medidas de Manu-
tenibilidade
Na literatura são descritas algumas abordagens de avaliação da manutenibilidade do
MF que utilizam medidas de manutenibilidade. Dentre as abordagens descritas na literatura, duas
utilizam o mesmo catálogo de medidas que nos propomos a utilizar neste trabalho, as quais são:
a abordagem proposta por Silva et al. (2020) (a qual nos referiremos no presente trabalho como
Abordagem Silva) e a proposta por Oliveira e Bezerra (2019) (a qual nos referimos no presente
trabalho como Abordagem Oliveira). No presente trabalho é realizada uma comparação entre as
duas abordagens e a melhor entre as duas é utilizada para pré-classificar o dataset de treinamento
dos algoritmos de ML. Estes algoritmos são utilizados para a construção da abordagem proposta
25
neste trabalho.
2.4.1 Abordagem Silva et al. (2020)
Silva et al. (2020) realizaram um estudo com o objetivo de investigar como técnicas
de ML poderiam ser utilizadas para avaliar a manutenibilidade do MF. Os autores propuseram
uma abordagem de avaliação da manutenibilidade do MF utilizando algoritmos de clustering,
que é um tipo de algoritmo de ML. Esses algoritmos são utilizados para gerar clusters (ou
grupos) a partir de dados não categorizados ou não classificados considerando as características
e similaridades das amostras do dataset (ALLOGHANI et al., 2020).
Os autores selecionaram um dataset composto por 326 MFs, o qual foi proposto no
trabalho de Oliveira e Bezerra (2019). Para cada amostra no dataset, era definido o nome do
MF e os valores das 15 medidas de manutenibilidade do catálogo MiniCOfFEE. Após isso, os
autores selecionaram e aplicaram ao dataset 3 algoritmos de clustering para fins de comparação:
K-Means (JAIN, 2010), Density-Based Spatial Clustering of Applications with Noise (DBSCAN)
(ERMAN et al., 2006) e Hierarchical Agglomerative Clustering (HAC) (AGGARWAL; REDDY,
2013).
O processo de clusterização faz a separação do dataset de acordo com as caracte-
rísticas e similaridades das amostras, mas não fornece informações qualitativas com relação a
manutenibilidade dos MFs. Para que a avaliação da manutenibilidade do MF fosse possível, os
autores precisaram atribuir rótulos indicando a manutenibilidade de cada cluster. Desse modo,
seria possível saber a manutenibilidade de um MF apenas pelo cluster ao qual o MF pertence.
O autores criaram um processo para atribuição dos rótulos aos clusters, que consiste em: (i)
analisar as amostras presentes em cada um dos clusters; (ii) atribuir uma nota a cada cluster con-
siderando o grau de manutenibilidade geral dos MF que compõem com o auxílio de thresholds
gerados com o método VALE (VALE et al., 2019) para a medidas de manutenibilidade; e, (iii)
organizar as notas em ordem crescente e atribuir para a menor nota o rótulo que indique a pior
manutenibilidade. Esse processo se repete sucessivamente até que o cluster com a melhor nota
seja atribuído ao rótulo que indica a melhor manutenibilidade.
Com aplicação dos algoritmos de clustering os autores geraram modelos de clas-
sificação da manutenibilidade do MF. Para identificar dentre os 5 modelos, o melhor modelo
de classificação da manutenibilidade do MF, os autores criaram um novo dataset composto
de 23 MFs extraídos do repositório S.P.L.O.T (MENDONCA et al., 2009) e utilizaram quatro
26
especialistas em LPS para classificar manualmente o dataset. Os 5 modelos foram utilizados
para classificar as amostras do novo dataset, os resultados foram comparados com os obtidos
com o uso de especialistas, e as métricas acurácia e precisão foram calculadas.
O melhor modelo de classificação obtido foi o que utilizou o algoritmo K-Means
com 5 clusters, o que significa que o modelo classifica a manutenibilidade doMF em 5 classes,
sendo estas: muito ruim, ruim, moderado, muito bom e bom. O modelo obteve acurácia de 61.9%
e precisão de 70.2%. Umas das principais vantagens da abordagem proposta por Silva et al.
(2020) é que como algoritmos de clustering pertencem a classe de algoritmos de aprendizado não
supervisionado. Dessa forma, não é necessário utilizar especialistas para classificar todo o dataset
utilizado no treinamento dos algoritmos de ML (o que seria muito custoso, dado o tamanho do
dataset e quantidade de medidas que seriam analisadas manualmente pelos especialistas).
2.4.2 Abordagem Oliveira e Bezerra (2019)
Medidas de qualidade do MF podem ser utilizadas para a avaliação da manuteni-
bilidade de LPS. Contudo, a análise dos valores de cada medida individualmente não permite
perceber a manutenibilidade de um MF como um todo. Por esse motivo, Oliveira e Bezerra
(2019) propuseram um índice de qualidade que agrega várias medidas de qualidade, desse modo
é possível analisar a manutenibilidade de um MF analisando o valor de uma única medida.
No trabalho de Oliveira e Bezerra (2019), foi utilizado o catálogo de medidas Mi-
niCOfFEE, o mesmo utilizado no trabalho de Silva et al. (2020). As 15 medidas do catálogo
MiniCOfFEE foram agrupadas em 3 grupos de acordo com a subcaracterística de manuteni-
bilidade de cada medida do catálogo. As medidas Profundidade máxima da árvore (DTMax),
Número de features (NF) e Número de features folha (NLeaf) compõem o grupo tamanho, as me-
didas Complexidade cognitiva (CogC), Número de features do topo (NTop), NTop, Coeficiente
de densidade de conectividade (RDen) e Flexibilidade de configuração (FoC) compõem o grupo
complexidade e, por fim, as medidas Número de features obrigatórias (NM), Extensibilidade
das features (FEX), Número de features dependentes de ciclos únicos (SCDF), Ciclos múltiplos
dependentes de features (MCDF), Razão de variabilidade (RoV), Número de configurações
válidas (NVC), Número de grupos Or (NGOr) e Número de grupos XOr (NGXOr) compõem o
grupo variabilidade.
Para realizar a agregação das medidas foi utilizada Lógica Fuzzy, um tipo de lógica
que admite que uma premissa seja parcialmente verdadeira e parcialmente falsa (KLIR; YUAN,
27
1995). Para validar as funções de pertinência e regras fuzzy utilizadas no processo de agregação
das medidas, quatro especialistas em LPS realizaram revisão em pares. Com esse processo foi
obtida uma nova medida agregada nomeada de Índice de Manutenibilidade para Modelos de
Features (MIFM) 1,2. A nova medida varia de 0 a 100 e permite classificar a manutenibilidade
do MF em 5 categorias de acordo com o valor de MIFM, sendo estas: muito baixa, baixa, média,
alta e muito alta. As funções de associação entre o valor de MIFM e as 5 categorias podem
ser vistas na Figura 6. O índice de manutenibilidade foi aplicado a 20 MF extraídos a partir do
repositório S.P.L.O.T., o que permitiu avaliar a manutenibilidade dos MF em alta ou baixa a
partir do valor de MIFM.
Figura 6 – Funções de associação para MIFM.
Fonte: Adaptado de Oliveira e Bezerra (2019).
2.5 Machine Learning
ML é uma subárea da Inteligência Artificial (IA) que reúne “um conjunto de méto-
dos que permitem aos computadores aprender com os dados para fazer e melhorar predições”
(ALPAYDIN, 2020). Esse é um ramo de algoritmos computacionais ainda em evolução (NAQA;
MURPHY, 2015), mas seus métodos e técnicas já têm sido aplicados à problemas de diversas
áreas, tais como: finanças, saúde e publicidade (BAILEY et al., 2018).
A área de ML é ampla e possui diversos tipos de problemas, técnicas e algoritmos.
Para facilitar o entendimento, ela é geralmente dividida em 4 tipos de “aprendizados”, sendo
estes: aprendizado supervisionado, aprendizado não supervisionado, aprendizado por reforço e
aprendizado evolutivo (MARSLAND, 2015). Dentre estes, o tipo mais comum é o aprendizado
1 http://jfuzzylogic.sourceforge.net/
2 https://github.com/davicedraz/fuzzy-aggregation
http://jfuzzylogic.sourceforge.net/
https://github.com/davicedraz/fuzzy-aggregation
28
supervisionado (MARSLAND, 2015).Tanto em problemas de aprendizado supervisionado
quanto em problemas de aprendizado não supervisionado, é necessário haver um dataset para
treinamento dos algoritmos de ML. Nos dois casos, o dataset deve ter um conjunto de dados
de entrada, também chamados de variáveis independentes. Especificamente nos problemas de
aprendizado supervisionado, um dado alvo, chamado de variável dependente, que é a resposta
que se deseja obter (no caso dos problemas de aprendizado não supervisionado a presença da
variável dependente no dataset não é necessária) (MARSLAND, 2015).
Para a resolução de problemas de ML (especialmente nos aprendizados supervisi-
onado e não supervisionado) é geralmente adotado um processo que é dividido nas 5 etapas,
descritas à seguir (MARSLAND, 2015):
1. Coleta e preparação dos dados. Nesta etapa são coletados os dados que compõem o
dataset (contendo os valores das variáveis independentes e no caso de problemas de apren-
dizado supervisionado também o valor da variável dependente), que será utilizado para
treinamento dos algoritmos de ML. No caso de problemas de aprendizado supervisionado,
pode ser necessário envolver especialistas no domínio do problema para definir o valor
da variável dependente para cada amostra no dataset, caso esse não seja previamente
conhecido. Nesta etapa também são tratadas quaisquer anomalias nos dados, tais como:
dados duplicados, dados faltantes, entre outros.
2. Seleção de variáveis independentes. Nesta etapa são selecionadas as variáveis inde-
pendentes consideradas mais relevantes para a resolução do problema, e podem também
ser excluídas variáveis independentes que estejam corrompidas de alguma forma ou que
possuam algum tipo de “ruído”. Uma análise de correção entre as variáveis independentes
pode ser realizada para embasar a exclusão de uma ou outra variável.
3. Escolha do algoritmo. Nesta etapa são escolhidos os algoritmos de ML mais adequados
às características do problema e do dataset.
4. Seleção de parâmetros e modelos. Determinados algoritmos de ML exigem a esco-
lha dos valores de alguns parâmetros, e isso pode exigir alguma análise adicional ou
experimentação. Esta etapa destina-se à escolha dos valores desses parâmetros.
5. Avaliação. Antes que um modelo de ML seja efetivamente utilizado, é necessário avaliá-lo
com dados que não fizeram parte do dataset de treinamento. Essa avaliação pode ser feita
com o auxílio de especialistas no domínio do problema ou com a escolha e utilização de
métricas apropriadas.
29
Os problemas de aprendizado supervisionado são divididos em dois tipos de proble-
mas, os quais são: (i) problemas de classificação, no qual a variável dependente é categórica; e,
(ii) problemas de regressão, no qual a variável dependente é numérica (MARSLAND, 2015). O
problema que tratamos neste trabalho, envolve classificar MFs considerando sua manutenibili-
dade a partir dos valores de um conjunto de 15 medidas de manutenibilidade do MF. Este pode
ser classificado como um problema de classificação (aprendizado supervisionado), já o resultado
que se deseja obter é categórico.
2.5.1 Algoritmos de Classificação
Nos problemas de classificação têm-se um dataset com uma determinada quantidade
de amostras, cada amostra contendo os valores de um conjunto de variáveis independentes e o
valor da variável dependente, pois este é um tipo de problema de aprendizado supervisionado
(MARSLAND, 2015). A Figura 7 ilustra um cenário de exemplo de um problema de classificação
genérico. O problema tem duas variáveis independentes (representadas pelos eixos X e Y) e
duas classes possíveis (representadas pelas cores azul e laranja). A linha que divide a parte azul
da parte laranja seria um limiar encontrado por um determinado algoritmo de classificação para
separar as duas classes existentes. O algoritmo considera todas as amostras que estão na parte
laranja como pertencentes a classe laranja, e todas as amostras que estão na parte azul como
pertencentes a classe azul. Existem diversos algoritmos de classificação, cada um com suas
particularidades. A seguir, são descritos alguns dos mais conhecidos e utilizados algoritmos de
classificação.
2.5.1.1 Naive Bayes
Naive Bayes é uma família de algoritmos que calculam a probabilidade de um
determinado resultado dado um conjunto de condições, utilizando o teorema de Bayes (BONAC-
CORSO, 2017). O teorema de Bayes é expresso pela fórmula abaixo onde A e B são eventos.
Naive Bayes é um classificador poderoso e fácil de treinar (BONACCORSO, 2017). Ele recebe
o nome naive (ingênuo) porque supõe que as variáveis independentes não possuem dependên-
cias (i.e., não são correlacionadas), o que pode não ser o caso em determinados problemas de
30
Figura 7 – Exemplo de problema de classifica-
ção genérico.
Fonte: Elaborado pelo autor.
classificação (SEN et al., 2020).
P(A|B) = P(B|A) ·P(A)
P(B)
(2.1)
Para classificar uma determinada amostra, o que o algoritmo faz é calcular a probabi-
lidade da amostra pertencer a cada uma das classes possíveis e a classe com maior probabilidade
é dada como resultado (SEN et al., 2020). Por exemplo, em um problema de classificação onde
se deseja descobrir se um empréstimo aceito (sendo as duas classes possíveis “Aceito” e “Recu-
sado”), com base no salário mensal de uma pessoa ser menor que 9000 reais, as probabilidades
para ambas as classes são expressas pelas fórmulas abaixo. As probabilidades utilizadas no
cálculo do teorema de Bayes (P(B|A), P(A) e P(B)) são calculadas na etapa de treinamento do
algoritmo, com base nos dados que compõem o dataset de treinamento.
P(Aceito|Salário < 9000) = P(Salário < 9000|Aceito) ·P(Aceito)
P(Salário < 9000)
(2.2)
P(Recusado|Salário < 9000) = P(Salário < 9000|Recusado) ·P(Recusado)
P(Salário < 9000)
(2.3)
31
2.5.1.2 Regressão Logística
Apesar de ter regressão no nome, este é um algoritmo de classificação, que se
baseia na probabilidade de uma determinada amostra pertencente a uma determinada classe
(BONACCORSO, 2017). O algoritmo de regressão logística tem algumas semelhanças com o
algoritmo de regressão linear (utilizado em problemas de regressão). Este último, tenta encontrar
uma função linear que melhor representa um conjunto de amostras, ou seja, que dados os valores
das variáveis independentes o valor de saída da função seja o mais próximo possível do valor da
variável dependente (BONACCORSO, 2017). A diferença é que na regressão logística o valor
de saída da função precisa estar limitado entre (0, 1). Por isso, é introduzida a função sigmóide,
cujo valor de saída é limitado entre (0, 1) e é representada pela fórmula abaixo.
f (x) =
1
1+ e−x
(2.4)
Um gráfico parcial de uma função sigmóide pode ser visto na Figura 8. Considerando
um problema de classificação com uma variável independente (representada pelo eixo X), duas
possíveis classes, sendo estas, 0 e 1 e o valor do eixo Y como sendo a probabilidade de uma
amostra pertencer a classe 1, basta definir um limiar para o eixo Y e será possível classificar as
amostras com base na curva da função sigmóide. Por exemplo, considerando a função sigmóide,
que é mostrada no gráfico da Figura 8, e o limiar como sendo 0.5, uma amostra cujo valor de X
fosse -5 seria tida como pertencente a classe 0 e uma amostra cujo valor de X fosse 5 seria tida
como pertencente a classe 1.
Figura 8 – Gráfico de uma função sigmóide.
Fonte: Adaptado de Bonaccorso (2017).
32
2.5.1.3 Árvore de Decisão
Árvore de decisão é um tipo de algoritmo baseado em lógica que pode ser utilizado
para problemas de regressão e classificação (SEN et al., 2020). Em problemas de classificação o
algoritmo forma uma estrutura de árvore binária que permite um processo de decisão sequencial
para a descoberta da classe de uma determinada amostra (BONACCORSO, 2017). A partir da
raiz da árvore, o valor de uma determinada variável independente é avaliado e se decide se o
próximo nó será o da direita ou o da esquerda. Esse processo é repetidoaté que se chegue a um
nó folha que indica a classe que será dada como resultado (BONACCORSO, 2017). Na Figura 9
é mostrado uma parte de uma árvore de decisão binária de um problema onde se deseja descobrir
se um determinado estudante é homem ou mulher com base nas características do cabelo do
estudante.
Uma das principais vantagens do algoritmo de árvore de decisão é que a estrutura de
árvore que é formada pode ser facilmente visualizada e entendida por humanos e, desse modo, os
resultados também podem ser entendidos e explicados. Uma outra vantagem é que a estrutura de
árvore que é formada permite mensurar a importância de cada uma das variáveis independentes
e isso pode até mesmo ser utilizado como critério para a seleção das variáveis independentes
que serão efetivamente utilizadas (BONACCORSO, 2017). Contudo, ao utilizar o algoritmo de
árvore de decisão é necessário fornecer as limitações apropriadas para evitar que a árvore cresça
ao ponto de haver quase que um nó folha para cada amostra do dataset de treinamento o que
resultaria em um modelo pouco generalizável (BONACCORSO, 2017).
2.5.2 Métricas para Modelos de Classificação
Como é possível observar na Figura 7, em geral um modelo de classificação não
consegue representar os dados com total exatidão (o que seria o resultado ideal), mas o objetivo
é que o modelo se aproxime ao máximo deste resultado. Existem diversas métricas para medir
o quão próximas estão as predições feitas por um modelo de classificação, do modelo de
classificação ideal e as métricas mais básicas (algumas vezes utilizadas para compor outras
métricas) geralmente se baseiam em uma matriz de confusão. Uma matriz de confusão resume
as informações relacionadas às predições de um modelo de classificação e as classificações reais
(FAYZRAKHMANOV et al., 2018). Em um modelo de classificação binário (onde só existem
duas classes possíveis), a matriz de confusão seria semelhante a exibida na Figura 10, onde VP
33
Figura 9 – Exemplo de árvore de
decisão binária.
Fonte: Adaptado de Bonaccorso (2017).
é verdadeiro positivo, FN é falso negativo, FP é falso positivo e VN é verdadeiro negativo. Os
resultados corretos são VP (amostras positivas que são corretamente classificadas como positivas)
e VN (amostras negativas que são corretamente classificadas como negativas), enquanto que FN
corresponde a uma amostra que é de fato positiva mas que foi incorretamente classificada como
negativa e FP corresponde a uma amostra que é de fato negativa mas que foi incorretamente
classificada como positiva (CHICCO; JURMAN, 2020).
Figura 10 – Matriz de confusão binária.
Fonte: Adaptado de Fayzrakhmanov et al. (2018).
Neste trabalho, serão utilizados algumas das mais conhecidas utilizadas métricas
34
para avaliação de problemas de classificação, as quais são descritas a seguir.
2.5.2.1 Acurácia
A acurácia é medida através da razão entre o número de classificações corretas e o
número total de amostras e é expressa pela fórmula a seguir (CHICCO; JURMAN, 2020). Alguns
pesquisadores a consideram a métrica mais razoável, no entanto, se o dataset for desbalanceado,
ou seja, o número de amostras em de uma classe for muito maior que o de outra classe a métrica
não é mais confiável pois fornece uma previsão otimista do comportamento do modelo de
classificação (CHICCO; JURMAN, 2020). A acurácia varia de 0 a 1, sendo 0 o pior valor e 1 o
melhor valor.
Acurácia =
V P+V N
V P+FP+V N +FN
(2.5)
2.5.2.2 Precisão
A métrica de precisão tem maior ênfase em capturar erros por falso positivo e é
medida através da razão entre o número classificações positivas corretas e o número total de
classificações positivas (CHICCO; JURMAN, 2020). A precisão varia de 0 a 1, sendo 0 o pior
valor e 1 o melhor valor e é expressa pela fórmula abaixo.
Precisão =
V P
V P+FP
(2.6)
2.5.2.3 Recall
Ao contrário da precisão a métrica recall tem maior ênfase em capturar erros por
falso negativo e é medida através da razão entre o número de classificações positivas corretas e
o número de classificações positivas corretas mais o número de classificações negativas falsas
Chicco e Jurman (2020). A métrica recall varia de 0 a 1, sendo 0 o pior valor e 1 o melhor valor
e é expressa pela fórmula abaixo.
Recall =
V P
V P+FN
(2.7)
35
2.5.2.4 F1 Score
A métrica F1 Score é obtida a partir do cálculo da média harmônica entre as métricas
precisão e recall (CHICCO; JURMAN, 2020). Atualmente a métrica F1 Score é amplamente
utilizada em diversos problemas de ML tanto binários quanto multiclasse (CHICCO; JURMAN,
2020). A métrica F1 Score varia de 0 a 1, sendo 0 o pior valor e 1 o melhor valor e é expressa
pela fórmula abaixo.
F1 = 2 · Precisão ·Recall
Precisão+Recall
(2.8)
2.5.2.5 AUC-ROC
AUC-ROC é uma métrica de desempenho para problema de classificação que informa
o quanto um modelo é capaz de distinguir entre as classes (NARKHEDE, 2018). ROC (Receiver
Operating Characteristic) é uma curva de probabilidade traçada com TPR (true positive ratio
ou razão de verdadeiros positivos) contra FPR (false positive ratio ou razão de falsos positivos)
cujas fórmulas podem ser vistas abaixo Narkhede (2018). Em AUC-ROC, AUC é a área sob a
curva ROC que pode ser vista na Figura 11.
T PR =
V P
V P+FN
(2.9)
FPR =
FP
V N +FP
(2.10)
2.5.3 Modelos de Caixa Branca e Caixa Preta
Atualmente, existe uma discussão na comunidade internacional de ML sobre a uti-
lização de modelos de caixa preta ou caixa branca (LOYOLA-GONZALEZ, 2019). Modelos
considerados de caixa preta são aqueles cujos algoritmos se baseiam em funções matemáticas
complexas ou que exigem profundo conhecimento de funções de distância e espaço de represen-
tação que são difíceis para um especialista humano entender e explicar (LOYOLA-GONZALEZ,
2019). Já modelos de caixa branca, são aqueles cujo comportamento pode ser completamente
entendido por seres humanos e até mesmo repetido (LIPTON, 2018). Parte da comunidade
36
Figura 11 – Área sob a curva ROC.
Fonte: Adaptado de Narkhede (2018).
científica defende os modelos de caixa preta, pois eles tem melhor desempenho que os modelos
de caixa branca em certos tipos de problema. Enquanto uma outra parte defende os algorimos de
caixa branca, porque seus resultados são comparáveis e podem ser explicados em linguagem
próxima à humana (LOYOLA-GONZALEZ, 2019).
Como um dos objetivos do presente estudo é fornecer, além da classificação da
manutenibilidade dos MFs, indicativos de como melhorar a manutenibilidade do artefato, foram
escolhidos os modelos de caixa branca. A partir desses modelos pode-se extrair informações
sobre como melhorar efetivamente a qualidade de um MF.
37
3 TRABALHOS RELACIONADOS
Foram identificados na literatura alguns estudos que se relacionam com este trabalho.
Nesta seção, estes estudos serão descritos e comparados com o trabalho proposto.
3.1 Metrics for analyzing variability and its implementation in software product lines: A
systematic literature review (EL-SHARKAWY et al., 2019)
El-Sharkawy et al. (2019) realizaram uma revisão sistemática da literatura com o
objetivo de identificar medidas de variabilidade desenvolvidas especificamente para as necessida-
des de LPSs considerando tanto modelos de variabilidade quanto artefatos de código. Os autores
analisaram 42 artigos nos quais foram identificadas 52 medidas para modelos de variabilidade,
80 para artefatos de código e 10 para ambos os artefatos. No presente trabalho, serão utilizadas
medidas do MF (um tipo de modelo de variabilidade) para avaliar a manutenibilidade de LPS o
que não foi feito no trabalho de El-Sharkawy et al. (2019). Além disso, no presente trabalho as
medidas de manutenibilidade também serão agregadas visando gerar um único valor que indique
a manutenibilidade de um MF.
3.2 Measures for quality evaluation of feature models (BEZERRA et al., 2014)
Bezerra et al. (2014) realizaram um mapeamento sistemático com o objetivo de
identificar medidas que pudessem ser utilizadaspara avaliar a qualidade dos MFs. Os autores
então propuseram o COfFEE, um catálogo de 32 medidas de qualidade dos MFs. Para validar
este catálogo, eles calcularam os valores de um subconjunto destas medidas para 3 MF extraídos
do repositório S.P.L.O.T. (MENDONCA et al., 2009). Com o processo de validação, foi possível
observar que cada um dos 3 MFs se destacou positivamente em um ou outro atributo de qualidade,
porém não foi possível dizer qual dos 3 tinha a melhor manutenibilidade. Este é um problema
desse tipo de abordagem de avaliação dos MF, pois, como os valores de várias medidas são
avaliados individualmente, apenas pontos específicos do MF são considerados e não a qualidade
geral deste artefato. Contudo, as medidas de qualidade fornecem informações úteis sobre a
qualidade dos MFs e estas informações, quando agregadas, podem fornecer uma visão geral da
qualidade do artefato. Neste trabalho, um subconjunto das medidas propostas por Bezerra et al.
(2014) serão agregadas de modo a fornecer um indicativo da manutenibilidade de um MF.
38
3.3 Exploring quality measures for the evaluation of feature models: a case study (BE-
ZERRA et al., 2017)
Em um trabalho posterior, Bezerra et al. (2017) realizaram uma análise de corre-
lação entre as medidas do catálogo COfFEE. Com a análise, os autores descobriram que um
subconjunto das medidas do catálogo original era suficiente para avaliar a qualidade dos MFs.
Os autores então propuseram um novo catálogo denominado MiniCOfFEE, composto por 15 das
32 medidas do catálogo COfFEE. As 15 medidas que compõem o catálogo MiniCOfFEE podem
ser vistas no Quadro 1. Neste trabalho, as medidas do catálogo MiniCOfFEE serão utilizadas
para treinar modelos de ML com o objetivo avaliar a manutenibilidade dos MFs. Além disso,
são analizadas as medidas do catálogo MiniCOfFEE para verificar se ainda é possível reduzir o
número de medidas necessárias para avaliar a manutenibilidade de um MF. Essa análise é feita
com base na observação das correlações entre as 15 medidas de manutenibilidade de um MF e a
importância de cada medida para um conjunto de modelos de ML.
3.4 Classifying feature models maintainability based on machine learning algorithms (SILVA
et al., 2020)
Em Silva et al. (2020) foi realizado um estudo com o objetivo de investigar a
utilização de técnicas de ML na avaliação de LPSs. No trabalho foi proposta uma abordagem
para classificação da manutenibilidade dos MFs que utiliza algoritmos de clustering para agrupar
os MFs por similaridade. Foi utilizado o método Vale (VALE et al., 2019) de derivação de
thresholds para analisar cada grupo dos MFs e atribuir a cada um deles um rótulo indicando
a manutenibilidade dos membros do grupo. A abordagem foi avaliada em termos de acurácia
e precisão, obtendo uma acurácia de 61,9% e uma precisão de 70,2%. O dataset utilizado no
estudo considerava o catálogo de medidas de manutenibilidade proposto por Bezerra et al. (2017).
Neste trabalho, também é utilizado o catálogo de medidas proposto por Bezerra et al. (2017).
Porém, são utilizados modelos de aprendizado supervisionado para avaliar a manutenibilidade
do MF, ao contrário do trabalho anterior onde foram utilizados modelos de aprendizado não
supervisionado.
39
3.5 Development of the maintainability index for SPLs feature models using fuzzy logic
(OLIVEIRA; BEZERRA, 2019)
No trabalho de Oliveira e Bezerra (2019) os autores desenvolveram um índice de
manutenibilidade dos MFs através da agregação de um subconjunto das medidas propostas por
Bezerra et al. (2014) utilizando lógica fuzzy. O índice foi aplicado a um conjunto do MF e foi
possível verificar que esse era capaz de medir se um modelo tinha alta ou baixa manutenibilidade.
O presente trabalho utilizará o mesmo subconjunto de medidas utilizado por Oliveira e Bezerra
(2019), pois em Bezerra et al. (2017) foi feita uma análise que revelou a existência de correlações
entre as medidas do catálogo COfFEE e que é possível avaliar a manutenibilidade de um MF
apenas com as 15 medidas utilizadas por Oliveira e Bezerra (2019). A principal diferença do
presente trabalho para o trabalho de Oliveira e Bezerra (2019) é o tipo de técnica utilizada para
agregar as medidas de manutenibilidade para permitir avaliar a manutenibilidade geral de um MF.
No trabalho de Oliveira e Bezerra (2019), foi utilizada lógica fuzzy e no presente trabalho serão
utilizados modelos de ML caixa branca. O uso de modelos de ML de caixa branca neste trabalho
permitirá fornecer aos engenheiros de domínio indicativos de como melhorar a manutenibilidade
de um MF.
Quadro 2 – Comparativo entre os trabalhos relacionados e o trabalho proposto.
Trabalhos Descreve ou UtilizaMedidas Propõe Abordagem
Indica como Melhorar o
MF
Tem Suporte
Automatizado
Trabalho
Proposto Sim Sim Sim Sim
El-Sharkawy et
al. (2019) Sim Não Não Não
Bezerra et al.
(2014) Sim Não Não Sim
Bezerra et al.
(2017) Sim Não Não Sim
Silva et al.
(2020) Sim Sim Não Sim
Oliveira e
Bezerra (2019) Sim Sim Não Sim
Fonte: Elaborado pelo autor.
40
3.6 Análise Comparativa
O Quadro 2 compara o presente trabalho com os 5 trabalhos relacionados descritos
anteriormente em 4 pontos, sendo estes: (i) se o trabalho descreve ou utilizada medidas de
manutenibilidade do MF; (ii) se propõe abordagem de avaliação da manutenibilidade do MF;
(iii) se fornece indicativos de como melhorar a manutenibilidade do MF; e, (iv) se tem suporte
automatizado. O presente trabalho utiliza medidas de manutenibilidade para classificar a ma-
nutenibilidade do MF e todos os 5 trabalhos relacionados utilizam ou pelo menos descrevem
medidas de manutenibilidade do MF. Dos 5 trabalhos relacionados apenas o presente trabalho e
os trabalhos de Silva et al. (2020) e Oliveira e Bezerra (2019) propõem abordagens de avaliação
da manutenibilidade do MF. O presente trabalho também fornece indicativos de como melhorar a
manutenibilidade do MF, o que não é feito por nenhum dos outros trabalhos relacionados. Todos
os trabalhos relacionados, exceto o de El-Sharkawy et al. (2019), fornecem suporte automatizado,
o que também é fornecido pelo presente trabalho.
41
4 UMA INVESTIGAÇÃO COMPARATIVA DAS ABORDAGENS DE AVALIAÇÃO
DA MANUTENIBILIDADE DO MF
Neste capítulo, é realizada uma comparação entre duas abordagens de classificação
da manutenibilidade do MF. Na Seção 4.1 as questões de pesquisa são apresentadas e os
procedimentos adotados para a coleta e análise dos dados utilizados na comparação das duas
abordagens são descritos. A Seção 4.2 apresenta os resultados e as respostas das questões de
pesquisa. Na Seção 4.3 são apresentadas as ameaças à validade e os procedimentos adotados
para mitigar seus efeitos. Por fim, na Seção 4.4 são apresentadas as conclusões do estudo.
4.1 Planejamento do Estudo
Um dos objetivos do presente trabalho é utilizar modelos de ML caixa branca para
classificar a manutenibilidade dos MFs. Este problema pode ser considerado como um problema
de classificação, um tipo de problema de aprendizado supervisionado. Como descrito na Seção
2.5, este tipo de problema requer um dataset com os valores das variáveis independentes e da va-
riável dependente para cada amostra. Portanto, para o presente trabalho é necessário um dataset
contendo os valores das 15 medidas de manutenibilidade do catálogo MiniCOfFEE. Essas medi-
das representam as variáveis independentes do problema e a classificação da manutenibilidade
de cada MF, que representa a variável dependente do problema.
Um possível caminho para se obter um dataset pré-classificado é utilizar especialistas
no domínio do problema para classificar as amostras do dataset de forma manual, com base em
sua própria experiência. Contudo, no contexto do presente trabalho seria muito custoso utilizar
especialistas em LPS para pré-classificar todo o dataset, visto que seria necessário reunir um
grande número de especialistas para que fosse possível gerar um dataset de tamanho aceitável
para treinamentodos algoritmos de ML. Por esse motivo, optamos por utilizar uma abordagem de
classificação automática da manutenibilidade dos MFs já descrita na literatura para pré-classificar
o dataset a ser utilizado no treinamento dos algoritmos de ML.
Identificamos duas abordagens deste tipo na literatura. Uma delas foi proposta em
nosso trabalho anterior Silva et al. (2020) e a outra foi proposta por Oliveira e Bezerra (2019).
Como descrito na Seção 2.4, ambas as abordagens recebem como entrada as 15 medidas do
catálogo MiniCOfFEE e a partir disso classificam a manutenibilidade de um MF. No presente
trabalho, iremos nos referir a abordagem proposta em nosso trabalho anterior (SILVA et al.,
2020) como abordagem Silva, e a abordagem proposta por Oliveira e Bezerra (2019) como
42
abordagem Oliveira. Nesta seção, descrevemos os procedimentos realizados para comparar
as duas abordagens e decidir qual delas será utilizada para a pré-classificação do dataset de
treinamento dos algoritmos de ML.
4.1.1 Questões de Pesquisa
Como dito anteriormente, não seria viável utilizar especialistas em LPS para pré-
classificar todo o dataset de treinamentos dos algoritmos de ML. Por isso, optamos por utilizar
uma abordagem de classificação automática da manutenibilidade dos MFs. Identificamos duas
abordagens deste tipo na literatura, e para compará-las utilizamos um oráculo composto por
alguns MFs que foram classificados quanto a manutenibilidade de forma manual por especialistas
em LPS. Para guiar o processo de comparação das duas abordagens, foram definidas três questões
de pesquisa:
– QP1: Com que frequência cada abordagem classifica a manutenibilidade de um MF
da mesma forma que especialistas em LPS? Uma abordagem ideal para classificação da
manutenibilidade dos MFs seria aquela cujas classificações estivessem quase sempre em
concordância com classificações feitas por especialistas em LPS. Os especialistas fazem
a classificação de forma manual analisando as particularidades de cada MF e utilizam
sua própria experiência no processo. Respondendo a QP1, será possível dizer qual a
acurácia das duas abordagens considerando como oráculo uma classificação feita por
especialistas em LPS. Ou seja, quando cada abordagem classifica MFs em conformidade
com a classificação feita de forma manual por especialistas em LPS.
– QP2: As abordagens de avaliação da manutenibilidade dos MFs são mais pessimistas
ou otimistas em relação às classificações feitas por especialistas em LPS? Quando a
classificação de uma das abordagens não for igual a dos especialistas, o ideal é que ela
seja um pouco mais pessimista (por exemplo, classificar como ruim um MF considerado
moderado pelos especialistas), à ser mais otimista (por exemplo, classificar como bom um
MF considerado moderado pelos especialistas). Nesse cenário, os engenheiros de domínio
serão alertados de que este MF não tem boa manutenibilidade e poderão assim buscar
melhorá-lo. Respondendo a QP2, será possível dizer se as duas abordagens classificam
com mais pessimismo ou mais otimismo os MFs em relação a classificação feita pelos
especialistas em LPS.
– QP3: Qual a variação das classificações de cada abordagem em relação às classificações
43
feitas por especialistas em LPS? Respondendo a QP3 será possível dizer o quanto em
média as classificações das abordagens se distanciam em relação a classificação feita
por especialistas em LPS. Assim, como qual das abordagens cujos resultados estão mais
próximos de resultados obtidos com o uso de especialistas em LPS.
4.1.2 Passos do Estudo
Nesta seção, são apresentados os procedimentos adotados para coleta e análise dos
dados utilizados na comparação das abordagens de classificação da manutenibilidade dos MFs.
4.1.2.1 Procedimentos para a Coleta dos Dados
Como dito anteriormente, as variáveis independentes do problema de ML abordado
neste trabalho são as 15 medidas de manutenibilidade do MF descritas no catálogo de medidas
MiniCOfFEE e a variável dependente é um valor categórico que indica a manutenibilidade
de um MF. As abordagens Silva e Oliveira classificam os MFs quanto à manutenibilidade em
5 categorias. Por isso, optamos utilizar no presente trabalho o mesmo número de categorias
utilizado por ambas as abordagens. A nomenclatura utilizada pela abordagem Silva para as 5
categorias de manutenibilidade do MF, é: muito ruim, ruim, moderada, boa e muito boa. Já na
abordagem Oliveira, a nomenclatura utilizada para as 5 categorias de manutenibilidade do MF, é:
muito baixa, baixa, média, alta e muito alta. No presente trabalho optamos por utilizar a mesma
nomenclatura utilizada pela abordagem Silva.
Construção do dataset. Para formar o dataset a ser utilizado neste trabalho para o
treinamento dos algoritmos de ML extraímos 342 MFs1 do repositório S.P.L.O.T. (MENDONCA
et al., 2009) e utilizamos a ferramenta DyMMer (BEZERRA et al., 2016a) para calcular as 15
medidas do catálogo MiniCOfFEE para cada uma das amostras. O dataset2 é composto por MFs
de diferentes tamanhos, variando de 10 a 290 features, com uma média de aproximadamente
30 features por MF. Após calcular os valores das 15 medidas de manutenibilidade para cada
MF no dataset, utilizamos as abordagens Silva e Oliveira para classificar a manutenibilidade
dos 342 MF do dataset passando como entrada para as abordagens os valores das 15 medidas
de manutenibilidade calculados para cada MF no dataset3,4. As duas abordagens têm suporte
1 https://github.com/publiosilva/tcc-2/tree/master/feature-models
2 https://github.com/publiosilva/tcc-2/blob/master/unclassified-dataset.csv
3 https://github.com/publiosilva/tcc-2/blob/master/silva-dataset.csv
4 https://github.com/publiosilva/tcc-2/blob/master/oliveira-dataset.csv
https://github.com/publiosilva/tcc-2/tree/master/feature-models
https://github.com/publiosilva/tcc-2/blob/master/unclassified-dataset.csv
https://github.com/publiosilva/tcc-2/blob/master/silva-dataset.csv
https://github.com/publiosilva/tcc-2/blob/master/oliveira-dataset.csv
44
automatizado, então este processo foi feito de maneira automática. Para facilitar a comparação
das abordagens fizemos com que as categorias de manutenibilidade de ambas as abordagens
fossem iguais. O que fizemos foi substituir a nomenclatura utilizada pela abordagem Oliveira
pela mesma utilizada pela abordagem Silva, desse modo as classes muito baixa, baixa, média,
alta e muito alta foram substituídas pelas classes muito ruim, ruim, moderada, boa e muito boa,
respectivamente. A abordagem Silva classificou 76 MFs como muito ruins, 60 como ruins, 144
como moderados, 56 como bons e 6 como muito bons. Já a abordagem Oliveira classificou 27
MFs como muito ruins, 72 como ruins, 66 como moderados, 49 como bons e 128 como muito
bons.
Construção do óraculo. Para formar o oráculo que seria a base para a comparação
entre as abordagens Silva e Oliveira escolhemos um subconjunto dos 342 MFs que compunham
o dataset para que fosse classificado quanto a manutenibilidade de forma manual por um
conjunto de especialistas em LPS. Para que o subconjunto escolhido fosse representativo em
relação ao dataset completo agrupamos os 342 MFs por similaridade considerando os valores
das 15 medidas de manutenibilidade. Para fazer este agrupamento utilizamos o algoritmo de
agrupamento K-Means que é um dos mais conhecidos e utilizados algoritmos de agrupamento
ou clustering (JAIN, 2010) e está disponível na biblioteca scikit-learn5. Após o processo de
agrupamento foram selecionados 100 MFs6,7 dos diferentes grupos gerados garantindo assim
que os MFs a serem avaliados pelos especialistas teriam diferentes características e seriam
representativos em relação ao dataset completo.
Avaliação pelos especialistas. Foi criado um formulário para que os especialistas
pudessem avaliar os 100 MFs. Em cada formulário, além das perguntas relacionadas ao perfil
dos participantes, haviam 10 perguntas onde o especialista deveria classificar a manutenibilidade
de 10 MFs nas 5 categorias

Continue navegando

Outros materiais