Processos de
Desenvolvimento de
Software
Análise de Sistemas de Software
Prof. Rodrigo Ribeiro
Problema

Se você tivesse que investir 100.000...
 Em
que você investiria?
Treinamentos?
 Máquinas poderosas?
 Contratar funcionários?

Programadores?
 Gerentes de projeto?

História

Departamento de Defesa dos USA
 Quase
90% dos projetos falham. Porquê?
Investem em Carnegie-Mellon
 Depois de muito tempo a resposta:



Projetos falham por gerência inadequada!
Nascimento do CMM (atual CMM-I)
Níveis de maturidade de uma empresa de desenvolvimento
 Classificação de 1 a 5

Capability Maturity Model - CMM
Processos de Desenvolvimento

Fundamentais para qualidade

Processos ajudam mas...


No silver bullet!
Modelos de processos
Codifica-Remenda
 Cascata
 Evolucionário
 Prototipagem Evolutiva
 Espiral

Modelo Codifica-Remenda
Especificação
Desordem
Produto Final
Método Codifica Remenda


Muito usado (infelizmente...)
Não exige gerência complexa
 Nenhuma
documentação
 Nenhum controle gerencial
 Atraente para alguns desenvolvedores
Modelo em cascata
Modelo em Cascata

Estrutura rigorosa

Uma etapa só começa quando a anterior
estiver totalmente concluída.
 Inflexível

Não se adapta bem a mudanças de requisitos.
Quando usar: Requisitos bem conhecidos
 Cliente só possui o produto ao final

Modelo cascata com realimentação
Modelo Evolucionário
Esboço
Especificação
Versão inicial
Desenvolvimento
Versões
intermediárias
Validação
Versão final
Atividades
Simultâneas
Modelo Evolucionário
Especificação incremental
 Ideal para sistemas médios e pequenos



menos de 500.000 LOC
Problemas

Difícil gerenciar pequenos incrementos
 Sistemas mal estruturados

Muitas mudanças tendem a corromper a estrutura
do software
Prototipagem Evolutiva
Prototipagem evolutiva

Bom para o desenvolvedor
 Codificação

Bom para o cliente
 Versão

rápida
desenvolvida rapidamente
Ruim porquê...
 Cliente
não vê “remendos”
Modelo Espiral
Modelo Espiral

Similar a outros processos
 Ex:

Processo evolucionário
Diferença
 Análise

Ex.


e resolução de riscos
Uso de nova linguagem: Ferramentas não disponíveis ou
com problemas.
Problema
 Difícil
gerenciar todos os incrementos
produzidos
Outros modelos...
Métodos formais
 Engenharia de software baseada em
componentes
 Desenvolvimento baseado em modelos
 Desenvolvimento baseado em testes

Download

Processos de Desenvolvimento de Software