UNIVERSIDADE ESTADUAL PAULISTA
“Júlio de Mesquita Filho”
Pós-Graduação em Ciência da Computação
Lilian Passos Scatalon
Empacotamento de Experimentos Controlados em
Engenharia de Software: Uma Abordagem Baseada em
Ontologia
UNESP
2013
Lilian Passos Scatalon
Empacotamento de Experimentos Controlados em
Engenharia de Software: Uma Abordagem Baseada em
Ontologia
Orientador: Prof. Dr. Rogério Eduardo Garcia
Dissertação apresentada ao Instituto de Biociências, Letras e Ciências Exatas (IBILCE –
Unesp – São José do Rio Preto) como parte dos
requisitos para a obtenção do título de mestre
em Ciência da Computação.
UNESP
2013
i
“Tá pronto.”
iii
Dedico este trabalho aos meus pais, Nete e Ademar,
à minha irmã Aline e à memória do meu irmão Junior.
iv
Agradecimentos
A Deus, pela segunda chance. Pela terceira, pela quarta, pela enésima. Muito obrigada por todo
o aprendizado repleto de amor que recebi durante esse período e por ter colocado todas essas pessoas
em meu caminho!
Aos meus pais (Nete e Ademar), pelos cuidados comigo e incentivo. Eu me preparei a minha vida
inteira para fazer isso, sem nem me dar conta. E vocês são os responsáveis por todo tipo de apoio que
eu tive.
À minha irmã (Aline), por me alimentar e cuidar de mim durante esse período, principalmente
nos últimos meses tensos, porque fui uma roommate muito relapsa. Ainda bem que tenho uma irmã
que é uma leoa.
À minha família, por ser uma família com a qual sempre podemos contar. Um agradecimento
especial à tia Givalda, que me levou para a entrevista do processo seletivo em Rio Preto.
Ao Rogério, pela paciência, pela orientação e, acima de tudo, pela formação que me proporcionou. Obrigada por cada pergunta que me fez pensar para responder. A maioria dessas respostas
não estavam no rumo certo, mas você foi direcionando. Com isso aprendi muito como aluna e como
pessoa também. Obrigada por ter assistido aquele primeiro seminário do TCC e, mesmo depois disso,
me aceitar como aluna de mestrado. Tá pronto! Tá pronto! Tá pronto! Tá pronto! Tá pronto!
Aos irmãos Álvaro, Fer, Jorge, Neto e Helton e à prima Vanessa, pelos momentos que vivemos
juntos na sala 13, na senzala, no café e durante as viagens a Bauru, Rio Preto e Rio Claro.
À Fer, por compartilhar todas as emoções deste mestrado comigo: trabalhos das disciplinas, viagens a Bauru, prazos vencendo, artigos aceitos. Na alegria e na tristeza estávamos passando por
tudo sempre juntas. Obrigada por levar a nossa amizade além da fronteira das nossas atividades no
mestrado, por se importar de verdade comigo e por dizer muitas coisas que me fizeram parar para
pensar na vida.
Ao Jorge, por chegar quase um ano depois e mesmo assim se tornar uma das pessoas mais importantes nisso tudo. Obrigada pelas muitas vezes que ajudou a me organizar e a ter bom senso enquanto
eu surtava. Por cada carona, cada conversa, cada vez que me ajudou com as disciplinas da graduação.
E claro, não posso deixar de mencionar: obrigada por ser o DJ das nossas viagens para o workshop.
Quando você for o diretor da FCT, lembre-se daquela promessa.
À Patrícia Nunes, por me acolher em sua casa durante o período das disciplinas. Estendo o
agradecimento à Adriana e à Priscila. Encontrar rostos amigos lá em Bauru todas as quintas de noite
v
foi muito bom.
À Andrika e ao Balbino, pela paciência, pela prontidão, pela amizade e por terem me acolhido em
São Carlos. Na última vez que estive com vocês, quase passei de visita para agregada, me desculpem.
À Cida, à Marisa e ao Ricardo, pelo carinho e pelos sábados muito agradáveis que passei com
vocês durante esse período.
À Aline Sandra e à Fer Hondo, pela amizade e torcida. Aline, nem sei se você lembra, mas quando
eu estava escrevendo o projeto de pesquisa para enviar à Fapesp, você acreditou mais do que eu que
seria aceito e me incentivou bastante. Obrigada!
Ao Hadil, pelo empurrão para ingressar na vida acadêmica e por todo o apoio durante o primeiro
ano.
Ao pessoal do Pós-MAC, por nos emprestar um cantinho em sua sala de permanência. Um agradecimento especial para a Patrícia, a Camila, a Larissa, o Diego, o Clóvis, o Merejolli, a Marília, a
Renata, o Verri, o Zé e a Daiane, por fazerem parte da nossa rotina. Tudo era mais divertido naquela
sala 13! Foram muitos almoços agradáveis na companhia de vocês.
A todos que de alguma maneira me ajudaram lá em São Carlos nas vezes que estive lá. Ao Rubens,
pelo apoio moral no dia da quali. Ao pessoal do Labic e à professora Solange, por terem me recebido
tão bem e pelas contribuições ao meu trabalho. Em especial, agradeço ao Rafael Giusti pelas dicas
passadas de veterano para aspirante a aluna do ICMC. Ao Renan, pela torcida e pela companhia nos
almoços. Ao Balbino e à Andrika, porque algumas pessoas precisam ser citadas muitas vezes entre
os agradecimentos.
Aos professores Ronaldo, Milton, Celso e Danilo, por sempre estarem dispostos a ajudar. Obrigada pelas contribuições a este trabalho, pelas palavras de incentivo, pela parceria em outros trabalhos
e pelo auxílio nas minhas atividades como professora de primeira viagem (aproveito para agradecer
novamente ao Rogério por esse motivo também).
Ao Balbino e ao Rafael Giusti, pela gentileza de providenciar e entregar as cópias da quali e da
dissertação para a banca.
Às professoras Solange e Ellen, pelas muitas contribuições e por terem gentilmente aceito participar da banca da quali e da defesa. A colaboração de vocês foi muito importante para aprimorar o
trabalho.
À Unesp, como instituição, pelo ensino que recebi na graduação e no mestrado (inclusive com a
provisão necessária desde o começo) e por me empregar nos últimos meses como professora substituta
do curso em que me formei. São mais de 7 anos passando por aquele caminho dos eucaliptos!
À PROPG-Unesp e à FAPESP pelo apoio financeiro. Do meu ponto de vista, me deram a oportunidade e vocês possibilitaram a realização de um sonho.
vi
Índice
Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lista de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
x
xi
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1
2
Introdução
1
1.1
1.2
1.3
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formulação do problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
3
1.4
Organização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Experimentos controlados em Engenharia de Software
2.1 Experimentos controlados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
2.2
2.3
2.4
2.5
3
Processo de experimentação . . . . . . . . . . . . . . .
2.2.1 Definição . . . . . . . . . . . . . . . . . . . . .
2.2.2 Planejamento . . . . . . . . . . . . . . . . . . .
2.2.3 Operação . . . . . . . . . . . . . . . . . . . . .
2.2.4 Análise e interpretação . . . . . . . . . . . . . .
2.2.5 Empacotamento . . . . . . . . . . . . . . . . . .
Replicações . . . . . . . . . . . . . . . . . . . . . . . .
Transferência de conhecimento . . . . . . . . . . . . . .
2.4.1 Pacotes de laboratório e artigos científicos . . . .
2.4.2 Diretrizes para reportar experimentos controlados
Considerações finais . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ontologia
3.1 Visão geral sobre ontologia . . . . . . . . . . . . . . . . . . . . . . .
3.2 Ontologias para experimentos controlados em Engenharia de Software
3.3 EXP ER Ontology . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Evolução de ontologias . . . . . . . . . . . . . . . . . . . . . . . . .
vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
8
8
9
10
10
11
13
14
14
18
.
.
.
.
20
20
22
24
26
Matching de ontologias/esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
Processo de matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Técnicas de matching por tipo de entrada . . . . . . . . . . . . . . . . . . .
29
30
Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
Workflow para empacotar experimentos controlados
4.1 Definição do comportamento do workflow . . . . . . . . . . . . . . . . . . . . . . .
33
33
Atividade de Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.1.2 Atividades de Instanciação, Resolução e Evolução . . . . . . . . . . . . . .
Instância do workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
38
4.2.1
4.2.2
Entradas do workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Atividade de matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
40
4.2.3
Atividade de instanciação . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4.2.4
Atividades de resolução e evolução . . . . . . . . . . . . . . . . . . . . . .
43
Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
3.5
3.5.1
3.5.2
3.6
4
4.1.1
4.2
4.3
5
6
Avaliação do workflow
45
5.1
5.2
Ferramenta PontoLab++ . . . .
Execução do workflow proposto
5.2.1 Pré-processamento . . .
5.2.2 Execução do workflow .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
48
48
50
5.3
Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
Conclusões
6.1 Contribuições e limitações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
57
6.2
6.3
58
58
Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produção bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Referências Bibliográficas
59
viii
Lista de Figuras
2.1
Relação causal avaliada em um experimento controlado (Wohlin et al., 2000) . . . .
6
2.2
Variáveis independentes e dependentes de um experimento controlado (Wohlin et al.,
2000) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
2.4
Processo de experimentação (Wohlin et al. (2000); Garcia (2006)) . . . . . . . . . .
Processo de experimentação - fase de empacotamento (Wohlin et al. (2000); Amaral
e Travassos (2003)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
11
2.5
2.6
2.7
Papel da replicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Ciclos do FIRE (Mendonça et al., 2008) . . . . . . . . . . . . . . . . . . . . . . . . 12
Modelo de compartilhamento de conhecimento em experimentação (Shull et al., 2004) 13
3.1
Domínio de recursos humanos, adaptado de Guarino et al. (2009) . . . . . . . . . . .
21
3.2
3.3
Conceituação do domínio de recursos humanos . . . . . . . . . . . . . . . . . . . .
Processo de desenvolvimento de uma ontologia (Goméz-Pérez, 1999) . . . . . . . .
21
22
3.4
Ontologia da estrutura de um estudo experimental em Engenharia de Software (Biolchini et al., 2007) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Ambiente de Engenharia de Software Experimental com um repositório de conhecimento (Lopes e Travassos, 2009) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 EXP ER Ontology - conceitos de experimentos controlados (Garcia et al., 2008) . . .
3.7 EXP ER Ontology - conceitos de um pacote de laboratório (Garcia et al., 2008) . . . .
3.8 Processo de evolução de ontologia (Stojanovic, 2004) . . . . . . . . . . . . . . . . .
3.9 Introdução de inconsistências após a realização de uma mudança . . . . . . . . . . .
3.10 Matching de esquemas/ontologias, representado como uma operação com entradas e
saída (Euzenat e Shvaiko, 2007) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.11 Processo de matching de esquemas (Rahm, 2011) . . . . . . . . . . . . . . . . . . .
4.1
4.2
4.3
4.4
4.5
Integração de pacotes de laboratório usando ontologia . . . . . . . . . . . . . . . .
Empacotamento com ontologia - situação ideal . . . . . . . . . . . . . . . . . . .
Empacotamento com ontologia - situação em que sobram elementos de informação
Diagrama com todas as atividades do workflow e suas respectivas entradas e saídas
Atividade de matching do workflow . . . . . . . . . . . . . . . . . . . . . . . . .
ix
.
.
.
.
.
23
23
24
25
26
27
29
29
34
34
34
35
36
4.6
Atividade de instanciação do workflow . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.7
4.8
Atividade de resolução do workflow . . . . . . . . . . . . . . . . . . . . . . . . . .
Atividade de evolução do workflow . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
37
Trecho de um pacote de laboratório em documento XML . . . . . . . . . . . . . . .
4.10 Instantâneo da EXP ER Ontology no editor Protégé . . . . . . . . . . . . . . . . . . .
4.11 Ontologias de instâncias e a EXP ER Ontology . . . . . . . . . . . . . . . . . . . . .
38
39
42
5.1
5.2
PontoLab++ - Interface inicial com os ajustes para a execução do workflow . . . . .
PontoLab++ - Interface com os demais ajustes para a execução do workflow . . . . .
46
46
5.3
PontoLab++ - Interface com o conjunto de elementos de informação casados . . . .
47
5.4
5.5
PontoLab++ - Interface com o conjunto de elementos de informação não casados . .
PontoLab++ - Interface de resolução e evolução . . . . . . . . . . . . . . . . . . . .
47
48
5.6
Extração de elementos de informação do texto . . . . . . . . . . . . . . . . . . . . .
49
5.7
5.8
Extração de um elemento de informação do texto . . . . . . . . . . . . . . . . . . .
Interface da ferramenta de pré-processamento . . . . . . . . . . . . . . . . . . . . .
49
50
4.9
x
Lista de Tabelas
2.1
Visão geral das diretrizes para reportar experimentos controlados (Jedlitschka et al.,
2.2
2008) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diretrizes propostas por Jedlitschka et al. (2007) . . . . . . . . . . . . . . . . . . . .
15
15
3.1
Mudanças elementares a uma ontologia (Stojanovic, 2004) . . . . . . . . . . . . . .
27
3.2
3.3
Distância de edição entre nomes dos conceitos (Euzenat e Shvaiko, 2007) . . . . . .
Distância entre nomes de conceitos calculada com o apoio de um tesauro (Euzenat e
Shvaiko, 2007) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
30
3.4
Matriz resultante da combinação dos resultados (Euzenat e Shvaiko, 2007) . . . . . .
30
4.1
Impacto de mudanças de adição de conceitos em uma ontologia (Abgaz et al., 2011) .
44
5.1
5.2
Amostra do conjunto de correspondências . . . . . . . . . . . . . . . . . . . . . . .
Conjunto de elementos não-casados . . . . . . . . . . . . . . . . . . . . . . . . . .
51
54
xi
Resumo
Engenharia de Software Experimental visa a avaliar e medir o desempenho de métodos, técnicas
e ferramentas aplicadas em atividades de desenvolvimento de software. A meta é criar um corpo de
conhecimento validado experimentalmente para apoiar as tomadas de decisões no domínio de Engenharia de Software. Construir esse corpo de conhecimento requer a condução de experimentos
controlados e suas replicações a fim de generalizar os resultados obtidos. As informações e o conhecimento gerados por um experimento são registrados em seu pacote de laboratório, que deve ser
revisado por um eventual grupo de pesquisa com a intenção de replicá-lo. Entretanto, pesquisadores enfrentam dificuldades ao revisar os pacotes de laboratório disponíveis. Um dos fatores desse
problema é a falta de padronização dos pacotes de laboratório. Os experimentos são reportados com
diferentes conjuntos de informações, o que também se constitui em uma barreira para a integração dos
estudos em um corpo comum. Nesse contexto, considerando que compartilhamento e integração de
conhecimento são aplicações recorrentes de ontologias, neste trabalho é proposto um workflow para
aplicar uma ontologia ao empacotamento de experimentos controlados em Engenharia de Software.
Para avaliar essa abordagem, foi implementada a ferramenta PontoLab++, que corresponde a uma
instância do workflow que adota como padrão a EXP ER Ontology, uma ontologia para experimentos
controlados.
xii
Abstract
Experimental Software Engineering attempts to assess the performance of methods, techniques
and tools applied on software development activities. The goal is to build a body of experimentally
validated knowledge in order to support decision making on Software Engineering domain. Building
this body of knowledge requires to run controlled experiments and their replications in order to generalize the obtained results. The information and the knowledge generated by an experiment are
registered in the so-called lab package, which must be reviewed by an eventual research group with
the intention to replicate it. However, researchers face difficulties while reviewing the available lab
packages. One of the factors that leads to this problem is the lab packages lack of standardization.
The experiments are reported with different information sets, what is also a barrier to integrate studies
in a common body. In this context, considering that knowledge sharing and integration are recurring
applications of ontologies, in this work is proposed a workflow that applies an ontology to package
controlled experiments in Software Engineering. In order to evaluate this approach, the tool PontoLab++ was implemented, which corresponds to a workflow instance that adopts EXP ER Ontology, an
ontology for controlled experiments.
xiii
C APÍTULO
1
Introdução
A Engenharia de Software Experimental tem por objetivo a realização de estudos que avaliem
métodos, técnicas e ferramentas envolvidos no desenvolvimento de software. Para atingir seus objetivos, os engenheiros de software precisam entender e escolher tecnologias apropriadas que apóiem
o desenvolvimento de seus projetos. Nessa perspectiva, estudos experimentais vêm sendo realizados,
contribuindo para a formação de uma base de conhecimento sobre Engenharia de Software que pode
ajudar em tomadas de decisão (Basili et al. (1999); Basili (2006)).
Em um experimento controlado elabora-se um modelo similar a profissionais construindo software. Os participantes, que os representam, aplicam a tecnologia sob investigação. Os dados produzidos pela execução permitem que o desempenho seja avaliado, medido e comparado, considerando as
condições sob as quais o experimento foi executado (Juristo e Moreno (2001); Wohlin et al. (2000)).
A partir dos resultados de estudos experimentais é construído um corpo de conhecimento, que além
de prover um alicerce científico para a disciplina de Engenharia de Software, favorece a sua respectiva
aplicação no mercado, apoiando em tomadas de decisão (Basili e Zelkowitz, 2007).
Entretanto, apenas experimentos isolados não são suficientes para o estabelecimento desse corpo
de conhecimento, por isso é preciso realizar replicações para fundamentar as conclusões obtidas com
um nível maior de confiança (Shull et al. (2008); Brooks et al. (2008)). Quando outros pesquisadores
replicam um experimento com sucesso, a confiança é construída nos procedimentos e nos resultados
(Brooks et al., 2008).
Realizar uma replicação, que não seja de maneira completamente independente do grupo de pesquisa responsável pelo experimento original (Kitchenham, 2008), requer o acesso ao seu respectivo
pacote de laboratório. O pacote de laboratório é um artefato que contém a descrição dos procedimentos adotados, o conhecimento gerado, os resultados e as conclusões (Shull et al., 2002).
Revisando essas informações, replicadores podem compreender como o experimento foi projetado, conduzido e analisado. Portanto, o pacote de laboratório consiste em um meio de transferência
de conhecimento entre grupos de pesquisa de Engenharia de Software.
1
1.1 Motivação
1.1
Motivação
Uma barreira para integrar os resultados dos estudos em um corpo comum de conhecimento é
a falta de padronização de suas informações (Jedlitschka et al., 2008). Além disso, pesquisadores
enfrentam dificuldades em entender e revisar pacotes de laboratório. As principais dificuldades estão
relacionadas ao entendimento dos conceitos das técnicas sob estudo e em dominar o conhecimento
envolvido na execução do experimento. (Shull et al., 2002).
Para lidar com dificuldades na transferência de conhecimento entre pesquisadores, Mendonça et
al. (2008) propuseram o arcabouço FIRE (Framework for Improving the Replication of Experiments),
que trata de questões de compartilhamento de conhecimento dentro de um mesmo grupo de pesquisa
(intragrupo) e entre grupos de pesquisa distintos (intergrupos). O arcabouço é composto de atividades
que enfatizam, entre outras práticas, a importância de padronizar pacotes de laboratório, compartilhar
e promover o entendimento do conhecimento gerado por cada estudo experimental.
Shull et al. (2004) apontaram que os pacotes de laboratório são ferramentas importantes para
apoiar replicações e, se forem bem projetados, facilitam replicações. Logo, deve ser promovida uma
representação bem projetada para o conhecimento expresso em um pacote de laboratório.
Compartilhar conhecimento é uma das metas mais comuns em se desenvolver ontologias (Gruber
(1995); Noy e McGuinness (2001)). Além disso, ontologias vêm sendo utilizadas em Engenharia de
Software com a finalidade de modelar conceitos de um domínio (Kitchenham et al. (1999); Falbo
et al. (2005); Barbosa et al. (2006); Biolchini et al. (2007)). Nesse contexto, Garcia et al. (2008)
apresentaram uma ontologia para o domínio de experimentos controlados – a EXP ER Ontology – que
ajuda a esclarecer seus conceitos e relações.
Ontologias são um meio para prover o entendimento compartilhado da estrutura da informação
que modelam (Noy e McGuinness, 2001). Portanto, para facilitar o entendimento do conteúdo dos
pacotes de laboratório, uma ontologia pode ser usada como um padrão semântico das informações
geradas por um experimento.
1.2
Formulação do problema
Vários experimentos têm sido conduzidos e seus resultados publicados, entretanto cada pesquisador publica um conteúdo diferente sobre o experimento realizado, em relação ao conjunto de informações e ao nível de detalhes (Jedlitschka et al., 2008). A falta de padronização das informações
geradas pelos experimentos é uma grande dificuldade para sua integração em um corpo de conhecimento comum (Jedlitschka et al., 2008).
Assim, não apenas o uso de uma ontologia para empacotar o conjunto de informações de experimentos deve ser considerado, mas também a prática de publicação atual, uma vez que é comum haver
pacotes de laboratório contendo diferentes conjuntos de informação. É necessário lidar com diferentes conjuntos de informação para acomodá-los de acordo com a ontologia, que pode ser utilizada para
integrar as diferentes perspectivas sobre o que deve conter um pacote de laboratório. Uma vez que há
a necessidade de uma padronização que considere a irregularidade dos conjuntos de informação dos
experimentos publicados (Carver, 2010), a ontologia adotada deve lidar com as diferentes maneiras
que a execução de um experimento pode ser registrada.
2
1.3 Objetivos
1.3
Objetivos
O principal objetivo é instanciar pacotes de laboratório de acordo com os conceitos de uma ontologia, a fim de padronizá-los. Considerando uma padronização que acomode diferentes conjuntos
de informação, a ontologia adotada deve ser capaz de lidar com as diferentes maneiras nas quais as
informações do experimento são registradas. Isso sugere que a ontologia deve evoluir, incorporando
novos conceitos.
De uma maneira geral, há o objetivo lidar com os problemas de integração e transferência do
conhecimento gerado por experimentos controlados em Engenharia de Software. Conforme pode ser
observado no arcabouço FIRE (Mendonça et al., 2008), um importante fator que permeia a transferência de conhecimento entre grupos de pesquisa é o empacotamento das informações de cada
experimento.
Para atingir os objetivos, neste trabalho de mestrado foi proposto um workflow de empacotamento
de experimentos controlados com base em uma ontologia. Uma vez que as definições da ontologia
não são necessariamente estáticas, o workflow permite que a ontologia absorva novos conceitos, conforme pacotes de laboratório contendo diferentes conjuntos de informação são instanciados. Adicionalmente, foi implementada uma instância do workflow, que adota a EXP ER Ontology como ontologia
de entrada – a ferramenta PontoLab++.
1.4
Organização
Para contextualizar e apresentar a proposta de trabalho, o restante desta dissertação está organizado como segue:
• No Capítulo 2 são dadas definições gerais sobre experimentos controlados e o processo de experimentação é detalhado, a fim de fornecer uma visão geral sobre quais informações devem ser
registradas em um pacote de laboratório. Também são apresentados alguns aspectos relativos
à importância de se realizar replicações e problemas relacionados à transferência de conhecimento entre grupos de pesquisa.
• No Capítulo 3, é dada uma visão geral sobre ontologia e então são apresentados trabalhos
relacionados, que elaboram ou aplicam ontologias no contexto de experimentos controlados em
Engenharia de Software. Dentre esses trabalhos, a EXP ER Ontology é apresentada em detalhes.
Também são apresentados processos auxiliares que foram identificados neste trabalho como
necessários para compor uma solução que aplique a ontologia para lidar com problemas de
transferência de conhecimento: evolução e matching de ontologias/esquemas.
• No Capítulo 4 é proposto o workflow para empacotar experimentos controlados em Engenharia
de Software que adota uma ontologia como o padrão das informações do pacote de laboratório
gerado. Além de fornecer a definição de um conjunto de atividades, neste capítulo é apresentada
uma instância do workflow, considerando a EXP ER Ontology como ontologia adotada e algumas
escolhas de implementação.
3
1.4 Organização
• No Capítulo 5 é mostrada uma avaliação da proposta. Para isso, é apresentada a implementação
(i) da instância do workflow (ferramenta PontoLab++) e (ii) de um pré-processamento para permitir a execução usando um conjunto de artigos como representantes dos pacotes de laboratório
a serem padronizados. Por fim, é fornecida uma demonstração da execução do workflow por
meio da ferramenta PontoLab++.
• No Capítulo 6 são apresentadas as conclusões acerca do trabalho desenvolvido, destacando suas
contribuições e limitações, e são indicados trabalhos futuros. Também é apresentada a produção
bibliográfica obtida ao longo de seu desenvolvimento.
4
C APÍTULO
2
Experimentos controlados em Engenharia
de Software
Grupos de pesquisa isolados têm dificuldades em prover o ambiente de laboratório necessário para
aprender sobre variações nos efeitos das tecnologias em múltiplos ambientes e fatores de influência.
Logo, com replicações realizadas em diferentes grupos de pesquisa é possível tratar diferentes conjuntos de condições a que a aplicação de uma técnica, método ou ferramenta está sujeita, para que as
conclusões obtidas atinjam um contexto abrangente e, então, seja possível consolidar conhecimento
em Engenharia de Software.
Neste capítulo é enfatizada a importância do estabelecimento de um corpo de conhecimento por
meio de experimentos e suas replicações por diversos grupos de pesquisa. Também são apresentados
os problemas na transferência de conhecimento entre esses grupos. Na Seção 2.1 são apresentados
conceitos básicos sobre experimentos controlados. Na Seção 2.2 são apresentadas as fases do processo para estabelecer e executar um experimento. Na Seção 2.3 argumenta-se sobre a importância
da realização de replicações de experimentos para formar um corpo de conhecimento em Engenharia
de Software e é ressaltada a consequente necessidade de transferir conhecimento entre grupos de pesquisa. Na Seção 2.4 aborda-se sobre a transferência de conhecimento entre grupos de pesquisa e são
apontados alguns problemas observados.
2.1
Experimentos controlados
Em um experimento controlado é construído e avaliado um modelo que representa a aplicação
de métodos, técnicas e ferramentas (os objetos de estudo) durante atividades de desenvolvimento de
software. Assim, os participantes selecionados os aplicam sob condições controladas, produzindo
resultados cuja análise permite obter conclusões a respeito dessa aplicação.
Para avaliar o objeto de estudo em um experimento, é preciso isolar os fatores que o influenciam e,
de alguma maneira, captar os efeitos obtidos com a sua aplicação. Assim, o ponto de partida é a ideia
de uma relação de causa e efeito em teoria (Wohlin et al., 2000). Essa relação é formalizada em uma
5
2.1 Experimentos controlados
hipótese (ou um conjunto de hipóteses), que é testada durante o processo. A relação causal (expressa
na hipótese) é avaliada por meio da execução do experimento, como pode ser visto na Figura 2.1.
Objetivo do experimento
Teoria
construção
causa-efeito
construção
da causa
Observação
construção
do efeito
construção
tratamentoresultado
tratamentos
resultados
Variável dependente
Variável independente
Execução do experimento
Figura 2.1: Relação causal avaliada em um experimento controlado (Wohlin et al., 2000)
Os elementos que influenciam a aplicação do objeto de estudo são as váriáveis independentes.
Um experimento estuda o efeito da mudança de uma ou mais variáveis independentes, os fatores
(Wohlin et al., 2000). Os valores que um fator pode assumir são os tratamentos. Por exemplo, considerando um experimento cujo objetivo é analisar técnicas de Verificação e Validação (Basili e Selby,
1987), podem ser isolados os fatores tipo de técnica de teste aplicada e experiência dos participantes. Para o fator tipo de técnica, os tratamentos podem ser: leitura de código, teste estrutural e teste
funcional.
Conforme a atribuição de tratamentos, o efeito obtido pela execução varia. O efeito é representado
por meio da variável dependente, cujos valores correspondem aos resultados da execução de um
experimento. No exemplo, a variável dependente pode ser o número de defeitos encontrados por um
participante utilizando uma determinada técnica de teste. Assim como está esquematizado na Figura
2.2, as variáveis independentes são as entradas para a execução do experimento. E, de acordo com os
valores que assumem, o efeito das mudanças reflete no valor da variável dependente.
…
Variáveis
independentes
Processo
Variável
dependente
Figura 2.2: Variáveis independentes e dependentes de um experimento controlado (Wohlin et al.,
2000)
Os tratamentos são aplicados a uma combinação de objetos e participantes. Um objeto pode
6
2.1 Experimentos controlados
ser, por exemplo, os programas em que devem ser aplicadas as técnicas de teste. Os participantes
são as pessoas que aplicam os tratamentos. A execução do experimento consiste na execução de um
conjunto de testes (trials), em que cada teste é uma combinação de tratamento, participante e objeto
(Wohlin et al., 2000). Por exemplo, um teste pode ser a pessoa N (participante) aplicar uma técnica
T (tratamento) para inspecionar o programa P (objeto). A partir da execução dos testes, são coletados
os resultados do experimento.
2.2
Processo de experimentação
Há uma sequência de passos para estabelecer e analisar um modelo que reflita o relacionamento
causa-efeito em termos de fatores, variáveis dependentes e objetos. Uma abordagem sistemática, aqui
descrita como um processo de experimentação, deve ser adotada com a finalidade de alcançar o nível
de controle que um experimento requer. De acordo com a Figura 2.3, o processo sugerido por Wohlin
et al. (2000) é composto pelas fases: definição, planejamento, operação, análise e interpretação e
apresentação e empacotamento.
,GHLDSDUDR
([SHULPHQWR
'HILQLomRGR([SHULPHQWR
'RFXPHQWRGH'HILQLomR
3URMHWR([SHULPHQWDO
3ODQHMDPHQWR
2SHUDomR
'DGRV&ROHWDGRV
$QiOLVHH,QWHUSUHWDomR
'DGRV&ROHWDGRV
$SUHVHQWDomRH
(PSDFRWDPHQWR
5HODWyULRGR([SHULPHQWR
Figura 2.3: Processo de experimentação (Wohlin et al. (2000); Garcia (2006))
A definição estabelece o escopo do experimento, que é definido em termos dos objetivos e metas.
No planejamento, as hipóteses são formalizadas e o projeto é determinado (o arranjo de quais participantes devem aplicar quais tratamentos). A operação é a execução do experimento propriamente
dita. Nessa fase as medidas dos resultados são coletadas e então avaliadas na fase de análise e interpretação. Por fim, os procedimentos adotados, resultados e conclusões obtidos são armazenados na
fase de apresentação e empacotamento.
7
2.2 Processo de experimentação
2.2.1
Definição
A fase de definição fornece a descrição geral do experimento, estabelecendo o seu escopo, suas
metas e, consequentemente, a base para a formulação das hipóteses. As metas do experimento podem
ser definidas de acordo com o seguinte modelo:
Analisar <Objeto(s) do estudo>
com o propósito de <Propósito>
com respeito a <Foco de qualidade>
do ponto de vista de <Perspectiva>
no contexto de <Contexto>
O objeto do estudo é a entidade que é estudada no experimento, que pode ser uma técnica, um
método, um modelo, uma ferramenta ou um processo, por exemplo. O propósito do experimento
define o objetivo em termos gerais. Pode ser, por exemplo, comparar diferentes técnicas. O Foco de
qualidade é o efeito sob estudo no experimento. Alguns exemplos são efetividade, custo e confiabilidade. A perspectiva revela o ponto de vista do qual os resultados são interpretados (desenvolvedor,
gerente de projeto, cliente ou pesquisador). Por fim, o contexto é o composto pela caracterização dos
participantes (experiência, tamanho de equipe, etc) e dos objetos, ou seja, dos artefatos que devem ser
usados no experimento (complexidade, tamanho, domínio de aplicação, etc).
2.2.2
Planejamento
A fase de planejamento estabelece como o experimento deve ser conduzido. A partir da definição
das metas do estudo, tem-se como produto o projeto experimental, em que tratamentos, objetos e
participantes são arranjados de modo a organizar como os testes devem ser executados.
Em primeiro lugar, o contexto do experimento (que foi apontado na fase de definição) deve ser
refinado. É preciso decidir se o experimento vai ser executado em um ambiente real ou simulado e
se os participantes devem ser profissionais ou estudantes, por exemplo. Tais decisões envolvem uma
análise dos riscos e custos envolvidos.
Em seguida, as hipóteses que expressam a relação de causa e efeito a ser estudada são formuladas.
Em geral, uma hipótese estatística é formulada unicamente com o propósito de não ser aceita (Juristo
e Moreno, 2001). Portanto, se a meta é comparar uma nova técnica de inspeção em relação a uma
técnica já existente, a hipótese nula (H0 ) poderia afirmar que não há diferença na média de defeitos
encontrados por meio de ambas (H0 : μNe = μNn ). Essa é a hipótese que o experimentador quer
garantir que não seja aceita com o maior nível de confiança possível. Uma hipótese alternativa (Ha )
é a favor de que a hipótese nula não seja aceita. No exemplo dado, a hipótese alternativa afirmaria
que a nova técnica encontra em média mais defeitos do que a técnica antiga (Ha : μNe < μNn ).
Uma vez que a relação sob estudo tenha sido expressa formalmente por meio das hipóteses, as
variáveis que representam a causa e o efeito são selecionadas. Entre as variáveis independentes,
algumas são mantidas a níveis fixos e outras (os fatores) podem receber diferentes valores (os tratamentos), que também devem ser determinados durante essa fase. Quanto à variável dependente,
8
2.2 Processo de experimentação
deve ser derivada diretamente da hipótese e a medida escolhida para representá-la deve ser determinada. Por exemplo, a eficácia de uma técnica de inspeção pode ser medida pela média de defeitos
encontrados pelos participantes.
Os participantes devem ser selecionados como uma amostra representativa da população à qual
se deseja generalizar os resultados do experimento. Aspectos como o tamanho da amostra e a aleatoriedade devem ser considerados. Quanto maior e mais aleatória a amostra de pessoas selecionadas, o
erro ao generalizar os resultados se torna menor.
Após selecionar as variáveis e os participantes, é possível elaborar o projeto experimental. O
projeto descreve como os testes devem ser organizados e executados durante a fase de operação do
experimento. No projeto também é estabelecida a quantidade de testes necessários para garantir que
o efeito dos tratamentos seja visível.
Antes da execução, também é feita a instrumentação do experimento, em que as instruções, os
objetos do experimento, as ferramentas e os formulários necessários são preparados. Por exemplo,
no caso de um experimento que investiga técnicas de inspeção, os defeitos devem ser inseridos nos
objetos a serem inspecionados. Instruções são necessárias para guiar os participantes ao longo do
experimento (além de um treinamento nas técnicas a serem aplicadas).
Por fim, é importante considerar a validade dos resultados que serão obtidos com o experimento. É
preciso planejar para obter um experimento que apresente uma validade adequada dos seus resultados,
ou seja, as ameaças à validade devem ser analisadas desde antes da execução. Os resultados têm uma
validade adequada se são válidos à população para qual se deseja generalizá-los. De acordo com
Wohlin et al. (2000), há quatro tipos de validade: de conclusão, interna, de construção e externa.
A validade de conclusão, cuja ameaça pode ser a escolha de um teste estatístico inadequado, é
relacionada à habilidade de se chegar a uma conclusão correta a partir da relação entre os conjuntos
de tratamentos e os resultados do experimento. A validade interna garante que os resultados sejam
influenciados apenas por fatores que sejam controlados e medidos. A validade de construção confirma
a coerência entre a teoria e a observação, ou seja, a relação causa-efeito está bem representada pelas
variáveis escolhidas. A validade externa se refere à capacidade de se generalizar os resultados para a
população de interesse, o que implica que os participantes do experimento devem ser selecionados de
forma a constituírem uma amostra representativa de tal população. Uma lista de ameaças à validade
de um experimento é dada em Wohlin et al. (2000) e pode ser usada como uma checklist durante a
fase de planejamento.
2.2.3
Operação
A fase de operação abrange a execução do experimento de fato. Como os estudos em Engenharia
de Software lidam com pessoas, grande parte do esforço envolvido nessa fase diz respeito a motivá-las
para se empenharem nas atividades, com o intuito de garantir resultados válidos com a execução.
Durante a operação os participantes devem ser selecionados e informados a respeito dos procedimentos. É importante que as pessoas estejam motivadas e dispostas a participar ao longo do experimento. Todos os instrumentos devem estar prontos: as instruções devem ser passadas e os formulários
entregues aos participantes.
A execução do experimento pode ser realizada em reuniões em que os participantes aplicam os
9
2.2 Processo de experimentação
tratamentos e geram dados. Esses resultados são coletados manualmente em formulários, com o apoio
de ferramentas ou por meio de entrevistas.
2.2.4
Análise e interpretação
Nessa fase os resultados da execução do experimento são analisados para que seja possível obter
conclusões sobre a técnica, método ou ferramenta em estudo. Os dados podem ser interpretados em
três passos: estatística descritiva, redução do conjunto de dados e teste da hipótese.
Após coletar os dados, a estatística descritiva pode ser usada para apresentar aspectos dos dados,
como a tendência central e a dispersão. Alguns gráficos que podem ser utilizados são: gráfico de dispersão (scatter plot), histograma e gráfico de setores. A partir dos gráficos gerados, é possível detectar
distorções (outliers), ou seja, pontos de dados que divergem muito dos outros. Quando outliers são
identificados, é preciso analisar as razões que os ocasionaram para decidir se devem ser eliminados
ou não. Em seguida, verifica-se a validade da hipótese estabelecida na fase de planejamento. O teste
da hipótese tem o objetivo de rejeitar a hipótese nula, H0 , com base na amostra de resultados obtida
na execução. A escolha do teste estatístico depende de como o experimento foi projetado.
Por fim, se a hipótese nula for descartada é possível obter conclusões sobre a influência das variáveis independentes nas variáveis dependentes, considerando que o experimento é válido (com base
na análise da validade dos resultados). Após descartar a hipótese nula, tira-se conclusões gerais sobre
a relação causa-feito sob estudo, considerando a validade externa do experimento. Se o experimento
não pôde rejeitar a hipótese nula não é possível afirmar algo sobre a relação entre as variáveis.
2.2.5
Empacotamento
A fase de empacotamento tem como objetivo documentar todo o processo de experimentação, gerando como produto um pacote de laboratório. Uma documentação completa e detalhada é necessária
para, além de apresentar os resultados do estudo, facilitar a sua replicação.
Conforme o esquema da Figura 2.4, a melhor abordagem para a fase de empacotamento é que
seja executada ao longo do processo de experimentação e não apenas como etapa final (Amaral e
Travassos, 2003), o que aumenta a fidelidade do pacote de laboratório à condução do experimento
(Garcia, 2006).
O pacote de laboratório transmite o conhecimento que deve ser transferido entre pesquisadores a
fim de reportar os resultados experimentais e permitir que sejam feitas replicações, o que contribui
para o avanço da disciplina de Engenharia de Software e para a sua respectiva aplicação no mercado
(Basili e Zelkowitz, 2007).
A realização de replicações pode ser estimulada pela disponibilidade de pacotes de laboratório
(Shull et al., 2002). Além disso, dada a quantidade de esforço requerido para conduzir um experimento, é razoável facilitar o reuso de artefatos experimentais providenciando um pacote de laboratório
(Brooks et al., 2008). A partir da revisão de pacotes de laboratório, os pesquisadores têm acesso a
como os estudos já realizados foram conduzidos.
10
2.3 Replicações
Definição
Planejamento
Operação
?
Análise &
Interpretação
?
Empacotamento
Pacote de
Laboratório
Figura 2.4: Processo de experimentação - fase de empacotamento (Wohlin et al. (2000); Amaral e
Travassos (2003))
2.3
Replicações
Um experimento está sujeito a diversas variações, como o ambiente cultural em que é executado
ou a habilidade e experiência dos participantes selecionados (Basili et al. (1999); Shull et al. (2003);
Mendonça et al. (2008)). As condições impostas durante a execução de um estudo limitam a população à qual se aplicam as conclusões obtidas (ver Figura 2.5). Por exemplo: se foram selecionados
alunos de graduação como participantes de um estudo para avaliar técnicas de teste, as conclusões
obtidas não podem se aplicar diretamente a profissionais de Engenharia de Software. Apenas a replicação de experimentos em diferentes contextos torna possível verificar a validade de uma hipótese
com um nível de confiança maior (Miller (2005); Shull et al. (2008)).
Ambiente
cultural
Background pessoal
e experiência
Diferentes condições
durante a execução
conclusões
sobre a técnica
Figura 2.5: Papel da replicação
Idealmente, os resultados experimentais devem ser reproduzíveis externamente e, portanto, a influência dessas variações deve ser estudada. Por meio de outros pesquisadores reproduzindo com
sucesso um experimento, a confiança nos resultados se constrói (Brooks et al., 2008). A fim de
11
2.3 Replicações
possibilitar a condução de replicações e o uso do conhecimento adquirido em cada experimento é
fundamental registrar de forma precisa todo o procedimento de condução do experimento no pacote
de laboratório (Garcia, 2006). O pacote de laboratório deve ser um artifício para lidar com a evolução
do experimento através de múltiplos estudos.
Entretanto, Shull et al. (2002) apontaram que, apesar de os pacotes de laboratório estarem disponíveis, pesquisadores enfrentam dificuldades em entendê-los e revisá-los. As principais dificuldades
consistem em entender os conceitos das técnicas sob estudo e dominar o conhecimento envolvido na
execução de um experimento (Shull et al., 2002). Em geral, os replicadores pertencem a um contexto
diferente daquele dos projetistas do experimento original, têm uma perspectiva diferente. Essa diferença de contextos pode dificultar o entendimento do pacote de laboratório. Por outro lado, o fato
de pesquisadores de contextos diferentes replicarem um estudo contribui para a capacidade de generalização de resultados obtidos, o que é fundamental para estender as conclusões do estudo a uma
população cada vez mais abrangente.
Ao notar problemas de transferência de conhecimento como entraves à realização de replicações,
Mendonça et al. (2008) propuseram o FIRE (Framework for Improving the Replication of Experiments), um arcabouço composto pelos dois ciclos de atividades ilustrados na Figura 2.6. O ciclo
interno representa a execução de um estudo dentro de um grupo de pesquisa. No ciclo externo,
inter-grupos, estão as atividades que se encarregam de integrar o conhecimento gerado pelo estudo
do ciclo interno num corpo comum, de tal maneira que seu pacote de laboratório possa ser efetivamente revisado por eventuais replicadores de outro grupo de pesquisa. O framework trata de questões
como a padronização e o entendimento de pacotes de laboratório, que contribuem na transferência de
conhecimento a grupos de outros contextos, dispostos a replicar o estudo.
Ciclo Externo
padronizar
pacotes
compartilhar
conhecimento
criar/evoluir
corpo de
conhecimento
criar/evoluir
pacote e
armazenar
experiência
Ciclo Interno
analisar e
integrar
dados
executar
experimento
definir
objetivos do
experimento
projetar
experimento,
identificar
participantes, e
obter/adaptar
artefatos
planejar e
coordenar
iniciativas
compreender
experimentos e
pacotes de
laboratório
Figura 2.6: Ciclos do FIRE (Mendonça et al., 2008)
A atividade de criar/evoluir o pacote de laboratório, no ciclo interno, influencia na atividade de
compartilhar conhecimento, no ciclo externo. Da mesma maneira, no outro ponto em que os ciclos
12
2.3 Replicações
se interceptam, compreender os experimentos e os pacotes de laboratório é fundamental para se
definir os objetivos de uma nova replicação. Pode-se perceber, portanto, que o pacote de laboratório
representa a saída do ciclo interno portando consigo as informações de um estudo e também a entrada
do ciclo interno de uma possível replicação, uma vez que os pesquisadores devem revisá-lo e entender
a execução do experimento original.
2.4
Transferência de conhecimento
Compartilhar conhecimento experimental entre grupos de pesquisa é inerente à experimentação
em Engenharia de Software (Mendonça et al., 2008). Apoiar a realização de replicações requer a
transferência de conhecimento entre os pesquisadores responsáveis pelo experimento original – fornecedores do conhecimento – e os replicadores – usuários do conhecimento.
Conforme pode ser visto na Figura 2.7, a transferência de conhecimento apresenta quatro fases:
• Socialização entre replicadores, que involve o diálogo sobre a escolha do projeto experimental,
variáveis, métodos de coleta de dados e procedimentos para a análise dos dados;
• Exteriorização, em que é feito o registro de anotações, dicas, projeto experimental, dados brutos, análises e resultados;
• Combinação, em que as informações que devem compor o pacote de laboratório são selecionadas e
• Internalização do conhecimento por replicadores, com a leitura, abstração e interpretação das
informações que compõem o pacote de laboratório.
conhecimento tácito
conhecimento tácito
Exteriorização
anotações
dados brutos
conhecimento explícito
conhecimento tácito
documentos
Pacote de
Laboratório
Pacote de
Laboratório
Internalização
o
conhecimento explícito
conhecimento tácito
Socialização entre replicadores
Combinação
conhecimento explícito
conhecimento explícito
Figura 2.7: Modelo de compartilhamento de conhecimento em experimentação (Shull et al., 2004)
13
2.4 Transferência de conhecimento
Há dois tipos de conhecimento que pode ser transferido entre os pesquisadores: conhecimento tácito e conhecimento explícito. O conhecimento explícito se refere às informações que compõem o pacote de laboratório. Por meio de sua revisão, replicadores podem adquirir esse tipo de conhecimento.
O conhecimento tácito se refere às informações que são importantes para entender o experimento,
mas não estão especificadas explicitamente (Shull et al., 2004). A fim de que o conhecimento tácito
relativo à execução de um experimento seja transferido a replicadores de outros grupos de pesquisa é
preciso que se torne explícito no pacote de laboratório.
A transferência de conhecimento entre grupos de pesquisa se configura nas atividades de interface
entre os ciclos do FIRE e é um ponto chave para possibilitar melhores replicações. Mendonça et al.
(2008) salientam que o foco não pode ser dado apenas ao ciclo interno, pois há o risco de os estudos
se tornarem isolados. É preciso integrá-los em um corpo comum de conhecimento. Um dos fatores
que contribuem com a transferência de conhecimento proveniente de um estudo é a padronização
do conjunto de informações gerado, como pode ser observado nas atividades que compõem o ciclo
externo do FIRE.
2.4.1
Pacotes de laboratório e artigos científicos
O pacote de laboratório é o artefato que contém as informações geradas por um estudo e, portanto, se constitui em um meio de transferir conhecimento entre diferentes grupos de pesquisa. Cada
fase do processo de experimentação gera informações sobre os procedimentos adotados. Essas informações e o conhecimento ganho ao longo do experimento devem compor o pacote de laboratório.
Assim, de maneira a compartilhar conhecimento e favorecer um melhor entendimento dos pacotes
de laboratório no ciclo externo do FIRE, o modo com que as suas informações devem ser representadas é de extrema importância, o que se confirma também pela atividade de padronização de pacotes.
Disponibilizar pacotes de laboratório ampara a realização de mais replicações, mas pacotes bem projetados são cruciais para a realização de melhores replicações (Shull et al., 2004). Portanto, deve ser
promovida uma melhor representação ao gerar o seu conteúdo.
Uma outra maneira de transferir conhecimento acerca de um experimento controlado é por meio
da publicação de um artigo, apresentando os procedimentos adotados, resultados e conclusões obtidos. Artigos devem ser publicados na literatura de Engenharia de Software Experimental para que os
experimentos tenham um valor científico comparável ao de estudos em outras áreas (Carver, 2010).
2.4.2
Diretrizes para reportar experimentos controlados
Assim como os pacotes de laboratório, os artigos sobre experimentos também apresentam a necessidade de serem padronizados. É preciso haver diretrizes para apoiar pesquisadores, revisores e
meta-analistas durante o projeto, condução e avaliação de experimentos (Kitchenham et al., 2002).
Algumas diretrizes foram propostas para se reportar estudos experimentais em Engenharia de Software, visando a padronizar o conjunto de informações gerado por um experimento. Jedlitschka et al.
(2008) organizaram uma comparação entre elas, que é apresentada na Tabela 2.1.
Na primeira linha da Tabela 2.1 são identificadas as propostas de Singer (1999), Wohlin et al.
(2000), Kitchenham et al. (2002), Juristo e Moreno (2001) e Jedlitschka et al. (2007). No restante das
linhas são listados os elementos (seções) de todas as diretrizes propostas, mapeando-as à estrutura da
14
2.4 Transferência de conhecimento
proposta apresentada em Jedlitschka et al. (2007).
Para cada conjunto de diretrizes proposto, a sua respectiva entrada na Tabela 2.1 fornece os elementos que devem compor a estrutura de um artigo de experimento. Na Tabela 2.2, os elementos da
proposta de Jedlitschka et al. (2007) são detalhados em termos de conteúdo, escopo e prioridade, o que
permite identificar quais informações acerca do experimento devem ser relatadas e a sua organização
no artigo.
Tabela 2.1: Visão geral das diretrizes para reportar experimentos controlados (Jedlitschka et al., 2008)
Singer (1999)
*
*
resumo
*
introdução
introdução
método
procedimento
resultados
Wohlin
et
al.
(2000)
*
*
*
*
introdução
declaração do problema
planejamento do
experimento
declaração do problema
planejamento do
experimento
operação do experimento
análise de dados
Kitchenham et al.
(2002)
*
*
*
*
*
contexto
experimental
contexto
experimental
projeto experimental
condução do experimento e coleta de
dados
análise
Juristo e Moreno
(2001)
*
*
*
*
definição de metas
Jedlitschka et al.
(2007)
título
autores
resumo estruturado
palavras-chave
introdução
definição de metas
background
projeto
planejamento
experimento
execução
execução do experimento
do
análise experimen- análise
tal
discussão
interpretação de re- interpretação de re- análise experimen- discussão
sultados
sultados
tal
discussão
discussão e conclu- *
análise experimen- conclusões e trabasão
tal
lhos futuros
agradecimentos
referências
referências
*
*
referências
apêndices
apêndice
*
*
apêndices
Os asteriscos (*) indicam que os elementos são implicitamente requeridos, apesar de não serem explicitamente mencionados.
Tabela 2.2: Diretrizes propostas por Jedlitschka et al. (2007)
Seção
Título
Conteúdo
Escopo
Prioridade
<título> + “um experimento controlado”; É infor-
Requerido
mativo e inclui os principais tratamentos e variáveis
dependentes?
(continuação na próxima página)
15
2.4 Transferência de conhecimento
Tabela 2.2: Diretrizes propostas por Jedlitschka et al. (2007) (continuação)
Seção
Conteúdo
Autores
Escopo
Prioridade
Inclui informações de contato, por exemplo, um
Requerido
e-mail válido?
Resumo
Background
Por que essa pesquisa é importante?
Requerido
estruturado
Objetivo
Qual é a questão abordada com essa pesquisa?
Requerido
Métodos
Qual é o contexto estatístico e quais os métodos apli-
Requerido
cados?
Resultados
Quais são as principais descobertas? Implicações
Requerido
práticas?
Limitações
Quais são os pontos fracos dessa pesquisa?
Conclusões
Qual é a conclusão?
Requerido
Áreas de pesquisa dos tratamentos, variáveis depen-
Pode ser reque-
dentes e tipo de estudo
rido pelo editor
Qual é o problema? Onde ocorre? Quem o obser-
Requerido
Palavras-chave
Introdução
Declaração
vou?
do problema
Por que é importante que seja resolvido?
Objetivo da
Qual é a questão de pesquisa a ser respondida por
pesquisa
este estudo? Exemplo usando o modelo GQM:
Requerido
Analisar <objeto(s) do estudo>
com o propósito de <propósito>
com respeito a <foco de qualidade>
do ponto de vista de <perspectiva>
no contexto de <contexto>
Contexto
Qual informação é necessária para compreender se a
Requerido
pesquisa se relaciona a uma situação específica (ambiente)?
Background
Tecnologia
O que é necessário que o leitor saiba sobre a tecno-
Necessário
sob investi-
logia para reproduzir sua aplicação?
não
gação
se
estiver
publicado
em
outro lugar
Tecnologias
Como essa pesquisa se relaciona a tecnologias alter-
Requerido
alternativas
nativas? Qual é o tratamento de controle?
Estudos rela-
Como essa pesquisa se relaciona aos estudos já exis-
cionados
tentes? Quais foram os resultados desses estudos?
Relevância
Como se relaciona ao estado da prática?
Se disponível
Formalização das metas, refinamento das constru-
Requerido
Se disponível
na prática
Planejamento
do experimento
Metas
ções importantes (por exemplo, foco na qualidade)
das metas do experimento
(continuação na próxima página)
16
2.4 Transferência de conhecimento
Tabela 2.2: Diretrizes propostas por Jedlitschka et al. (2007) (continuação)
Seção
Conteúdo
Escopo
Prioridade
Unidades
De qual população as amostras serão tiradas? Como
Requerido
experimen-
os grupos serão formados (atribuição aos tratamen-
tais
tos)? Qualquer tipo de aleatoriedade ou blinding
deve ser descrito
Material ex-
Quais objetos são selecionados e por quê?
Requerido
Tarefas
Quais tarefas devem ser realizadas pelos indivíduos?
Requerido
Hipóteses,
Quais são as construções e sua operacionalização?
Necessário (um
parâmetros e
Elas devem ser derivadas da questão de pesquisa e
estudo explora-
variáveis
da meta do experimento
tivo pode não
perimental
ter hipóteses)
Projeto
Execução
Que tipo de projeto experimental foi escolhido?
Requerido
Procedimento Como o experimento será realizado (por exemplo,
Pode ser inte-
coleta de dados)? Quais instrumentos, materiais,
grado à execu-
ferramentas serão usados e como?
ção
Procedimento Como os dados serão analisados?
Pode ser inte-
da análise
grado à análise
Preparação
O que foi feito para preparar a execução do experimento (por exemplo, horários, treinamento)
Desvios
Descreve qualquer desvio do planejado, por exemplo, como a coleta de dados foi realizada de fato?
Análise
Estatística
Quais são os resultados de estatística descritiva?
Requerido
descritiva
Preparação
O que foi feito para preparar o conjunto de dados,
do conjunto
como e por quê?
de dados
Discussão
Teste da hi-
Como os dados foram avaliados e como o modelo de
pótese
análise foi validado?
Avaliação
Explicar os resultados e a relação dos resultados de
dos
pesquisa anterior, especialmente o que foi mencio-
resul-
tados
e
nado na seção Background
implicações
Ameaças
validade
à
Como a validade dos resultados experimentais é ga-
Requerido
rantida? Como os dados foram validados de fato?
Devem ser discutidas as ameaças que podem ter um
impacto na validade dos resultados (por exemplo,
variáveis de confusão, viés, a extensão em que a hipótese captura os objetivos, a generalização dos resultados)
(continuação na próxima página)
17
2.4 Transferência de conhecimento
Tabela 2.2: Diretrizes propostas por Jedlitschka et al. (2007) (continuação)
Seção
Conteúdo
Escopo
Prioridade
Inferências
Inferências obtidas a partir dos dados em direção a
Requerido
condições mais gerais
Conclusões
e
Lições
Qual experiência foi adquirida ao longo do experi-
aprendidas
mento
Resumo
Resumo conciso da pesquisa e de seus resultados
trabalhos
futuros
Recomendado
Requerido
como apresentado nas seções anteriores
Impacto
Descrição dos impactos com relação aos custos, cronograma e qualidade, circunstâncias sob as quais a
abordagem pode não trazer os benefícios esperados
Trabalhos
Quais outros experimentos podem ser executados
futuros
para investigar os resultados obtidos ou para evoluir
Requerido
o corpo de conhecimento
Agradecimentos
Agências de fomento, participantes e colaboradores
Se for necessá-
que não cumprem os requisitos para a autoria devem
rio
ser mencionados
Referências
A literatura citada deve ser apresentada no formato
Requerido
requerido pelo editor
Apêndices
Materiais do experimento, os dados brutos e as aná-
Podem ser dis-
lises detalhadas, o que pode ser útil para outros pes-
ponibilizados
quisadores desenvolverem seus trabalhos
em
relatórios
técnicos ou em
páginas da Web
Em geral, os pesquisadores não adotam um padrão para reportar os experimentos, apesar de haver
as diretrizes propostas para isso. Cada autor usa a sua própria maneira de organizar o artigo (Carver,
2010). A irregularidade das maneiras de reportar os experimentos controlados em Engenharia de
Software é um grande problema encontrado para integrar os respectivos resultados em um corpo
comum, o que indica a necessidade de padronização (Jedlitschka et al., 2008).
2.5
Considerações finais
Neste capítulo foi apresentada uma visão geral sobre experimentos controlados e suas replicações, identificando alguns problemas na transferência de conhecimento entre grupos de pesquisa de
Engenharia de Software. Um dos fatores desses problemas é a falta de padronização dos pacotes de
laboratório. Não há um padrão amplamente adotado para reportar experimentos, apesar de diretrizes
terem sido propostas nesse sentido.
Essas questões sugerem o estabelecimento de uma estrutura para pacotes de laboratório. Nesse
sentido, uma ontologia pode ser usada para descrever o modelo das informações que compõem um
pacote de laboratório, visando a prover um padrão e favorecer um melhor entendimento.
Segundo Uschold e Gruninger (1996), pesquisadores de campos de pesquisa diferentes, mas relacionados, não conseguem usar facilmente os resultados uns dos outros. Isso acontece porque os
pesquisadores têm uma perspectiva diferente ou usam termos diferentes para descrever as mesmas
18
2.5 Considerações finais
ideias subjacentes. Para resolver este problema, deve-se reduzir confusão conceitual e terminológica e obter um entendimento compartilhado das informações trocadas (Uschold e Gruninger (1996);
Uschold e Gruninger (2004)).
Nesse contexto, ontologias podem ser proveitosas para lidar com o problema na transferência de
conhecimento. Ontologias definem vocabulários comuns para pesquisadores que precisam compartilhar informação acerca de um domínio (Noy e McGuinness, 2001). Assim, no capítulo seguinte
é fornecida a fundamentação teórica necessária para investigar a aplicação de uma ontologia como
padrão do conjunto de informações contido em um pacote de laboratório.
19
C APÍTULO
3
Ontologia
Ontologias podem ser utilizadas para permitir que pesquisadores tenham acesso a fontes de informação heterogêneas que são expressas usando vocabulários diversos ou formatos inacessíveis (Biolchini et al., 2007). Considerando o papel de ontologias em representação e compartilhamento de
conhecimento (Gruber (1995); Noy e McGuinness (2001)), o objetivo principal deste capítulo é investigar a aplicação de uma ontologia para lidar com os problemas relativos a integração e transferência
de conhecimento em Engenharia de Software Experimental.
Na Seção 3.1 é dada uma introdução sobre ontologias. Na Seção 3.2 são apontados trabalhos
que propõem a aplicação de ontologias em Engenharia de Software Experimental. Dentre eles, a
EXP ER Ontology, uma ontologia para experimentos controlados, é apresentada em detalhes na Seção
3.3. Por fim, são apresentados os processos de evolução de ontologias (Seção 3.4) e de matching de
ontologias/esquemas (Seção 3.5). Esses processos podem ser necessários para compor uma solução
que aplique ontologias para resolver problemas de entendimento compartilhado.
3.1
Visão geral sobre ontologia
Em Ciência da Computação, uma ontologia é um artefato que contém um modelo da estrutura
de um domínio, ou seja, entidades e relações que emergem de sua observação (Pretorius (2004);
Guarino et al. (2009)). Uma definição mais completa seria: “uma ontologia é uma especificação
formal e explícita de uma conceituação compartilhada” (Gruber (1995), Studer et al. (1998)).
Uma conceituação é uma visão abstrata e simplificada do mundo que se deseja representar para
algum propósito (Guarino et al., 2009). Tal visão é constituída de conceitos desse mundo e suas
relações (ver exemplo na Figura 3.1). Ao elaborar a conceituação (ver Figura 3.2), obtém-se uma
captura dos conceitos do domínio que devem compor a ontologia. A ideia do que vem a ser o domínio
de interesse fica expressa de maneira explícita sob a forma de conceitos e relações entre eles.
Adicionalmente, deve haver uma especificação formal dos conceitos, em um formato que seja
legível por máquinas. Para isso, uma ontologia é formalizada por meio de alguma linguagem, que
proveja a restrição da interpretação de seus conceitos por meio de axiomas lógicos. Uma ontologia
20
3.1 Visão geral sobre ontologia
pode ser considerada como um conjunto de tais axiomas.
Gerente (João)
Programador (Julia)
Programador (Pedro)
Figura 3.1: Domínio de recursos humanos, adaptado de Guarino et al. (2009)
Pessoa
1..* Programador
Gerente
reportaA
1..*
1
1..*
trabalhaCom
Figura 3.2: Conceituação do domínio de recursos humanos
Um axioma do domínio de exemplo, em Lógica de Primeira Ordem, que define o vínculo entre
dois programadores que trabalham juntos é dado por:
(∀p1 , p2 )trabalhaCom(p1 , p2 ) → reportaA(p1 , g) ∧ reportaA(p2 , g)
em que p1 e p2 representam programadores e g o gerente ao qual p1 e p2 estão subordinados. Por se
tratar de uma representação formal, uma ontologia permite a inferência de informações adicionais às
que estão declaradas.
Uma especificação formal de uma conceituação não é, necessariamente, uma especificação de uma
conceituação compartilhada (Guarino et al., 2009). A fim de que o conhecimento seja compartilhado
entre as partes que utilizam a ontologia, deve haver concordância sobre o que está sendo comunicado.
O conhecimento deve ser consensual entre as partes.
Portanto, pode-se afirmar que uma ontologia é uma especificação de conhecimento consensual
sobre um modelo abstrato de domínio, definida explicitamente em termos de conceitos e seus relacionamentos por meio de axiomas, possibilitando, assim, que seja legível por máquinas.
Desenvolver uma ontologia envolve uma sequência de fases, conforme pode ser visto na Figura
3.3. Em termos gerais, é preciso adquirir conhecimento sobre o domínio e elaborar a sua conceituação, ou seja, descrever um modelo conceitual. Em seguida, é feita a formalização do significado dos
21
3.1 Visão geral sobre ontologia
conceitos estabelecidos por meio de axiomas lógicos. Implementar uma ontologia requer a escolha
de uma linguagem para representá-la. Depois de implementada, durante a manutenção, a ontologia
pode ser corrigida ou atualizada conforme houver mudanças no domínio.
Aquisição de
conhecimento
Conceituação
Formalização
Implementação
Manutenção
Figura 3.3: Processo de desenvolvimento de uma ontologia (Goméz-Pérez, 1999)
Cada linguagem de representação de conhecimento provê diferentes habilidades para expressar
ontologias. O mais recente desenvolvimento em linguagem padrão é OWL1 (Web Ontology Language), uma recomendação W3C (World Wide Web Consortium). Ontologias OWL podem ser vistas
como um conjunto de sentenças lógicas (em Lógica Descritiva), que declaram e relacionam os componentes básicos da linguagem: classes, propriedades e instâncias.
As classes são organizadas em uma hierarquia e cada classe é definida por meio de restrições
de propriedade. Horridge (2009) apresenta um tutorial detalhado sobre a implementação de uma
ontologia em OWL, definindo de maneira mais detalhada os componentes e recursos da linguagem ao
longo do processo. Em termos práticos, uma ontologia OWL consiste em um documento com sintaxe
XML.
3.2
Ontologias para experimentos controlados em Engenharia de Software
Com o objetivo de lidar com as problemas na transferência de conhecimento entre grupos de pesquisa (ver Seção 2.3), uma ontologia pode ser aplicada como um padrão que favorece o entendimento
das informações do pacote de laboratório. Segundo Noy e McGuinness (2001), algumas das razões
para elaborar uma ontologia são compartilhar entendimento comum da estrutura da informação entre
pessoas ou agentes de software, permitir o reuso do conhecimento e tornar explícitas as suposições
sobre o domínio.
1
http://www.w3.org/TR/owl-guide/
22
3.2 Ontologias para experimentos controlados em Engenharia de Software
Biolchini et al. (2007) elaboraram uma ontologia para Engenharia de Software Experimental com
o objetivo de apoiar a condução de revisões sistemáticas (Kitchenham, 2004). Os conceitos referentes a experimentos controlados podem ser vistos na Figura 3.4. Nessa ontologia os conceitos são
definidos em um alto nível de abstração e, portanto, se for considerada a necessidade de transferir o
conhecimento gerado por um experimento, não são adequados para instanciar as informações de um
pacote de laboratório.
Primary
Study
Element
Structure of
Study
Problem
Hypothesis
Quality
of Study
Intervention
Control
Measurement
Outcome
Unit
of
Study
Figura 3.4: Ontologia da estrutura de um estudo experimental em Engenharia de Software (Biolchini
et al., 2007)
Ainda de uma perspectiva de alto nível, Lopes e Travassos (2009) propuseram a construção de
um repositório de conhecimento de experimentação, composto por ontologias elaboradas a partir
do trabalho de Biolchini et al. (2007). Conforme pode ser observado na Figura 3.5, as ontologias
definidas no repositório devem auxiliar o a infraestrutura eSEE (experimental Software Engineering
Environment) a instanciar ambientes para apoiar a condução de estudos experimentais.
Repositório de Conhecimento
de Experimentação em ES
Glossário
de Termos
(Dicionário)
Modelos
Conceituais
(Ontologias)
consulta
consulta
Pesquisador
eSEE
instancia
Ambiente de Experimentação
Figura 3.5: Ambiente de Engenharia de Software Experimental com um repositório de conhecimento
(Lopes e Travassos, 2009)
23
3.2 Ontologias para experimentos controlados em Engenharia de Software
Sob outra perspectiva, Garcia et al. (2008) estabeleceram uma ontologia específica para experimentos controlados, a EXP ER Ontology, que descreve os conceitos que devem compor um pacote de
laboratório. A EXP ER Ontology tem o propósito de padronizar conceitos e facilitar o compartilhamento de pacotes de laboratório (Garcia et al., 2008).
3.3
EXP ER Ontology
A EXP ER Ontology foi elaborada para esclarecer os conceitos associados a experimentos controlados e seus relacionamentos (Garcia et al., 2008). A conceituação da ontologia está dividida em dois
níveis de refinamento. O primeiro nível, na Figura 3.6, contém os principais conceitos de experimentos controlados. O segundo nível, na Figura 3.7 se refere ao refinamento do conceito de pacote de
laboratório.
<<concept>>
Original experiment
generates
1
1..*
1 has
1
<<concept>>
Lab package
1
is basis for
1
0..*
1
<<concept>>
Replication
1
<<concept>>
Validity
has
1
1..*
1..*
1
0..*
generates
designs
conducts
<<concept>>
Replicator
1..*
<<concept>>
Designer
influences
1
has
1
is recorded
Figura 3.6:
EXP ER Ontology
1..*
<<concept>>
Experimenter Profile
0..1
1
has
1
1
- conceitos de experimentos controlados (Garcia et al., 2008)
Para formalizar a ontologia, foram criados axiomas de Lógica de Primeira Ordem. Por exemplo,
o predicado Design que associa tratamentos a cada participante do experimento é dado por:
Design(s, SetOf T reat)
em que s representa os participantes e SetOf T reat são os valores que os fatores podem assumir
(conjunto de tratamentos). Fatores, seus possíveis tratamentos e um conjunto de tratamentos são
definidos por:
F actor(f1 , . . . , fn )
∀f ∈ F actor, ∃T reatment(f ) = v1 , . . . , vn , n ≥ 2
dom(T reatment) = Artif act ∪ T echnology
SetOf T reat = (vf1 , . . . , vfn )|∀f, vfn ∈ T reatment(fn )
em que f define um fator do experimento, e vfn são tratamentos atribuídos para cada fn . A partir do
24
3.3 EXP ER Ontology
<<concept>>
Object of study
<<concept>>
Context
Statistical analysis
<<concept>>
Confirmatory analysis
1..*
- Technique : String
<<concept>>
Quality focus
<<concept>>
Purpose
<<concept>>
Exploratory analysis
is basis for
<<concept>>
Initial hypothesis
is basis for
generates 1
<<concept>>
Dependent variable
is defined from
1..*
1..* 1..*
1..*
is basis for
1..*
1
<<concept>>
Hypothesis formalised
1..* 1..*
<<concept>>
Independent variable
is defined from
- Null hypothesis : char
- Alternative hypothesis : char
1..*
uses as factor
1..*
1..*
1
1
can be a value of 1
1..*
is defined from
1..*
1
1
<<concept>>
Experimental design
uses as treatment
1
1..*
<<concept>>
Experiment object
<<concept>>
Technique
teaches in
1
1
1
1..*
<<concept>>
Technology
1..*
follows
1
1
<<concept>>
Execution Plan
1
<<concept>>
Training
1
<<concept>>
Analysis
is basis for
1..*
1..*
1
1..*
follows
1..*
1
is applied in
<<concept>>
Method
is obtained applying a
1..*
<<concept>>
Result
1..*
<<concept>>
Artifact
uses
1..*
1..*
Is obtained using in a
1..*
0..*
1..*
1
can use
1
0..*
<<concept>>
Subject
is obtained by
1..*
<<concept>>
Tool
1..*
1..*
1..*
1
is obtained during a
can be
1..*
<<concept>>
Task
- Period : int
has
1
<<concept>>
Document
<<concept>>
Questionnaire
<<concept>>
Form
1
Figura 3.7:
<<concept>>
Profile
EXP ER Ontology
describes
<<concept>>
Task planned
<<concept>>
Task performed
1..*
- conceitos de um pacote de laboratório (Garcia et al., 2008)
predicado Design é estabelecido o plano para a condução do experimento, o qual é detalhado em um
conjunto de tarefas:
(∀s, SetOf T reat)(Execution(s, SetOf T reat) → T ask(ta1 ) ∧ . . . ∧ T ask(tan ))
em que tan define as tarefas que devem ser seguidas durante a fase de operação. Por sua vez, cada
tarefa é definida como:
T ask(tan ) → (T raining(s, tr , a, p) ∨ Applying(s, te , a, p))
em que o predicado T raining indica que um participante s pode ser treinado em uma tecnologia tr
usando o artefato a durante um período de tempo p. De maneira semelhante, Applying indica que um
25
3.3 EXP ER Ontology
participante s aplica a tecnologia tr no artefato a durante um período de tempo p.
Na EXP ER Ontology são definidos conceitos de todo o processo de experimentação (Wohlin et
al., 2000), desde a definição até a análise dos resultados. Assim, as informações de um experimento
controlado que compõem o pacote de laboratório podem ser dadas pelos conceitos da ontologia instanciados. Contextualizando no processo de desenvolvimento de ontologias da Figura 3.3, Garcia et
al. (2008) apresentaram a Conceituação (conceitos e relacionamentos) e a Formalização (um conjunto
de axiomas) da EXP ER Ontology.
3.4
Evolução de ontologias
Uma ontologia pode contribuir na transferência de conhecimento ao ser adotada como o padrão
de informações trocadas. Entretanto, ontologias não podem ser concebidas como um modelo estático.
Uma ontologia é tão requerida para a troca de conhecimento quanto a troca de conhecimento pode
influenciar e modificar as definições da ontologia (Fensel, 2001). Evoluir ao longo do tempo é um
requisito essencial para que uma ontologia seja útil (Fensel, 2001).
A evolução de uma ontologia é a adaptação de suas definições ao longo do tempo para incorporar
mudanças em conjunto com a propagação consistente dessas mudanças aos artefatos dependentes
(Stojanovic et al. (2002)). O processo de evolução de ontologias proposto por Stojanovic (2004)
pode ser visto na Figura 3.8.
Representa
-ção
Semântica
da mudança
Implementação
Propagação
Processo de evolução de ontologia
Requisição
para uma
mudança
Mudança
requerida
Mudanças
requeridas
e derivadas
Modificação
de artefatos
dependentes
Ontologia
modificada
Figura 3.8: Processo de evolução de ontologia (Stojanovic, 2004)
Na primeira fase, representação, a requisição de uma mudança (em alto nível) é expressa em
termos de mudanças elementares à estrutura da ontologia. Um conjunto de mudanças elementares é
dado na Tabela 3.1. Se o usuário deseja remover um conceito do domínio, por exemplo, é preciso
expressar essa requisição em duas mudanças elementares: remover o relacionamento de herança que
existe da classe com a sua superclasse (RemoveSubConcept) e, então, fazer a remoção propriamente
dita da classe (RemoveConcept).
Em seguida, na fase de semântica da mudança, deve ser garantida a consistência do restante da
ontologia diante das mudanças a serem realizadas. No exemplo da Figura 3.9, a classe Technology
tem a propriedade isAppliedIn relacionando-a com a classe Artifact. As classes Method, Technique
e Tool são subclasses de Technology. Por serem subclasses, herdam a propriedade isAppliedIn
relacionando-as a Artifact.
Desse modo, SoftVizOAH , uma instância de Tool, apresenta uma instância da propriedade isAppliedIn. Entretanto, se a classe Technology é removida, a classe Tool deixa de herdar as suas pro26
3.4 Evolução de ontologias
Tabela 3.1: Mudanças elementares a uma ontologia (Stojanovic, 2004)
Entidades
Adicionar
Remover
Conceito
AddConcept
RemoveConcept
Hierarquia de conceitos
AddSubConcept
RemoveSubConcept
Propriedade
AddProperty
RemoveProperty
Hierarquia de propriedades
AddSubProperty
RemoveSubProperty
Domínio de propriedade
AddPropertyDomain
RemovePropertyDomain
Contradomínio de propriedade AddPropertyRange
RemovePropertyRange
Propriedade simétrica
AddPropertySymmetric RemovePropertySymmetric
Propriedade transitiva
AddPropertyTransitive RemovePropertyTransitive
Propriedade inversa
AddPropertyInverse
RemovePropertyInverse
Cardinalidade máxima
AddMaxCardinality
RemoveMaxCardinality
Cardinalidade mínima
AddMinCardinality
RemoveMinCardinality
Instância de classe
AddInstanceOf
RemoveInstanceOf
Instância de propriedade
AddPropertyInstance
RemovePropertyInstance
Artifact
Artifact
isAppliedIn
isAppliedIn
Technology
Method
GanttProject
Technique
Tool
isAppliedIn
SoftVizOAH
Method
GanttProject
Technique
Tool
isAppliedIn
SoftVizOAH
(b) Ontologia inconsistente após deletar o conceito Technology
(a) Ontologia consistente
Figura 3.9: Introdução de inconsistências após a realização de uma mudança
priedades, fazendo com que a instância fique inconsistente com a definição da classe. Uma mudança
pode engatilhar muitas outras a fim de manter a ontologia consistente. Portanto, o papel da fase de
semântica da mudança é a resolução de maneira sistemática de mudanças induzidas.
Na fase de propagação das mudanças é preciso apontar automaticamente todos os artefatos e
programas dependentes da ontologia que serão afetados pelas mudanças. Na última fase, implementação, todas as mudanças (requeridas e derivadas) são de fato aplicadas.
O ponto do processo de evolução que merece especial atenção é a derivação de mudanças adicionais àquela que o usuário solicitou, seja às definições da ontologia ou aos artefatos dependentes. É
preciso garintir que o processo de evolução seja realizado de maneira consistente (Haase e Stojanovic,
2005).
27
3.5 Matching de ontologias/esquemas
3.5 Matching de ontologias/esquemas
Um dos pricipais objetivos em se adotar uma ontologia é compartilhar entendimento comum da
estrutura da informação entre pessoas ou agentes de software que se comunicam (Noy e McGuinness,
2001). Entretanto, a informação a ser trocada entre diversas partes pode ser modelada de acordo com
a estrutura adotada por cada um. Quando esquemas distintos são elaborados para um mesmo domínio,
quase sempre são diferentes uns dos outros (Halevy, 2005). Para haver de fato entendimento comum
da estrutura da informação é preciso identificar similaridades entre os elementos dos esquemas de
cada um (Hakimpour e Geppert, 2001).
O matching de esquemas/ontologias é um processo de encontrar correspondências entre fragmentos de informação, que são modelados usando diferentes estruturas e formatos, como esquemas
de banco de dados, documentos XML ou ontologias (Rahm, 2011). São tomados como entrada dois
esquemas, cada um consistindo de um conjunto de entidades (por exemplo: tabelas, elementos XML,
classes, propriedades, regras, predicados) e determina-se como saída as correspondências que existem
entre essas entidades (Shvaiko e Euzenat, 2005).
A definição de uma correspondência estabelecida entre duas entidades e e e de dois esquemas/ontologias o e o , respectivamente, pode ser formalizada pela estrutura (Euzenat e Shvaiko, 2007):
e, e , r, n
em que:
• e e e são entidades (como classes e propriedades) de o e o respectivamente;
• r é uma relação (como equivalência (≡), subsunção (), disjunção (⊥)) que existe entre e e e ;
• n é uma medida de confiança (tipicamente do intervalo [0, 1]) para a correspondência entre e e
e .
A correspondência e, e , r, n declara que a relação r existe entre as entidades e e e com um nível
de confiança n. Um exemplo simples de correspondência é:
Experiment =0.8 ControlledExperiment
que declara a relação de equivalência (r) com confiança de 0.8 (n) entre as conceitos Experiment (e)
e ControlledExperiment (e ).
Ao realizar o matching, um conjunto de correspondências deve ser encontrado, provavelmente
considerando o produto cartesiano dos conjuntos de entidades a serem comparadas dos esquemas o e
o . Esse conjunto de correspondências é chamado de alinhamento e consiste na saída do processo de
matching. Um exemplo de alinhamento seria:
Experiment =0.8 ControlledExperiment
Person ≥1.0 Subject
Participant =1.0 Subject
28
3.5 Matching de ontologias/esquemas
Na Figura 3.10 é dada uma visão geral do matching: é determinado um alinhamento A para um
par de esquemas/ontologias o e o (Euzenat e Shvaiko (2007); Shvaiko e Euzenat (2012)). Há algumas
outras entradas opcionais que podem estender essa definição, como: (i) parâmetros para as técnicas
de matching (pesos, thresholds) e (ii) recursos externos (por exemplo, um vocabulário específico do
domínio de ambos os esquemas).
recursos
O
Matching
A'
O'
parâmetros
Figura 3.10: Matching de esquemas/ontologias, representado como uma operação com entradas e
saída (Euzenat e Shvaiko, 2007)
3.5.1
Processo de matching
Em um nível maior de detalhes, pode-se considerar o matching como um processo, composto de
várias etapas, conforme é apresentado na Figura 3.11. Na etapa de pré-processamento, os elementos
dos esquemas são postos em condições de serem analisados. Em seguida, técnicas de matching são
executadas e estabelecem as similaridades entre as entidades dos esquemas. Depois, os resultados de
cada técnica são combinados e é gerado um conjunto preliminar de correspondências. Por fim, há a
seleção de correspondências que devem compor o alinhamento resultante. Uma das maneiras mais
comuns de selecionar correspondências é aplicar um threshold às medidas de confiança (n).
Esquemas
de entrada
S1
Préprocessamento
Execução do
Matcher
Combinação
de resultados
do matcher
Seleção de
correspondências
Alinhamento
Resultante
S2
Figura 3.11: Processo de matching de esquemas (Rahm, 2011)
Durante a execução propriamente dita, as técnicas têm o objetivo de encontrar as relações entre
os elementos. Em geral, essas relações são descobertas por meio da medida de similaridade entre
29
3.5 Matching de ontologias/esquemas
os elementos dos esquemas/ontologias (Euzenat e Shvaiko, 2007) (que faz o papel de medida de
confiança na estrutura de uma correspondência).
As técnicas escolhidas para serem executadas dependem do tipo dos elementos dos esquemas de
entrada, mais especificamente, das características que esses elementos oferecem para serem comparadas entre si. Para realizar o matching de duas classes de uma ontologia, por exemplo, algumas
características que podem ser comparadas são os identificadores (nomes) das classes, os atributos
(propriedades) de cada uma ou os relacionamentos mantidos com as outras classes.
Cada uma dessas técnicas pode ser representada como uma função (σ), que toma como entrada
duas entidades, uma de cada esquema (O1 e O2 ), e calcula a medida de similaridade (ou distância)
entre elas:
σ :E×E →R
em que E = E1 ∪ E2 , sendo E1 o conjunto de entidades do esquema O1 e E2 o conjunto de entidades
de O2 . Algumas técnicas calculam uma medida de dissimilaridade entre as entidades, por meio de
uma função de distância (δ). Vale ressaltar que a similaridade normalizada (σ) no intervalo [0, 1]
corresponde a dissimilaridade normalizada (δ) de acordo com a equação δ = 1 − σ.
Nas tabelas 3.2 e 3.3 há duas matrizes com os resultados que foram obtidos ao aplicar duas técnicas distintas aos identificadores dos conceitos de dois esquemas. Para fazer a combinação desses
resultados, um dos métodos que podem ser aplicados é manter a distância mínima (ou similaridade
máxima) entre dois elementos correspondentes da matriz, o que resulta na matriz da Tabela 3.4.
Tabela 3.2: Distância de edição entre nomes dos conceitos (Euzenat e Shvaiko, 2007)
Book Translator Publisher Writer
Product 0.86
0.8
0.89
0.86
Provider 0.88
0.8
0.56
0.5
Creator 0.86
0.5
0.89
0.57
Tabela 3.3: Distância entre nomes de conceitos calculada com o apoio de um tesauro (Euzenat e
Shvaiko, 2007)
Book Translator Publisher Writer
Product 0.82
0.88
0.88
0.85
Provider 0.83
0.89
0.76
0.71
Creator 0.82
0.53
0.88
0.85
Tabela 3.4: Matriz resultante da combinação dos resultados (Euzenat e Shvaiko, 2007)
Book Translator Publisher Writer
Product 0.82
0.8
0.88
0.85
Provider 0.83
0.8
0.56
0.5
Creator 0.82
0.5
0.88
0.57
3.5.2
Técnicas de matching por tipo de entrada
Calcula-se a similaridade entre elementos dos esquemas por meio de uma análise das características fornecidas pelos elementos dos esquemas. Portanto, o tipo de entrada do processo de matching
30
3.5 Matching de ontologias/esquemas
influencia na determinação do conjunto de técnicas que podem ser utilizadas. De acordo com os
levantamentos bibliográficos de Rahm e Bernstein (2001), Shvaiko e Euzenat (2005) e Euzenat e Shvaiko (2007), os tipos de entradas fornecidas ao processo de matching podem ser categorizados em
termos, estruturas (interna e relacional), instâncias e modelo semântico.
As técnicas baseadas em termos (nomes) podem indicar a similaridade entre entidades dos esquemas pela comparação de seus identificadores, labels, ou até mesmo comentários. Ao extrair os
termos referentes às entidades de um esquema, as técnicas podem interpretá-los de duas maneiras
durante o cálculo da similaridade: simplesmente como strings (sequências de caracteres) ou como
palavras (entradas em um dicionário).
Técnicas baseadas em strings consideram os termos como uma sequência de caracteres. A possibilidade mais simples para determinar a similaridade entre duas strings s e t é o teste de igualdade
entre elas:
σ(s, t) =
⎧
⎨0
se s = t
⎩1
se s = t
Pode-se testar a igualdade após realizar alguma normalização sintática, como transformar todos
os caracteres em letras minúsculas (caixa baixa) e eliminação de pontuação. Por exemplo, C.D. se
torna cd. Essa abordagem não considera que strings com estruturas similares (e não idênticas) podem
se referir a conceitos similares e, portanto, caso as strings comparadas apresentem qualquer caractere
diferente, mesmo que seja apenas um, o teste de igualdade resulta em 0.
Por essa razão, existem técnicas mais tolerantes nesse sentido. Duas strings podem ser consideradas similares quando uma é substring da outra, por exemplo. Desse modo, pode ser calculada a
similaridade de substring, que expressa a proporção da sequência de caracteres em comum entre duas
strings. Seja S o conjunto de todas as strings, |x| o comprimento da string x e t a maior substring
comum entre x e y, a similaridade de substring é definida pela função σ : S × S → [0, 1] tal que
∀x, y ∈ S:
σ(x, y) =
2|t|
|x| + |y|
Por outro lado, se os termos são considerados como palavras, são utilizados recursos linguísticos
externos, como dicionários, tesauros e terminologias. Assim, conceitos como Participant e Subject,
que contêm estruturas muito diferentes entre si, podem ser identificados como similares se for usada
uma terminologia em que essas entradas constem como sinônimos.
Terminologias são vocabulários de domínio específico e tendem a ser menos ambíguos do que
dicionários e tesauros. As entradas de uma terminologia são mais adequadas quando os textos ou esquemas a serem casados dizem respeito ao mesmo domínio, por reterem acepções mais especializadas
ou até mesmo acepções que não existem na linguagem cotidiana.
Além de comparar os termos, pode-se comparar a estrutura das entidades contidas em um esquema: tanto a estrutura individual de uma entidade (estrutura interna), quanto a estrutura formada
pelos relacionamentos entre as entidades (estrutura relacional). As estruturas internas de duas enti-
31
3.5 Matching de ontologias/esquemas
dades podem ser comparadas com base nos atributos que elas possuem. Compara-se os seus tipos
de dados e seus identificadores (utilizando as técnicas baseadas em termos). Quando há estruturas
relacionais, compara-se os grafos ou as árvores hierárquicas que as entidades e os relacionamentos
formam.
As técnicas baseadas em instâncias comparam as informações instanciadas a fim de indicar o
relacionamento que existe entre as entidades do esquema que as modela. A ideia é que se dois
conceitos compartilham o mesmo conjunto de instâncias, pode-se presumir que são similares. Essas
técnicas são aplicadas quando as informações relativas ao esquema são limitadas ou em situações em
que os esquemas não são fornecidos junto aos dados.
A aplicação de uma técnica baseada em um modelo semântico restringe-se a ontologias, pois
depende da presença de um conjunto de axiomas lógicos que descrevam as entidades. Como primeiro
passo, são estabelecidas âncoras ou correspondências semente (que podem ser informadas pelo usuário ou obtidas por meio das demais técnicas). Em seguida, são utilizados sistemas capazes de inferir
os relacionamentos entre as entidades (reasoners).
3.6
Considerações finais
Neste capítulo foi apresentada uma introdução a ontologias e noções gerais sobre processos de
evolução e matching, que podem ser utilizados para aplicá-las em soluções de software cujo objetivo
é lidar com a falta de entendimento compartilhado. Também foram apresentados trabalhos relacionados, que propõem a aplicação de ontologias em Engenharia de Software Experimental. Dentre
esses trabalhos, a EXP ER Ontology (Garcia et al., 2008) é uma ontologia que pode ser utilizada para
padronizar pacotes de laboratório.
Com essa abordagem, é possível apoiar as atividades do FIRE (Mendonça et al., 2008) que focam
na transferência de conhecimento: criar/evoluir pacote (ciclo interno), compartilhar conhecimento,
padronizar pacotes, criar/evoluir corpo de conhecimento e compreender experimentos e pacotes de
laboratório (ciclo externo). Isso motivou a definição de um workflow de empacotamento de experimentos controlados em Engenharia de Software, que usa uma ontologia como estrutura para instanciar
as informações, apresentado no capítulo seguinte.
32
C APÍTULO
4
Workflow para empacotar experimentos
controlados
Muitos experimentos em Engenharia de Software vêm sendo conduzidos e seus resultados publicados, mas cada pesquisador publica o conjunto de informações que julga ser mais importante
(Carver, 2010). Não há um padrão amplamente adotado para as informações que devem ser geradas
em um pacote de laboratório. Nesse contexto, uma ontologia pode ser adotada como o modelo para
instanciar as informações, a fim de padronizá-las e facilitar o seu entendimento.
Entretanto, acomodar os diferentes conjuntos de informação que um pacote de laboratório pode
conter sugere que a ontologia adotada como padrão deve evoluir, incorporando novos conceitos. Assim, além de utilizar a ontologia para instanciar as informações, é preciso considerar a prática atual
dos pesquisadores ao reportar um experimento.
A fim de lidar com essas necessidades identificadas, neste trabalho de mestrado é proposto um
workflow de empacotamento de experimentos controlados usando como base uma ontologia. Na
Seção 4.1 são descritos de maneira geral os requisitos que o workflow deve cumprir e são identificadas
as suas atividades. Em seguida, na Seção 4.2, as atividades identificadas são instanciadas com a
escolha de opções para implementá-las.
4.1
Definição do comportamento do workflow
Devido à necessidade de estabelecer um padrão que seja capaz de incorporar diferentes conjuntos
de informação, é preciso lidar com as diferentes perspectivas sobre o que deve conter um pacote de
laboratório. A meta, ilustrada na Figura 4.1, é contribuir na integração de estudos isolados em um
corpo comum com base na padronização por meio de uma ontologia.
Nesse sentido, para empacotar as informações de um estudo, é preciso identificar qual conceito
definido na ontologia corresponde a cada elemento de informação do pacote de laboratório a ser
padronizado. Em uma situação ideal, assim como está representado na Figura 4.2, para cada elemento
de informação existe um conceito definido na ontologia e, assim, todos os elementos de informação
33
4.1 Definição do comportamento do workflow
pacotes de laboratório
…
ontologia
Figura 4.1: Integração de pacotes de laboratório usando ontologia
ontologia
pacote de laboratório
Figura 4.2: Empacotamento com ontologia - situação ideal
são instanciados.
Na Figura 4.3 está representada uma outra situação, que tem grande probabilidade de acontecer
devido à falta de padronização dos pacotes de laboratório: alguns elementos de informação ficam sem
conceito correspondente definido. Esses elementos que sobram podem sugerir conceitos que devem
ser inseridos na ontologia a fim de habilitá-la para acomodar o pacote de laboratório satisfatoriamente.
ontologia
pacote de laboratório
Figura 4.3: Empacotamento com ontologia - situação em que sobram elementos de informação
O empacotamento de acordo com a ontologia envolve uma sequência de atividades embutidas nas
situações descritas. Para modelar o seu comportamento, neste trabalho é proposta a identificação e a
organização dessas atividades em um workflow, que recebe como entradas a ontologia (contendo os
conceitos de experimentos controlados) e um pacote de laboratório (contendo as informações de um
experimento) e devolve como saída um pacote de laboratório padronizado de acordo com a ontologia.
Integrando todas as atividades do workflow e as entradas e saídas de cada uma, obtém-se o diagrama da Figura 4.4. A partir do pacote de laboratório de entrada, a atividade de matching do
34
4.1 Definição do comportamento do workflow
workflow determina os elementos de informação que casam com os conceitos (correspondências) e os
que não casam. Assim, são fornecidas as entradas das demais atividades.
Os elementos não casados precisam ser resolvidos pelo usuário, o que possivelmente requer a
evolução da ontologia. Quando o usuário associa um elemento a um conceito, esse par se torna uma
correspondência também. Todas as correspondências, estabelecidas automaticamente pelo matching
ou manualmente pelo usuário, são instanciadas em um novo pacote de laboratório, sob o formato de
uma ontologia.
Pacote de
Laboratório
Matching
Ontologia
Elementos
não casados
Correspondências
Evolução
Instanciação
apoio do
usuário
Pacote de
Laboratório
Padronizado
Resolução
Figura 4.4: Diagrama com todas as atividades do workflow e suas respectivas entradas e saídas
4.1.1
Atividade de Matching
A atividade de matching, representada na Figura 4.5, toma como entradas a ontologia e o pacote
de laboratório e deve retornar as correspondências e os elementos para os quais não foram encontrados
conceitos correspondentes. Uma vez que o pacote de laboratório seja ao menos semiestruturado, é
possível aplicar técnicas de matching de esquemas/ontologias, conforme discutido na Seção 3.5.
De uma maneira geral, matching de esquemas é o meio para se resolver a heterogeneidade semântica entre esquemas (Halevy, 2005). No caso dos repositórios de conhecimento de Engenharia
de Software Experimental, os grupos de pesquisa de Engenharia de Software empacotam estudos de
acordo com esquemas distintos, sendo que esses pacotes de laboratório precisam ser integrados em
um corpo comum. Integração de informação é uma das classes de aplicações mais recorrentes em que
o matching é visto como uma solução plausível (Euzenat e Shvaiko, 2007).
É nesse sentido que uma ontologia pode ser utilizada como padrão para integrar os estudos com
diferentes conjuntos de informação. Pode ser feito o matching dos esquemas dos pacotes (proveni35
4.1 Definição do comportamento do workflow
entes de grupos de pesquisa distintos) com a ontologia, no intuito de instanciá-los em uma mesma
estrutura de informação.
Pacote de
Laboratório
Ontologia
Matching
Elementos
não casados
Correspondências
Figura 4.5: Atividade de matching do workflow
4.1.2
Atividades de Instanciação, Resolução e Evolução
A partir da atividade de matching do workflow, são obtidas:
• as correspondências, que associam os elementos de informação do pacote de laboratório aos
respectivos conceitos da ontologia e
• os elementos não casados, aos quais não foram encontrados conceitos definidos.
O conjunto de correspondências é a entrada da atividade de instanciação do workflow (Figura
4.6). Para cada par elemento-conceito, é gerada uma instância no pacote de laboratório de saída, que
é dado no formato de uma ontologia.
Correspondências
Instanciação
Pacote de
Laboratório
Padronizado
Figura 4.6: Atividade de instanciação do workflow
Quanto aos elementos de informação não casados, é preciso ter a intervenção do usuário para decidir qual o conceito correspondente em que cada elemento deve ser instanciado. Assim, na atividade
36
4.1 Definição do comportamento do workflow
de resolução (Figura 4.7), as entradas são os elementos de informação que sobraram da atividade de
matching e os conceitos da ontologia e as saídas são as correspondências estabelecidas pelo usuário.
Elementos
não casados
Ontologia
Resolução
apoio do
usuário
Correspondências
Figura 4.7: Atividade de resolução do workflow
Um elemento de informação sobra da atividade de matching por um dos seguintes motivos: o
processo de matching não foi capaz de determinar uma correspondência com um nível de confiança
suficiente ou realmente não há um conceito definido na ontologia que seja adequado para instanciar o
elemento. Ambos os casos são tratados na atividade de resolução.
Entretanto, o segundo caso requer que, antes da resolução, o conceito faltante seja inserido na
ontologia. Assim, na atividade de evolução (Figura 4.8), o usuário analisa os elementos de informação
não casados e, caso seja necessário, adequa as definições da ontologia para possibilitar a instanciação.
A requisição de uma mudança pelo usuário nas definições da ontologia é cumprida ao longo de um
processo de evolução, conforme exposto na Seção 3.4.
Elementos
não casados
apoio do
usuário
Evolução
Ontologia
Figura 4.8: Atividade de evolução do workflow
37
4.2 Instância do workflow
4.2
Instância do workflow
Na seção anterior, o funcionamento geral das atividades do workflow foi apresentado. Entretanto,
não foi determinado o modo como devem ser implementadas. Dessa maneira, determinando de maneira concreta os métodos para implementá-las e como devem ser as entradas e saídas, é obtida uma
instância do workflow de empacotamento da Figura 4.4.
4.2.1
Entradas do workflow
O workflow toma como entradas um pacote de laboratório e a ontologia. Existem diversos formatos em que o pacote de laboratório de entrada pode estar representado. Entre os formatos possíveis,
pode-se citar os estruturados (tais como as bases de dados), os semiestruturados (os documentos
XML, por exemplo) e os não estruturados (documentos escritos em linguagem natural). Diante disso,
é preciso que seja estabelecido um formato padrão para o pacote de laboratório de entrada.
Assim, é possível determinar quais técnicas são adequadas para aplicação na atividade de matching. Mesmo que não seja padronizado, o pacote de laboratório de entrada deve ser ao menos semiestruturado, de modo a fornecer como entrada ao workflow um conjunto de elementos de informação
para ser equiparado ao conjunto de conceitos definidos na ontologia.
Para conseguir estabelecer uma solução que permita abranger desde formatos estruturados até não
estruturados, pode-se adotar como formato padrão a linguagem XML. Dessa maneira, os pacotes de
laboratório de entrada devem ser mapeados para um documento XML (como o exemplo da Figura
4.9) a fim de se tornar uma entrada do workflow.
<OriginalExperiment title="An experimental comparison of ER
and UML class diagrams for data modelling">
<LabPackage>
<InitialHypothesis>
<Description> Analysing whether UML class diagrams
are more comprehensible than ER diagrams
</Description>
<ObjectOfStudy> ER and UML class diagrams </ObjectOfStudy>
<Purpose> Compare ER and UML class diagrams </Purpose>
<QualityFocus> Comprehension support </QualityFocus>
<Context> University students </Context>
</InitialHypothesis>
<FormalizedHypothesis>
<NullHypothesis> There is no difference between the support
provided by ER and UML class diagrams when performing
comprehension tasks on data models
</NullHypothesis>
<AlternativeHypothesis> ComprehensionSupport(UML) >
ComprehensionSupport(ER)
</AlternativeHypothesis>
</FormalizedHypothesis>
Figura 4.9: Trecho de um pacote de laboratório em documento XML
No caso de uma base de dados, por exemplo, pode ser feito um mapeamento direto para o formato XML, uma vez que as informações se encontram segmentadas em elementos de informação
(tabelas com seus respectivos atributos). Já um documento em linguagem natural, como um artigo,
não apresenta as informações de modo segmentado. Não obstante, os elementos de informação estão
38
4.2 Instância do workflow
presentes no documento. Apesar de não estarem estruturados, estão dispersos em meio ao texto. A
extração desses elementos requer uma atividade adicional de pré-processamento para mapeá-los a
elementos XML.
Quanto à ontologia, a EXP ER Ontology pode ser adotada, pois apresenta conceitos referentes
às informações que um pacote de laboratório deve conter (vide Seção 3.3). Garcia et al. (2008)
apresentaram a conceituação e a formalização da ontologia. Portanto, a fim de poder utilizá-la de
maneira concreta como entrada do workflow, é preciso implementá-la. No contexto do processo de
desenvolvimento de ontologias da Figura 3.3, é preciso realizar a fase de Implementação. Para isso,
foi adotada a linguagem OWL para expressar os conceitos, relacionamentos e axiomas da ontologia.
A implementação da EXP ER Ontology foi realizada neste trabalho com o auxílio da ferramenta
Protégé1 , um editor de ontologias. A ferramenta auxilia a modelagem de uma ontologia e gera o
arquivo OWL com as definições dos conceitos, seus relacionamentos e os axiomas lógicos (que restringem a interpretação do significado). Dessa maneira, obteve-se as definições dos conceitos da
ontologia disponíveis para possibilitar o matching.
No instantâneo da Figura 4.10 é possível ver a definição da classe InitialHypothesis. O painel
da esquerda mostra a hierarquia de classes da ontologia e o da direita exibe detalhes da definição da
classe selecionada com as respectivas restrições de propriedade.
Figura 4.10: Instantâneo da EXP ER Ontology no editor Protégé
1
http://protege.stanford.edu
39
4.2 Instância do workflow
4.2.2
Atividade de matching
Definidos os formatos das entradas, é possível escolher quais técnicas de matching podem ser
aplicadas (vide Seção 3.5.2). A ontologia fornece vários tipos de entrada para o matching: termos
(nomes das classes e das propriedades), a estrutura formada pela hierarquia de classes, a estrutura do
grafo formado pelos relacionamentos entre classes e o modelo semântico dos axiomas. Entretanto,
duas entidades de dois esquemas distintos são comparadas por meio de características que apresentam
em comum.
Logo, só podem ser usadas características que tanto as entidades da ontologia quanto do pacote de
laboratório apresentem para serem comparadas. Sendo a linguagem XML o formato padrão do pacote
de laboratório, o máximo que se pode garantir é que o conteúdo de cada elemento de informação
tenha um identificador (tag). Apesar de a linguagem XML permitir a organização hierárquica dos
elementos, é possível que todos os elementos estejam no mesmo nível, não garantindo, portanto, uma
estrutura para ser analisada.
Nesse caso, a similaridade dos pares conceito-elemento pode ser calculada apenas por meio da
comparação entre os seus respectivos identificadores (o nome do conceito e a tag do elemento de
informação). Portanto, considerando que e, e , r, n é a estrutura de uma correspondência, a similaridade n entre os elementos e e e pode ser dada por técnicas baseadas em termos, sendo que os termos
podem ser considerados como strings (apenas a estrutura do termo) ou como palavras (entradas em
um dicionário).
Com apenas técnicas baseadas em strings, a atividade de matching do workflow seria capaz de
casar apenas elementos de informação identificados com os mesmos termos usados nos conceitos
da EXP ER Ontology (ou termos com estrutura muito parecida, como Hypothesis e Hypotheses).
Contudo, os termos usados pelos pesquisadores para reportar os experimentos controlados não são
padronizados, a terminologia da área é confusa (Sjøberg et al., 2005). Portanto, há uma grande
possibilidade de que elementos possam ser referentes a conceitos expressos na ontologia, mas estejam identificados por termos sinônimos dentro do contexto de Engenharia de Software Experimental
(como Subject e Participant).
Diante disso, é preciso aumentar a capacidade do workflow de gerar correspondências de maneira
automática por meio do matching. A fim de lidar com essa situação, é possível usar como apoio ao
matching um recurso externo que relacione os identificadores dos conceitos com os seus sinônimos.
Nesse sentido, foi adotada a estratégia de utilizar uma terminologia como recurso externo, uma vez
que define relações entre termos de um domínio específico (Euzenat e Shvaiko, 2007).
As entradas da terminologia são os identificadores dos conceitos definidos na EXP ER Ontology.
Cada entrada contém um conjunto de termos similares (possivelmente vazio). Por exemplo, para o
conceito NullHypothesis da ontologia, a entrada correspondente na terminologia é:
<NullHypothesis>
<SimilarTerms> H0 </SimilarTerms>
</NullHypothesis>
Considerando o formato das entradas do workflow e as técnicas de matching escolhidas, a estratégia adotada para realizar o matching entre os conceitos da ontologia e os elementos de informação
40
4.2 Instância do workflow
é apresentada no Algoritmo 1. As principais entradas são os conjuntos de conceitos (O) e de elementos de informação (E). As demais entradas são o recurso externo de apoio, a terminologia de
Engenharia de Software Experimental (T ), e o parâmetro de entrada, um threshold (α) a ser aplicado
nas similaridades calculadas. As saídas são os conjuntos de correspondências e de elementos não
casados.
Algoritmo 1: Estratégia adotada para a atividade de matching
Input:
E: conjunto de elementos de informação
O: conjunto de conceitos da EXP ER Ontology
T : Terminologia
α: threshold de similaridade mínima exigida
Output:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
M : conjunto de correspondências
E: conjunto de elementos não casados
M =∅
forall the e ∈ E do
matched = f alse
simmax = max(termSimilarity(e.name,ci .name)), ci ∈ O
if simmax > α then
cmatched = ci
matched = true
else
matched = f alse
simmax = max(termSimilarity(e.name,tj )), tj ∈ termEntry(T ,ci ), ci ∈ O
if simmax > α then
cmatched = ci
matched = true
end if
19:
end if
if matched = true then
retira e de E
cria uma correspondência m = e, cmatched , =, simmax insere m em M
20:
end if
21:
end forall
16:
17:
18:
Dado um elemento de informação (e), são calculados os valores da similaridade entre o nome do
elemento (e.name) e os nomes dos conceitos da ontologia (ci .name). Se o maior valor de similaridade
encontrado (simmax ) exceder o threshold (α), o respectivo conceito é selecionado (cmatched ).
Caso o maior valor não exceda o threshold (α), é feita a compação com os termos da terminologia (tj .name). São calculados os valores de similaridade entre o nome do elemento (e.name) e
41
4.2 Instância do workflow
os termos similares de cada conceito (tj .name ∈ termEntry(T, ci ). De maneira similar, se o maior
valor encontrado (simmax ) exceder o threshold (α), o conceito da ontologia (ci ) cujo termo similar
(tj ) apresentou a maior similaridade é selecionado (cmatched ).
Por fim, se algum conceito foi selecionado, é estabelecida a correspondência (m) entre ele e o
elemento de informação, com nível de confiança igual ao maior valor de similaridade encontrado.
O elemento de informação é retirado do conjunto de entrada (E) e a correspondência é inserida no
conjunto de saída (M ).
4.2.3
Atividade de instanciação
Cada pacote de laboratório de saída do workflow é representado como uma ontologia individual
de instâncias (em OWL). Para que as definições da EXP ER Ontology fiquem acessíveis às ontologias
que contêm os pacotes de laboratório instanciados, a EXP ER Ontology é importada em cada uma
delas. Uma ontologia OWL pode importar outra ontologia a fim de ganhar acesso a suas entidades e
axiomas, o que provê a capacidade básica de modularização (W3C, 2009). A importação permite que
cada pacote de laboratório seja representado em uma ontologia distinta que contém as instâncias dos
conceitos da EXP ER Ontology, como o esquema da Figura 4.11.
PL1.owl
PL2.owl
import
EXPEROntology.owl
PL3.owl
…
PLn.owl
Figura 4.11: Ontologias de instâncias e a EXP ER Ontology
A ontologia gerada com a ferramenta Protégé (vide Seção 4.2.1) contém a definição dos conceitos
da EXP ER Ontology, cujo papel é servir de modelo para o conhecimento gerado por cada experimento
controlado. A ferramenta Protégé também possibilita a criação de instâncias, além da definição de
classes e propriedades. Entretanto, as instâncias do pacote de laboratório devem ser criadas automaticamente a partir das correspondências identificadas, o que requer que a instanciação seja implementada de modo a tomar como entrada o conjunto de correspondências e devolver como saída uma
ontologia composta de instâncias dos conceitos da EXP ER Ontology.
Portanto, na atividade de instanciação é gerada uma ontologia OWL para o pacote de laboratório
padronizado, que importa as definições da EXP ER Ontology. Em seguida, para cada correspondência,
é criada e adicionada uma instância do conceito indicado na estrutura da correspondência.
42
4.2 Instância do workflow
4.2.4
Atividades de resolução e evolução
Nas atividades de resolução e evolução, o usuário é responsável por lidar com os elementos de
informação não casados. Na resolução, após analisar um elemento, o usuário escolhe um conceito
definido na EXP ER Ontology para estabelecer uma correspondência.
Estabelecer a correspondência de maneira manual requer que o usuário analise os conceitos definidos na ontologia e tenha o apoio da terminologia de Engenharia de Software Experimental (utilizada
como recurso externo do matching). A terminologia fornece os termos similares de cada conceito, o
que ajuda a identificar um conceito referente ao elemento de informação.
Além disso, o usuário pode contribuir na melhoria desse recurso com a adição de mais termos
similares aos conceitos da ontologia. Dessa maneira, a terminologia vai sendo preenchida conforme
o workflow é executado. Essa abordagem implica em melhorias para as próximas vezes em que a
resolução e o matching forem executados.
Caso não esteja definido um conceito adequado para instanciar um determinado elemento de informação, por meio da atividade de evolução o usuário é capaz de solicitar mudanças à definição da
ontologia a fim de permitir a instanciação do elemento pendente. Essas mudanças devem ser consideradas dentro do contexto do processo de evolução de ontologias. Deve-se buscar manter a coerência
ao longo das mudanças e, portanto, é preferível que não sejam geradas mudanças derivadas. Limitar o
processo de evolução a admitir apenas mudanças de adição faz com que esse objetivo seja atingido.
Assim, garante-se a consistência da ontologia de definições (EXP ER Ontology) e das ontologias de
instâncias (os pacotes de laboratório já instanciados) ao longo das mudanças realizadas. O processo
de evolução é ainda mais simplificado nesse caso, porque as mudanças admitidas pelo workflow a
partir da análise dos elementos de informação abrangem apenas mudanças de adição de conceitos.
Os conceitos da EXP ER Ontology são representados como classes OWL na implementação da
ontologia. Por serem classes OWL, estão organizadas em uma hierarquia. Portanto, as mudanças
admitidas na atividade de evolução do workflow são apenas duas:
• AddClass(newClass) e
• AddSubclass(newClass,class).
O usuário pode apenas solicitar que seja criada (AddClass(newClass)) e inserida uma nova subclasse
a alguma classe previamente definida (AddSubclass(newClass,class)). O impacto dessas mudanças
de adição é mínimo e gerenciável, como pode ser visto na Tabela 4.1. Basta ao usuário estar ciente
desses impactos a fim de evitá-los.
Vale ressaltar que as mudanças realizadas na ontologia são refletidas na terminologia utilizada
como recurso externo de apoio ao matching e à resolução. Se um novo conceito é adicionado à
EXP ER Ontology, então é criada uma nova entrada na terminologia referente ao termo. Quanto às
mudanças que podem ser efetuadas na terminologia por meio do workflow, o usuário pode solicitar
que seja inserido um novo termo similar à entrada de um conceito da ontologia:
• AddSimilarTerm(newT erm,class).
43
4.3 Considerações finais
Tabela 4.1: Impacto de mudanças de adição de conceitos em uma ontologia (Abgaz et al., 2011)
Mudança
Descrição do impacto
AddClass(newClass)
Nova classe “órfã”: acontece quando um conceito é introduzido sem uma subclasse além da classe Thing (a classe
que abrange todas as instâncias em OWL).
AddSubclass(newClass,class) Nova classe insatisfatível: acontece quando há uma relação
de hierarquia entre class e uma outra classe otherClass da
ontologia e newClass e otherClass são disjuntas.
4.3
Considerações finais
Neste capítulo foi proposto um workflow para empacotar experimentos controlados, que inclui
uma abordagem evolutiva para a instanciação de pacotes de laboratório em uma ontologia. O uso
da ontologia como padrão das informações geradas por um experimento tem a meta de lidar com
problemas de transferência de conhecimento entre grupos de pesquisa em Engenharia de Software.
A proposta tem fundamentação no arcabouço FIRE estabelecido por (Mendonça et al., 2008). De
acordo com o FIRE, para integrar conhecimento ou evoluir os repositórios de conhecimento, é preciso
padronizar pacotes. De fato, Carver (2010) enfatiza a importância da padronização do conjunto de
informações reportado de um experimento.
Conforme os pacotes de laboratório são instanciados por meio do workflow, a ontologia pode
se aproximar de um padrão semântico que permite acomodar variações de pacotes de laboratório, e
portanto, a evolução da EXP ER Ontology aprimora a sua aplicação em empacotar experimentos.
No capítulo seguinte é apresentada uma avaliação da proposta, com a operacionalização do workflow e a demonstração de sua execução, utilizando como entrada publicações de experimentos controlados.
44
C APÍTULO
5
Avaliação do workflow
Para avaliar o workflow proposto, é preciso exercitar cada uma de suas atividades. Assim, a
partir das definições (Capítulo 4), é preciso operacionalizá-lo com a implementação de cada uma
delas. Como entrada do workflow, é considerado um pacote de laboratório contendo um conjunto
de informação que descreve o experimento. Nesse sentido, qualquer descrição de experimento pode
ser usada, inclusive uma publicação de experimento encontrada na literatura. Nesse caso, é preciso
providenciar a extração dos elementos de informação dos artigos que descrevem os experimentos
(Cruzes et al., 2007).
Neste capítulo é apresentada a avaliação da proposta deste projeto de mestrado, utilizando publicações de experimentos controlados como pacotes de laboratório de entrada. Na Seção 5.1 é dada uma
visão geral da ferramenta PontoLab++, que implementa as atividades do workflow, admitindo pacotes
de laboratório de entrada sob o formato XML. Na Seção 5.2, é apresentada a implementação de um
pré-processamento que realiza a extração de elementos de informação dos artigos e gera documentos
XML aptos a serem admitidos como pacotes de laboratório de entrada. Também é demonstrada a
execução do workflow por meio da ferramenta PontoLab++.
5.1
Ferramenta PontoLab++
A ferramenta PontoLab++ consiste na implementação da instância do workflow de empacotamento descrita na Seção 4.2. Foi utilizada a linguagem de programação Java, o que possibilitou a
adoção das APIs JDOM1 e OWL API2 para a manipulação de documentos XML e OWL, respectivamente.
Na interface inicial (Figura 5.1), o usuário ajusta o diretório de entrada (que contém os arquivos
XML com os elementos de informação de experimentos controlados) e o diretório de saída (que deve
conter os arquivos OWL com os pacotes de laboratório instanciados). A partir do diretório de entrada
selecionado, é gerada uma lista dos arquivos nele contidos e o usuário escolhe o pacote de laboratório
1
2
http://www.jdom.org
http://owlapi.sourceforge.net
45
5.1 Ferramenta PontoLab++
de entrada. As demais entradas do matching, como a EXP ER Ontology, a terminologia e o threshold
são configuradas separadamente, conforme pode ser visto na Figura 5.2.
Figura 5.1: PontoLab++ - Interface inicial com os ajustes para a execução do workflow
Figura 5.2: PontoLab++ - Interface com os demais ajustes para a execução do workflow
Após realizar o matching, são exibidos ao usuário os conjuntos de elementos casados (Figura
5.3) e de elementos não casados (Figura 5.4). Para cada elemento selecionado, são exibidos o
nome do elemento (Name), o seu conteúdo (Content) e, no caso de um elemento casado, a classe
da EXP ER Ontology com a qual foi estabelecida uma correspondência (Class).
O usuário pode, então, fazer a resolução de cada elemento de informação não casado. Para isso, é
46
5.1 Ferramenta PontoLab++
Figura 5.3: PontoLab++ - Interface com o conjunto de elementos de informação casados
Figura 5.4: PontoLab++ - Interface com o conjunto de elementos de informação não casados
47
5.1 Ferramenta PontoLab++
preciso selecionar uma classe da hierarquia da EXP ER Ontology (Figura 5.5). O usuário pode também
incrementar a terminologia com novos termos durante a resolução. Assim, conforme novos termos são
inseridos, apóia-se a própria resolução e o matching. Caso não haja uma classe definida na hierarquia
da EXP ER Ontology que seja adequada para instanciar o elemento, o usuário pode inserir uma nova
classe na hierarquia antes de completar a resolução.
Figura 5.5: PontoLab++ - Interface de resolução e evolução
5.2
Execução do workflow proposto
Não há livre acesso às bases de dados, documentos XML ou planilhas dos diferentes grupos de
pesquisa em Engenharia de Software Experimental. Essa dificuldade em se acessar diretamente os pacotes de laboratório implica no uso de outro meio para acessar as informações sobre os experimentos:
os artigos publicados pelos pesquisadores (Cruzes et al., 2007).
Cada artigo pode apresentar um conjunto de informações distinto (Jedlitschka et al. (2008); Carver
(2010)), o que implica em um modelo subjacente de pacote de laboratório distinto. O documento PDF
do artigo publicado do experimento contém a descrição de suas informações. Logo, pode ser adotado
como representante do pacote de laboratório de entrada.
5.2.1
Pré-processamento
O documento PDF não consiste em um formato (semi)estruturado, como o requerido pelo workflow. Contudo, as informações contidas no texto estão de acordo com um modelo de dados subjacente,
ou seja, os elementos de informação estão presentes no documento. Apesar de não estarem estruturados, os elementos de informação estão dispersos em meio ao texto em linguagem natural.
48
5.2 Execução do workflow proposto
Uma visão geral do resultado esperado do pré-processamento é dada na Figura 5.6. Para realizar
a extração do texto do documento PDF (pois esse formato de arquivo embute muitos outros tipos de
dados como imagens, formulários, fontes, etc), foi utilizada a biblioteca PDFBox3 . A partir do texto,
cada elemento de informação extraído é representado por um elemento XML.
Software developers, programmers, and
other information systems
(IS
software engineering have yet to be
replaced by computational
automation that will transform the field.
In our research program,
we are investigating the theory and
technology for processing the
semantic meaning of programs to enable
fast and precise understanding
of program behaviors. The emerging
technology of function
extraction (FX) will achieve this objective
through
automated computation of the functional
behavior of programs
to the fullest extent possible [20,21,25].
FX technology has the potential
<ObjectOfStudy> ER and UML
class diagrams
</ObjectOfStudy>
<QualityFocus> Comprehension
support </QualityFocus>
<NullHypothesis> There is no
difference between the support
provided by ER and UML class
diagrams when performing
comprehension tasks on data
models (Comprehension Support)
</NullHypothesis>
Figura 5.6: Extração de elementos de informação do texto
A extração de elementos depende de uma busca por termos representativos (que devem dar origem
às tags dos elementos XML) em meio ao texto e da seleção dos trechos que correspondem à informação de fato (conteúdo dos elementos XML), conforme a representação da Figura 5.7. Os termos
representativos são provenientes da terminologia utilizada como recurso externo do matching.
<NullHypothesis> There is no difference between the support
provided by ER and UML class diagrams when performing
comprehension tasks on data models (Comprehension
Support) </NullHypothesis>
Figura 5.7: Extração de um elemento de informação do texto
A fim de estabelecer uma busca com contexto e facilitar a seleção de trechos de texto, foi implementada a segmentação do texto em seções e parágrafos (também representados em um documento
XML intermediário). Quanto à seleção do trecho de texto que deve ser instanciado ao se identificar
um termo representativo, foram adotadas duas heurísticas: (i) se o termo aparecer em um título de
seção, seleciona-se o texto inteiro da seção; (ii) se o termo aparecer em um parágrafo, seleciona-se o
parágrafo. A interface inicial da ferramenta desenvolvida para o realizar o pré-processamento é dada
na Figura 5.8.
3
http://pdfbox.apache.org
49
5.2 Execução do workflow proposto
Figura 5.8: Interface da ferramenta de pré-processamento
Com a execução dessa etapa de pré-processamento, é gerado um documento semiestruturado em
XML para cada artigo em PDF, contendo os respectivos elementos de informação. Os trechos de texto
que não são selecionados até o final da busca com o apoio da terminologia dão origem a elementos
XML com a tag “NotIdentifiedYet”. Dessa maneira, o documento XML pode ser tomado como
entrada na ferramenta PontoLab++.
5.2.2
Execução do workflow
Dispondo do pré-processamento, é possível obter documentos XML que contêm elementos de
informação a partir de artigos e, então, executar o workflow por meio da ferramenta PontoLab++.
Com esse propósito, foi selecionado um conjunto de 56 publicações de experimentos controlados em
Engenharia de Software. A busca pelos artigos foi realizada tanto por meio dos nomes dos autores
(pesquisadores de Engenharia de Software Experimental) quanto por evento/periódico da área de
Engenharia de Software.
O conjunto de artigos passou pelo pré-processamento e gerou, como saída, um conjunto de documentos XML. Cada documento XML foi tomado como entrada no workflow, e deu origem a um
pacote de laboratório instanciado na ontologia. Dentre os artigos do conjunto selecionado, foi escolhido um – De Lucia et al. (2010) – para apresentar o seu empacotamento.
Após a execução da atividade de matching para o artigo escolhido, foram gerados como saída
os respectivos conjuntos de correspondências e de elementos não casados. Na Tabela 5.1 é exibida uma amostra das correspondências. Cada linha representa uma correspondência, com o par
conceito-elemento. A primeira coluna indica o conceito da EXP ER Ontology e a segunda apresenta o
50
5.2 Execução do workflow proposto
conteúdo do elemento de informação.
Tabela 5.1: Amostra do conjunto de correspondências
Conceito
Parte do conteúdo do elemento
Hypothesis
« Section » 2.3 Hypothesis Formulation The main objective of our study
was to analyse whether UML class diagrams are more comprehensible
than ER diagrams during comprehension, maintenance, and verification
activities on data models. Thus, the nul-hypotheses were formulated for
testing the effect of the design notation (i.e., ER or UML diagrams) on
the comprehensibility, maintainability, and verifiability of a data model:
â"H 0 c : there is no difference between the support provided by ER and
UML class diagrams when performing comprehension tasks on data
models (Comprehension Support). â"H 0 m : there is no difference
between the support provided by ER and UML class diagrams when
identifying the change to perform on data models to meet a maintenance
request (...)
Subject
« Section » 2.2.1 Subjects The controlled experiments were executed at
the University of Salerno (Italy) and involved students having different
academic backgrounds and, consequently, different levels of experience
on ER and UML diagrams: â"zero-knowledge students, i.e., fresher B.
Sc. students that were starting their academic career when the experiment was performed; â"bachelor students, i.e., 2 nd year B. Sc. students
that attended Programming and Databases courses in the past and were
attending the Software Engineering course when the experimentation
was performed. (...)
DependentVariable
« Section » 2.5 Measurement of the Dependent Variables The main outcome observed in the set of controlled experiments Comprehension was
the comprehension level. To evaluate it, we asked the subjects to answer
a questionnaire (similar to Kuzniarz et al. 2004; Purchase et al. 2001,
2004; Ricca et al. 2007) consisting of 5 multiple choice questions where
each question has one or more correct answers (see Table 4 for sample
questions and De Lucia et al. 2008 a for the complete questionnaire).
(...)
(continuação na próxima página)
51
5.2 Execução do workflow proposto
Tabela 5.1: Amostra do conjunto de correspondências (continuação)
Conceito
Parte do conteúdo do elemento
ExperimentalDesign
« Section » 2 Experimental Method This section describes in detail the
definition, design, and settings of all the controlled experiments we performed. 1 We replicated each experiment at least once, and the design,
the material and the procedure of the replications were exactly the same
as the main experiments. Subjects represented the only substantial difference among the experiment and the replications. (...)
Result
« Section » 3 Experimental Results In the next sections we report on the
results achieved in the three sets of controlled experiments, i.e., Comprehension, Maintenance,and Verification,aswellasthe results achieved
in the survey questionnaires (...)
« Paragraph from section » 2.5 Measurement of the Dependent Variables After the execution of each experiment, we collected the questionnaires filledin by each subject in each laboratory session. The results
of the questionnaire were reported by one of the author in spreadsheets
aiming at performing the data analysis.
« Paragraph from section » 2.5 Measurement of the Dependent Variables To reduce the risk of human errors in reporting the results, another
author doublechecked the inserted data. Once the data were validated,
the F-measures achieved by the subject were calculated.
Analysis
« Section » 2.7 Data Analysis Since experiments were organised as longitudinal studies, 5 where each subject performed a task on two different models (i.e., S1 or S2) with the two possible treatments (i.e., ER
or UML), it was possible to use a paired Wilcoxon one-tailed test (Conover 1998) to analyse the differences exhibited by each subject for the
two treatments. A one-tailed paired t-test (Conover 1998) can be used
as alternative to the Wilcoxon test. (...)
« Paragraph from section » 4.4 Conclusion Validity A definition of
conclusion validity could be the degree to which conclusions we reach about relationships in our data are reasonable. With regard to our
experiment, proper tests were performed to statistically reject null hypotheses. In cases where differences were present but not significant,
this was explicitly mentioned. Nonparametric tests were used in place
of parametric tests where there were not the necessary conditions to
use parametric tests. In particular, the Mann-Whitney test for unpaired
analyses and the Wilcoxon test for paired analysis.
(continuação na próxima página)
52
5.2 Execução do workflow proposto
Tabela 5.1: Amostra do conjunto de correspondências (continuação)
Conceito
Parte do conteúdo do elemento
« Paragraph from section » 4.4 Conclusion Validity This allowed us to
use statistical analysis to analyse differences in the feedback provided
by subjects with different levels of ability and experience.
ConclusionValidity
« Section » 4.4 Conclusion Validity A definition of conclusion validity
could be the degree to which conclusions we reach about relationships
in our data are reasonable. With regard to our experiment, proper tests
were performed to statistically reject null hypotheses. In cases where
differences were present but not significant, this was explicitly mentioned. Nonparametric tests were used in place of parametric tests where
there were not the necessary conditions to use parametric tests. In particular, the Mann-Whitney test for unpaired analyses and the Wilcoxon
test for paired analysis. (...)
Os nomes dos elementos foram omitidos por serem idênticos aos nomes dos conceitos. A razão
disso é aplicação da terminologia para extraí-los do texto em linguagem natural. Essa situação enfatiza
que os elementos foram extraídos no pré-processamento por meio dos próprios nomes de conceitos
da EXP ER Ontology e não pelos termos similares a eles contidos na terminologia.
O conjunto de elementos não casados é apresentado na Tabela 5.2. Esse conjunto é entrada da
atividade de resolução do workflow. Os elementos não casados precisam ser resolvidos (para se
tornarem correspondências) ou podem ser deletados. Adicionalmente, enquanto tenta resolver um
elemento, o usuário pode decidir se o mesmo sugere um novo conceito ou termo similar (na atividade
de evolução).
Para resolver os elementos não casados, o usuário analisa o conteúdo de cada um. Apenas o
quarto elemento da Tabela 5.2 indica um elemento que deve ser instanciado. O elemento NotIdentifiedYet4, apesar de não possuir qualquer conceito correspondente definido na ontologia, sugere um
novo conceito: LessonsLearned. Os demais não podem ser instanciados em qualquer conceito da
EXP ER Ontology e não sugerem mudanças na ontologia. Portanto, podem ser descartados.
As lições aprendidas são conclusões dos pesquisadores diante da análise dos resultados e da experiência que adquiriram realizando o experimento. Portanto, ao realizar a resolução do elemento
LessonsLearned, o usuário também efetua uma evolução na ontologia, por meio da mudança AddClass(LessonsLearned) e AddSubclass(LessonsLearned, Thing).
Após resolver os elementos não casados, o usuário pode solicitar a instanciação do pacote de
laboratório a partir do conjunto de correspondências, composto pelas correspondências estabelecidas
pela atividade de matching (de maneira automática) e pela atividade de resolução (com o apoio do
usuário). Assim, completa-se a execução do workflow por meio da ferramenta PontoLab++ para gerar
um pacote de laboratório padronizado de acordo com os conceitos da EXP ER Ontology.
53
5.3 Considerações finais
Nome do elemento
NotIdentifiedYet1
NotIdentifiedYet2
NotIdentifiedYet3
NotIdentifiedYet4
NotIdentifiedYet5
5.3
Tabela 5.2: Conjunto de elementos não-casados
Parte do conteúdo do elemento
« Section » 1 Introduction A data model is a set of concepts that can be
used to describe both the structure of and the operations on a database
(Navathe 1992). It represents the output of data modelling (or conceptual design), an activity that aims at creating a conceptual schema in a
diagrammatic form and facilitating the communication between developers and users (Navathe 1992). (...)
« Section » 3.1 ER vs UML during Comprehension Activities Tables 7,
8,and9 show descriptive statistics (i.e., median, mean, and standard deviation)â"grouped by Method and Systemâ"for the dependent variable
Comprehension Support of the Comprehension experiments carried out
with fresher students (Comp-Fsc), with bachelor students (Comp-Bsc),
and with master students (Comp Msc). (...)
« Section » 3.2 ER vs UML during Maintenance Activities Tables 11 and 12 show the descriptive statistics (i.e., median, mean,
and standard deviation) for the dependent variable Maintenance Supportâ"grouped by Method and Systemâ"of the Maintenance experiments carried out with bachelor students (Maint-Bsc) and with master
students (Maint-Msc).
« Section » 5 Lessons Learned The results achieved in the reported experiments provided us with a number of lessons learned: â"UML class
diagrams represent a notation easier to comprehend than ER diagrams
independently of the subjects experience. The analysis also revealed
that both subjects ability and experience influence the comprehension
level. (...)
« Section » 6 Related Work In the last two decades several papers have
analysed, through controlled experiments or empirical studies or surveys, graphical notations supporting the software development process.
Considerações finais
Neste capítulo foram discutidos aspectos sobre a execução do workflow proposto. Nesse sentido,
foi apresentada a ferramenta PontoLab++, a implementação da instância de workflow da Seção 4.2.
A ferramenta possibilitou que cada atividade definida no workflow fosse exercitada para demonstrar
o seu funcionamento.
Considerando que a ferramenta admite como entrada apenas pacotes de laboratório em XML,
para executá-la a partir de um conjunto de artigos no formato PDF, foi implementada e executada
uma atividade adicional de pré-processamento. Assim, foi gerado um conjunto de documentos XML
contendo elementos de informação extraídos do texto dos artigos.
Apesar de ter sido implementada uma busca simples para o pré-processamento, os elementos de
informação gerados são relativamente coerentes com o que deveriam ser, considerando a descrição
do experimento no artigo. Portanto, a busca com o apoio de um vocabulário e a adoção de heurísticas
são suficientes para atingir os propósitos do pré-processamento dos artigos em PDF.
Dentre um conjunto de artigos selecionados para a avaliação do workflow, foi escolhido um para
demonstrar da execução de todas as suas atividades. Pode-se concluir que os conceitos definidos
54
5.3 Considerações finais
na ontologia apresentaram uma boa cobertura dos respectivos elementos de informação. Apenas
restaram cinco elementos não casados, dos quais apenas um apresentou a necessidade de evoluir a
EXP ER Ontology.
55
C APÍTULO
6
Conclusões
Neste trabalho de mestrado é proposto um workflow para aplicar uma ontologia ao empacotamento
de experimentos controlados em Engenharia de Software. O objetivo dessa abordagem é padronizar a
estrutura das informações contidas em um pacote de laboratório, o que apóia a integração de estudos
isolados em um corpo comum de conhecimento.
As entradas do workflow proposto são uma ontologia, contendo os conceitos de experimentos
controlados, e um pacote de laboratório, composto de informações de um experimento controlado.
Para que seja gerado como saída um pacote de laboratório padronizado a partir dessas entradas,
foram identificadas as seguintes atividades: o matching entre os elementos de informação do pacote
e os conceitos da ontologia, a instanciação dos elementos casados, a resolução dos elementos não
casados e a evolução da ontologia pela adição de novos conceitos, que podem ser requeridos para
resolver elementos não casados. As atividades de matching e instanciação são realizadas de maneira
automática, enquanto que as atividades de resolução e evolução precisam da intervenção do usuário.
A partir da definição geral do workflow (Figura 4.4), uma instância pode ser obtida ao se determinar a ontologia que deve ser utilizada e o formato do pacote de laboratório de entrada, além das
escolhas de implementação das atividades. Neste trabalho foi considerada uma instância do workflow
cujas entradas são a EXP ER Ontology (Garcia et al., 2008) e um documento XML, composto pelos
elementos de informação de um pacote de laboratório.
Considerando o formato do pacote de entrada como um documento XML, foram adotadas técnicas
baseadas em termos para compor a solução de matching. Uma vez que a aplicação dessas técnicas
é feita dentro de um contexto bem definido (Engenharia de Software Experimental), a ambiguidade
das correspondências estabelecidas é consideravelmente diminuída. Quanto à evolução, a instância
do workflow apenas admite mudanças de adição de conceitos, cujo impacto sobre as definições da
ontologia é mínimo. Dessa maneira, é mantida a coerência dos pacotes de laboratório gerados antes
de serem aplicadas mudanças à EXP ER Ontology.
A fim de avaliar a proposta, as atividades do workflow foram implementadas e executadas. A
instância do workflow foi implementada na ferramenta PontoLab++. Para a execução, foram adotadas
56
publicações de experimentos controlados, o que requereu a implementação de uma atividade adicional de pré-processamento para extrair elementos de informação presentes em meio à descrição em
linguagem natural dos experimentos controlados.
Vale ressaltar que os elementos de informação gerados a partir do texto usando essa abordagem
não contêm informações absolutamente precisas. Não obstante, ainda que imprecisos, os elementos
de informação servem para indicar a presença de um determinado conceito em meio ao texto. Isso
basta para demonstrar a execução do workflow e a padronização de um pacote de laboratório por meio
da ontologia.
A padronização dos pacotes de laboratório é uma das atividades sugeridas pelo FIRE para aprimorar a transferência de conhecimento entre grupos de pesquisa. Deve-se considerar, entretanto, que o
empenho em gerar pacotes de laboratório bem projetados, é apenas um aspecto complementar para se
favorecer replicações. A comunicação entre grupos de pesquisa tem papel fundamental, fato corroborado pela criação da ISERN (International Software Engineering Research Network1 ) e pela atividade
de planejamento e coordenação de iniciativas do ciclo externo (intergrupos) do FIRE (Mendonça et
al., 2008).
6.1
Contribuições e limitações
A principal contribuição deste trabalho é a definição de um workflow de empacotamento de experimentos controlados com base em uma ontologia. Estabeleceu-se uma abordagem para a padronização
de pacotes de laboratório compostos por diferentes conjuntos de informações. Portanto, foi tratada
a questão da falta de padronização de pacotes de laboratório, que é um dos fatores de problemas de
integração e transferência de conhecimento em Engenharia de Software.
Outra contribuição é a implementação da EXP ER Ontology em OWL para ser adotada como o
padrão das informações dos pacotes de laboratório de entrada. Também foi desenvolvida uma ferramenta que consiste na implementação de uma instância do workflow, a PontoLab++. Dessa maneira,
é possível executá-lo e avaliá-lo.
A partir da execução do workflow, são gerados pacotes de laboratórios de acordo com um modelo estruturado e padronizado. Armazenar as informações de um experimento como instâncias dos
conceitos de uma ontologia significa que as informações estão estruturadas de acordo com um vocabulário comum. Além disso, por se tratar de uma especificação formal, a ontologia de instâncias
de cada pacote pode ser facilmente processada, pois embute a semântica do domínio em que está
inserida, ou seja, contém o significado das informações representadas. Os pacotes não seriam tão
portáveis se fossem instanciados em bancos de dados relacionais, por exemplo.
Porém, há dificuldades para verificar a influência da abordagem no que se refere a promover um
melhor entendimento durante a revisão dos experimentos pelos pesquisadores, já que é necessário
dispor da colaboração de pesquisadores de diferentes contextos revisando pacotes de laboratório.
Para essa avaliação, é preciso comparar a revisão de pacotes de laboratório não padronizados pela
ontologia e a revisão daqueles cujas informações foram instanciadas em seus conceitos por meio da
execução do workflow.
1
http://isern.iese.de/
57
6.2 Trabalhos futuros
6.2
Trabalhos futuros
Alguns trabalhos estendem o escopo deste projeto de mestrado e tratam as limitações nele contidas:
• Utilizar pacotes de laboratório estruturados para serem padronizados pelo workflow. Dessa maneira, os pacotes dão origem a uma estrutura hierárquica no documento XML, que pode ser
comparada à estrutura da EXP ER Ontology. Assim é obtida uma instância distinta do workflow,
que implica em mudanças na implementação da atividade de matching, com a possibilidade adicional de aplicar técnicas que comparam a estrutura. Combinar diferentes técnicas de matching
aprimora as correspondências estabelecidas.
• Realizar uma avaliação da influência da adoção da EXP ER Ontology no entendimento compartilhado das informações do pacote de laboratório nela instanciadas. Para isso é preciso dispor
da colaboração de outros grupos de pesquisa.
• Investigar maneiras de explorar a representação semântica dos pacotes de laboratório sob o formato de ontologia OWL. É possível utilizar um reasoner para computar vinculações inferidas
a partir dos pacotes de laboratório padronizados de saída do workflow (Sirin et al., 2007).
• Aplicar técnicas de aprendizagem de máquina para extrair os elementos do texto dos artigos de
experimentos controlados. Com uma abordagem similar à de Matos et al. (2010), é possível
extrair informações mais precisas para compor o documento XML de entrada do workflow.
6.3
Produção bibliográfica
Destaca-se que, ao longo do desenvolvimento deste trabalho, houve duas publicações em eventos,
que apresentam a abordagem proposta neste projeto de mestrado:
• SCATALON, Lilian Passos; GARCIA, Rogério Eduardo; CORREIA, Ronaldo Celso Messias.
Uma ferramenta para instanciação de ontologia de experimentos controlados em engenharia de
software. In: Conferência Ibérica de Sistemas e Tecnologias de Informação, 2011, Chaves Portugal. 6a Conferência Ibérica de Sistemas e Tecnologias de Informação (CISTI 2011). Porto
- Portugal: Associação Ibérica de Sistemas e Tecnologias de Informação, 2011.
• SCATALON, Lilian Passos; GARCIA, Rogério Eduardo; CORREIA, Ronaldo Celso Messias.
Packaging Controlled Experiments Using an Evolutionary Approach Based on Ontology. In:
International Conference on Software Engineering and Knowledge Engineering, 2011, Miami
- USA. 23rd International Conference on Software Engineering and Knowledge Engineering
(SEKE 2011), 2011.
Outra publicação está sob elaboração, contendo a avaliação do workflow e seus resultados, a ser
submetida ao International Journal of Software Engineering and Knowledge Engineering.
58
Referências Bibliográficas
A BGAZ , Y. M.; JAVED , M.; PAHL , C.
A framework for change impact analysis of
ontology-driven content-based systems. In: Confederated International Conference On the
move to meaningful internet systems, Berlin, Heidelberg: Springer-Verlag, 2011, p. 402–411.
A MARAL , E. A. G. G.; T RAVASSOS , G. H. A package model for software engineering experiments. In: Proceedings of ISESE 2003 - International Symposium on Empirical Software
Engineering, 2003, p. 21–22.
BARBOSA , E. F.; NAKAGAWA , E. Y.; M ALDONADO , J. C. Towards the establishment of
an ontology of software testing. In: International Conference on Software Engineering and
Knowledge Engineering (SEKE 2006), 2006, p. 522–525.
BASILI , V. R. The role of controlled experiments in software engineering research. In: Empirical Software Engineering Issues: Critical assessment and future directions, 2006, p. 33–37.
BASILI , V. R.; S ELBY, R. W. Comparing the effectiveness of software testing strategies.
IEEE Transaction on Software Engineering, v. 13, n. 12, p. 1278–1296, 1987.
BASILI , V. R.; S HULL , F.; L ANUBILE , F. Building knowledge through families of experiments. IEEE Transactions on Software Engineering, v. 25, n. 4, p. 456–473, 1999.
BASILI , V. R.; Z ELKOWITZ , M. V. Empirical studies to build a science of computer science.
Communications of the ACM, v. 50, n. 11, p. 33–37, 2007.
B IOLCHINI , J.; M IAN , P. G.; NATALI , A. C. C.; C ONTE , T. U.; T RAVASSOS , G. H. Scientific research ontology to support systematic review in software engineering. Advanced Engineering Informatics, v. 21, n. 2, p. 133–151, 2007.
B ROOKS , A.; ROPER , M.; W OOD , M.; DALY, J.; M ILLER , J. Guide to advanced empirical
software engineering, cáp. Replication’s Role in Software Engineering Springer-Verlag London,
p. 365–379, 2008.
C ARVER , J. C. Towards reporting guidelines for experimental replications: A proposal. In:
International Workshop on Replication in Empirical Software Engineering Research (RESER),
2010.
59
Referências Bibliográficas
C RUZES , D.; M ENDONCA , M.; BASILI , V.; S HULL , F.; J INO , M.
Extracting information
from experimental software engineering papers. In: Proceedings of the XXVI International
Conference of the Chilean Society of Computer Science, Washington, DC, USA: IEEE Computer
Society, 2007, p. 105–114.
D E L UCIA , A.; G RAVINO , C.; O LIVETO , R.; T ORTORA , G. An experimental comparison
of er and uml class diagrams for data modelling. Empirical Software Engineering, v. 15, n. 5,
p. 455–492, 2010.
E UZENAT, J.; S HVAIKO , P. Ontology matching. Springer-Verlag, 2007.
FALBO , R.; RUY, F. B.; M ORO , R. D. Using ontologies to add semantics to a software engineering environment. In: International Conference on Software Engineering and Knowledge
Engineering (SEKE 2005), 2005, p. 151–156.
F ENSEL , D. Ontologies: Dynamic networks of formally represented meaning. In: Semantic
web working symposium, Stanford, CA, USA, 2001.
G ARCIA , R. E. Vidaese: processo de visualização exploratória para apoio a estudos experimentais em verificação, validação e teste de software. Tese de Doutoramento, Instituto de
Ciências Matemáticas e de Computação (ICMC-USP), 2006.
G ARCIA , R. E.; H ÖHN , E. N.; BARBOSA , E. F.; M ALDONADO , J. C. An ontology for
controlled experiments on software engineering. In: International Conference on Software
Engineering and Knowledge Engineering (SEKE 2008), Knowledge Systems Institute Graduate
School, 2008, p. 685–690.
G OMÉZ -P ÉREZ , A. Ontological engineering: Theoretical foundations. Tutorial, international
Joint Conference on Artificial Intelligence, 1999.
G RUBER , T. R. Toward principles for the design of ontologies used for knowledge sharing.
International Journal of Human-Computer Studies - Special issue: the role of formal ontology
in the information technology, v. 43, p. 907–928, 1995.
G UARINO , N.; O BERLE , D.; S TAAB , S. Handbook on ontologies, cáp. What is an ontology?
Springer Verlag, p. 201–221, 2009.
H AASE , P.; S TOJANOVIC , L. Consistent evolution of OWL ontologies. In: European Conference on The Semantic Web: Research and Applications, Berlin, Heidelberg: Springer-Verlag,
2005, p. 182–197.
H AKIMPOUR , F.; G EPPERT, A. Resolving semantic heterogeneity in schema integration: an
ontology-based approach. In: Proceedings of the International Conference on Formal Ontology
in Information Systems, New York, NY, USA: ACM, 2001, p. 297–308.
H ALEVY, A. Why your data won’t mix: Semantic heterogeneity. ACM Queue, v. 3, p. 50–58,
2005.
60
Referências Bibliográficas
H ORRIDGE , M. A practical guide to building OWL ontologies using Protégé 4 and CO-ODE
tools. Available at http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial, 2009.
J EDLITSCHKA , A.; C IOLKOWSKI , M.; P FAHL , D. Reporting guidelines for controlled experiments in software engineering. Relatório Técnico, Fraunhofer Institute for Experimental
Software Engineering, Germany, 2007.
J EDLITSCHKA , A.; C IOLKOWSKI , M.; P FAHL , D. Guide to advanced empirical software
engineering, cáp. Reporting Experiments in Software Engineering London: Springer-Verlag, p.
201–228, 2008.
J URISTO , N.; M ORENO , A. M.
2001.
Basics of software engineering experimentation.
Kluwer,
K ITCHENHAM , B. Procedures for performing systematic reviews. Relatório Técnico, Keele
University Joint Technical Report TR/SE-0401, 2004.
K ITCHENHAM , B. The role of replications in empirical software engineering–a word of warning. Empirical Software Engineering, v. 13, n. 2, p. 219–221, 2008.
K ITCHENHAM , B. A.; P FLEEGER , S. L.; P ICKARD , L. M.; J ONES , P. W.; H OAGLIN , D. C.;
E MAM , K. E.; ROSENBERG , J. Preliminary guidelines for empirical research in software
engineering. IEEE Transactions on Software Engineering, v. 28, n. 8, p. 721–734, 2002.
K ITCHENHAM , B. A.; T RAVASSOS , G. H.; VON M AYRHAUSER , A.; N IESSINK , F.; S CH NEIDEWIND , N. F.; S INGER , J.; TAKADA , S.; V EHVILAINEN , R.; YANG , H. Towards an
ontology of software maintenance. Journal of Software Maintenance, v. 11, n. 6, p. 365–389,
1999.
L OPES , V.; T RAVASSOS , G. Knowledge repository structure of an experimental software
engineering environment. In: Simpósio Brasileiro de Engenharia de Software (SBES), 2009, p.
32–42.
M ATOS , P. F.; L OMBARDI , L. O.; PARDO , T. A. S.; C IFERRI , C. D. A.; V IEIRA , M. T. P.;
C IFERRI , R. R. An environment for data analysis in biomedical domain: information extraction
for decision support systems. In: International Conference on Industrial engineering and other
applications of applied intelligent systems - Volume Part I, Berlin, Heidelberg: Springer-Verlag,
2010, p. 306–316.
M ENDONÇA , M. G.; M ALDONADO , J. C.; DE O LIVEIRA , M. C. F.; C ARVER , J.; FABBRI ,
S. C. P. F.; S HULL , F.; T RAVASSOS , G. H.; H OHN , E. N.; BASILI , V. R. A framework for
software engineering experimental replications. In: ICECCS, 2008, p. 203–212.
M ILLER , J. Replicating software engineering experiments: a poisoned chalice or the holy grail.
Information and Software Technology, v. 47, n. 4, p. 233–244, 2005.
61
Referências Bibliográficas
N OY, N. F.; M C G UINNESS , D. L. Ontology development 101: A guide to creating your first
ontology. Relatório Técnico, Stanford University, 2001.
Ontologies - introduction and overview.
P RETORIUS , A. J.
http://www.starlab.vub.ac.be/teaching/Ontologies_Intr_Overv.pdf, 2004.
Disponível em
R AHM , E. Schema matching and mapping, cáp. Towards Large-Scale Schema and Ontology
Matching Springer Publishing Company, Incorporated, p. 3–27, 2011.
R AHM , E.; B ERNSTEIN , P. A survey of approaches to automatic schema matching.
VLDB Journal, v. 10, n. 4, p. 334–350, 2001.
The
S HULL , F.; BASILI , V. R.; C ARVER , J.; M ALDONADO , J. C.; T RAVASSOS , G. H.; M EN DONÇA , M. G.; FABBRI , S. C. P. F. Replicating software engineering experiments: Addressing the tacit knowledge problem.
Engineering (ISESE), 2002, p. 7–16.
In: International Symposium on Empirical Software
S HULL , F.; C ARVER , J.; T RAVASSOS , G. H.; M ALDONADO , J. C.; C ONRADI , R.; BASILI ,
V. R. Replicated studies: building a body of knowledge about software reading techniques.
In: Lecture notes on empirical software engineering, River Edge, NJ, USA: World Scientific
Publishing Co., Inc., p. 39–84, 2003.
S HULL , F.; M ENDONÇA , M. G.; BASILI , V.; C ARVER , J.; M ALDONADO , J. C.; FABBRI , S.;
T RAVASSOS , G. H.; F ERREIRA , M. C. Knowledge-sharing issues in experimental software
engineering. Empirical Software Engineering, v. 9, n. 1-2, p. 111–137, 2004.
S HULL , F. J.; C ARVER , J. C.; V EGAS , S.; J URISTO , N. The role of replications in empirical
software engineering. Empirical Software Engineering, v. 13, n. 2, p. 211–218, 2008.
S HVAIKO , P.; E UZENAT, J. A survey of schema-based matching approaches. Journal on Data
Semantics, v. IV, p. 146–171, 2005.
S HVAIKO , P.; E UZENAT, J. Ontology matching: state of the art and future challenges. Disponível em http://ontologymatching.org/publications.html, 2012.
S INGER , J. Using the APA style guidelines to report experimental results. In: Proceedings of
Workshop on Empirical Studies in Software Maintenance, 1999, p. 71–75.
S IRIN , E.; PARSIA , B.; G RAU , B. C.; K ALYANPUR , A.; K ATZ , Y. Pellet: A practical
OWL-DL reasoner. Web Semantics: Science, Services and Agents on the World Wide Web, v. 5,
n. 2, p. 51–53, 2007.
S JØBERG , D. I. K.; H ANNAY, J. E.; H ANSEN , O.; B Y K AMPENES , V.; K ARAHASANOVIC ,
A.; L IBORG , N.-K.; C. R EKDAL , A. A survey of controlled experiments in software engineering. IEEE Transactions on Software Engineering, v. 31, n. 9, p. 733–753, 2005.
62
Referências Bibliográficas
S TOJANOVIC , L. Methods and tools for ontology evolution. Tese de Doutoramento, University
of Karlsruhe, 2004.
S TOJANOVIC , L.; M AEDCHE , A.; M OTIK , B.; S TOJANOVIC , N. User-driven ontology evolution management. In: International Conference on Knowledge Engineering and Knowledge
Management, London, UK: Springer-Verlag, 2002, p. 285–300.
S TUDER , R.; B ENJAMINS , V. R.; F ENSEL , D. Knowledge engineering: principles and
methods. Data Knowledge Engineering, v. 25, n. 1-2, p. 161–197, 1998.
U SCHOLD , M.; G RUNINGER , M. Ontologies: Principles, methods and applications. Knowledge Engineering Review, v. 11, p. 93–136, 1996.
U SCHOLD , M.; G RUNINGER , M. Ontologies and semantics for seamless connectivity. ACM
SIGMOD Record, v. 33, p. 58–64, 2004.
W3C
W3C Recommendation. OWL Web Ontology Language Structural Specification and
Functional-Style Syntax. Available at http://www.w3.org/TR/owl2-syntax, 2009.
W OHLIN , C.; RUNESON , P.; H ÖST, M.; O HLSSON , M.; R EGNELL , B.; W ESSLÉN , A. Experimentation in software engineering: An introduction. Boston, USA: Kluwer Academic
Publishers, 2000.
63
Download

Empacotamento de experimentos controlados em engenharia de