Você está na página 1de 5

SEMINRIO DE PESQUISA EM ONTOLOGIA NO BRASIL

Agosto 2008 Universidade Federal Fluminense Departamento de Cincia da Informao Niteri Rio de Janeiro Brasil

OWLtoAspectJ: Uma Ferramenta para Transformao de Regras Conceituais de Domnio em Aspectos


Jaguaraci Batista Silva (PPGEEC/ITA, jaguaracisilva@gmail.com)

OWLtoAspectJ: A Tool for Transformation from Conceptual Rules of Domain to Aspects


Resumo. Os axiomas so regras ou afirmaes da verdade sobre conceitos e a sua criao imprescindvel para realizar inferncias em uma ontologia. Os axiomas quando gerados para uma linguagem de programao, provocam um alto grau de acoplamento, inviabilizando o reuso das regras em outros modelos. Este trabalho visa separar os axiomas do modelo especfico de plataforma. Foi construda uma ferramenta para transformar os axiomas no formato OWL em aspectos. Assim, as regras de negcio podem ser reutilizadas em outros modelos MDA especficos da plataforma Java de forma automtica. Palavras chave: MDA, OWL, Programao Orientada a Aspectos, Java, Regras de Negcio.

Abstract. The axioms are rules or affirmations of the truth on concepts and its creation is essential to carry through inferences on ontology. The axioms when generated for a programming language provoke one high coupling degree, making impracticable its reuse of the rules in other models. This work aims at to separate the axioms of the platform specific model. A tool was constructed to transform the axioms from OWL format to aspects. Thus, the business rules can be reused in other MDA specific models within the Java platform automatically. Keywords: MDA, OWL, Aspect-Oriented Programming, Java, Business Rules.

1. Introduo
As regras de negcios so semnticas, peculiares e, entre tantos atributos, precisam aderir de forma coesa a um conceito. Dando o sentido a sua existncia. A UML (Unified Modeling Language) [Booch et al, 1999] ou qualquer linguagem de representao de paradigma, no oferece condies de provar formalmente que as regras fazem parte de um domnio conceitual, pois seria necessrio verificar a semntica do modelo e nenhuma dessas linguagens de representao fornece tal grau de formalidade [Freitas, 2003]. A utilizao da programao orientada a aspectos, que priva pela separao de interesses transversais, no garante formalmente que regras conceituais aderem de forma coesa a sua implementao. Alm disso, os axiomas quando gerados para uma linguagem de programao, provocam um alto grau de acoplamento, inviabilizando o reuso das regras em outros modelos. Para resolver este problema, criou-se a ferramenta OWLtoAspectJ que priva pela gerao automtica de aspectos a partir de modelos MDA (Model-Driven

Architecture) [Miller, 2003] independente de plataforma e que utilizam o perfil ODM (Ontology Definition Metamodel) [OMG, 2003].

2. Material e Mtodos
Para testar a utilizao da ferramenta OWLtoASpectJ foi desenvolvida uma aplicao para o abastecimento de fornos industriais. O processo de desenvolvimento utilizado foi baseado em casos de uso, porm pode ser utilizado qualquer modelo de processo existente (e.g. Rational Unified Process (RUP), Extreme Program (XP) e metodologias geis). Na primeira etapa do processo feita a criao do modelo de domnio conceitual da aplicao, devendo ser encontradas as informaes sobre a definio de classes, seus atributos e relaes e as descries das regras de negcio. A segunda etapa prope o uso da ontologia para formalizar os conceitos do domnio da aplicao. Iniciando-se pelo processo de construo de uma ontologia, baseando-se nas informaes do modelo conceitual da aplicao, que so: a definio de conceitos, seus atributos ou propriedades, as relaes entre os conceitos e os axiomas que iro representar as regras de negcio. Nesta etapa, gerado o arquivo OWL (Ontology Web Language) [W3C, 2008] para que se possa fazer inferncias sobre a satisfao dos conceitos criados para o domnio da aplicao. A identificao das regras de negcio foi o prximo passo. Todos os elementos criados na ontologia puderam ser gerados para a linguagem OWL atravs de um editor de ontologias.
Tabela 1. Exemplo de uma Regra de Negcio Representada no Arquivo OWL.
<owl:Restriction> <owl:someValuesFrom> <owl:Class rdf:ID="Forno"/> </owl:someValuesFrom> <owl:onProperty> <owl:ObjectProperty rdf:ID="#E_carregado_por_Operador "/> <owl:Restriction> <owl:ObjectProperty rdf:about="# E_carregado_por_Operador "> <rdfs:domain rdf:resource="#Forno"/> <rdfs:range rdf:resource="#Operador"/> <owl:inverseOf rdf:resource="#Carrega_Forno"/> </owl:ObjectProperty>

A Tabela 1 apresenta um trecho do arquivo OWL gerado pelo editor de ontologia protg [Protg, 2008]. A gerao do arquivo OWL foi necessria para serem feitas inferncias sobre a satisfao dos conceitos criados na ontologia de domnio usando a ferramenta Racer [Haarslev, 2004]. Para a transformao das regras de negcio no formato OWL (Tabela 1) em aspectos (Tabela 2), foi construda a ferramenta OWLtoAspectJ utilizando-se a linguagem Java [Sun, 2008] e a API Jena [Jena, 2008]. A Figura 2 mostra a ferramenta construda. Ela permite a transformao das regras do modelo conceitual formalizado usando lgica de descries [Silva et al, 2007] para artefatos em aspectos usando a linguagem AspectJ [AspectJ, 2008].

Figura 1. OWLtoAspectJ - Ferramenta Construda para Transformar as Restries de OWL para AspectJ.

A realizao da transformao do modelo PIM no formato OWL para o PSM em AspectJ realizada pela leitura de cada restrio e de acordo com os tipos suportados pela linguagem axiomtica PAL [Noy et al, 2000]. A API (Application Program Interface) Jena utilizada para capturar os dados dos elementos em OWL fornecendo a base para a criao dos aspectos. Tambm foi criada neste trabalho uma padronizao de nomes, com a finalidade de incorporar os elementos da OWL usando a transformao automtica, sem a necessidade de interveno humana. A Tabela 2, mostra a regra de negcio E_carregado_por_Operador transformada para a linguagem AspectJ.
Tabela 2. Regra de Negcio Transformada em AspectJ.
package businessRules; import abastecimento.Operador; public aspect FornoE_carregado_por_Operador { public pointcut Operador() : call(* *.*Forno(..)) && (!(call(* *.getForno(*)) || call(* *.setForno(*))));

before():Operador() { Object obj = thisJoinPoint.getTarget(); if (!(obj instanceof Operador)){ System.out.print("\n Exception Rule: FornoE_carregado_por_Operador"); } } }

A fim de possibilitar a verificao da satisfatibilidade das regras de negcio, foram geradas classes na plataforma Java, utilizando-se dois modelos MDA especficos de plataforma. O primeiro representou os conceitos, atributos e suas relaes e foi gerado automaticamente a partir da ontologia para plataforma Java. Foi utilizado o editor de ontologia Protg [Protg, 2008] para transformar o modelo de domnio para o formato XMI. A ferramenta UML Poseidon [Poseidon, 2008] possibilitou a leitura do modelo UML no formato XMI e o transformou em classes Java. O segundo modelo foi gerado automaticamente atravs ferramenta OWLtoAspectJ representando as regras de negcio na linguagem AspectJ. Aps a transformao do primeiro modelo no formato OWL para a plataforma Java, foram implementados alguns mtodos manualmente, sem as regras de negcio. A Figura 3 apresenta a verificao

da regra de negcio (Tabela 2) utilizando-se a plataforma Eclipse [AspectJ, 2008] durante a execuo da aplicao de abastecimento de fornos industriais.

Figura 3. Validao das Regras de Negcio em Tempo de Execuo.

Resultados
A criao automtica dos aspectos possibilitou, alm de separar as regras dos modelos especficos de plataforma, uma diminuio no tempo de desenvolvimento. Com a utilizao dos aspectos, torna-se desnecessrio escrever o cdigo para as regras de negcio em todo os mtodos das classes pertinentes. Atravs dos pontos de combinao [Chaves, 2005], as regras encontram dinamicamente quais os mtodos devem ser checados, assim, podem ser capturados vrios mtodos em uma nica regra. Com a utilizao da ferramenta OWLtoAspectJ, o processo de gerao automtica garante a semntica da relao entre as regras de negcio e os conceitos do domnio. Alm disso, as regras geradas usando a linguagem AspectJ [AspectJ, 2008] podem ser reutilizadas em outras plataformas que utilizam a linguagem Java [Soares et al, 2002].

Concluso
A utilizao da ontologia neste trabalho forneceu uma capacidade de verificao formal de um modelo MDA independente de plataforma e a base para criao de um modelo PSM para as regras de negcio. Separando-as do modelo de implementao, possibilita-se a sua reutilizao em outros modelos especficos de plataforma. Muitas pesquisas encontradas na literatura utilizam as aproximaes entre MDA (ModelDriven Architecture) e ontologias [Djuric et al, 2004] ou MDA e AOP (Aspect-Oriented Programming) [Dhondt et al, 2008]. Esse trabalho utilizou a construo de aspectos a partir dos modelos conceituais formalizados utilizando lgica de descries [Horrocks et al, 1999]. Foi possvel utilizar todas as tecnologias emergentes que tratam a separao de interesses, sejam de plataformas, regras de negcio ou requisitos nofuncionais de forma indita. Alm disso, realiza uma aproximao com a indstria, por apresentar uma soluo com base em tcnicas e mtodos bastante conhecidos.

Referncias
AspectJ. AspectJ Java Aspect-Oriented Programming. http://www.eclipse.org/ajdt/. Acessado em Abril de 2008. Booch, G., Jacobson, I., Rumbaugh, J. (1999). Unified Modeling Language Users Guide. Addison-Wesley.

Chavez, C.V.G. (2004). Um enfoque baseado em modelos para o design orientado a aspectos. Tese de doutorado, Pontifcia Universidade Catlica do Rio de Janeiro, p.73-90. Dhondt, M., Streten, R.V.D. Programme Inria Equipes Associes. Acessado em: http://jacquard.lifl.fr/CALA/CALA2007.html, abril de 2008. Djuric, D. Gasevic, D. Devedzic, V.. MDA-Based Ontology Infrastructure. Internacional Conference on Web Engineering, Munich, Alemanha, 2004. Freitas, F. Ontologias e Websemntica. IV ENIA Encontro Nacional de Inteligncia Artificial, Campinas, Minicurso. In Anais do XXIII Congresso da Sociedade Brasileira de Computao, 52 p, 2003. Haarslev, V., Muller, R.. Racers User Guide and Reference Manual. Verso 1.7.19. 2004. Horrocks, I., Sattler, U., Tobies, S.. Reasoning with Individuals for the Description Logics SHIQ. Proc. of the 17th Int. Conf. on Automated Deduction (CADE 2000), volume 1831 of Lecture Notes in Computer Science, pages 482-496. Springer, 2000. Jena. A Semantic Web Framework for Java. http://jena.sourceforge.net/. Acessado em Abril de 2008. Laddad, R.. AspectJ in Action, Practical Aspect-Oriented Programming. Manning, ISBN 1-930110-93-6. 2003. Miller, J., Mukerji, J. MDA Guide Version 1.0, http://www.omg.org/mda/mda_files/MDA_Guide_Version1-0.pdf, Acessado em Abril de 2008. Noy, N., Fergerson, R., Musen., M.. The knowledge model of Protege-2000: Combining interoperability and flexibility. 2th International Conference on Knowledge Engineering and Knowledge Management, Frana, 2000. OMG. Object Management Group. Ontology Definition Metamodel. Third Revised Submission to OMG/ RFP ad/2003-03-40. 2003. Protg. Ontology Editor and knowledge-base http://protege.stanford.edu/. Acessado em Abril de 2008. framework.

Silva, J.B., Pezzin J.. The formal verification of an applications conceptual models using MDA and OWL. World Congress on Engineering and Computer Science (WCECS 2007). San Francisco, 2007. Soares, S. Borba, P. Programao Orientada a Aspectos em Java. VI Simpsio Brasileiro de Linguagens de Programao, Rio de Janeiro, 2002. Sun. Sun Microsystems. Java Technology. http://www.java.sun.com. Acessado em Abril de 2008. W3C. World Wide Web Consortium (2008). OWL Web Ontology Language Guide. http://www.w3.org/TR/owl-guide/. Abril.