Anda di halaman 1dari 6

SEMINRIO DE PESQUISA EM ONTOLOGIA NO BRASIL

11 E 12 de Julho Universidade Federal Fluminense Departamento de Cincia da Informao Niteri Rio de Janeiro Brasil Esta comunicao est sendo submetida sob o Tema 3 Aplicaes com enfoque em Ontologias

Extenses da especificao RAS para Busca de Componentes de Software Apoiada por Ontologia
Mauro Morais de Miranda (DPI/UFV - mauromm@dpi.ufv.br) Alcione de Paiva Oliveira (DPI/UFV - alcione@gmail.com) Jos Luis Braga (DPI/UFV - zeluisbraga@ufv.br) Vladimir Oliveira Di Iorio (DPI/UFV - vladimir@dpi.ufv.br) Resumo: o processo de desenvolvimento de software baseado em componentes modifica sensivelmente
o processo de desenvolvimento tradicional, introduzindo novas caractersticas. O objetivo principal da utilizao de componentes de software o incremento do reuso. Para atingir este objetivo de forma mais eficaz, pesquisas tm sido realizadas para desenvolver repositrios, que possam auxiliar na busca de componentes de software com a finalidade de aumentar a reusabilidade e a produtividade de desenvolvedores de software.Este artigo apresenta uma proposta para extenso da especificao RAS por meio de profiles para incorporar uma ontologia de componentes com o objetivo de favorecer a busca de componentes armazenados em um repositrio. Palavras-chave: componentes de software. RAS. Ontologia. Repositrio de componentes. Abstract: the Component-Based Development process significantly alters the traditional process of development, introducing new features. The main objective of the use of software components is the increase in reuse. To achieve this goal more effectively, research has been undertaken to develop repositories, which could help in the search of software components in order to increase the reusability and productivity of developers of software. This article presents a proposal for extending the RAS specification through profiles to incorporate an ontology of components in order to facilitate the search for components stored in a repository. Keywords: software components. RAS. Ontology. Repository of components.

Extenses da especificao RAS para Busca de Componentes de Software Apoiada por Ontologia
Resumo: o processo de desenvolvimento de software baseado em componentes modifica sensivelmente
o processo de desenvolvimento tradicional, introduzindo novas caractersticas. O objetivo principal da utilizao de componentes de software o incremento do reuso. Para atingir este objetivo de forma mais eficaz, pesquisas tm sido realizadas para desenvolver repositrios, que possam auxiliar na busca de componentes de software com a finalidade de aumentar a reusabilidade e a produtividade de desenvolvedores de software.Este artigo apresenta uma proposta para extenso da especificao RAS por meio de profiles para incorporar uma ontologia de componentes com o objetivo de favorecer a busca de componentes armazenados em um repositrio. Palavras-chave: componentes de software. RAS. Ontologia. Repositrio de componentes. Abstract: the Component-Based Development process significantly alters the traditional process of development, introducing new features. The main objective of the use of software components is the increase in reuse. To achieve this goal more effectively, research has been undertaken to develop repositories, which could help in the search of software components in order to increase the reusability and productivity of developers of software. This article presents a proposal for extending the RAS specification through profiles to incorporate an ontology of components in order to facilitate the search for components stored in a repository. Keywords: software components. RAS. Ontology. Repository of components.

1. Introduo
Para Sametinger (1997), componentes de software so artefatos autocontidos, claramente identificveis, que descrevem ou realizam uma funo especfica e possuem interfaces claras, documentao apropriada e um grau de reutilizao definido. Esta definio enfatiza a necessidade de uma interface clara e bem definida, o que um aspecto chave para o reuso e para a independncia entre os mdulos de um sistema. Desta forma um componente pode ser reutilizado diversas vezes, em diferentes aplicaes, e pode ser substitudo por outros componentes com as mesmas especificaes de interface. Vrios so os benefcios obtidos pela reutilizao de software. Em [Agresti e Mcgarry, 1990], so salientados os seguintes benefcios relacionados com o uso de componentes: 1) aumento de produtividade no uso de componentes pr-existentes; 2) aumento de confiabilidade por meio do uso de componentes j testados; 3) aumento da consistncia, obtido pelo uso repetido de componentes em vrios lugares; 4) maior facilidade de gerenciamento, visto que usa componentes j compreendidos pelos desenvolvedores; e 5) benefcios obtidos pela padronizao. O processo de desenvolvimento de software baseado em componentes (conhecido pela sigla DBC) modifica sensivelmente o processo de desenvolvimento tradicional, introduzindo novas caractersticas. O foco passa a ser a integrao de componentes, onde questes arquiteturais devem ser consideradas de forma mais rigorosa, requerendo um esforo em requisitos, testes e integrao de componentes. O objetivo principal da utilizao de componentes de software o incremento do reuso. Para atingir este objetivo de forma mais eficaz, pesquisas tm sido realizadas para desenvolver repositrios, que possam auxiliar na busca de componentes de software com a finalidade de aumentar a reusabilidade e a produtividade de desenvolvedores de software. Para que esses repositrios possam ser utilizados de

forma integrada, com troca de informaes entre repositrios preciso que as informaes sobre os componentes sejam armazenadas de forma padronizada. Alinhada com essa idia a indstria de software apoiada pela OMG definiu uma especificao denominada RAS (Reusable Asset Specification) [OMG, 2005], que um conjunto de meta-informaes que descreve um ativo (asset) de software. No entanto, os metadados contidos no ncleo bsico da descrio do RAS, so muito genricos e insuficientes para realizao de pesquisas por meio de mecanismos de busca sofisticados que possam inferir relaes entre componentes. Porm, por meio do uso adequado das ferramentas de extenso descritas no RAS possvel estender o repositrio bsico para oferecer suporte a tais mecanismos. Alm disso, a manuteno das informaes sobre os componentes pode ser realizada de forma automtica, por meio de agentes autnomos guiados por ontologia de modo a auxiliar o processo de classificao do componente no repositrio. Este artigo apresenta uma proposta para extenso do core RAS por meio de profiles para incorporar uma ontologia de componentes com o objetivo de favorecer a busca de componentes armazenados em um repositrio. O artigo est estruturado da seguinte forma: a prxima seo descreve a especificao RAS. A seo 3 apresenta a ontologia desenvolvida para componentes de software. A seo 4 apresenta a proposta de extenso da especificao RAS com o uso dos profiles, para suportar a ontologia. A seo 5 apresenta as concluses e as prximas etapas da pesquisa que est sendo desenvolvida.

2. A especificao RAS
Um componente est inserido dentro de um conjunto mais amplo de elementos, denominado de ativo de software (asset em ingls). Um ativo de software, segundo [EZRAN et al., 1999] qualquer artefato, passvel de reutilizao, produzido em qualquer fase de um processo de desenvolvimento de um sistema computacional, que devem ser utilizados seguindo certas regras de uso, sendo possvel os artefatos possurem algum ponto de customizao. Assim, pode-se, considerar um ativo de software artefatos de documentao, padres de anlise e projeto, normas de codificao, etc. Visando uma melhor organizao e caracterizao dos ativos de software para fins de reuso foi desenvolvido o padro RAS (Reusable Asset Specification), resultante de um esforo da indstria de software apoiada pela OMG (Object Management Group) [OMG, 2005]. O objetivo o de prover um conjunto de informaes para descrio e empacotamento de ativos de software, determinando como ele deve estar estruturado de modo que este ativo possa ser facilmente localizado e utilizado. O RAS dividido em duas grandes categorias: Core RAS e os profiles. O Core RAS o ncleo da especificao, comum a todos os ativos de software. Os profiles so extenses ao Core RAS onde podem ser adicionadas, livremente, novas restries e novos elementos, mas as restries herdadas do Core RAS no podem ser relaxadas nos profiles. Cada ativo de software deve estar associado a um profile e esta informao deve estar presente em seu manifest file. O conjunto de meta-informaes e dos artefatos que compem o ativo de software est organizado em quatro sees: classificao, soluo, uso; ativos relacionados. 2.1 Repositrios de ativos de software Um repositrio de ativos de software um programa que permite o armazenamento, busca e o gerenciamento de ativos de software. Por gerenciamento entende-se o acompanhamento e verificao da obedincia a padres de todo o ciclo de vida de um

ativo. Um repositrio deve ser capaz registrar, alm das informaes sobre um ativo, informaes sobre seu uso. Um repositrio de ativos de software um instrumento importante para a disseminao de ativos e para o sucesso do desenvolvimento baseado em componentes. A partir de uma base de repositrio, implementada de acordo com padres bem definidos de metadados para ativos, possvel projetar e implementar um conjunto de ferramentas de apoio tais como ferramentas de busca, ferramentas de apoio classificao de componentes, plug-ins para ambientes de desenvolvimento, etc. O padro RAS til tanto para a descrio de componentes como guia para a implementao de repositrios de componentes baseados na especificao. Repositrios compatveis com a especificao podem trocar informaes, ampliando a visibilidade de um componente e ampliando a possibilidade de sua reutilizao. Alm disso, uma extenso adequada do padro RAS pode facilitar o projeto de ferramentas de apoio que ampliem a possibilidade de reuso dos ativos armazenados.

3. Ontologia

Figura 1 segmento da ontologia de componentes desenvolvida. Uma ontologia, dentro da Cincia da Computao, segundo Moreira et al. (2004) um sistema de conceitos expresso em uma linguagem de representao de conhecimento. Este sistema captura o significado de um conceito por meio de seu posicionamento dentro do sistema. Ontologias so utilizadas para diversos fins, tais como: representao, reuso, compartilhamento, aquisio e integrao de conhecimento; processamento de linguagem natural; traduo automtica; comunicao de informao entre sistemas, agentes, empresas ou pessoas, recuperao de informao e especificao de software [Moreira et al. 2004]. No caso especfico deste trabalho a ontologia ser utilizada pelos agentes de busca para ampliar a consulta e por agentes de classificao para realizar a insero do componente no repositrio. Existem vrias linguagens para a representao de ontologias, sendo que atualmente destaca-se a OWL (Web Ontology Language) [Smith et al., 2004] que uma

linguagem baseada nas linguagens OIL (Ontology Interchange Language) e DAML (DARPA agent markup language) e a linguagem recomendada pela W3C1. Por ser um padro, existem diversas ferramentas para auxiliar a criao de ontologias no formato OWL. No caso deste trabalho a ferramenta utilizada foi o software Protg (verso 3.3.1). A Figura 1 mostra um segmento da ontologia de componentes desenvolvida. A ontologia apresenta um carter multi-facetado a exemplo da proposta de Prieto-Daz (1991) apud [Lucrdio et al, 2004]. Isto significa que o componente pode ser classificado sob diferentes ngulos. Por exemplo, um componente para algoritmo gentico pode ser classificado tanto como um componente da rea de inteligncia artificial como um componente da rea de otimizao. Um dos benefcios de se usar padro como OWL poder contar com diversos mecanismos de inferncia sobre lgica de descries para raciocinar sobre a ontologia. O Protg fornece uma API para comunicar com alguns desses raciocinadores. Neste trabalho foi utilizado o raciocinador Pellet [Sirin et al, 2007] por ser de cdigo aberto e escrito em Java, o que permite uma fcil integrao com o sistema desenvolvido. Pellet um raciocinador para lgica de descries baseado em algoritmos de tableaux, e suporta toda a expressividade da OWL DL. A ontologia criada foi registrada de duas formas: em OWL e em tabelas de um banco relacional. Com isso espera-se unir os benefcios do uso de raciocinadores sobre a OWL com as facilidades de consulta dos bancos relacionais.

4. Extenso do RAS
O RAS possui algumas limitaes na sua capacidade de descrever os ativos de software. Primeiramente, o Default Component Profile organiza os artefatos dos ativos apenas considerando o processo de desenvolvimento UML Components [Cheesman et al. 2001]. Outra deficincia do Default Component Profile no permitir o reuso de uma descrio de interface por mais de uma descrio de componente. Alm disto, RAS tambm no descreve as interfaces requeridas, propriedades, eventos e excees, que so caractersticas presentes nos principais modelos de componentes. O RAS no prov meios para descrever modelos de negcios, evolues entre verses de um ativo, requisitos no-funcionais e certificao. De forma geral as descries definidas no RAS so genricas e no so suficientes para mecanismos de busca automatizados flexveis. Embora RAS possua tais restries, as mesmas podem ser contornadas com a definio de novos profiles que solucionam as limitaes apresentadas. 4.1 Extenso para uso da ontologia de classificao de componentes Feito o mapeamento da ontologia OWL, foram acrescidas ao modelo RAS as seguintes classes: ClassOntology, ClassSubOntology e AssetClassOntology. A Figura 2 mostra o diagrama de classe da extenso.
Asset
*

AssetClassOntology

0..1 1

ClassOntology

ClassSubOntology

Figura 2 Diagrama de classe da Ontologia. A classe ClassOntology instancia todas as classes da classificao antolgica. A classe ClassSubOntology associa uma classe a todas as suas subclasses da hierarquia de
1 World Wide Web Consortium, consrcio formado por empresas com o objetivo de lanar padres para a Web.

classificao. A classe AssetOntology associa um ativo a todas as classes a que pertence segundo a classificao ontolgica.

5. Concluses
A extenso da especificao RAS, assim como a ontologia descrita neste artigo, fazem parte de uma arquitetura mais ampla que ir ser composta por um agente de catalogao de componentes e por um agente mantenedor da ontologia. O desenvolvimento de plugins para os ambientes de desenvolvimento ser facilitado pelo desenvolvimento de um web service para servir como ponto de acesso. O objetivo geral da arquitetura facilitar o reuso de componentes, por meio do provimento de facilidades de catalogao e busca. Os elementos apresentados neste artigo contribuem para este objetivo e possuem algumas caractersticas importantes em relao a trabalhos correlatos, como fato de se basear em um padro de especificao da OMG para armazenamento de componentes, como o RAS, e por ser implementado na forma de um sistema multi-agente, o que torna o sistema mais modular e com maior escalabilidade.

Referncias
[Agresti e Mcgarry, 1990] Agresti, William and Mcgarry, Frank. (1990). The Minnowbrook On Software Reuse: A Summary Report. In: TRACZ, Will. Software Reuse - Emerging Technology. Los Alamitos, CA: IEEE Computer Society Press. [Cheesman et al. 2001] CHEESMAN, J. and DANIELS, J. UML Components: A simple process for specifying component-based software. Addison-Wesley Ed. 2001. [EZRAN et al. 1999] EZRAN, Michel, et al.. Practical Software Reuse: The Essencial guide. 1999.185 p. [Guerra et al. 2005] Paulo A. C. Guerra, Tiago C. Moronte, Rodrigo T. Tomita, Ceclia M. F. Rubira. Um Modelo Conceitual e uma Terminologia para o Desenvolvimento Baseado em Componentes e Centrado na Arquitetura de Software. WDBC2005 - 5o. Workshop de Desenvolvimento Baseado em Componentes. SBC - Sociedade Brasileira de Computao. Juiz de Fora MG. [Lucrdio et al, 2004] Lucrdio, D., Prado, A. F., Almeida, E. S. (2004). A Survey on Software Components Search and Retrieval. EUROMICRO 2004: 152-159. [Moreira et al, 2004] Moreira, A. ; Alvarenga, L. ; Oliveira, A. P. (2004). Thesaurus and Ontologies: a study over the definitions found in the computer and information science literature, by means of analytical-synthetic method. Knowledge Organization, Alemanha, v. 31, n. 4, p. 231-244. [OMG, 2005] OMG (2005). Reusable Asset Specification, version 2.2. Disponvel online <http://www.omg.org/technology/documents/formal/ras.htm> [Prieto-Daz, 1991] Prieto-Daz, R. (1991) Implementing faceted classification for software reuse. Communications of the ACM, 34(5). Apud [Lucrdio et al, 2004]. [Sirin et al, 2007] Sirin, E., Parsia, B., Grau, B. C., Kalyanpur, A., Katz, Y. (2007). Pellet: A practical OWL-DL reasoner. Journal of Web Semantics, 5(2). [Smith et al, 2004] Smith, M., Welty, C., McGuinness, D. (2004). OWL Web Ontology Language Guide. <http://www.w3.org/TR/owl-guide/> [Sametinger, 1997] Sametinger, J., (1997). Software Engineering with Reusable Components. Springer-Verlag New York, Inc.

Anda mungkin juga menyukai