Estudo de Ontologias em Engenharia de Software
Felipe Pinheiro de Souza, Francisco de Assis Zampirolli, Edson Pinheiro Pimentel e Maria das Graças Bruno
Marietto
Um Ambiente de Desenvolvimento de Software (ADS) é um conjunto de ferramentas CASE integradas que apóia todo o ciclo de
vida de software, facilitando a realização de atividades de engenharia de software. Neste resumo, é apresentado o Ambiente de
Desenvolvimento de Software Web Semântico, um ADS que irá utilizar ontologias, inicialmente durante a etapa de requisitos, para
garantir que o conteúdo esteja bem estruturado e para auxiliar na funcionalidade de geração automática de código.
Palavras-chave — Ontologias em Engenharia de Software, Engenharia de Software, Geração Automática de Código e
Documento, XML, MDA.
I. INTRODUÇÃO
N
o desenvolvimento de um software é crucial o suporte de
ferramentas eficientes, pois estas influenciam diretamente
no tempo de desenvolvimento do software, no seu custo e na
qualidade do produto desenvolvido [1]. Apesar disso, essas
ferramentas geralmente são isoladas, não sendo capazes de
compartilhar serviços ou dados. Para atingir seu real potencial
elas precisam estar integradas, pois seu uso individual traz
apenas benefícios em atividades diferentes [2].
Um Ambiente de Desenvolvimento de Software (ADS) é
um conjunto dessas ferramentas de suporte integradas que
apóia todo o ciclo de vida de software, facilitando a realização
de atividades de engenharia de software [1].
Durante o desenvolvimento de um software, muitas
informações são produzidas e requeridas e, muitas vezes, é
essencial estabelecer conexões entre recursos de informação
para se obter o conjunto necessário de informações para apoiar
a realização de alguma atividade [3]. Para desempenhar este
papel podemos usar ontologias.
Uma ontologia define um vocabulário específico usado para
descrever certa realidade, mais um conjunto de decisões
explícitas fixando de forma rigorosa o significado pretendido
para o vocabulário. Então, uma ontologia envolve um
vocabulário de representação que captura os conceitos e
relações em algum domínio e um conjunto de axiomas, que
restringem a sua interpretação [3].
Nos últimos anos, surgiram diversos trabalhos relacionados
a ontologias em diferentes áreas da computação, motivados,
sobretudo, pelo crescente interesse na Web Semântica
(Semantic Web) [4]. Elas são usadas basicamente como uma
forma de representação de conhecimento sobre determinado(s)
elemento(s) de algum contexto.
O Ambiente de Desenvolvimento de Software Web
Semântico tem como objetivo criar e manipular uma base de
dados onde o conteúdo, armazenado em XML, representa
artefatos produzidos no ciclo de vida de desenvolvimento de
software seguindo um padrão de documentação. Este padrão
segue os princípios de Engenharia de Software, possibilitando
o uso de vários processos e recursos como geração automática
de código e documento (seguindo conceitos de MDA), além
de rastreabilidade de requisitos. Para garantir que o conteúdo
esteja bem estruturado serão utilizadas Ontologias, que trarão
diversos benefícios principalmente na especificação de
requisitos.
Como resultados deste ambiente, podemos ter várias
facilidades para o desenvolvimento de software e uma
documentação completa, disponibilizando para consulta um
portfólio de projetos seguindo este padrão de
desenvolvimento. Esta metodologia de desenvolvimento de
software pode ser usada para auxiliar os projetos
desenvolvidos em cursos de graduação.
Outra expectativa no desenvolvimento do Ambiente de
Desenvolvimento de Software Web Semântico é encorajar o
surgimento de novos projetos de software livre, ao
disponibilizar recomendações para o desenvolvimento de
projetos.
Deve-se destacar que o Ambiente de Desenvolvimento de
Software Web Semântico será especificado com foco na
utilização de padrões abertos e na independência de
plataforma, aumentando assim a liberdade do usuário na sua
utilização.
Devidamente
aperfeiçoado,
o
Ambiente
de
Desenvolvimento de Software Web Semântico pode ser
considerado um “gerenciador de informações”, isto é, uma
ferramenta que permite o acesso comum à informação. Porém,
com os devidos “ajustes”, se o retorno das respostas for o
“mais próximo” da consulta é possível utilizar o Ambiente
para o chamado “reuso do conhecimento” dedicado à
construção de softwares. Com o auxilio de Ontologias
características como a interoperabilidade, comunicação e
coordenação, estarão
presentes
no
Ambiente de
Desenvolvimento de Software Web Semântico. A qualidade
da informação contida no Ambiente de Desenvolvimento de
Software Web Semântico também será afetada pelo uso de
Ontologias, que garantem estrutura ao conteúdo e isso auxilia
na compreensão, manipulação e reutilização das informações.
Este trabalho está dividido da seguinte maneira: a segunda
seção apresenta o Ambiente de Desenvolvimento de Software
e explica como a partir dele será implementado o Ambiente de
Desenvolvimento de Software Web Semântico, a terceira
seção apresenta alguns trabalhos semelhantes à proposta do
Ambiente de Desenvolvimento de Software, a quarta seção
explica a proposta inicial do Ambiente de Desenvolvimento de
Software Web Semântico e por fim a quinta seção apresenta a
conclusão do trabalho.
II. MATERIAIS E MÉTODOS
O Ambiente de Desenvolvimento de Software (ADS) é
descrito em [9] e, a partir do ADS, será implementado o
Ambiente de Desenvolvimento de Software Web Semântico.
A arquitetura do Ambiente de Desenvolvimento de
Software Web Semântico será similar a do ADS, que será a
exemplificada abaixo para demonstração do que será esperado
como resultado.
A arquitetura do ADS é apresentada na Figura 1. Esta figura
mostra os projetos armazenados em XML, que são validados
por um esquema DTD ou XSD. Estes projetos podem ser
editados na Web, através de formulários visualizados por
Folhas de Estilo XSL e Linguagens Web, como JSP e PHP. O
conteúdo em XML é então processado pelas folhas de estilo
gerando documentos (como HTML e LaTeX) e tem como
objetivo gerar códigos em diversas outras linguagens (C, Java,
etc.) e em diversas plataformas (Unix, Linux, Windows, entre
outros.).
Fig. 1. Arquitetura do ADS
A arquitetura do ADS permite a utilização do padrão XMI
para realizar a interoperabilidade com outros ambientes de
desenvolvimento de software e repositórios de dados e
proporciona perspectiva para o tratamento formal de metamodelo para a geração automática de software. A arquitetura
do ADS foi derivado do Adesso, um ambiente computacional
de suporte ao desenvolvimento de aplicações científicas [5]
[6].
O ADS será ampliado de modo a permitir a geração de
código automático, utilizando como ponto de partida
ontologias e possivelmente a linguagem AWK [13] para
processamento de dados baseados em texto. Inicialmente o
objetivo é fazer com que o Ambiente de Desenvolvimento de
Software Web Semântico processe um texto, escrito
provavelmente pelo cliente, que contenha os requisitos do
software. Então, o Ambiente de Desenvolvimento de Software
Web Semântico deverá analisar o texto retornando possíveis
classes para o engenheiro de software. Pretende-se assim criar
um ADS, que irá agregar artefatos, como: diagramas,
formulários, questionários, tarefas, checklists, template,
linguagens formais, etc. Também pretendemos coletar e
analisar informações, definidas por estes artefatos, para avaliar
sobre a evolução na qualidade dos resultados dessa
experimentação.
Assim, o Ambiente de Desenvolvimento de Software Web
Semântico vai ser uma atualização do ADS apresentado
anteriormente.
Este projeto estimula o compartilhamento de informações e
experiências acerca das melhores práticas no desenvolvimento
de software. O uso de plataforma Web garante o acesso livre à
base de dados do Ambiente de Desenvolvimento de Software
Web Semântico, o que traz um grande potencial de aplicação
no ensino e na capacitação de pessoal.
Com o tempo, os projetos desenvolvidos com o auxílio
deste ambiente formarão uma base sólida de desenvolvimento
de software, capaz de ser utilizada profissionalmente. Essa
base servirá para auxiliar a criação de novos produtos de
software, uma vez que os desenvolvedores podem aproveitar
artefatos já existentes para criar novas funcionalidades. Assim
evita-se a repetição, desnecessária, de esforço acelerando o
processo de desenvolvimento como um todo na programação.
Outra expectativa no desenvolvimento do Ambiente de
Desenvolvimento de Software Web Semântico é encorajar o
surgimento de novos projetos de software livre, ao
disponibilizar recomendações para o desenvolvimento de
projetos. O uso de técnicas de Engenharia de Software
também colaboraria para aumentar a credibilidade do software
livre produzido, uma vez que todos teriam acesso às
especificações de cada projeto e às métricas de qualidade do
mesmo.
O uso de ontologias foi adotado, pois trará diversos
benefícios como um melhor compartilhamento de
conhecimento, suporte à interoperabilidade entre o ambiente e
outros sistemas computacionais, auxílio na reutilização de
conhecimento, nos processos de especificação de requisitos e
na manutenção e documentação do Ambiente de
Desenvolvimento de Software Web Semântico.
III. TRABALHOS SEMELHANTES
ODE (Ontology-based software Development Environment)
é um ADS centrado em processo, fundamentado em
ontologias. O ambiente ODE vem sendo desenvolvido no
Laboratório de Engenharia de Software da UFES (LabES) e é
implementado em plataforma livre, utilizando Java como
linguagem de programação e banco de dados PostgreSQL [7]
[8].
Algumas características de ODE que merecem destaque
são: a uniformidade de conceitos provida pelas ontologias, que
facilita a integração, deixa o ambiente mais homogêneo e
torna mais efetiva a comunicação entre pessoas e entre
ferramentas; a forte base em conhecimento, que permite que o
ambiente ofereça um suporte especializado ao usuário na
realização de suas tarefas e possibilita que as informações
geradas mantenham-se interligadas e consistentes ao longo de
todo o processo; e o foco em ferramentas gerenciais, uma vez
que a gerência é uma área de grande importância e ainda é
bastante carente em termos de ferramentas [7] [8].
O Adesso é um ambiente computacional de suporte ao
desenvolvimento de aplicações científicas. O Adesso explora
o modelo de programação baseado em componentes
reutilizáveis, cada vez mais comum em programas de última
geração, para fornecer suporte ao desenvolvimento de
componentes e sua integração a diversas plataformas de
programação científica. O Adesso baseia-se em uma base de
dados, de componentes (algoritmos), representada em XML e
em um conjunto de ferramentas de transformação (stylesheets)
para geração de código, documentação e empacotamento dos
componentes [5] [6].
IV. DESENVOLVIMENTO
A proposta inicial é criar um sistema para o
desenvolvimento e o armazenamento de software, chamado
Ambiente de Desenvolvimento de Software Web Semântico.
Sustentado no Ambiente de Desenvolvimento de Software
Web - ADS [9] e em Ontologias. Este sistema estará
disponível na Internet para uso de um padrão de
desenvolvimento de software, onde vários sistemas (seus
diagramas, documentos e código fonte) poderão ser
armazenados.
O Ambiente de Desenvolvimento de Software Web
Semântico vai criar e manipular uma base de dados em XML
(Extensible Markup Language) onde o conteúdo representa
todo o processo de desenvolvimento de software seguindo
conceitos de Engenharia de Software. O processo de
desenvolvimento será livre, onde o usuário poderá customizar
o processo de desenvolvimento, podendo dizer quais
documentos irão compor cada fase, semelhando ao RUP [10].
Um pré-requisito para um software fazer parte desta base de
dados é seguir a filosofia de "Software Livre",
disponibilizando todo o processo de desenvolvimento, desde o
levantamento dos requisitos, até a implantação do sistema.
Quanto à geração automática de código, a proposta inicial é
a de usar ontologias em conjunto com a linguagem AWK, para
processar um texto contendo as especificações dos requisitos
do software e retornar as possíveis classes para o engenheiro
de software. Com as classes definidas o próximo passo é
definir as relações entre elas e os atributos mais importantes.
Tendo esses dados podemos criar um diagrama de classes, que
pode ser transformado em código por alguma ferramenta
CASE [2].
Essa função do Ambiente de Desenvolvimento de Software
Web Semântico trará um ganho significativo na produtividade
dos engenheiros de software, garantindo a diminuição nos
custos de projeto, além da capacidade de realizar a construção
de funcionalidades das aplicações de maneira mais eficiente e
segura. Outra vantagem que esta função pode trazer se refere à
padronização percebida no código gerado, o que é um ponto
positivo com relação à qualidade do software, ter uma
aplicação cujo código-fonte possui um estilo único de
programação.
V. CONCLUSÃO
O Ambiente de Desenvolvimento de Software Web
Semântico, quando concluído, trará diversos benefícios para o
engenheiro de software. Entre eles: reutilização de código,
diminuição nos custos de projeto e no tempo de
desenvolvimento através da geração automática de código e
vai trazer para os engenheiros de software um maior enfoque
na elaboração dos modelos e diagramas, podendo assim trazer
qualidade maior ao produto final.
AGRADECIMENTOS
O primeiro autor é financiado pelo Programa Institucional
de Bolsas de Iniciação Científica CNPq (PIBIC) da
Universidade Federal do ABC.
REFERÊNCIAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
HARRISON, W.; OSSHER, H.; TARR, P., Software Engineering Tools
and Environments: A Roadmap, In: Proc. of The Future of Software
Engineering, ICSE’2000, Limerick, Ireland, 2000.
PRESSMAN, R.S. Software Engineering: A Practitioner's Approach,
5th Edition, New York: McGraw-Hill, 2001.
FALBO, R.A.; RUY, F.B.; PEZZIN, J.; DAL MORO, R., “Ontologias e
Ambientes de Desenvolvimento de Software Semânticos”. 4th IberoAmerican Symposium on Software Engineering and Knowledge
Engineering, JIISIC’2004, Vol. I, 277-292, Madrid, Spain, November
2004.
GUIZZARDI G.; FALBO, R.A.; GUIZZARDI, R.S.S., “A importância
de Ontologias de Fundamentação para a Engenharia de Ontologias de
Domínio: o caso do domínio de Processos de Software”, IEEE LATIN
AMERICA TRANSACTIONS, VOL. 6, NO. 3, JULY 2008
ADESSO - Ambiente para Desenvolvimento de Software Científico.
http://www.dca.fee.unicamp.br/~lotufo/adesso/. Acesso em Agosto de
2009.
MACHADO, R.C. Adesso - ambiente para desenvolvimento de software
científico. Dissertação de Mestrado, Universidade Estadual de
Campinas, Campinas, SP, Brasil, 2002.
FALBO, R.A.; NATALI, A.C.C.; MIAN, P.G.; BERTOLLO, G.; RUY,
F.B.. “ODE: Ontology-based software Development Environment”, IX
Congreso Argentino de Ciencias de la Computación, La Plata,
Argentina, 2003, pp 931-940.
ODE - Ontology-based software Development Environment
http://www.inf.ufes.br/~labes/ode/. Acesso em Agosto de 2009.
ZAMPIROLLI, F. A; SILVA, M.A.S. Ambiente de Desenvolvimento de
Softwares (ADS). In: II Encontro de Pesquisa e Extensão, 2005, São
Paulo, 2005.
RUP
Rational
Unified
Process.
http://www306.ibm.com/software/awdtools/rup. Acesso em Agosto de 2009.
XML (2004) Extensible Markup Language (XML) 1.0 (Third Edition),
http://www.w3.org/TR/2004/REC-xml-20040204 - 3C Recommendation
February. Acesso em Agosto de 2009.
NUNES, V.B.; SOARES, A.O.; FALBO, R.A. “Apoio à Documentação
em um Ambiente de Desenvolvimento de Software”, VII Workshop
Iberoamericano de Ingeniería de Requisitos y Desarrollo de Ambientes
de Software, IDEAS’2004, pp 50-55, Arequipa, Peru, Maio 2004.
AHO, Alfred V.; KERNIGAN, Brian K.; WEINBERGER, Peter J.. The
AWK Programming Language. Reading, Massachusetts, EUA: AddisonWesley, 1988. pp. 210. ISBN 0-201-07981-X
Download

Estudo de Ontologias em Engenharia de Software