domingo, 28 de março de 2021

Modelos Incrementais de Processo

Há diversas situações em que os requisitos iniciais do software estão razoavelmente bem definidos, mas o escopo global do processo de desenvolvimento claramente elimina uma abordagem puramente linear ou sequencial. Adicionalmente pode haver a necessidade de se fornecer rapidamente um conjunto limitado de funcionalidades do software aos usuários e depois refinar, melhorar e expandir aquela funcionalidade em versões mais avançadas do software. Nestes casos, os modelos de processo que produzem software em incrementos são os mais indicados.

Os processos incrementais que discutiremos aqui incluem o Modelo Incremental e o Modelo RAD – Rapid Application Development (Desenvolvimento Rápido de Aplicação), com base em Pressman (2011).

Modelo Incremental

O modelo incremental aplica elementos do modelo em cascata, mas de forma interativa. Este modelo, assim como a prototipagem, é incremental, mas o que o diferencia da prototipagem é o fato de ele ter como objetivo apresentar um produto operacional a cada incremento realizado. Este processo pode ser visto na figura.

Modelo de Processo Incremental. Fonte: baseado em (PRESSMAN, 2010)

Esse modelo é muito útil quando a empresa não possui mão de obra disponível, em um dado período, para uma implementação completa, dentro do prazo estipulado.

De uma forma geral, o Modelo Incremental apresenta as características:

  • Combina elementos do Modelo em Cascata (aplicado repetitivamente) com a filosofia iterativa da Prototipação;
  • Aplica sequências lineares de uma forma racional à medida que o tempo passa;
  • Cada sequência linear produz um incremento do software e pode gerar uma entrega parcial do produto;
  • Os primeiros incrementos são versões simplificadas do produto final;
  • O primeiro incremento é chamado de “núcleo do produto” (core).

Um exemplo clássico de aplicação do Modelo Incremental é o desenvolvimento de um processador de texto. Para este projeto as etapas incrementais poderiam ser assim definidas:

  1. Primeiro Incremento: poderia efetuar as funções de controle de versões de arquivos, edição e produção de documentos.
  2. Segundo Incremento: adicionaria capacidade de edição e de produção de documentos mais sofisticados.
  3. Terceiro Incremento: incluiria a verificação sintática e gramatical.
  4. Quarto Incremento: adicionaria a capacidade avançada de disposição de página.

Note que todo o processo pode se repetir até que um produto completo seja produzido.

Modelo RAD - Rapid Application Development

O modelo RAD – Rapid Application Development (Desenvolvimento Rápido de Aplicação) é uma adaptação do modelo em Cascata, mas que enfatiza um desenvolvimento extremamente rápido. A alta velocidade é conseguida por meio de uma abordagem de construção baseada em componentes, ou seja, o sistema é modularizado.

Se os requisitos forem bem definidos e o objetivo do projeto for restrito, a equipe pode criar um sistema plenamente funcional em pouco tempo.

O RAD se enquadra no modelo de atividades de arcabouço do Modelo em Cascata:

  • Comunicação: atividade em que se entende o problema de negócio, as características das informações e é realizado o levantamento de requisitos.
  • Planejamento: atividade essencial. Várias equipes trabalham em paralelo em diferentes funções.
  • Modelagem: estabelece representações de projeto que servem como base para a atividade de construção. Abrange três fases:
    1. Modelagem de negócio
    2. Modelagem de dados
    3. Modelagem de processo
  • Construção: faz uso de componentes de software preexistentes e geração de códigos.
  • Emprego (ou implantação): estabelece a base para iterações subsequentes, se necessárias.

A figura apresenta a representação esquemática do modelo RAD em relação ao modelo sequencial tradicional.

As situações de desenvolvimento mais adequadas para se utilizar o Modelo RAD incluem:

  • Projetos em que os requisitos estão bem definidos, o objetivo do sistema é restrito e se deseja criar um “sistema plenamente funcional” dentro de períodos muito curtos (por exemplo, de 60 a 90 dias);
  • Projetos em que há fortes restrições de tempo impostas pelo cliente;
  • Aplicações que podem ser modularizadas de forma que cada função principal possa ser completada em menos de 3 meses;
  • Projetos em que cada função principal possa ser alocada para uma equipe distinta e depois integradas para formar o todo do produto.

Mas a utilização do modelo RAD também pode implicar em problemas. Para projetos grandes, mas mensuráveis, o RAD requer um número elevado de recursos humanos que sejam suficientes para criar um número adequado de equipes. Além disso, o RAD requer um comprometimento entre desenvolvedores e clientes para que as atividades possam ser realizadas rapidamente e o sistema seja concluído em um tempo curto. Se o comprometimento for abandonado por qualquer das partes, o projeto falhará. O uso do RAD também não é apropriado quando os riscos técnicos são grandes (por exemplo, quando a aplicação faz uso de uma nova tecnologia).

Nenhum comentário:

Postar um comentário