A maior rede de estudos do Brasil

Grátis
14 pág.
[03] EngSW - Processo de Desenv de Sftw v1 6

Pré-visualização | Página 1 de 2

1
Teoria de Engenharia de 
Software
Aula 3
Processo de Desenvolvimento de Software
Modelos Clássicos
Prof. Rafael Targino
rtargino@unicarioca.edu.br
2
Conteúdo da Aula
• Processo de Desenvolvimento de Software
– Cascata
– Cascata com Prototipação
– Modelo em V (Cascata com fases de Testes)
– Iterativo e Incremental
– Espiral
Engenharia de Software
2
3
Modelo de Ciclo de Vida em 
Cascata
• Método sistemático e sequencial
• O resultado de uma fase se constitui na entrada 
da outra
• Também conhecido como Modelo Clássico
Modelo em Cascata (ou Sequencial)
• O modelo em cascata move-se para a próxima fase somente 
quando a fase anterior está completa 
• Não há pulo para frente, para trás ou sobreposição entre as 
fases.
Assume que o 
Planejamento do 
Projeto pode ser feito 
para o projeto inteiro 
no início do projeto!
3
5
Problemas Modelo de Ciclo de Vida em 
Cascata
• Rigidez do processo
• Projetos reais raramente seguem um fluxo 
seqüencial
• Assume que é possível declarar 
detalhadamente todos os requisitos antes do 
início das demais fases do desenvolvimento.
– propagação de erros pelas as fases do processo.
• Uma versão de produção do sistema não 
estará pronta até que o ciclo do projeto de 
desenvolvimento chegue ao final. 
Mas Mudanças no Projeto Sempre 
Ocorrem
• Clientes tem baixa percepção do problema no 
início do projeto
• Nossa capacidade de planejar mais do que 2 ou 3 
meses do projeto é muito limitada
– Frequentes estouros de prazos e orçamentos...
• O negócio muda muito rápido
• A equipe não sabe a melhor maneira de executar o 
projeto no início
Engenharia de Software
Principalmente se considerarmos ambientes mais 
dinâmicos como desenvolvimento de software, 
publicidade, jornalismo, entreterimento entre outros...
4
7
Cascata com Prototipação
• Tem como objetivo assegurar que os 
requisitos do sistema foram bem entendidos. 
• Técnica frequentemente aplicada quando:
– há dificuldades no entendimento dos requisitos 
do sistema
– há requisitos que precisam ser mais bem 
entendidos
– O próprio usuário não tem compreensão completa 
do problema
Engenharia de Software
8
Prototipação
5
9
Tipos de Protótipos
• Evolutivo
– Protótipo desenvolvido via programação para ser 
usado de base para o produto final. Terá a cara do 
produto final.
• Descartável
– Protótipo desenvolvido rapidamente via 
programação e com baixa qualidade de código. Só 
serve para validar os requisitos de usuários e 
depois deve ser jogado fora.
• Baixa Fidelidade
– Protótipo desenvolvido em papel ou em 
ferramentas gráficas, mas sem se preocupar com a 
cara final do sistema
Engenharia de Software
10
Cascata com Prototipação
Engenharia de Software
6
11
Modelo em V (Cascata com fases de Testes)
• Apesar de 
adicionar uma 
fase de teste 
para cada fase 
do cascata, 
ainda possui a 
característica de 
entregar 
software apenas 
no final de todo 
o processo
Engenharia de Software
12
Novo Modelo de Ciclo de Vida
Vamos assumir nossa incompetência em 
planejamento a longo prazo e vamos dividir o 
planejamento em pequenos pedaços 
chamados de iteração!
 Ciclo de Vida Incrementa e Iterativo
7
13
Vários Mini-Cascatas
• Cada cascata é uma iteração...
I t e r a ç ã o 1 I t e r a ç ã o 2 I t e r a ç ã o 3
14
Modelo Iterativo e Incremental
• Dividir para conquistar
• O desenvolvimento ocorre em várias 
iterações, cada uma delas resultando em 
extensão de funcionamento e/ou maior 
conhecimento do sistema
• As funcionalidades mais críticas devem ser 
tratadas nas primeiras iterações
Engenharia de Software
8
Modelo Iterativo e Incremental
Incremental
Iterativo
16
Modelo Iterativo e Incremental
• Vantagens
– Antecipa possíveis problemas no 
desenvolvimento de software através de 
versões preliminares 
– Entrega acelerado dos serviços ao cliente
– Engajamento do usuário do sistema com o 
processo de desenvolvimento
– Redução do risco de lançar o projeto no 
mercado fora da data planejada. Identificando 
os riscos numa fase inicial o esforço 
despendido para gerenciá-los ocorre cedo, 
quando as pessoas estão sob menos pressão 
do que numa fase final de projeto. 
9
17
Modelo Iterativo e Incremental
• Desvantagens
–Passa a ter uma camada a mais de 
gerenciamento, que é o controle e a 
ordem de cada iteração
–Problemas Contratuais pois o software 
desenvolvido pode caminhar para um 
produto muito diferente do que foi 
contratado
Engenharia de Software
18
Processo em Espiral – preocupação explícita 
com os riscos do projeto de 
desenvolvimento
10
19
Processo em Espiral: Setores da 
Espiral
1. Planejamento
– O projeto é revisado e a próxima fase da espiral é 
planejada
2. Análise de Risco
– Os riscos são avaliados e são adotadas as atividades para 
reduzir os ricos principais
3. Engenharia ou Desenvolvimento
– É escolhido um modelo de desenvolvimento para o sistema, 
que pode ser qualquer um dos modelos genéricos
4. Análise do Cliente / Definição dos Objetivos
– Identificam-se os objetivos específicos da próxima fase
Engenharia de Software
20
Processo em Espiral
• O processo é representado por uma espiral 
ao invés de ser representado como uma 
sequencia de atividades
• Cada volta da espiral (loop) representa uma 
única fase de desenvolvimento de software
• Capacita o desenvolvedor e o cliente a 
entender e a reagir aos riscos em cada etapa 
evolutiva
• Engloba as melhores características do ciclo 
de vida Clássico como o da Prototipação 
adicionando um novo elemento: a Análise de 
Riscos
Engenharia de Software
11
21
Resumo de Processos
• Existem dois grandes grupos de Processo de 
Desenvolvimento de Software
• Sequencial – Cascata e suas variações
• Iterativo – Iterativo e Incremental, Espiral, 
RUP e Métodos Ágeis (serão vistos nas 
próximas)
Engenharia de Software
22
Resumo dos Métodos
Método Planejamento Entrega
Método
Sequencial
Planejamento do 
Todo
Tudo no final do 
projeto
Método Iterativo e 
Incremental
Planejamento do 
Todo
Parciais ao longo 
do Projeto
12
23
Qual seria a melhor abordagem para 
esses projetos? 
• Método Sequencial (Cascata) ou Iterativo?
– Obras do Parque Olímpico da Rio-2016
– Desenvolvimento de um software para pedir comida
– Organização do Rock in Rio
– Construção de uma plataforma de petróleo
• Como seria o andamento (e as entregas) do 
projeto para os cenários abaixo em cada uma 
das abordagens (Sequencial e Iterativo).
– Construção de uma linha férrea entre o Rio de Janeiro 
e Porto Alegre
– Professor ministrando um curso de graduação com 
provas (material ainda não foi preparado)
24
Exercício – Definir o Processo de 
Desenvolvimento
• 1ª Empresa
– Tem um problema mas não sabe muito bem como resolver
– Possui um tempo razoável para desenvolvimento (+ou- 1 
ano)
– Equipe disponível é pequena
– Usuários estão disponíveis
• 2ª Empresa
– Empresa de Engenharia Civil que precisa executar cálculos 
muito bem definidos
– O algoritmo de cálculo possui 3 módulos. Um módulo 
sozinho não traz nenhum valor para a Empresa.
– Precisa do produto completo muito rápido.
– Usuários (engenheiros especialistas) conhecem muito bem 
o problema e estão seguros da solução
Engenharia de Software
13
Obras viárias e VLT no centro do Rio
Abordagem Iterativa
26
Questões que determinam a escolha 
de um processo
• Quão bem os analistas e o cliente podem conhecer os 
requisitos do sistema?
• Quão bem é compreendida a arquitetura do sistema?
• Qual o grau de confiabilidade necessário em relação 
ao cronograma?
• Quanto