3 modelos
-
Upload
daniel-lobao -
Category
Software
-
view
202 -
download
2
Transcript of 3 modelos
![Page 1: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/1.jpg)
Modelos de Processos
Prof. Marcelo de Barros
![Page 2: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/2.jpg)
Estrutura Atividades Fundamentais
1. Comunicação
2. Planejamento
3. Modelagem
4. Construção
5. Implantação
Especificação
Projeto/Implementação
Validação
Evolução
![Page 3: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/3.jpg)
Conceito
◦ Representações abstratas de processos
◦ Determinada perspectiva do processo
Arquitetura
Atividades
Papéis
Fases (ciclo de vida)
Fornece informações parciais
◦ Podem ser ampliados e adaptados
É uma representação abstrata de um processo de software. Cada modelo, representa um processo sob determinada
perspectiva.
![Page 4: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/4.jpg)
Principais modelos
◦ Cascata
◦ Evolucionário
◦ Componentes
◦ Iterativo
◦ Espiral
◦ Métodos Ágeis
![Page 5: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/5.jpg)
Primeiro modelo de processo de desenvolvimento de software
As principais atividades são executadas em estrita sequência
◦ Processo rígido e burocrático:
Não permite erros
Atividades devem ser bem definidas
Atividades Fundamentais:◦ Análise de Requisitos
◦ Projeto de sistema e software
◦ Implementação e teste de unidade
◦ Integração e teste de sistema
◦ Operação e manutenção
![Page 6: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/6.jpg)
Análise de Requisitos◦ Definição dos serviços, restrições e objetivos do sistema
◦ Especificação do sistema
Projeto de sistema e software◦ Divide os requisitos em sistemas de hardware ou de software
◦ Arquitetura geral do sistema
Implementação e teste de unidade◦ Projeto de software é realizado como um conjunto de programas ou
unidades de programa
![Page 7: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/7.jpg)
Integração e teste de sistema◦ Unidades individuais do programa são integrados e testados como um
sistema completo
◦ Verificar atendimento dos requisitos
Operação e manutenção◦ Fase mais longa
◦ O sistema é instalado e colocado em operação
◦ Realizada a correção de erros não detectados
![Page 8: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/8.jpg)
Representação:
![Page 9: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/9.jpg)
Problemas:
1. Projetos reais raramente seguem o fluxo sequencial que o modelo propõe
2. Difícil para o cliente declarar todas as exigências de forma explícita
3. Iterações são onerosas (muitos gastos) e envolvem um retrabalho devido aos custos de produção e aprovação de documentos
4. Durante a fase final, erros e omissões nos requisitos originais são frequentemente descobertos
Só deve ser usado quando os requisitos forem bem compreendidos e houver pouca probabilidade de mudanças radicais durante o desenvolvimento
![Page 10: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/10.jpg)
Baseia-se na ideia de desenvolvimento de uma implementação inicial◦ Expondo o resultado aos comentários do usuário e refletindo esse
resultado por meio de várias versões até que seja desenvolvido um sistema adequado
Atividades de especificação, desenvolvimento e validação são intercaladas
![Page 11: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/11.jpg)
Vantagem:
◦ A especificação pode ser desenvolvida de forma incremental
◦ A medida que os usuários compreendem melhor seu problema, isso pode ser refletido no sistema de software
Desvantagens:
◦ O processo não é visível
◦ Os sistemas são frequentemente mal estruturados
◦ Não é viável manter documentação para cada versão
![Page 12: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/12.jpg)
Representação:
![Page 13: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/13.jpg)
Na maioria dos projetos, existe algum reuso de software
◦ Criação da abordagem orientada a reuso
◦ Dependente de:
Uma grande base de componentes de software que sejam reusáveis
Algum framework de integração desses componentes
Estágios:
◦ Especificação de requisitos
◦ Análise de componentes
◦ Modificação de requisitos
◦ Projeto de sistema com reuso
◦ Desenvolvimento e Integração
◦ Validação do sistema
![Page 14: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/14.jpg)
O processo de Software não é de execução única
◦ Mudança é inevitável em todos os projetos de grande porte
◦ Requisitos mudam
◦ Quando novas tecnologias tornam-se disponíveis, projetos e implementações mudam
Solução:
◦ Desenvolvimento Iterativo
![Page 15: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/15.jpg)
No processo iterativo, a especificação é desenvolvida conjuntamente com o software
◦ Não existe uma especificação completa de software até o incremento final seja especificado
◦ Dois modelos:
Entrega Incremental
Desenvolvimento Espiral
![Page 16: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/16.jpg)
Abordagem intermediária entre o modelo cascata e o modelo evolucionário
Nele:
◦ O cliente identifica, em linhas gerais, os serviços a serem fornecidos pelo sistema (quais são mais importantes e quais são menos)
◦ Um número de incrementos de entrega é definido
◦ Após a identificação dos incrementos, os requisitos dos serviços a serem entregues no 1º incremento são definidos detalhadamente e ele é desenvolvido
![Page 17: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/17.jpg)
Vantagens:
1. Clientes não precisam esperar até a entrega do sistema inteiro para se beneficiarem dele
2. Clientes podem usar os incrementos iniciais como protótipos e ganhar experiência
3. Existe risco menor de falha geral do projeto
4. Os serviços mais importantes recebem mais testes
![Page 18: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/18.jpg)
Originalmente proposto por Boehm, em 1988
O processo é representado por um espiral
Cada loop na espiral representa uma fase do processo de software
◦ O loop mais interno por estar relacionado com à viabilidade do sistema;
◦ O próximo loop, à definição de requisitos;
◦ O próximo ao projeto de sistema e assim por diante.
![Page 19: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/19.jpg)
Cada loop é dividido em 4 setores:
1. Definição de objetivos
2. Avaliação e redução de riscos
3. Desenvolvimento e validação
4. Planejamento
Diferença entre o Espiral e os outros modelos:
◦ Reconhecimento do risco
![Page 20: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/20.jpg)
Modelo Espiral:
![Page 21: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/21.jpg)
Cascata
Baseado em Componentes
Incremental
Espiral
Processo Unificado e RUP
![Page 22: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/22.jpg)
XP (Extreme Programming)
SCRUM
FDD (Feature Driven Development)
Modelagem Ágil
DSDM, ASD, Crystal, ...
![Page 23: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/23.jpg)
Modelo iterativo
Minimizar o risco pelo desenvolvimento de software em curtos períodos
Uma nova versão do software a cada iteração
◦ Reavaliar prioridades do projeto
“Ser ágil é ser eficiente, consequentemente pode-se ganhar tempo”
![Page 24: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/24.jpg)
Os princípios do desenvolvimento ágil valorizam
1. Garantir a satisfação do consumidor entregando rapidamente e continuamente softwares funcionais;
3. Softwares funcionais são a principal medida de progresso do projeto;
5. Cooperação constante entre pessoas que entendem do 'negócio' e desenvolvedores;
6. Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança.
8. Simplicidade;
9. Rápida adaptação às mudanças;
![Page 25: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/25.jpg)
Manifesto ágil
1. Indivíduos e interações entre eles mais que processos e ferramentas
2. Software em funcionamento mais que documentação abrangente
3. Colaboração com o cliente mais que negociação de contratos
4. Responder a mudanças mais que seguir um plano
![Page 26: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/26.jpg)
Críticas
◦ Falta de estrutura e documentação necessárias
◦ Somente trabalhar com desenvolvedores de nível sênior
◦ Incorpora de forma insuficiente o projeto de software
◦ Requer a adoção de muita mudança cultural
◦ Pode levar a maiores dificuldades nas negociações contratuais
![Page 27: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/27.jpg)
![Page 28: 3 modelos](https://reader030.fdocumentos.com/reader030/viewer/2022020116/557320cfd8b42aae7b8b4ccf/html5/thumbnails/28.jpg)