• Nenhum resultado encontrado

ImPProS – Um Ambiente de Implementação Progressiva de Processo de Software

Ciclo de Vida de Processos de Software no ImPProS

2.2 ImPProS – Um Ambiente de Implementação Progressiva de Processo de Software

Para ajudar uma organização na implementação progressiva de um processo de software, é útil fornecer apoio automatizado por meio de um ambiente capaz de suportar as fases que a literatura especializada propõe como necessárias [Nguyen.94]. O termo “progressiva” decorre do fato de que a implementação do processo é aperfeiçoada com as experiências aprendidas na sua definição, simulação, execução e avaliação. O ambiente

ImPProS é um projeto de iniciativa do Centro de Informática da UFPE – Universidade Federal de Pernambuco com a parceria da UNAMA – Universidade da Amazônia, financiado pelo CNPq – Conselho Nacional de Desenvolvimento Científico e Tecnológico e pela FIDESA – Fundação Instituto para o Desenvolvimento da Amazônia, que visa a criação de um ambiente de apoio à implementação de um processo de software em uma organização de forma progressiva.

O ImPProS foi influenciado pelos últimos avanços da tecnologia de Automação de Processos de Software, tratando-se de uma adaptação do ciclo de vida proposto por Reis, em [Reis.00], que considera as mesmas fases existentes na literatura, porém Reis não leva em consideração alguns aspectos da evolução e transformação do processo de software (tais

Capítulo 2 Ciclo de Vida de Processos de Software no ImPProS

como: o uso de modelos que orientem melhoria contínua do processo definido; a transformação do processo de software, etc.), principalmente no tocante ao uso dos modelos e normas da qualidade, ou seja, a base para a composição dos processos de software era oriunda de frameworks de processos de software advindos de boas práticas obtidas na comunidade. Dentro deste contexto podem ser caracterizados como objetivos específicos do ImPProS [Oliveira.05a]:

Especificar um meta-modelo de processo de software a fim de definir uma terminologia única entre os vários modelos da qualidade de processo de software existentes, para uso do ambiente em seus serviços providos.

Apoiar a definição gradativa de um processo de software para organização;

Permitir a modelagem e instanciação deste processo;

Permitir a simulação do processo a partir das características instanciadas para um projeto específico;

Dar apoio à execução automatizada do processo de software tomando como base uma máquina de inferência (guiando os estados do processo) e prover a configuração dinâmica do processo;

Possibilitar a avaliação qualitativa e quantitativa dos critérios do processo de software;

• Apoiar a melhoria contínua do processo de software e o reuso através da

realimentação e coleta das experiências aprendidas;

Transformação/conversão de um processo de software com base nos possíveis

mapeamentos entre os modelos e normas da qualidade.

Vale ressaltar que todos os objetivos listados acima foram adaptados a partir da estrutura que compõe o meta-processo de software descrito em [Reis.00], das características propostas para a implementação de um processo de software [Balduino.02] e do ciclo de vida para melhoria contínua de processo definido pelo modelo IDEAL [Mcfeeley.96]. Para alcançar estes objetivos, o ambiente foi concebido para adotar a arquitetura apresentada na

Capítulo 2 Ciclo de Vida de Processos de Software no ImPProS

Figura 2.1. O controle de cada um dos componentes definidos na arquitetura do ambiente encontra-se resumidamente descritos a seguir.

Equipe de Desenvolvimento Projetista de Processo

Módulo de Interação e Visualização do Ambiente

Módulo de Definição do Processo Módulo de Execução do Processo Módulo de Simulação do Processo Módulo de Avaliação do Processo Gerenciador do Ambiente Meta-Modelo de Processo de Software Características de Definição do Processo Modelo de Processo da Organização Conhecimento do Processo Repositório de Experiências Ferramentas de Apoio Kernel do Ambiente Mecanismos para o Gerenciamento do Processo no Ambiente Mecanimo para a Integração de Ferramentas ao Ambiente Mecanismo de Interação com o Usuário Mecanismo de Repositório do Ambiente

Gerente de Processo Gerente de Projeto

Figura 2.1 Arquitetura do Ambiente ImPProS [Oliveira.05a]

Mecanismo de Interação com o Usuário: o foco está em prover aos usuários diferentes visões da mesma informação sendo definida e especificada, provendo interação para diferentes usuários do ambiente, ou seja, trabalha com as características de usabilidade no ambiente.

Mecanismo para o Gerenciamento do Processo no Ambiente: este mecanismo possui a responsabilidade de prover os serviços (módulos de definição, simulação, execução e avaliação do processo de software) especificados ao ambiente de forma automatizada, ou seja, possibilitar que os usuários do ambiente executem suas funções tendo como referencial um guia. O relacionamento dos serviços providos por cada um dos módulos de gerenciamento do ambiente estão representados na

Capítulo 2 Ciclo de Vida de Processos de Software no ImPProS

Figura 2.2, na forma de uma pirâmide que define, numa visão bottom-up, como se dá a ordem de execução destas funcionalidades e permite um entendimento das bases iniciais da gerência do processo de software. Pode-se notar, ainda, que na coluna vertical representada na mesma figura estão definidas algumas ferramentas e/ou procedimentos que dão suporte para que os serviços do ambiente sejam executados.

Mecanismo de Repositório do Ambiente: o foco deste mecanismo está em prover ao ambiente o sistema de gerenciamento dos seus objetos, a partir de bases de dados que provejam o controle de evolução, transformação e manutenção dos ativos do processo de software.

Mecanismo para Integração de Ferramentas ao Ambiente: este mecanismo provê a

integração do ambiente com outras ferramentas de apoio ao processo de software e à execução do projeto de software, possibilitando a automação de atividades definidas no processo e a execução de alguns módulos do ambiente.

Capítulo 2 Ciclo de Vida de Processos de Software no ImPProS

A Figura 2.3, definida usando o diagrama de componentes da UML – Unified Modeling

Language [Booch.06], permite identificar que o ImPProS foi concebido para ser um ambiente

cooperativo, formado por dez ferramentas principais, integradas a partir de conectores de comunicação (discutido na Seção 2.3):

ProDefiner: provê a definição do processo de software a partir da análise de características específicas e aprendizado adquirido com outras definições;

ProSimulator: possibilita a simulação do processo de software instanciado a partir de um plano de execução do processo e assim antever problemas na sua definição;

ProEnacter: permite a execução automatizada e acompanhamento do processo pela equipe do projeto, e a modificação (configuração) dinâmica do processo;

ProEvaluator: provê a avaliação da execução do processo de software a partir da análise de critérios qualitativos e quantitativos;

ProImprove: possibilita a execução sistemática das atividades de melhoria do processo de software, com base no modelo IDEAL;

ProAnalyser: permite a análise e tomada de decisão acerca da avaliação de itens que compõem o processo de software;

ProReuse: provê o reuso de processo de software a partir da caracterização do escopo deste processo e sua adaptação ao contexto de uso no ImPProS;

ProKnowledge: possibilita a coleta, análise e uso de conhecimentos aprendidos ao longo da execução do processo de software;

ProConverter: provê a transformação/conversão do processo de software a partir dos mapeamentos providos entre as normas e modelos da qualidade.

Capítulo 2 Ciclo de Vida de Processos de Software no ImPProS

Figura 2.3 Ferramentas de Apoio ao Processo de Software no ImPProS [Oliveira.06d]