Introdução à Análise
e ao Projeto de Software

O que é “Análise” e “Projeto”?
Na Análise, investigamos o problema e descobrimos o QUE precisará estar no sistema.
Durante o Projeto:
detalhamos a análise de modo a encontrar uma solução computacional que satisfaça os requisitos do software
Estruturamos COMO o sistema será implementado
O Projeto oferece uma ponte entre a Análise e a Implementação.
O que é “Análise” e “Projeto”?
A análise consiste de todas as atividades feitas com ou para o conhecimento do cliente. A informação produzida é aquela que o cliente deve discutir e aprovar.
O projeto inclui as atividades que resultam em informação que interessa apenas ao programador.
Com essa definição, a análise invade um pouco o "lado da solução", pois o cliente deve discutir alguns tipos de interações que ocorrerão na interface do usuário, etc.
Fases do desenvolvimento de Software
Planejamento
Análise de Requisitos
Projeto
Codificação
Revisão
Teste
Documentação
Manutenção
Processos de desenvolvimento de Software
Modelo Cascata
Modelo Iterativo e Incremental (RUPRational Unified Process)
Modelo Cascata
Abordagem sistemática e seqüencial
Processo organizado em fases distintas e separadas
Baseado nos processos convencionais de engenharia
Requer especificação completa e bem entendida
Dificulta a introdução de mudanças após o início do processo

Modelo Cascata
Problemas:
projetos reais raramente seguem o fluxo seqüencial que o modelo propõe;
logo no início é difícil estabelecer explicitamente todos os requisitos ;
no começo dos projetos sempre existe uma incerteza natural
propagação de erros pelas as fases do processo
o cliente deve ter paciência.
uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento
Contribuição:
imposição de disciplina, planejamento e gerenciamento.
Modelo Iterativo e Incremental
Divide o desenvolvimento de um produto de software em ciclos de desenvolvimento.
Cada ciclo considera um subconjunto de requisitos.
Especificação evolui junto com o sistema.
Suporta requisitos parcialmente definidos.
Modelo Iterativo e Incremental

Modelo Iterativo e Incremental
Vantagens X Desvantagem
Incentiva a participação do usuário.
Riscos do desenvolvimento podem ser mais bem gerenciados.
Um risco de projeto é a possibilidade de ocorrência de algum evento que cause prejuízo ao processo de desenvolvimento, juntamente com as conseqüências desse prejuízo.
Influências: custos do projeto,cronograma, qualidade do produto, satisfação do cliente, etc.Mais difícil de gerenciar X
Mais difícil de Gerenciar.
Distribuição das Fases
Metodologias de Desenvolvimento de Software

É uma abordagem para a produção de software viável e de alta qualidade
APE (Ex.: Análise estruturada, Projeto Estruturado,Análise de sistemas estruturados)
APOO (Ex.: Booch, OMT, OOSE)
Processo X Metodologia
Processo: como organizar as fases de desenvolvimento
Metodologia: como produzir os resultados de cada fase
Portanto, diferentes combinações de modelos e metodologias podem ser formadas
Cascata + APOO
Cascata + Projeto Estruturado
Iterativo + Projeto Estruturado
Iterativo + APOO