Buscar

Aula3_Engenharia de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Engenharia de Software
Fabíola Yunes Tanisue
fabiola.yunes@gmail.com
Processo de Desenvolvimento 
Software
∗ “Um processo define quem está fazendo o quê, quando 
e como alcançar um certo objetivo.”
Processo de Desenvolvimento 
Software
e como alcançar um certo objetivo.”
(Ivan Jacobson)
∗ “É um roteiro que determina quais são as tarefas necessárias
e em que ordem elas devem ser executadas para construir
Processo de Desenvolvimento 
Software
e em que ordem elas devem ser executadas para construir
softwares de alta qualidade.
∗ Ele organiza uma atividade que pode, sem controle, tornar-
se caótica.
∗ O processo adotado deve ser adaptado ao tipo de software
que se está construindo.
∗ É o alicerce ou esqueleto
de um processo de software completo.
∗ Contém as atividades de arcabouço
que são
Arcabouço de Processo
Contém as atividades de arcabouço
que são
aplicáveis a todos os projetos de
software.
∗ Engloba um conjunto de atividades
guarda-chuva
que são exercidas durante todo o
processo
∗ Quais são as atividades de arcabouço aplicáveis à 
maioria dos projetos de software?
Arcabouço de Processo
maioria dos projetos de software?
∗ Comunicação
∗ Planejamento
∗Modelagem
∗ Construção
∗ Implantação
∗ Quais são as atividades guarda-chuva típicas que 
ocorrem ao longo de um processo?
Arcabouço de Processo
∗ Acompanhamento e controle do projeto de software.
∗ Gestão de risco.
∗ Garantia de qualidade de software.
∗ Revisões técnicas formais.
∗ Medição.
∗ Gestão de configuração de software.
∗ Gestão de reusabilidade.
∗ Preparação e produção do produto de trabalho.
∗ Atrasos na entrega
∗ Custos crescentes
∗ Problemas de qualidade
Sintomas de Falha de Processo
∗ Problemas de qualidade
∗ Funções não funcionam corretamente
∗ Reclamações de clientes
∗ O trabalho tem que ser refeito
∗ Funcionários frustrados
∗ Descrevem as características de processos efetivos.
∗ Definem quais ações devem ser priorizadas e quais
Modelos de Maturidade
∗ Definem quais ações devem ser priorizadas e quais
objetivos devem ser atingidos.
∗ Reúnem conhecimento e experiências diversas num único
modelo.
∗ Podem ser usados para comparar organizações
diferentes quanto a eficácia dos seus processos.
∗ O CMMI é um metamodelo de processo, ele define as
características de processo que devem existir quando uma
organização deseja estabelecer um processo de software
CMMI (Capability Maturity Model 
Integration)
organização deseja estabelecer um processo de software
que seja completo.
∗ É uma realização significativa em engenharia de software.
Ele oferece uma discussão abrangente das atividades e
ações que devem estar presentes quando uma organização
constrói software de computadores. Mesmo que uma
organização apte pro não adota-lo em detalhes.
∗ Cada área de processo é avaliada e classificada de acordo com 
os seguintes níveis:
CMMI (Capability Maturity Model 
Integration)
∗ Nível 1: Inicial.
∗ Nível 2: gerenciado.
∗ Nível 3: definido.
∗ Nível 4: quantitativamente gerenciado.
∗ Nível 5: otimização.
CMMI (Capability Maturity Model 
Integration)
∗ A existência de um
processo não é garantia
de que o software será
entregue no prazo, de
Avaliação de Processo
entregue no prazo, de
que satisfaça as
necessidades do cliente.
∗ O processo deve ser
avaliado para garantir que
ele satisfaça a um
conjunto de critérios
básicos.
∗ SCAMPI
∗ CBA IPI
Avaliação de Processo
∗ Norma SPICE (ISO/IEC 15504)
∗ Norma ISO 9001:2000 para Software
Modelo o de Desenvolvimento 
Software
∗ Um modelo de prescritivo de processo preenche o
arcabouço de processo com conjuntos explícitos de
Modelos Prescritivos de Processo
arcabouço de processo com conjuntos explícitos de
tarefas para ações de engenharia de software.
∗ Cascata;
∗ Incremental;
∗ RAD
∗ Também chamado de ciclo de vida clássico
∗ Sugere uma abordagem sistemática e sequencial para 
Modelo em Cascata
∗ Sugere uma abordagem sistemática e sequencial para 
o desenvolvimento de software
∗ Por que o modelo de cascata frequentemente falha?
∗ Projetos reais raramente seguem o fluxo sequencial que o 
Modelo em Cascata
∗ Projetos reais raramente seguem o fluxo sequencial que o 
modelo propõe, as modificações podem causar confusão à 
medida que a equipe de projeto prossegue;
∗ É difícil para estabelecer todos os requisitos inicialmente;
∗ O cliente precisa ter paciência porque uma versão executável do
programa só ficará disponível no final do processo;
∗ O modelo leva a “estados de bloqueio”, nos quais membros da
equipe ficam esperando outros membros terminar a sua parte
∗ Combina elementos do modelo em cascata aplicado
de maneira iterativa;
Modelo Incremental
de maneira iterativa;
∗ Aplica a sequências lineares de forma racional à medida que o
tempo passa. A cada sequência linear produz “incrementos” do
software passiveis de serem entregues, que fornecem
Modelo Incremental
software passiveis de serem entregues, que fornecem
progressivamente mais funcionalidade;
∗ O primeiro incremento é chamado de núcleo do produto;
∗ O modelo incremental é particularmente útil quando não há
mão-de-obra/recursos disponíveis para uma implementação
completa.
∗ É um modelo de processo de software incremental
que enfatiza um ciclo de desenvolvimento curto;
Modelo RAD
∗ Recomendável quando uma aplicação pode ser
modularizada de maneira que a função principal
possa ser implementada emmenos de 3 meses.
Modelo RAD
∗ Quais são as desvantagens do modelo RAD?
∗ Exige pessoal suficientes para criar um número de
Modelo RAD
∗ Exige pessoal suficientes para criar um número de
∗ equipes RAD;
∗ Denvolvedores e clientes têm que estar comprometidos
com as atividades rápidas;
∗ Exige que o sistema seja modularizável;
∗ Não é adequado quando os riscos técnicos são altos.
∗ São explicitamente projetados para acomodar um
produto que evolui com o tempo.
Modelos Evolucionários de 
Processo
produto que evolui com o tempo.
∗ A cada iteração, produzem uma versão cada vez mais
completa do software.
∗ Prototipagem;
∗ Espiral;
∗ Modelo de desenvolvimento concorrente.
∗ Auxilia o engenheiro de software e o cliente a
entenderem melhor o que deve ser construído quando
Prototipagem
entenderem melhor o que deve ser construído quando
os requisitos estão confusos;
Prototipagem
∗ Quais são os problemas da prototipagem?
∗ O cliente vê o que parece uma versão executável do
Prototipagem
∗ O cliente vê o que parece uma versão executável do
software, ignorando que consiga funcionar de forma
precária. Na pressa de fazê-lo rodar não foi considerado
qualidade global e manutenibilidade.
∗ Apresar de problemas poderem ocorrer, a prototipagem
pode ser um paradigma efetivo para a engenharia de
Prototipagem
pode ser um paradigma efetivo para a engenharia de
software. O importante é definir as regras do jogo no
inicio, é o cliente concordar que o protótipo será usado
apenas para levantamento de requisitos, depois será
descartado.
∗ Esse modelo foi proposto originalmente por Barry
Boehm.
Espiral
Boehm.
∗ A idéia básica é desenvolver um produto a partir de
pequenas versões incrementais, que pode iniciar com
um modelo em papel e evoluir até versões do sistema
completamente funcionais.
∗ Uma comparação com o modelo em cascata: uma volta 
na espiral equivale à execução do modelo em cascata 
Espiral
na espiral equivale à execução do modelo em cascata 
para uma pequena parte do software.
Espiral
∗ Todas as atividades ocorrem em paralelo mas estão em
diferentes estados.
∗ O modelo define uma série deeventos que vão disparar
Desenvolvimento Concorrente
∗ O modelo define uma série de eventos que vão disparar
transições de estado para estado, para cada uma das
atividades.
∗ Em vez de usar uma sequência como o modelo cascata,
ele define uma rede de atividades.
∗ Pode ser aplicado a todo tipo de desenvolvimento de
software e fornece uma visão exata de como está o
estado do projeto
Desenvolvimento Concorrente
Exemplo: Começo de projeto
A atividade de “comunicação”
completou sua primeira
iteração e está no estadoiteração e está no estado
aguardandomodificações.
A atividade de modelagem passa
do estado nenhum para o estado
em desenvolvimento.
Se o cliente requere mudança nos
requisitos, a modelagem passa de
em desenvovimento para aguardan-
do modificações e a comunicação
passa de aguardando modificações
para em revisão
∗ Modelo em cascata
∗ Modelos incrementais
Modelo o de Desenvolvimento 
Software
– Modelo incremental
– Modelo RAD
∗ Modelos evolucionários
– Modelo de prototipagem
–Modelo espiral
– Modelo de desenvolvimento concorrente
Comparação
Modelo o de Desenvolvimento 
Software
Modelo Incremental Modelo Espiral
∗ Atividades fixas do modelo em ∗ As atividades não são fixas, cada∗ Atividades fixas do modelo em
cascata são usadas em cada
incremento.
∗ As atividades não são fixas, cada
“loop” se concentra mais em uma
determinada atividade.
∗ Objetiva a elaboração de um
produto operacional a cada
incremento, que pode ser testado.
∗ A análise de riscos é uma atividade
essencial no modelo.

Outros materiais