Engenharia de Software - Processos
-
Upload
guitargospel -
Category
Documents
-
view
17 -
download
0
description
Transcript of Engenharia de Software - Processos
![Page 1: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/1.jpg)
Engenharia de
Software
![Page 2: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/2.jpg)
Engenharia de Software
Sistematizar o processo de criação e manutenção de
software.
![Page 3: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/3.jpg)
Ciclos de Vida de Sofware
Ciclo de Vida Clássico (Cascata)
Prototipação
Modelo Espiral
Técnicas de 4a Geração
![Page 4: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/4.jpg)
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
![Page 5: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/5.jpg)
Engenharia de
Sistemas Análise de
Requisitos Projeto
Codificação
Testes
Manutenção
Cascata
![Page 6: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/6.jpg)
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
![Page 7: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/7.jpg)
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
![Page 8: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/8.jpg)
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.
![Page 9: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/9.jpg)
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.
![Page 10: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/10.jpg)
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
![Page 11: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/11.jpg)
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
![Page 12: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/12.jpg)
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
![Page 13: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/13.jpg)
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
![Page 14: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/14.jpg)
é, 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)
![Page 15: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/15.jpg)
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)
![Page 16: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/16.jpg)
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
![Page 17: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/17.jpg)
Obtenção dos
Requisitos Estratégia do
“Projeto” Implementação
usando 4GL Testes
Técnicas de 4a Geração
![Page 18: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/18.jpg)
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
![Page 19: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/19.jpg)
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
![Page 20: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/20.jpg)
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
![Page 21: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/21.jpg)
Fases
• Planejamento
• Sprints (padrão de processo)
• Reuniões Diárias
• Revisão
• Retrospectivas
• Encerramento
21 /
61
![Page 22: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/22.jpg)
Scrum
![Page 23: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/23.jpg)
23 /
61
![Page 24: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/24.jpg)
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
![Page 25: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/25.jpg)
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
![Page 26: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/26.jpg)
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
![Page 27: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/27.jpg)
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
![Page 28: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/28.jpg)
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ócio
são desenvolvidas primeiro
• Priorização freqüente das funcionalidades antes de cada
iteração
28 /
61
![Page 29: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/29.jpg)
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
![Page 30: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/30.jpg)
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
![Page 31: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/31.jpg)
31 /
61
XP – Extreme Programming
(Programação Extrema)
![Page 32: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/32.jpg)
XP
• Fases:
• Planejamento
• Projeto
• Codificação
• Teste
32 /
61
![Page 33: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/33.jpg)
XP
Planejamento
• Fase de levantamento de requisitos.
• ouvir histórias
33 /
61
![Page 34: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/34.jpg)
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
![Page 35: Engenharia de Software - Processos](https://reader033.fdocumentos.tips/reader033/viewer/2022050809/5695d2ad1a28ab9b029b4f4a/html5/thumbnails/35.jpg)
XP
35 /
61