• Nenhum resultado encontrado

Componentes básicos de um PSEE

No documento LISTA DE FIGURAS (páginas 47-51)

2 CONCEITOS BÁSICOS

2.3 Ambiente de desenvolvimento de software centrado em processo

2.3.2 Componentes básicos de um PSEE

ferramentas CASE descritas englobam tanto a categoria de ferramentas de apoio às diversas tarefas relacionadas ao desenvolvimento de um sistema de software, como a categoria de ferramentas de apoio à atividade de gerenciamento do processo de desenvolvimento. Portanto, neste componente de ferramentas, considera-se a primeira categoria, uma vez que os outros componentes do ADS possuirão suas ferramentas de apoio correspondentes.

As ferramentas CASE representam a interface do PSEE com o usuário.

c. Gerenciamento de ferramentas

Este componente é responsável pelo controle do comportamento das ferramentas CASE do ambiente. Durante a utilização das ferramentas, este componente é responsável pela sincronização e comunicação das mesmas, controlando o fluxo de informações com o sistema de gerenciamento de objetos. O gerenciamento inclui também operações como controle de segurança e auditoria, permitindo a extração de métricas sobre a utilização das ferramentas.

O gerenciamento de ferramentas deve prover, de forma adicional, facilidades tais como:

- Registro: para cada ferramenta integrada, informações pertinentes à interoperabilidade devem ser capturadas e registradas;

- Encapsulamento: pode ser necessário o estabelecimento de um wrapper (envoltório) sobre cada ferramenta integrada para realizar a apresentação, de uma maneira padronizada, das características da ferramenta;

- Interoperabilidade: o gerenciamento deve fornecer meios (por troca de mensagens ou compartilhamento de dados, por exemplo) para que as ferramentas integradas possam se comunicar e invocar mutuamente;

- Interação: cada ferramenta deverá possuir um conjunto bem definido de tarefas que poderão apoiar no desenvolvimento de sistemas.

Obviamente, a implementação do gerenciamento de ferramentas deverá levar em consideração os aspectos de integração de ferramentas descritos no capítulo 2.

d. Sistema de gerenciamento de objetos

O sistema de gerenciamento de objetos (SGO) constitui-se em um banco de dados com funções de controle de acesso que possibilitam aos outros componentes interagir com este banco de dados. Este banco de dados armazena todos os dados de projeto, com seus relacionamentos e dependências, permitindo compartilhamento de informação e coordenação de projetos. Dependendo do autor, este banco de dados é chamado de “dicionário de dados”, “enciclopédia de dados” ou “repositório”. Neste trabalho, será

adotado o termo “enciclopédia de dados”, pois o mesmo tem a função de reunir dados de diversos tipos e de diversas ferramentas CASE.

A coordenação de trabalho dos membros de um projeto e a definição de que informação será compartilhada entre os mesmos é função da metodologia ou processo utilizado, sendo função da enciclopédia de dados armazenar, controlar e compartilhar adequadamente a documentação, requisitos de software, projetos, código-fonte, e outros dados resultantes.

A enciclopédia de dados (NOTARI, 1999) permite que os membros de um projeto pensem em termos de objetos, componentes, subsistemas, instruções de comando, e outras construções. Informações como modelos de dados, atributos, relacionamentos e suas localizações devem ser definidos antes que os projetos de desenvolvimento, manutenção ou reengenharia iniciem.

O sistema de gerenciamento de objetos possui papel importante em projetos de reengenharia. Todas as informações existentes do sistema (que provavelmente estejam sob controle de uma equipe de manutenção) devem ser sincronizadas com os requisitos e especificações do novo sistema (que deve estar sob controle de uma equipe de reengenharia). Esta coordenação, com as informações compartilhadas entre a equipe de manutenção e de reengenharia, deve ser definida e implementada antes que o novo processo de desenvolvimento se inicie.

e. Gerenciamento de processo

Este componente deve estabelecer o workflow, tarefas, responsabilidades, atribuições de recursos, políticas e regras e liberações de produtos que implementem o processo que define cada projeto. O uso apropriado dos métodos e ferramentas é dirigido pelo processo que está sendo aplicado em um determinado problema (AMARAL, 1997; FINKELSTEIN, 1994).

Modelos de workflow podem variar de acordo com os tipos de problemas e métodos para resolvê-los. Mesmo metodologias de desenvolvimento de software também podem ser embutidas nestes modelos, resultando diversos modelos correspondentes. O importante é que cada membro de uma equipe de desenvolvimento saiba qual processo está sendo utilizado.

O gerenciamento de processo sobre o ciclo de vida de desenvolvimento de software deve definir que ferramentas serão usadas e quando utilizá-las. De forma adicional, também deve permitir controlar os projetos instanciados, a partir do processo modelado.

f. Gerenciamento de projeto

O gerenciamento de projeto é responsável pela definição da estrutura detalhada do trabalho realizado, cronogramas e custos de cada projeto, medindo os resultados atuais de um projeto com os resultados planejados. Os workflows definidos no gerenciamento de processo são ligados

ao gerenciamento de projeto para a atribuição de recursos, cronogramas, custos e para reunir as métricas de desenvolvimento de software.

Quando os recursos de um projeto são deslocados para outro, os efeitos desta mudança devem ser imediatamente conhecidos. Desta forma é necessário que o gerenciamento de projeto esteja conectado ao gerenciamento de processo.

Outra função importante deste componente é o controle de estatísticas e métricas de desempenho de projetos, possibilitando que o gerente de um projeto possa monitorar a produtividade e a qualidade atingidas.

g. Gerenciamento de requisitos

O gerenciamento de requisitos deve tratar dos requisitos técnicos para o sistema em construção. Ele deve obter todos os requisitos e informações de como estes estão sendo satisfeitos, relacionando cada requisito com os elementos do sistema que o satisfaz.

Assim, a qualquer momento durante a execução de um projeto, relatórios de situação atual podem ser preparados e emitidos pelo acesso às informações contidas no repositório.

h. Gerenciamento de configuração

Processos de desenvolvimento de software geralmente mudam, adaptando-se a novas necessidades e tendências. O componente de gerenciamento de configuração permite o controle de todas as atividades de desenvolvimento, manutenção e reengenharia de sistemas, através do gerenciamento e controle de configurações e versões dos modelos de processo, projetos, produtos liberados, sistemas de software e recursos.

O gerenciamento de configuração permite a aplicação de pedidos de mudança, notificações, análises de impacto, cronogramas, históricos e rastreamento de auditorias de forma consistente por todos os projetos e sistemas. Os pedidos de mudança são registrados e análises de impacto de mudança são realizadas. Novos planos de projeto são criados, notificações de mudança são enviadas para todos os membros da equipe afetados e um novo esquema de auditoria é estabelecido.

Mudanças no desenvolvimento de software são usuais. Desta forma, organizações que não possuem um sistema de controle de configurações formal correm o risco de perder o controle sobre seus sistemas.

i. Gerenciamento de documentação

Documentação é um produto resultante do desenvolvimento, manutenção ou reengenharia de sistemas. O gerenciamento de documentação deve prover armazenamento, recuperação, controle e gerenciamento de todos os documentos necessários para a condução de um projeto, bem como dos documentos criados e modificados por um projeto.

O gerenciamento de documentação trabalha de forma dependente do gerenciamento de processo, de projeto e de configuração, bem como da forma através da qual as equipes de projeto prevêem compartilhar suas informações.

j. Verificação e validação de projeto

‘Verificar’ significa assegurar que o software em construção satisfaz os requisitos definidos, enquanto que ‘validar’ significa assegurar que este software provê funções que o usuário realmente deseja.

A verificação e validação de projeto depende de outros componentes, e sua importância se dá pela comprovação de que a organização tem a documentação completa e procedimentos rigorosos para assegurar a qualidade do sistema liberado.

Isto tem conseqüências sobre outros aspectos do desenvolvimento de software, tais como o gerenciamento de processo e configuração, pois o suporte a verificação e validação dos sistemas em desenvolvimento garante a melhoria constante do processo.

No documento LISTA DE FIGURAS (páginas 47-51)