Engenharia de Software

Modelos Prescritivos de Desenvolvimento de Software

28/07/2025

Por que Desenvolvemos Sistemas?

MODELOS PRESCRITIVOS DE PROCESSOS DE SOFTWARE

O modelo em cascata é um modelo de desenvolvimento de software seqüencial no qual o desenvolvimento é visto como
um fluir constante para frente (como uma cascata) através das fases de análise de requisitos, projeto, implementação,
testes (validação), integração, e manutenção de software. A origem do termo cascata é freqüentemente citado como
sendo umartigo publicado em 1970 por W. W. Royce.

Modelo em Cascata (Waterfall)

# Modelos Prescritivos de Desenvolvimento de Software

Modelo sequencial, com fluxo constante através das fases:

  1. Elicitação e levantamento de requisitos
  2. Projeto
  3. Construção (implementação/codificação)
  4. Integração
  5. Teste e depuração
  6. Instalação
  7. Manutenção

Desvantagens: Acúmulo de problemas de integração tardia, dificuldade em lidar com mudanças.

Freqüentemente, ele resulta em um acúmulo de integração tardia na implementação, quando, pela primeira vez, o produto é criado e o teste começa. Aparecem os problemas que permaneceram ocultos por todo o processo de Análise, Design e Implementação, e o projeto é paralisado enquanto começa um longo ciclo de correção de erros

modelo_cascata

Modelo Iterativo e Incremental

O Desenvolvimento Iterativo e Incremental é um processo de desenvolvimento de software criado em resposta às
fraquezas do modelo em cascata, o mais tradicional. Os dois padrões mais conhecidos de sistemas iterativos de desenvolvimento são o RUP (Processo Unificado da Rational) e o Desenvolvimento ágil de software. Por isso o desenvolvimento iterativo e incremental é também uma parte essencial da Programação Extrema e outros

Criado em resposta às fraquezas do modelo cascata. Desenvolvimento em iterações, com adição incremental de funcionalidades a cada iteração. Exemplos: RUP, desenvolvimento ágil.

Uma maneira mais flexível (e menos arriscada) de continuar é percorrer várias vezes as diversas disciplinas de desenvolvimento, construindo um melhor entendimento dos requisitos, planejando uma arquitetura robusta, elevando a organização do desenvolvimento e, por fim, liberando uma série de implementações que são gradualmente mais completas.
Esse procedimento chama-se ciclo de vida iterativo. A cada passagem, a seqüência de disciplinas do processo chama-se iteração.

iterativo

A idéia básica por trás da abordagem iterativa é desenvolver um sistema de software incremental, permitindo ao desenvolvedor tirar vantagem daquilo que foi aprendido durante a fase inicial de desenvolvimento de uma versão do sistema. O aprendizado ocorre simultaneamente tanto para o desenvolvedor, quanto para o usuário do sistema. Os passos fundamentais do processo estão em iniciar o desenvolvimento comumsubconjunto simples de Requisitos de Software e iterativamente alcançar evoluções subseqüentes das versões até o sistema todo estar implementado. A cada iteração, as modificações de projeto são feitas e
novas funcionalidades são adicionadas.

Prototipagem

O cliente, define um conjunto de objetivos gerais do software, mas não identifica detalhadamente requisitos de entrada,processo e saída, em outros casos os engenheiros estão inseguros quanto ao algorítimo, as funcionalidades e a interação, nestes casos o paradigma da prototipagem oferece uma melhor abordagem. Esta técnica é mais comumente utilizada dentro de um contexto de
qualquer modelo de processo, auxiliando o engenheiro de software e o cliente a entenderem melhor o que deve ser construído quando os requisitos estão confusos

Técnica usada para melhor entendimento de requisitos confusos. Cria um protótipo funcional, que pode ser descartado parcialmente na versão final.

Desvantagens: O cliente pode confundir o protótipo com a versão final; o desenvolvedor pode fazer concessões na implementação para agilizar o processo.

MODELOS PRESCRITIVOS DE PROCESSOS DE SOFTWARE

Aprototipagem pode ser problemática pelas seguintes razões:

Modelo em Espiral

Combina a natureza iterativa da prototipagem com os aspectos controlados do modelo cascata. O software é desenvolvido em versões evolucionárias, com avaliação de riscos a cada iteração. O ciclo de vida clássico (comunicação, planejamento, modelagem, construção e implantação) é executado a cada evolução.

Vantagens: Estimativas e cronogramas mais realistas; maior versatilidade para lidar com mudanças.
Desvantagens: Pode ser difícil convencer o cliente, especialmente em contratos fechados; utilizado com mais frequência em grandes projetos.

Modelo RAD (Rapid Application Development)

Modelo incremental que enfatiza um ciclo de desenvolvimento rápido. Características:

Fases:

  1. Modelagem do negócio
  2. Modelagem de dados
  3. Modelagem dos processos
Voltar