• No results found

3. Metode og datamateriale

3.1 Hva og hvorfor

Na literatura, são encontrados trabalhos que sugerem a utilização da ontologia para o apoio às atividades de desenvolvimento de software. As ontologias desenvolvidas no domínio de ES geralmente são aplicadas com a finalidade de solucionar problemas decorrentes da existência de ambigüidade durante o processo de desenvolvimento de software.

A proposta desenvolvida em [TAL08] utiliza uma ontologia de componentes de software. O autor relata a necessidade de modificação dos dados do projeto periodicamente, com a finalidade de representar o progresso e alterações no desenvolvimento do projeto, mudança nos requisitos, adição de funcionalidades, melhorias incrementais e re-configuração. A ontologia é gerada com a finalidade de solucionar o problema da dificuldade de compreensão dos serviços de um componente, sua utilização e suas pré-condições e pós-condições operacionais. O autor prevê a criação de uma ontologia que envolve o conhecimento genérico de componentes de software em ES e a modelagem de sub-ontologias que expressam as necessidades específicas do projeto. Para criação da ontologia, a abordagem sugere o framework Jena [JEN10] e o formato OWL para representar o conhecimento.

O trabalho de Wongthongthaml et al. [WON07] apresenta uma comparação entre a modelagem de ontologias e o modelo de orientação a objetos (UML). A proposta retrata a transformação de um conjunto de conceitos de ES em uma ontologia no domínio de ES. Em cada projeto, haverá dados particulares modelados na ontologia. Toda a equipe de desenvolvimento pode, através da ontologia, consultar a semântica dos dados do projeto, e através deste conhecimento modelado, levantar questões de debate, analisar problemas, propor revisões ou novas soluções de software. O autor propõe a geração de uma ontologia através da similaridade do conceito de classes e suas relações existentes em diagramas de classes. A abordagem apresenta notações gráficas para representar uma ontologia.

Em outro trabalho publicado por Wongthongthaml et al. [WON06], a utilização de ontologias é apresentada com a finalidade de capturar e organizar o conhecimento de um determinado domínio, e facilitar a comunicação em um projeto de ES. As informações mapeadas em conceitos e relacionamentos da ontologia restringem as informações, possibilitando a utilização e manutenção do conhecimento sobre o projeto. O autor propõe novamente uma ontologia de ES genérica e uma metodologia de criação de instâncias

com informações específicas do projeto a partir de documentos UML, mas não apresenta um software para automação do processo. Em [WON06] é sugerido como trabalho futuro um processo para obtenção de conhecimento e viabilização da criação de instâncias da ontologia automaticamente, a partir dos dados contidos nos documentos de software.

O trabalho apresentado por Nicola et al. [NIC09] propõe uma metodologia para construção de ontologias derivada do Processo Unificado (UP), amplamente aceito na comunidade de ES. O autor denominou a metodologia de UPON e justifica a necessidade da utilização de uma metodologia para geração de ontologias para auxiliar a tarefa de modelagem das ontologias executada pelos engenheiros de ontologia. O trabalho apresenta a metodologia de construção de ontologias seguindo os princípios subjacentes e as fases básicas do UP. O UPON apresenta os objetivos de reduzir o tempo e o custo da construção de ontologias, melhorar a qualidade, e disponibilizar a busca semântica das informações para os usuários da ontologia. A captura dos requisitos na metodologia UPON consiste na especificação das necessidades semânticas modeladas na ontologia de acordo com a visão do usuário. A atividade necessita da interação dos analistas (que vão efetuar a modelagem do sistema), dos engenheiros do conhecimento e dos usuários da aplicação. Nicola et al. [NIC09] sugerem as diretrizes a seguir (tarefas dos engenheiros de conhecimento e especialistas de domínio):

1. Determinar o domínio de interesse e as possibilidades de alcance. 2. Definir o objetivo do negócio. Determinar a finalidade comercial, ou

definir cenários com usuários e objetivos e especificar a razão da existência de uma ontologia. O especialista de domínio define a seqüência de atividades no cenário especificado.

3. O especialista de domínio especifica uma terminologia específica da aplicação.

4. Determinar questões conceituais que deverão estar compreendidas na modelagem da ontologia.

5. Modelar os casos de uso relacionados às questões conceituais estabelecidas na tarefa 4.

O engenheiro de ontologias tem como principal contribuição para a metodologia a modelagem conceitual. A análise conceitual consiste no refinamento da ontologia gerada a partir do cumprimento das tarefas anteriormente descritas.

Nicola et al. [NIC09] relatam ainda que, embora existam métodos de aprendizagem de ontologias, ainda persiste a necessidade de validação manual da ontologia construída, o que gera um esforço significativo. Neste sentido, a metodologia proposta por Nicola et al. apóia o engenheiro de ontologias nesta tarefa. O trabalho sugere como posterior etapa a automação da metodologia.

3.1 Considerações sobre os trabalhos relacionados

Neste Capítulo estão descritos quatro trabalhos que utilizam ontologias em ES. O primeiro trabalho [TAL08] necessita da utilização de uma ontologia inicial genérica de componente de software para após instanciar sub-ontologias que modelam o domínio específico. Em [WON06] e [WON07] os autores propõe uma ontologia que modela o domínio de ES e apresentam uma metodologia para instanciação dos conceitos relativos ao projeto a partir de documentos UML. Esta é a grande diferença destes trabalhos com a abordagem proposta nesta dissertação, pois de acordo com os autores, uma ontologia genérica inicial sempre é necessária, enquanto que na abordagem deste trabalho (apoiada pela ferramenta OntSoft) a ontologia inicial é gerada, refinada e enriquecida durante a engenharia de requisitos no processo de desenvolvimento de software.

A abordagem apresentada em [NIC09] sugere um processo para construção de ontologias com base no UP. A grande diferença do trabalho de Nicola et al. [NIC09] para a abordagem desenvolvida e descrita nesta dissertação é que o foco deste trabalho está na automação do processo de construção de ontologias inserido no contexto do RUP de desenvolvimento de software. Em contrapartida, Nicola et al. [NIC09] apresentam um processo para construção de ontologias, visando o apoio aos engenheiros de ontologias na tarefa de acelerar a consolidação e avaliação da ontologia gerada automaticamente ou auxiliar a construção de ontologias de domínio úteis e eficazes modeladas manualmente através da utilização de uma metodologia.

Embora existam algumas semelhanças entre os trabalhos apresentados neste Capítulo e a abordagem proposta nesta dissertação, os trabalhos não estão inseridos exatamente no foco desta dissertação. Apesar disto, um acordo entre as abordagens apresentadas nos trabalhos [TAL08] [NIC09] e a abordagem definida nesta dissertação é a utilização da linguagem OWL, recomendada pela W3C, para descrição da ontologia construída.