Upload
dotuyen
View
224
Download
0
Embed Size (px)
Citation preview
Pós-Graduação em Ciência da Computação
Mapeamento Sistemático sobre Replicação de Estudos Empíricos em Engenharia de Software
Por
Marcos Suassuna
Dissertação de Mestrado
Universidade Federal de Pernambuco [email protected]
www.cin.ufpe.br/~posgraduacao
RECIFE, JUNHO/2011
Universidade Federal de Pernambuco
CENTRO DE INFORMÁTICA
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Marcos Suassuna
Mapeamento Sistemático sobre Replicação de Estudos Empíricos em Engenharia de Software
ORIENTADOR: PROF. FÁBIO QUEDA BUENO DA SILVA
RECIFE, JUNHO/2011
Este trabalho foi apresentado à 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.
Catalogação na fonte Bibliotecária Jane Souto Maior, CRB4-571 Suassuna, Marcos Mapeamento sistemático sobre replicação de estudos empíricos em engenharia de software / Marcos Suassuna - Recife: O Autor, 2011. xii, 117 folhas : il., fig., tab. Orientador: Fabio Queda Bueno da Silva. Dissertação (mestrado) - Universidade Federal de Pernambuco. CIn, Ciência da Computação, 2011. Inclui bibliografia e apêndice. 1. Engenharia de software. 2. Engenharia de software empírica. 3. Replicação de estudos. I. Silva, Fabio Queda Bueno da (orientador). II. Título. 005.1 CDD (22. ed.) MEI2011 – 084
Dedico este trabalho à Cynthia, minha
esposa, por tudo que me proporcionou
para que eu chegasse até aqui.
v
AGRADECIMENTOS
A DEUS, por iluminar toda a minha vida para que seja consistente com seus
mandamentos, sempre me oferecendo oportunidade para desenvolver a sabedoria, a
capacidade de entendimento e conselho, a ciência, a piedade e, consequentemente, o respeito
a sua obra.
Aos meus pais muito queridos, que sempre priorizaram e investiram o que tinham,
com muito amor, perseverança e diálogo, na formação e educação dos seus filhos;
A Cynthia, minha esposa, pelo respeito e amor sempre presentes no nosso
relacionamento, pelo carinho, apoio, críticas e incentivos dados, em horas e horas de
conversas, sobre cada passo desta pesquisa;
Aos meus filhos Humberto, Lorena e Carmem, pela paciência, compreensão e
respeito à minha ausência da vida familiar durante o período de desenvolvimento deste
trabalho;
A Fabio, grande parceiro de trabalho, pelo incentivo ao meu retorno à academia e
às pesquisas, pelos seus ensinamentos, disponibilidade, orientações e pelo respeito, atenção e
paciência;
Ao Grupo HASE, em especial A. César A. França, João Paulo N. de Oliveira,
Leonardo F. M. de Oliveira, Rodrigo. F. Lopes e Tatiana B. Gouveia, pela dedicação,
companheirismo e contribuições valiosas nos trabalhos desta pesquisa;
A Emerson, grande companheiro de trabalho, pelos constantes incentivos à minha
especialização com o desenvolvimento desta pesquisa;
A Dona Zezita, minha primeira professora, que, com amor e dedicação, me
ensinou a estudar, e que, em seu nome, estendo o agradecimento aos professores que me
ensinaram e me fizeram chegar até aqui;
A todos, muito obrigado!
vi
"Se muito vale o já feito, mais vale o que será!"
Milton Nascimento
vii
Resumo Estruturado
Contexto – Muitos autores consideram replicação de estudos empíricos como uma atividade
essencial para a construção do conhecimento em qualquer ciência empírica. Em engenharia de
software, os primeiros estudos de replicação datam de meados de 1990, portanto são
relativamente recentes. Embora o entendimento sobre replicação em engenharia de software
tenha evoluído ao longo dos anos, os estudos e o debate científico sobre replicação ainda se
encontram em um estágio inicial. Os trabalhos publicados ainda não fazem uso claro de
termos e conceitos associados à replicação e nenhuma base abrangente de conhecimentos tem
sido publicada para fornecer material sobre replicação.
Objetivo - Analisar as pesquisas relacionadas à replicação de estudos empíricos em
engenharia de software e trabalhos conceituais e teóricos sobre replicações. Nesta pesquisa
são apresentadas as conclusões desta análise, concentrando-se nas informações dos estudos
sobre replicações e estudos originais relacionados.
Método - Aplicou-se a metodologia de revisão sistemática para realizar um mapeamento
sistemático sobre o estado atual dos trabalhos de replicação de estudos empíricos realizados
em engenharia de software.
Resultados - Foram analisados 16.126 artigos, a partir dos quais foram extraídos 93 artigos,
com 125 replicações e 76 estudos originais, realizadas entre 1994 e 2010. Mais de 60% das
replicações foram realizadas nos últimos seis anos e 71% dos estudos foram replicações
internas. Os tópicos de construção de software, testes e manutenção concentram em torno de
50% dos trabalhos de replicação, enquanto os tópicos de projeto de software, gerenciamento
de configuração, ferramentas de software e métodos são os temas com menos replicações.
Conclusões - O número de replicações cresceu nos últimos anos, mas o número absoluto de
replicações ainda é muito pequeno, em particular considerando a amplitude dos temas
relacionados com engenharia de software. Incentivos para executar replicações externas e
melhorar os padrões dos relatórios de estudos empíricos e suas replicações ainda são
necessários.
PALAVRAS-CHAVE:
Replicações, Experimentos, Estudos Empíricos, Mapeamento Sistemático, Revisão da
Literatura, Engenharia de Software.
viii
ABSTRACT
Context - Many authors consider replication of empirical studies as essential activity for the
construction of knowledge in any empirical science. In software engineering, the first articles
reporting replications of empirical studies date from the mid 1990s, so they are relatively
recent. Although understanding replication of software engineering has evolved over the
years, studies and scientific debate on replication are still at an initial stage. The published
works are not yet clear about the use of terms and concepts associated with replication and no
comprehensive body of knowledge has been published to provide material about replication.
Objective - To review the research related to the replication of empirical studies in software
engineering in terms of replications of empirical studies and conceptual or theoretical work
about replications.
Method - Applied the systematic review method to perform a mapping study about the
current state of the replication work of empirical studies performed in software engineering
research.
Results - We analyzed 16.126 articles, from which we extracted 93 articles reporting 125
replications performed between 1994 and 2010, of 76 original studies. Over 60% of the
replications were performed in the last six years and 71% percent of the studies were internal
replications. The topics of software construction, testing, and maintenance concentrate nearly
50% of the replication work, while software design, configuration management and software
tools and methods are the topics with least replications.
Conclusions - The number of replications grew in the last few years, but the absolute number
of replications is still very small, in particular considering the breadth of topics in software
engineering. Incentive to perform external replications and better standards to report empirical
studies and their replications are still needed.
KEY WORDS:
Replications, Experiments, Empirical Studies, Mapping Study, Literature Review, Software
Engineering.
ix
LISTA DE FIGURAS
Figura 1. String de Busca ................................................................................................... 44
Figura 2. Resultados da Pesquisa e Processos de Seleção ................................................. 47
Figura 3. Distribuição Temporal das Replicações ............................................................ 53
Figura 4. Distribuição Temporal das Replicações Internas e Externas ........................... 53
Figura 5. Evolução das Replicações por Capítulos do SWEBOK ..................................... 56
Figura 6 - Distribuição Geográfica das Replicações Internas e Externas ........................ 65
Figura 7 - Métodos de Pesquisa Utilizados em Replicações Externas .............................. 66
Figura 8 - Métodos de Pesquisa Utilizados em Replicações Internas ............................... 67
Figura 9 - Métodos de Pesquisa Utilizados nos Temas da Engenharia de Software
(Capítulos do SWEBOK) .................................................................................................... 68
Figura 10 - Evolução da Qualidade das Replicações ........................................................ 81
Figura 11 - Evolução da Qualidade das Replicações Internas e Externas ....................... 81
Figura 12 - Evolução da Qualidade das Replicações Single e Multiple Reports ............... 82
Figura 13 - Evolução da Qualidade das Replicações Internas Single e Multiple Reports 83
x
LISTA DE TABELAS
Tabela I. Tipos e Exemplos de Perguntas de Pesquisa ..................................................... 24
Tabela II. Síntese dos Estudos Associados ........................................................................ 34
Tabela III. Fontes Manuais ............................................................................................... 43
Tabela IV. Fontes Automáticas ......................................................................................... 43
Tabela V. Desenvolvimento da Pesquisa Automática ....................................................... 44
Tabela VI. Desenvolvimento da Pesquisa Manual ............................................................ 45
Tabela VII. Desenvolvimento da Pesquisa Manual .......................................................... 46
Tabela VIII. Extração de Dados dos Estudos de Replicações e Originais ....................... 47
Tabela IX. Extração de Dados Somente dos Estudos de Replicação ................................ 48
Tabela X. Replicações por Ano.......................................................................................... 54
Tabela XI. Cobertura dos Capítulos e Seções do SWEBOK ............................................. 55
Tabela XII. Autores Envolvidos com Replicações Externas ............................................ 58
Tabela XIII - Autores Envolvidos com Replicações Internas........................................... 59
Tabela XIV - Autores que mais Desenvolveram Replicações por SWEBOK ................... 61
Tabela XV - Organizações Envolvidas com Replicações Externas .................................. 63
Tabela XVI - Organizações Envolvidas com Replicações Internas.................................. 64
Tabela XVII - Replicações por Método de Pesquisa ......................................................... 67
Tabela XVIII - Tipos das Unidades de Análises das Replicações..................................... 68
Tabela XIX - Conjuntos de Replicações ............................................................................ 69
Tabela XX - Síntese dos Conjuntos de Replicações .......................................................... 79
Tabela XXI - Síntese das Médias dos Índices de Qualidade das Replicações .................. 83
Tabela XXII - Principais Lições Aprendidas .................................................................... 85
xi
SUMÁRIO
1. INTRODUÇÃO .......................................................................................... 13
1.1. Motivação para o Estudo ........................................................................................... 14
1.2. Objetivos da Pesquisa ................................................................................................ 15
1.3. Resultados do Trabalho ............................................................................................. 16
1.4. Estrutura do Trabalho ................................................................................................ 16
2. REVISÃO DA LITERATURA E TRABALHOS ASSOCIADOS ........... 18
2.1. Definições sobre Replicação ...................................................................................... 18
2.2. Tipos e Classificações de Replicação ......................................................................... 20
2.3. Classificação de Estudos Empíricos em Engenharia de Software ............................... 21
2.3.1. SWEBOK ............................................................................................................ 21
2.3.2. Tipos de Estudos Empíricos ................................................................................ 22
2.4. Mapeamento Sistemático ........................................................................................... 24
2.5. Trabalhos Associados ................................................................................................ 26
2.5.1. A Survey of Controlled Experiments in Software Engineering (SJØBERG, et al.,
2005) ............................................................................................................................ 26
2.5.2. Replication of controlled experiments in empirical software engineering – a survey
(ALMQVIST, J. P. F., 2006) ........................................................................................ 30
2.5.3. Towards Reporting Guidelines for Experimental Replications: A Proposal.
(CARVER, J., 2010) .................................................................................................... 33
2.6. Síntese dos Trabalhos Associados.............................................................................. 34
3. METODOLOGIA ...................................................................................... 40
3.1. Questões de Pesquisa. ................................................................................................ 41
3.2. Equipe Envolvida ...................................................................................................... 41
3.3. Procedimentos de Decisão sobre Conflitos na Seleção, Extração e Qualidade dos
Estudos ............................................................................................................................ 42
3.4. Fontes de Dados e Estratégia de Busca ...................................................................... 42
3.5. Critérios de Inclusão e Exclusão ................................................................................ 45
3.6. Seleção dos Estudos .................................................................................................. 46
3.7. Extração de Dados ..................................................................................................... 47
3.8. Avaliação da Qualidade ............................................................................................. 48
xii
3.9. Síntese e Apresentação dos Resultados ...................................................................... 50
4. ANÁLISE E DISCUSSÃO DOS RESULTADOS ..................................... 52
4.1. Análise dos Resultados .............................................................................................. 52
4.2. Discussão .................................................................................................................. 86
4.2.1 Implicações da Pesquisa ...................................................................................... 87
4.2.2. As limitações desta revisão ................................................................................. 89
5. CONCLUSÕES .......................................................................................... 91
5.1. Síntese de Resultados ................................................................................................ 91
5.2. Trabalhos Futuros ...................................................................................................... 91
5.3. Considerações Finais ................................................................................................. 92
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................... 94
APÊNDICE A - ESTUDOS PRIMÁRIOS .................................................... 97
Papers de Replicação - REP ............................................................................................. 97
Papers de Estudos Originais - ORI ................................................................................. 103
Papers sobre Replicação - ABO ..................................................................................... 105
APÊNDICE B – SWEBOK ........................................................................... 109
13
1. INTRODUÇÃO
Replicações de estudos empíricos são consideradas como uma atividade essencial na
construção do conhecimento em qualquer ciência empírica. Como apontado por Karl Popper,
"Nós não levamos as nossas próprias observações muito a sério, ou aceitamos como
observações científicas, até que nós tenhamos as repetido e as testado" (POPPER, K., 1959).
Nas ciências sociais, La Sorte (1972) registrou que “as razões para o desenvolvimento
de replicação é que irão determinar as relações entre a replicação, o estudo original e as
conclusões que podem ser extraídas dos dois conjuntos de estudos”. Lindsay e Ehrenberg
(1993) argumentam que a replicação "é necessária, não apenas para validar nossas conclusões,
mas importante para estabelecer o número crescente de condições, radicalmente diferentes,
sobre as quais as conclusões se baseiam e as exceções são previsíveis". Para Schmitd (2009),
"a replicação de um experimento para demonstrar que os mesmos resultados podem ser
obtidos em qualquer outro lugar, por qualquer outro pesquisador. [...] é a prova de que a
experiência reflete o conhecimento que pode ser separado das circunstâncias específicas (tais
como tempo, lugar, ou pessoas) em que foi adquirido. ".
Em engenharia de software, os primeiros artigos que relatam replicação datam de
meados de 1990 ([REP056], [REP073], [REP053], [REP085] e [REP089] no Apêndice A).
Por volta do mesmo período, Brooks et al. (1995), reuniram um conjunto de princípios para
replicação em engenharia de software, refinando e sistematizando princípios de outras
disciplinas. No final da década de 1990, Basili et al. (1999) discutiram um framework para
organizar conjuntos de experimentos relacionados (famílias) e a geração de conhecimento a
partir de tais conjuntos.
Mais recentemente, Lung et al. (2008) indicaram que replicação é uma atividade
científica necessária para a verificação de resultados de pesquisas, mas que “continua sendo
um desafio para os pesquisadores de engenharia de software pela complexidade do cenário
envolvido” e, ainda segundo os autores, “muitas vezes caras e difíceis de serem realizadas
pela falta de informações dos estudos originais”. E Goméz et al. (2010) indicaram como
razões para o desenvolvimento de replicações para verificação de erros de amostragem, de
resultados, para determinar os limites de uma operacionalização e os limites nas propriedades
das populações.
14
Como o entendimento sobre a replicação evoluiu, a comunidade de engenharia de
software empírica começou a tratar várias questões importantes relacionadas com a
replicação. O papel dos pacotes de laboratórios (lab package) para apoio ao desenvolvimento
de replicações (SHULL, F. et al., 2008) (KITCHENHAM, B., 2008), a falta de incentivos
para replicações em empresas (KITCHENHAM, B.; DYBÅ, T.; JØRGENSEN, M., 2004), a
importância do conhecimento tácito (SHULL, F. et al., 2002), a necessidade de ter diretrizes
específicas para sua documentação (CARVER, J. C, 2010), as dificuldades de se replicar
estudos envolvendo aspectos humanos (LUNG, J. et al., 2008) (FRANÇA, A. C. C. et al.
2010), o papel dos diferentes tipos de replicações (GÓMEZ G. et al., 2009) (KREIN, J. L.;
KNUTSON, C. D., 2009) (GÓMEZ G. et al., 2010), a geração de conhecimento com as
replicações (JURISTO, N.; VEGAS, S., 2009), são alguns dos temas recentes.
1.1. Motivação para o Estudo
Considerando a importância de replicações para as ciências empíricas, em geral, e para
a engenharia de software empírica, em particular, seria de se esperar encontrar um conjunto de
conhecimentos que fornecesse definições claras e inequívocas para perguntas centrais como
"o que exatamente é uma replicação?", ou "o que exatamente é uma replicação bem-
sucedida?", e "quais são os tipos de replicação e as respectivas funções?" (SCHMIDT, S.,
2009). Além disso, esperaríamos encontrar orientações sobre como realizar e documentar
replicações complementando as orientações existentes para realizar experimentos e outros
tipos de estudos empíricos.
Como mencionado acima, algumas destas questões foram estudadas em engenharia de
software nas últimas duas décadas. No entanto, esses estudos e o debate científico sobre os
seus resultados ainda estão em um estágio inicial. Os trabalhos publicados ainda não fazem
uso claro das definições de termos e conceitos, não há, em geral, uma taxonomia aceita para
distinguir tipos de replicações e seus papéis na geração do conhecimento científico e, como
apontado por Schmidt, "a palavra replicação é usada como um termo coletivo para descrever
vários significados em diferentes contextos" (SCHMIDT, S., 2009).
Na medida em que a disciplina de engenharia de software empírica amadurece e os
estudos teóricos e práticos aumentam a compreensão sobre replicação, espera-se que essas
questões sejam abordadas. Uma ampla revisão da literatura sobre replicações em engenharia
de software é um passo importante para essa compreensão, no entanto, nenhuma base
15
abrangente de conhecimento tem sido publicada para fornecer um retrato completo do
material disponível sobre replicação em engenharia de software.
1.2. Objetivos da Pesquisa
O objetivo principal deste estudo é analisar as pesquisas relacionadas à replicação de
estudos empíricos em engenharia de software, a partir de um amplo mapeamento na literatura,
de forma a responder a questão central “RQ: Qual é o estado atual dos trabalhos de replicação
de estudos empíricos realizados em pesquisas de engenharia de software?”, assim como as
seguintes questões secundárias:
• RQ01: Qual é a evolução do número e tipo (interna e externa) de replicações ao longo
dos anos?
• RQ02: Que temas de engenharia de software foram endereçados pelas replicações?
• RQ03: Quais pesquisadores e organizações estão replicando?
• RQ04: Quais os métodos de pesquisa estão sendo utilizados nas replicações?
• RQ05: Que conjuntos de replicações foram encontrados?
• RQ06: Qual é a qualidade dos trabalhos de replicação?
• RQ07: Quais as principais lições aprendidas apresentadas nos estudos de replicação?
E como objetivos específicos:
• Pesquisar e selecionar estudos empíricos de replicação e trabalhos conceituais e
teóricos sobre replicação em engenharia de software;
• Extrair e analisar as informações desses estudos com base nas 7 questões secundárias;
• Discutir os resultados analisados, suas implicações e sugerir estudos para serem
desenvolvidos futuramente;
• Contribuir, com informações válidas e úteis, para comunidade científica desenvolver
mais replicações de estudos empíricos em engenharia de software, aumentar a
cobertura e a qualidade dos temas pesquisados, melhorar a qualidade dos relatórios
dos estudos e estimular o desenvolvimento de trabalhos colaborativos entre
pesquisadores.
16
1.3. Resultados do Trabalho
Nesta pesquisa, são apresentados os resultados da análise do mapeamento sistemático
sobre as 7 questões secundárias, concentrando-se nos estudos relatando replicações e os
estudos originais relacionados.
Foram encontrados 93 estudos que apresentaram 125 replicações de estudos empíricos
em engenharia de software. Estas replicações compõem 76 conjuntos de replicações
(agrupamento de estudos originais e suas replicações). A Manutenção de Software foi o tema
de engenharia de software com maior número de replicações (25). Os tipos de estudo mais
encontrados foram quasi experimento (63%) e experimento controlado (21%). Acreditamos
que este estudo será útil para os pesquisadores que trabalham com replicações, bem como
para aqueles que trabalham em fundamentos teóricos da engenharia de software empírica.
1.4. Estrutura do Trabalho
Este trabalho está estruturado em capítulos apresentados e detalhados abaixo.
No Capítulo 2, é apresentada uma revisão ad hoc da literatura, explorando definições e
conceitos relativos ao tema desta pesquisa e trabalhos associados a este estudo. Neste capítulo
estão apresentadas definições e conceitos sobre replicação e sobre estudos empíricos em
engenharia de software. São apresentados também, conceitos que embasaram a definição do
método de pesquisa desenvolvido por esta dissertação e 3 trabalhos associados a este estudo.
No Capítulo 3, seguindo as orientações de Kitchenham e Charters (2007), está descrita
a metodologia que foi empregada na construção e implementação do protocolo de
planejamento e execução deste mapeamento. Neste capítulo encontram-se descritas as
questões as quais a pesquisa procurou responder; a equipe envolvida nos processos de
pesquisas manual e automática; seleção e extração e avaliação de qualidade dos estudos
primários; os procedimentos adotados para decisão sobre os conflitos desses processos
realizados pela equipe; as fontes de dados e estratégias realizadas nas buscas manual e
automática; os critérios de inclusão e exclusão; a seleção dos estudos; as informações
extraídas dos estudos primários; os critérios e o processo de avaliação de qualidade; e,
finalmente, uma síntese de como os resultados foram analisados.
No Capítulo 4, com base nas 7 questões de pesquisa secundárias, são apresentadas as
análises sobre os resultados do estudo de mapeamento, como também uma discussão sobre as
17
implicações do estudo e suas ameaças à validade. Neste capítulo, as análises foram realizadas,
na sua maioria, focadas em dados de frequências e percentuais.
Finalmente, no Capítulo 5, apresentam-se as conclusões, propostas para trabalhos
futuros e considerações finais.
18
2. REVISÃO DA LITERATURA E TRABALHOS ASSOCIADOS
Aqui se apresenta uma revisão da literatura explorando o tema replicação de estudos
em engenharia de software. Considerando a natureza e a complexidade do tema, faz-se
necessário para o desenvolvimento dessa pesquisa, uma abordagem interdisciplinar, razão
pela qual serão empregados conceitos pertinentes a diversas áreas do conhecimento.
Tal como discutido no Capítulo 1, há pouco consenso sobre a nomenclatura e
definição de conceitos sobre replicação em muitas ciências empíricas e em engenharia de
software empírica, em particular. Embora, o aprofundamento do debate sobre a nomenclatura
e definições conceituais esteja fora do escopo deste trabalho, é necessário explorar algumas
definições e conceitos relativos ao tema desta pesquisa, a fim de orientar o processo de
revisão.
Neste Capítulo, são apresentadas definições e conceitos sobre replicação e sobre
estudos empíricos em engenharia de software, necessários para o desenvolvimento dos
processos de seleção, extração e análise das informações deste estudo. São apresentados
também, os conceitos que embasaram a definição do método de pesquisa desenvolvido por
esta dissertação. Em seguida, são descritos três trabalhos associados ao tema deste estudo.
2.1. Definições sobre Replicação
Nesta seção são apresentados conceitos e definições sobre replicação de estudos
registrados ao longo dos anos por pesquisadores de diversas ciências e, em particular, em
engenharia de software.
Na década de 1960, Gould e Kolb (1964), publicaram um dicionário de ciências
sociais, onde replicação foi definida como "uma repetição de um procedimento de pesquisa
para verificar a exatidão ou veracidade das conclusões apresentadas ".
Na década de 1970, Finifter (1972) ressaltou que uma replicação deveria reproduzir,
exatamente e com total fidelidade, as condições do estudo original. Se isso não fosse possível,
segundo o autor, se procurariam alternativas de amostras, medições e de condições de análise
do estudo original, que o recriassem, com maior ou menor grau de precisão. Essas alternativas
iriam desde “de tão perto quanto possível” para “perto o suficiente”, de forma tal que seus
resultados pudessem ser suficientes comparáveis. Segundo La Sorte (1972), "replicação se
refere a uma repetição consciente e sistemática de um estudo original". Kelly, Chase e Tucker
19
(1979) abordaram replicação como um estudo que copia ou reproduz um experimento original
- seus métodos, procedimentos e resultados.
Na década de 1980, Bahr, Caplow e Chadwick (1983) também confirmaram que a
característica essencial de um estudo de replicação era a repetição de um estudo específico
anterior na totalidade ou em parte. Acrescentaram que, “em contraste com a pesquisa
científica em geral, que necessariamente se baseia em trabalhos anteriores, a replicação
envolveria uma vinculação direta com um estudo específico anterior”. Afirmaram, esses
autores que, levando-se em conta o estudo específico, uma replicação poderia diferir desse
estudo em tempo, lugar, método, sujeito, e pesquisador.
Na década de 1990, Lindsay e Ehrenberg (1993) indicaram que autoridades em
metodologia científica consideravam replicação como um aspecto fundamental para o método
científico por possibilitar a avaliação e extensão de resultados do estudo original e,
consequentemente, sua generalização. Defenderam que uma replicação pode ser adequada no
início de um programa de pesquisa para estabelecer, de forma rápida, relativamente fácil e
barata, se um novo resultado pode ser repetido do estudo original como um todo, ou para
aumentar o leque de condições sobre as quais o resultado ainda se mantém. Os mesmos
autores também indicaram outras 3 (três) razões para o desenvolvimento de replicação: uso de
diferentes métodos, instrumentos de medição, procedimentos de análise e/ou pesquisadores
para alcançar o mesmo resultado do estudo original; extensão do alcance dos resultados; e
definir as condições sobre as quais a generalização não se sustenta.
Na década de 2000, Almqvist (2006), definiu replicação em engenharia de software,
no contexto de sua pesquisa, como “uma repetição de um experimento com os mesmos
parâmetros experimentais, ou o mais próximo possível, ou ainda, com mudanças deliberadas
neles, para acompanhar um estudo original, de forma tal que seja possível conseguir maior
validade na pesquisa de engenharia de software”. Shull et al. (2008) ressaltaram a
importância da realização de replicação para melhor compreensão dos fenômenos da
engenharia de software e para melhorar a prática do desenvolvimento de software. Para os
autores, a replicação “ajuda os pesquisadores a construir conhecimentos sobre o que se espera
dos resultados, que podem ser semelhantes, ou não, aos do estudo original”. Juristo e Vegas
(2009) definiram replicação como "a repetição de um experimento para verificar seus
resultados”.
20
Essas definições implicam que uma replicação deve ser explicitamente relacionada
(repetição consciente) com um estudo anterior, um estudo original. De acordo com estas
definições, pode-se concluir que experimentos que abordarem as mesmas questões ou
hipóteses, mas sem explicitar conhecimento de, ou deferência para estudos anteriores, não
devem ser consideradas replicações. Portanto, neste estudo, não serão considerados como
replicação, os estudos que Krein e Knutson (2009) classificaram como replicação
independente.
2.2. Tipos e Classificações de Replicação
Na literatura, os pesquisadores têm usado diferentes termos para definir os tipos ou
classificações de replicação. Gomez et al. (2009) realizaram uma revisão da literatura
procurando estudos em várias disciplinas científicas que fornecessem classificações de
replicação. Os pesquisadores encontraram 18 estudos que propõem tipos diferentes de
classificação e a descrição para os papeis de cada tipo de replicação na construção do
conhecimento científico.
Poucos estudos foram identificados tratando tipos de replicação. Observou-se que
estes estudos, em sua maioria, são originários das ciências sociais. São estudos que
cronologicamente iniciam da década de 1970 e se seguem até os dias atuais. Já os estudos
oriundos da engenharia de software são em menor número, e quanto ao aspecto cronológico,
começam a ser identificados no final da década de 1990.
Na engenharia de software, Basili (1999) definiu 3 tipos de replicação: as que repetem,
ao máximo possível, o estudo original, sem variar suas hipóteses (Strict); as que variam as
maneiras de execução do estudo original e as que estendem uma teoria, introduzindo grandes
mudanças nos elementos experimentais para verificar se os princípios fundamentais do estudo
original continuam válidos. Almqvist (2006) definiu 4 tipos de replicação: aquelas que
mantêm, ao máximo possível, as condições do estudo original, variando os pesquisadores
(Similar, External Replications); aquelas que variam as condições do estudo original,
mantendo os pesquisadores (Improved, Internal Replications), aquelas que mantêm, ao
máximo possível, as condições do próprio estudo, mantendo os pesquisadores (Similar,
Internal Replications) e aquelas que variam, deliberadamente, as condições do estudo
original, inclusive os pesquisadores (Differentiated, External Replications). Brooks et al.
(2007) considerou uma replicação interna aquela que foi realizada com os pesquisadores
originais, e externa, se a replicação foi realizada por pesquisadores independentes. E Shull et
21
al. (2008) definiram 2 tipos: as que utilizam diferentes procedimentos experimentais para
verificar se os mesmos resultados são reproduzidos, e assim confirmar se eles são
independentes da abordagem do estudo original (Conceptual); e aquelas que executam, ao
máximo possível, os mesmos procedimentos do estudo original (Exact).
Como mencionado anteriormente, uma discussão mais aprofundada sobre conceitos e
tipos de replicação está fora do escopo deste estudo. No entanto, nesta pesquisa foi utilizada a
classificação de replicação interna e externa definida por Brooks et al. (2006) para apresentar
a evolução dos trabalhos de replicação ao longo dos anos.
Para tornar esta definição mais precisa para a seleção, extração, análise e conclusões
desta pesquisa, foi considerada replicação interna, aquela que envolve uma série evolutiva de
experimentos onde, pelo menos um pesquisador envolvido no estudo original, também foi
envolvido no estudo de replicação. E replicação externa, aquela realizada com base em um
estudo anterior (original), por pesquisadores completamente diferentes dos envolvidos com o
estudo original.
2.3. Classificação de Estudos Empíricos em Engenharia de Software
Nesta seção são exploradas duas bases para classificação de estudos em engenharia de
software. Uma apresentando a caracterização dos tópicos da disciplina de engenharia de
software, e outra, apresentando os métodos mais utilizados nos estudos de engenharia de
software.
2.3.1. SWEBOK
Abran et al. (2004) apresentaram um guia, fornecendo uma caracterização,
consensualmente validada, e limites da disciplina de engenharia de software, o que
denominaram de Software Engineering Body of Knowledge – SWEBOK.
Segundo os autores, o SWEBOK tem como objetivos: promover uma visão consistente
da engenharia de software em todo o mundo; esclarecer o lócus e o conjunto de limites da
engenharia de software com relação a outras disciplinas como ciência da computação,
gerência de projetos, engenharia da computação, e matemática; caracterizar o conteúdo da
disciplina de engenharia de software; prover acesso aos tópicos da base de conhecimento
(Body of Knowledge) da engenharia de software; e fornecer uma base para o desenvolvimento
22
curricular e material para certificação e licenciamento. Apresentaram, em 10 capítulos, as
áreas de conhecimento da engenharia de software (Apêndice 2): Software Requirement,
Software Design, Software Construction, Software Testing, Software Maintenance, Software
Configuration Management, Software Engineering Management, Software Engineering
Process, Software Engineering Tools And Methods e Software Quality.
Nesta pesquisa foi utilizado o SWEBOK, seus capítulos e seções, para classificar os
estudos primários de replicação em engenharia de software.
2.3.2. Tipos de Estudos Empíricos
Easterbrook et al. (2007), classificaram os métodos dos estudos primários mais
comuns em engenharia de software em 5 tipos: Experimento Controlado, incluindo Quasi
Experimento, Estudo de Caso, Estudos de Campo (Survey), Etnografias e Pesquisa Ação,
cujas principais características encontram-se descritas a seguir.
O Experimento Controlado é uma pesquisa que apresenta hipóteses claras, onde
uma ou mais variáveis independentes são manipuladas para medir o seu efeito sobre uma ou
mais variáveis dependentes. Permitem determinar em termos precisos, como as variáveis são
relacionadas e, especificamente, se existe uma relação causa-efeito entre elas. Cada
combinação de valores das variáveis independentes é um tratamento. A escolha randômica de
sujeitos para aplicação dos tratamentos é necessária. Quando as circunstâncias do experimento
controlado não podem ser possíveis, a exemplo da impossibilidade de escolha randômica dos
sujeitos, variação desse tipo de experimento é possível. Os autores definem esse tipo de
variação como Quasi Experimento.
O Estudo de Caso oferece compreensão aprofundada de como e porque certos
fenômenos ocorrem, e pode revelar os mecanismos pelos quais as relações de causa-efeito
ocorrem. Estudo de caso exploratório é usado como pesquisa inicial de alguns fenômenos para
derivar novas hipóteses e construir teorias, e estudos de caso confirmatórios são usados para
testar teorias existentes. A seleção de casos é um passo crucial no estudo de caso. Para isso,
usa amostragem proposital, em vez de amostragem aleatória, com o objetivo de selecionar os
casos que são mais relevantes para a proposição de estudo. Uma variação de fontes de dados é
normalmente utilizada. Os dados qualitativos, incluindo resultados de entrevistas e
observações, desempenham um papel central por oferecerem percepções ricas sobre o caso.
23
A Pesquisa de Campo (Survey) é utilizada para identificar as características de uma
população de indivíduos. É mais associado com o uso de questionários de coleta de dados, no
entanto, também pode ser realizado através de entrevistas estruturadas ou técnicas de registro
de dados. As características principais que definem um survey são a seleção de uma amostra
bem definida e representativa de uma população e as técnicas de análise de dados utilizadas
para generalizar os resultados. Uma pré-condição para a realização de survey é a existência de
uma questão clara de pesquisa que envolve, usualmente, frequência e distribuição, e que
investiga sobre a natureza de uma população-alvo específica.
A Etnografia, ou Estudo Etnográfico, é uma forma de pesquisa focada na sociologia
do significado através de observações de campo. Uma característica notável do estudo
etnográfico é que ele evita impor qualquer teoria pré-existente, mas se concentra em como os
membros da comunidade dão sentido ao seu ambiente social e cultural. Os pré-requisitos para
um estudo etnográfico incluem uma questão de pesquisa que enfoca as práticas culturais de
uma determinada comunidade e o acesso de seus membros a esta comunidade. Uma forma
especial de etnografia é a observação participante, onde o pesquisador se torna um membro da
comunidade a ser estudada por um período de tempo.
Na Pesquisa Ação, diferentemente da maioria das pesquisas empíricas onde se tenta
observar o mundo como ele existe atualmente, os pesquisadores têm a pretensão de intervir
nas situações estudadas com o propósito explícito de melhorá-las. Uma condição prévia para a
pesquisa-ação é ter um “dono” do problema disposto a colaborar tanto na sua identificação,
quanto se engajar em um esforço para resolvê-lo. Pesquisa ação é também caracterizada por
um compromisso de produzir mudanças reais, em uma abordagem iterativa, para a solução de
problemas.
Segundo Easterbrook et al. (2007), “selecionar o tipo de pesquisa para o
desenvolvimento de estudos empíricos de engenharia de software é problemático porque os
benefícios e desafios para usar cada tipo ainda não estão bem catalogados. [...] A escolha do
tipo de pesquisa depende da postura teórica do pesquisador, do acesso aos recursos e de
pergunta de pesquisa que é apresentada. [...] O primeiro passo para a escolha do tipo de
pesquisa a ser adotado é clarificar o tipo de questão”. Como visto, a escolha do tipo de
questão que se pretende tratar em um estudo tem uma relação direta com o tipo de pesquisa a
ser adotado pelo estudo. Neste sentido, os autores apresentaram exemplos de questões de
pesquisa, organizados por tipo de pergunta, conforme descritos na Tabela I abaixo.
24
Tabela I. Tipos e Exemplos de Perguntas de Pesquisa
Tipo de Pergunta Exemplos
Categoria Sub-categoria Código
Exploratória
Existência E X existe?
Descrição e Classificação
DCL
O que X faz? Quais são as propriedades de X? Como X é categorizado? Como podemos medir X? Quais são as propostas de X? Quais são os componentes de X? Como os componentes de X se relacionam com outros? Quais são todos os tipos de X?
Descritiva-Comparativa
DCO Como X se diferencia de Y?
Base-rate
Frequência e Distribuição FD
Como X ocorre? O que é um valor médio de X?
Descritiva-Processo
DP
Como X normalmente trabalha? Qual é o processo pelo qual X ocorre? Em que sequência os eventos de X ocorrem? Quais são as etapas de X que levam à sua evolução? Como X atinge seus objetivos?
Relacionamento Relacionamento R X e Y estão relacionados? Que ocorrências de X estão correlacionadas as de Y?
Causalidade
Causalidade C
X causa Y? X previne Y? O que causa Y? Quais são todos os fatores que causam Y? Que efeitos X têm em Y?
Causalidade-Comparativa
CC X causa mais Y do que Z? X é melhor para prevenir Y do que Z?
Causalidade-Interação
Comparativa CCI
X ou Z causam mais Y sobre uma condição, mas não em outras?
Design Design D O que é um modo eficaz para conseguir X? Que estratégias ajudam para conseguir X?
2.4. Mapeamento Sistemático
A literatura sobre métodos de pesquisa diferencia dois grandes tipos de revisões
sistemáticas da literatura, a saber:
25
• Revisões Sistemáticas Convencionais da Literatura (PETTICREW, M.; ROBERTS,
H., 2006), que agregam resultados sobre a efetividade de um tratamento, intervenção
ou tecnologia, e estão relacionados com questões de pesquisa específicas, como: numa
população P, a intervenção I, num contexto C, é mais eficaz na obtenção de resultados
O do que uma intervenção C? (resultando em estrutura PICOC)
• Estudos de Mapeamento (ou escopo) (ARKSEY, H.; O´MALLEY, L., 2005), que
visam identificar todas as pesquisas relacionadas a um tema específico, ou seja,
responder a questões mais amplas relacionadas à evolução da investigação. As
questões típicas são exploratórias: O que sabemos sobre o tópico T?
Kitchenham e Charters (2007) definiram uma revisão sistemática da literatura “como
um meio de identificar, avaliar e interpretar todas as evidências disponíveis relevantes para
uma questão específica de pesquisa, área temática, ou fenômeno de interesse”. E mapeamento
sistemático da literatura, “como uma ampla revisão dos estudos primários em um tema
específico que visa identificar as evidências disponíveis sobre o tema”.
Segundo os autores, as principais diferenças entre revisão sistemática e mapeamento
sistemático são:
• Estudos de mapeamento geralmente têm questões de pesquisa mais amplas e, muitas
vezes, tratam questões múltiplas pesquisas;
• Os termos utilizados no processo de busca nos estudos de mapeamento são menos
focados do que para revisões sistemáticas e, assim, é comum retornar com um número
muito grande de estudos. O objetivo é promover uma ampla cobertura dos estudos de
interesse;
• O processo de extração de dados em estudos de mapeamento também é muito mais
amplo do que o processo de extração de dados de revisões sistemáticas. Pode ser
chamado de fase de classificação ou categorização. O objetivo desta etapa é classificar
documentos com detalhes suficientes para responder às questões de pesquisa e
identificar estudos para revisões posteriores, sem ser uma tarefa demorada;
• A etapa de análise de um estudo sobre o mapeamento é a síntese dos dados para
responder às questões de pesquisas colocadas. Não incluem técnicas de análise
aprofundada, como a meta-análise e de sínteses narrativas, mas totais e resumos. As
26
representações gráficas das distribuições dos estudos por tipo de classificação pode ser
um mecanismo de comunicação eficaz;
• A divulgação dos resultados de um estudo de mapeamento pode ser mais limitada do
que para uma revisão sistemática.
Os autores ressaltaram ainda que os estudos individuais que contribuem para uma
revisão sistemática são chamados de estudos primários, que uma revisão sistemática é uma
forma de estudo secundário e que um estudo terciário é uma revisão de estudos secundários
com as mesmas questões de pesquisa.
Considerando-se, então, a questão central desta pesquisa e os conceitos sobre métodos
de pesquisas apresentados, este trabalho é caracterizado como um mapeamento sistemático,
um estudo secundário para identificação de evidências sobre os estudos primários de
replicação encontrados na literatura.
2.5. Trabalhos Associados
Nesta seção são apresentados e analisados 3 estudos similares dentro da temática desta
pesquisa, onde serão explorados os seguintes aspectos: o contexto dos estudos; os
procedimentos desenvolvidos pelos pesquisadores; a análise dos resultados; os tratamentos de
validade; e as conclusões dos estudos.
Os estudos analisados foram: A Survey of Controlled Experiments in Software
Engineering (SJØBERG, D. et al., 2005), Replication of controlled experiments in empirical
software engineering – a survey (ALMQVIST, J. P. F., 2006) e Towards Reporting
Guidelines for Experimental Replications: A Proposal. (CARVER, J., 2010).
Os 36 estudos distintos de replicações, encontrados e analisados nessas três revisões,
foram analisados para a seleção neste mapeamento.
2.5.1. A Survey of Controlled Experiments in Software Engineering (SJØBERG, et al., 2005)
Sobre o contexto do estudo, os autores desenvolveram estudo secundário (quantitativo)
para identificar como experimentos controlados em engenharia de software são conduzidos.
Para tal, desenvolveram uma revisão sistemática em 12 revistas e anais de conferências
ligados à engenharia de software, identificando 5.453 artigos, entre os anos de 1993 e 2002,
27
dos quais selecionaram 103 como relevantes por tratarem experimentos controlados e quasi
experimentos com indivíduos e equipes desenvolvendo uma ou mais tarefas em experimentos
de engenharia de software. Sobre esses estudos relevantes, os autores pesquisaram os tópicos
dos experimentos, sujeitos, tarefas desenvolvidas, os ambientes de desenvolvimento e uma
síntese de como desenvolveram o tratamento das suas validades internas e externas.
Além disso, dos 103 estudos relevantes, identificaram 20 artigos onde seus autores
classificaram como replicação, compondo 14 séries de replicação (original e suas replicações)
que, sobre esses, reportaram seus tópicos, sujeitos, resultados (confirmação ou rejeição) e tipo
de replicação. Esse número de artigos identificados como replicação representa 18% (dezoito
por cento) dos estudos classificados como relevantes pelos autores, confirmando que, embora
replicação seja defendida como fundamental para o progresso da ciência, o número de estudos
objetivando replicação ainda é muito baixo.
Não informaram no estudo questões ou hipóteses de pesquisa, assim como não foi
apresentado o seu processo de planejamento, nem referência ao uso de guidelines. Os autores
não apresentaram a string de busca utilizada no estudo. Também não foi apresentado
referência ao desenvolvimento de procedimentos de pesquisa manual complementar.
Utilizaram como critério de inclusão os experimentos com indivíduos e equipes
desenvolvendo uma ou mais tarefas em experimentos controlados e quasi experimentos de
engenharia de software. E como critérios de exclusão: estudos de correlação, estudos baseados
em apenas cálculo de dados (Datamining), de avaliação de simulação de times, experimentos
de múltiplos estudos de caso, sumários de programas de pesquisa e experimentos de
usabilidade.
Os artigos foram selecionados por duplas de pesquisadores, analisando título e abstract
e observando os seguintes aspectos e atributos:
• Autoria – autor, centro acadêmico, país, ano, revista / anais de conferência;
• Tópico – tratamento, título e palavras chave;
• Sujeitos – quantitativo, categoria, modo de seleção e recrutamento;
• Tarefas e Ambientes – localização, ferramentas, individual / equipe, tipo de aplicação,
duração e tamanho;
• Replicação – indicação de replicação, autoria, sujeitos e tópicos;
• Validade Interna – categoria explicita de tratamento de validade interna;
28
• Validade Externa – categoria explicita de tratamento de validade externa;
As diferenças entre as duplas foram tratadas coletivamente e, quando
necessário, com a participação de um terceiro pesquisador. Os dados pesquisados foram
armazenados em um banco de dados MS SQL Server 2000. Além do banco de dados, foi
gerado um catálogo com todos os artigos pesquisados em formato PDF. A equipe utilizou
para análise dos dados o software de inteligência analítica SAS, do SAS Institute Inc.
Os autores não apresentaram critérios nem processo de avaliação de qualidade
dos artigos selecionados.
Para a apresentação da análise dos resultados obtidos, utilizaram 7 capítulos do estudo,
um para cada aspecto e atributos anteriormente referenciados, contendo tabelas, gráficos e
textos destacando situações relevantes de cada aspecto.
Sobre autoria, inicialmente, os autores apresentaram por revista / anais de conferência,
a distribuição do número de artigos pesquisados e relevantes. Em seguida, no mesmo capítulo,
apresentaram os 20 principais pesquisadores e as 10 principais organizações que conduziram
experimentos controlados em engenharia de software no período compreendido entre 1993 e
2002.
Sobre os tópicos desenvolvidos pelos experimentos, apresentaram a distribuição do
número de artigos, seguindo dois esquemas de classificação: IEEE Keyword Taxonomy -
Software Engineering, (http://www.computer.org/mc/keywords/software.htm), e o
apresentado por Glass, Vessey e Ramesh (2002).
No capítulo sobre sujeitos utilizados nos experimentos, foram apresentados 3
conjuntos de informações. Inicialmente foram apresentados os números de sujeitos
participantes dos experimentos, distribuídos por categoria. Em seguida, foram apresentadas
informações sobre o número de sujeitos envolvidos nos estudos por categoria e quantidade de
experimentos. E, finalmente, foram apresentadas informações sobre o número de sujeitos,
distribuídos por tipo de remuneração e quantidade de experimentos.
Sobre as tarefas dos experimentos, apresentaram as suas análises distribuídas em 4
partes. Na primeira parte da análise apresentaram informações sobre a duração das tarefas por
categoria de processo de software e número de experimentos. Na segunda, apresentaram
informações do número de experimentos, distribuídos por tempo de duração de suas tarefas.
29
Na terceira, trataram da análise e apresentação de informações sobre o número de
experimentos, distribuídos por categoria de processo de software e duração das tarefas. E,
finalmente, na quarta parte, apresentaram as informações sobre as análises realizadas dos
experimentos por tipo de aplicação.
Sobre ambiente, os pesquisadores analisaram e apresentaram informações sobre a
distribuição dos experimentos por tipo de local onde foram desenvolvidos, assim como
informações sobre a distribuição do número de experimentos por tipo de ferramenta utilizada.
No capítulo sobre replicação, os autores apresentaram os experimentos agrupados em
conjuntos de original e suas replicações. Cada grupo foi associado a um tópico, cuja origem
do tópico os autores não deixaram clara. Além do tópico, cada experimento apresentou a sua
referência do número de seqüência de replicação sobre o experimento original, o tipo de
sujeito envolvido com o experimento, resultado (confirmação ou não do original), o tipo de
autor que desenvolveu o experimento de replicação, a classificação do tipo de replicação e as
diferenças entre o experimento e o estudo original. Para a tipificação de replicação, os autores
utilizaram o conceito e tipos (Close e Differentiated) de replicação abordados por (Lindsay e
Ehrenberg (1993).
E, finalmente, no capítulo sobre tratamento de validade, os atores, inicialmente
apresentaram a distribuição do número de experimentos que apresentaram tratamento de
validade interna e, em seguida, a distribuição do número que apresentaram tratamento de
validade externa, ambas agrupadas por categorias e fatores, segundo Shadish, Cook e
Campbell (2002).
Desenvolveram o tratamento de validade de sua pesquisa, detalhando considerações
sobre o viés na seleção de revistas, conferências e de artigos, sobre a imprecisão na extração
de dados e sobre os possíveis erros no processo de classificação dos tópicos.
Para a conclusão dos estudos apresentaram um sumário com os principais resultados
da revisão que caracterizaram quantitativamente os experimentos em engenharia de software.
Consideraram baixa a proporção entre número de experimentos desenvolvidos e o número de
experimentos controlados em engenharia de software. Observaram, também, que o número de
estudantes utilizados nos experimentos foi muito maior que o de profissionais, assim como o
número de aplicações em projetos estudantis foi muito maior que o de aplicações comerciais
utilizadas nos experimentos. Com o baixo uso do número de profissionais e de aplicações
30
comerciais, pode-se questionar a representatividade dos resultados desses experimentos para a
indústria.
Finalizando o sumário, consideraram que o principal resultado da pesquisa é que os
relatórios dos experimentos, na sua maioria, são vagos, não sistemáticos e com muitas
inconsistências metodológicas. Chamaram a atenção da necessidade de utilização de
guidelines para prover apoio significativo para os pesquisadores lidarem, com qualidade, com
a complexidade do desenvolvimento e documentação de experimentos em engenharia de
software.
2.5.2. Replication of controlled experiments in empirical software engineering – a survey (ALMQVIST, J. P. F., 2006)
Sobre o contexto do estudo, o autor desenvolveu estudo secundário (quantitativo e
qualitativo) sobre o uso de replicação de experimentos controlados em engenharia de software
empírica. Desenvolveu sua pesquisa na Electronic Library System da Lund University,
biblioteca composta por mais de 300 bancos de dados com publicações científicas, na qual
identificou, até o ano de 2005, 223 estudos. Desses estudos, selecionou 31 como relevantes,
compondo 20 séries de replicação e apresentando, assim como em (SJØBERG, et al., 2005),
seus tópicos, sujeitos, resultados (confirmação ou rejeição), e tipo de replicação.
Utilizou guideline proposto em (KITCHENHAM, B., 2004) como base para o
planejamento e desenvolvimento de seu estudo. Apresentou como questão de pesquisa: Como
os pesquisadores fazem uso de replicação no campo da engenharia de software empírica?
O autor utilizou o conceito de replicação como “repetição de um experimento,
seguindo ao máximo possível, o experimento original ou com mudanças deliberadas de um ou
mais parâmetros experimentais do experimento original”. Definiu 4 tipos de replicação e
utilizou esses tipos para classificar as replicações pesquisadas.
Utilizou as seguintes strings de busca: (“software engineering” AND “replication”),
(“software engineering” AND “replica”), (“software engineering” AND “replicating”),
(“software engineering” AND “replicated”), (“software engineering” AND “replicates”),
(“software engineering” AND “validity”).
Não detalhou os critérios utilizados de inclusão e exclusão. Todo o processo de
seleção e extração foi executado pelo próprio autor. Após a seleção automática, desenvolveu
pesquisa manual, incluindo, os resultados da pesquisa de (SJØBERG, D. et al., 2005) que
31
tratavam de replicação. Os artigos foram catalogados em um banco de dados, no entanto não
foi detalhado o processo de catalogação. Fez avaliação de qualidade dos artigos selecionados
baseado em (KITCHENHAM, B. 2004), no entanto, não utilizou essa informação ao longo do
seu estudo.
Para a apresentação da análise dos resultados quantitativos e qualitativos de seu
estudo, utilizou um capítulo para cada uma das análises, contendo tabelas e textos destacando
situações relevantes de cada tópico analisado.
Iniciou a análise quantitativa referenciando os dados tabulados de sua pesquisa e
apresentados de forma similar a apresentada por (SJØBERG, D. et al., 2005) para os dados
dos experimentos de replicação. Apresentou os experimentos agrupados na forma de original
e suas replicações. Cada conjunto foi associado a um tópico. Além do tópico, cada
experimento apresentou a sua referência do número de seqüência de replicação sobre o
experimento original, o ano de publicação, o tipo de sujeito envolvido com o experimento, o
resultado (confirmação ou não do original), a classificação do tipo de replicação segundo os
tipos definidos pelo próprio autor, a classificação do tipo de replicação (Similar, Alternative
or Improved), de (BROOKS, A. et al., 1995), e a referência bibliográfica do artigo.
Em seguida analisou e apresentou, por canal de publicação, o número de experimentos
originais e replicações, o número de experimentos por ano de publicação, e a distribuição do
número de experimentos que confirmaram e que não confirmaram o original, também por ano
de publicação.
Analisou os pesquisadores e instituições, apresentando a distribuição de frequência do
envolvimento desses com replicações. Depois analisou e apresentou informações sobre os
tópicos e séries, agrupando os experimentos originais e replicações, informações essas
relacionadas com frequência de distribuição do número de experimentos na série, relação
entre séries, as dificuldades do autor com a classificação dos experimentos nas séries e
informações sobre conteúdos dos artigos.
Finalizou sua análise quantitativa apresentando considerações sobre as replicações
referenciadas em (SJØBERG, D. et al., 2005), informações sobre os tipos de replicação
indicados pelo próprio autor e sobre os resultados da alocação dos artigos pesquisados nesses
tipos.
32
Na análise qualitativa, o autor apresentou suas análises sobre como os pesquisadores
descreveram suas motivações para replicar, assim como suas descrições sobre os processos de
replicação. Inicialmente apresentou como motivação para se replicar, observada por vários
pesquisadores, a melhoria das conclusões de experimentos realizados, seja através de
modificações dos seus elementos e ambientes experimentais, de modificações dos métodos
estatísticos de análise, e/ou dos próprios pesquisadores. Outra motivação apresentada foi a de
melhorar a validade dos resultados dos experimentos. Nesse sentido o autor apresentou
conceitos e análises dos artigos sobre os tratamentos de validade interna, de construto e
externa considerados por vários pesquisadores.
Como parte dos processos de replicação, o autor apresentou informações sobre o uso
de estudantes e profissionais como sujeitos dos experimentos, uso de guidelines para o
planejamento e desenvolvimento de replicação, processos de escolha de experimento para
replicar e fatores, que o autor considerou decisivo para a replicação, como bases de
conhecimento, séries / famílias de experimentos e redes de pesquisa.
Apresentou ainda análise da importância de uma boa documentação, tanto do
experimento original, quanto de suas replicações, de forma a possibilitar o desenvolvimento
de novas replicações com base nessas informações. Apresentou também informações sobre a
utilização de guideline para documentação.
Finalizou sua análise qualitativa apresentando informações sobre o posicionamento de
alguns pesquisadores de que para fazer progresso no ramo da engenharia de software
empírica, resultados de experimentos com outros tipos de pesquisa, como survey e estudo de
caso, devem ser combinados e para isso, pode-se utilizar de meta-análises.
Desenvolveu o tratamento da validade de sua pesquisa considerando os conceitos de
validade interna, externa e de construto, apresentados por ele quando analisava
qualitativamente os estudos. Ressaltou como tratamento de validade interna a classificação
dos tópicos e séries e a classificação dos experimentos segundo (BROOKS, A. et al., 1995).
Como validade externa tratou a identificação dos artigos. Como validade de construto alegou
que não se aplicava a sua pesquisa.
Ao final do seu estudo, apresentou um capítulo com as suas principais conclusões.
Iniciou suas conclusões esclarecendo que o seu estudo foi conduzido de forma exploratória,
sem considerar nenhuma hipótese específica. Que um grande número de informações pode ser
33
extraído de sua pesquisa, no entanto, algumas dessas informações podem requerer
complementação de novos estudos. Observou que o número de insucessos nas replicações
vem diminuindo nos últimos anos e que ele não conseguiu identificar se pode ser atribuído a
um viés de publicação, a uma melhor documentação dos originais ou uma melhoria nos
procedimentos de replicação.
Sobre essas conclusões, o autor fez recomendações ressaltando o uso de guidelines
para o desenvolvimento e documentação de experimentos de replicação, o uso, sempre que
possível, de bases de conhecimentos sobre as replicações, a necessidade de apresentação dos
dados brutos dos experimentos para efeito de análises futuras, e a necessidade de identificar o
experimento como replicação em seu resumo e palavras chave, de forma a facilitar o processo
de identificação.
Finalizando o capítulo, o autor indicou como trabalhos futuros aprofundar a
perspectiva de tratamento de validade de constructo da sua pesquisa, desenvolver meta-
análises das séries dos experimentos replicados, e desenvolver revisão sistemática sobre
replicação, ampliando os resultados da sua pesquisa.
2.5.3. Towards Reporting Guidelines for Experimental Replications: A Proposal. (CARVER, J., 2010)
Sobre o contexto do estudo, o autor desenvolveu uma revisão nas replicações
publicadas nos anais da conferência International Symposium on Empirical Software
Engineering and Metrics e no Empirical Software Engineering Journal, com o objetivo de
prover um ponto de partida para discussões sobre a formalização e utilização de guidelines
para relatórios de estudos de replicação. Encontrou 15 estudos relevantes de replicação, dos
quais 5 novos em relação aos encontrados por Almqvist (2006).
Sobre os estudos relevantes, o autor observou como eles documentaram referencias
às informações dos seus originais, como eram feitas as comparações entre os resultados dos
estudos originais e de suas replicações, assim como observou as famílias de estudos que,
necessariamente, não têm os mesmos originais, mas tratam questões assemelhadas.
O autor deixou claro que seu objetivo não era tratar conceitos sobre replicação,
nem fazer avaliações críticas sobre as replicações propriamente ditas, mas na sua
documentação.
34
Não utilizou guidelines para o planejamento e desenvolvimento de seu estudo, nem
apresentou questão de pesquisa. Na verdade, com base em suas observações, propôs um
guideline para documentação de estudos de replicação, de forma incrementar sue valor
experimental.
Utilizou as seguintes strings de busca: “Replication” e “Replicated”, Não detalhou
os critérios de inclusão e exclusão.
Para a apresentação de sua proposta de guideline para documentação de estudos de
replicação, apresentou um capítulo, contendo referências sobre o que documentar em um
estudo de replicação, sobre documentação de famílias de replicações e adaptações necessárias
para publicação em short papers.
Sobre o que documentar, registrou orientações sobre a documentação das
informações sobre o estudo original, sobre a replicação, comparação dos resultados originais
com os da replicação e conclusões com informações cruzadas da replicação com as do estudo
original.
Não apresentou tratamento de validade de seu estudo.
Ao final, apresentou um capítulo sumarizando seu estudo, cujo principal objetivo
foi a proposição de um conjunto de diretrizes para a publicação de estudos de replicação, de
forma que a comunidade possa obter maior conhecimento com eles.
2.6. Síntese dos Trabalhos Associados
Encerrando esta seção, na Tabela II, encontra-se uma síntese dos três estudos.
Tabela II. Síntese dos Estudos Associados
(SJØBERG, et al., 2005)
(ALMQVIST, J. P. F., 2006)
(CARVER, J., 2010).
Estudo
Revisão sobre experimentos controlados em engenharia de software, inclusive replicação de experimentos controlados.
Revisão sobre replicação de experimentos controlados em engenharia de software.
Revisão nos estudos de replicação publicados nos anais da International
Symposium on
Empirical Software
Engineering and
Metrics e no Empirical
Software Engineering
Journal Período de Entre os anos de 1993 – Até o ano de 2005. Não foi citado. O
35
(SJØBERG, et al.,
2005) (ALMQVIST, J. P. F.,
2006) (CARVER, J., 2010).
Referência 2002. estudo foi publicado em 2010.
Perguntas e Hipóteses da
Pesquisa
Não informaram no estudo perguntas ou hipóteses de pesquisa.
Apresentou como questão de pesquisa: Como os pesquisadores fazem uso de replicação no campo da engenharia de software empírica?
Não informou no estudo perguntas ou hipóteses de pesquisa. Uma hipótese inferida é que estudos bem documentados possibilitam maior conhecimento com eles.
Guideline Utilizado para
a Pesquisa
Não apresentaram processo de planejamento da pesquisa nem referência ao uso de guidelines.
Utilizou guideline proposto por (KITCHENHAM, B., 2004) como base para o planejamento e desenvolvimento de seu estudo.
Não apresentou processo de planejamento e desenvolvimento de sua pesquisa. Propôs, com base em suas observações, um guideline para documentação de estudos de replicação
Seleção de Estudos
Não apresentaram String de Busca Os autores não informaram sobre a realização de pesquisa manual complementar Inclusão: Experimentos com indivíduos e equipes desenvolvendo uma ou mais tarefas em experimentos (controlados e quasi experimentos) de engenharia de software. Exclusão: Estudos de correlação, estudos baseados em apenas cálculo de dados (datamining), de avaliação de simulação de times, experimentos de múltiplos estudos de caso, sumários de programas de pesquisa e experimentos de usabilidade.
Strings utilizadas: (“software
engineering” AND
“replication”),
(“software
engineering” AND
“replica”), (“software
engineering” AND
“replicating”),
(“software
engineering” AND
“replicated”),
(“software
engineering” AND
“replicates”),
(“software
engineering” AND
“validity”).
Não detalhou os critérios utilizados de inclusão e exclusão. Seleção e extração desenvolvida pelo próprio autor. O autor realizou
Strings utilizadas: “Replication” e “Replicated”. Não detalhou os critérios utilizados de inclusão e exclusão. Seleção e extração desenvolvida pelo próprio autor. Não informou sobre busca manual. Não apresentou avaliação de qualidade dos estudos selecionados. Mas deixou claro que isso não era objetivo de seu estudo.
36
(SJØBERG, et al.,
2005) (ALMQVIST, J. P. F.,
2006) (CARVER, J., 2010).
Seleção e extração desenvolvida por uma equipe de 6 pesquisadores trabalhando em duplas. Os autores não realizaram avaliação de qualidade dos artigos selecionados.
pesquisa manual complementar, cuja base foi o conjunto de artigos tratados como replicação no estudo de (SJØBERG, D. et al., 2005) Fez avaliação de qualidade dos artigos selecionados, no entanto, não utilizou as informações ao logo do seu estudo.
Resultados da Seleção
5.453 artigos; 103 artigos selecionados, dos quais 20 artigos de replicações, distribuídos em 14 séries (original mais suas replicações).
223 artigos listados; 31 artigos de replicações selecionados, distribuídos em 20 séries.
Não apresentou o total de artigos selecionados. 15 artigos foram considerados relevantes.
Conceito de Replicação Utilizado
Método científico de avaliação e extensão de resultados do estudo original e, conseqüentemente, sua generalização. (LINDSAY, R. M.; EHRENBERG, A. S. C., 1993)
Repetição de um experimento, seguindo ao máximo possível, o experimento original ou com mudanças deliberadas de um ou mais parâmetros experimentais do experimento original. (Definição do próprio autor)
Não apresentou.
Tipos de Replicação Utilizados
Close: Mais próxima possível do original; Differentiated: Variações deliberadas sobre o original. (LINDSAY, R. M.; EHRENBERG, A. S. C., 1993)
Similar, external
replications: Mais próxima do original, variando os pesquisadores; Improved, internal
replications: Variando as condições do estudo, mantendo os pesquisadores; Similar, internal
replications: mais próxima possível do mesmo estudo,
Não apresentou.
37
(SJØBERG, et al.,
2005) (ALMQVIST, J. P. F.,
2006) (CARVER, J., 2010).
mantendo os pesquisadores; Differentiated, external
replications: Variando deliberadamente o original e os pesquisadores. (Definições do próprio autor)
Análise dos Dados
Apresentaram suas análises quantitativas sobre os experimentos controlados através de tabelas, gráficos e textos destacando situações relevantes de cada aspecto seguinte: Autoria – autor, centro acadêmico, país, ano, revista / anais de conferência; Tópico – tratamento, título e palavras chave; Sujeitos – quantitativo, categoria, modo de seleção e recrutamento; Tarefas e Ambientes – localização, ferramentas, individual / equipe, tipo de aplicação, duração e tamanho; Replicação – indicação de replicação, autoria, sujeitos e tópicos; Validade Interna – categoria explicita de tratamento de validade interna; e Validade Externa – categoria explicita de tratamento de validade externa.
Apresentou suas análises quantitativas e qualitativas sobre os experimentos de replicação através de tabelas e textos, similar a forma apresentada por (SJØBERG, D. et al., 2005), destacando situações relevantes de cada tópico analisado. Nas análises quantitativas, utilizou como base a formatação de (SJØBERG, et al., 2005), Apresentou os experimentos agrupados na forma de original e suas replicações. Cada grupo foi associado a um tópico. Além do tópico, cada experimento apresentou a sua referência do número de seqüência de replicação sobre o experimento original, o ano de publicação, o tipo de sujeito envolvido com o experimento, o resultado (confirmação ou não do original), a classificação do tipo de replicação segundo os tipos definidos pelo
Apresentou informações sobre o que documentar em um estudo de replicação, sobre documentação de famílias de replicações e adaptações necessárias para publicação em short papers
38
(SJØBERG, et al.,
2005) (ALMQVIST, J. P. F.,
2006) (CARVER, J., 2010).
próprio autor, a classificação do tipo de replicação segundo (BROOKS, A. et al., 1995) e a referência bibliográfica do artigo. Além desses dados, analisou quantitativamente os experimentos por canal de distribuição, pesquisadores e instituições, Nas análises qualitativas, o autor apresentou avaliações de como os pesquisadores descreveram suas motivações para replicar, assim como de suas descrições sobre os processos de replicação.
Tratamentos de Validade
Desenvolveram o tratamento de validade de sua pesquisa detalhando considerações sobre o viés na seleção de revistas, conferências e de artigos, sobre a imprecisão na extração de dados e sobre os possíveis erros no processo de classificação dos tópicos.
Desenvolveu o tratamento da validade interna e externa de sua pesquisa.
Não apresentou.
Conclusões
Registraram a baixa proporção entre o número de experimentos e o número de experimentos controlados em engenharia de software; Também registraram
Foi um estudo exploratório sem considerar nenhuma hipótese específica; Observou que o número de insucessos nas replicações vem diminuindo ao longo dos tempos por viés de
Considerou como principal objetivo do estudo foi a proposição de um conjunto de diretrizes para a publicação de estudos de replicação, de forma que a comunidade possa obter maior
39
(SJØBERG, et al.,
2005) (ALMQVIST, J. P. F.,
2006) (CARVER, J., 2010).
um número de estudantes muito maior que o número de profissionais, assim como o número de aplicações em projetos estudantis foi muito maior que o número de aplicações comerciais, podendo interferir na representatividade dos resultados; Finalmente, consideraram como o principal resultado da pesquisa é que os relatórios dos experimentos, na sua maioria, são vagos, não sistemáticos e com muitas inconsistências metodológicas, chamando à atenção da necessidade de utilização de guidelines para prover apoio significativo para os pesquisadores lidarem, com qualidade, com a complexidade do desenvolvimento e documentação, com alta qualidade, de experimentos em engenharia de software.
publicação, melhor documentação dos originais ou melhoria nos procedimentos de replicação; Recomendou o uso de guidelines para o desenvolvimento e documentação de replicações; Finalmente, indicou como trabalhos futuros aprofundar a perspectiva de tratamento de validade de constructo da sua pesquisa; desenvolver meta-análises das séries dos experimentos replicados; e desenvolver revisão sistemática sobre replicação, ampliando os resultados da sua pesquisa.
conhecimento com eles.
40
3. METODOLOGIA
Como referenciado anteriormente, com o amadurecimento da disciplina de engenharia
de software empírica e com o aumento da compreensão dos estudos teóricos e práticos sobre
replicação, espera-se que questões relacionadas com replicação sejam mais abordadas. Dessa
forma, uma revisão da literatura sobre replicações em engenharia de software é um passo
importante para essa compreensão e amadurecimento.
Neste trabalho sobre replicações de estudos empíricos em engenharia de software, foi
realizado um mapeamento sistemático. O objetivo com o mapeamento foi coletar evidências
que possam ser utilizadas como guias de pesquisas e práticas, portanto enquadra-se como
parte do esforço de engenharia de software baseada em evidências (KITCHENHAM, B.;
DYBÅ, T.; JØRGENSEN, M., 2004).
Este trabalho é classificado como um estudo secundário. As orientações de
Kitchenham e Charters (2007) foram seguidas para a construção e implementação do
protocolo de planejamento e execução desta pesquisa. Aqui, são apresentados e detalhados os
seus itens componentes e suas operacionalizações.
Neste capítulo encontram-se as questões as quais a pesquisa procurou responder; a
composição da equipe envolvida nos processos de pesquisas manual e automática, seleção e
extração e avaliação de qualidade dos estudos primários; os procedimentos adotados para
decisão sobre os conflitos desses processos; as principais fontes de dados e estratégias
realizadas nas buscas dos estudos de replicação; os critérios de inclusão e exclusão aplicados
nos estudos primários; o processo desenvolvido de seleção dos estudos e os seus resultados;
as informações extraídas dos estudos primários; os critérios e o processo de avaliação de
qualidade aplicados nos estudos; e uma síntese de como os resultados foram analisados.
É importante ressaltar que no restante deste estudo, será utilizado o termo paper para
se referir aos trabalhos publicados (artigo ou relatório técnico) analisados na revisão. Será
utilizado o termo “estudo original” (ou simplesmente, “original”) ou “replicação” para
referenciar um experimento ou outro tipo de estudo empírico publicado no paper. Assim, é
importante notar que um paper pode relatar uma ou mais replicações. Finalmente, o termo
“estudo” é usado para se referir a uma replicação ou estudo original, quando a distinção entre
eles não é importante.
41
3.1. Questões de Pesquisa.
Neste mapeamento, a seguinte questão central de pesquisa orientou todo o seu
desenvolvimento:
RQ: Qual é o estado atual dos trabalhos de replicação de estudos empíricos realizados
em pesquisas de engenharia de software?
As seguintes questões específicas de pesquisa foram utilizadas para orientar a extração
de dados, análise, síntese e apresentação dos resultados:
• RQ01: Qual é a evolução do número e tipo (interna e externa) de replicações ao longo
dos anos?
• RQ02: Que temas de engenharia de software foram endereçados pelas replicações?
• RQ03: Quais pesquisadores e organizações estão replicando?
• RQ04: Quais os métodos de pesquisa estão sendo utilizados nas replicações?
• RQ05: Que conjuntos de replicações foram encontrados?
• RQ06: Qual é a qualidade dos trabalhos de replicação?
• RQ07: Quais as principais lições aprendidas apresentadas nos estudos de replicação?
3.2. Equipe Envolvida
Para a construção do protocolo deste mapeamento, realização das pesquisas manual e
automática e pré-seleção dos estudos (título e resumo), foi composta uma equipe de 5
pesquisadores. Além do autor desta dissertação, participaram como pesquisadores assistentes
desses processos: Rodrigo. F. Lopes, mestre em engenharia de software pelo CESAR.EDU,
João Paulo N. de Oliveira, Leonardo F. M. de Oliveira, mestrandos do curso de Pós-
Graduação em Ciência da Computação, do Centro de Informática, da Universidade Federal de
Pernambuco (CIn/UFPE), e Adelmo J. C. de Almeida, concluinte do curso de Bacharelado em
Ciência da Computação, também do CIn/UFPE.
E para o aperfeiçoamento do protocolo, realização da seleção dos estudos, extração de
dados e análise de qualidade dos estudos, houve uma mudança no número e na composição da
equipe. Saiu da equipe o concluinte do curso de graduação e entraram dois pesquisadores para
assistir à realização dessas fases do mapeamento: A. César A. França e Tatiana B. Gouveia,
ambos doutorandos do curso de Pós-Graduação em Ciência da Computação, do CIn/UFPE.
42
A composição de uma equipe para certas etapas de um mapeamento sistemático é
considerada importante para aumentar a confiabilidade dos resultados (KITCHENHAM, B.;
CHARTERS, S., 2007). Com uma equipe é possível associar pares de pesquisadores para as
tarefas de seleção, avaliação de qualidade e extração de dados, que podem produzir resultados
pouco confiáveis quando conduzidos por um único pesquisador, conforme discutido na
próxima seção.
3.3. Procedimentos de Decisão sobre Conflitos na Seleção, Extração e Qualidade dos Estudos
Para a execução das pesquisas manual e automática, foram indicados, de forma
aleatória, os engenhos de busca, revistas e anais para cada um dos pesquisadores. Estes
realizaram, individualmente, as pesquisas e pré-seleção, gerando o conjunto de estudos para
as fases seguintes deste mapeamento.
Para as próximas etapas da pesquisa, Da Silva et al. (2011) ressaltaram na
apresentação da metodologia de seu estudo que “[...] Três importantes atividades em uma
revisão sistemática exigem decisões sobre possíveis situações de conflito: seleção de estudos,
avaliação de qualidade e extração de dados. Assim, é recomendado que tais atividades sejam
realizadas por, pelo menos, dois pesquisadores”. E concluíram que “[...] um processo de apoio
à tomada de decisão e consenso é necessário”.
A combinação dos seis membros da equipe envolvidos com essas atividades neste
mapeamento possibilitou a formação de 16 duplas distintas. Foram distribuídos,
aleatoriamente, os estudos resultantes da pré-seleção com essas duplas, que realizaram a
seleção, extração dos dados e avaliação de qualidade.
Cada componente da dupla trabalhou individualmente os estudos destinados para a
dupla. Ao final dos trabalhos de cada dupla, cada pesquisador discutiu com seu par, em uma
reunião de consenso, as diferenças sobre a seleção, extração e avaliação de qualidade dos
estudos. Quando o consenso não foi possível, um terceiro pesquisador, aleatoriamente
escolhido, resolveu as divergências.
3.4. Fontes de Dados e Estratégia de Busca
Um processo amplo de pesquisa foi realizado, combinando busca automática e
manual, de forma a atingir uma elevada cobertura dos estudos primários.
43
A pesquisa manual foi realizada no mês de novembro de 2010 em relevantes revistas e
anais de conferências e na lista de estudos primários analisados em dois trabalhos associados
(ALMQVIST, J. P. F., 2006) (CARVER, J., 2010). Foram analisados os títulos e os resumos
de todos os papers e, muitas vezes, quando se tinha dúvidas da pertinência do paper ao tema,
na introdução e conclusões, em cada uma das fontes utilizadas na busca manual (Tabela III).
Tabela III. Fontes Manuais
ACM Transactions on Software Engineering Methodologies http://portal.acm.org/citation.cfm?id=J790&CFID=16581986&CFTOKEN=87385715
IEEE Transactions on Software Engineering http://www.computer.org/portal/web/csdl/transactions/tse#1
Empirical Software Engineering Journal http://www.springerlink.com/content/100262/ Information and Software Technology Journal http://www.sciencedirect.com/science/journal/09505849 Int. Conference on Software Engineering http://www.computer.org/portal/web/csdl/home Int. Conference on Evaluation and Assessment of Software Engineering http://www.computer.org/portal/web/csdl/home Int. Symposium on Empirical Software Engineering and Measurement http://www.computer.org/portal/web/csdl/home Int. Ws. on Replication in Empirical Software Engineering Research http://sequoia.cs.byu.edu/reser2010
Trabalhos Associados: (ALMQVIST, J. P. F., 2006) e (CARVER, J., 2010).
A busca automática foi realizada em outubro de 2010, em cinco engenhos de busca
e sistemas de indexação (Tabela IV).
Tabela IV. Fontes Automáticas
ACM Digital Library http://portal.acm.org IEEE Xplore Digital Library http://www.ieeexplore.ieee.org/Xplore ScienceDirect http://www.sciencedirect.com SCOPUS http://www.scopus.com JSTOR http://www.jstor.org
A string de busca utilizada na busca automática foi construída com base em três
termos extraídos da questão central da pesquisa: replicação, estudos empíricos e engenharia
de software. Sinônimos para replicação foram encontrados na literatura, em especial nos 18
estudos revistos por Gómez et al. (2009), e em consultas com especialistas em engenharia de
software empírica. Foram utilizados os tipos de estudos empíricos apresentados em
(EASTERBROOK S. M. et al., 2007). Foram adicionados plurais dos sinônimos porque
44
vários engenhos de busca não tratam o “*” como esperado. Finalmente, não foi utilizado
sinônimo para engenharia de software. Para construir a string de busca, sinônimos foram
agrupados através do conectivo OR, e os conjuntos de sinônimos para cada termo foram
agrupados através do conectivo AND.
Com o intuito de avaliar e ajustar a string sobre os sinônimos e sobre a quantidade e
relevância dos artigos retornados, foram realizadas várias pesquisas no ACM Digital Library
(http://portal.acm.org) e ajustes na string. Escolheu-se o ACM por ser uma das principais
fontes de dados de estudos da engenharia de software. O formato final da string encontra-se
descrito na Figura 1.
Figura 1. String de Busca
("replication" OR "replications" OR "reproduction" OR "reproductions"
OR "reanalysis" OR "re-analysis" OR "empirical generalization" OR
"generalization and extension" OR ("reproducibility" AND "experiment")
OR "conceptual extension" OR "corroboration" OR "checking of analysis"
OR "complete secondary analysis" OR "restricted secondary analysis" OR
"pseudoreplication“ OR "duplication" OR "conceptual extension" OR
"empirical generalization“ OR "model comparisons")
AND
("empirical" OR "experimental" OR "experiment" OR "experiments" OR
"case study" OR "case studies" OR "ethnography" OR "ethnographic
study" OR "ethnographic studies" OR "survey" OR "surveys" OR "action
research" OR "quasi-experiment" OR "field research")
AND
("software engineering")
Os pesquisadores realizaram as pesquisas manuais e automática trabalhando
individualmente em um engenho e/ou em um conjunto de fontes manuais. Os pesquisadores
avaliaram os resultados da busca automática (n = 16.055), observando o título e resumo, e
excluindo os papers que não eram claramente relevantes (Tabela V). Os documentos
resultantes da pesquisa automática (n = 382) foram catalogados juntamente com os 74
documentos potencialmente relevantes encontrados na busca manual (Tabela VI). O processo
de busca finalizou com um conjunto de 456 papers potencialmente relevantes.
Tabela V. Desenvolvimento da Pesquisa Automática
Fonte Automática Resultado Engenhos
% sobre Total dos Engenhos
Pré-seleção (Título e Resumo)
% sobre Total Pré-
seleção
ACM Digital Library 4.853 30% 142 37% IEEE Xplore Digital Library 5.492 34% 76 20%
45
ScienceDirect 1.134 7% 15 4% Scopus 2.571 16% 90 24% JSTOR 2.005 12% 59 15%
Total da Pesquisa 16.055 100% 382 100%
Tabela VI. Desenvolvimento da Pesquisa Manual
Fonte Manual Resultado da Busca
% sobre Total
Manual ACM Transactions on Software Engineering Methodologies 3 4% IEEE Transactions on Software Engineering 11 15% Empirical Software Engineering Journal 20 27% Information and Software Technology Journal 15 20% Int. Conference on Software Engineering 2 3% Int. Conference on Evaluation and Assessment of Software
Engineering
3 4%
Int. Symposium on Empirical Software Engineering and
Measurement
7 9%
Int. Ws. on Replication in Empirical Software Engineering
Research
1 1%
Trabalhos Associados: (ALMQVIST, J. P. F., 2006) e (CARVER, J., 2010).
12 16%
Total da Pesquisa 74 100%
Para apoiar a equipe nos processos de seleção, extração, e catalogação, foram
utilizadas as ferramentas MENDELEY (www.mendeley.com), JABREF
(jabref.sourceforge.net) e DROPBOX (www.dropbox.com);
3.5. Critérios de Inclusão e Exclusão
A equipe desenvolveu pesquisa na literatura à procura de documentos relatando dois
tipos de estudos (critérios de inclusão):
• Replicações de estudos empíricos em engenharia de software; e
• Trabalhos conceituais e teóricos sobre replicações, incluindo teorias, definições,
taxonomias, lições aprendidas, etc.
Foram excluídos papers que reuniram pelo menos um dos seguintes critérios (critérios
de exclusão):
• Não escrito em Inglês.
46
• Não disponível na web.
• Papers de pesquisadores convidados, keynote speech, relatórios de workshops, livros,
teses e dissertações.
• Documentos incompletos, rascunhos, slides de apresentações e resumos estendidos.
• Estudos secundários, terciários e meta-análises.
• Endereçando áreas da ciência da computação que não são, claramente, engenharia de
software (por exemplo, sistemas de banco de dados, interação homem-máquina, redes
de computadores, etc.)
• Endereçando replicação somente como parte de trabalho futuro.
3.6. Seleção dos Estudos
Os pesquisadores realizaram a seleção dos estudos em duas etapas. Na primeira etapa,
as duplas de pesquisadores analisaram independentemente cada paper resultante do processo
de pesquisa (n = 456). Cada pesquisador aplicou os critérios de inclusão e exclusão (Seção
3.5) sobre os papers potencialmente relevantes após a leitura do resumo, introdução,
desenvolvimento e conclusão de cada paper. Essa etapa selecionou 136 trabalhos (Tabela
VII).
Tabela VII. Desenvolvimento da Pesquisa Manual
Desenvolvimento da Seleção Total de Estudos
Total de Estudos Potencialmente Relevantes (Tot. Manual + Tot. Pré-seleção) 456 Aplicação dos Critérios de Inclusão e Exclusão (-) 322 Total de Estudos Relevantes 134
Na segunda etapa, os papers resultantes da aplicação dos critérios de inclusão e
exclusão foram classificados em dois conjuntos: replicações e trabalhos conceituais e teóricos
sobre replicação. No final desta fase, foram encontrados 93 papers de replicação (REP no
Apêndice A) e 41 papers sobre replicação (ABO no Apêndice A). Nesta dissertação não serão
analisados os trabalhos do conjunto ABO, mas esta análise é apontada como um importante
trabalho futuro a ser desenvolvido no trabalho de doutorado do autor.
Ao longo do processo de extração, foram recuperados, por cada dupla de
pesquisadores, os papers dos estudos originais de cada replicação do conjunto REP. Foram
47
encontrados 43 papers de estudos originais (ORI no Apêndice A). O número total de
documentos relevantes encontrados nesta revisão é de 177 e 136 foram analisados (REP +
ORI) (Figura 2).
Figura 2. Resultados da Pesquisa e Processos de Seleção
3.7. Extração de Dados
A extração de dados foi realizada guiada por um formulário de extração implementado
em Microsoft Excel ™. Para esta pesquisa, os dados (Tabela VIII e Tabela IX) foram
extraídos dos 136 trabalhos dos conjuntos REP e ORI (Apêndice A).
Tabela VIII. Extração de Dados dos Estudos de Replicações e Originais
Dados Descrição Ano de Publicação Ano de Publicação do Estudo Autores Nomes dos Autores Organizações de Pesquisa Afiliação dos Autores País Local da Organização Tópico de Engenharia de Software Capítulo e Seção do SWEBOK Objetivos Objetivos do Estudo Método de Pesquisa De acordo com (EASTERBROOK S. M. et al., 2007) Tipo de Questão de Pesquisa De acordo com (EASTERBROOK S. M. et al., 2007)
48
Tabela IX. Extração de Dados Somente dos Estudos de Replicação
Dados Descrição Conceito de Replicação Definição Utilizada de Replicação Estudo Original Referência do Estudo Original Unidade de Análise Tipos das Unidades de Análises das Replicações Lições Aprendidas Lições sobre a Replicação
.
3.8. Avaliação da Qualidade
Foi avaliada a qualidade dos estudos de replicação e originais (REP e ORI) usando um
conjunto de critérios que trataram do planejamento do estudo, execução, resultados e suas
conclusões.
Para avaliação dos trabalhos de replicação (REP), foram separados os papers em 2
grupos: os papers em que as replicações foram relatadas juntamente com o estudo original
(referenciados como single report), e os papers em que as replicações foram apresentadas em
separado do estudo original (referenciados como multiple reports), uma vez que esta distinção
impacta na aplicação dos critérios de avaliação de qualidade, isto porque a avaliação dos
trabalhos de replicação (REP) de estudos originais (multiple reports) incluiu critérios para
avaliar a qualidade da descrição dos estudos originais, e que tem sido defendida como parte
essencial dos relatórios de replicações (CARVER, J. C., 2010).
Assim, os critérios adotados para avaliação de qualidade dos estudos (REP) que
apresentaram replicação de um estudo original (ORI) em papers separados (multiple reports)
foram os seguintes:
• Planejamento do Estudo
o Descreveu claramente seus objetivos;
o Descreveu claramente os objetivos do estudo original;
o Definiu claramente o seu método de pesquisa;
o Definiu claramente o método de pesquisa do estudo original;
o Descreveu que parâmetros foram alterados no estudo em relação ao estudo
original;
• Execução do estudo
o Descreveu adequadamente o ambiente onde ele foi realizado;
o Descreveu adequadamente o ambiente onde o estudo original foi realizado;
o Descreveu claramente seu método de análise de dados;
49
o Descreveu claramente o método de análise de dados do estudo original;
• Resultados do Estudo
o Apresentou claramente os seus resultados;
o Apresentou claramente os resultados do estudo original;
o Atingiu os seus objetivos, respondeu perguntas de pesquisa, verificou
hipóteses;
o Mencionou a comparabilidade dos seus resultados com os resultados do estudo
original;
• Conclusão
o Descreveu suas ameaças à validade;
o Descreveu as ameaças à validade do estudo original;
o Descreveu adequadamente as dificuldades / limitações encontradas para
replicação do estudo original.
Os critérios adotados para avaliação de qualidade dos estudos (REP) que apresentaram
replicação de um estudo original (ORI) dentro do mesmo paper (single report) foram os
seguintes:
• Planejamento do Estudo
o Descreveu claramente seus objetivos;
o Definiu claramente o método de pesquisa;
o Justificou o uso de múltiplos experimentos;
o Definiu claramente o contexto e as alterações realizadas nos múltiplos
experimentos;
• Execução do estudo
o Descreveu claramente o método de coleta de dados;
o Descreveu claramente o método de análise de dados;
• Resultados do Estudo
o Apresentou claramente os seus resultados;
o Atingiu os seus objetivos, respondeu perguntas de pesquisa, verificou
hipóteses;
o Comparou os resultados dos diversos experimentos;
• Conclusão
50
o Desenvolveu suas conclusões com base nos resultados dos múltiplos
experimentos;
o Descreveu suas ameaças à validade;
E os critérios adotados para avaliação de qualidade dos estudos originais (ORI) foram
os seguintes:
• Planejamento do Estudo
o Descreveu claramente seus objetivos;
o Definiu claramente o seu método de pesquisa;
• Execução do estudo
o Descreveu adequadamente o ambiente onde ele foi realizado;
o Descreveu claramente seu método de análise de dados;
• Resultados do Estudo
o Apresentou claramente os seus resultados;
o Atingiu os seus objetivos, respondeu perguntas de pesquisa, verificou
hipóteses;
• Conclusão
o Descreveu suas ameaças à validade.
Cada estudo recebeu no critério específico a nota 0, quando não respondeu ao critério,
a nota 1, quando o estudo respondeu completamente ao critério, e a nota 0,5, quando
respondeu ao critério parcialmente. O índice final de qualidade do estudo foi calculado pelo
somatório das notas conseguidas nos vários critérios, dividida pelo numero total de critérios e
multiplicada por 100.
As mesmas duplas que realizaram a extração dos dados, também realizaram as
avaliações de qualidade e as divergências foram resolvidas entre eles. Quando foi necessário,
porque não houve consenso entre os dois pesquisadores das duplas, um terceiro pesquisador
resolveu as divergências.
3.9. Síntese e Apresentação dos Resultados
Os resultados de extração de dados e avaliação da qualidade foram analisados com o
apoio do Microsoft Excel ™, que também foi usado para gerar gráficos e tabelas dinâmicas,
focados, na sua maioria, em frequências e percentuais.
51
Após a extração dos dados e avaliação de qualidade, foi realizada a análise, síntese das
evidências e organização dos resultados de acordo com as questões de pesquisa, que
representam os conhecimentos gerados por este mapeamento.
Na análise da qualidade dos estudos (questão RQ06), utilizou-se o t-Test como teste
estatístico para comparar as médias dos índices de qualidade dos estudos e analisar se suas
diferenças eram significativas.
Não foi realizada meta-análise, ou outra forma de meta-síntese, pois está fora do
alcance das questões de pesquisa deste estudo.
52
4. ANÁLISE E DISCUSSÃO DOS RESULTADOS
Neste capítulo, serão apresentadas as análises dos resultados, organizados de acordo
com as sete questões de pesquisa, e as discussões sobre os resultados analisados.
4.1. Análise dos Resultados
RQ01: Qual é a evolução do número e tipo (interna e externa) de replicações
ao longo dos anos?
A contabilização e classificação das replicações e estudos originais não foi simples
devido, principalmente, a falta de padronização da terminologia e da estrutura dos papers.
Portanto, um esclarecimento sobre estas questões é necessário, antes de apresentar os
resultados.
Quanto à contabilização de replicações e estudos originais, a maioria dos papers
relatou uma replicação única ou estudo original, assim havia uma correspondência um-para-
um entre o paper e o estudo. No entanto, vários papers relataram mais de uma replicação, e
cada uma foi contabilizada, por isso o número total de replicações é 125, e não 93.
Finalmente, 33 papers relataram replicações e o estudo original juntos. Portanto, o número de
estudos original é de 76 (43 foram relatados separadamente das replicações e 33 foram
relatados juntamente com uma ou mais replicações).
O primeiro estudo de replicação encontrado nesta revisão foi publicado em 1994. O
número de replicações tem crescido ao longo dos anos (Figura 3), apesar de uma queda em
2002, 2003 e 2008.
53
Figura 3. Distribuição Temporal das Replicações
Nesta revisão, 71% (89/125) das replicações são internas e 29% (36/125) são externas.
Nos anos de 2002, 2003 e 2004 não foram registrados estudos de replicações externas e, nos
anos de 1994 e 1996, de replicações internas. O número de replicações internas publicadas a
cada ano aumentou substancialmente desde 2004, enquanto o número de replicações externas
por ano tem sido relativamente estável desde 1994 (Figura 4).
Figura 4. Distribuição Temporal das Replicações Internas e Externas
A mediana do número de replicações por ano cresceu de quatro no período entre 1994
e 2002, para onze entre 2003 e 2010. Este crescimento foi devido principalmente ao aumento
1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Interna 0 3 0 2 1 4 3 4 2 2 9 13 7 10 4 12 13
Externa 1 2 1 4 2 2 4 1 0 0 0 3 1 3 1 4 7
0
2
4
6
8
10
12
14
54
do número de replicações internas, que cresceu de três a dez replicações por ano entre os dois
períodos de tempo. A mediana do número de replicações externas por ano nos dois períodos é
bastante estável, com crescimento de dois para três (Tabela X).
Tabela X. Replicações por Ano
Período Mediana de Replicações por Ano Externa Interna Total
1994-2002 2 3 4 2003-2010 3 10 11
Estes números parecem indicar que a comunidade de pesquisa de engenharia de
software tornou-se consciente da importância da realização de replicação, que é representado
pelo crescimento no número total de replicações nos últimos nove anos e desta taxa de
crescimento desde 2004. No entanto, este crescimento foi devido principalmente ao aumento
de replicações internas, pois o número de replicações externas permaneceu mais ou menos
estável desde 1994. Desde que replicações externas são consideradas importantes para
aumentar a validade dos resultados empíricos, isto parece indicar que mais incentivos para
replicações externas são necessários.
RQ02: Que temas de engenharia de software foram endereçados pelas
replicações?
Para avaliar a cobertura dos temas relacionados com a engenharia de software, cada
replicação foi relacionada com um capítulo e seção do Software Engineers’ Book of
Knowledge - SWEBOK (ABRAN, A. et al., 2004) Foram encontradas replicações relativas a
cada capítulo SWEBOK (Tabela XI).
Manutenção de Software (capítulo 6 do SWEBOK) tem o maior número de replicações
(25) que abrange três (seções 2-4) de suas quatro seções. Dezenove replicações neste capítulo
são internas. Teste de Software (capítulo 5) e Construção de Software seguem em segundo
lugar com 18 replicações, cada uma abrangendo quatro seções (2-5). Nesses tópicos, as seções
4.1, 5.1 e 6.1 não foram cobertas, o que não deve ser considerado uma limitação já que estas
são seções de background. Juntos, esses três temas concentram 50% (61/125) das replicações.
Os tópicos com o menor número de replicações foram Gerência de Configuração
(capítulo 7) e Ferramentas e Métodos (Capítulo 10), ambos com duas replicações. Quanto à
cobertura das seções SWEBOK, Gerência de Configuração (Capítulo 7) e Gerenciamento
55
(Capítulo 8) apresentaram as maiores disparidades, com apenas uma seção coberta das seis
seções de cada capítulo.
Tabela XI. Cobertura dos Capítulos e Seções do SWEBOK
Capítulos do SWEBOK # Seç. Replicações
Internas Replicações
Externas Total
# Seç. não Cobertas
# Rep. # Seç. # Rep. # Seç. # Rep. # Seç. # Seç. 2. Software Requirements 7 14 4 0 0 14 4 -3 3. Software Design 6 5 4 1 1 6 4 -2 4. Software Construction 3 7 1 11 2 18 2 -1 5. Software Testing 5 10 4 8 3 18 4 -1 6. Software Maintenance 4 19 3 6 2 25 3 -1 7. Software Configuration
Management 6 2 1 0 0 2 1 -5 8. Software Engineering
Management 6 12 1 3 1 15 1 -5 9. Software Engineering
Process 4 12 1 1 1 13 1 -3 10. Software Engineering
Tools And Methods 2 1 1 1 1 2 1 -1 11. Software Quality 3 7 2 5 2 12 2 -1
Total 46 89 22 36 13 125 23 -23
Requisitos de Software e Gerência de Configuração (capítulos 2 e 3) só foram
contemplados com replicações internas, e este último, com apenas 2 estudos desenvolvidos
em 2006. Projeto de Software e Processos de Software (capítulos 3 e 9) foram contemplados,
na sua quase totalidade, com replicações internas, registrando apenas uma replicação externa
cada um.
Manutenção de Software (capítulo 6) tem a maior presença de replicações registradas
ao longo dos anos. Neste capítulo, dos 17 anos de cobertura deste mapeamento, foram
registradas replicações em 11 anos, a maior cobertura entre os capítulos. Construção de
Software e Teste de Software (capítulos 4 e 5) seguem na presença, registrando replicações ao
longo de 9 anos.
Entre todos os capítulos, apenas Construção de Software (capítulo 4) apresenta um
número de replicações externas superior ao número de replicações internas. Dos 10 capítulos
contemplados com replicações, Gerência de Configuração, Processos de Software, Métodos e
Ferramentas e Qualidade de Software (capítulos 7, 9, 10 e 11) não foram contemplados no
ano de 2010 (Figura 5).
56
Figura 5. Evolução das Replicações por Capítulos do SWEBOK
57
RQ03: Quais pesquisadores e organizações estão replicando?
Nos estudos revisados, 201 pesquisadores desenvolveram trabalhos de replicação.
Abaixo, estão apresentados os pesquisadores que participaram mais ativamente na execução
das replicações internas e externas, os que mais participaram por capítulo do SWEBOK e por
suas filiações. Foram considerados como mais ativos, os pesquisadores que participaram em,
pelo menos, 2 replicações (internas e/ou externas).
As relações estão divididas entre os pesquisadores que mais executaram replicações
externas (Tabela XII), pesquisadores que mais executaram replicações internas (tabela XIII) e
os pesquisadores que mais executaram replicações (internas e externas) por capítulo do
SWEBOK (Tabela XIV). A maioria desses pesquisadores só desenvolveu um tipo de
replicação (interna ou externa). Apenas 17 pesquisadores, dos que mais executaram
replicações, participaram de replicações externas e internas.
A maioria dos pesquisadores que desenvolveram mais replicações nos temas do
SWEBOK, desenvolveram replicações internas. O capítulo de ferramentas e métodos (capitulo
58
10) foi o único capítulo do SWEBOK que não apresentou autores envolvidos em, pelo menos,
duas replicações.
Tabela XII. Autores Envolvidos com Replicações Externas
Replicações Externas Autor Organização # Ext. / Total James Miller University of Strathclyde 4/5 Hong Mei Peking University 3/4 Per Runeson Lund University 3/4 Minghui Zhou Peking University 3/3 Murray Wood University of Strathclyde 3/3 Marc Roper University of Strathclyde 3/3 Xiujuan Ma Peking University 3/3 Chris Lokan University of Auckland 2/4 Filippo Lanubile University of Bari 2/3 Michelle Cartwright Brunel University 2/2 James D. Kiper Miami University 2/2 Charles K. Ames California Institute of Technology 2/2 Brent Rentauernheimer California State University 2/2 A. César C. França Federal University of Pernambuco 2/2 Christopher M. Lott University of Kaiserslautern 2/2 Martin Shepperd Brunel University 2/2 Emilia Mendes University of Auckland 2/5 Paulo R. M. da Cunha Federal University of Pernambuco 2/2 Erik Kamsties University of Kaiserslautern 2/2 Thomas Thelin Lund University 2/3 Fabio Q. B. da Silva Federal University of Pernambuco 2/2 Carina Andersson Lund University 2/2 Steve Counsell University of Southampton 1/2 Michael Philippsen Universität Karlsruhe 1/2 Barbara Unger-Lamprecht Universität Karlsruhe 1/2 Mikael Lindvall Linköping University 1/2 Fabio Calefato University of Bari 1/2 Lutz Prechelt abaXX Technology 1/2 John W. Daly Agilent Technologies 1/2
59
Tabela XIII - Autores Envolvidos com Replicações Internas
Replicações Internas Autor Organização # Int. / Total Mario Piattini University of Castilla-La Mancha 13/13 Felix Garcia University of Castilla-La Mancha 8/8 Marco Torchiano Politecnico di Torino 7/7 Massimiliano Di Penta University of Sannio 7/7 Mariano Ceccato Fondazione Bruno Kessler 7/7 Corrado Aaron Visaggio University of Sannio 7/7 Filippo Ricca University of Genova 7/7 Gerardo Canfora University of Sannio 7/7 Victor R. Basili University of Maryland, Fraunhofer
Center for Experimental Software
Engineering
6/7
Geert Poels Ghent University 6/6 Paolo Tonella Fondazione Bruno Kessler – IRST 6/6 Magne Jørgensen Simula Research Laboratory 6/6 Dag I. K. Sjøberg Simula Research Laboratory 5/5 Forrest Shull Fraunhofer Center for Experimental
Software Engineering 5/5
Marcela Genero University of Castilla-La Mancha 5/5 Silvia Abrahão Universidad Politécnica de Valencia 5/5 Lionel C. Briand Carleton University 4/5 Lorin Hochstein University of Nebraska-Lincoln 4/4 Marvin V. Zelkowitz University of Maryland, College Park 4/4 Jeffrey Carver Mississippi State University 4/4 Sima Asgari University of Maryland, College Park 4/4 Kejetil Moløkken Simula Research Laboratory 3/3 Francisco Ruiz University of Castilla-La Mancha 3/3 Miroslaw Staron Blekinge Institute of Technology 3/3 Ludwik Kuzniarz Blekinge Institute of Technology 3/3 Carmine Gravino University of Salerno 3/3 Esperanza Manso University of Valladolid 3/3 Khaled El Emam Canadian National Research Council,
Intstitute for Information Technology 3/3
Giuseppe Visaggio University of Bari 3/4 Oliver Laitenberger Fraunhofer Institute for Experimental
Software Engineering 3/3
Claes Wohlin Blekinge Institute of Technology 3/3 Emilia Mendes University of Auckland 3/5 Andrea De Lucia University of Salerno 3/3 Jeffrey K. Hollingsworth University of Maryland, College Park 3/3 Karl Halvor Teigen University of Oslo 3/3 John Krogstie Norwegian University of Science and
Technology 3/3
60
Replicações Internas Autor Organização # Int. / Total Chris Lokan University of Auckland 2/4 Jürgen Wüst Fraunhofer Institute for Experimental
Software Engineering 2/2
Rocco Oliveto University of Salerno 2/2 Luciano Baresi Politecnico di Milano 2/2 Emilio Insfran Universidad Politécnica de Valencia 2/2 Stuart H. Zweben The Ohio State University 2/2 Erik Arisholm Simula Research Laboratory 2/2 Ladan Tahvildari University of Waterloo 2/2 Audris Mockus Avaya Labs Research 2/2 Marcus Ciolkowski University of Kaiserslautern 2/2 Gengshen Du University of Calgary 2/2 Siavash Mirarab IBM 2/2 Genoveffa Tortora University of Salerno 2/2 Joseph E. Hollingsworth Indiana University Southeast 2/2 Giuseppe Scanniello University of Basilicata 2/2 Adam A. Porter University of Maryland, College Park 2/2 Guenther Ruhe University of Calgary 2/2 Lawrence G. Votta Software Production Research
Department, AT&T 2/2
Hyunsook Do North Dakota State University 2/2 Aaron Visaggio University of Sannio 2/2 James D. Herbsleb Carnegie Mellon University 2/2 Ann Maes Ghent University 2/2 Bruce W. Weide The Ohio State University 2/2 Sandro Morasca Università degli Studi dell’Insubria 2/2 Jim Mcelroy University of Calgary 2/2 Stephen H. Edwards The Ohio State University 2/2 Walter F. Tichy Universität Karlsruhe 2/2 Thomas G. Harbich Bosch Telecom GmbH 2/2 José A. Cruz-Lemus University of Castilla-La Mancha 2/2 Steve Counsell University of Southampton 1/2 Michael Philippsen Universität Karlsruhe 1/2 Barbara Unger-Lamprecht Universität Karlsruhe 1/2 Mikael Lindvall Linköping University 1/2 Fabio Calefato University of Bari 1/2 Lutz Prechelt abaXX Technology 1/2 John W. Daly Agilent Technologies 1/2
61
Tabela XIV - Autores que mais Desenvolveram Replicações por SWEBOK
Autor # Rep. Int. # Rep. Ext. # Total SWEBOK
2 - SOFTWARE REQUIREMENTS Filippo Ricca 6 0 6 Marco Torchiano 6 0 6 Massimiliano Di Penta 5 0 5 Paolo Tonella 5 0 5 Mariano Ceccato 5 0 5 Miroslaw Staron 3 0 3 Claes Wohlin 3 0 3 Ludwik Kuzniarz 3 0 3 Giuseppe Scanniello 2 0 2
3 - SOFTWARE DESIGN Mario Piattini 3 0 3 Ann Maes 2 0 2 Marcela Genero 2 0 2 Geert Poels 2 0 2 José A. Cruz-Lemus 2 0 2
4 - SOFTWARE CONSTRUCTION Hong Mei 0 3 3 Minghui Zhou 0 3 3 Xiujuan Ma 0 3 3 Bruce W. Weide 2 0 2 Jürgen Wüst 2 0 2 Stephen H. Edwards 2 0 2 Fabio Q. B. da Silva 0 2 2 Lionel C. Briand 2 0 2 Brent Auernheimer 0 2 2 Paulo R. M. da Cunha 0 2 2 Stuart H. Zweben 2 0 2 Charles K. Ames 0 2 2 A. César C. França 0 2 2 James D. Kiper 0 2 2 Joseph E. Hollingsworth 2 0 2
5 - SOFTWARE TESTING Per Runeson 1 2 3 Carina Andersson 1 2 3 James Miller 1 2 3 Khaled El Emam 3 0 3 Thomas Thelin 1 1 2 Siavash Mirarab 2 0 2 Hyunsook Do 2 0 2 Erik Kamsties 0 2 2 Thomas G. Harbich 2 0 2 Ladan Tahvildari 2 0 2 Christopher M. Lott 0 2 2 Oliver Laitenberger 2 0 2
62
Autor # Rep. Int. # Rep. Ext. # Total SWEBOK
6 - SOFTWARE MAINTENANCE Mario Piattini 6 0 6 Dag I. K. Sjøberg 4 0 4 Felix Garcia 3 0 3 John Krogstie 3 0 3 Marcela Genero 3 0 3 Esperanza Manso 3 0 3 Francisco Ruiz 3 0 3 Lionel C. Briand 2 0 2 Corrado Aaron Visaggio 2 0 2 Carmine Gravino 2 0 2 Aaron Visaggio 2 0 2 John W. Daly 1 1 2 Genoveffa Tortora 2 0 2 Erik Arisholm 2 0 2 Gerardo Canfora 2 0 2 Rocco Oliveto 2 0 2 Giuseppe Visaggio 2 0 2 Andrea De Lucia 2 0 2
7 - SOFTWARE CONFIGURATION MANAGEMENT Gengshen Du 2 0 2 Jim Mcelroy 2 0 2 Guenther Ruhe 2 0 2
8 - SOFTWARE ENGINEERING MANAGEMENT Magne Jørgensen 6 0 6 Emilia Mendes 3 2 5 Chris Lokan 2 2 4 Karl Halvor Teigen 3 0 3 Kejetil Moløkken 3 0 3 Sandro Morasca 2 0 2 Luciano Baresi 2 0 2
9 - SOFTWARE ENGINEERING PROCESS Silvia Abrahão 4 0 4 Mario Piattini 4 0 4 Corrado Aaron Visaggio 4 0 4 Felix Garcia 4 0 4 Geert Poels 4 0 4 Gerardo Canfora 4 0 4 Marvin V. Zelkowitz 3 0 3 Sima Asgari 3 0 3 Forrest Shull 3 0 3 Lorin Hochstein 3 0 3 Victor R. Basili 3 0 3 Jeffrey Carver 3 0 3 Jeffrey K. Hollingsworth 3 0 3
63
Autor # Rep. Int. # Rep. Ext. # Total SWEBOK
CHAPTER 11: SOFTWARE QUALITY Victor R. Basili 2 1 3 Lawrence G. Votta 2 0 2 Adam A. Porter 2 0 2 Giuseppe Visaggio 1 1 2
O número total de universidades, instituições de pesquisa e empresas constituem 97
organizações distintas, que estão localizados em 19 países diferentes. As Universidades de
Sannio (Itália), Castilla-La Mancha (Espanha), College Park (Maryland) e Simula Research
Laboratory (Noruega) são as organizações mais ativas na produção de replicações. Do
número total de organizações que produziram estudos de replicação, apenas 15 (15%),
produziram replicações externas e internas.
Na Tabela XV e Tabela XVI são apresentadas, respectivamente, as organizações mais
ativas nos trabalhos de replicações externas e internas. Foram consideradas como mais ativas,
as organizações que produziram, pelo menos, 2 replicações (internas e/ou externas).
Tabela XV - Organizações Envolvidas com Replicações Externas
Replicações Externas Organização # Rep Ext./Total Lund University 5/6 University of Strathclyde 4/5 Peking University 3/3 University of Bari 2/5 University of Auckland 2/5 CalTech 2/2 Brunel University 2/2 University of Kaiserslautern 2/4 California State University 2/2 Miami University 2/2 University of Maryland, College Park 1/14 Fraunhofer Institute for Experimental Software Engineering 1/9 Fraunhofer CESE 1/7 Carleton University 1/5 Universität Karlsruhe 1/3 Linköping University 1/2 abaXX Technology 1/2 University of Antwerp 1/2 University of Southampton 1/2 Agilent Technologies 1/2
64
Tabela XVI - Organizações Envolvidas com Replicações Internas
Replicações Internas Organização # Rep Int./Total University of Sannio 16/16 University of Castilla-La Mancha 14/14 University of Maryland, College Park 13/14 Simula Research Laboratory 11/11 Fraunhofer IESE 8/9 University of Genova 7/7 Politecnico di Torino 7/7 Fondazione Bruno Kessler 7/7 Fraunhofer CESE 6/7 Ghent University 6/6 Universidad Politécnica de Valencia 5/5 Blekinge Institute of Technology 4/4 University of Oslo 4/4 University of Nebraska-Lincoln 4/4 Mississippi State University 4/4 Carleton University 4/4 University of Valladolid 4/4 Norwegian University of Science and Technology 3/3 University of Bari 3/3 University of Salerno 3/3 Canadian National Research Council, Intstitute for
Information Technology
3/3
University of Auckland 3/3 Università degli Studi dell’Insubria 2/2 University of New South Wales 2/2 North Dakota State University 2/2 Universität Karlsruhe 2/2 Indiana University Southeast 2/2 IBM 2/2 University of Kaiserslautern 2/2 Politecnico di Milano 2/4 University of Waterloo 2/2 University of Basilicata 2/2 Software Production Research Department, AT&T 2/2 University of Calgary 2/2 Bosch Telecom GmbH 2/2 Avaya Labs Research 2/2 Universität Karlsruhe 2/2 Carnegie Mellon University 2/2 The Ohio State University 2/2 Lund University 1/6 University of Strathclyde 1/5 abaXX Technology 1/2 Linköping University 1/2 University of Antwerp 1/2
65
Replicações Internas Organização # Rep Int./Total University of Southampton 1/2 Agilent Technologies 1/2
A maioria das replicações foi desenvolvida em organizações localizadas na Itália
(30/125), Estados Unidos (22/125) e Espanha (20/125). Na Austrália (2) e Espanha (20) só
foram desenvolvidas replicações internas. Na Figura 6, é apresentada a lista dos países em que
duas ou mais replicações foram realizadas. Organizações na Argentina, Dinamarca, Hong
Kong, Irlanda e Turquia contribuíram com uma replicação cada.
Figura 6 - Distribuição Geográfica das Replicações Internas e Externas
RQ04: Quais os métodos de pesquisa estão sendo utilizados nas replicações?
Utilizou-se a classificação de métodos de pesquisa apresentados por Easterbrook et al.
(2007) na pesquisa e classificação dos estudos. Foram encontradas replicações externas
(Figura 7) em estudos de caso, experimentos controlados e quasi experimentos. E replicações
internas (Figura 8), em estudos de caso, experimentos controlados, quasi experimentos e
surveys.
Replicações externas utilizando estudo de caso, só aparecem a partir de 2005, e
demonstram um número crescente de estudos, ao contrário de replicações externas utilizando
experimentos controlados, que só apresentaram registros até 1998. O número de estudos que
3 3 2 1
69
13 4 4
22 1 13
75
3
12 11 11
2018
28
0
5
10
15
20
25
30
Externa Interna
66
desenvolveram replicações externas utilizando quasi experimento é o mais frequente, desde
1994 e apresentando um crescimento importante, a partir de 2008.
Figura 7 - Métodos de Pesquisa Utilizados em Replicações Externas
Replicações internas utilizando estudo de caso e survey são as menos frequentes, e
aparecem a partir de 1999 e 2000 respectivamente. Replicações internas utilizando
experimentos controlados foram registradas desde 1995, apresentando um crescimento
importante em 2010. O número de estudos que desenvolvem replicações internas utilizando
quasi experimento é o mais frequente desde 1995, apresentando número superior a 3 estudos
desde 2004. Embora tenham sido registradas replicações utilizando survey, estes estudos são
esparsos, sendo desenvolvidos em intervalos de 3 anos.
1994 1995 1996 1997 1998 1999 2000 2001 2005 2006 2007 2008 2009 2010
Estudo de Caso 0 0 0 0 0 0 0 0 1 0 2 0 2 3
Experimento Controlado 0 2 0 1 1 0 0 0 0 0 0 0 0 0
Quasi Experimento 1 0 1 3 1 2 4 1 2 1 1 1 2 4
0
1
2
3
4
5
67
Figura 8 - Métodos de Pesquisa Utilizados em Replicações Internas
A grande maioria das replicações é quasi experimentos, que corresponderam a 63%
(79/125) de todas as replicações. Juntos, os experimentos controlados e quasi experimentos
representam 84% (105/125) das replicações (Tabela XVII). Não foi encontrada nenhuma
replicação que fosse classificada como etnografia ou pesquisa-ação. Estes resultados não são
uma surpresa, já que seria de se esperar que a grande maioria de replicações fosse de
experimentos controlados ou quasi experimentos. Nenhum survey foi classificado como
replicação externa. Foram encontradas algumas dificuldades na análise de estudos de caso e
surveys, as quais serão discutidas na Seção 4.2.1.
Tabela XVII - Replicações por Método de Pesquisa
Método Externa (%) Interna (%) Total (%) Estudo de Caso 8 (6%) 8 (6%) 16 (13%) Experimento Controlado 4 (3%) 22 (18%) 26 (21%) Quasi Experimento 24 (19%) 55 (44%) 79 (63%) Survey 0 (0%) 4 (3%) 4 (3%) Total 36 (29%) 89 (71%) 125 (100%)
Manutenção de Software (capítulo 6) é o único tópico do SWEBOK onde foram
registradas replicações utilizando os 4 métodos de pesquisas (Figura 9). Todos os tópicos
1995 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Estudo de Caso 0 0 0 1 0 1 1 0 0 0 0 2 0 2 1
Experimento Controlado 2 1 0 0 1 0 0 0 3 4 2 2 0 1 6
Quasi Experimento 1 1 1 3 1 3 1 1 6 9 4 6 4 9 5
Survey 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1
0
1
2
3
4
5
6
7
8
9
10
68
registram experimentos de replicação que utilizam experimento controlado ou quasi
experimento. Só não há registro de replicações utilizando quasi experimento em configuração
de software (capítulo 7). Neste capítulo só foram registradas replicações utilizando
experimento controlado. Só há registros de replicações utilizando survey no tópico
manutenção de software (capítulo 6).
Figura 9 - Métodos de Pesquisa Utilizados nos Temas da Engenharia de Software
(Capítulos do SWEBOK)
Nesta parte da análise, foi realizada uma nova extração nos papers REP, seguindo a
mesma metodologia de extração apresentada, para enriquecê-la com informações sobre qual
tipo de unidade de análise foi utilizado em cada replicação. Os resultados mostram que a
grande maioria das replicações utilizou estudantes e pesquisadores (acadêmicos) como
unidades de análise, com profissionais da indústria em segundo lugar (Tabela XVIII).
Tabela XVIII - Tipos das Unidades de Análises das Replicações
Unidade de Análise Acadêmicos Profissionais Organizações Artefatos
73 (58%) 34 (27%) 3 (2%) 15 (12%)
0
2
4
6
8
10
12
14
16
Estudo de Caso
Experimento Controlado
Quasi Experimento
Survey
69
RQ05: Que conjuntos de replicações foram encontrados?
A literatura tem usado o termo família de experimentos para se referir aos conjuntos de
replicações que se referem ao mesmo estudo original (BASILI V, et al., 1999). Não foi
utilizado esse termo neste estudo, porque não foi realizada uma análise mais profunda dos
conjuntos de replicações para verificar se eles foram consistentes com a definição de família.
Em vez disso, foi utilizado o termo genérico “conjunto” para as replicações que se referem ao
mesmo estudo original.
Na Tabela XIX, encontram-se os conjuntos identificados de replicações. Foram
agrupados por seção do SWEBOK e relacionadas as informações de identificação do conjunto
(Conj), ano de publicação dos estudos, sequência do estudo dentro do conjunto (Seq),
referência do estudo original (ORIxxx), referência do estudo de replicação (REPxxx),
classificação da replicação (Int = Interna, Ext = Externa), título do estudo e o índice de
qualidade do estudo (QL). As referências REPxxx e ORIxxx encontram-se no Apêndice A
deste documento.
Tabela XIX - Conjuntos de Replicações
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK 2 - SOFTWARE REQUIREMENTS
1
1997 0 ORI087
Validating the Defect Detection
Performance Advantage of Group
Designs for Software Reviews:
Report of a Laboratory
Experiment Using Program Code
100%
1997 1 REP087 Interna
Validating the Defect Detection
Performance Advantage of Group
Designs for Software Reviews:
Report of a Replicated
Experiment
72%
2 2005 0 REP068 REP068 Interna Investigating the Role of Use
Cases in the Construction of Class
Diagrams
95%
3 2006 0 REP026 REP026 Interna Empirical assessment of using
stereotypes to improve
comprehension of UML models
95%
4 2007 0 REP029 REP029 Interna The Role of Experience and
Ability in Comprehension Tasks
supported by UML Stereotypes
100%
5 2007 0 ORI111 Recovering Traceability Links in 71%
70
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK Software Artifact Management
Systems using Information
Retrieval Methods
2009 1 REP111 Interna Assessing IR-based traceability
recovery tools through controlled
experiments
78%
6
2008 0 ORI023
Value-Based Design Decision
Rationale Documentation:
Principles and Empirical
Feasibility Study
86%
2008 1 REP023 Interna A value-based approach for
documenting design decisions
rationale - a replica experiment
50%
7 2008 0 ORI011
An Empirical Investigation on
Dynamic Modeling in
Requirements Engineering
100%
2009 1 REP011 Interna On the Effectiveness of Dynamic
Modeling in UML 72%
8 2009 0 REP094 REP094 Interna
How Developers’ Experience and
Ability Influence Web Application
Comprehension Tasks Supported
by UML Stereotypes: A Series of
Four Experiments
100%
9
2010 0 ORI012 Can screen mockups improve the
comprehension of functional
requirements?
100%
2010 1 REP012 Interna
On the effectiveness of screen
mockups in requirements
engineering_ results from an
internal replication
81%
3 - SOFTWARE DESIGN
10
2000 0 ORI001 Use of friends in C++ software:
an empirical investigation 86%
2010 1 REP001 Externa A replicated and refined empirical
study of the use of friends in C++
software
84%
11 2002 0 REP091 REP091 Interna
Two Controlled Experiments
Assessing the Usefulness of
Design Pattern Documentation in
Program Maintenance
86%
12 2005 0 REP101 REP101 Interna
The Influence of the Level of
Abstraction on the Evolvability of
Conceptual Models of Information
Systems
91%
13 2006 0 ORI027 Performances of Pair Designing
on Software Evolution: a
controlled experiment
100%
71
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK
2007 1 REP027 Interna Evaluating performances of pair
designing in industry 88%
14 2010 0 REP016 REP016 Interna
The impact of structural
complexity on the
understandability of UML
statechart diagrams
86%
4 - SOFTWARE CONSTRUCTION
15
1991 0 ORI086
Comprehensibility of visual and
textual programs: a test of
superlativism against the 'match-
mismatch' conjecture.
--
1997 1 REP086 Externa
Visual Depiction of Decision
Statements: What is Best for
Programmers and Non-
programmers
75%
16 1995 0 REP089 REP089 Interna The Effects of Layering and
Encapsulation on Software
Development Cost and Quality
68%
17
1998 0 ORI055 A Comprehensive Empirical
Validation of Product Measures
for Object-Oriented Systems
100%
1999 1 REP055 Interna Investigating Quality Factors in
Object-Oriented Designs: an
Industrial Case Study
66%
2001 2 REP099 Interna Replicated Case Studies for
Investigating Quality Factors in
Object-Oriented Designs
75%
18 1999 0 REP083 REP083 Interna Comprehending Object and
Process Models: An Empirical
Study
91%
19
2002 0 ORI076 Two Case Studies of Open Source
Software Development: Apache
and Mozilla
79%
2005 1 REP076 Externa The FreeBSD Project: A
Replication Case Study of Open
Source Development
69%
20
2009 0 ORI104
How Tagging helps bridge the
Gap between Social and
Technical Aspects in Software
Development
93%
2010 1 REP104 Externa Investigating the Use of Tags in
Collaborative Development
Environments: A Replicated Study
63%
21 2010 0 REP065 REP065 Interna Understanding Exception
Handling Viewpoints of Novices
and Experts
77%
22 2006 0 ORI118 The camel has two humps 43%
72
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK (working title)
2007 1 REP119 Externa Mental Models and Programming
Aptitude 56%
2008 2 REP118 Externa On the Difficulty of Replicating
Human Subjects Studies in
Software Engineering
94%
2010 3 REP120 Externa
The Effect of Reasoning Strategies
on Success in Early Learning of
Programming: Lessons Learned
from an External Experiment
Replication
88%
23
2000 0 ORI121 A Case Study of Open Source
Software Development: The
Apache Server
86%
2010 1 REP121 Externa
How Developers Participate in
Open Source Projects:
a Replicate Case Study on
JBossAS, JOnAS and Apache
Geronimo
63%
5 - SOFTWARE TESTING
24
1987 0 ORI085 Comparing the Effectiveness of
Software Testing Strategies 86%
1995 1 REP085 Externa An Empirical Evaluation of Three
Defect-Detection Techniques 78%
1997 2 REP048 Externa An empirical evaluation of defect
detection techniques 69%
25
1998 0 ORI043 Estimating the number of
remaining defects after inspection 86%
2009 1 REP043 Externa Confidence intervals for capture–
recapture estimations in software
inspections
72%
26 2000 0 REP049 REP049 Interna An empirical incremental
approach to tool evaluation and
improvement
100%
27
2000 0 ORI021 Quantitative Analysis of Faults
and Failures in a Complex
Software System
86%
2007 1 REP021 Externa A Replicated Quantitative
Analysis of Fault Distributions in
Complex Software Systems
78%
28 2001 0 REP051 REP051 Interna An Internally Replicated Quasi-
Experimental Comparison of
Checklist
95%
29 2002 0 ORI020
An Empirical Method for
Selecting Software Reliability
Growth Models
86%
2007 1 REP020 Externa A replicated empirical study of a 84%
73
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK selection method for software
reliability growth models
30
2003 0 ORI038 An Experimental Comparison of
Usage-Based and Checklist-Based
Reading
100%
2004 1 REP038 Interna A Replicated Experiment of
Usage-Based and Checklist-Based
Reading
94%
31
2004 0 ORI041 Does Active Guidance Improve
Software Inspections? A
Preliminary Empirical Study
100%
2004 1 REP041 Interna Assessing the impact of active
guidance for defect detection a
replicated experiment
75%
32
2004 0 ORI006
Evaluating Web Software
Reliability Based on Workload
and Failure Data Extracted from
Server Logs
71%
2009 1 REP006 Externa
Another viewpoint on “evaluating
web software reliability based on
workload and failure data
extracted from server logs”
63%
33
2005 0 ORI009 A Characterization Schema for
Software Testing Techniques 93%
2009 1 REP009 Externa
Evaluation of {model-based}
testing techniques selection
approaches_ An external
replication
81%
34 2007 0 REP061 REP061 Interna Experimenting with software
testbeds for evaluating new
technologies
23%
35 2008 0 REP102 REP102 Interna
Theory of relative defect
proneness - Replicated studies on
the functional form of the size-
defect relationship
68%
36 2009 0 REP031 REP031 Interna
Using acceptance tests as a
support for clarifying
requirements- A series of
experiments
100%
37 2010 0 REP015 REP015 Interna The Effects of Time Constraints
on test case prioritization 100%
6 - SOFTWARE MAINTENANCE
38 1986 0 ORI073
An empirical study of the effects
of modularity on program
modifiability.
--
1994 1 REP073 Externa Verification of results in software
maintenance through external 72%
74
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK replication
39
1996 0 ORI034 Evaluating inheritance depth on
the maintainability of object
oriented software
100%
1999 1 REP058 Externa An Empirical View of Inheritance 44%
2000 2 REP090 Externa
Experimental assessment of the
effect of inheritance on the
maintainability of object-oriented
systems
59%
2001 3 REP034 Externa A controlled experiment on
inheritance depth as a cost factor
for code maintenance
81%
40
1996 0 ORI045 Effort Estimation Using Analogy 57%
1999 1 REP045 Externa A controlled experiment to assess
the benefits of estimating with
Analogy and Regression Models
50%
41 1999 0 REP052 REP052 Interna Assessing the maintenance
process through replicated,
controlled
91%
42 1999 0 ORI046
An Assessment and Comparison
of Common Software Cost
Estimation Modeling Techniques
71%
2000 1 REP046 Interna A replicated Assessment and
Comparison of Common Software 63%
43
1997 0 ORI033
Na experimental comparison of
the maintainability of object-
oriented and structured design
documents
100%
2001 1 REP033 Interna
A controlled experiment for
evaluating quality guidelines on
the maintainability of object-
oriented designs
88%
44
2001 0 ORI032 A Controlled Experiment in
Maintenance Comparing Design
Patterns to Simpler Solutions
100%
2004 1 REP032 Interna
A Controlled Experiment
Comparing the Maintainability of
Programs Designed with and
without Design Patterns—A
Replication in a Real
Programming Environment
91%
45
2004 0 ORI081 Definition and Empirical
Validation of Metrics for Software
Process Models
100%
2004 1 REP081 Interna An Experimental Replica to
Validate a set of Metrics for
Software Process Models
78%
75
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK
2005 1 REP044 Interna Maintainability of software
process models. An empirical
study
81%
46
2001 0 ORI093
Assessing the Changeability of
Two Object-Oriented Design
Alternatives—A Controlled
Experiment
100%
2004 1 REP093 Interna
Evaluating the Effect of a
Delegated versus Centralized
Control Style on the
Maintainability of Object-
Oriented Software
56%
47 2004 0 REP084 REP084 Interna
Finding “Early” Indicators of
UML Class Diagrams
Understandability and
Modifiability
82%
48
2003 0 ORI070 Building UML Class Diagram
Maintainability Prediction
Models Based on Early Metrics
100%
2007 1 REP070 Interna Building measure-based
prediction models for UML class
diagram maintainability
94%
49 2008 0 REP066 REP066 Interna The Effect of Pairs in Program
Design Tasks 91%
50
2003 0 ORI010 Locating Features in Source Code 64%
2009 1 REP010 Externa Feature Location in COBOL
Mainframe Systems - an
Experience Report
63%
51 2010 0 REP007 REP007 Interna
Assessing the influence of import-
coupling on OCL expression
maintainability_ A cognitive
theory-based perspective
100%
52 2010 0 REP072 REP072 Interna An experimental comparison of
ER and UML class diagrams for
data modelling
100%
53
1994 0 ORI114 Software Maintenance in Norway:
A Survey Investigation 86%
2000 1 REP114 Interna
A study of development and
maintenance in Norway:
assessing the efficiency of
information systems support using
functional maintenance
78%
2006 2 REP115 Interna
A longitudinal study of
development and maintenance in
Norway: Report from the 2003
investigation
78%
2010 3 REP116 Interna A longitudinal study of 78%
76
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK development and maintenance
7 - SOFTWARE CONFIGURATION MANAGEMENT
54 2006 0 REP019 REP019 Interna A family of empirical studies to
compare informal and
optimization based planning
91%
8 - SOFTWARE ENGINEERING MANAGEMENT
55
2001 0 ORI025 Using Public Domain Metrics to
Estimate Software Development
Effort
71%
2005 1 REP037 Externa
A replicated comparison of cross-
company and within-company
effort estimation models using the
ISBSG database
78%
2006 2 REP025 Externa Cross-company and single-
company effort models using the
ISBSG database
63%
2007 3 REP037 REP028 Interna Replicating studies on cross- vs
single-company effort models
using the ISBSG Database
81%
56
2003 0 ORI036 Do Adaptation Rules Improve
Web Cost Estimation? 79%
2003 1 REP036 Interna A replicated assessment of the use
of adaptation rules to improve
Web cost estimation
78%
57
2003 0 ORI039 Software Effort Estimation by
Analogy and “Regression Toward
the Mean”
71%
2005 1 REP039 Externa
A Replication of the Use of
Regression towards the Mean
(R2M) as an Adjustment to Effort
Estimation Models
78%
58 2004 0 REP082 REP082 Interna
Better Sure Than Safe?
Overconfidence in Judgment
Based Software Development
Effort Prediction Intervals
59%
59 2007 0 REP030 REP030 Interna Three Empirical Studies on
Estimating the Design Effort of
Web Applications
95%
60
2008 0 ORI105
Investigating the Use of
Chronological Splitting to
Compare Software Cross-
company and Single-company
Effort Predictions
86%
2009 1 REP105 Interna
Investigating the Use of
Chronological Splitting to
Compare Software Cross-
company and Single-company
69%
77
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK Effort Predictions: A Replicated
Study
61 2010 0 REP095 REP095 Interna
Identification of more risks can
lead to increased over-optimism
of and over-confidence in
software development effort
estimates
100%
9 - SOFTWARE ENGINEERING PROCESS
62
2004 0 ORI022
Evaluating a Functional Size
Measurement Method for Web
Applications: An Empirical
Analysis
100%
2008 1 REP022 Interna A replicated study on the
evaluation of a size measurement
procedure for web applications
81%
63 2005 0 REP035 REP035 Interna A family of experiments to
validate metrics for software
process models
100%
64 2005 0 REP071 REP071 Interna Parallel Programmer
Productivity. A Case Study of
Novice Parallel Programmers
77%
65 2009 0 REP003 REP003 Interna
A family of experiments to
evaluate a functional size
measurement procedure for Web
applications
100%
66 2009 0 REP005 REP005 Interna An investigation of the
relationships between lines of
code and defects
91%
10 - SOFTWARE ENGINEERING TOOLS AND METHODS
67 2009 0 REP014 REP014 Interna The Effectiveness of Source Code
Obfuscation: an Experimental
Assessment
95%
68 1998 0 ORI060 Guiding Use Case Authoring :
Results of an Empirical Study 71%
2000 1 REP060 Externa Replicating the CREWS Use Case
Authoring 78%
11 - SOFTWARE QUALITY
69 1994 0 ORI057
A Metrics Suite for Object-
Oriented Design 79%
1996 1 REP057 Externa A Validation of Object-Oriented
Design 84%
70 1995 0 REP053
Comparing detection methods for
software requirements
inspections: A replicated
experiment
91%
1995 1 REP053 Interna Comparing detection methods for
software requirements 91%
78
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK inspections: A replicated
experiment
1997 2 REP047 Externa A Replicated Experiment to
Assess Requirements Inspection
Techniques
78%
1998 3 REP050 Externa
An extended replication of an
experiment for assessing methods
for Assessing Methods for
Software Requirements
Inspections
91%
1998 4 REP088 Externa Further Experiences with
Scenarios and Checklists 88%
1998 5 REP112 Interna
Comparing Detection Methods
For Software Requirements
Inspections: A Replication Using
Professional Subjects
81%
71
1996 0 ORI092 The Empirical Investigation of
Perspective-Based Reading. 100%
2000 1 REP092 Externa
Are the Perspectives Really
Different? – Further
Experimentation on Scenario-
Based Reading of Requirements
66%
2006 2 REP098 Interna
Perspective-Based Reading: A
Replicated Experiment Focused
on Individual Reviewer
Effectiveness
81%
1997 3 REP113 Interna Empirical Investigation of
perspective-based reading: A
replicated experiment
78%
72
2003 0 ORI024 Comprehensibility and Efficiency
of Multiview Framework for
Measurement Plan Design
93%
2005 1 REP024 Interna
Assessing multiview framework
(MF) comprehensibility and
efficiency: A replicated
experiment
56%
73 2005 0 REP103 REP103 Interna Two controlled experiments
concerning the comparison of
pair programming to peer review
95%
74
2007 0 ORI107
Recovering Traceability Links in
Software Artifact Management
Systems using Information
Retrieval Methods
93%
2007 1 REP107 Interna
A Replicate Empirical
Comparison between Pair
Development and Software
Development with Inspection
69%
79
Conj. Ano Seq ORI REP Int/Ext Título QL
SWEBOK 12 - RELATED DISCIPLINES OF SOFTWARE ENGINEERING
75
1997 0 ORI106
The Personal Software Process-
SM (PSP-SM): An Empirical
Study of the Impact of PSP on
Individual Engineers
79%
2000 1 REP106 Externa A Replicated Empirical Study of
the Impact of the Methods in the
PSP on Individual Engineers
81%
76 2003 0 REP040 REP040 Interna An empirical study of speed and
communication in globally
distributed software development
82%
Foram identificados 76 conjuntos de replicações, dos quais 33 apresentaram o estudo
original e as replicações no mesmo paper (single report) e 43 conjuntos em papers separados
(multiple reports). O conjunto S5 foi o único conjunto identificado com uma replicação
interna replicando uma replicação externa no mesmo conjunto.
O número de replicações em cada conjunto variou de um a cinco (Tabela XX). Os
conjuntos com apenas uma replicação são a maioria, composto por 62% dos conjuntos.
Apenas 16 conjuntos de têm três ou mais replicações. Um dos conjuntos em S4 foi composto
por quatro replicações externas e outro por quatro replicações internas em um single report. O
único conjunto de S5 é composto por duas replicações internas e três externas.
Tabela XX - Síntese dos Conjuntos de Replicações
Id. Conjuntos # Rep./Conj. # Conjuntos % S1 1 47 62% S2 2 13 17% S3 3 13 17% S4 4 2 3% S5 5 1 1%
Conjuntos 76 100%
O baixo número de replicações por conjunto é uma preocupação. A média de
replicações por conjunto é de apenas 1,6 (excluindo o estudo original). Sessenta e dois por
cento dos conjuntos têm uma replicação e desses, 72% (34/47) são replicações internas.
Considerando-se que conjuntos com pequeno número de replicações adicionam muito pouco
80
conhecimento, o benefício das replicações ainda é pequeno em relação ao incremento da
validade interna e externa dos estudos.
RQ06: Qual é a qualidade dos trabalhos de replicação?
Foi avaliada a qualidade dos relatórios das replicações e não das aplicações
individualmente. Ou seja, quando um paper relatou mais de uma replicação, foi avaliada a
qualidade do estudo completo, e não a qualidade de cada replicação separadamente. Embora
isto possa parecer uma limitação, a falta de informações detalhadas sobre as replicações
individuais dentro dos papers poderia tornar a avaliação da qualidade individual difícil, ou até
mesmo impossível, na maioria dos casos. Por este motivo, a coluna de N na Tabela XXI
refere-se ao número de papers avaliados, e não ao número de replicações.
Conforme mencionado na Seção 3.8, os papers foram avaliados quanto à qualidade do
planejamento do estudo, execução, resultados e conclusões. A avaliação dos papers relatando
replicações multiple reports, incluiu critérios para avaliar a qualidade da descrição dos seus
estudos originais. Apesar de se utilizarem os mesmos critérios para avaliar os papers que
descreveram replicações internas e externas, foi necessário ajustar os critérios para replicações
single report (aquelas em que um conjunto de replicações é relatado em um único paper). Para
a maioria dessas replicações, foi possível encontrar uma maneira clara para separar a
descrição do original a partir da descrição das replicações. Assim, optou-se por um conjunto
de critérios modificados.
A Figura 10 apresenta a evolução da qualidade média do total de replicações. A média
global dos estudos selecionados foi de 82%, sendo índice inferior de 72%, nos anos 1994 e
1999, e índice superior de 87%, no ano de 2001. Nos dois últimos anos o índice foi de 86%.
81
Figura 10 - Evolução da Qualidade das Replicações
A Figura 11 apresenta a evolução das médias dos índices de qualidade das replicações
internas e externas ao longo dos anos. Todas as replicações, internas e externas, apresentaram
índice de qualidade superior a 60%, exceto duas replicações externas realizadas em 1999. O
estudo [REP045] do Apêndice A, com índice de qualidade de 50% e o estudo [REP058], com
índice de 44%. Esses baixos índices estão associados, basicamente, à falta de referências ao
estudo original e aos tratamentos de suas validades.
Figura 11 - Evolução da Qualidade das Replicações Internas e Externas
1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Total 72% 77% 84% 74% 86% 72% 75% 87% 82% 80% 73% 85% 86% 81% 77% 86% 86%
40%
45%
50%
55%
60%
65%
70%
75%
80%
85%
90%
1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Externa 72% 78% 84% 74% 89% 47% 71% 81% 0% 0% 0% 75% 63% 73% 94% 70% 73%
Interna 0% 76% 0% 75% 81% 85% 80% 88% 82% 80% 73% 87% 90% 84% 73% 92% 93%
40%
50%
60%
70%
80%
90%
100%
82
Na Figura 12 é apresentada, por ano, a evolução das médias dos índices de qualidade
das replicações single report e multiple reports. As médias dos índices de qualidade das
replicações single report são maiores que as médias dos índices de qualidade das replicações
multiple reports, exceto em 1995 e 2004, cujas médias dos índices das replicações multiple
reports (78% e 79%) são maiores do que as single report (76% e 65%).
Figura 12 - Evolução da Qualidade das Replicações Single e Multiple Reports
Diferenças semelhantes ocorrem quando observadas as replicações internas (Figura
13). As médias dos índices de qualidade das replicações internas single report são maiores
que as médias dos índices de qualidade das replicações internas multiple reports, exceto em
2004 e 2007, cujas médias dos índices das replicações internas multiple reports (82% e 83%)
são maiores do que as single report (78% e 81%).
1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Multi-Report 72% 78% 84% 74% 86% 53% 71% 81% 0% 78% 79% 74% 74% 81% 75% 71% 74%
Single-Report 0% 76% 0% 0% 0% 91% 100% 95% 82% 82% 65% 91% 94% 83% 80% 98% 95%
40%
50%
60%
70%
80%
90%
100%
110%
83
Figura 13 - Evolução da Qualidade das Replicações Internas Single e Multiple Reports
A Tabela XXI sintetiza as médias dos índices de qualidade para cada tipo de
replicação (interna e externa) e para cada tipo de relatório (multiple reports e single report),
apresentado também, uma percentagem da pontuação máxima, tornando possível comparar os
conjuntos.
Tabela XXI - Síntese das Médias dos Índices de Qualidade das Replicações
N Média Desvio Padrão Replicações Externas 31 73% 0,12 Replicações Internas 62 83% 0,15
Total 93 80% 0,15 Multiple reports 60 75% 0,11 Single report 33 88% 0,16
Total 93 80% 0,15 Multiple reports (Internas) 29 76% 0,11 Single report (Internas) 33 88% 0,16
Total 62 83% 0,15
Os relatórios de replicações externas tiveram menor média do que o conjunto de
replicações internas, e a diferença das médias é estatisticamente significativa (t = -3.299, p
<0,001). Da mesma forma, replicações multiple reports, apresentaram médias
significativamente inferiores às replicações single report (t = -4.407, p <0,001).
1995 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Multi-Report 0% 75% 81% 66% 70% 81% 0% 78% 79% 73% 80% 85% 66% 73% 80%
Single-Report 76% 0% 0% 91% 100% 95% 82% 82% 65% 91% 94% 83% 80% 98% 95%
40%
50%
60%
70%
80%
90%
100%
110%
84
Essa diferença pode ser explicada observando-se os critérios de avaliação individual
de qualidade. Os papers de replicações externas e internas foram avaliados com relação à
qualidade da descrição do estudo original, e as avaliações destes critérios foram
sistematicamente inferiores, comparando-se com os demais critérios. Como explicado
anteriormente, os critérios relativos à descrição do estudo original não foram utilizados para
avaliar as replicações internas single reports. Se forem excluídos estes critérios da avaliação
de replicações externas, aumenta a pontuação média do índice de qualidade para 83%, o
mesmo que todo o conjunto de replicações internas, e comparáveis (a diferença não é
estatisticamente significativa) para as replicações internas single report. Da mesma forma, a
média do índice de qualidade das replicações multiple reports aumenta para 86%, quando se
retiram os mesmos critérios.
Estes resultados indicam que a qualidade geral dos trabalhos é boa se levado em conta
os critérios genéricos de avaliação de qualidade para os estudos empíricos em geral. No
entanto, se forem adicionados os critérios de qualidade para avaliar especificamente a
descrição dos estudos originais, como proposto por Carver (2010), a qualidade dos relatórios
diminui. Pode-se pensar em três razões para explicar a má qualidade da descrição dos estudos
originais. Primeiro, uma descrição completa do estudo original toma espaço e partes
importantes podem ser deixadas de fora em publicações de conferências em que há restrições
sobre o número de páginas. Em segundo lugar, os pesquisadores não sabem que essa
descrição deve ser parte de seus trabalhos. Em terceiro lugar, informações detalhadas sobre o
estudo original podem não estar disponíveis e os pesquisadores relataram com o que
dispunham.
Diretrizes para documentar replicações podem abordar a segunda razão. Repositórios
para armazenar dados sobre experimentos e replicações abordariam a primeira e terceira
razões.
RQ07: Quais as principais lições aprendidas apresentadas nos estudos de
replicação?
Dos 93 estudos de replicação (REP), apenas 31 (33%) registraram alguma lição
aprendida sobre replicação. As lições aprendidas mais referenciadas estão associadas à
operacionalização dos experimentos de replicação.
85
Na Tabela XXII são apresentadas as principais lições aprendidas apresentadas pelos
estudos.
Tabela XXII - Principais Lições Aprendidas
Tema Evidência de Lição Aprendida Referência do Estudo
(Apêndice A)
Operacionalização do Experimento
“[...] Conduzir esta replicação externa introduziu vários aspectos positivos e negativos neste experimento no seu planejamento, projeto, execução e análise. [...] Planejamento: Essa etapa foi totalmente simples de ser executada porque foi reaproveitado do estudo original. [...] Projeto: Essa foi a fase mais difícil de ser realizada por conta da impossibilidade da repetição das condições descritas no estudo original. Foi necessário fazer algumas alterações em relação ao estudo original, sem afetar as suas hipóteses e seus objetivos. [...] Execução: Esta etapa não foi fortemente afetada pela o fato de estarmos conduzindo uma replicação. [...] Análise: Todos os procedimentos estatísticos da análise foram relatados com base nos procedimentos do estudo original. Nós só tivemos que utilizar outra ferramenta estatística de análise, por conta de não termos acesso à mesma ferramenta utilizada no estudo original.”
REP009
“[...] Re-analisamos os dados do experimento original utilizando o mesmo modelo de regressão, método de estimação e software na replicação, tornando assim mais fácil de comparar os dois experimentos.”
REP032
“[...] Replicação, em geral, suscita uma questão de como comparar e combinar os resultados do estudo original e as replicações. Identificamos as técnicas de meta-análise como uma ferramenta útil para este fim.”
REP051
“[...] Efeitos da replicação são causados por diferenças nos materiais, participantes, ou a execução de múltiplas replicações.”
REP112
“[...] Mesmo que um experimento pareça ser fácil de ser replicado, não significa necessariamente que ele é adequado para ser replicado. O pesquisador deve verificar a necessidade de compreensão da teoria, o processo de geração de hipóteses, a interferência, na confiabilidade, a interpretação dos resultados e da comparabilidade dos resultados dos experimentos.”
REP120
Validade e Generalização dos
Resultados
“[...] Replicação do experimento em dois locais diferentes nos permitiu comparar os seus efeitos em populações de usuários com diferentes formações.”
REP031
86
Tema Evidência de Lição Aprendida Referência do Estudo
(Apêndice A) “[...] Nossa experiência a partir da replicação de vários experimentos com o uso de ferramentas profissionais é que o uso de ferramentas de desenvolvimento de sistemas requer uma preparação adequada do experimento.”
REP068
Documentação e Difusão
“[...] Ao publicar dados empíricos que confirmem ou rejeitem os conhecimentos convencionais e os resultados do estudo original, mais lições podem ser aprendidas sobre a área pesquisada.”
REP021
“[...] A replicação foi facilitada pela descrição detalhada do processo original. Publicação dos resultados é importante.”
REP039
“[...] Cada replicação sofre um conjunto diferente de questões contextuais e é importante relatar as experiências com as replicações para benefício da comunidade.”
REP118
Utilização de Estudo Piloto
“[...] Conduzir um experimento piloto antes do experimento de replicação permite testar os materiais e processos experimentais.”
REP003
“[...] Baseado em nossa experiência, sugerimos a inclusão de um estudo piloto em qualquer processo de replicação. Por ter sido este o primeiro experimento conduzido pelos replicadores, é possível que os protocolos experimentais não tenham sido seguidos o quanto necessário para se obter resultados precisos.”
REP098
4.2. Discussão
O objetivo da fase de análise dos estudos foi traçar um panorama geral dos trabalhos
de replicação em engenharia de software. Era de se esperar que este trabalho não seria
uniforme quanto à definição de replicação, aos tipos usados para categorizar replicações e
quanto a estrutura e conteúdo dos estudos. Por isso, optou-se por utilizar uma definição clara
de replicação (GOULD, J.; KOLB, W. L., 1964) (LA SORTE, M. A., 1972), que tem sido
usada em engenharia de software (GÓMEZ G. et al., 2009) (GÓMEZ G. et al., 2010), e uma
classificação simples de replicação interna e externa, também encontrada na literatura de
engenharia de software (ALMQVIST, J. P. F., 2006) (BROOKS, A. et al. 2007).
No restante deste capítulo, serão discutidas as implicações dos resultados de pesquisa
sobre a replicação de estudos empíricos e algumas limitações da análise. É importante
ressaltar que os resultados preliminares desta dissertação já resultaram na produção de um
87
paper intitulado Replication of empirical studies in software engineering: Preliminary
findings from a systematic mapping study, com autoria de Fabio Q. B. da Silva, Marcos
Suassuna, Rodrigo. F. Lopes, Tatiana B. Gouveia, A. César A. França, João Paulo N. de
Oliveira, Leonardo F.M. de Oliveira e André L. M. Santos, submetido e aceito para o
International Workshop on Replication in Empirical Software Engineering Research - RESER
2011, a ser realizado nos dias 8 e 9 de setembro, em Hamburgo, Alemanha.
4.2.1 Implicações da Pesquisa
Os resultados preliminares levantam algumas questões que a comunidade de pesquisa
poderia enfrentar para melhorar os trabalhos de replicação no campo da engenharia de
software empírica. Espera-se que esta discussão estimule mais pesquisadores para
desenvolverem replicações de estudos, como também trabalhos conceituais e teóricos sobre
replicação.
A primeira questão fundamental é o que deve ser considerado como replicação.
Foram encontradas, pelo menos, três situações em que isso não era claro e que foram tomadas
decisões que podem ter sido imaturas.
Vários estudos de caso: Yin (2009) afirma que em projetos de múltiplos casos, cada
caso deve ser visto como uma replicação (interna), e isto é consistente com a definição de
replicação considerada neste estudo. Foram analisados vários estudos de caso procurando
verificar se cada um deles eram replicações. No entanto, alguns estudos não eram claros sobre
o projeto do estudo, por isso não foi possível saber se o projeto era de múltiplos casos ou um
projeto de caso único com múltiplas unidades de análise. Neste estudo foram contabilizados
todos os estudos de caso. Esta decisão pode ter aumentado artificialmente o número de
replicações. Os pesquisadores que relatam estudos de caso devem ser mais precisos sobre o
projeto do estudo, para permitir uma clara identificação das replicações.
Estudos longitudinais: na busca manual de estudos nas Revistas, foi encontrada uma
série de quatro pesquisas realizadas com a mesma população, ao longo de um período de dez
anos ([ORI114, [REP114], [REP115], [REP116] do Apêndice A). Como não estava claro se
as três pesquisas subseqüentes deveriam ser consideradas replicações da primeira, ou parte de
um estudo em curso, foi feita uma consulta a especialistas em pesquisas e replicações, que
responderam de forma diferente. A decisão foi a de considerar os estudos como replicações,
porque o primeiro estudo não deixa claro que ele seria a parte inicial de um estudo
88
longitudinal ([ORI114]). No entanto, ainda não se tem certeza de que esta escolha foi a
correta.
A mudança no tratamento: há vários relatos de experimentos que compararam dois
ou mais tratamentos, considerando cada mudança de tratamento como uma replicação. Em
alguns casos, ficou evidente que os pesquisadores descreveram um único experimento com
atribuições múltiplas de tratamento para os sujeitos. Estes casos não foram considerados nesta
pesquisa como replicações. Porém, em alguns casos, isso não estava claro, e pode ter sido
considerado como dois experimentos distintos que ocorreram, e que o segundo foi uma
replicação em que o tratamento foi uma variação do primeiro experimento.
Uma segunda questão está relacionada com o que deve ser considerado um bom
relatório de replicação. Carver (2010) iniciou esta discussão e que foram incorporadas neste
estudo algumas de suas sugestões nos critérios de avaliação de qualidade. Os resultados
mostraram que os índices de avaliação de qualidade dos relatórios das replicações foram
consideravelmente menores nos critérios específicos do que sobre os critérios genéricos. Uma
das razões possíveis é que os critérios exigem a descrição de vários aspectos do estudo
original, e isso consome espaço nos relatórios. Assim, confrontados com as restrições de
espaço, os pesquisadores poderiam ter deixado estas informações fora dos seus trabalhos.
Outra razão pode ser a consideração dessas informações, por parte dos pesquisadores, como
não relevantes, concentrando-se em documentar seus experimentos com ênfase nas suas
variáveis, processos e análises, o que pode resultar em dificuldade de compreensão do estudo
por outros pesquisadores e, até mesmo, o comprometimento de suas validades.
O uso inconsistente de terminologia e falta de padrões na documentação das
replicações, tornou a extração de dados, análise e síntese uma tarefa difícil nesta revisão. Isto
pode ter introduzido inevitáveis inconsistências nos resultados, como será discutido na
próxima seção.
Outra questão, associada às anteriores, tem a ver com a diferença do número de papers
encontrados de replicação e os papers relevantes para a pesquisa. Dos 16.129 papers
encontrados nas buscas automáticas e manual, apenas 134 papers foram classificados como
relevantes para a pesquisa. Para aplicar os critérios de inclusão e exclusão, muitas vezes foi
necessário ler, além do título e resumo dos estudos, outros capítulos dos papers. Uma grande
quantidade de papers foi excluída porque referenciou “replicação” dentro de estudos de banco
de dados, interação homem-máquina e redes de computadores, que estão fora do campo da
89
engenharia de software e, consequentemente, fora do escopo desta pesquisa. Outro motivo da
exclusão foi a identificação do endereçamento de replicação nos papers apenas como parte de
trabalhos futuros. Uma indicação para o tratamento desta questão poderia ser a utilização de
resumo estruturado nos estudos, com um tópico específico para apresentação dos dados
principais sobre a replicação. Neste tópico deveriam constar dados de referência do estudo
original, o conceito e tipo de replicação empregados, guidelines utilizados no
desenvolvimento e documentação da replicação e as principais variações aplicadas no estudo.
Isto pode ser um passo importante para melhorar as condições para os pesquisadores
selecionarem, extraírem e analisarem estudos de replicação para suas pesquisas.
Por fim, uma questão importante a ser levantada tem a ver com a diferença do número
de replicações internas e externas. Foi possível observar, ao longo das análises das questões
desta pesquisa, que a grande maioria das replicações é interna. Embora o número de
replicações dos estudos em engenharia de software como um todo, venha crescendo ao longo
dos anos, parece que os pesquisadores ainda não estão promovendo trabalhos colaborativos
com outros pesquisadores, limitando-se á replicação de seus próprios estudos. Considerando-
se, então, os conceitos apresentados sobre replicação neste estudo, o crescimento da prática
dessa colaboração contribuirá para o aumento de confiabilidade dos resultados dos
experimentos de replicação.
Finalizando a discussão, ficou claro que foram feitos avanços importantes no trabalho
conceitual sobre replicações em engenharia de software, que se expressa no número de
estudos que abordam questões conceituais e teóricas sobre replicação em engenharia de
software encontrado nesta revisão (41 estudos ABO). No entanto, os desafios neste
mapeamento mostraram que ainda se tem muito a fazer.
4.2.2. As limitações desta revisão
As limitações mais comuns em uma revisão sistemática são: cobertura limitada,
possível viés introduzido no processo de seleção e imprecisões durante a extração de dados e
avaliação da qualidade. Estas são também, possivelmente, as principais limitações desta
revisão. O protocolo de pesquisa desenvolvido com base em diretrizes bem estabelecidas, foi
a medida tomada para tentar minimizar estas limitações.
A combinação de busca automática em vários engenhos e a busca manual em
publicações relevantes melhoram a cobertura de uma revisão. Foram pesquisados mais de 16
90
mil artigos na busca automática, sem qualquer restrição de tempo. Como não existe padrão de
uso de terminologia no trabalho de replicação em engenharia de software, como discutido
antes, é possível que se tenham perdidos papers de replicação que não usaram a string
"replicação" ou qualquer um dos seus sinônimos. No entanto, o uso de busca manual nas
principais revistas e anais de conferências de engenharia de software, aumentou a cobertura e
reduziu essa possibilidade.
Este problema ficou claro com relação aos quatro artigos descrevendo um estudo
longitudinal discutido na Seção 4.2.1. Nenhum dos quatro papers utilizou "replicação" no
corpo do estudo, ou qualquer um dos sinônimos utilizados na string de busca. Esses papers
não foram encontrados na busca automática. Foram encontrados na busca manual. Se fosse
concluído que surveys longitudinais deveriam ser consideradas como replicações, a string de
busca deveria ser estendida com a inclusão de termos relacionados a este tipo de estudo. De
fato, pode-se ter perdido outros estudos longitudinais neste estudo.
Um processo de seleção de múltiplos estágios foi utilizado neste mapeamento e os
pesquisadores registraram as razões de inclusão e exclusão dos estudos em cada fase,
conforme recomendado por Kitchenham e Charters (2007). A seleção dos estudos, extração de
dados e avaliação da qualidade, em todas as etapas, foram realizadas por, pelo menos, dois
pesquisadores, e os conflitos do processo de seleção foram resolvidos em reuniões de
consenso pela dupla, ou, quando necessário, por um terceiro pesquisador. Os estudos
revisados variaram muito com relação ao uso da terminologia e de padrões. Isto fez a extração
de dados ficar mais difícil e sujeita a erros. Espera-se que o uso de pares e do terceiro revisor
independente tenha reduzido o risco de extração incorreta de dados.
91
5. CONCLUSÕES
Neste capítulo é apresentada a síntese dos resultados obtidos com a realização do
mapeamento, indicações para trabalhos futuros e considerações finais da pesquisa.
5.1. Síntese de Resultados
Foi apresentado um estudo de mapeamento sistemático da literatura sobre replicações
de estudos empíricos em engenharia de software. Dos 16.126 artigos encontrados durante
extensivas buscas manual e automática, foram selecionados 177 trabalhos relevantes,
divididos em três grupos: papers descrevendo replicações (93), apresentando só documentos
de estudos originais (43) e papers descrevendo trabalhos conceituais e teóricos sobre a
replicação (41). Neste estudo, foi utilizado um subconjunto de 136 trabalhos, que apresentam
replicações e estudos originais, para responder às 7 questões específicas de pesquisa. Estes
136 papers apresentam estudos de replicações (93 trabalhos) e seus estudos originais (43
trabalhos). Foram estendidos os trabalhos relacionados anteriores, com 57 papers que não
foram examinados em (SJØBERG, et al., 2005), (ALMQVIST, J. P. F., 2006) e (CARVER,
J., 2010).
Foram encontradas 125 replicações e 76 estudos originais nos 136 trabalhos revisados.
O número de replicações vem aumentando ao longo dos anos, em particular a partir de 2002.
A mediana do número de replicações por ano cresceu de cinco, no período entre 1994 e 2002,
para onze, entre 2003 e 2010. O número de replicações internas está crescendo mais rápido do
que as replicações externas. Isto parece indicar que, embora a comunidade científica esteja
mais consciente da importância da realização de replicações, as replicações de estudos
realizados por outros pesquisadores (externas) precisam se tornar uma prática estabelecida.
5.2. Trabalhos Futuros
Pretende-se ampliar e refinar os resultados apresentados neste trabalho, através de uma
análise mais profunda e mais abrangente, sobre replicações de estudos empíricos em
engenharia de software descrita nos seguintes tópicos:
• Ampliação da base de dados: ao longo do desenvolvimento dos trabalhos, foi
montada uma base de dados com informações sobre os estudos primários. Esta base
dispõe de estudos REP, ORI e ABO (Apêndice A). Pretende-se ampliar esta base com
novas buscas automática e manual, dentro da mesma estratégia adotada nesta pesquisa,
92
para incorporar os estudos publicados a partir de 2011, assim como a realização de
busca manual nas referências dos papers disponíveis para também incorporar estudos
que porventura não tenham sido considerados.
• Análise dos papers ABO: foram identificados 41 papers descrevendo trabalhos
conceituais e teóricos sobre replicação que não foram tratados nesta pesquisa.
Desenvolver análises e sínteses de seus conteúdos, assim como publicá-los, contribuirá
para diminuir as inconsistências de terminologia e falta de padrões sobre replicação.
• Análise de tipos e variações: a partir da ampliação da base de dados, novas
informações sobre tipos de replicação e variações entre os estudos de replicação e seus
originais poderão ser incorporadas. Desenvolver análises e sínteses dessas informações
para refinar os tipos apresentados e encontrar padrões de variação que possam ser
comparados com estudos teóricos, será uma importante contribuição para as
discussões e proposições de taxonomia e guidelines para classificação,
desenvolvimento e documentação de estudos de replicações em engenharia de
software empírica.
Finalmente, foi concluído recentemente pelo grupo de pesquisa sobre aspectos
humanos da engenharia de software, um estudo terciário sobre as revisões sistemáticas em
engenharia de software (DA SILVA, F.Q.B. et al., 2011) que estende dois outros estudos
anteriores (KITCHENHAM B. et al., 2009) (KITCHENHAM B. et al., 2010). As revisões
sistemáticas e replicações são importantes ferramentas metodológicas para a engenharia de
software baseada em evidências. Assim, pretende-se, também, integrar esta análise sobre
replicações aos estudos terciários, de forma a produzir uma visão mais abrangente dos estudos
empíricos em engenharia de software.
5.3. Considerações Finais
Replicações são necessárias em qualquer ciência empírica, e isto é obviamente
verdadeiro para a engenharia de software empírica. De acordo com os resultados desta
dissertação, a engenharia de software precisa de mais replicações.
O cenário atual dos trabalhos neste campo é de que as replicações estão distribuídas
em vários conjuntos de estudos, cada um com um pequeno número de replicações. Foram
encontrados 76 conjuntos de replicações, com uma média de 1,6 replicações por conjunto. A
93
maioria dos conjuntos tem apenas uma replicação do estudo original. A cobertura dos temas
de engenharia de software está concentrada em alguns tópicos. Experimentos controlados e
quasi experimentos representam 84% dos estudos de replicação. Finalmente, a grande maioria
das replicações é interna.
Para melhorar este cenário, será necessário aumentar a cobertura dos temas de
engenharia de software, o que significa que mais conjuntos de replicações devem ser
desenvolvidos. No entanto, é necessário também, aumentar o número de replicações por
conjunto, atuais e futuros, e este aumento deve ser, principalmente, no número de replicações
externas. Essa melhora requer mais trabalho colaborativo entre pesquisadores focados em
replicações e em informações sistematicamente estruturadas (em repositórios consistentes)
sobre experimentos e replicações.
Finalmente, acredita-se que este estudo de mapeamento é um passo importante no
campo da pesquisa empírica de engenharia de software, no sentido de apresentar informações
oportunas e valiosas e que possa catalisar mais pesquisadores em torno de temas de interesse
comum.
94
REFERÊNCIAS BIBLIOGRÁFICAS
ABRAN, A.; MOORE, J.; BOURQUE, P.; DUPUIS, T. (Eds.), Guide to software engineering body of knowledge, IEEE Computer Society, 2004. ALMQVIST, J.P.F. Replication of controlled experiments in empirical software engineering – a survey. Master’s thesis, Department of Computer Science, Faculty of Science, Lund University, Sweden, 2006. ARKSEY, H.; O´MALLEY, L. Scoping studies: towards a methodological framework, International Journal of Social Research Methodology, 8(1), 19-32, 2005. BAHR, H. M.; CAPLOW, T.; CHADWICK, B. A. Middletown iii: Problems of replication, longitudinal measurement, and triangulation. Annu. Rev. Sociol., 9(1):243–264, Aug. 1983. BASILI, V. et al. Building knowledge through families of experiments. IEEE Trans Softw Eng 25 (4):456–473, Jul/Aug 1999. BROOKS, A. et al. Replication of Experimental Results in Software Engineering. Technical Report, EFoCS-17-95 [RR/95/193], Dept. of Computer Science, Univ. of Strathclyde, 1995. BROOKS, A. et al. Replication’s role in software engineering. In F. Shull, J. Singer, and D. I. K. Sjøberg, editors, Guide to Advanced Empirical Software Engineering, pages 365–379. Springer, 2007. CARVER, J. C. Towards Reporting Guidelines for Experimental Replications: A Proposal. In RESER´2010: Proceedings of the 1st International Workshop on Replication in
Empirical Software Engineering Research, Cape Town, South Africa, 2010. Da SILVA, F.Q.B. et al., Six years of systematic literature reviews in software engineering: An updated tertiary study, Inform. Softw. Technol. (2011), doi:10.1016/j.infsof.2011.04.004. EASTERBROOK, S. M.; et al. Selecting Empirical Methods for Software Engineering Research. In F. Shull, J. Singer and D. Sjøberg(eds) Guide to Advanced Empirical Software Engineering, Springer, 2007. FINIFTER, B. The generation of confidence: Evaluating research findings by random subsample replication. Sociological Methodology, 4:112–175, 1972. FRANÇA, A. C. C. et al. The Effect of Reasoning Strategies on Success in Early Learning of Programming: Lessons Learned from an External Experiment Replication. In EASE’2010: 14th International Conference on Evaluation and Assessment in Software Engineering, Keele University, UK, 2010.
95
GLASS, R. L.; VESSEY, l.; RAMESH, V. Research in Software Engineering: An Analysis of the Literature, J. Information and Software Technology, vol. 44, no. 8, pp. 491-506, June 2002. GÓMEZ G.; JURISTO, N.; VEGAS, N. Replication, Reproduction and Re-analysis: Three ways for verifying experimental findings. In RESER´2010: Proceedings of the 1st
International Workshop on Replication in Empirical Software Engineering Research, Cape Town, South Africa, 2009. GÓMEZ G., OMAR S.; JURISTO, N.; VEGAS, N. Replications Types in Experimental Disciplines. ESEM ’10, September 16-17, 2010, Bolzano-Bozen, Italy. GOULD, J.; KOLB, W. L. (Eds.). A dictionary of the social sciences. London: Tavistock Publications, 1964. JURISTO, N.; VEGAS, S. Using differences among replications of software engineering experiments to gain knowledge. In ESEM'09: Proceedings of the 2009 3rd International
Symposium on Empirical Software Engineering and Measurement. IEEE Computer Society, Washington, DC, USA, pp 356-366, 2009. KELLY, C.; CHASE, l.; TUCKER, R. Replication in experimental communication research: an analysis. Human Communication Research, 5(4):338–342, 1979. KITCHENHAM, B.; DYBÅ, T.; JØRGENSEN, M. Evidence-based Software Engineering. Proceedings of the 26th International Conference on Software Engineering, (ICSE ’04), IEEE, Washington DC, USA, pp 273 – 281, 2004. KITCHENHAM, B. Procedures for performing systematic reviews. Technical Report TR/SE-0401, Department of Computer Science, Keele University, Keele, Staffs, UK, July 2004. KITCHENHAM, B.; CHARTERS, S. Guidelines for performing systematic literature reviews in software engineering, Technical Report EBSE-2007-01, School of Computer Science and Mathematics, Keele University, 2007. KITCHENHAM, B. The role of replications in empirical software engineering—a word of warning. Empirical Software Engineering Journal. 13:219–221. 2008. KITCHENHAM B. et al., Systematic literature reviews in software engineering – a systematic literature review, Information and Software Technology 51, pp. 7-15, 2009. KITCHENHAM B. et al., Literature reviews in software engineering – a tertiary study, Information and Software Technology 52 (8), pp. 792-805, 2010. KREIN, J. L.; KNUTSON, C. D. A Case for Replication: Synthesizing Research Methodologies in Software Engineering. In RESER´2010: Proceedings of the 1st International Workshop on Replication in Empirical Software Engineering Research, Cape Town, South Africa, 2009.
96
La SORTE, M. A. Replication as a Verification Technique in Survey Research: A Paradigm. The Sociological Quarterly, Vol. 13, No. 2, Spring, pp. 218-227, 1972. LINDSAY, R. M.; EHRENBERG, A. The Design of Replicated Studies. American Statistician. 47(3): 217–228, 1993. LUNG, J. et al. On the difficulty of replicating human subjects studies in software engineering. In Proceedings of the 13th international conference on Software engineering -
ICSE '08, New York, USA: ACM Press, p. 191, 2008. PETTICREW, M.; ROBERTS, H. Systematic Reviews in the Social Sciences. Blackwell Publishing, 2006. POPPER, K.. The Logic of Scientific Discovery. Hutchinson & Co, 1959. SHADISH, W. R.; COOK, T. D.; CAMPBELL, D. T. Experimental and Quasi-Experimental Designs for Generalized Causal Inference. Houghton Mifflin, 2002. SCHMIDT, S. Shall we really do it again? The powerful concept of replication is neglected in the social sciences. Review of General Psychology, 13(2):90–100, 2009. DOI: 10.1037/a0015108. SHULL, F.; BASILI, V.; CARVER, J.; MALDONADO, J. C.; TRAVASSOS, G. H.; MENDONÇA, M.; FABBRI, S. Replicating software engineering experiments: Addressing the tacit knowledge problem. In ISESE ’02: Proc. Int. Symp. on Empirical Softw. Eng., Washington, DC, USA, 2002. IEEE Computer Society. SHULL, F.; CARVER, J.; VEGAS, S.; JURISTO. N. The Role of Replications in Empirical Software Engineering. Empirical Software Engineering Journal. 13:211–218. 2008. SJØBERG, D., et al. A survey of controlled experiments in software engineering. IEEE Transactions on Software Engineering 31 (9), pp. 733–753, 2005. YIN, R. K. Case study research: Design and methods, 4th Edition. London, Sage Publications, 2009.
97
APÊNDICE A - Estudos Primários
Papers de Replicação - REP
Referência Estudo Primário [REP001] English, M.; Buckley, J.; Cahill, T. A replicated and refined empirical study of
the use of friends in C++ software. Journal of Systems and Software, 83(11), pp. 2275-2286, 2010.
[REP003] Abrahão, S.; Poels, G. A family of experiments to evaluate a functional size measurement procedure for Web applications. Journal of Systems and Software, 82(2), pp. 253-269, 2009.
[REP005] Zhang, H. An investigation of the relationships between lines of code and defects. 2009 IEEE International Conference on Software Maintenance, 274-283, 2009.
[REP006] Huynh, T.; Miller, J. Another viewpoint on “evaluating web software reliability based on workload and failure data extracted from server logs.” Empirical Software Engineering, 14(4), pp. 371-396, 2009.
[REP007] Reynoso, L.; Manso, E.; Genero, M.; Piattini, M. Assessing the influence of import-coupling on OCL expression maintainability: A cognitive theory-based perspective. Elsevier - Information Sciences, 180(20), pp. 3837-3862, 2010.
[REP009] Dias-Neto, A. C.; Travassos, G. H. Evaluation of {model-based} testing techniques selection approaches: An external replication. Empirical Software Engineering and Measurement, pp. 269-278, 2009.
[REP010] Geet, J. V.; Demeyer, S. Feature location in COBOL mainframe systems: An experience report. IEEE International Conference on Software Maintenance - ICSM 2009, pp. 361-370, 2009.
[REP011] Abrahão, S.; Insfran, E.; Gravino, C.; Scanniello, G. On the effectiveness of dynamic modeling in UML: Results from an external replication. 2009 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 468
[REP012] Ricca, F.; Scanniello, G.; Torchiano, M.; Reggio, G.; Astesiano, E. On the effectiveness of screen mockups in requirements engineering: results from an internal replication. Empirical Software Engineering and Measurement, 2010.
[REP014] Ceccato, M.; Di Penta, M.; Nagra, J.; Falcarin, P.; Ricca, F.; Torchiano, M., et al. The effectiveness of source code obfuscation: An experimental assessment. ICPC ’09, IEEE 17th International Conference, pp. 178-187, 2009.
[REP015] Do, H.; Mirarab, S.; Tahvildari, L.; Rothermel, G. The Effects of Time Constraints on Test Case Prioritization: A Series of Controlled Experiments. IEEE Transactions on Software Engineering, 36, pp. 593-617, 2010.
[REP016] Cruz-Lemus, J. A.; Maes, A.; Genero, M.; Poels, G.; Piattini, M. The impact of structural complexity on the understandability of UML statechart diagrams. Information Sciences, 180(11), pp. 2209-2220, 2010.
[REP019] Du, G.; McElroy, J.; Ruhe, G. A family of empirical studies to compare informal and optimization-based planning of software releases. International Symposium on Empirical Software Engineering, 212, 2006.
[REP020] Andersson, C. A replicated empirical study of a selection method for software reliability growth models. Empirical Software Engineering, 12(2), 161, 2007.
[REP021] Andersson, C.; Runeson, P. A Replicated Quantitative Analysis of Fault
98
Referência Estudo Primário Distributions in Complex Software Systems. IEEE Transactions on Software Engineering, 33(5), pp. 273-286, 2007.
[REP022] Abrahão, S.; Poels, G.; Insfran, E. A Replicated Study on the Evaluation of a Size Measurement Procedure for Web Applications. 2008 Eighth International Conference on Web Engineering, pp. 217-223, 2008.
[REP023] Falessi, D.; Capilla, R.; Cantone, G. A value-based approach for documenting design decisions rationale: a replicated experiment. International Conference on Software Engineering, pp. 63-70, 2008.
[REP024] Ardimento, P.; Baldassarre, M. T.; Caivano, D.; Visaggio, G. Assessing multiview framework (MF) comprehensibility and efficiency: A replicated experiment. Information and Software Technology, 48(5), pp. 313-322, 2006.
[REP025] Lokan, C.; Mendes, E. Cross-company and Single-company Effort Models Using the ISBSG Database : a Further Replicated Study. ISESE '06 Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, pp. 75-84, 2006.
[REP026] Staron, M.; Kuzniarz, L.; Wohlin, C. Empirical assessment of using stereotypes to improve comprehension of UML models: A set of experiments. Journal of Systems and Software, 79(5), pp. 727-742, 2006.
[REP027] Canfora, G.; Cimitile, A.; Garcia, F.; Piattini, M.; Visaggio, C. A. Evaluating performances of pair designing in industry. Journal of Systems and Software, 80(8), pp. 1317-1327, 2007.
[REP028] Mendes, E.; Lokan, C. Replicating studies on cross- vs single-company effort models using the ISBSG Database. Empirical Software Engineering, 13(1), pp. 3, 2008.
[REP029] Ricca, F.; Penta, M. D.; Torchiano, M.; Tonella, P.; Ceccato, M. The Role of Experience and Ability in Comprehension Tasks Supported by UML Stereotypes. 29th International Conference on Software Engineering - ICSE 2007, pp. 375-384, 2007.
[REP030] Baresi, L.; Morasca, S. Three empirical studies on estimating the design effort of Web applications. ACM Transactions on Software Engineering and Methodology, Vol. 16, No. 4, Article 15, 2007.
[REP031] Ricca, F.; Torchiano, M.; Penta, M. D.; Ceccato, M.; Tonella, P. Using acceptance tests as a support for clarifying requirements: A series of experiments. Information and Software Technology, 51(2), pp. 270-283, 2009.
[REP032] Vokác, M.; Tichy, W.; Sjøberg, D. I. K.; Arisholm, E.; Aldrin, M. A Controlled Experiment Comparing the Maintainability of Programs Designed with and without Design Patterns—A Replication in a Real Programming Environment. Empirical Software Engineering, 9(3), pp. 149, 2004.
[REP033] Briand, L. C.; Bunse, C.; Daly, J. W. A controlled experiment for evaluating quality guidelines on the maintainability of object-oriented designs. Software Engineering, IEEE Transactions on, 27(6), pp. 513-530, 2001.
[REP034] Prechelt, L.; Unger, B.; Philippsen, M.; Tichy, W. A controlled experiment on inheritance depth as a cost factor for code maintenance. Journal of Systems and Software, 65(2), pp. 115, 2003.
[REP035] Canfora, G.; García, F.; Piattini, M.; Ruiz, F.; Visaggio, C. A. A family of experiments to validate metrics for software process models. Journal of Systems and Software, 77(2), pp. 113-129, 2005.
[REP036] Mendes, E.; Mosley, N.; Counsell, S. A replicated assessment of the use of adaptation rules to improve Web cost estimation. Proceedings of International
99
Referência Estudo Primário Symposium on Empirical Software Engineering, pp. 100-109, 2003.
[REP037] Mendes E.; Lokan, C.; Harrison, R.; Triggs, C. A replicated comparison of cross-company and within-company effort estimation models using the ISBSG database. Proceedings - International Software Metrics Symposium, pp. 331-340, 2005.
[REP038] Thelin, T.; Andersson, C.; Runeson, P.; Dzamashvili-Fogelstrom, N. A Replicated Experiment of Usage-Based and Checklist-Based Reading. METRICS '04 Proceedings of the Software Metrics, 10th International Symposium, 2004.
[REP039] Shepperd, M.; Cartwright, M. A Replication of the Use of Regression towards the Mean (R2M) as an Adjustment to Effort Estimation Models. METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium, 2005.
[REP040] Herbsleb, J. D.; Mockus, A. An empirical study of speed and communication in globally distributed software development. Software Engineering, IEEE Transactions on, 29(6), 481-494, 2003.
[REP041] Lanubile, F.; Mallardo, T.; Calefato, F.; Denger, C.; Ciolkowski, M. Assessing the impact of active guidance for defect detection: a replicated experiment. Software Metrics, 2004. Proceedings. 10th International Symposium, pp. 269-278, 2004.
[REP043] Thelin, T.; Petersson, H.; Runeson, P. Confidence intervals for capture-recapture estimations in software inspections. Information and Software Technology, 44(12), pp. 683-702, 2002.
[REP044] García, F.; Piattini, M.; Ruiz, F.; Visaggio, C. A. Maintainability of Software Process Models : An Empirical Study. Proceedings of the Ninth European Conference on Software Maintenance and Reengineering (CSMR’05), 2005.
[REP045] Myrtveit, I.; Stensrud, E. A controlled experiment to assess the benefits of estimating with Analogy and Regression Models. IEEE Transactions on Software engineering, Vol. 25, no. 4, 1999.
[REP046] Briand, L. C.; Langley, T.; Wieczorek, I. A replicated assessment and comparison of common software cost modeling techniques. International Conference on Software Engineering, 377, 2000.
[REP047] Fusaro, P.; Lanubile, F.; Visaggio, G. A Replicated Experiment to Assess Requirements InspectionTechniques. Empirical Software Engineering, Vol. 2, pp. 39-57, 1997.
[REP048] Roper, M.; Wood, M.; Miller, J. An empirical evaluation of defect detection techniques. Information and Software Technology, 39(11), pp. 763-775, 1997.
[REP049] Miller, J.; Macdonald, F. An empirical incremental approach to tool evaluation and improvement. Journal of Systems and Software, 51(1), pp. 19-35, 2000.
[REP050] Sandahl, K. Blomkivst, O.; Karlsson, J.; Krysander, C.; Lindvall, M.; Ohlsson, N. An Extended Replication of an Experiment for Assessing Methods for Software Requirements Inspections. Empirical Software Engineering, Vol. 354, pp. 327-354, 1998.
[REP051] Laitenberger, O.; El Emam, K.; Harbich, T. G. An Internally Replicated Quasi-Experimental Comparison of Checklist and Perspective-Based Reading of Code Documents. IEEE Transactions on Software Engineering, 27(5), pp. 387, 2001.
[REP052] Visaggio, G. Assessing the maintenance process through replicated, controlled experiments. Journal of Systems and Software, 44(3), pp. 187-197, 1999.
[REP053] Porter, A. A.; Votta, L. G.; Basili, V. R. Comparing Detection Methods for
100
Referência Estudo Primário Software Requirements Inspections: A Replicated Experiment. IEEE Transactions on Software Engineering, 21(6), pp. 563, 1995.
[REP055] Briand, L. C.; Wüst, J.; Ikonomovski, S. V.; Lounis, H.; West, S.; & Ha, C. Investigating Quality Factors in Object-Oriented Designs : an Industrial Case Study. International Conference on Software Engineering, ICSE’99, 1999.
[REP057] Basili, V. R.; Briand, L. C.; Melo, W. L. A validation of object-oriented design metrics as quality indicators. Software Engineering, IEEE Transactions on, 22(10), 751-761, 1996.
[REP058] Cartwright, M.; Shepperd, M. An empirical view of inheritance. Information and Software Technology, 40(14), PP. 795-799, 1998.
[REP060] Cox, K.; Phalp, K. Replicating the CREWS Use Case Authoring Guidelines Experiment. Empirical Software Engineering, 5(3), pp. 245, 2000.
[REP061] Lindvall, M.; Rus, I.; Donzelli, P.; Memon, A.; Zelkowitz, M.; Betin-Can, A.; et al. Experimenting with software testbeds for evaluating new technologies. Empirical Software Engineering, 12(4), pp. 417-444, 2007.
[REP065] Shah, H. B.; Görg, C.; Harrold, M. J. Understanding Exception Handling: Viewpoints of Novices and Experts. IEEE Transactions on Software Engineering, pp. 150-161, 2010.
[REP066] Lui, K. M.; Chan, K. C. C.; Nosek, J. T. The Effect of Pairs in Program Design Tasks. IEEE Transactions on Software Engineering, 34, pp. 197-211, 2008.
[REP068] Anda, B.; Sjøberg, D. I. K. Investigating the Role of Use Cases in the Construction of Class Diagrams. Empirical Software Engineering, 10(3), PP. 285-309, 2005.
[REP070] Genero, M.; Manso, E.; Visaggio, A.; Canfora, G.; Piattini, M. Building measure-based prediction models for UML class diagram maintainability. Empirical Software Engineering, 12(5), pp. 517-549, 2007.
[REP071] Hochstein, L.; Carver, J.; Shull, F.; Asgari, S.; Basili, V.; Hollingsworth J. K.; Zelkowitz, M. V. Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers. Supercomputing, 2005. Proceedings of the ACM/IEEE SC 2005 Conference, p. 35, 2005.
[REP072] De Lucia, A.; Gravino, C.; Oliveto, R.; Tortora, G. An experimental comparison of ER and UML class diagrams for data modelling. Empirical Software Engineering, 15(5), pp. 455-492, 2009.
[REP073] Daly, J.; Brooks, A.; Miller, J.; Roper, M.; Wood, M. Verification of Results in Software Maintenance Through External Replication. IEEE International Conference on Software Maintenance, pp. 50-57, 1994.
[REP076] Dinh-Trong, T. T.; Bieman, J. M. The FreeBSD Project: A Replication Case Study of Open Source Development. IEEE Transactions on Software Engineering, 31(6), pp. 481, 2005.
[REP081] García, F.; Ruiz, F.; Piattini, M. An Experimental Replica to Validate a set of Metrics for Software Process Models. Proceedings of the European Software Process Improvement Conference (EuroSPI), 2004.
[REP082] Jørgensen, M.; Teigen, K. H.; Moløkken, K. Better Sure Than Safe? Overconfidence in Judgment Based Software Development Effort Prediction Intervals. Journal of Systems and Software, Vol. 70, nos. 1,2, pp. 79-93, 2004.
[REP083] Agarwal, R.; De, P.; Sinha, A. P. Comprehending Object and Process Models : An Empirical Study, IEEE Transactions on Software Engineering, vol. 25, no. 4, 1999.
[REP084] Genero M.; Piatini, M.; Manso. E. Finding “early” indicators of UML class
101
Referência Estudo Primário diagrams understandability and modifiability. Proceedings - 2004 International Symposium on Empirical Software Engineering, ISESE 2004, pp. 207-216, 2004.
[REP085] Kamsties, E.; Lott, C. M. An empirical evaluation of defect detection techniques. Information and Software Technology, 39(11), pp. 763-775, 1997.
[REP086] Kiper, J.; Auerheimer, B.; Ames, C. K. Visual Depiction of Decision Statements : What is Best for Programmers and Visual Depiction of Decision Statements : What is Best For Programmers and Non-programmers. Technical Report: MU-SEAS-CSA-1997-001, 1997.
[REP087] Land, L. P. W.; Jeffery, R.; Sauer, C. Validating the Defect Detection Performance Advantage of Group Designs for Software Reviews: Report of a Replicated Experiment. Technical Report: MU-SEAS-CSA-1997-001, 2007.
[REP088] Miller, J.; Wood, M.; Roper, M. Further Experiences with Scenarios and Checklists. Empirical Software Engineering, Vol.3, pp. 37–64, 1998.
[REP089] Zweben, S. H.; Edwards, S. H.; Weide, B. W.; Hollingsworth, J. E. The Effects of Layering and Encapsulation on Software Development Cost and Quality. IEEE Transactions on Software Engineering, Vol. 21, no. 3, pp. 200-208, 1995.
[REP090] Harrison, R.; Counsell, S.; Nithi, R. Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems. Journal of Systems and Software, 52(2-3), pp. 173-179, 2000.
[REP091] Prechelt, L.; Unger-lamprecht, B; Philippsen, M.; Tichy, W. F. Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance. Design, 28(6), pp. 595-606, 2002.
[REP092] Regnell, B.; Runeson, P.; Thelin, T. Are the Perspectives Really Different? – Further Experimentation on Scenario-Based Reading of Requirements, (1), 331-356, 2001.
[REP093] Arisholm, E.; Sjøberg, D. I. K. Evaluating the Effect of a Delegated versus Centralized Control Style on the Maintainability of Object-Oriented Software, 30(8), pp. 521-534, 2004.
[REP094] Ricca, F.; Penta, M. D.; Torchiano, M.; Tonella, P.; Ceccato, M. How Developers’ Experience and Ability Influence Web Application Comprehension Tasks Supported by UML Stereotypes: A Series of Four Experiments. IEEE Transactions on Software Engineering, Vol. 36, pp. 96-118, 2010.
[REP095] Jørgensen, M. Identification of more risks can lead to increased over-optimism of and over-confidence in software development effort estimates. Information and Software Technology, 52(5), pp. 506-516, 2010.
[REP098] Maldonado, J. C.; Carver, J.; Shull, F.; Fabbri, S.; Dória, E.; Martimiano, L.; et al. Perspective-Based Reading: A Replicated Experiment Focused on Individual Reviewer Effectiveness. Empirical Software Engineering, 11(1), pp. 119-142, 2006.
[REP099] Briand, L. C.; Wüst, J.; Lounis, H. Replicated Case Studies for Investigating Quality Factorsin Object-Oriented Designs. Empirical Software Engineering, 6(1), 11, 2001.
[REP101] Verelst, J. The Influence of the Level of Abstraction on the Evolvability of Conceptual Models of Information Systems. Empirical Software Engineering, 10(4), pp. 467-494, 2005.
[REP102] Koru, A. G.;El Emam, K.; Dongsong, Z.; Liu, H.; Mathew, D. Theory of relative defect proneness - Replicated studies on the functional form of the size-
102
Referência Estudo Primário defect relationship. Empirical Software Engineering, vol. 13, pp. 473-498, 2008.
[REP103] Müller, M. M. Two controlled experiments concerning the comparison of pair programming to peer review. Journal of Systems and Software, 78(2), pp. 166-179, 2005.
[REP104] Calefato, F.; Gendarmi, D.; Lanubile, F. Investigating the use of tags in collaborative development environments: a replicated study. Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 24:1--24:9, 2010.
[REP105] Mendes, E.; Lokan, C. Investigating the Use of Chronological Splitting to Compare Software Cross-company and Single-company Effort Predictions : A Replicated Study. ACSC '09 Proceedings of the Thirty-Second Australasian Conference on Computer Science – Vol. 91, 2009.
[REP106] Wesslén, A. A Replicated Empirical Study of the Impact of the Methods in the PSP on Individual Engineers. Empirical Software Engineering, vol. 5, pp. 93–123, 2000.
[REP107] Phongpaibul, M.; Boehm, B. A Replicate Empirical Comparison between Pair Development and Software Development with Inspection. First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007), pp. 265-274, 2007.
[REP111] Lucia, A. D.; Oliveto, R.; Tortora, G. Assessing IR-based traceability recovery tools through controlled experiments. Empirical Software Engineering, pp. 57-92, 2009.
[REP112] Porter, A.; Votta, L. Comparing Detection Methods For Software Requirements Inspections: A Replication Using Professional Subjects. Empirical Software Engineering, 3(4), pp. 355, 1998.
[REP113] Ciolkowski, M.; Differding, C.; Laintenberger, O.; Münch, J. Empirical Investigation of perspective-based reading: A replicated experiment. Fraunhofer IESE, IESE - Report N.048.97/E, V, 1997.
[REP114] Holgeid, K. K.; Krogstie, J.; Sjøberg, D. I. K. A study of development and maintenance in Norway : assessing the efficiency of information systems support using functional maintenance. Information and Software Technology, 42, pp. 687-700, 2000.
[REP115] Krogstie, J.; Jahr, A.; Sjøberg, D. I. K. A longitudinal study of development and maintenance in Norway : Report from the 2003 investigation. Information and Software Technology, 48, pp. 993-1005, 2006.
[REP116] Davidsen, M. K.; Krogstie, J. A longitudinal study of development and maintenance. Information and Software Technology, 52(7), pp. 707-719, 2010.
[REP118] Lung, J.; Aranda, J.; Easterbrook, S.; Wilson, G. On the difficulty of replicating human subjects studies in software engineering. International Conference on Software Engineering, pp. 191-200, 2008.
[REP119] Caspersen, M. E.; Bennedsen, J.; Larsen, K. D. Mental Models and Programming Aptitude. ACM SIGCSE Bulletin, vol 39, Issue: 3, pp. 206, 2007.
[REP120] França, A. C. C.; da Cunha, P. R. M.; da Silva, F. Q. B. The Effect of Reasoning Strategies on Success in Early Learning of Programming: Lessons Learned from an External Experiment Replication. In EASE’2010: 14th International Conference on Evaluation and Assessment in Software Engineering, 2010.
[REP121] Ma, X.; Zhou, M.; Mei, H. How Developers Participate in Open Source
103
Referência Estudo Primário Projects : a Replicate Case Study on JBossAS , JOnAS and Apache Geronimo. Workshop on Replication in Empirical Software Engineering Research (RESER)’10, 2010.
Papers de Estudos Originais - ORI
Referência Estudo Primário [ORI001] Counsell, S.; Newson, P. Use of friends in C++ software: an empirical
investigation. Journal of Systems and Software, 53(1), pp. 15-21, 2000. [ORI006] Tian, J.; Rudraraju, S.; Li, Z. Evaluating Web software reliability based on
workload and failure data extracted from server logs. IEEE Transactions on Software Engineering, 30(11), pp. 754-769, 2004.
[ORI009] Vegas, S.; Basili, V. A Characterization Schema for Software Testing Techniques. Empirical Software Engineering, 10(4), pp. 437-466, 2005.
[ORI010] Eisenbarth, T.; Rainer Koschke, R.; Simon, D. Locating Features in Source Code. IEEE Transactions on Software Engineering, Volume 29 Issue 3, 2003.
[ORI011] Gravino, C.; Scanniello, G.; Tortora, G. An Empirical Investigation on Dynamic Modeling in Requirements Engineering, pp. 615-629, 2008.
[ORI012] Ricca, F.; Scanniello, G.; Torchiano, M.; Reggio, G.; Astesiano, E. Can screen mockups improve the comprehension of functional requirements? In http://www.scienzemfn.unisa.it/scanniello/ScreenMockupExp/, 2010.
[ORI020] Stringfellow, C.; Andrews, A. A. An Empirical Method for Selecting Software Reliability Growth Models. Journal Empirical Software Engineering Volume 7 Issue 4, 2002.
[ORI021] Fenton, N. E.; Ohlsson, N. Quantitative analysis of faults and failures in a complex software system. IEEE Transactions on Software Engineering, 26(8), 797-814, 2000.
[ORI022] Abrahao, S.; Poels, G.; Pastor, O. Evaluating a functional size measurement method for web applications:an empirical analysis. 10th International Symposium on Software Metrics, pp. 358-369, 2001.
[ORI023] Falessi, D.; Cantone, G.; Kruchten, P. Value-Based Design Decision Rationale Documentation: Principles and Empirical Feasibility Study. Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), pp. 189-198, 2008.
[ORI024] Baldassarre, M. T.; Caivano, D.; Visaggio, G. Comprehensibility and efficiency of multiview framework for measurement plan design. Proceedings of 2003 International Symposium on Empirical Software Engineering, 2003.
[ORI025] Jeffery, R.; Ruhe, M.; Wieczorek, I. Using public domain metrics to estimate software development effort. Proceedings Seventh International Software Metrics Symposium, pp. 16-27, 2001.
[ORI027] Canfora, G.; Cimitile, A.; Visaggio, C. A.; Garcia, F.; Piattini, M. Performances of Pair Designing on Software Evolution: a controlled experiment. Conference on Software Maintenance and Reengineering (CSMR'06), pp. 197-205, 2006.
[ORI032] Prechelt, L.; Unger, B.; Tichy, W. F.; Brössler, P.; Votta, L. G. A controlled experiment in maintenance: comparing design patterns to simpler solutions. IEEE Transactions on Software Engineering, 27(12), pp. 1134-1144, 2001.
[ORI033] Briand, L.; Bunse, C.; Daly, J. W.; Differding, C. An experimental comparison of the maintainability of object-oriented and structured design documents.
104
Referência Estudo Primário Proceedings International Conference on Software Maintenance, pp. 130-138, 1997.
[ORI034] Daly, J.; Brooks, A.; Miller, J.; Roper, M.; Wood, M. (1996). Evaluating inheritance depth on the maintainability of object-oriented software. Empirical Software Engineering, 1(2), pp. 109-132, 1996.
[ORI036] Mendes, E.; Mosley, N.; Counsell, S. Do adaptation rules improve web cost estimation? Proceedings of the fourteenth ACM conference on Hypertext and hypermedia - HYPERTEXT ’03, 173. New York, New York, USA: ACM Press, 2003.
[ORI038] Thelin, T.; Runeson, P.; Wohlin, C. An experimental comparison of usage-based and checklist-based reading. IEEE Transactions on Software Engineering, 29(8), pp. 687-704, 2003.
[ORI039] Jørgensen, M.; Indahl, U.; Sjøberg, D. Effort Estimation : Software Effort Estimation by Analogy and “Regression Toward the Mean.” J. of Systems & Software, vol. 68, pp. 253-262, 2003.
[ORI041] Denger, C.; Ciolkowski, M.; Lanubile, F. Does Active Guidance Improve Software Inspections? A Preliminary Empirical Study. IEEE Transaction on Software Engineering, vol. 29, no. 6, 2003.
[ORI043] Miller, J. Estimating the number of remaining defects after inspection. Technical Report ISERN-98-24, vol. 9, pp. 167--189, 1998.
[ORI045] Shepperd, M.; Schofield, C.; Kitchenham, B. Effort estimation using analogy. Proceedings of IEEE 18th International Conference on Software Engineering, pp. 170-178, 1996.
[ORI046] Briand, L. C.; El Emam, K.; Surmann, D.; Wieczorek, I.; Maxwell, K. D. An assessment and comparison of common software cost estimation modeling techniques. Proceedings of the 21st international conference on Software engineering - ICSE ’99, 313-322, 1999.
[ORI055] Briand, L. C.; Daly, J.; Porter, V.; Wust, J. A comprehensive empirical validation of design measures for object-oriented systems. Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262), pp. 246-257, 1998
[ORI057] Chidamber, S. R.; Kemerer, C. F. A Metrics Suite for Object-Oriented Design. IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, 1994.
[ORI060] Achour, C. B.; Rolland, C.; Maiden, N. A. M.; Souveyet, C. Guiding Use Case Authoring : Results of an Empirical Study. Proc. Fourth IEEE Int. Symposium on Requirements Engineering, Centre for HCI Design , School of Informatics Northampton Square London EC1V OHB - United Kingdom, 1998.
[ORI070] Genero, M.; Piattini, M.; Manso, E.; Cantone, G. Building UML class diagram maintainability prediction models based on early metrics. Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717), pp. 263-275, 2003.
[ORI076] Mockus, A.; Fielding, R. T.; Herbsleb, J. D. Two case studies of open source software development: Apache and Mozilla. ACM Transactions on Software Engineering and Methodology, 11(3), pp. 309-346, 2002.
[ORI081] García, F.; Ruiz, F.; Piattini, M. Definition and Empirical Validation of Metrics for Software Process Models. Proceedings of the 5th International Conference Product Focused Software Process Improvement (PROFES'2004), pp. 146-158, 2004.
[ORI085] Basili, V. R.; Selby, R. W. (1987). Comparing the Effectiveness of Software
105
Referência Estudo Primário Testing Strategies. IEEE Transactions on Software Engineering, SE-13(12), pp. 1278-1296, 1987.
[ORI087] Pek, L.; Land, W.; Sauer, C.; Jeffery, R. Validating the Defect Detection Performance Advantage of Group Designs for Software Reviews : Report of a Laboratory Experiment Using Program Code. Proceedings of European Sofrware Engineering Conference, pp. 22-25, 1997.
[ORI092] Basili, V. R.; Green, S.; Laitenberger, O.; Lanubile, F.; Shull, F.; Sørumgård, S.; et al. The Empirial Investigation of Perspective-Based Reading, Empirical Software Engineering, 1(2), pp. 133–164, 1996.
[ORI093] Arisholm, E.; Sjøberg, DAG I.K.; Jørgensen, M. Assessing the Changeability of two Object-Oriented Design Alternatives - A Controlled Experiment. Empirical Software Eng., vol. 6, no. 3, pp. 231-277, 2001.
[ORI104] Treude, C.; Storey, M.-A. How Tagging helps bridge the Gap Between Social and Technical Aspects In Software Development. 2009 IEEE 31st International Conference on Software Engineering, pp. 12-22, 2009.
[ORI105] Lokan, C.; Mendes, E. Investigating the Use of Chronological Splitting to Compare Software Cross-company and Single-company Effort Predictions. 12th International Conference on Evaluation and Assessment in Software Engineering (EASE), 2008.
[ORI106] Hayes, W.; Over, J. W. The Personal Software Process (PSP): An Empirical Study of the Impact of PSP on Individual Engineers. Technical Report CMU/SEI-97-TR-001, ESC-TR-97-001. Software Engineering, Institute, 1997.
[ORI107] Phongpaibul, M.; Boehm, B. An Empirical Comparison Between Pair Development and Software Inspection in Thailand. Proceedings of the 2006 ACM/IEEE international symposium on International symposium on empirical software engineering - ISESE ’06, 2006.
[ORI111] Lucia, A. D.; Fasano, F.; Oliveto, R.; Tortora, G. Recovering Traceability Links in Software Artifact Management Systems using Information Retrieval Methods. ACM Transactions on Software Engineering and Methodology, 16(4), pp. 13-es, 2007.
[ORI114] Krogstie, J.; Sølvberg, A. Software Maintenance in Norway: a survey investigation. Proceedings International Conference on Software Maintenance ICSM-94, pp. 304-313, 1994.
[ORI118] Dehnadi, S.; Bornat, R. The camel has two humps ( working title ). In Little Psychology of Programming Interest Group, Volume: 2, Issue: 23, Publisher: Citeseer, pp. 1-21, 2006.
[ORI121] Mockus, A.; Fielding, R. T.; Herbsleb, J. A case study of open source software development: the Apache server. Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium, pp. 263-272, 2000.
Papers sobre Replicação - ABO
Referência Estudo Primário [ABO001] Mendonça, M. G.; Maldonado, J. C.; Oliveira, M. C. F. D.; Carver, J.; Fabbri,
C. P. F.; Shull, F.; et al. A Framework for Software Engineering Experimental Replications. 13th IEEE International Conference on Engineering of Complex Computer Systems, PP. 203-212, 2008.
106
Referência Estudo Primário [ABO003] Dyba, T. A systematic review of statistical power in software engineering
experiments. Information and Software Technology, 48, pp. 745-755, 2006 [ABO004] Cater-Steel, A.; Toleman, M.; Rout, T. Addressing the challenges of
replications of surveys in software engineering research. International Symposium on Empirical Software Engineering, 2005. 2005 (p. 10 pp.), 2005.
[ABO005] Vegas, S.; Juristo, N.; Moreno, A.; Solari, M.; Letelier, P. Analysis of the influence of communication between researchers on experiment replication. International Symposium on Empirical Software Engineering, p. 28, 2006.
[ABO006] Basili, V. R.; Shull, F.; Lanubile, F.; Society, I. C. Building knowledge through families of experiments. IEEE Trans Softw Eng 25 (4), pp.456–473, Jul/Aug 1999.
[ABO007] Pickard, L. M.; Kitchenham, B. A.; Jones, P. W. (1998). Combining empirical results in software engineering. Information and Software Technology, 40(14), pp. 811-821, 1998.
[ABO008] Kitchenham, B. A.; Linkman, S. G.; & Law, D. T. Critical review of quantitative assessment. Software Engineering Journal, 9(2), pp. 43-53, 1994.
[ABO009] Kitchenham, B.; Al-khilidar, H.; Babar, M. A.; Berry, M.; Cox, K.; Keung, J.; et al. Evaluating Guidelines for Empirical Software Engineering Studies. Evaluation, pp. 38-47, 2006.
[ABO010] Sommerville, I.; & Kemerer, C. (2000). Evaluation and assessment in software engineering. Journal of Systems and Software, 52, pp. 93-94, 2000;
[ABO011] Ohlsson, M. C.; Runeson, P.; Lund, S.Experience from Replicating Empirical Studies on Prediction Models. Symposium A Quarterly Journal In Modern Foreign Literatures.; 2002.
[ABO012] Zelkowitzayb, M. V.; Wallace, D. Experimental validation in software engineering ’. Information and Software Technology, 39, pp. 735-743, 1997.
[ABO013] Garcia, R. E.; Oliveira, M. C. F. de, Maldonado, J. C. (2005). Genetic algorithms to support software engineering experimentation. International Symposium on Empirical Software Engineering, 2005, p. 10, 2005.
[ABO014] Shull, F., et al. Knowledge-Sharing Issues in Experimental Software Engineering. Empirical Software Engineering, Vol. 9 Num. 1-2, pp. 111-137, 2004.
[ABO015] Goulão, M.; Brito, F. Modeling the Experimental Software Engineering Process, pp. 77-88, 2007.
[ABO017] Robles, G. Replicating MSR: A study of the potential replicability of papers published in the Mining Software Repositories Proceedings. Proceedings - International Conference on Software Engineering, pp. 171-180, 2010.
[ABO018] Mende, T. Replication of defect prediction studies: problems, pitfalls and recommendations. ACM International Conference Proceeding Series, 2010.
[ABO019] Gómez, O. S.; Juristo, N.; & Vegas, S. (2010). Replications types in experimental disciplines. Empirical Software Engineering and Measurement, 2010.
[ABO020) Knutson, C. D.; Krein, J. L.; Prechelt, L.; & Juristo, N. (2010). Report from the 1st international workshop on replication in empirical software engineering research (RESER 2010). ACM SIGSOFT Software Engineering Notes, 35(5), pp. 42-44, 2010.
[ABO021] Runeson, P.; & Wiberg, M. Simulation of Experiments for Data Collection – a replicated study. Evaluation and Assessment in Software Engineering, pp.1-10, 2006.
107
Referência Estudo Primário [ABO022] Miller, J.; Daly, J.; Wood, M.; Roper, M.; & Brooks, A. Statistical power and
its subcomponents -- missing and misunderstood concepts in empirical software engineering research. Information and Software Technology, 39(4), pp. 285-295, 1997.
[ABO023] Juristo N.; V. S. The role of non-exact replications in software engineering experiments. Empir Software Eng, Vol.16, Num. 3, pp. 295-324, 1996.
[ABO024] Shull, F.; Carver, J.; Vegas, S.; Juristo. N. The Role of Replications in Empirical Software Engineering. Empirical Software Engineering Journal. 13:211–218. 2008.
[ABO025] Kitchenham, B. The role of replications in empirical software engineering—a word of warning. Empirical Software Engineering Journal. 13:219–221. 2008.
[ABO026] Miller, J. Triangulation as a basis for knowledge discovery in software engineering. Empirical Software Engineering, 13(2), pp. 223-228, 2008.
[ABO027] Cruzes, D.; Mendonza, M.; Basili, V.; Shull, F.; Jino, M. (2007). Using Context Distance Measurement to Analyze Results across Studies. Empirical Software Engineering and Measurement, 2007.
[ABO028] Juristo, N.; Vegas, S. (2009). Using differences among replications of software engineering experiments to gain knowledge. Empirical Software Engineering and Measurement, pp. 356-366, 2010.
[ABO029] Shull, F.; Basili, V.; Carver, J.; Maldonado, J. C.; Travassos, G. H.; Mendonça, M.; Fabbri, S. Replicating software engineering experiments: Addressing the tacit knowledge problem. In ISESE ’02: Proc. Int. Symp. on Empirical Softw. Eng., 2002.
[ABO030] Miller, J. Applying meta-analytical procedures to software engineering experiments. Journal of Systems and Software, 54(1), pp. 29-39, 2000.
[ABO031] Shull, F.; Carver, J.; Travassos, G. H.; Maldonado, J. C.; Conradi, R.; Basili, V. R. Replicated studies: building a body of knowledge about software reading techniques. Software Engineering And Knowledge Engineering, 39, 2003.
[ABO032] Miller, J. Replicating software engineering experiments: a poisoned chalice or the Holy Grail. Information and Software Technology, 47(4), 233-244, 2005.
[ABO033] Falessi, D.; Babar, M.; Cantone, G.; Kruchten, P. Applying empirical software engineering to software architecture: challenges and lessons learned. Empirical Software Engineering, 15(3), pp. 250-276, 2010.
[ABO034] Shull, F.; Cruzes, D.; Basili, V.; Mendonça, M. Simulating families of studies to build confidence in defect hypotheses. Information and Software Technology, 47(15), 1019-1032, 2005.
[ABO035] Carver, J. C. Towards Reporting Guidelines for Experimental Replications: A Proposal. In RESER´2010: Proceedings of the 1st International Workshop on Replication in Empirical Software Engineering Research, Cape Town, South Africa, 2010.
[ABO036] Fernández, E. Hidden Evidence Behind Useless Replications. Report from the 1st international workshop on replication in empirical software engineering research (RESER 2010), 2010.
[ABO037] Ferrari, R.; Madhavji, N. H.; Sudmann, O.; Henke, C.; Schaefer, W. Transitioning from lab studies to large-scale studies : Emerging results from a literal replication. Report from the 1st international workshop on replication in empirical software engineering research (RESER 2010), 2010..
[ABO038] Gómez G.; Juristo, N.; Vegas, N. Replication, Reproduction and Re-analysis: Three ways for verifying experimental findings. In RESER´2010: Proceedings
108
Referência Estudo Primário of the 1st International Workshop on Replication in Empirical Software Engineering Research, Cape Town, South Africa, 2009.
[ABO039] Krein, J. L., et al. A Case for Replication : Synthesizing Research Methodologies in Software Engineering Proceedings of the 1st International Workshop on Replication in Empirical Software Engineering Research (RESER '10), 2010.
[ABO040] Maclean, A. C.; Pratt, L. J.; Krein, J. L.; Knutson, C. D.; Walls, C. Threats to Validity in Analysis of Language Fragmentation on SourceForge Data. RESER, 2010.
[ABO041] Mäntylä, M. V.; Aalto, F.-, Lassenius, C.; Aalto, F. Rethinking Replication in Software Engineering : Can We See the Forest for the Trees?. RESER, 2010.
[ABO042] Mockus, A.; Sjøberg, D. I. K. Experiences from Replicating a Case Study to Investigate Reproducibility of Software Development, In: First International Workshop on Replication in Empirical Software Engineering Research (RESER '10), Cape Town, South Africa, 4 May, 2010.
[ABO043] Robles, G.; Rey, U.; Carlos, J.; Germán, D. M. Beyond Replication : An example of the potential benefits of replicability in the Mining of Software Repositories Community. RESER, 2010.
109
APÊNDICE B – SWEBOK
IEEE Computer Society
Guide to the Software Engineering Body of Knowledge - SWEBOK ®
(http://www.computer.org/portal/web/swebok/html/contents)
Capítulos de Engenharia de Software
CHAPTER SESSION
2. SOFTWARE
REQUIREMENTS
1. Software Requirements Fundamentals
1.1 Definition of a Software Requirement
1.2 Product and Process Requirements
1.3 Functional and Non functional Requirements
1.4 Emergent Properties
1.5 Quantifiable Requirements
1.6 System Requirements and Software
Requirements
2. Requirements Process
2.1 Process Models
2.2 Process Actors
2.3 Process Support and Management
2.4 Process Quality and Improvement
3. Requirements Elicitation
3.1 Requirements Sources
3.2 Elicitation Techniques
4. Requirements Analysis
4.1 Requirements Classification
4.2 Conceptual Modeling
4.3 Architectural Design and Requirements Allocation
4.4 Requirements Negotiation
5. Requirements Specification
5.1 The System Definition Document
5.2 System Requirements Specification
5.3 Software Requirements Specification
6. Requirements validation
6.1 Requirements Reviews
6.2 Prototyping
6.3 Model Validation
6.4 Acceptance Tests
7. Practical Considerations
7.1 Iterative Nature of the Requirements Process
7.2 Change Management
7.3 Requirements Attributes
7.4 Requirements Tracing
110
CHAPTER SESSION 7.5 Measuring Requirements
3. SOFTWARE DESIGN
1. Software Design Fundamentals
1.1. General Design Concepts
1.2. Context of Software Design
1.3. Software Design Process
1.3.1. Architectural design
1.3.2. Detailed design
1.4. Enabling Techniques
1.4.1. Abstraction
1.4.2. Coupling and cohesion
1.4.3. Decomposition and
modularization
1.4.4. Encapsulation/information hiding
1.4.5. Separation of interface and
implementation
1.4.6. Sufficiency, completeness and
primitiveness
2. Key Issues in Software Design
2.1. Concurrency
2.2. Control and Handling of Events
2.3. Distribution of Components
2.4. Error and Exception Handling and Fault
Tolerance
2.5. Interaction and Presentation
2.6. Data Persistence
3. Software Structure and Architecture
3.1. Architectural Structures and Viewpoints
3.2. Design Patterns (microarchitectural
patterns)
3.3. Families of Programs and Frameworks
4. Software Design Quality Analysis and Evaluation
4.1. Quality Attributes
4.2. Quality Analysis and Evaluation
Techniques
4.3. Measures
5. Software Design Notations
5.1. Structural Descriptions (static view)
5.2. Behavioral Descriptions (dynamic view)
6. Software Design Strategies and Methods
6.1. General Strategies
6.2. Function-Oriented (Structured) Design
6.3. Object-Oriented Design
6.4. Data-Structure-Centered Design
6.5. Component-Based Design (CBD)
6.6. Other Methods
4. SOFTWARE 1. Software Construction Fundamentals
111
CHAPTER SESSION CONSTRUCTION 1.1. Minimizing Complexity
1.2. Anticipating Change
1.3. Constructing for Verification
1.4. Standards in Construction
2. Managing Construction
2.1. Construction Models
2.2. Construction Planning
2.3. Construction Measurement
3. Practical considerations
3.1. Construction Design
3.2 Construction Languages
3.3. Coding
3.4. Construction Testing
3.5. Reuse
3.6. Construction Quality
3.7 Integration
5. SOFTWARE TESTING
1. Software Testing Fundamentals
1.1. Testing-related terminology
1.1.1. Definitions of testing and related
terminology
1.1.2. Faults vs. Failures
1.2. Key issues
1.2.2. Testing effectiveness / Objectives
for testing
1.2.3. Testing for defect identification
1.2.4. The oracle problem
1.2.5. Theoretical and practical
limitations of testing
1.2.6. The problem of infeasible paths
1.2.7. Testability
1.3. Relationships of testing to other activities
2. Test Levels
2.1. The target of the test
2.1.1. Unit testing
2.1.2. Integration testing
2.1.3. System testing
2.2. Objectives of Testing
2.2.1. Acceptance / qualification testing
2.2.2. Installation testing
2.2.3. Alpha and beta testing
2.2.4. Conformance testing / Functional
testing / Correctness testing
2.2.5. Reliability achievement and
evaluation
2.2.6. Regression testing
2.2.7. Performance testing
112
CHAPTER SESSION 2.2.8. Stress testing
2.2.9. Back-to-back testing
2.2.10. Recovery testing
2.2.11.Configuration testing
2.2.12. Usability testing
2.2.13.Test-driven development
3. Test Techniques
3.1. Based on the software engineer's intuition
and experience
3.1.1. Ad hoc testing
3.1.2. Exploratory testing
3.2. Specification-based techniques
3.2.1. Equivalence partitioning
3.2.2. Boundary-value analysis
3.2.3. Decision table
3.2.4. Finite-state machine-based
3.2.5. Testing from formal specifications
3.2.6. Random testing
3.3. Code-based techniques
3.3.1. Control-flow-based criteria
3.3.2. Data flow-based criteria
3.3.3. Reference models for code-based
testing (flowgraph, call graph)
3.4. Fault-based techniques
3.4.1. Error guessing
3.4.2. Mutation testing
3.5. Usage-based techniques
3.5.1. Operational profile
3.5.2. Software Reliability Engineered
Testing
3.6. Techniques based on the nature of the
application
3.7. Selecting and combining techniques
3.7.1. Functional and structural
3.7.2. Deterministic vs. random
4. Test-related measures
4.1. Evaluation of the program under test
4.1.1. Program measurements to aid in
planning and designing testing
4.1.2. Fault types, classification, and
statistics
4.1.3. Fault density
4.1.4. Life test, reliability evaluation
4.1.5. Reliability growth models
4.2. Evaluation of the tests performed
4.2.1. Coverage / thoroughness
measures
113
CHAPTER SESSION 4.2.2. Fault seeding
4.2.3. Mutation score
4.2.4. Comparison and relative
effectiveness of different techniques
5. Test Process
5.1. Practical considerations
5.1.1. Attitudes / Egoless programming
5.1.2. Test guides
5.1.3. Test process management
5.1.4. Test documentation and work
products
5.1.5. Internal vs. independent test team
5.1.6. Cost/effort estimation and other
process measures
5.1.7. Termination
5.1.8. Test reuse and test patterns
5.2. Test Activities
5.2.1. Planning
5.2.2. Test-case generation
5.2.3. Test environment development
5.2.4. Execution
5.2.5. Test results evaluation
5.2.6. Problem reporting/Test log
5.2.7. Defect tracking
6. SOFTWARE
MAINTENANCE
1. Software Maintenance Fundamentals
1.1. Definitions and Terminology
1.2. Nature of Maintenance
1.3. Need for Maintenance
1.4. Majority of Maintenance
1.5. Evolution of Software
1.6. Categories of Maintenance
2. Key Issues in Software Main
2.1. Technical Issues tenance
2.1.1. Limited understanding
2.1.2. Testing
2.1.3. Impact analysis
2.1.4. Maintainability
2.2. Management Issues
2.2.1. Alignment with organizational
objectives
2.2.2. Staffing
2.2.3. Process
2.2.4. Organizational aspects of
maintenance
2.2.5. Outsourcing
2.3. Maintenance Cost Estimation
114
CHAPTER SESSION 2.3.1. Cost estimation
2.3.2. Parametric models
2.3.3. Experience
2.4. Software Maintenance Measurement
2.4.1. Specific Measures
3. Maintenance Process
3.1. Maintenance Processes
3.2. Maintenance Activities
3.2.1. Unique activities
3.2.2. Supporting activities
3.2.3. Maintenance planning activity
3.2.4. Software configuration
management
3.2.5. Software quality
4. Techniques for Maintenance
4.1. Program Comprehension
4.2. Reengineering
4.3. Reverse engineering
7. SOFTWARE
CONFIGURATION
MANAGEMENT
1. Management of the SCM Process
1.1. Organizational Context for SCM
1.2. Constraints and Guidance for the SCM
Process
1.3. Planning for SCM
1.3.1. SCM organization and
responsibilities
1.3.2. SCM resources and schedules
1.3.3. Tool selection and
implementation
1.3.4. Vendor/Subcontractor Control
1.3.5. Interface control
1.4. SCM Plan
1.5. Surveillance of Software Configuration
Management
1.5.1. SCM measures and
measurement
1.5.2. In-process audits of SCM
2. Software Configuration Identification
2.1. Identifying Items to Be Controlled
2.1.1. Software configuration
2.1.2. Software configuration item
2.1.3. Software configuration item
relationships
2.1.4. Software version
2.1.5. Baseline
2.1.6. Acquiring software configuration
items
115
CHAPTER SESSION 2.2. Software Library
3. Software Configuration Control
3.1. Requesting, Evaluating, and Approving
Software Changes
3.1.1. Software Configuration Control
Board
3.1.2. Software change request process
3.2. Implementing Software Changes
3.3. Deviations and Waivers
4. Software Configuration Status Accounting
4.1. Software Configuration Status Information
4.2. Software Configuration Status Reporting
5. Software Configuration Auditing
5.1. Software Functional Configuration Audit
5.2. Software Physical Configuration Audit
5.3. In-process Audits of a Software Baseline
6. Software Release Management and Delivery
6.1. Software Building
6.2. Software Release Management
8. SOFTWARE
ENGINEERING
MANAGEMENT
1. Initiation and Scope Definition
1.1. Determination and Negotiation of
Requirements
1.2. Feasibility Analysis (Technical, Operational,
Financial, Social/Political)
1.3. Process for the Review and Revision of
Requirements
2. Software Project Planning
2.1. Process Planning
2.2. Determine Deliverables
2.3. Effort, Schedule, and Cost Estimation
2.4. Resource Allocation
2.5. Risk Management
2.6. Quality Management
2.7. Plan Management
3. Software Project Enactment
3.1. Implementation of Plans
3.2. Supplier Contract Management
3.3. Implementation of measurement process
3.4. Monitor Process
3.5. Control Process
3.6. Reporting
4. Review and Evaluation
4.1. Determining Satisfaction of Requirements
4.2. Reviewing and Evaluating Performance
5. Closure
5.1. Determining Closure
116
CHAPTER SESSION 5.2. Closure Activities
6. Software Engineering Measurement
6.1. Establish and Sustain Measurement
Commitment
6.2. Plan the Measurement Process
6.3. Perform the Measurement Process
6.4. Evaluate Measurement
9. SOFTWARE
ENGINEERING
PROCESS
1. Process Implementation and Change
1.1. Process Infrastructure
1.1.1. Software Engineering Process
Group (SEPG)
1.1.2. Experience Factory (EF)
1.2. Software Process Management Cycle
1.3. Models For Process Implementation And
Change
1.4. Practical Considerations
2. Process Definition
2.1. Software Life Cycle Models
2.2. Software Life Cycle Processes
2.3. Notations for Process Definitions
2.4. Process Adaptation
2.5. Automation
3. Process Assessment
3.1. Process Assessment Models
3.2. Process Assessment Methods
4. Process and Product Measurement
4.1. Process Measurement
4.1.1. Size measurement
4.1.2. Structure measurement
4.1.3. Quality measurement
4.2. Quality Of Measurement Results
4.3. Software Information Models
4.3.1. Model building
4.3.2. Model implementation
4.4. Process Measurement Techniques
4.4.1. Analytical techniques
4.4.2. Benchmarking techniques
10. SOFTWARE
ENGINEERING TOOLS
AND METHODS
1. Software Engineering Tools
1.1. Software Requirements Tools
1.2. Software Design Tools
1.3. Software Construction Tools
1.4. Software Testing Tools
1.5. Software Maintenance Tools
1.6. Software Configuration Management Tools
1.7. Software Engineering Management Tools
1.8. Software Engineering Process Tools
117
CHAPTER SESSION 1.9. Software Quality Tools
1.10. Miscellaneous Tool Issues
2. Software Engineering Methods
2.1. Heuristic methods
2.2. Formal Methods
2.3. Prototyping Methods
11. SOFTWARE
QUALITY
1. Software Quality Fundamentals
1.1. Software Engineering Culture and Ethics
1.2. Value and Costs of Quality
1.3. Models and Quality Characteristics
1.3.1. Software engineering process
quality
1.3.2. Software product quality
1.4. Quality Improvement
2. Software Quality Management Processes
2.1. Software Quality Assurance
2.2. Verification & Validation
2.3. Reviews and Audits
2.3.1. Management reviews
2.3.2. Technical reviews
2.3.3. Inspections
2.3.4. Walk-throughs
2.3.5. Audits
3. Practical Considerations
3.1. Software Quality Requirements
3.1.1. Influence factors
3.1.2. Dependability
3.1.3. Integrity levels of software
3.2. Defect Characterization
3.3. Software Quality Management
Techniques
3.3.1. Static techniques
3.3.2. People-intensive techniques
3.3.3. Analytical techniques
3.3.4. Dynamic techniques
3.3.5. Testing
3.4. Software Quality Measurement