Escolar Documentos
Profissional Documentos
Cultura Documentos
2
Modelos de Processos de Software;
Modelo em Cascata
Prototipação
Modelo Iterativo
Modelo em Espiral
Métodos Ágeis
Desenvolvimento Dirigido por Modelos
3
Um conjunto estruturado de atividades que são
necessárias para se desenvolver um sistema de
software
• Especificação;
• Projeto;
• Implementação;
• Validação;
• Evolução.
Um modelo de processo de software é uma
representação abstrata de um processo. Ele apresenta
uma descrição do processo a partir de uma dada
perspectiva
4
Definição de
Requisitos
Projeto do
Software
Implementação e
Teste de Unidades
Integração e
teste do Sistema
Implantação e
Manutenção
5
Definição dos Requisitos e Análise do
Problema
Projeto do Software
Implementação e Teste de Unidades
Integração e Teste do Sistema
Operação e Manutenção
6
Difícilatender a mudança de requisitos dos
usuários
Apropriado apenas quando os requisitos
são claros desde o início do projeto
Poucos sistemas possuem requisitos
estáveis
O modelo em cascata é principalmente
usado em processos de engenharia onde o
sistema é desenvolvido em diversas
localidades (modularização)
Ainda assim, cerca de 40% de todos os
projetos utilizam este modelo!
7
Especificação Versão Inicial
Descrição em Versão
Desenvolvimento
Alto Nível Intermediária
8
Desenvolvimento Exploratório
• O objetivo é trabalhar com os clientes (stackholders)
para criar iterativamente um sistema final a partir de
uma especificação inicial.
• Deve-se iniciar o processo com um conjunto de
requisitos muito bem entendidos e novas
características são adicionadas a medida que vão
sendo propostas pelo usuário
Protótipo Descartável
• Tem como objetivo o entendimento dos requisitos do
sistema
9
Problemas
• Falta de visibilidade;
• Sistemas possuem geralmente uma estrutura
pobre;
• Habilidades especiais (i.e. Em linguagens de
prototipação rápida) podem ser necessárias.
Aplicabilidade
• Em projetos de pequenos e de médio tamanho;
• Em partes de sistemas mais complexos(i.e. As
interfaces do usuário);
• Em programas de curto ciclo de vida.
10
Definição de Atribuição de Projeto da arquitetura
requisitos iniciais requisitos à iterações do sistema
Desenvolvimento
Validação do Integração do Validação
do incremento
Incremento Incremento do Sistema
do sistema Sistema
Final
11
Uma parte usável do sistema é entregue
ao cliente a cada iteração (incremento);
Incrementos iniciais podem ser usados
como protótipos para clarificação de
requisitos;
Baixo risco de falha geral do projeto;
Os sub-sistemas de mais alta prioridade
tendem a passar por testes mais
intensos.
12
CUSTO ACUMULADO
AVANÇO
Determina objetivos
Avalia alternativas,
alternativas e restrições identifica e resolve
Análise riscos
de Riscos
Análise
de Riscos
Análise
de Riscos Protó-
Análise Protó- tipo
de Riscos Protó- tipo 3 Opera-
tipo 2 cional
Revisão Protótipo 1
Plano de Requisitos Simulações, modelos, ...
Plano de Ciclo Conceito de
de Vida Operação Requisitos
de Software Projeto Projeto
do pro- Detalha-
Plano de duto de do
Desenvolvimento Validação dos software
Requisitos
Código
Plano de Teste
Integração e Testes Validação e Veri- de
Próximas etapas ficação do Pro- uni-
do plano jeto Inte- dade Desenvolve e verifica
Teste gração Produto do Próximo
Imple- de acei-e teste
menta- tação Nível
ção
13
O Processo é representado por meio de
uma espiral ao invés de uma sequência
de atividades com retro-alimentação;
Não existem fases fixas tal como
especificação ou projeto – loops na
espiral são escolhidos dependendo do
que é requerido;
Riscos são avaliados explicitamentee
resolvidos durante todo o processo;
14
Definição dos objetivos
• Especificação dos objetivos para a fase corrente são
identificados;
Avaliação e redução de riscos
• Riscos são avaliados e atividades são especificadas
para reduzir os riscos chave;
Desenvolvimento e validação
• Um modelo de desenvolvimento é escolhido para o
projeto que pode ser qualquer dos modelos vistos
anteriormente
Planejamento
• O projeto é revisto e a próxima fase da espiral é
planejada
15
Baseado modelo interativo, porém mais
“leve” e centrado no ponto de vista das
pessoas envolvidas
• Cada fase demora dias e não semanas
• Envolvidos ficam presentes numa mesma sala
Enfatizam
trabalho no software como
uma medida primária de progresso
• Utiliza feedback ao invés de planejamento como
mecanismo primário de controle
• Disponibilização regular de versões do software
16
Extreme Programming (XP)
• Fases pequenas e rápidas (alguns dias)
• Testes são automatizados: metas p/ desenvolvimento
• Programação feita em duplas
• Projeto e arquitetura surgem por refactoring
SCRUM
• Usado no gerenciamento de projetos de software
• Ciclos formados por várias interações (sprint)
• Breves reuniões diárias (daily scrum)
18
Definir visões
abstratas para o
projeto até chegar
no código
Modelos são
refinados através
de transformações
sucessivas
(Greenfield and Short 2003)
Modelo Específico de Domínio
(modelos em XML)
MetaCASE DSLTools
Plataforma
(WEB + Desktop + Celular)
Processos de Software são conjuntos de
atividades envolvidas na criação de um
software;
Modelos de processo de software são
representações abstratas destes processos;
As atividades comuns a todos os modelos
são: especificação, projeto, implementação,
validação e evolução;
Modelos gerais de processo descrevem a
organização do processo de software.
Exemplos incluem o modelo em cascata,
prototipagem, iterativo, modelos ágeis e
baseado em componentes;
21
R. S. Pressman, Engenharia de Software,
McGraw Hill, 6a Ed., 2002. Chap. 3.
I. Sommerville. Software Engineering. 7th Ed.
Addison-Wesley, 2004. Chap. 4.
22