sexta-feira, 8 de abril de 2011

Ontologias para Metodologias Ágeis

1 - Introdução

Com o aumento da utilização de softwares, muitas empresas que os desenvolvem atualmente se deparam com muitos desafios, principalmente devido à dinamicidade que a tecnologia é renovada, e também a necessidade do cliente de se ter o produto disponível no menor tempo possível, sendo esse um fator de concorrência que pode influenciar no sucesso ou não do produto desenvolvido. Muitas mudanças de requisitos podem ter um impacto grande durante o desenvolvimento de softwares, devido à documentação e controle. Outro fator importante é a necessidade de se extrair diversos tipos informações, podendo até serem simples ou até mesmo complexas, durante todo do clico de vida de sua construção. A utilização de ontologias para metodologias ágeis pode ser uma maneira interessante de se extrair informações e ajudar a gerenciar processos de desenvolvimento.

2- Metodologias Ágeis

De acordo com [1], é necessário que os processos de construção de software sejam mais flexíveis e adaptativos para uma determinada realidade, principalmente no que tange a pequenas e médias empresas. A exigência de uma grande variedade de documentos e controles pode tornar o desenvolvimento de sistemas oneroso, tendo como conseqüência o abandono de metodologias dentro das empresas. As metodologias ágeis surgem como uma alternativa a esse problema, dando a possibilidade de se gerir todas as etapas do desenvolvimento de softwares com mais agilidade.

Ainda conforme [2], as metodologias ágeis desde seu surgimento tem tido uma enorme aceitação entre os gestores e colaboradores do segmento de TI, confirmando então seu sucesso atualmente.

3 – Ontologias

De acordo com [3], ontologia surgiu na filosofia através de Aristóteles, e define um domínio de conhecimento genérico, utilizado para especificar o que existe e o que se pode dizer sobre o mundo.

Ainda, [3] define que ontologias em ciências da computação representam a aquisição e formalização do conhecimento de uma forma semi-estruturada, e são utilizadas para definir a especificação formal do conhecimento.

Para manipular e definir ontologias é recomendado à utilização de linguagens e padrões específicas para esse fim, tais como:

  • OWL: Web Ontology Language;
  • KIF: Knowledge Interchange;
  • RDF:Resource Definition;

4- Ontologia para Metodologias Ágeis.

É possível verificar a utilização de ontologias para metodologias ágeis através do trabalho realizado por [4]. Foi desenvolvida uma ferramenta denominada pelo autor de XPO (Extreme Programming Ontology). Seu trabalho teve como objetivo o desenvolvimento de um modelo formal especificando os principais conceitos da metodologia Extreme Programming, a fim de formar uma base sólida de dados para extração de informação sobre a atividade dos desenvolvedores e também sobre o andamento do projeto como um todo.

Inicialmente foram definidos os conceitos mais gerais, e depois foram especializando-os, através das definições das suas classes (função organizacional do produto e suas fases), até que se obteve a classe do domínio completo. Em seguida foram agrupados os termos mais importantes, reunindo em três conjuntos conceituais, formando os principais componentes da ferramenta, sendo elas:

  • Organizational Role
  • Phase
  • Product

Figura 1: Organização XPO

4.1 Aplicando Ontologia

Segundo [4], foi utilizado RDF (Resource Definition) para gerar metadados de informações. Com isso foi criado uma base com história de usuários utilizando o padrão RDF, sendo possível então consultar informações através de um sistema de representação de conhecimento (KRS).

Na figura 2 é possível visualizar um trecho do código

Figura 2 – Metadados de histórias de clientes.

Abaixo, na figura 3 segue a extração das informações através submissão do arquivo mostrado na figura 2, em um sistema KRS (Knowledge Representation System)

Figura 3- Sistema de Representação do Conhecimento (KRS).

Com isso foi possível observar informações referente a estatística do desenvolvedor, sendo que de acordo com o metadado submetido pode-se observar que as informações foram passadas de uma forma um tanto genérica, cabendo ao KRS organizá-las e apresentar de uma forma compreensível.

5 – Conclusão

Nesse trabalho foi possível mostrar a utilização de ontologias para metodologias ágeis, identificando seus benefícios, sua aplicação, através da extração de informações pertinentes ao processo de desenvolvimento de softwares.

Foi possível ainda identificar que é um campo amplo de pesquisa, pouco explorado e que pode ser muito bem aplicado para auxiliar as empresas a automatizar seus processos.

Referências

[1] Hildenbrand, T.; Geisser, M.; Kude, T.; Bruch, D.; Acker, T.; , "Agile Methodologies for Distributed Collaborative Development of Enterprise Applications," Complex, Intelligent and Software Intensive Systems, 2008. CISIS 2008. International Conference on , vol., no., pp.540-545, 4-7 March 2008.

[2] Abad, Z.S.H.; Sadi, M.H.; Ramsin, R.; , "Towards Tool Support for Situational Engineering of Agile Methodologies," Software Engineering Conference (APSEC), 2010 17th Asia Pacific , vol., no., pp.326-335.

[3] NOLL, R. P. “Rastreabilidade ontológica sobre o processo unificado”. Dissertação de Mestrado, Programa de Pós-Graduação em Ciência da Computação, PUCRS,

2007, 132p.

[4] Ceravolo, P.; Damiani, E.; Marchesi, M.; Pinna, S.; Zavatarelli, F.; “A Ontology-based Process Modelling for XP”, 2003.

[5] “Agile Manifest” em: http://agilemanifesto.org/