OntoDiSEN: uma ontologia para apoiar o desenvolvimento distribuı́do de software

Global Software Develoment brought competitive advantages to organizations, but also imposed some drawbacks due to the physical distribution. A critical aspect of this approach is related to communication. In order to provide the same semantic understanding about information exchanged on the environment to all team members, a way to represent these information is needed to minimize the ambiguity. This paper presents OntoDiSEN, an application ontology for a distributed software development environment. The goal of this ontology is support communication among team members, allowing users to have the same understanding about a given piece of information. Resumo. O Desenvolvimento Distribuido de Software (DDS) trouxe vantagens competitivas, mas tambem trouxe novos desafios. Um dos fatores criticos desse tipo de desenvolvimento e a comunicacao. Para que todos os individuos, independente da sua localizacao geografica, possuam a mesma compreensao semântica sobre as informacoes trocadas pelo ambiente, e necessaria uma forma de representar essas informacoes, aumentando a clareza e diminuindo as ambiguidades. Este artigo apresenta a ontologia OntoDiSEN, uma ontologia de aplicacao para um ambiente de DDS. Seu objetivo e auxiliar a comunicacao entre os individuos, possibilitando que as informacoes trocadas no ambiente sejam compreendidas por todos os participantes do trabalho colaborativo. 1. Introducao O Desenvolvimento Distribuido de Software (DDS) e uma forma de desenvolvimento em que equipes atuantes em um mesmo projeto, trabalhando colaborativamente, encontramse distribuidas geograficamente. Entre suas vantagens estao a proximidade aos mercados, a reducao de custos, a distribuicao de recursos em âmbito global e o desenvolvimento continuo [Prikladnicki and Audy 2004]. Entretanto, em contraposicao as vantagens apresentadas, o DDS traz novos desafios, relativos a coordenacao, cooperacao e comunicacao, entre outros fatores como diferencas culturais e temporais. A comunicacao e um fator critico em projetos que envolvem equipes dispersas. Os participantes estao muito menos propensos a comunicacao informal com participantes de outras localidades devido a ausencia de contato face-a-face e conversas de corredor [Mockus and Herbsleb 2001]. Os individuos nem sempre se conhecem pessoalmente, podendo haver falta de confianca em relacao aos demais ou ausencia de predisposicao em ajudar outros membros da equipe, como pode ser observado em [Moe and Smite 2008]. O DiSEN (Distributed Software Engineering Environment) e um ambiente de DDS que tem como objetivo fornecer ferramentas de apoio a comunicacao, a persistencia e a cooperacao entre equipes dispersas. Diversos trabalhos foram desenvolvidos para este ambiente, como pode ser visto em [Huzita et al. 2007]. Dentre esses trabalhos, [Chaves 2009] propos um modelo baseado em contexto para disseminacao de informacoes, com o objetivo de facilitar o compartilhamento automatico de informacoes sobre as interacoes que ocorrem no ambiente. Neste trabalho, o contexto de uma interacao entre um agente e uma aplicacao, com o objetivo de realizar alguma tarefa, e um conjunto de elementos instanciados que sao necessarios para apoiar a execucao daquela tarefa, naquele momento [Vieira 2008]. Durante o desenvolvimento deste modelo, notou-se que, como as mensagens sao enviadas automaticamente pelo ambiente, havia a necessidade de diminuir as possiveis ambiguidades e encontrar maneiras de possibilitar que todos os individuos que recebem a mensagem tenham a mesma compreensao semântica sobre o que foi informado. Neste artigo, portanto, e apresentado o projeto da OntoDiSEN, uma ontologia de aplicacao, voltada para o ambiente DiSEN, cujo objetivo e descrever os conceitos e os elementos contextuais representados e compartilhados pelo modelo de disseminacao de informacoes. Este artigo possui, alem desta, quatro secoes, organizadas da seguinte forma: a Secao 2 apresenta os conceitos relacionados a ontologia; a Secao 3 descreve o ambiente DiSEN e o modelo baseado em contexto de disseminacao de informacoes, para o qual a ontologia foi desenvolvida; a Secao 4 apresenta a ontologia OntoDiSEN; e a Secao 5 discute um cenario de aplicacao e descreve os proximos passos dessa pesquisa. 2. Ontologia O termo ontologia surgiu na Filosofia, para descrever as coisas do mundo real. Nos ultimos anos, conquistou espaco no dominio da computacao em areas como Inteligencia Artificial e Linguistica Computacional. Nessas areas, a definicao mais aceita para o termo foi cunhada por [Gruber 1993], que afirma que ontologia e uma especificacao formal e explicita de uma conceitualizacao. Para o autor, uma conceitualizacao corresponde a uma visao abstrata e simplificada do mundo que se deseja representar. Esta e a definicao utilizada neste artigo, ja que o objetivo da OntoDiSEN consiste em representar formal e explicitamente os conceitos existentes no ambiente DiSEN, oferecendo semântica a esses conceitos e, consequentemente, diminuindo ambiguidades e incompreensoes. Uma ontologia e um conjunto de entidades, tambem denominadas conceitos ou classes, que representam os conceitos do dominio [Noy and McGuiness 2001] e podem ser organizadas hierarquicamente. As entidades possuem propriedades, que correspondem as caracteristicas e atributos que as identificam. Alem disso, essas propriedades podem ter restricoes, para aumentar a precisao da especificacao. Cada entidade possui uma populacao de individuos, que representam as instâncias dos conceitos. Para [Nunes et al. 2007], a motivacao para usar ontologias esta em: compartilhar um entendimento comum sobre a estrutura da informacao, entre pessoas ou agentes computacionais; analisar o conhecimento do dominio; e permitir o uso de mecanismos de inferencia para raciocinar sobre varios contextos. Outra vantagem do uso de ontologias, destacada em [Neto 2006], e descrever um dominio modelando o conhecimento sem qualquer compromisso com a implementacao de um sistema de software. 3. Ambiente DiSEN O DiSEN e um ambiente que visa disponibilizar ferramentas de apoio a persistencia e manipulacao de informacoes e a comunicacao e cooperacao entre individuos de equipes de desenvolvimento geograficamente dispersas [Huzita et al. 2007]. No contexto deste ambiente, um modelo baseado em contexto para disseminacao de informacoes foi proposto por [Chaves 2009]. Este modelo, denominado DiSEN-CSE (DiSEN-Context Sensitive Environment), tem como objetivo aumentar a percepcao dos membros das equipes sobre acoes que ocorrem no ambiente e, de acordo com o contexto que envolve essas acoes e os individuos influenciados por ela, compartilha-las automaticamente. As informacoes sobre a construcao dos objetos de colaboracao produzidas por equipes distantes, podem apresentar ambiguidades ou falta de clareza, o que pode provocar falhas ou incertezas no desenvolvimento do software. A solucao proposta por [Chaves 2009] foi incluir no DiSEN-CSE um elemento responsavel pela representacao das informacoes, que baseia-se em um modelo ontologico para promover a disseminacao do contexto de forma uniforme e padrao. O objetivo e que, mesmo com entidades receptoras diferentes, a compreensao semântica seja a mesma.