• Nenhum resultado encontrado

Origem: ODE, Laboratório de Software, UFES (http://www.inf.ufes.br/~labes/ode/)

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 integradas 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 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. 0..* 0..* 0..* 0..* 0..* 0..* 0..* 0..* 0..* 0..* 0..* 1 0..1 1 0..* 0..* 0..* 0..* Software Tool <<Concept>> Procedure <<Concept>> Artifact <<Concept>> Resource <<Concept>> Activity <<Concept>> Process <<Concept>> Project <<Concept>> Human Resource <<Concept>> Team <<Concept>> 0..* 0..* possible adoption 0..* 0..* product 0..* 0..* sub-activity 0..* 0..* input 0..* 0..* use 1 0..* 1 0..1 implementation 0..* 0..* team allocation 0..* 0..*

- 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

- 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 consequê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:

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, sequê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. Definição Processo Padrão Especialização Processo Especializado 1 Processo Especializado n Processo de Projeto m Processo de Projeto 1 Normas e Modelos de Qualidade, Cultura Organizacional Tecnologia de Desenvolvimento, Domínio do Problema e Paradigma Particularidades Instanciação

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.

3.9 LEITURA RECOMENDADA

PRESSMAN, Roger. Engenharia de software. 2006. McGraw Hill. Capítulo 2 – Processo: uma visão genérica; Capítulo 3 – Modelos Prescritivos de Processo; Capítulo 4 – Desenvolvimento Ágil;

SOMMERVILLE, Ian. Engenharia de software. 2007. Pearson Education. Capítulo 4 – Processo de Software;

PÁDUA FILHO, Wilson. Engenharia de software: fundamentos, Métodos e Padrões. 2009. LTC. Capítulo 5: Processos de Software;

BERTOLLO, Gleidson. Dissertação de Mestrado. Definição de processos em um ambiente de desenvolvimento de software. UFES. 2006.

• Notas de Aula – Engenharia de Software, prof. Ricardo Falbo. Link: http://www.inf.ufes.br/%7Efalbo/download/aulas/es-g/2006-2/NotasDeAula.pdf;

No documento 3 O PROCESSO DE DESENVOLVIMENTO DE SOFTWARE (páginas 41-47)

Documentos relacionados