• Nenhum resultado encontrado

Aplicação Desenvolvida Baseada na Ontologia

No documento Ontologia para teste de desempenho de software (páginas 104-109)

6. APLICAÇÕES DA ONTOLOGIA PROPOSTA

6.5. Aplicação Desenvolvida Baseada na Ontologia

Também foi desenvolvida uma aplicação que utiliza a ontologia proposta, por meio da OWL API [45]. Como os axiomas estão codificados em um arquivo OWL gerado pelo Protégé, a aplicação consulta as informações representadas neste arquivo. Para manipular os axiomas da ontologia, a aplicação Java [55] utiliza a OWL API [45], que é uma biblioteca Java open source para a criação, manipulação e serialização de ontologias OWL [66]. A aplicação permite criar novas instâncias do conceito teste de desempenho, vincular uma instância específica do conceito teste de desempenho com instâncias de ferramentas de teste, atividades, objetivos, métricas, entre outros. Os conceitos e propriedades do domínio representados na ontologia podem ser criados, recuperados e atualizados na aplicação. Além disso, os axiomas relacionados a uma instância específica de teste de desempenho são utilizados pela funcionalidade de geração do plano de teste. Para criar o plano de teste no formato PDF foi utilizada a iText API [30] versão 5.2.1, uma biblioteca open source para manipulação de documentos PDF em Java. A interface gráfica pode ser visualizada na Figura 43, onde uma instância de PerformanceTest está selecionada e suas propriedades estão destacadas na interface.

6.5.1. Utilização da OWL API

Esta seção tem como objetivo explicar e exemplificar como os métodos da OWL API foram utilizados para carregar e manipular uma ontologia OWL. Como exemplo de uso, será demonstrado como carregar uma ontologia de um arquivo, criar um novo indivíduo e adicionar o axioma de que este indivíduo pertence a um conceito da ontologia. A aplicação apresentada utiliza este código para criar instâncias de conceitos como

PerformanceTest, PTActivity e PTTool. A Figura 44 ilustra o código e apresenta uma linha

de comentário antes de cada comando para explicar os métodos utilizados. Estes trechos de código são explicados em maior detalhe a seguir. Para acessar e manipular ontologias com a OWL API é preciso criar um objeto da classe OWLOntologyManager:

OWLOntologyManager manager = OWLManager.createOWLOntologyManager();

Na documentação javadoc da OWL API [45], a classe OWLOntologyManager é dita como responsável por gerenciar um conjunto de ontologias, sendo o ponto principal para criá-las e acessá-las. Este exemplo carrega a ontologia de um arquivo, contudo a OWL API também permite que a ontologia seja carregada a partir da web por meio de um IRI (Internationalized Resource Identifier). Para carregar a ontologia de um arquivo, é preciso possuir uma referência que aponte para a localização de um arquivo OWL:

File file = new File("File Name.owl");

Possuindo os dois objetos criados anteriormente, é possível carregar a ontologia. Na OWL API, a ontologia é representada pela classe OWLOntology, que consiste de um conjunto de axiomas representados pela classe OWLAxiom. O seguinte código inicializa um objeto OWLOntology:

OWLOntology ontology = manager.loadOntologyFromOntologyDocument(file);

Os conceitos, indivíduos, propriedades e axiomas da ontologia podem ser criados ou carregados por métodos disponibilizados pela classe OWLDataFactory. Um objeto do tipo OWLDataFactory é obtido com o seguinte código:

OWLDataFactory factory = manager.getOWLDataFactory();

Cada componente da ontologia é identificado por um IRI, que é formado pela composição do namespace da ontologia com a identificação do componente. O código a seguir cria um IRI para representar uma referência de um indivíduo:

Possuindo o IRI do indivíduo que se deseja criar, é possível criar uma referência para um objeto do tipo OWLNamedIndividual por meio do seguinte trecho de código:

OWLNamedIndividual newInstance = factory.getOWLNamedIndividual(iri);

Assim como cada instância deve possuir um IRI, os conceitos também são identificados por IRI. É preciso criar um IRI para o conceito que o indivíduo pertencerá:

IRI iri_c = IRI.create("Namespace#Concept_Id");

Os conceitos de uma ontologia são representados pela classe OWLClass, como demonstra o código abaixo:

OWLClass owlClass = factory.getOWLClass(iri_c);

O axioma que afirma que um indivíduo pertence a um determinado conceito é representado por um objeto da classe OWLClassAssertionAxiom:

OWLClassAssertionAxiom assertion

= factory.getOWLClassAssertionAxiom (owlClass,newInstance);

Para adicionar o novo axioma na ontologia e salvar as modificações, é preciso executar, os métodos addAxiom e saveOntology da classe OWLOntologyManager:

manager.addAxiom(ontology,assertion);

manager.saveOntology(ontology);

Esta seção apresentou um exemplo de como carregar uma ontologia utilizando a OWL API, como criar um novo indivíduo e adicionar o axioma de que este indivíduo pertence a um determinado conceito da ontologia. A próxima seção deste trabalho explica um exemplo de uso da API utilizada para geração dos planos de teste em PDF.

6.5.2. Exemplo de Uso da iText API

Este trabalho utilizou o iText4 versão 5.2.1 para geração do plano de teste em formato PDF. O iText é uma API desenvolvida em Java para criação e manipulação de documentos PDF. A Figura 45 demonstra um trecho de um plano de teste em PDF gerado contendo as informações referentes à instância do conceito teste de desempenho denominada “Skills Performance Test”.

Figura 45: Plano de teste para a instância de PerformanceTest denominada “Skills Performance Test”.

Para gerar o plano de teste para um indivíduo do tipo teste selecionado, o algoritmo inicia com um objeto da classe OWLIndividual (da OWL API) que representa o teste desejado e executa os seguintes passos:

1) Descobrir todas as propriedades do teste por meio do método getObjectPropertyValues existente na classe OWLIndividual.

2) Para cada propriedade P, escrever a identificação da propriedade P no PDF e cada indivíduo da ontologia relacionado pela propriedade P com o teste em questão.

Visando demonstrar a utilização da iText API, o código ilustrado na Figura 46 cria o arquivo “Test plan.pdf” contendo o parágrafo “Hello World”.

Figura 46: Exemplo de uso da iText para criar um PDF.

Esta seção demonstrou diferentes aplicações baseadas na ontologia proposta. Para o desenvolvimento destas aplicações, foram estudadas tecnologias como, por exemplo, Protégé [62], Pellet [22], Java [55], OWL API [66], SQWRL [47], JUNG [37] e iText [30]. A seção seguinte apresentará as considerações finais desta pesquisa, incluíndo uma comparação das contribuições deste trabalho com os trabalhos relacionados.

No documento Ontologia para teste de desempenho de software (páginas 104-109)

Documentos relacionados