
Ontology-based software Development Environment
Alta qualidade e
produtividade são fatores críticos no desenvolvimento de software. Neste
contexto, torna-se essencial prover ferramentas para ajudar o engenheiro de
software em suas tarefas. O suporte de ferramentas influencia diretamente o
tempo de desenvolvimento do software, o seu custo e a qualidade do produto
desenvolvido [1].
Assim, diversas
ferramentas, conhecidas como ferramentas CASE (Computer-Aided Software Engineering), têm sido amplamente
utilizadas no desenvolvimento de software. Entretanto, essas geralmente são
ferramentas isoladas, que não são capazes de compartilhar serviços, ou sequer
informações. Muito embora o uso de ferramentas individuais possa trazer
benefícios em atividades separadas, o real poder dessas ferramentas de apoio
somente pode ser alcançado através da integração [2].
Dessa forma, Ambientes de
Desenvolvimento de Software (ADSs) têm ganhado cada vez mais importância. Tais
ambientes buscam combinar técnicas, métodos e ferramentas para apoiar o
engenheiro de software na construção de produtos de software, abrangendo todas
as atividades inerentes ao processo, tais como de gerência, desenvolvimento e
controle da qualidade [3]. Um ADS tem o objetivo
de ser um ambiente completo, capaz de suportar todo o processo de software, com
diversas ferramentas integradas trabalhando em conjunto.
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.
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.
A seguir, são brevemente
apresentados os principais módulos e ferramentas integrados atualmente ao
ambiente ODE.
|
- Controle de Projetos (Manutenção e
Caracterização)
ODE é direcionado a projetos. Assim, a maior parte das
funcionalidades do ambiente é acessada no contexto de um projeto. O Ambiente
permite que vários projetos sejam criados e controlados. Dessa forma, os
usuários têm acesso apenas aos projetos em que estejam alocados.
Outro ponto relevante é a Caracterização de Projetos que
possibilita a comparação entre projetos e, então, a recuperação de projetos
similares, muito importante nas tarefas que fazem uso de dados históricos.
|
|
- Cadastro de Conhecimento (sobre
Processos, Riscos e Qualidade)
Permite
que os dados organizacionais sejam registrados no ambiente. Com base nas
ontologias existentes atualmente em ODE, é possível armazenar informações a
respeito de processos (modelos de ciclo de vida, atividades, recursos,
artefatos, procedimentos etc.), riscos e métricas de qualidade. Como as
ferramentas integradas oferecem suporte fortemente baseado nesse
conhecimento, é possível fornecer ao usuário apoio direcionado ao
conhecimento organizacional.
|
|
- Cadastro de Recursos Organizacionais
Gerencia
os recursos humanos, ferramentas de software e recursos de hardware da
organização, assim como os usuários do ambiente. Possibilita que os
colaboradores sejam associados às funções que estão aptos a de realizar,
apoiando a alocação de recursos às atividades. Além disso, registra as
ferramentas de software utilizadas pela organização através do ambiente,
sejam elas parte integrante do ambiente, ou ferramentas externas
desenvolvidas independentemente dele.
|
|
- Definição
de Processos
Por ser
centrado em processo, ODE tem esta como uma de suas ferramentas mais
centrais. É nela que são definidos os processos que guiarão os projetos da
organização. A ferramenta utiliza um efetivo suporte do conhecimento para
apoiar o gerente na definição de um modelo de ciclo de vida para o processo,
de suas atividades, dos artefatos a serem produzidos e consumidos, dos
recursos humanos, de software e de hardware necessários à execução, e dos
métodos, técnicas, roteiros e normas utilizados.
Devido à
definição do processo, o ambiente é capaz de se configurar de forma a melhor atender
ao processo definido, exibindo as ferramentas que devem apoiar cada usuário
nas atividades em que são necessárias.
|
|
- Acompanhamento de Projetos
Assim que
um projeto é iniciado, é possível acompanhá-lo por esta ferramenta. O processo
do projeto é apresentado na forma de um grafo que exibe as atividades,
destacando sua hierarquia, ordem de execução e estados atuais. Para cada uma
das atividades, são mostradas informações relevantes como seus artefatos,
procedimentos, recursos alocados e datas. Dessa forma, o gerente pode
monitorar e controlar o andamento dos projetos.
|
|
- Alocação de Recursos Humanos
Esta
ferramenta apóia a definição de equipes para projetos e a alocação de seus
membros às atividades definidas. Com base na necessidade de recursos humanos
de cada atividade (estipulada na definição de processos), os colaboradores da
organização podem ser alocados às atividades, sendo definidos seus papéis,
datas de alocação e dedicação.
A partir
da alocação, o ambiente se configura para permitir aos colaboradores acesso
apenas às funcionalidades necessárias à realização das atividades em que
estão alocados.
|
|
- Alocação de Ferramentas de Software
De forma
semelhante à alocação de recursos humanos, esta ferramenta permite alocar as ferramentas
da organização às atividades que delas necessitam. A alocação é válida tanto
para ferramentas internas quanto externas e também é necessária à
configuração do ambiente, disponibilizando as ferramentas nos momentos em que
devem ser utilizadas.
|
|
- GeRis - Gerência de Riscos
Gerenciar
riscos é um fator de grande importância em qualquer projeto. GeRis apóia a
gerência de riscos dos projetos de software e a elaboração de um plano de
riscos.
Com base
no conhecimento organizacional sobre riscos, o gerente pode identificar os
riscos relevantes a cada projeto; avaliá-los segundo suas probabilidades,
impactos, e conseqüências; selecionar ações adequadas de mitigação e
contingência e, por fim, gerar um plano de riscos para o projeto.
|
|
- Agenda e Registro de Esforço
Através da
ferramenta de agenda, os usuários do ambiente podem visualizar a quais
atividades de que projetos estão alocados, as datas previstas e efetivas e o
esforço registrado até o momento. Ao gerente de projetos, é fornecida uma
visão mais ampla do andamento das atividades. A ferramenta permite ainda que
os usuários registrem os esforços despendidos diariamente nas atividades em
que estão alocados.
|
|
- EstimaODE
- Estimativas de Tamanho e Esforço
Esta
ferramenta possui uma estrutura comum que contempla três abordagens de
estimativas:
- Análise de Pontos de Função: apóia a realização de estimativas
de tamanho, utilizando a técnica de pontos de função. Possibilita que o
usuário inicie as estimativas, informe os dados das funções do sistema,
registre os níveis de influência relacionados e gere um relatório com os
pontos de função determinados. Permite ainda que sejam feitas recontagens dos
pontos de função no decorrer do projeto, aproveitando a contagem anterior e
mantendo um histórico para efeito comparativo.
- Análise de Pontos de Casos de Uso: utiliza a técnica
de pontos de casos de uso para também dar suporte à realização de estimativas
de tamanho. Uma vez iniciada a estimativa, é possível determinar os pesos de
atores e casos de uso, os fatores técnicos e calcular os pontos de casos de
uso. Também permite a geração de relatórios e a recontagem de pontos.
- Estimativa por Decomposição do Processo: apóia a
realização de estimativas de esforço utilizando decomposição do processo e
dados históricos de projetos similares. Permite estimar o esforço de projetos
e suas atividades baseando-se em dados de esforços reais obtidos de projetos
já realizados no ambiente.
|
|
- Gerência de Conhecimento
Gerenciar
o conhecimento produzido durante o desenvolvimento de software é um fator de
grande importância e que traz vantagens à realização de projetos. ODE possui
uma infra-estrutura de gerência de conhecimento que é composta por uma
memória organizacional e por serviços que permitem a criação, recuperação,
disseminação, uso e manutenção de conhecimento. Alguns itens de conhecimento
com os quais o ambiente lida são lições aprendidas e artefatos em geral.
Com a
utilização da gerência de conhecimento, os usuários podem registrar o
conhecimento que adquirem no decorrer dos projetos no próprio ambiente, assim
como buscar conhecimento registrado por outras pessoas da organização.
|
|
|
|
|
Como pôde ser observado,
o ambiente ODE possui um abrangente corpo de ferramentas úteis a várias tarefas
do desenvolvimento de software. Contudo, a pesquisa e o desenvolvimento continuam.
Dessa forma, algumas ferramentas que já se encontram em fase de construção e em
breve serão incorporadas ao ambiente são:
|
- Definição
de Processos em Níveis
A evolução
da ferramenta de definição de processos permitirá que os processos sejam
definidos em vários níveis. Assim a organização poderá definir o seu Processo
Padrão, criar processos especializados a partir deste e instanciar os
processos de projetos específicos. Essa hierarquização possibilita que os
processos não sejam mais definidos "a partir do zero", economizando
tempo e esforços e garante uma padronização entre os processos, além de
outras características de qualidade.
Além
disso, o ambiente dará suporte à criação de vários processos por projeto,
permitindo assim, o controle de outros processos além do de desenvolvimento,
tais como processos de gerência, de avaliação da qualidade, de fornecimento,
de manutenção etc.
|
|
- Manipulação de Conhecimento Organizacional
O
conhecimento sobre a organização é de grande importância em projetos de
software. Se este conhecimento for incorporado ao ambiente, a realização de
diversas tarefas pode ser melhorada. De posse de conhecimento sobre as
unidades organizacionais, cargos, pessoal, competências e atividades da
organização, o ambiente poderá apoiar, com muito mais eficácia, tarefas como
a definição de processos, alocação de recursos, direcionamento de perguntas,
envio de informações úteis ao andamento do projeto, entre outras.
|
|
- XMLDoc - Documentação Automatizada
Por ser um
ambiente integrado, ODE armazena em um repositório único todas as informações
manipuladas em suas ferramentas. Dessa forma, a documentação é amplamente
facilitada. Documentos como planos de projeto, definição de processos, planos
de riscos, realização de estimativas, alocação de recursos, modelos e
diagramas, registros de esforços e outros mais podem ser facilmente
recuperados a partir de XMLDoc. A ferramenta encontra-se em reestruturação e
permitirá a extração de dados do repositório para documentos XML, que então,
serão transformados para diversos formatos como HTML, PDF e RTF.
|
|
- OODE – Modelagem UML
OODE é uma
ferramenta gráfica para modelagem UML que permite a construção de diversos
diagramas de forma integrada. Atualmente são contemplados os diagramas de
casos de uso, classes, objetos, estados, atividades, seqüência, colaboração,
componentes e implantação.
Além disso,
a OODE permite a exportação e importação de modelos no formato XMI (formato
XML padrão para intercâmbio de modelos UML), criando compatibilidade com
ferramentas externas. A ferramenta encontra-se em fase de aperfeiçoamento e
testes.
|
ODE possui hoje uma
grande gama de ferramentas capazes de apoiar, de forma integrada, várias
atividades do desenvolvimento de software. Diversas delas estão prontas para
serem utilizadas em projetos reais, tanto que já apóiam a realização de alguns
projetos acadêmicos.
Com o intuito de atender
não só aos interesses de pesquisa, mas também aos de mercado, o LabES
dispõem-se a estabelecer parcerias com organizações de software. No contexto de
uma parceria realizada entre o LabES e uma empresa de desenvolvimento de
software capixaba, uma primeira versão de ODE foi implantada na organização em
outubro de 2004, visando apontar oportunidades de melhoria no ambiente como um
todo tomando por base situações reais da organização. Com um primeiro feedback
obtido, algumas melhorias foram realizadas e uma segunda versão foi liberada em
fevereiro de 2005.
[1] 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.
[2] PRESSMAN,
R.S. Software Engineering: A Practitioner's Approach, 5th Edition, New York:
McGraw-Hill, 2001.
[3] FALBO,
R.A. Integração de Conhecimento em um
Ambiente de
Desenvolvimento de Software. Tese de Doutorado, COPPE/UFRJ, Rio de Janeiro,
1998.

LabES – Laboratório de Engenharia de Software – UFES
