Você está na página 1de 17

Processos de Desenvolvimento de Software

Anlise de Sistemas de Software Prof. Rodrigo Ribeiro

Problema

Se voc tivesse que investir 100.000...


Em

que voc investiria?

Treinamentos? Mquinas poderosas? Contratar funcionrios?


Programadores? Gerentes de projeto?

Histria

Departamento de Defesa dos USA


Quase

90% dos projetos falham. Porqu?

Investem em Carnegie-Mellon Depois de muito tempo a resposta:

Projetos falham por gerncia inadequada!

Nascimento do CMM (atual CMM-I)


Nveis de maturidade de uma empresa de desenvolvimento Classificao 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 Evolucionrio Prototipagem Evolutiva Espiral

Modelo Codifica-Remenda
Especificao

Desordem

Produto Final

Mtodo Codifica Remenda

Muito usado (infelizmente...) No exige gerncia complexa


Nenhuma

documentao Nenhum controle gerencial Atraente para alguns desenvolvedores

Modelo em cascata

Modelo em Cascata

Estrutura rigorosa

Uma etapa s comea quando a anterior estiver totalmente concluda. Inflexvel

No se adapta bem a mudanas de requisitos.

Quando usar: Requisitos bem conhecidos Cliente s possui o produto ao final

Modelo cascata com realimentao

Modelo Evolucionrio
Especificao Verso inicial

Esboo

Desenvolvimento

Verses intermedirias

Validao

Verso final

Atividades Simultneas

Modelo Evolucionrio
Especificao incremental Ideal para sistemas mdios e pequenos

menos de 500.000 LOC

Problemas

Difcil gerenciar pequenos incrementos Sistemas mal estruturados

Muitas mudanas tendem a corromper a estrutura do software

Prototipagem Evolutiva

Prototipagem evolutiva

Bom para o desenvolvedor


Codificao

rpida

Bom para o cliente


Verso
Cliente

desenvolvida rapidamente
no v remendos

Ruim porqu...

Modelo Espiral

Modelo Espiral

Similar a outros processos


Ex:

Processo evolucionrio e resoluo de riscos

Diferena
Anlise

Ex.

Uso de nova linguagem: Ferramentas no disponveis ou com problemas.

Problema
Difcil

gerenciar todos os incrementos produzidos

Outros modelos...
Mtodos formais Engenharia de software baseada em componentes Desenvolvimento baseado em modelos Desenvolvimento baseado em testes