Você está na página 1de 48

Ciclos de Vida de Software

O conceito de Ciclo de Vida de Software um


paradigma da Eng.Software.

Existem vrios modelos de ciclo de vida de software,
alguns cobrindo apenas da concepo ao
desenvolvimento, enquanto outros cobrem
concepo, desenvolvimento, implantao e
manuteno.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Modelo didtico que divide o ciclo de vida de 5 a 12
fases (cf. o autor).
Criado por Winston W. Royce (1970) e aperfeioado
por Barry Boehm (1976).
Adequao:
Projetos grandes (cobre todas as fases), quando os
requisitos esto claramente definidos no incio do
desenvolvimento, com complexidade baixa e riscos
tcnicos e de projeto bem entendidos.


Ciclos de Vida de Software
Modelo Clssico (Cascata)
Definio de Requisitos:
Requisito: (adj.) O que se requisitou ou requereu.
Condio necessria para obteno de certo
objetivo. Quesito.
Foco:
No usurio e no processo (voz do cliente e voz do
processo).
Tarefas:
Extrair os requisitos, especificar cada um deles,
redigir uma Definio de Requisitos e valida-los junto
ao usurio.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Definio de Requisitos:
Atravs de consulta ao usurio e observao do
processo (existem outras possibilidades, por exemplo
analisar os documentos em uso no sistema
convencional), extrair os servios e as metas a serem
atingidas, bem como as restries serem respeitadas.
Qual a qualidade desejada para o sistema em termos
de funcionalidade, desempenho, flexibilidade de uso,
etc.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Especificar quais os requisitos e no como eles
devero ser obtidos (detalhes de implementao).
Esse refinamento ser feito na fase de anlise e/ou
projeto.
Diferena entre:
Informar clientes classificados em ordem alfabtica
crescente.
Informar clientes classificados em ordem alfabtica
crescente (Tabela TC_Cliente, campo TC_Nome.
Montar viso para a tabela ordenada).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Praticamente todo requisito identificado precisa de
uma especificao.

Especificar: (v.t.d.) Indicar espcie de; explicar
detalhadamente; Descrio rigorosa e minuciosa das
caractersticas que um material, uma obra ou um
servio devero apresentar.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Por exemplo:
Requisito:
O sistema deve aceitar multi-empresas.
Especificao:
Cada empresa tem CNPJ, endereo e Diretoria prpria.
Os clientes so cadastrados para a Holding e no por
empresa. Atualmente existem 4 empresas, mas esse
nmero poder chegar a 10 unidades.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Definio de Requisitos:
Gerar um Documento de Especificao, redigido em
linguagem inteligvel para o usurio.
Finalidade:
1. O usurio dever analisar e confirmar se a descrio
est correta e se atende suas necessidades e
expectativa.
2. Ser usados pelos desenvolvedores, durante o
processo de construo do produto.
3. Quando o produto for entregue, ser usado pelo
usurio para valida-lo (ver se est conforme os
requisitos).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Caractersticas do Documento de Especificao:
1. Linguagem de domnio do usurio;
2. Preciso;
3. Completo;
4. Consistente;
5. Sem redundncias;
6. Sem ambigidades.
Por exemplo:
O sistema deve ser preciso. (qual o significado de
preciso nesse contexto ?)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
(Doc.de Especificao):
Requisitos Funcionais:
O que o produtos de software deve fazer
(funcionalidade).
Requisitos No Funcionais:
1. Confiabilidade Disponibilidade
Integridade
Segurana
Ciclos de Vida de Software
Modelo Clssico (Cascata)
(Doc.de Especificao):
Requisitos No Funcionais (cont.):
2. Acurcia dos resultados (exatido).
3. Desempenho
4. Problemas da interface homem-mquina
5. Restries fsicas e operacionais
6. Portabilidade
7. Etc.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Aplicar os 5 Princpios da Engenharia de Software,
especialmente: Abstrao, Decomposio e
Generalizao.
Abstrao: Fixar-se nos aspectos importantes,
ignorando os detalhes.
Decomposio: Dividir em partes para lidar com a
complexidade.
Generalizao: Buscar caractersticas comuns
relegando as caractersticas especficas ( uma forma
de abstrao).
No usamos: Formalidade e Flexibilizao.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Anlise de Requisitos:
Foco:
Nos objetivos, restries e alternativas.
Ferramentas:
Metodologias/tcnicas de modelagem e anlise,
ferramentas (editores grficos, CASEs etc).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Anlise de Requisitos:
Obter uma compreenso completa dos requisitos de
software, atravs de:
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Definio detalhada do domnio das informaes e do
domnio da funcionalidade requerida para o software.

O desenvolvedor deve definir as estruturas de dados,
conhecendo cada uma delas (tipo, tamanho, volume,
consistncias, inter-relao, se disponvel em bases de
dados, forma de coleta etc).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Tambm deve definir detalhes da funcionalidade
(detalhes de como o sistema deve se comportar, tanto
em funcionalidade como em performance, segurana
etc.)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Projeto de Software:
Foco:
Nos dados, componentes de software e no produto
final de software.
Ferramentas:
Metodologias/tcnicas de modelagem e anlise,
ferramentas (editores grficos, ferramentas CASE etc).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Representao das funes do sistema, em uma forma
que possa ser transformada em programas
executveis.
Decompor o produto de software desejado em partes
(programas, mdulos, componentes etc).
Recompor, pensando no produto final (monoltico)
Criar documento de especificao de cada parte do
produto:
O que ela deve fazer (entradas, comportamento,
sadas).
Definir a relao entre componentes
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Relao entre componentes:
Forte coeso (interna)
Fraco acoplamento (externo)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Projeto Preliminar:
Transformao dos requisitos numa arquitetura de
dados e de funcionalidade.
Projeto Detalhado:
Refinamento das representaes estruturais, obtendo-
se assim representaes detalhada dos algoritmos
(nos casos em que for necessrio) e dos dados.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Detalhe: O ciclo de vida clssico tem um foco
acentuado no produto de software e no o processo,
portanto est faltando um projeto operacional,
visando detalhes do processo de construo (esforos,
responsabilidades, milestones, etc).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Codificao:
Foco:
Nos algoritmos e nas linguagens de programao
(sintaxe, limitaes, funcionalidade disponvel,
Ferramentas:
Linguagens de programao, geradores de cdigo
fonte, CASE de amplo espectro etc.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Teste:
Foco:
Nas especificaes e nas sadas do produto de
software.
Ferramentas:
Tcnicas de testagem, procedimentos da Qualidade,
ferramentas de testagem.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Testar contra especificaes de requisitos
Testar contra padres da instalao
Nomenclatura de campos, tabelas
Padres de interfaces
Padres de qualidade
Unitrio (cada unidade de software)
De Integrao do sistema (todos os omponentes, a
partir de uma estratgia de aglutinao progressiva).
De integrao entre sistemas (sistema gerado com
outros sistemas com os quais haver troca de
informaes).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Elementos necessrios:
Padres da instalao e Def. Requisitos
Ferramentas de teste
Plano de teste
Critrios de teste
Critrios de completude (quando parar ?)
Gerenciamento dos casos de teste
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Recomendao IEEE (Computer Dictionary). No usar
o termo bug; usar:
Defeito (Fault)
Instruo ou definio incorreta.
Falha (Failure)
Resultados incorretos
Erro (Mistake)
Falha resultante de ao humana
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Testes especiais:
Performance
Segurana
Stress etc
Teste na rea de produo:
Teste inicial (alfa)
Beta teste
Ciclos de Vida de Software
Modelo Clssico (Cascata)
(Operao e) Manuteno:
Foco:
Depende do tipo de manuteno (algoritmo, usurio,
processo, tecnologia etc)
Ferramentas:
Linguagens de programao, ferramentas CASE etc . A
rigor deveria ser o mesmo foco e as mesmas
ferramentas da fase de Definio de Requisitos (volta
s origens).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Fase mais longa do ciclo.
Tipos de manuteno:
Corrigir erros remanescentes
Adaptar a novas situaes e necessidades
Preparar para futuras alteraes
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Implantao:
Transferir da rea de desenvolvimento para a rea de
produo.
Preparar rea de rede (grupo, usurios, diretrios,
direitos)
Converso de arquivos ou
Gerao dos arquivos (caso Biblioteca)
Treinamento dos usurios
Integrar tecnologias
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Falhas do modelo:
Todo modelo tem suas limitaes (abstrao, esttico,
foco (viso) do modelo, etc.

1) Imagina o processo como sendo seqencial e
progressivo, onde cada fase estanque, mesmo com as
setas indicando retorno a fases anteriores,cada fase
vista isoladamente. Tenta manter a linearidade para
manter o processo previsvel e de fcil gerenciamento.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
2) A fase de Anlise s se inicia aps obteno dos
requisitos, que devem ser:
Completos
Corretos
No ambguos
No redundantes
Sem detalhes de implementao
Quando isso possvel ?
Ciclos de Vida de Software
Modelo Clssico (Cascata)
3) No estimula o desenvolvimento conjunto. O
trabalho com o usurio est restrito fase de Definio
de Requisitos.

4) A entrega do produto s ocorre depois de
terminado. Quando o usurio tem a chance de ver se o
produto atende suas necessidades e expectativa, ele j
est pronto.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
5) No prev um Estudo de Viabilidade, que deveria
iniciar ao trmino da Definio de Requisitos e, no
mximo prolongar-se at o incio da Anlise.

Sua finalidade evitar que recursos sejam gastos na
tentativa de solucionar o problema de maneira errada,
alm de verificar se a soluo vivel do ponto de vista
econmico (investimos poucos recursos para termos
certeza de que o projeto vivel, evitando perder
muitos recursos)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
O Estudo de Viabilidade dever avaliar:
Se o problema passvel de soluo via software
As possveis solues (desenvolver, comprar)
Estudo de custos x benefcios
Deve conter:
Definio do problema
Possveis solues (inclusive alternativas)
Benefcio de cada uma delas
Recursos necessrios, custo e prazo de cada uma delas
Ciclos de Vida de Software
Modelo Clssico (Cascata)
O Estudo de Viabilidade dever avaliar:
Se o problema passvel de soluo via software
As possveis solues (desenvolver, comprar)
Estudo de custos x benefcios
No Estudo de Viabilidades investimos poucos recursos
para termos certeza de que o projeto vivel, evitando
perder muitos recursos.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
6) No menciona o Gerenciamento do Processo de
Software, que ocorre simultaneamente a construo do
produto e altamente influenciado pela complexidade
deste ltimo.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Ciclos de Vida de Software
Modelo Clssico (Cascata)
7) No permite Engenharia Reversa (reconstruo
de sistema legados).
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Gerenciar o processo:
Objetivo: Controlar o processo.
1. Adaptar o modelo de gerenciamento do processo ao
tipo de ciclo de vida e tipo de produto.
2. Definir Polticas (autorizao de acessos, perodos
de backup, responsabilidades, documentao
obrigatria etc).
3. Obter recursos
4. Gerenciar recursos
5. Corrigir desvios do projeto e monitorar prazos e
custos.
Ciclos de Vida de Software
Modelo Clssico (Cascata)
Na prtica:
Presses sobre o tempo
Receber ordens para fazer (mandatrio)
DSI fazendo poltica de boa vizinhana
Diretoria fazendo poltica de boa vizinhana
O desenvolvimento j estava previsto em P.D.I.
Referncias
Modelos de Ciclos de Vida de Software .1 Modelo em
Cascata. Prof. Cristiano R R Portella