Knowledge Repository Structure of an Experimental Software ...

2 downloads 86 Views 436KB Size Report
ambiente para experimentação em Engenharia de Software (eSEE. – experimental ... estudo a ser conduzido, ou seja, atividades do processo e artefatos ...
2009 XXIII Brazilian Symposium on Software Engineering

Knowledge Repository Structure of an Experimental Software Engineering Environment Vitor Pires Lopes, Guilherme Horta Travassos Programa de Engenharia de Sistemas e Computação COPPE/UFRJ Rio de Janeiro, Brasil {vitorlopes, ght}@cos.ufrj.br engenheiros de software para as atividades do processo de experimentação a partir de uma infra-estrutura computadorizada pode trazer benefícios. Experiências anteriores para prover apoio computadorizado à experimentação em Engenharia de Software foram realizadas. Em [4] é apresentado um ambiente de apoio a experimentação, denominado Ginger2. Este ambiente foi construído de forma a implementar o framework CAESE (Computer-Aided Empirical Software Engineering). Os fundamentos do CAESE são semelhantes aos princípios do framework CASE (Computer-Aided Software Engineering) [5]: estabelecer um ambiente com um conjunto de ferramentas integradas para apoiar o ciclo de vida de estudos experimentais em Engenharia de Software. O CAESE estabelece um processo de experimentação contemplando as seguintes atividades: (1) análise de necessidades, que envolve a descrição do problema, definição do objetivo e hipóteses; (2) design do experimento, na qual o pesquisador decide quais ferramentas serão utilizadas, quais serão os participantes e quais métodos de análise serão abordados; (3) experimentação, na qual o estudo é efetivamente executado e os dados são coletados; (4) análise dos dados; (5) empacotamento, que compila em um “pacote” o conhecimento produzido. Embora implemente o framework CAESE, Ginger2 fornece apoio apenas para a execução de estudos in vitro [6], especificamente para as atividades de coleta e análise dados. São fornecidas ao pesquisador ferramentas de gravação de áudio e vídeo, captura de movimentos, analisadores para diversos tipos de dados, entre outros. Outra iniciativa neste sentido é o SESE (Simula Experiment Support Environment), um ambiente web cujo foco está em tornar os resultados dos experimentos em Engenharia de Software generalizáveis e diretamente aplicáveis na indústria [7]. Para atingir este objetivo, o SESE foi projetado de modo que os estudos experimentais em Engenharia de Software se aproximem de estudos reais, sendo realizados em cenários realísticos com participantes profissionais na área, e não apenas estudantes. O SESE apóia a execução de um processo de experimentação pré-definido, que engloba as seguintes atividades: (1) definição do experimento, que envolve preparar artefatos como questionários, ferramentas, descrições de atividades, arquivos e outros; (2) definição de participantes e atribuição a tratamentos; (3) execução do experimento por cada

Resumo-A execução de estudos experimentais em Engenharia de Software consome tempo e produz grande volume de informação e conhecimento, cuja gestão é complexa. Conseqüentemente, é importante ter uma infra-estrutura computadorizada para apoiar a execução do estudo experimental. Esta infra-estrutura deve prover mecanismos para representar e gerenciar eficientemente o conhecimento sobre experimentação. Neste artigo nós discutimos a construção da estrutura do repositório de conhecimento de um ambiente para experimentação em Engenharia de Software (eSEE – experimental Software Engineering Environment) – uma infraestrutura capaz de instanciar ambientes de Engenharia de Software para apoiar a condução do processo de experimentação em Engenharia de Software. Palavras-chave-Engenharia de Software Experimental; Repositório de Conhecimento; Glossário; Ontologia Abstract—Experimental studies execution in Software Engineering is time consuming and produces great amount of information and knowledge with complex management. Hence, it is important to have a computerized infrastructure to support the experimental study execution. This infrastructure should provide efficient knowledge representation and management mechanisms regarding Experimentation. In this paper we discuss the knowledge repository structure of an experimentation environment in Software Engineering (eSEE) – an infrastructure capable of instantiating software engineering environments to manage knowledge about the definition, planning, execution and packaging of experimental studies in software engineering. Keywords-Experimental Software Engineering; Knowledge Repository; Glossary; Ontology

I.

INTRODUÇÃO

Estudos experimentais são úteis para entender as influências dos vários fatores que determinam os efeitos das tecnologias e métodos. No contexto de Engenharia de Software, a adoção de experimentação como forma de gerar evidência é crucial no cenário de pesquisa atual, no qual grande parte das decisões ainda se baseia em opiniões pessoais e crendices, e não em dados objetivos [1]. Segundo [2], a experimentação provê de forma sistemática, disciplinada e controlada a avaliação de processos e atividades humanas. Entretanto, executar um estudo experimental, especialmente em Engenharia de Software, não é trivial, consome tempo e recursos, gera um grande volume de informação e conhecimento cujo gerenciamento é complexo [3]. Portanto, oferecer apoio aos

978-0-7695-3844-0/09 $25.00 © 2009 IEEE DOI 10.1109/SBES.2009.12

32

participante, envolvendo a distribuição dos artefatos e registro de início e fim de cada execução; (4) monitoramento do experimento, para garantir que esteja sendo executado corretamente; (5) coleta de resultados. É possível observar que as experiências supracitadas trazem contribuições no contexto em que são aplicadas. Entretanto, Ginger2 e SESE possuem duas restrições: (1) pré-estabelecem um processo de experimentação que não pode ser ajustado pelo pesquisador frente às necessidades do estudo a ser conduzido, ou seja, atividades do processo e artefatos consumidos/produzidos não podem ser alterados; (2) não contemplam as especificidades de diferentes tipos de estudos experimentais, tais como pesquisas de opinião (survey), pesquisa-ação e estudos de caso. Conseqüentemente, estes ambientes não poderiam, a princípio, apoiar experimentação em larga escala em Engenharia de Software. Visando ampliar as possibilidades de utilização e apoiar efetivamente experimentação em larga-escala em Engenharia de Software, foi proposto o ambiente eSEE (experimental Software Engineering Environment) [15]. Este ambiente consiste em uma infra-estrutura computacional baseada em serviços web que provê facilidades para instanciação de ambientes de apoio às atividades de definição, planejamento, execução e empacotamento de estudos em Engenharia de Software. A restrição (1), citada no contexto dos ambientes SESE e Ginger2, é tratada em eSEE através da definição de metamodelos de processo, que podem ser configurados pelo pesquisador a fim de acrescentar ou remover atividades e ferramentas conforme as necessidades do estudo experimental [8]. Para suprir a restrição (2), o eSEE adota uma estrutura conceitual que fornece ao pesquisador subsídios para planejar e executar o estudo conforme suas reais necessidades [9]. Neste sentido, caso o pesquisador decida-se por conduzir um survey [10], o eSEE indica ao pesquisador que o planejamento do estudo deve abordar características específicas de survey, tais como o seu tipo (exploratório, explanatório ou descritivo) e design (cross-sectional ou longitudinal) [11]. Sendo assim, não é exigido do pesquisador conhecer todas as especificidades de um determinado tipo de estudo: o eSEE fornece os detalhes que precisam ser tratados para conduzi-lo. Para fornecer os detalhes de um tipo de estudo, o eSEE utiliza um repositório de conhecimento que contém as características particulares de cada tipo de estudo, além das suas características gerais. A estrutura do repositório está fundamentada na interdependência entre dois mecanismos de representação de conhecimento, que são o glossário de termos (dicionário) de experimentação em Engenharia de Software e modelos conceituais (ontologias). Estes mecanismos são complementares entre si e definem os alicerces para recuperação do conhecimento sobre experimentação no contexto do ambiente eSEE.

Este trabalho descreve o repositório de conhecimento do eSEE, ressaltando sua importância para este ambiente e para pesquisadores experimentalistas. É apresentada a estrutura conceitual do repositório, fornecendo detalhes de como o glossário de termos e os modelos conceituais foram construídos. A fim de avaliar a corretude e a completeza dos modelos constituintes deste repositório, foram executadas inspeções do glossário e dos modelos. O planejamento das inspeções é apresentado e seus resultados são discutidos, destacando a contribuição da avaliação na estruturação do repositório de conhecimento. O artigo está organizado em cinco seções: A primeira compreende esta introdução. A seção dois descreve as características principais do eSEE. A seção três descreve o repositório de conhecimento do eSEE em termos de sua estrutura, apresentando em detalhes o glossário de termos e os modelos conceituais constituintes deste repositório. A seção quatro discorre sobre o processo conduzido para avaliar a estrutura do repositório de conhecimento. A última seção conclui este trabalho. II.

AMBIENTE PARA EXPERIMENTAÇÃO EM ENGENHARIA DE SOFTWARE

O eSEE consiste em uma infra-estrutura computacional capaz de instanciar ambientes para gerenciar o processo de experimentação em Engenharia de Software, incluindo atividades de definição, planejamento, execução e empacotamento de estudos experimentais. A infra-estrutura disponibiliza processos de experimentação, pacotes da experiência, padrões de apresentação de dados, facilidades de gerência de conhecimento, ferramentas e serviços para os diferentes tipos de estudos experimentais identificados. Toda a informação gerada durante o processo da experimentação é empacotada para o uso futuro por pesquisadores. Em [13] realizou-se a elicitação de requisitos a cerca do apoio às atividades de planejamento, execução e empacotamento de estudos experimentais, baseados nos processos de experimentação definidos em [2], [12] e [14]. Dentre os principais requisitos, destacam-se: (1) ter ferramentas integradas de suporte à experimentação tal como em um ambiente de desenvolvimento de software (ADS); (2) ser composto como um sistema web, viabilizando seu uso em diferentes localidades e de forma colaborativa por grupos de pesquisa distintos; (3) utilizar-se de web services; (4) prover facilidades de gestão de conhecimento. A seção a seguir detalha a estrutura conceitual e a arquitetura do eSEE, que viabilizam a implementação do ambiente segundo estes requisitos. A. Estrutura Conceitual do eSEE A estrutura conceitual do eSEE (Figura 1) estabelece um roteiro para instanciação de ambientes [9]. O roteiro especifica pontos de decisão sobre as taxonomias de estudo. Ao decidir-se por realizar um determinado tipo de estudo, o eSEE agrega ao ambiente os conceitos pertinentes ao domínio de conhecimento deste estudo [9]. A estrutura está organizada em três níveis de abstração: o nível meta, que contém o conhecimento geral sobre a

33

seguindo meta-modelos, que agregam conhecimento sobre diferentes tipos de estudos experimentais. Esses modelos são armazenados em um repositório para que sejam interrelacionados por outro componente. O componente de definição de modelos de processo permite ao engenheiro de software formalizar o conhecimento a partir da definição de questões, que envolvem decisões tais como inclusão ou exclusão de ferramentas, papéis e atividades envolvendo o estudo experimental. O modelo resultante é um modelo configurável de processo. Este componente foi projetado para permitir o reuso de outros modelos de processo e conhecimento [8]. O Ambiente de Instanciação (AI) disponibiliza facilidades para apoiar a definição e a instanciação de um ambiente de execução, baseados no processo, documentos e serviços criados pelo macro-componente MC. Neste macrocomponente estão inseridos os componentes de configuração de processo e mapeamento de associações. O primeiro é responsável por analisar o modelo configurável de processo definido no MC, e configurar, de acordo com as respostas dadas pelo pesquisador a cada decisão, um modelo de processo específico para o estudo experimental. O segundo é responsável por criar o mapa de associação do estudo. Este mapa se caracteriza por descrever relações entre as atividades do processo, documentos produzidos e consumidos e os serviços configurados que executarão a atividade. Cada mapa é armazenado em um repositório específico, utilizado pelo AI para instanciar um ambiente de experimentação [8]. O Ambiente de Execução (AE) é responsável pela execução e acompanhamento do processo de experimentação, cujo ambiente fora instanciado pelo macro-

abordagem de pesquisa científica (estudos primário, secundário e terciário). Neste nível, o pesquisador decide qual abordagem deseja adotar no estudo. O nível configurado contém o conhecimento sobre os tipos de estudos segundo a estratégia (pesquisa-ação, survey, estudos de caso, de observação e controlado), método de pesquisa (qualitativo, quantitativo e semi-quantitativo) e ambiente (in vivo, in vitro, in virtuo e in silico) [6]. Por exemplo, quando o pesquisador optar por conduzir um estudo quantitativo, será agregado ao ambiente o conhecimento do domínio de estudos quantitativos [9]. O nível configurado prevê ainda que o pesquisador, após caracterizar o estudo pretendido, configure o processo de acordo com o conhecimento agregado ao ambiente. Para exemplificar esta configuração, considere o exemplo de estudo quantitativo dado anteriormente: um dos conceitos importantes deste domínio é o teste de hipótese. Ao final do roteiro de instanciação, o eSEE deve informar quais são os testes de hipótese existentes e o pesquisador escolherá quais serão executados. O último nível expresso na estrutura conceitual é o nível instanciado, que contém o conhecimento específico para executar o estudo desejado pelo pesquisador [9].

Figura 1-Estrutura conceitual simplificada do eSEE [9]

B. Arquitetura do eSEE A arquitetura do eSEE é composta por três macrocomponentes distribuídos. Esta arquitetura descreve a solução para a modelagem, instanciação e execução do processo de experimentação em Engenharia de Software, disponibilizado em um ambiente que congrega todas as facilidades necessárias para conduzir o estudo. Os componentes distribuídos são: meta-configurador, ambiente de instanciação e ambiente de execução (Figura 2) [17]. O Meta-configurador (MC) contém componentes que tratam de atividades de alto nível de abstração: definição do processo, modelos de documentos e configuração de serviços. Os modelos de processo e documento são definidos

Figura 2-Arquitetura do eSEE [8][17]

34

comum. Freqüentemente, cada grupo de pesquisa adapta conceitos e definições sob suas próprias perspectivas. Isto conduz a divergências entre os pesquisadores, por vezes tornando difícil a comparação entre os resultados dos estudos. Tendo em vista este cenário, a comunidade de pesquisadores do ISER1 (International Software Engineering Research Network) deu início à construção da primeira versão de um glossário de termos que contemplasse os conceitos com sua respectiva definição no domínio de Experimentação em Engenharia de Software. A evolução deste glossário foi então amplamente estimulada pelo grupo ESE, que organizou diversas sessões de avaliação pelos pesquisadores. Dentre as contribuições mais importantes, é possível citar os termos sugeridos durante a reunião de 2007 do ISERN, que reuniu diversos membros desta comunidade; e durante o ESELAW (Experimental Software Engineering Latin American Workshop) de 2007, no qual participaram vários pesquisadores da América Latina, principalmente do Brasil. Com a construção do eSEE e a necessidade de um repositório de conhecimento, o glossário passou a ser utilizado também como um mecanismo de representação de conhecimento dentro deste repositório. A instanciação de ambientes no eSEE considera as características dos estudos experimentais, que estão expressos como termos no glossário. Assim, o glossário passa a normatizar não somente a terminologia utilizada entre os pesquisadores, mas também a terminologia dos estudos dentro do eSEE. O glossário está disponibilizado na web (http://lensese.cos.ufrj.br/wikiese) na forma de um wiki, o que potencializa o uso colaborativo do glossário devido às funcionalidades já incorporadas neste tipo de infra-estrutura.

componente AI. O AE permite o monitoramento, controle e execução de atividades do processo instanciado. Maiores informações sobre a arquitetura eSEE e seus componentes podem ser obtidas em [17] e [8]. III.

REPOSITÓRIO DE CONHECIMENTO DO ESEE

Conforme apresentado na seção 2.1, a estrutura conceitual do eSEE define um roteiro de instanciação do ambiente de experimentação seguindo um conjunto de tomadas de decisão, cada qual abordando um tipo de estudo. A estrutura estabelece o domínio de conhecimento que precisa ser agregado ao ambiente, mas não formaliza os conceitos de cada domínio. Estes conceitos, juntamente com suas propriedades, relacionamentos e restrições devem ser identificados e devidamente representados. Neste sentido, apresentamos a proposta de um repositório de conhecimento, cuja estrutura seja capaz de organizar este conhecimento, tornando-o núcleo de recuperação do conhecimento não somente pelo eSEE, mas também pela comunidade de pesquisadores (Figura 3).

B. Modelos Conceituais do Repositório de Conhecimento do eSEE O glossário de termos do eSEE lista, com o respectivo significado, os termos pertinentes ao domínio de experimentação em Engenharia de Software, contemplando os conceitos que precisam ser considerados na instanciação de um ambiente de experimentação. Entretanto, o glossário não externaliza os relacionamentos entre os conceitos, tampouco propriedades intrínsecas destes. Portanto, para que o ambiente possa utilizar-se dos conceitos expressos no glossário, torna-se necessário estabelecer relacionamentos entre estes conceitos. Um cenário que exemplifica esta necessidade é quando o pesquisador deseja instanciar um ambiente para conduzir um estudo qualitativo. O glossário contém a definição de estudo qualitativo e de outros termos pertinentes a este tipo de estudo, tais como grounded theory [11]. Contudo, como no glossário não está expressa a relação entre os termos “estudo qualitativo” e “grounded theory”, o eSEE não pode inferir que grounded theory pode ser aplicada no contexto de estudos qualitativos. Tendo em vista a necessidade deste conhecimento, foram elaborados e integrados ao repositório

Figura 3-Repositório de conhecimento

A proposta de estrutura do repositório consiste na interação entre dois mecanismos de representação do conhecimento, que são um glossário de termos (dicionário) em experimentação em Engenharia de Software e modelos conceituais (ontologias). O glossário de termos lista os conceitos e o respectivo significado, enquanto que os modelos conceituais expressam os relacionamentos entre esses conceitos, assim como as propriedades dos mesmos. Portanto, ambos são dependentes entre si, uma vez que o glossário não define as relações entre os conceitos da lista e o significado dos conceitos nos modelos conceituais devem estar em sintonia com o glossário. A estrutura conceitual do repositório é discutida a seguir. São abordados em detalhes o glossário de termos e os modelos conceituais. A. Glossário de Termos em Engenharia de Software Experimental No contexto de experimentação em larga-escala, a troca de conhecimento e experiência entre os pesquisadores fica dificultada quando estes não fazem uso de um vocabulário

1

35

http://isern.iese.de/network/ISERN/pub/

do eSEE modelos conceituais que capturam os relacionamentos entre os conceitos do glossário. Modelos conceituais sobre o domínio de experimentação em Engenharia de Software já vêm sendo alvo de construção pela comunidade. Um dos trabalhos para mapear conceitos deste domínio é a Ontologia de Pesquisa Científica [18], criada com o intuito de garantir homogeneidade terminológica dos conceitos envolvidos na pesquisa em Engenharia de Software. Os modelos conceituais do repositório de conhecimento foram elaborados a partir dos modelos em [18], ao qual foram agregados conceitos pertinentes ao glossário e conceitos expressos em referências conhecidas de experimentação em Engenharia de Software, tais como [1], [2] e [11]. Como linguagem de construção dos modelos, foi adotada a linguagem LINGO para ontologias [19]. Esta linguagem consiste num subconjunto de elementos UML que, por ser amplamente utilizada pela comunidade de Engenharia de Software, facilita o entendimento dos modelos. Além disso, como a notação UML é considerada uma linguagem intermediária para construção de ontologias [20], detalhes de formalização da ontologia com linguagens baixo-nível não precisaram ser abordados nesta etapa inicial de construção dos modelos. A Ontologia de Pesquisa Científica foi reescrita utilizando a linguagem LINGO. A construção dos modelos conceituais também envolveu a especificação dos axiomas que formalizam logicamente as relações entre os conceitos. Em função da limitação de espaço deste trabalho, não é viável a exibição de tais axiomas. A seguir serão apresentados alguns dos modelos conceituais constituintes do repositório de conhecimento do eSEE. 1) Ontologia de Pesquisa Científica A Ontologia de Pesquisa Científica engloba conceitos gerais sobre experimentação, contemplando as abordagens

de pesquisa e método científicos. Foram incorporados à ontologia de [18] os conceitos previstos no nível configurado da estrutura conceitual do eSEE: estratégia de estudo, método de pesquisa e tipo de estudo (Figura 4). Adicionalmente, novos conceitos sem relação direta com a infra-estrutura também foram mapeados, tendo em vista que o glossário e as referências selecionadas apresentavam diversos desses conceitos ainda não capturados. Incorporado por agregação ao conceito de pesquisa científica está o conceito abordagem de pesquisa científica. Ligados a este conceito por relação de especialização, estão os conceitos de estudo primário, estudo secundário e estudo terciário. Estudos terciários são recentes em Engenharia de Software e consistem na agregação de resultados de estudos secundários. O conhecimento sobre estratégia de estudo e tipo de estudo, organizado no nível meta da infra-estrutura, foi inserido no contexto do conceito estudo primário. Os conceitos estratégia de estudo e tipo do estudo foram incorporados por composição a estudo primário. Herdados da ontologia de [18] estão os conceitos de abordagem de método científico, relacionado por agregação à pesquisa científica, e método experimental, caracterizado como um tipo de abordagem de método científico. Uma abordagem de pesquisa científica aplica, independente do tipo, o método experimental como forma de gerar evidências, razão pela qual foi estabelecido que uma abordagem de pesquisa científica aplica um método experimental [1]. Os conceitos relacionados à abordagem de método científico foram reorganizados. Permanece relacionado a método experimental o conceito de unidade de estudo, que representa, em diferentes níveis de abstração, o alvo da pesquisa. Em [18], o conceito formulação do objeto estava relacionado como um elemento de método experimental.

Figura 4-Ontologia de Pesquisa Científica do repositório de conhecimento do eSEE

36

Entretanto, o objeto do estudo é um conceito integrante de outro maior, a instrumentação estudo [1]. Sendo assim, foi substituído o relacionamento de método experimental com formulação do objeto pela composição com o conceito instrumentação do estudo. Outro conceito introduzido no contexto de método experimental foi população-alvo do estudo [2], que refere-se à população da qual será obtida a amostra de indivíduos que efetivamente participarão do estudo experimental. O conceito método de pesquisa, referenciado no nível meta da infra-estrutura conceitual do eSEE, foi considerado como parte integrante de método experimental [2]. Não estão mapeados nesta ontologia os vários conceitos associados a estratégia de estudo, método de pesquisa e tipo de estudo. Caso fossem representados, isto acarretaria uma sobrecarga considerável neste modelo, prejudicando a legibilidade e o entendimento dos relacionamentos. Portanto, foram elaborados modelos separados que explicitam o conhecimento específico de cada um desses domínios. Cada modelo é chamado de subontologia porque está inserida no contexto de uma ontologia maior, neste caso a ontologia de pesquisa científica. As subontologias são de Estratégia de Estudo, Método de Pesquisa e Tipo de Estudo. Nas subseções a seguir são apresentadas em maiores detalhes essas subontologias, na mesma ordem em que são consideradas na estrutura conceitual do eSEE. 2) Subontologia de Estratégia de Estudo Na subontologia de estratégia de estudo (Figura 5), uma visão mais específica da ontologia de Pesquisa Científica é apresentada, contemplando mais um nível de conhecimento. Este novo nível representa o conhecimento no contexto do conceito estratégia do estudo.

contexto real, especialmente quando os limites do fenômeno e do contexto não são claros [21]. O conceito estudo controlado consiste em uma estratégia na qual o objetivo é manipular uma ou mais variáveis e controlar as demais a níveis fixos ou determinados. Em um estudo experimental, os participantes são atribuídos a diferentes tratamentos de forma aleatória. O objetivo é manipular uma ou mais variáveis e controlar todas as outras variáveis num valor fixo. O efeito da manipulação das variáveis é, então, medido e, com base nessa medição, análises estatísticas são conduzidas [2]. Demais conceitos introduzidos como estratégias de estudo são pesquisa-ação, e estudo de observação. Em pesquisa-ação objetiva-se resolver uma situação social de um domínio específico do mundo real, através da participação intervencionista e colaborativa de pesquisadores junto aos demais envolvidos no problema. Busca-se reunir a prática e a pesquisa, ação e reflexão para promover melhorias na situação e contribuir para o conhecimento científico [22]. Estudo de observação é uma estratégia que pode se assemelhar às demais, a depender do planejamento do estudo. O investigador não expõe objetos ou participantes a nenhum tratamento. O propósito de um estudo de observação pode ser de caracterizar, definir um baseline e/ou identificar relacionamentos. Os dados podem ser coletados através de observação visual, entrevistas e formulários de coleta de dados, ou pode ainda utilizar dados históricos de um repositório [23]. Os conceitos de cada tipo de estratégia de estudo foram separados em modelos específicos, cada qual constituindo uma subontologia com níveis mais profundos em relação à subontologia de estratégia de estudo. Foram construídas as subontologias de pesquisa-ação, survey, estudo de caso, estudo controlado e estudo de observação. Associados a cada um destes modelos estão as subontologias de documentos. Estes modelos expressam o conhecimento sobre quais conceitos são registrados em cada tipo de artefato do processo de experimentação. Foram concebidas as subontologias de documentos de pesquisa-ação, survey, estudo de caso, estudo de observação e estudo controlado. A subontologia de documentos de survey estabelece, por exemplo, que um dado conceito do domínio de survey é registrado em uma seção específica do documento planejamento de survey. Por limitações de espaço deste trabalho, estes modelos não serão apresentados, mas podem ser visualizados em http://lens.cos.ufrj.br/ontologiaExperimentacao. 3) Subontologia de Método de Pesquisa A subontologia de método de pesquisa (Figura 6) ilustra o conhecimento sobre os tipos de método de pesquisa, a saber: métodos quantitativo, qualitativo e semi-quantitativo. O conceito método quantitativo consiste na representação numérica de observações com propósito de descrever e explicar um fenômeno. A pesquisa quantitativa inicia-se com a coleta de dados, seguida da aplicação de

Figura 5-Subontologia de Estratégia de Estudo

Em [14] foi definida uma classificação taxonômica para estudos primários, que considera, dentre outras perspectivas, a classificação segundo a estratégia de estudo. As seguintes estratégias [14] que foram incluídas como conceitos na subontologia: survey, estudo de caso e estudo controlado. O conceito survey refere-se a uma investigação realizada em retrospecto, quando, por exemplo, uma determinada tecnologia tem sido utilizada durante certo período de tempo [11]. Um survey permite capturar um "retrato instantâneo" da situação atual. Através de questionários ou entrevistas, dados são coletados de uma amostra de pessoas que representam um grupo específico. Estudo de caso é o conceito de uma estratégia que investiga um fenômeno contemporâneo dentro de um

37

vários métodos estatísticos descritivos e de inferência [24]. Uma vantagem desta abordagem é permitir comparações e análises estatísticas [2]. O método qualitativo busca focar na compreensão do fenômeno de pesquisa em seu contexto de ocorrência natural. De um modo geral, as principais técnicas aplicadas são a observação de participantes, entrevistas e análise de artefatos [24]. O método semi-quantitativo procura entender o comportamento de um sistema a partir de relações causais entre as variáveis que o descrevem. É aplicado quando não há conhecimento dos valores numéricos em relações matemáticas que regem as mudanças de um sistema, o que geralmente está ligado ao fato da mudança ser conhecida, mas não o tamanho de seu efeito [25]. Freqüentemente a aplicação do método semiquantitativo é acompanhada da simulação do comportamento a ser observado [26].

manipulá-lo através de um programa de computador. Estudos in silico são aqueles em que, além do objeto e do ambiente a serem estudados, o comportamento dos indivíduos envolvidos também é descrito com modelos computacionais [6].

Figura 7-Subtontologia de Tipo de Estudo

Os conceitos estudo in vivo, in vitro, in virtuo e in silico estão associados a outros conceitos pertinentes ao seu domínio particular. A fim de representar esse conhecimento, foram construídas as subontologias de estudo in vivo, in vitro, in virtuo e in silico. IV.

AVALIAÇÃO DA ESTRUTURA DO REPOSITÓRIO DE CONHECIMENTO DO ESEE

A estrutura conceitual do repositório de conhecimento apresentada constitui uma primeira proposta no sentido de termos um repositório efetivamente integrado ao eSEE. Para que se dê esta integração e mecanismos de recuperação de conhecimento sejam elaborados, esta estrutura precisa ser avaliada à luz de critérios como completeza e corretude do conhecimento contido neste repositório. Portanto, a avaliação do repositório em si envolve uma avaliação específica para o glossário de termos e outra para os modelos conceituais propriamente ditos. A oportunidade para executar estas avaliações surgiu durante a disciplina de Experimentação em Engenharia de Software, ministrada pelo Programa de Engenharia de Sistema e Computação da COPPE/UFRJ. A disciplina foi direcionada para 22 alunos, dentre os quais 18 mestrandos e 4 doutorandos, tendo transcorrido nos meses de outubro, novembro e dezembro de 2008. No contexto da disciplina, a avaliação do glossário foi útil para capacitar os alunos para a avaliação dos modelos, uma vez que para isto é importante que os avaliadores tenham familiaridade com a terminologia da área. A avaliação do glossário e dos modelos foi planejada como uma inspeção, na qual algumas diretrizes foram fornecidas para identificação de discrepâncias em cada artefato. Estas discrepâncias foram então analisadas por pesquisadores do grupo ESE a fim de determinar quais, de fato, representariam defeitos. Nas subseções a seguir são apresentados o planejamento e os resultados de cada inspeção.

Figura 6-Subontologia de Método de Pesquisa

Os conceitos método quantitativo e método qualitativo estão relacionados a conceitos específicos que os descrevem em detalhes. Tais conceitos foram especificados em subontologias distintas, que são: subontologia de método quantitativo e subontologia de método qualitativo. A modelo de método semi-quantitativo ainda não foi construída. 4) Subontologia de Tipo de Estudo A subontologia de tipo de estudo (Figura 7) ilustra os conceitos que representam os tipos de estudo, que são: estudo in vivo, in vitro, in virtuo e in silico [6]. Estudos in vivo são aqueles que envolvem as pessoas em seus próprios ambientes de trabalho. Tais estudos experimentais ocorrem durante o processo de desenvolvimento em circunstâncias reais. Estudos in vitro são aqueles executados e controlados em ambientes tais como laboratórios ou comunidades controladas. Nestes estudos, pesquisadores criam situações próximas às reais em ambientes preparados (“laboratórios”) para observar como os participantes executam uma determinada tarefa [6]. Estudos in virtuo são conduzidos em um ambiente virtual, composto por modelos numéricos que são manipulados por pessoas. O comportamento do modelo é analisado através de simulação. Em estudos experimentais in-virtuo, um modelo computacional representa o objeto em estudo e, em alguns casos, o ambiente onde o estudo experimental é realizado. As pessoas que interpretam os resultados obtidos pela simulação do modelo podem

38

A. Inspeção do glossário de termos A turma foi dividida em equipes de dois a três integrantes. Para subsidiar a inspeção do glossário e dos modelos, cada equipe foi orientada a pesquisar sobre um determinado tipo de estratégia de estudo primário, que são: pesquisa-ação, survey, estudo de caso, estudo controlado e estudo de observação (com foco em métodos qualitativos). A quinta equipe foi orientada a pesquisar sobre estudos que aplicam simulação, dentre os quais se destacam estudos in virtuo e in silico [6]. Foram selecionados aleatoriamente os integrantes de cada equipe, sendo constituídas oito equipes com dois ou três alunos. Para viabilizar a pesquisa, foi disponibilizada aos alunos uma bibliografia básica de leitura obrigatória para todas as equipes. A bibliografia básica foi selecionada para nivelar todos os alunos sobre os conceitos básicos de Experimentação em Engenharia de Software. Adicionalmente, uma bibliografia específica foi fornecida para cada equipe segundo o tema pesquisado. Além disso, cada equipe foi instruída a identificar e ler, obrigatoriamente, duas referências adicionais sobre o tema pesquisado. A identificação por parte da equipe de duas referências distintas é importante para não limitar a leitura dos alunos a apenas referências indicadas pelos pesquisadores envolvidos no planejamento da inspeção reduzindo, assim, possíveis fatores de confusão ao resultado. Diretrizes foram estabelecidas para inspecionar o glossário. Cada equipe foi instruída a avaliá-lo identificando as seguintes oportunidades de melhoria: introdução de novos termos, fornecimento de definição, correção da definição de termos e alteração de nomes. Cada equipe foi orientada a elaborar um documento detalhando quais modificações propôs, ressaltando uma justificativa apropriada para tal alteração e fornecendo a referência bibliográfica que subsidia a modificação.

Após término da inspeção, procedeu-se com a discriminação das discrepâncias apontadas. Foram indicadas 326 discrepâncias, sendo 74 falsos positivos. Duplicatas foram excluídas e o número de defeitos encontrados totalizou 190. A maior parte dos defeitos encontrados diz respeito a novos termos (105 no total), o que denota que o glossário não contemplava conceitos mais específicos relativos aos tipos de estudos experimentais. Outra categoria com quantidade expressiva de defeitos é a de omissão de definição. Um aspecto de grande importância da inspeção reside na identificação de defeitos sobre descrições incorretas ou incompletas. Estes defeitos são muito prejudiciais por interferirem no entendimento do pesquisador a cerca dos defeitos, o que pode impactar negativamente na realização de um estudo. A inspeção totalizou 22 destes defeitos. A tabela 1 sintetiza os resultados alcançados por cada equipe para cada tipo de defeito. Os defeitos identificados foram devidamente corrigidos no glossário. B. Inspeção dos modelos conceituais O objetivo da inspeção do glossário por cada equipe foi de prepará-la para a inspeção dos modelos conceituais, já que todos estariam familiarizados com a terminologia do domínio de experimentação em Engenharia de Software. Além disso, cada equipe obteve conhecimento a cerca de uma estratégia de estudo específica, capacitando-as para a inspeção de modelos conceituais específicos. A inspeção foi organizada como uma tarefa individual. Cada inspetor avaliou as subontologias que expressam o conhecimento sobre o qual foi pesquisado durante a inspeção do glossário de termos. Além disso, cada inspetor avaliou uma das subontologias de método de pesquisa. As equipes de pesquisa-ação, survey e estudo de caso inspecionaram a subontologia de método qualitativo, enquanto as demais avaliaram a subontologia de método quantitativo.

Tabela I- Síntese dos resultados da inspeção do glossário de termos

Número de defeitos identificados após discriminação Omissão de termos

Omissão de definição

Correção de definição

Alteração de nome

Total

Pesquisa-ação 1 Pesquisa-ação 2

11 18

0 1

0 2

0 0

11 21

Survey

13

5

1

0

19

Estudo de Caso 1

15

8

5

0

28

Equipe

Estudo de Caso 2

3

0

1

0

4

Estudo de Observação 1

3

0

0

0

3

Estudo de Observação 2

2

1

2

0

5

Estudo Controlado 1

13

15

5

4

37

Estudo Controlado 2

17

13

4

0

34

Estudos com Simulação

10

14

2

2

28

105

57

22

6

190

Total

39

Na avaliação dos modelos, os inspetores foram orientados a adotar uma perspectiva crítica, de modo que oportunidades de melhoria pudessem ser identificadas e propostas de alteração no modelo fossem elaboradas e devidamente justificadas. A taxonomia de defeitos sugerida foi: omissão de conceitos e propriedades; omissão de descrição de conceitos; descrição incorreta de conceitos; relacionamentos inexistentes entre conceitos; relacionamentos cujo nome (descrição sobre a linha) e cardinalidade estejam ausentes; relacionamentos incorretos entre conceitos. Para cada proposta de alteração do modelo, o participante forneceu uma justificativa e a(s) referência(s) que subsidia(m) a proposta. Após término da inspeção, foi dado início à atividade de discriminação das discrepâncias apontadas. O procedimento para descarte de discrepâncias se deu avaliando dois aspectos: propostas sem referências que subsidiassem a afirmação foram descartadas e, para aquelas que a indicavam, foi analisada a referência em busca da explicação da justificativa informada. Os dados para cada subontologia foram sintetizados na tabela 2, que quantifica os defeitos identificados após discriminação. Os defeitos identificados nas inspeções foram devidamente corrigidos nos modelos conceituais, incorporando novos conceitos, propriedades e relacionamentos. Além disso, os conceitos expressos nos modelos passaram a ter significado mais preciso, fruto da inspeção do glossário, com o qual os modelos conceituais estão diretamente relacionados e, portanto, dependentes semanticamente. O resultado da inspeção dos modelos foi satisfatório. Os defeitos mais importantes do ponto de vista de completeza

(omissão de conceitos, propriedades e relacionamentos) e corretude (descrição incorreta de conceitos) foram identificados em quantidade expressiva, contribuindo para que os modelos alcançassem maturidade claramente maior frente à sua versão inicial. V.

TRABALHOS FUTUROS

Após avaliação da estrutura do repositório, faz-se necessário especificar os requisitos da solução que integra efetivamente o repositório ao eSEE. Mecanismos de gestão do conhecimento podem ser empregados, viabilizando que o repositório atue como o núcleo de recuperação de conhecimento na instanciação de ambientes de experimentação no eSEE. A consulta ao repositório já pode ser realizada pelos pesquisadores por intermédio da interface wiki (http://lens-ese.cos.ufrj.br/wikiese) do glossário, que viabiliza a evolução colaborativa deste artefato. Outro aspecto importante a ser tratado futuramente é o mecanismo que mantêm sincronizados o glossário e os modelos conceituais. Estes devem apresentar os mesmos conceitos e significados expressos no glossário, mantendo assim uma forte dependência semântica. Atualmente a sincronização é realizada manualmente. Entretanto, quando um pesquisador altera a definição de um termo no wiki, ou mesmo adiciona um novo, os modelos conceituais precisam ser atualizados automaticamente para manter a aderência com o glossário. Desta forma, os requisitos da solução que implementa o mecanismo para sincronização automática precisam ser especificados e posteriormente construídos.

Tabela II- Síntese do resultado (número de defeitos) da inspeção dos modelos conceituais

40

VI.

[4]

CONCLUSÃO

Este artigo descreveu a estrutura conceitual do repositório de conhecimento do eSEE, um ambiente de apoio à experimentação em larga-escala em Engenharia de Software. Foram apresentados o glossário de termos de experimentação em Engenharia de Software e os modelos conceituais, ambos constituindo a estrutura deste repositório. Além disto, abordou-se a avaliação da estrutura deste repositório, que contemplou a inspeção do glossário de termos de experimentação e dos modelos conceituais. As contribuições esperadas da pesquisa apresentada neste trabalho são:

[5] [6]

[7]

[8]

• Ressaltar a necessidade de uma infra-estrutura computadorizada para apoiar estudos experimentais em Engenharia de Software, que consomem muito tempo e cujo controle é complexo [3];

[9]

• Evidenciar a importância para o eSEE de um repositório de conhecimento, que se propõe a representar o núcleo de recuperação de conhecimento no contexto deste ambiente;

[10]

• Tornar disponível no repositório o glossário de termos avaliado e continuamente melhorado, que pode contribuir para normatizar a terminologia utilizada entre os pesquisadores na área de Experimentação em Engenharia de Software;

[11]

• Viabilizar a recuperação de conhecimento no contexto do eSEE, através da sinergia entre o glossário de termos e as ontologias que constituem este repositório;

[13]

• Promover inspeções de importantes modelos de representação do conhecimento, contribuindo para tornálos mais aderentes ao domínio de Experimentação em Engenharia de Software.

[14]

[12]

[15]

AGRADECIMENTOS [16]

O eSEE está no escopo do projeto Engenharia de Software Experimental e Ciência em Larga Escala - CNPq (475459/2007-5) e FAPERJ – Cientista do Nosso Estado. Os autores reconhecem o apoio de Mike Baker (ISERN) e Sandra Fabbri (UFSCar-ESELAW) nas atividades iniciais para estruturação do Glossário de Termos. O eSEE é fruto do trabalho das pesquisas desenvolvidas pelo Grupo ESE (http://ese.cos.ufrj.br) na COPPE/UFRJ.

[17]

[18]

REFERÊNCIAS [1] [2]

[3]

[19]

Juristo, N., Moreno, A. (2001), “Basics of Software Engineering Experimentation”, Kluwer Academic Press, 1ª edição. Wohlin, C., Runeson, P., Höst, M., Ohlsson, M., Regnell, B., Wesslén (2000) “A., Experimentation in Software Engineering" – An Introduction”, Kluwer Academic Publishers. Shull, F., Carver, J., Travassos, G.H. (2001) “An Empirical Methodology for Introducing Software Processes”, Proceedings of 8th European Software Engineering Conference (ESEC) and 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-9). Viena.

[20]

[21] [22]

41

Torii, K., Matsumoto, K., Nakakoji, K., Takada, S., Shima, K., (1999) “Ginger2: An Environment for Computer-Aided Empirical Software Engineering”, IEEE Transactions on Software Engineering, vol. 25, No. 4, Julho/Agosto. Chen, M., Norman, R.J.,. (1992) “A framework for integrated CASE”, IEEE Software, Março. Travassos, G.H., Barros, M.O., (2003), “Contributions of In Virtuo and In Silico Experiments for the Future of Empirical Studies in Software Engineering”. Proceedings of the WSESE03, Fraunhofer IRB Verlag, Roma. Arisholm, E., Sjøberg, D., Carelius, G.J., (2002) “A Web-based Support Environment for Software Engineering Experiments”, Nordic Journal of Computing, volume 9. Santos, P.S.M., Souza, A.B.O., Lopes, V.P., Travassos, G. H., (2007) “Supporting Experimentation Processes Configuration in Experimental Software Engineering Environments”, Experimental Software Engineering Latin American Workshop. Lopes, V.P., Travassos, G.H. (2008) “Infra-estrutura Conceitual para Ambientes de Experimentação em Engenharia de Software”, Experimental Software Engineering Latin American Workshop (ESELAW'08), Brasil. Mendonça, C.C., (2004) “Uma Infra-estrutura para apoio ao Planejamento e Execucão de Pesquisas de Opinião na Web”, Tese de Mestrado, Programa de Engenharia de Sistemas e Computação PESC/COPPE, Universidade Federal do Rio de Janeiro -UFRJ, Rio de Janeiro, RJ, Brasil. Shull, F., Singer, J., Sjøberg, D. I. K. et al. (2008) “Guide to Empirical Software Engineering”, Springer, ISBN: 978-1-84800-0438. Amaral, E.A.G.G., (2003) “Empacotamento de Experimentos em Engenharia de Software”, Dissertação de Mestrado, Programa de Engenharia de Sistemas e Computação, COPPE/UFRJ, Universidade Federal do Rio de Janeiro. Rio de Janeiro, RJ, Brasil. Chapetta, W.A., Santos, P.S.M., Travassos, G.H. (2005) “Supporting Meta-Description Activities in Experimental Software Engineering Environments”, Experimental Software Engineering Latin American Workshop (ESELAW'05), Brasil. Costa, H.R.; Mian, P.G. Travassos, G.H. (2004) “Estendendo um Modelo de Processo e de Empacotamento de Estudos Experimentais”, Relatório Técnico do Projeto eSEE. Travassos, G. H., Santos, P. S. M., Mian, P. G., Dias Neto A. C., Biolchini, J. (2008) “An Environment to Support Large Scale Experimentation in Software Engineering”, 13th IEEE International Conference on Engineering of Complex Computer Systems. Lopes, V.P., Travassos, G.H. (2008) “Infra-estrutura Conceitual para Ambientes de Experimentação em Engenharia de Software”, Experimental Software Engineering Latin American Workshop (ESELAW'08), Brasil. Dias Neto A.C., Barcelos, R.F., Chapetta, W.A., Santos, P.S.M., Mafra, S.N., Travassos, G.H., (2004) “Infrastructure for SE Experiments Definition and Planning”, Experimental Software Engineering Latin American Workshop (ESELAW'04), Brasil. Biolchini, J.C.A., Mian, P.G., Natali, A.C.C, Conte, T.U, Travassos, G.H. (2006) “Scientific Research Ontology to Support Systematic Review in Software Engineering”, Elsevier, Advanced Engineering Informatics. Falbo, R., Menezes, C., Rocha, A.R. (1998) “Using Ontologies to Improve Knowledge Integration in Software Engineering Environments”, Proceedings of the International Conference on Information Systems Analysis and Synthesis, páginas 1/8-8/8. Fernandez, M., Gomez-Perez A., Juristo, N., (1997) “Methontology: From ontological art towards ontological engineering”, Proceedings of the AAAI97 Spring Symposium Series on Artificial Intelligence. Yin, R. K. (2003) Case Study Research: Design and Methods (3rd edition) London: Sage Santos, P.S.M., Travassos, G. H., (2008) “Colaboração entre Academia e Indústria: oportunidades para Utilização da Pesquisa-

[23]

[24] [25]

[26]

Ação em Engenharia de Software”, Experimental Software Engineering Latin American Workshop (ESELAW'08), Brasil. Daly, J., Eman, K.E., Miller, J., (1997) "Multi-method research in Software Engineering", IEEE Workshop on Empirical Studies Software Maintenance, Bari, Itália, Outubro. Taylor, S.J., Bogdan, R. (1998) “Introduction to Qualitative Research Methods. Wiley”, ISBN 0471168688. Ogborn, J., Miller, R., (1994), “Computational Issues in Modelling”. In Mellar, H.; Bliss, J.; Boohan, R.;Ogborn, J. & Tompsett, C. (eds.) Learning With Arti_cial Worlds: Computer Based Modelling in the Curriculum, (p.117-27). London: The Falmer Press. Widman, L.E. (1989) “Expert system reasoning about dynamic systems by semi-quantitative simulation”. Computer Methods and Program in Biomedicine.

42

Suggest Documents