Pós-Graduação em Ciência da Computação
“Abordagem de Apoio à Tomada de Decisão na
Seleção do Tipo de Estudo Empírico em
Engenharia de Software”
Por
Nathalia Maria Temudo
Dissertação de Mestrado
Universidade Federal de Pernambuco [email protected] www.cin.ufpe.br/~posgraduacao
RECIFE 2014
UNIVERSIDADE FEDERAL DE PERNAMBUCO
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
CENTRO DE INFORMÁTICA
NATHALIA MARIA TEMUDO
“A
BORDAGEM DE APOIO À TOMADA DE DECISÃO NA
SELEÇÃO DE TIPO DE
E
STUDO
E
MPÍRICO EM
E
NGENHARIA DE
S
OFTWARE
”
TRABALHO APRESENTADO A PÓS-GRADUAÇÃO EM CIÊNCIA DA
COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIA DA COMPUTAÇÃO.
C
ANDIDATO:
N
ATHALIAM
ARIAT
EMUDO(
NMT@
CIN.
UFPE.
BR)
O
RIENTADOR:
S
ERGIOC
ASTELOB
RANCOS
OARES(
SCBS@
CIN.
UFPE.
BR)
R
ECIFE
Catalogação na fonte
Bibliotecária Joana D’Arc L. Salvador, CRB 4-572
Temudo, Nathalia Maria.
Abordagem de apoio à tomada de decisão na
seleção de tipo de estudo empírico em engenharia de
software / Nathalia Maria Temudo. – Recife: O Autor,
2014.
164 f.: fig., tab.
Orientador: Sergio Castelo Branco Soares.
Dissertação (Mestrado) - Universidade Federal de
Pernambuco. CIN. Ciência da Computação, 2014.
Inclui referências e apêndices.
1. Engenharia de software. 2. Empirismo. I. Soares,
Sergio Castelo Branco (orientador). II. Título.
Dissertação de Mestrado apresentada por Nathalia Maria Temudo à Pós-Graduação em Ciência
da Computação do Centro de Informática da Universidade Federal de Pernambuco, sob o título
“Abordagem de Apoio à Tomada de Decisão na Seleção do Tipo de Estudo Empírico em
Engenharia de Software” orientada pelo Prof. Sergio Castelo Branco Soares e aprovada pela
Banca Examinadora formada pelos professores:
______________________________________________
Prof. André Luis de Medeiros Santos
Centro de Informática / UFPE
______________________________________________
Profa. Cristine Martins Gomes de Gusmão
Departamento de Engenharia Biomédica / UFPE
_______________________________________________
Prof. Sergio Castelo Branco Soares
Centro de Informática / UFPE
Visto e permitida a impressão.
Recife, 19 de fevereiro de 2014.
___________________________________________________
Profa. Edna Natividade da Silva Barros
Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.
Agradecimentos
Primeiramente, agradeço a Deus por ter me dado saúde e força para chegar até
esse momento. Em segundo, agradeço à minha família pelo apoio durante todo o
mestrado e ao meu namorado pela paciência e cumplicidade até nos momentos mais
desafiadores da pesquisa acadêmica. Por último e em especial, agradeço ao meu
orientador, Sérgio Soares, figura imprescindível em minha caminhada nesse primeiro
nível de aprofundamento stricto sensu, por todo seu empenho, orientação, incentivo,
carinho e pela paciência ao se dispor como fonte bem-servida de sabedoria e
conhecimento, sendo capaz de repassar sua experiência com excelente didática.
The only way to do great work is to love what you do.
- STEVE JOBS
Resumo
Ao longo dos anos, estudos empíricos têm se mostrado mecanismos
importantes para o avanço científico em diversas áreas como Medicina e Ciências
Sociais, por exemplo. Em Engenharia de Software não é diferente, visto que o
interesse por esse tipo de estudo vem crescendo desde a década de 80 e ganhando
novos adeptos que contribuem para o desenvolvimento da área. Entretanto, vários
fatores tornam a pesquisa empírica em Engenharia de Software particularmente difícil,
uma vez que requer estudar não só a tecnologia, mas os conceitos e teorias
envolvidos. Além disso, há uma multiplicidade de tipos de estudos tais como estudos
de caso, pesquisa ação, survey, experimento e etnografia, o que dificulta a seleção de
um tipo de estudo empírico apropriado numa dada situação de projeto de pesquisa.
Nesse contexto, foi conduzida uma revisão sistemática com o objetivo de identificar
informações baseadas em evidências sobre a seleção de estudo empírico pelos
pesquisadores em Engenharia de Software, visando a criação de uma abordagem de
apoio à tomada de decisão em pesquisa empírica.
Palavras-chave: Engenharia de Software. Tipo de Estudo Empírico. Revisão
Sistemática. Abordagem. Tomada de Decisão.
Abstract
Along the years, empirical studies had reported important mechanisms for
scientific progress in several areas such as Social Science and Medicine, for example.
In Software Engineering is not different, as the interest for empirical studies have been
increasing since the 80s and getting new researchers who contribute to the
development of the area. However, several factors make empirical research in Software
Engineering particularly challenging, as it requires studying not only the technology, but
the concepts and theories around. Furthermore, the plethora of studies type such as
case studies, action research, survey, experiment or ethnography makes is very difficult
to choose an appropriate research method in a given situation of the design science
research. In this context, this research was performed through Systematic Literature
Review aiming to identify evidence-based information on the selection of empirical study
type by researchers in Software Engineering, aiming at creating a support approach to
decision making in empirical research.
Keywords: Software Engineering. Empirical Study Type. Systematic Literature Review.
Approach. Decision Making.
Lista de Figuras
FIGURA 3.1 ETAPAS DA PESQUISA. ... 24
FIGURA 4.1 DISTRIBUIÇÃO DOS ESTUDOS SELECIONADOS POR FONTE. ... 30
FIGURA 4.2 DISTRIBUIÇÃO DE SELEÇÃO DE TIPOS DE ESTUDOS EMPÍRICOS AO LONGO DOS ANOS. ... 31
FIGURA 4.3 FLUXOGRAMA DE ESTIMATIVA DE SOFTWARE... 34
FIGURA 4.4 FLUXOGRAMA DE ARQUITETURA DE SOFTWARE. ... 35
FIGURA 4.5 FLUXOGRAMA DOS CASOS DE USO. ... 37
FIGURA 4.6 FLUXOGRAMA DE DESENVOLVIMENTO DE SOFTWARE. ... 38
FIGURA 4.7 FLUXOGRAMA RELACIONADO À DOCUMENTAÇÃO. ... 40
FIGURA 4.8 FLUXOGRAMA DE FERRAMENTA. ... 41
FIGURA 4.9 FLUXOGRAMA DE INSPEÇÃO. ... 42
FIGURA 4.10 FLUXOGRAMA DE MÉTODO. ... 44
FIGURA 4.11 FLUXOGRAMA DE MÉTRICAS. ... 46
FIGURA 4.12 FLUXOGRAMA DE MODELOS. ... 48
FIGURA 4.13 FLUXOGRAMA DE REQUISITOS. ... 49
FIGURA 4.14 FLUXOGRAMA DE TESTES. ... 51
Lista de Tabelas
TABELA 2.1 COMPARAÇÃO DOS TIPOS DE ESTUDOS EMPÍRICOS. ... 19
TABELA 3.1 CLASSIFICAÇÃO DA PESQUISA ... 23
TABELA 4.1 ESTUDOS RELACIONADOS À ESTIMATIVA DE SOFTWARE. ... 33
TABELA 4.2 ESTUDOS RELACIONADOS À ARQUITETURA DE SOFTWARE. ... 35
TABELA 4.3 ESTUDOS RELACIONADOS AOS CASOS DE USO. ... 36
TABELA 4.4 ESTUDOS RELACIONADOS AO DESENVOLVIMENTO DE SOFTWARE. ... 38
TABELA 4.5 ESTUDOS RELACIONADOS À DOCUMENTAÇÃO. ... 39
TABELA 4.6 ESTUDOS RELACIONADOS À FERRAMENTA. ... 41
TABELA 4.7 ESTUDOS RELACIONADOS À INSPEÇÃO. ... 42
TABELA 4.8 ESTUDOS RELACIONADOS AO MÉTODO. ... 44
TABELA 4.9 ESTUDOS RELACIONADOS À METRICAS. ... 45
TABELA 4.10 ESTUDOS RELACIONADOS AOS MODELOS. ... 47
TABELA 4.11 ESTUDOS RELACIONADOS AOS REQUISITOS. ... 49
Siglas
ES – Engenharia de Software
ESBE – Engenharia de Software Baseada em Evidências
EMS – Estudo de Mapeamento Sistemático
RSL – Revisão Sistemática da Literatura
IEEE – Instituto de Engenheiros Eletricistas e Eletrônicos
EASE – Evaluation and Assessment in Software Engineering
ESEM – Empirical Software Engineering and Measurement
ESEJ – Empirical Software Engineering Journal
IDC – Identificador do campo de pesquisa que o tipo de estudo empírico foi aplicado
IDF – Identificador da Finalidade que o tipo de estudo empírico foi aplicado
Sumário
1 INTRODUÇÃO ... 12 1.1 OBJETIVOS ... 13 1.1.1 Objetivos gerais ... 13 1.1.2 Objetivos específicos ... 13 1.2 ORGANIZAÇÃO DA DISSERTAÇÃO ... 13 2 FUNDAMENTAÇÃO TEÓRICA ... 15 2.1 ENGENHARIA DE SOFTWARE... 152.2 ESTUDOS EMPÍRICOS EM ENGENHARIA DE SOFTWARE ... 15
2.2.1 Métodos para a condução de experimentos em Engenharia de Software ... 17
2.2.2 Tipos de estudos empíricos em Engenharia de Software ... 18
2.3 ENGENHARIA DE SOFTWARE BASEADA EM EVIDÊNCIAS ... 19
2.4 RESUMO ... 21
3 METODOLOGIA ... 22
3.1 CLASSIFICAÇÃO DA PESQUISA ... 22
3.2 CICLO DA PESQUISA ... 24
3.3 PROTOCOLO DA REVISÃO SISTEMÁTICA DA LITERATURA ... 25
3.3.1 Escopo e Questões de Pesquisa ... 26
3.3.2 Processo de Busca ... 26
3.3.3 Critérios de Exclusão ... 27
3.3.4 Extração dos Dados ... 27
3.3.5 Síntese dos Dados ... 28
3.4 RESUMO ... 29
4 ABORDAGEM DE APOIO À SELEÇÃO DE TIPO ESTUDO EMPÍRICO ... 30
4.1 EXTRAÇÃO E ANÁLISE DOS DADOS ... 30
4.2 CONSTRUÇÃO DA ABORDAGEM ... 31 4.3 A ABORDAGEM ... 32 4.3.1 Estimativa de Software ... 32 4.3.2 Arquitetura de Software ... 33 4.3.3 Casos de Uso ... 35 4.3.4 Desenvolvimento de Software ... 36 4.3.5 Documentação ... 38 4.3.6 Ferramenta ... 40 4.3.7 Inspeção ... 41 4.3.8 Método ... 43 4.3.9 Métrica ... 44 4.3.10 Modelo ... 46 4.3.11 Requisitos ... 47 4.3.12 Teste ... 49
4.3.13 Demais campos da área de pesquisa ... 51
4.4 DISCUSSÃO SOBRE A ABORDAGEM ... 52
4.5 RESUMO ... 53
5 CONSIDERAÇÕES FINAIS ... 54
5.1 AMEAÇAS À VALIDADE E LIMITAÇÕES... 54
5.2 TRABALHOS FUTUROS ... 55
5.3 TRABALHOS RELACIONADOS ... 55
5.4 CONCLUSÕES ... 55
REFERÊNCIAS... 57
APÊNDICE A ... 65
A.1 BACKGROUND ... 65
A.2 RESEARCH QUESTION ... 65
A.3 SEARCH PROCESS ... 65
A.4 EXCLUSION CRITERIA ... 66
A.5 SELECTION PROCESS ... 66
A.7 DATA EXTRACTION AND DATA SYNTHESIS ... 67
APÊNDICE B ... 69 ESTUDOS SELECIONADOS... 69 APÊNDICE C ... 103 EVIDÊNCIAS ... 103 APÊNDICE D... 159 ESTUDOS RELACIONADOS ... 159
1 Introdução
Os estudos baseados em evidências empíricas em Engenharia de Software (ES)
vêm ganhando importância desde os meados da década de 80 no sentido de
aperfeiçoar o apoio a tomada de decisão dos profissionais em relação ao
desenvolvimento de software, métodos, técnicas, linguagens de programação, etc. Tal
aperfeiçoamento só foi possível graças a integração das melhores evidências
resultantes das experiências práticas e dos valores humanos de uma pesquisa
empírica [1].
No entanto, conduzir uma pesquisa empírica em ES pode se tornar um tanto
desafiador visto que, nas últimas décadas, vários pesquisadores têm abordado as
dificuldades para a seleção de um método de investigação apropriado [2],[3],[4]. É
importante lembrar que um método de investigação está relacionado ao tipo de estudo
empírico que foi selecionado para a condução da pesquisa diante de uma
multiplicidade de tipos de estudos, que segundo Easterbrook et al. [5], são: estudos de
caso, pesquisa ação, survey, experimento e etnografia.
Além do mais existem vários fatores que tornam a pesquisa empírica em
Engenharia de Software bastante desafiadora. Em primeiro lugar, estudar as atividades
humanas no desenvolvimento de software é sempre um desafio, uma vez que requer
estudar não só a tecnologia em uso, mas também processos sociais que envolve as
partes interessadas [3],[5]. Em segundo lugar, a pesquisa em Engenharia de Software
empírica faz uso dos conceitos e teorias das ciências sociais, uma vez que envolve o
estudo das atividades humanas. Dada a variedade de usos dos conceitos e
terminologia de pesquisa em ciências sociais, os pesquisadores têm dificuldade para
explicar o seu projeto de pesquisa [6].
Em terceiro e último lugar, a seleção de um método de pesquisa em Engenharia
de Software empírica é especialmente problemática segundo Easterbrook et al. [5],
pois o que dificulta a seleção de um tipo de estudo empírico apropriado numa dada
situação de um projeto de pesquisa é a pouca documentação sobre os prós e contras
dos métodos de pesquisa e, assim, muitos pesquisadores não têm o conhecimento
necessário sobre as implicações dos métodos de investigação que eles usam, o que
pode se tornar um impecilho para o pesquisador na condução deste tipo de pesquisa
[6].
Diante do cenário descrito, pesquisadores inexperientes em estudos empíricos,
os quais não possuem ainda muita experiência na área, sentem mais dificuldades em
relação aos experientes ao selecionar qual método de investigação seria mais
adequado para aplicar em suas pesquisas. Então, com a finalidade de fomentar a
prática de estudos empíricos, o foco principal do trabalho é agregar conhecimento
sobre as justificativas dos pesquisadores da área através de uma Revisão Sistemática
da Literatura (RSL) em relação a seleção dos tipos estudos empíricos em ES, visando
a criação de uma abordagem de apoio à tomada de decisão na seleção do tipo de
estudo empírico em ES.
1.1 Objetivos
1.1.1 Objetivos gerais
Este trabalho tem como objetivo geral agregar conhecimento disponível na literatura
sobre as justificativas dos pesquisadores ao selecionar um tipo de estudo empírico a
ser realizado numa pesquisa. A partir da análise deste conjunto de justificativas, uma
abordagem será criada para apoiar os pesquisadores poucos experientes na execução
de pesquisa empírica em ES.
1.1.2 Objetivos específicos
Com o resultado proveniente da Revisão Sistemática da Literatura realizada
pretende-se alcançar os pretende-seguintes objetivos específicos:
Auxiliar na seleção de tipos de estudos empíricos;
Favorecer a popularização de estudos empíricos para pesquisadores
poucos experientes na área empírica;
Propor uma abordagem de seleção de tipo de estudo empírico;
Se unir a um processo que guia a realização de estudos empíricos em
Engenharia de Software.
1.2 Organização da Dissertação
Além deste capítulo, esta dissertação será apresentada em mais cinco capítulos que
estão organizados da seguinte forma:
O Capítulo 2 apresenta o referencial teórico, que contem os conceitos que
fundamentam esta dissertação. A metodologia que foi adotada para realizar esta
pesquisa é discutida no Capítulo 3, onde é apresentada a classificação da pesquisa
com o seu quadro metodológico, as principais etapas deste estudo, os procedimentos
seguidos pela Revisao Sistemática da Literatura com o seu protocolo definido e a forma
como os dados foram extraídos, analisados e sintetizados. No Capítulo 4 é
apresentado a abordagem de apoio à tomada de decisão em relação à seleção do tipo
de estudo empírico em Engenharia de Software. Esta abordagem foi gerada a partir
das evidências coletadas e analisadas dos estudos selecionados na Revisão
Sistemática da Literatura. Finalmente, no Capítulo 5 são detalhadas as conclusões do
trabalho desenvolvido e é realizado um levantamento de propostas de trabalhos
futuros. Além disso, diversos apêndices apresentam o protocolo completo da revisão, a
lista de estudos selecionados, as evidências extraídas dos estudos primários e os
estudos relacionados, respectivamente.
2 Fundamentação Teórica
Este capítulo aborda o conteúdo teórico necessário para desenvolver a solução para o
problema descrito na introdução: conceitos de Engenharia de Software, definição e
tipos de estudos empíricos em Engenharia de Software e Engenharia de Software
baseada em evidências.
2.1 Engenharia de Software
A Engenharia de Software (ES) não engloba apenas um conjunto de levantamento de
técnicas e terminologias para guiar desenvolvimento de software; de acordo com
algumas definições encontradas na literatura, ela inclui muito mais do que isso:
Sommerville [8] caracteriza como uma disciplina da engenharia que se ocupa de
todos os aspectos de produção de software, desde os estágios iniciais de
especificação do sistema, até a manutenção desse sistema, depois que entrou
em operação.
É descrita no glossário do Instituto de Engenheiros Eletricistas e Eletrônicos
(IEEE) para terminologias de ES de 1993 [9] como a aplicação de uma
abordagem sistemática, disciplinada e quantificável para o desenvolvimento,
operação e manutenção de software. O estudo de abordagens e princípios a fim
de obter softwares confiáveis e que executam de forma eficiente nas máquinas
reais.
Em resumo, a ES está preocupada em estruturar o processo da produção
sistemática do software, desde o primeiro contato com o cliente à manutenção de
produtos de software que são desenvolvidos e modificados no prazo estabelecido e
dentro das estimativas de custo, de forma a tornar esse processo mais racional,
científico e repetível com o objetivo de se aproximar das engenharias tradicionais.
2.2 Estudos empíricos em Engenharia de Software
De forma geral, os testes que comparam o que acreditamos ao que vemos são
denominados estudos empíricos. Contudo, se tais estudos forem construídos
sabiamente e aplicados para apoiar o método científico, eles passam a ter um papel
fundamental na Ciência. Estudos empíricos, como um todo, auxiliam a entender como
e por que as coisas funcionam, e nos permitem usar esta compreensão para alterar
nosso mundo materialmente em várias áreas de pesquisa, inclusive em ES [10].
A realização de estudos empíricos em ES, de acordo com Travassos [11],
representa um modo sistemático para avaliação de ferramentas, metodologias,
processos e produtos, resultando em contribuições efetivas para a qualidade do
software.
Um dos primeiros relatos sobre a importância de estudos empíricos em ES foi
publicado em 1986 por Basili [12]. Após isso, outros estudos evidenciaram a
necessidade de estudos empíricos em ES [13], [14], [15], [16] além do desenvolvimento
de apoio, guidelines, metodologias, frameworks, mecanismos e intrumentos que
permitem projetar, planejar, analisar e empacotar estudos empíricos em ES [1], [16],
[17], [18], [19], [20], [21], [22].
Entretanto, observa-se que nas pesquisas de ES, os estudos empíricos não
obtiveram tanto êxito, comparado ao seu amplo uso nas outras Ciências. Moura [23],
enumerou alguns motivos da falta desses estudos:
A dificuldade de padronizar e encapsular todas as informações
necessárias aos estudos;
A dificuldade de controlar todas as variáveis envolvidas no
desenvolvimento de software, tais como processo, tecnologias,
experimentos e fatores humanos em geral;
O envolvimento humano direto na execução dos estudos, que gera uma
alta probabilidade de contaminação dos resultados, uma vez que é
impossível selecionar para o estudo pessoas que tenham exatamente as
mesmas caracterísiticas;
Os altos custos associados à alocação de pessoas para realizar
experimentos durante todo o processo de desenvolvimento de software.
Vale ressaltar que o processo de realização de estudos empíricos ajuda a
fomentar uma base de dados de conhecimento confiável, aumentando, assim, o acervo
a ser utilizado para tomada de decisões em relação a quais ferramentas, metodologias,
teorias ou tipos de estudos empíricos são mais adequados para a resolução de um
problema [24]. Assim, torna-se evidente a necessidade de estudos empíricos para
alavancar o amadurecimento e desenvolvimento na área de ES.
2.2.1 Métodos para a condução de experimentos em
Engenharia de Software
De acordo com Travassos [11] existem quatro métodos relevantes para a condução de
Experimento em ES: método científico, método experimental, método de engenharia e
método analítico.
Método Científico. Este método observa o mundo, sugere o modelo ou a teoria
do comportamento, mede e analisa, verifica as hipóteses do modelo ou teoria, ou seja,
é um paradigma indutivo [25]. Pode ser utilizado quando se tenta entender o processo,
o produto de software ou o ambiente, por exemplo. Esse método tenta extrair do
mundo algum modelo que possa explicar um fenômeno e, avaliar se o modelo é
representativo para o fenômeno que está em observação. É uma abordagem para a
construção de modelos.
Método Experimental. Este método sugere o modelo do Experimento,
desenvolve o método qualitativo e/ou quantitativo, aplica um Experimento, mede e
analisa, avalia o modelo e repete o processo. O processo se inicia com o levantamento
de um modelo novo, baseado em um modelo existente ou não, tentando estudar o
efeito do processo ou produto sugerido pelo modelo novo.
Método de Engenharia. Este método observa as soluções existentes, sugere as
soluções mais adequadas, desenvolve, mede e analisa, repetindo até que nenhuma
melhoria adicional seja possível. É uma abordagem orientada à melhoria evolutiva,
assumindo a existência de algum modelo do processo ou produto de software e
modificando esse modelo com o objetivo de melhorar os objetos do estudo.
Método Analítico (ou Matemático). Este método sugere uma teoria formal,
desenvolve a teoria, deriva os resultados e se possível compara-os com as
observações empíricas. É um método dedutivo que não precisa de um projeto
experimental no sentido estatístico, mas oferece uma base analítica para o
desenvolvimento de modelos.
Segundo Travassos [11], o método experimental considera a proposição e
avaliação do modelo com estudos experimentais, sendo a abordagem mais apropriada
para experimentação na área de ES. Entretando, esta pesquisa utilizou o método
científico de forma a entender o processo de seleção de estudo empírico em ES em
busca da construção de uma abordagem de apoio à tomada de decisão, visto que é o
método mais utilizado para a construção de abordagens [25].
2.2.2 Tipos de estudos empíricos em Engenharia de
Software
Os principais tipos de estudos empíricos conduzidos em ES [21] descritos pela
literatura são:
(i)
Survey. Trata-se de uma investigação conhecida como pesquisa de
campo, usada para identificar as características de uma ampla população
de indivíduos. Geralmente, a coleta de dados está associada ao uso de
questionários, mas pode ser realizada também através de entrevistas
estruturadas ou técnicas de registros de dados. Uma pré-condição para a
escolha desse tipo de estudo empírico é uma pergunta clara sobre a
natureza de uma população alvo em particular [21].
(ii)
Estudo de caso. Segundo Yin [25], o estudo de caso é uma pesquisa
empírica que investiga um fenômeno contemporâneo dentro do seu
contexto na vida real, principalmente quando as fronteiras entre o
fenômeno e o seu contexto não são claras. Além disso, o estudo de caso
oferece uma compreensão profunda de como e porque certos fenômenos
ocorrem, podendo revelar os mecanismos pelos quais as relações
causa-efeito ocorrem [27]. Uma pré-condição para a escolha desse tipo de
estudo empírico é uma pergunta clara e interessada em como e porque
certos fenômenos ocorrem [21].
(iii)
Experimento. É uma investigação de hipótese testável, onde uma ou
mais variáveis independentes são manipuladas com a finalidade de medir
seus efeitos em uma ou mais variáveis. Uma pré-condição para a escolha
desse tipo de estudo empírico é uma hipótese clara que guia todas as
etapas do projeto experimental, inclusive a de decidir quais variáveis
serão incluídas no estudo e como medi-las [21].
(iv)
Etnografia. Segundo Robinson et al. [28], a etnografia é o estudo de uma
comunidade de pessoas visando entender como os membros desta
comunidade percebem suas iterações sociais através da observação. É
um tipo de estudo empírico que pode ajudar a compreender como as
comunidades técnicas constroem uma cultura de práticas de
comunicação que lhes permitem executar os trabalhos técnicos de forma
colaborativa [21].
(v)
Pesquisa Ação. É um tipo de estudo empírico usado pelos
pesquisadores para resolver um problema do mundo real enquanto
estudam, ao mesmo tempo, a experiência de resolver o problema [29].
Neste estudo, os pesquisadores pretendem intervir nas situações
estudadas com a intenção explícita de melhorar a situação [21].
Vale ressaltar que a classificação dos estudos empíricos está sempre
relacionada aos conceitos das estratégias empíricas [11]. O que diferencia as
estratégias são o controle da execução, o controle da medição, o custo de investigação
e a facilidade de repetição, como mostrado na Tabela 2.1.
Tabela 2.1 Comparação dos tipos de estudos empíricos.
Fator
Survey
Estudo
de caso
Experimento
Etnografia
Pesquisa
ação
Controle da execução Nenhum Nenhum Tem Nenhum Nenhum
Controle da medição Nenhum Tem Tem Nenhum Tem
Controle da Investigação Baixo Médio Alto Baixo Médio
Facilidade da repetição Alta Baixa Alta Alta Alta
Custo Baixo Médio Alto Baixo Médio
2.3 Engenharia de Software baseada em evidências
O paradigma baseado em evidências teve origem em pesquisas médicas por volta dos
anos 80 para os anos 90 [1], e é aplicável aos campos de pesquisa onde a construção
do conhecimento, através de revisões sistemáticas, está presente, como acontece em
ES.
De acordo com Kitchenham et al. [1] a Engenharia de Software Baseada em
Evidências (ESBE) (do inglês Evidence-Based Software Engineering - EBSE) busca
“prover meios pelos quais melhores evidências provenientes da pesquisa possam ser
integradas com experiência prática e valores humanos no processo de tomada de decisão
considerando o desenvolvimento e manutenção de software
”.
Nesse contexto, Revisão Sistemática da Literatura (RSL) (do inglês Systematic
Literature Review
– SLR) e Estudo de Mapeamento Sistemático (EMS) (do inglês
Systematic Mapping Study
– SMS) emergiram como duas ferramentas importantes
para construir e agregar conhecimento em ES e apresentam as seguintes vantagens
[30]:
A metodologia bem definida torna menos provável que os resultados
encontrados na literatura sejam tendenciosos;
Podem fornecer informações sobre os efeitos de algum fenômeno através
de configurações e métodos empíricos. Se os estudos fornecem
resultados consistentes, a revisão sistemática provê evidências que o
fenômeno é robusto e transferível; se os resultados forem inconsistentes,
as fontes de variação podem ser estudadas;
No caso de estudos quantitativos, é possível combinar dados usando
técnicas de meta-análise, aumentando a probabilidade de detectar efeitos
reais que pequenos estudos individuais não são capazes de detectar.
As RSLs exigem muito mais esforço para serem realizadas quando comparado
com as revisões de literatura tradicionais, pois estão preocupadas em responder
questões muito específicas com a finalidade de construir novos conhecimentos
baseados em estudos existentes em um determinado campo. Os EMSs são geralmente
utilizados quando o pesquisador pretende explorar uma determinada área, orientar uma
RSL no futuro, ou quando há pouca evidência em um determinado campo de pesquisa.
Em resumo, as principais diferenças entre RSLs e EMSs são [30]:
EMSs são guiados por questões de pesquisas mais amplas e mais
exploratórias do que RSLs;
Os termos de pesquisa em EMSs são menos focados do que os usados
em RSLs e, assim, podem retornar um grande número de estudos
durante a fase de busca. Para as RSLs, isto é um problema maior do que
se fosse numa fase de busca de um EMS visto que o objetivo do EMS é
ter uma ampla cobertura ao invés estreita como acontece na RSL;
Devido ao item anterior, o processo de extração de dados para EMSs
também é muito mais amplo do que em RSLs, porém é menos
aprofundado e não visa as melhores práticas, necessitando, às vezes, de
uma fase de classificação ou categorização. O objetivo desta fase é
classificar os estudos com detalhes suficientes para responder as grandes
questões de pesquisa e identificar os estudos que serão revisados
posteriormente sem ser uma tarefa demorada;
Na fase de análise de EMS, os dados são utilizados para responder as
questões de pesquisa colocadas. Muitas vezes, os dados são
organizados através de gráficos de representações de distribuições de
estudo por tipo de classificação, visto que gráficos são mecanismos de
comunicação eficazes na elaboração de relatórios, e é pouco provável a
utilização de técnicas de análises mais profundas como meta-análise ou
síntese narrativa, por exemplo.
2.4 Resumo
Este capítulo discutiu o embasamento teórico necessário para a realização da
pesquisa. Foram apresentados os conceitos de ES e a importância de pesquisa
empírica neste campo. Também foram abordados os métodos relevantes para a
condução de Experimento em ES incluindo o método selecionado para a condução
desta pesquisa: o método científico.
Além disso, foram descritos os tipos de estudos empíricos mais importantes na
comunidade de Engenharia de Software e mais citados na literatura, os quais foram
utilizados como princípio para a construção da abordagem apresentada no Capítulo 4.
Por fim, houve a apresentação da área de pesquisa ESBE com a apresentação
ferramenta Revisão Sistemática da Literatura, a qual foi utilizada para construir e
agregar conhecimento na área de ES com as evidências coletadas no veículos da
comunidade de Engenharia de Software empírica internacional e essencias para
fomentar os dados utilizados na abordagem.
3 Metodologia
Este capítulo apresenta a metodologia utilizada para desenvolver a pesquisa. A Seção
3.1 aborda a metodologia filosófica utilizada bem como as etapas de pesquisa
realizadas. Na Seção 3.2 é descrito o protocolo usado para orientar a revisão
sistemática da literatura realizada.
3.1 Classificação da Pesquisa
De acordo com o Easterbrook et al. [21], existem quatro posicionamentos filosóficos
acerca da classificação da pesquisa científica: positivista, construtivista, teoria crítica e
pragmático; e Easterbrook et al. [21] recomenda seguir um deles antes da definição do
método de pesquisa. Para essa pesquisa, foi seguido o posicionamento pragmático,
que defende que todo conhecimento é aproximado e incompleto, e seu valor depende
dos métodos pelos quais foi obtido, sendo, portanto, a verdade relativa ao observador.
Este posicionamento é o menos dogmático dos quatros, e valoriza o
conhecimento prático sobre o abstrato, e o uso de métodos de pesquisa mista, pois
vários métodos são utilizados para lançar luz sobre a questão em estudo, investigando
assim maneiras diferentes de se chegar a uma verdade.
Uma vez escolhido o posicionamento filosófico, foi possível definir o método de
pesquisa. Um método de pesquisa, de acordo com Marconi e Lakatos [31], é o conjunto
das atividades sistemáticas e racionais que, com maior segurança e economia, permite
alcançar um objetivo, traçando um caminho a ser seguido, detectando erros e
auxiliando as decisões do cientista.
De fato, segundo Gil [33], o desenvolvimento de uma pesquisa é possibilitado
por intermédio de um conjunto de procedimentos gerais que constituem o método.
Neste sentido, Soares [34] afirma que o método depende do objeto a ser estudado, do
problema que a pesquisa se propõe a resolver e de seu objetivo. Vale ressaltar que ao
método devem estar associados a inteligência, a competência, o estudo e a criatividade
dos pesquisadores, pois a utilização exclusiva do método não garante os resultados
desejados [35].
Sendo assim, esta pesquisa utiliza um método de abordagem indutivo, baseado
em dados de natureza qualitativa. O método de procedimento utilizado foi o de revisão
sistemática da literatura. O quadro metodológico de classificação da pesquisa é
apresentado na Tabela 3.1 e detalhado nas próximas seções.
Tabela 3.1 Classificação da Pesquisa
Quadro Metodológico
Método de Abordagem
Indutivo
Método de Procedimento
Revisão Sistemática da Literatura
Natureza dos dados
Qualitativa
Este trabalho optou pela abordagem indutiva, que é descrita por Marconi e
Lakatos [31] como:
“(...) um processo mental por intermédio do qual, partindo de dados particulares,
suficientemente constatados, infere-se uma verdade geral ou universal, não contida nas partes
examinadas.
”
Logo, o objetivo deste trabalho é levar a conclusões prováveis para uma
população a partir de amostras, ou seja, o conteúdo a que nos referimos é muito mais
amplo do que o das premissas que foram utilizadas como base para a construção da
abordagem apresentada no Capítulo 4.
O método de procedimento definido para a etapa mais concreta no processo de
investigação desta pesquisa foi o de Revisão Sistemática da Literatura (RSL) [30] como
forma de analisar e interpretar um conjunto de dados obtidos na literatura existente
sobre uma questão de investigação particular baseando-se em evidências. A escolha
da revisão ao invés do mapeamento foi baseada na natureza definida da questão de
pesquisa com o intuito de construir uma abordagem de apoio à tomada de decisão na
seleção de estudos empíricos em ES.
Em relação à abordagem qualitativa, Marconi e Lakatos [31] destacam a escolha
dessa abordagem por ser apropriada para obter entendimento mais profundo e
detalhado sobre as investigações, ambientes e comportamentos humanos, além de
ajudar a refinar as proposições para se ajustarem melhor aos dados por se tratar de
uma forma adequada de entender a natureza de um fenômeno e geralmente tem, como
cenário, situações complexas e particulares [36].
A escolha do tipo de pesquisa qualitativa foi feita por melhor se adequar ao
problema desta pesquisa. Porém, é uma abordagem que necessita de um maior
esforço do pesquisador visto que os resultados qualitativos são, geralmente, mais
nebulosos que os quantitativos em termos de extrair e analisar as informações,
especialmente em comunidades mais técnicas como na ES [24].
Figura 3.1 Etapas da Pesquisa.
3.2 Ciclo da Pesquisa
As etapas que constituem o ciclo da pesquisa estão ilustradas na Figura 3.1 e serão
detalhadas a seguir:
Revisão da literatura (1). Primeiramente, foi realizada uma pesquisa
tradicional da literatura em relação à pesquisa empírica em ES, com a finalidade de
obter o embasamento teórico necessário sobre o assunto. Durante esta etapa, foram
definidos o problema de pesquisa, os objetivos e a questão de pesquisa a ser
investigada.
Planejamento (2). Com a base teórica adquirida na etapa revisão da
literatura, foi iniciada a etapa de planejamento, tomando como base a questão de
pesquisa a ser investigada. Posteriormente, o protocolo da RSL foi planejado e
elaborado.
Coleta de dados (3). Na etapa de coleta de dados foi posto em prática o
protocolo elaborado na etapa de planejamento, com a finalidade de coletar os dados
necessários para a realização da pesquisa.
Análise (4). Com os dados coletados, os mesmos foram analisados e
interpretados objetivando responder a questão de pesquisa.
Consolidação (5). A última etapa consistiu na consolidação dos dados, na
qual foram apresentadas as contribuições do trabalho para a pesquisa e a prática, as
limitações existentes e o direcionamento para trabalhos futuros, finalizando com a
produção do relatório final.
3.3 Protocolo da Revisão Sistemática da Literatura
Nesta seção são apresentados, de forma breve, alguns pontos do protocolo de Revisão
Sistemática da Literatura que conduziram esta pesquisa no campo de Engenharia de
Software empírica. O protocolo de forma integral se encontra disponível no Apêndice A.
Para guiar a construção desse protocolo foram usados instruções e conselhos
apresentados no guideline definido por Kitchenham et al [30].
Esta pesquisa conduziu uma revisão com a intenção de analisar os trabalhos
de todas as conferências relevantes de Engenharia de Software empírica. A finalidade
da revisão foi responder a questão de pesquisa particular além de gerar uma nova
abordagem em relação ao apoio à tomada de decisão na seleção do tipo de estudo
empírico e prover um arcabouço adequado para posicionar novas pesquisas.
Segundo Kitchenham et al. [1] revisões e mapeamentos sistemáticos tem em
comum:
Identificação da necessidade de executar a revisão sistemática;
Elaboração da questão de pesquisa;
Abrangente e exaustiva busca por estudos primários;
Avaliação de qualidade de estudos incluídos;
Identificação dos dados necessários para responder a pergunta de
pesquisa;
Extração dos dados;
Resumo e síntese dos resultados dos estudos (meta-análise);
Escrita do relatório.
3.3.1 Escopo e Questões de Pesquisa
A fim de delinear o escopo da pesquisa e os elementos que vieram a fazer parte do
escopo da pesquisa, foi utilizado uma estrutura citada por Kitchenham et al. [30], que,
baseada no trabalho de Petticrew et al. [32], recomenda a fazer uso da estrutura de
questão de pesquisa PICOC. De acordo com a PICOC, aplicada ao estudo deste
trabalho:
População (Population): Pesquisas que conduzem estudos empíricos em
Engenharia de Sofwtare;
Intervenção (Intervention): Uso de tipo de estudo empírico;
Comparação (Comparison): Não se aplica;
Resultado (Outcomes): Um documento que mapeia os tipos de estudos
empíricos para guiar a seleção dos mesmos em engenharia de software.
Contexto (Context): Indústria e Academia.
O item Comparação (Comparison) não foi utilizado nesta pesquisa, visto que
o estudo atual não realiza comparações entre seleções de tipos de estudos empíricos.
O item Contexto (Context) é utilizado para definir o contexto onde ocorre a
comparação; entretanto, para o estudo realizado neste trabalho, foi considerado o
contexto onde ocorreu a seleção do tipo de estudo empírico.
Após a definição da estrutura PICOC uma única pergunta com foco
direcionado e que guia o estudo empírico foi definida:
Questão. Como os pesquisadores selecionam um tipo de estudo empírico
para um projeto de pesquisa?
3.3.2 Processo de Busca
A fim de limitar o campo da pesquisa apenas para publicações de pesquisadores
especialistas na comunidade de Engenharia de Software empírica, o processo de
busca para este estudo foi baseado em uma busca manual nas seguintes fontes:
Conferências:
o Evaluation and Assessment in Software Engineering
– EASE
o Empirical Software Engineering and Measurement
– ESEM
Jornal:
o Empirical Software Engineering Journal
– ESEJ
As conferências e o jornal selecionados são os veículos da comunidade de
Engenharia de Software empírica internacional. Todos as edições dos mesmos foram
considerados neste estudo, até o ano de 2012. Considerando o esforço empreendido
para avaliar manualmente todos os artigos de todas as edições e de modo a facilitar
atualizações deste estudo, optamos por não incluir o ano de 2013 parcialmente, uma
vez que o estudo foi realizado durante o ano de 2013.
3.3.3 Critérios de Exclusão
Esta etapa do processo é bastante importante na seleção das publicações que farão
parte da extração dos dados e ao mesmo tempo é bem delicada, pois o pesquisador
deve ter muito cuidado ao analisar as publicações para não deixar de selecionar uma
publicação relevante ou selecionar uma publicação erroneamente. Nesta pesquisa, os
critérios de exclusão adotados no estudo foram:
Estudos incompletos como resumos ou resumos expandidos;
Estudos duplicados, no caso de haver dois ou mais estudos semelhantes,
o menos completo será excluído;
Estudos repetidos, ou seja, no caso de haver o mesmo estudo disponível
em mais de uma fonte de pesquisa;
Estudos irrelevantes para a pesquisa, ou seja, estudos que não aplicam
algum tipo de estudo empírico definido na Seção 2.2.2.
3.3.4 Extração dos Dados
Nesta etapa do processo, os dados foram extraídos dos estudos selecionados a fim de
responder a questão de pesquisa deste estudo de forma a construir uma abordagem de
apoio à tomada de decisão de seleção de tipo de estudo empírico na ES.
Inicialmente os dados foram organizados numa planilha eletrônica com
algumas informações básicas dos estudos como identicação única para cada estudo, o
título, o ano, o veículo da comunidade de ES empírica e o tipo de estudo empírico (os
quais foram citados na Seção 2.2.2 do capítulo anterior).
O tipo de estudo empírico que foi utilizado como princípio para a criação da
abordagem foi comparado com os dados de outros pesquisadores do mesmo grupo de
pesquisa de ES empírica da Universidade Federal de Pernambuco, pois todo o grupo
extraiu informações dos mesmos veículos da comunidade de ES empírica internacional
com planihas eletrônicas distintas, mas que possuiam as mesmas informações básicas.
Como as informações básicas possuiam um identificador único do estudo
para todos do grupo, compartilhávamos as informações coletadas de forma a verificar o
tipo de estudo empírico identificado. Se o estudo não coincidisse, uma reunião era
realizada entre dois ou mais pesquisadores para discutir o porquê da diferença até
chegarmos num senso comum.
Além das informações básicas, foi necessário extrair também, sem
interferências de outros pesquisadores, justificativas em relação a seleção do tipo de
estudo empírico com dados suficientes para responder a questão de pesquisa citada
na Seção 3.3.1.
3.3.5 Síntese dos Dados
Nesta etapa do processo, os dados foram organizados de forma gerar a contribuição
deste trabalho. O procedimento para a síntese dos dados se inicia com a análise das
justificativas retiradas dos estudos selecionados (dados qualitativos) de forma a
identificar a área que o tipo de estudo foi aplicado e com que finalidade ele foi aplicado
como mostra nos formulários detalhados no Apêndice A. Os códigos devem seguir um
padrão de forma a facilitar a análise dos dados. Os códigos utilizados neste estudo
seguem a seguinte formatação:
IDA;
IDF.
Onde:
IDC = IDentificador do Campo de pesquisa que o tipo de estudo empírico foi
aplicado;
Além das identificações acima, as evidências dos dados dos estudos
selecionados foram organizadas com o auxílio de planilhas eletrônicas, e agrupadas de
acordo com o tipo de estudo empírico selecionado, de forma a facilitar a visão do
pesquisador e a análise dos dados para a construção da abordagem proposta neste
trabalho, que será descrita no Capítulo 4.
3.4 Resumo
Este capítulo discutiu a estrutura da metodologia que foi utilizada para conduzir esta
pesquisa e as razões do uso dos procedimentos e métodos de investigação. Foi
abordada também uma breve descrição do protocolo de pesquisa da RSL proposto
para esta pesquisa. Sendo assim, espera-se, dessa forma, atingir o rigor científico
necessário para garantir a validade dos resultados deste estudo, que serão abordados
no próximo capítulo.
4 Abordagem de apoio à seleção de
tipo estudo empírico
Este capítulo apresenta a abordagem de apoio à seleção de tipo de estudo empírico
em Engenharia de Software empírica. A Seção 4.1 apresenta informações gerais sobre
os dados utilizados no estudo. Na Seção 4.2, as evidências foram sintetizadas de
forma a apresentar a abordagem construída e ajudar os novos pesquisadores da área
a selecionar um tipo de estudo empírico.
4.1 Extração e análise dos dados
A análise e extração dos dados foi realizada de acordo com o protocolo de pesquisa
descrito por completo no Apêndice A e resumidamente no Capítulo 3. Foram coletados
858 estudos oriundos dos veículos mais importantes da comunidade empírica
internacional de ES, sendo 187 estudos do Evaluation and Assessment in Software
Engineering - EASE, 319 estudos do Empirical Software Engineering Journal - ESEJ e
352 estudos do Empirical Software Engineering and Measurement - ESEM.
Figura 4.1 Distribuição dos estudos selecionados por fonte.
Desses estudos, 304 foram excluídos de acordo com os critérios apresentados
na Seção 3.3.3 e após a exclusão, os estudos foram reduzidos para 103 estudos do
EASE, 186 estudos do ESEJ e 265 estudos do ESEM, como mostrado na Figura 4.1
Distribuição dos estudos selecionados por fonte. e apresentados no Apêndice B.
Todos os estudos selecionados estão distribuídos entre 1996 e 2012, sendo a
maioria concentrado na última década, o que evidencia que as pesquisas visando
viabilizar seleção e aplicação de tipos de estudos empíricos em ES têm aumentado na
última década. A Figura 4.2 detalha esta distribuição ao longo dos anos.
Figura 4.2 Distribuição de seleção de tipos de estudos empíricos ao longo dos anos.
4.2 Construção da abordagem
Com o intuito de responder a questão de pesquisa descrita na Seção 3.3.1, os estudos
selecionados, apresentados no Apêndice B, foram analisados para identificar e
entender a seleção do tipo de estudo empírico realizada pelos pesquisadores. Assim,
os estudos foram divididos em cinco grupos, de acordo com o tipo de estudo empírico
identificado, resultando em 276 estudos do tipo experimento, 213 estudos do tipo
estudo de caso, 68 estudos do tipo survey, 8 estudos do tipo etnografia e 2 estudos do
tipo pesquisa ação. Vale ressaltar que um estudo pode aparecer em mais de um grupo,
pois pode ser que um estudo aborde, por exemplo, um estudo de caso e um survey
simultaneamente.
Para cada grupo de tipo de estudo empírico, as evidências, detalhadas no
Apêndice C, foram coletadas e analisadas para identificar informações que ajudassem
no refinamento desses grandes grupos e guiassem a construção da abordagem. Ao
analisar cada evidência, foi possível perceber algo em comum entre elas, cada
0 5 10 15 20 25 30 35 40 19 96 19 97 19 98 19 99 20 00 20 01 20 02 20 03 20 04 20 05 20 06 20 07 20 08 20 09 20 10 20 11 20 12 EASE ESEM ESEJ
pesquisador tinha uma finalidade (avaliar, analisar, comparar, investigar ou reportar
alguma informação) em relação ao campo de pesquisa da área de ES em questão.
Assim, foi possível refinar os grupos e reagrupar as informações em relação a
finalidade e ao campo de pesquisa da área de ES como Estimativa de Software,
Arquitetura de Software, Casos de Uso, Documentação, Métrica, entre tantos outros
que serão detalhados na próxima Seção. Esta reorganização das informações foi de
grande valia para guiar a construção da abordagem que será apresentada na próxima
seção.
4.3 A abordagem
Esta seção apresenta a abordagem que foi construída a partir das evidências coletadas
de forma a responder a questão de pesquisa. Cada seção a seguir representa uma
área do campo de pesquisa da área de Engenharia de Software que se destacou nos
estudos selecionados em relação as evidências coletadas e analisadas e uma breve
explicação. As áreas que tiveram abordagens semelhantes foram agrupadas em uma
única seção.
4.3.1 Estimativa de Software
Neste campo de pesquisa, pudemos observar que sempre que o objetivo da pesquisa
era, em poucas palavras, analisar a estimativa de software a partir de opiniões de
especialistas bem como analisar a influência dos desenvolvedores de software, o tipo
de estudo empírico selecionado pelos pesquisadores foi o experimento. Este tipo de
estudo também foi selecionado para avaliar os fatores desafiantes na realização da
estimativa como informação limitada ou até mesmo investigar melhorias em estimativa
de software de forma geral sem considerar contexto organizacional.
Por exemplo, na evidência coletada no estudo PS671[37] e detalhada no
Apêndice C, a finalidade dos pesquisadores era analisar a estimativa de software
baseado em um grupo de discussão de especialistas. Para esta análise, eles
realizaram um experimento.
Por outro lado, quando era considerado o contexto organizacional na pesquisa,
os pesquisadores selecionaram estudo de caso como tipo de estudo empírico, uma
vez que investigaram o uso de estimativa de software em diversas organizações com
intuito de descobrir as causas dos erros mais comuns praticados pelos gestores de
projeto de software e, assim, coletar informações suficiente para ter um posicionamento
científico sobre tais erros.
Por exemplo, na evidência coletada no estudo PS261[38] e detalhada no
Apêndice C, a finalidade dos pesquisadores era investigar estimativa de esforço de
software em 35 empresas diferentes e ter um posicionamento sobre o uso de
estimativa baseada em casos de uso. Para esta investigação, eles realizaram um
estudo de caso.
A partir destas informações, o fluxograma (Figura 4.3) foi gerado com os estudos
relacionados citados na Tabela 4.1.
Tabela 4.1 Estudos relacionados à estimativa de software.
IDF
Experimento
Estudo de caso
Analisar PS671, PS781
Avaliar PS01, PS28, PS113, PS190, PS246, PS358
Investigar PS112, PS147, PS213, PS648 PS136, PS261, PS389, PS442
4.3.2 Arquitetura de Software
Neste campo de pesquisa, pudemos observar que sempre que o objetivo da pesquisa
era analisar os impactos causados pelas mudanças na arquitetura de software e em
seus diagramas (incluindo até os erros de modelagem) ou avaliar a eficiência da
arquitetura, dos cenários (como os cenários top-down e bottom-up) envolvidos e dos
padrões utilizados, o tipo de estudo empírico selecionado pelos pesquisadores foi o
experimento. Os pesquisadores selecionaram este tipo de estudo também para
investigar as influências das decisões de projeto, reportar as regras e as estratégias
utilizadas para a elaboração e entendimento da arquitetura de software.
Por exemplo, na evidência coletada no estudo PS351 [39] e detalhada no
Apêndice C, a finalidade dos pesquisadores era analisar os erros de interpretação de
diagramas de arquitetura de software a fim de ajudar os engenheiros a evitar tais erros
no futuro. Para esta análise, eles realizaram um experimento.
Figura 4.3 Fluxograma de estimativa de software.
Por outro lado quando o objetivo da pesquisa era analisar o desempenho e os
princípios de segurança da arquitetura de software em indústrias, avaliar a proposta de
uma arquitetura e as mudanças relacionadas durante o desenvolvimento de software, o
tipo de estudo empírico selecionado pelos pesquisadores foi o estudo de caso. Este
tipo de estudo empírico foi selecionado também para avaliar a evolução da arquitetura
e as características dos defeitos de componentes em grandes sistemas legados.
Por exemplo, na evidência coletada no estudo PS818 [40] e detalhada no
Apêndice C, a finalidade dos pesquisadores era avaliar as características dos defeitos
de múltiplos componentes em arquitetura de software em grandes sistemas legados da
indústria. Para esta avaliação, eles realizaram um estudo de caso.
Porém, quando o objetivo da pesquisa era investigar os padrões de arquitetura
de software, o tipo de estudo selecionado pelos pesquisadores foi o survey. Por
exemplo, na evidência coletada no estudo PS146 [41] e detalhada no Apêndice C, a
finalidade dos pesquisadores era investigar os padrões de arquitetura de software livre.
Para esta investigação, eles realizaram um survey.
A partir destas informações, o fluxograma (Figura 4.4) foi gerado com os estudos
relacionados citados na Tabela 4.2.
Tabela 4.2 Estudos relacionados à arquitetura de software.
IDF
Experimento
Estudo de caso
Survey
Analisar PS351, PS357, PS417 PS91, PS438 Avaliar PS140, PS209, PS325, PS328, PS511, PS584, PS623, PS745, PS822 PS250, PS396, PS651, PS816, PS818 Investigar PS120, PS382, PS498 PS146, PS538 Reportar PS741, PS788
Figura 4.4 Fluxograma de arquitetura de software.
4.3.3 Casos de Uso
Neste campo de pesquisa, pudemos observar que sempre que o objetivo da pesquisa
era avaliar ou investigar os casos de uso para especificações de projeto de software,
comparar a utilidade dos casos de uso ou apenas replicar um experimento, o tipo de
estudo empírico selecionado pelos pesquisadores foi o experimento.
Por exemplo, na evidência coletada no estudo PS685 [42] e detalhada no
Apêndice C, a finalidade dos pesquisadores era investigar regras de casos de uso na
construção de diagramas de classe em projeto orientado a objetos. Para esta
investigação, eles realizaram um experimento.
Por outro lado, quando o objetivo da pesquisa era analisar histórias de casos de
uso em busca dos erros dos sistemas industriais, o tipo de estudo empírico selecionado
pelos pesquisadores foi o estudo de caso. Por exemplo, na evidência coletada no
estudo PS239 [43] e detalhada no Apêndice C, por exemplo, a finalidade dos
pesquisadores era analisar histórias de casos de uso a fim de encontrar as falhas
apresentadas pelo sistema industrial. Para esta análise, eles realizaram um estudo de
caso.
De acordo com estas informações, o fluxograma (Figura 4.5) foi gerado com os
estudos relacionados citados na Tabela 4.3.
Tabela 4.3 Estudos relacionados aos casos de uso.
IDF
Experimento
Estudo de caso
Analisar PS239
Avaliar PS218, S764,PS31, PS63, PS618
Investigar PS685
Comparar PS54
4.3.4 Desenvolvimento de Software
Neste campo de pesquisa, pudemos observar que sempre que o objetivo da pesquisa
era investigar ou analisar falhas em desenvolvimento de software, comparar o tempo
de desenvolvimento por profissionais ou por estudantes em linguagens de
programação orientado a objetos ou a aspectos, o tipo de estudo empírico selecionado
pelos pesquisadores foi o experimento. Por exemplo, na evidência coletada no estudo
PS621 [44] e detalhada no Apêndice C, a finalidade dos pesquisadores era comparar
tempo de desenvolvimento de software por estudantes e por profissionais. Para esta
comparação, eles realizaram um experimento.
Por outro lado, quando a avaliação ou investigação era realizada no contexto
industrial ou em nível organizacional para identificar os benefícios de desenvolvimento
de software para vários tipos de aplicações com suas métricas associadas como custo
e qualidade, por exemplo, o tipo de estudo selecionado pelos pesquisadores foi o
estudo de caso.
Figura 4.5 Fluxograma dos casos de uso.
Por exemplo, na evidência coletada no estudo PS287 [45] e detalhada no
Apêndice C, a finalidade dos pesquisadores era analisar o benefício mútuo coexistente
entre desenvolvimento de software ágil e o aprendizado em nível organizacional. Para
esta análise, eles realizaram um estudo de caso.
Quando o objetivo da pesquisa era identificar melhorias, vulnerabilidade e novas
estratégias que poderiam ser realizadas durante um desenvolvimento além de
classificar e comparar os riscos associados, o tipo de estudo empírico selecionado
pelos pesquisadores foi o survey.
Por exemplo, na evidência coletada no estudo PS463 [46] e detalhada no
Apêndice C, a finalidade dos pesquisadores era investigar e identificar melhorias que
podem ser realizadas em desenvolvimento de softwares científicos. Para esta
investigação, eles realizaram um survey.
Por fim, a etnografia foi selecionada pelos pesquisadores quando o objetivo da
pesquisa era reportar um corpo de conhecimento sobre as atividades colaborativas
envolvidas em um desenvolvimento de software, investigar implicações de copiar e
colar código durante o desenvolvimento além de observar e analisar o desempenho
das equipes.
Por exemplo, na evidência coletada no estudo PS226 [47] e detalhada no
Apêndice C, a finalidade dos pesquisadores era observar e analisar desempenho de
equipes de estudantes que trabalham no desenvolvimento de software ao longo do ano
2003 - 2004 para uma indústria. Para esta observação e análise do comportamento
humano, eles realizaram uma etnografia.
De acordo com estas informações, o fluxograma (Figura 4.6) foi gerado com os
estudos relacionados citados na Tabela 4.4.
Tabela 4.4 Estudos relacionados ao desenvolvimento de software.
IDF
Experimento
Estudo de caso
Survey
Etnografia
Analisar PS287, PS40, PS779, PS831 PS318 Avaliar PS496, PS667, PS14, PS808, PS839, PS365 PS227 Comparar PS429, PS621PS659 PS74, Investigar PS475, PS737 PS65, PS525 PS15, PS181, PS463, PS789 PS233, PS262, PS310 Reportar PS208
Figura 4.6 Fluxograma de desenvolvimento de software.
4.3.5 Documentação
Neste campo de pesquisa, pudemos observar que sempre que o objetivo da pesquisa
era, em poucas palavras, investigar se os documentos de projetos orientados a objetos
são mais fáceis de entender e modificar do que os documentos de projetos
estruturados, o tipo de estudo empírico selecionado pelos pesquisadores foi o
experimento. Este tipo de estudo também foi selecionado para entender qual é a
abordagem de documentação atual mais fácil de utilizar em projetos de software.
Por exemplo, na evidência coletada no estudo PS259 [48] e detalhada no
Apêndice C, a finalidade dos pesquisadores era comparar duas abordagens de
documentação de software, de modo a entender qual é a mais fácil de usar e quais são
as limitações de ambas. Para esta comparação, eles realizaram um experimento.
Por outro lado, quando o objetivo da pesquisa era analisar a visão dos
engenheiros documentando os projetos de software como acontece na prática, o tipo
de estudo empírico selecionado pelos pesquisadores foi o estudo de caso. Por
exemplo, na evidência coletada no estudo PS694 [49] e detalhada no Apêndice C, a
finalidade dos pesquisadores era avaliar os engenheiros de software desenvolvendo
um software para um grupo de cientistas com metodologia de documentação
tradicional. Para esta avaliação, eles realizaram um estudo de caso.
Por fim, quando o objetivo da pesquisa era analisar a prática de documentação
industrial durante uma manutenção corretiva o tipo de estudo empírico selecionado
pelos pesquisadores foi o survey. Por exemplo, na evidência coletada no estudo
PS678 [50] e detalhada no Apêndice C, a finalidade dos pesquisadores era analisar a
prática de documentação industrial em manutenção corretiva na Suécia. Para esta
análise, eles realizaram um survey.
De acordo com estas informações, o fluxograma (Figura 4.7) foi gerado com os
estudos relacionados citados na Tabela 4.5.
Tabela 4.5 Estudos relacionados à documentação.
IDF
Experimento
Estudo de
caso
Survey
Analisar PS678
Avaliar PS556 PS694