Buscar

Engenharia de Software - Processos

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de 
Software 
Engenharia de Software 
Sistematizar o processo de criação e manutenção de 
software. 
 
Ciclos de Vida de Sofware 
 Ciclo de Vida Clássico (Cascata) 
 Prototipação 
 Modelo Espiral 
 Técnicas de 4a Geração 
 
Ciclo de Vida Clássico 
Comunicação 
Início do projeto 
Levantamento das 
necessidades 
Planejamento 
Estimativas 
Cronograma 
Acompanhamento 
Modelagem 
Análise 
Projeto 
Construção 
Codificação 
testes Emprego 
entrega 
Suporte 
feedback 
Engenharia de 
Sistemas 
Análise de 
Requisitos 
Projeto 
Codificação 
Testes 
Manutenção 
Cascata 
Problemas com o Ciclo de Vida Clássico 
 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 
o cliente deve ter paciência. Uma versão executável do 
software só fica disponível numa etapa avançada do 
desenvolvimento 
fim 
início 
construção 
produto 
refinamento 
protótipo 
avaliação 
protótipo 
construção 
protótipo 
projeto 
rápido 
obtenção 
dos 
requisitos 
 Prototipação 
Problemas com a 
Prototipação 
cliente não sabe que o software que ele vê não considerou, 
durante o desenvolvimento, a qualidade global e a 
manutenibilidade a longo prazo. Não aceita bem a ideia que a 
versão final do software vai ser construída e "força" a utilização 
do protótipo como produto final. 
 
Problemas com a Prototipação 
desenvolvedor freqüentemente faz uma 
implementação comprometida (utilizando o que 
está disponível) com o objetivo de produzir 
rapidamente um protótipo. Depois de um tempo ele familiariza 
com essas escolhas, e esquece que elas não são apropriadas para o produto 
final. 
 Prototipação (comentários) 
Ainda que possam ocorrer problemas, a prototipação 
é um ciclo de vida eficiente  
A chave é definir-se as regras do jogo logo no 
começo  
O cliente e o desenvolvedor devem ambos concordar 
que o protótipo seja construído para servir como 
um mecanismo a fim de definir os requisitos  
Ciclo de Vida em Espiral 
 engloba as melhores características do ciclo de vida Clássico e da 
Prototipação, adicionando um novo elemento: a Análise de Risco 
 segue a abordagem de passos sistemáticos do Ciclo de Vida 
Clássico incorporando-os numa estrutura iterativa que reflete mais 
realisticamente o mundo real 
 usa a Prototipação, em qualquer etapa da evolução do produto, 
como mecanismo de redução de riscos 
decisão de continuar ou não 
 direção de um 
sistema 
concluído 
avaliação 
do cliente engenharia 
análise dos 
riscos 
planejamento 
Espiral 
início 
Atividades do Ciclo de Vida em Espiral 
Planejamento: determinação dos objetivos, 
alternativas e restrições 
Análise de Risco: análise das alternativas e 
identificação / resolução dos riscos 
Construção: desenvolvimento do produto no 
nível seguinte 
Avaliação do Cliente: avaliação do produto 
e planejamento das novas fases 
avaliação 
do 
cliente 
engenharia 
análise dos 
riscos 
planejamento 
é, atualmente, a abordagem mais realística para o 
desenvolvimento de software em grande escala. 
usa uma abordagem que capacita o desenvolvedor e o 
cliente a entender e reagir aos riscos em cada etapa 
evolutiva. 
pode ser difícil convencer os clientes que uma abordagem 
"evolutiva" é controlável 
exige considerável experiência na determinação de riscos 
e depende dessa experiência para ter sucesso 
 Espiral (comentários) 
 o modelo é relativamente novo e não tem sido amplamente 
usado 
Demorará muitos anos até que a eficácia desse 
modelo possa ser determinada com certeza 
absoluta. 
 Espiral (comentários) 
Técnicas de 4a Geração 
Concentra-se na capacidade de se especificar o software a uma 
máquina em um nível que esteja próximo à linguagem natural. 
 
Engloba um conjunto de ferramentas de software que 
possibilitam que: 
 o sistema seja especificado em uma linguagem de 
alto nível e 
o código fonte seja gerado automaticamente a partir 
dessas especificações 
Obtenção dos 
Requisitos 
Estratégia do 
“Projeto” 
Implementação 
usando 4GL 
 Testes 
Técnicas de 4a Geração 
Ferramentas do ambiente de 
desenvolvimento de software de 4GL 
O ambiente de desenvolvimento de software que sustenta o ciclo de vida 
de 4a geração inclui as ferramentas: 
 linguagens não procedimentais para consulta de banco de dados 
 geração de relatórios 
 manipulação de dados 
 interação e definição de telas 
 geração de códigos 
 capacidade gráfica de alto nível 
 capacidade de planilhas eletrônicas 
1. Revisões
2. Documentação
3. Controle de
Mudanças
CCCooonnnssstttrrruuuçççãããooo
1. Entender
2. Modificar
3. Revalidar
Manutenção
 “mudanças”
OOOpppeeerrraaaçççãããooo
SSSOOOFFFTTTWWWAAARRREEE
PPPRRROOODDDUUUTTTOOO
AAAtttiiivvviiidddaaadddeeesss dddeee AAApppoooiiiooo
1. Análise de
Sistema
2. Planejamento
do Projeto
3. Análise de
Requisitos
Definição
“o que” Desenvolvimento
“como”
1. Projeto de
Software
2. Codificação
3. Teste

 
 
Engenharia de Software uma visão genérica 
Abordagem Clássica vs. Abordagem Ágil 
• Ciclo de vida ágil é semelhante ao clássico 
• Define o que o cliente quer e inicia o projeto 
• Planeja o projeto, calculando o esforço 
• Executa o plano, construindo a solução 
• Monitora resultados e entrega ao cliente 
20 / 
61 
 
Fases 
• Planejamento 
• Sprints (padrão de processo) 
• Reuniões Diárias 
• Revisão 
• Retrospectivas 
• Encerramento 
21 / 
61 
 
Scrum 
23 / 
61 
 
Planejamento 
• Relativamente curto 
• Projeto da arquitetura do sistema 
• Estimativas de datas e custos 
• Criação do backlog 
– Participação de clientes e outros departamentos 
• Levantamento dos requisitos e atribuição de prioridades 
• Definição de equipes e seus líderes 
• Definição de pacotes a serem desenvolvidos 
24 / 
61 
 
Backlog 
Sprint - Reuniões 
Diárias 
• Cerca de 15 minutos de duração 
• Todos respondem às perguntas: 
– O que você realizou desde a última reunião? 
– Quais problemas você enfrentou? 
– Em que você trabalhará até a próxima reunião? 
• Benefícios: 
– Maior integração entre os membros da equipe 
– Rápida solução de problemas 
• Promovem o compartilhamento de conhecimento 
– Progresso medido continuamente 
• Minimização de riscos 
25 / 
61 
 
Sprint - Revisão 
• Deve obedecer à data de entrega 
– Permitida a diminuição de funcionalidades 
 
• Apresentação do produto ao cliente 
– Sugestões de mudanças são incorporadas ao backlog 
 
• Benefícios: 
– Apresentar resultados concretos ao cliente 
– Integrar e testar uma boa parte do software 
– Motivação da equipe 
 
26 / 
61 
 
Nova 
funcionalidade 
Encerramento 
• Finalização do projeto 
• Atividades: 
• Testes de integração 
• Testes de sistema 
• Documentação do usuário 
• Preparação de material de treinamento 
• Preparação de material de marketing 
27 / 
61 
 
Papéis – Product 
Owner 
• Responsável por apresentar os interesses de todos os 
stakeholders 
• Define fundamentos iniciais do projeto, objetivos e planos 
de release 
• Responsável pela lista de requisitos (Product 
Backlog) 
• Certifica se as atividades com maior valor para o negóciosão desenvolvidas primeiro 
• Priorização freqüente das funcionalidades antes de cada 
iteração 
 28 / 
61 
 
Papéis – Scrum Master 
• Responsável pelo sucesso do Scrum 
• Ensina o Scrum para os envolvidos com o projeto 
• Implementa o Scrum na empresa de forma adaptada a sua 
cultura, para continuamente gerar benefícios 
• Certifica se cada pessoa envolvida está seguindo seus papéis 
e as regras do Scrum 
• Certifica que pessoas não responsáveis não interfiram no 
processo 
 
29 / 
61 
 
Papéis – Time 
• Responsável por escolher as funcionalidades a serem desenvolvidas 
em cada interação e desenvolvê-las 
• O time se auto-gerencia, se auto-organiza 
• Todos os membros do time são coletivamente responsáveis pelo 
sucesso de cada iteração 
30 / 
61 
 
31 / 
61 
 
XP – Extreme Programming 
(Programação Extrema) 
XP 
• Fases: 
• Planejamento 
• Projeto 
• Codificação 
• Teste 
32 / 
61 
 
XP 
Planejamento 
• Fase de levantamento de requisitos. 
•  ouvir  histórias 
 
33 / 
61 
 
XP 
Jogo do Planejamento 
• Elaboração das Histórias (Exploração) 
• 1) Histórias determinam algo que o sistema precisa fazer, são 
• descritas pelo cliente. 
• 2) O tempo para elaborar uma história é estimado pelo time. 
• 3) Caso uma história fique muito grande, ela é dividida em 
• tarefas. 
 
34 / 
61 
 
XP 
35 / 
61

Outros materiais