Aula 2 - Modelos de Processo - cascata, iterativo e ... · publicado foi derivado de processos mais...
Transcript of Aula 2 - Modelos de Processo - cascata, iterativo e ... · publicado foi derivado de processos mais...
Aula 2 - Modelos de Processo - cascata, iterativo e incremental e ágil
Análise de Sistemas
Prof. Filipe Arantes [email protected]
Vale a pena ver de novo
• O que é um processo?
• O que é um processo de desenvolvimento de software?
• Quais são as principais atividades durante o processo de desenvolvimento de software?
3
Vale a pena ver de novo
• O que é um processo?• “Processo nada mais é que uma série de ações, ou passos, que são realizados
para se alcançar determinados objetivos”Willian Edwards Deming
• O que é um processo de desenvolvimento de software?
• Quais são as principais atividades durante o processo de desenvolvimento de software?
4
Vale a pena ver de novo
• O que é um processo?
• O que é um processo de desenvolvimento de software?• “Um processo de software é um conjunto de atividades relacionadas que
levam à produção de um produto de software.”(PRESSMAN, 2011)
• Quais são as principais atividades durante o processo de desenvolvimento de software?
5
Vale a pena ver de novo
• O que é um processo?
• O que é um processo de desenvolvimento de software?
• Quais são as principais atividades durante o processo de desenvolvimento de software?• Levantamento de requisitos;• Análise;• Projeto (design);• Implementação;• Testes;• Implantação;• Evolução.
6
10
• Significado de Modelo:• Imagem, desenho ou objeto que
serve para ser imitado(desenhando ou esculpindo)(DICIONÁRIO AURÉLIO, 2017)
O que é um Modelo de Processo?
• Um modelo de processo é uma representação simplificada de um processo de software;
• Modelos são abstrações que podem ser usadas para explicar diferentes abordagens de desenvolvimento de software.
11
O que é um Modelo de Processo?
• Um modelo de processo é uma representação simplificada de um processo de software;
• Modelos são abstrações que podem ser usadas para explicar diferentes abordagens de desenvolvimento de software.
• Alguns tipos de modelos:• Cascata;
• Iterativo e incremental;
• Desenvolvimento ágil;
• Dentre outros.
12
O modelo em cascata
• Primeiro modelo de processo de desenvolvimento de software a ser publicado foi derivado de processos mais gerais da engenharia de sistemas;
• Por causa do encadeamento entre uma fase e outra, esse modelo é conhecido como “Modelo em Cascata”, ou Ciclo de Vida de Software;
• O modelo em cascata é um exemplo de um processo dirigido a planos, ou seja, primeiro deve-se planejar e programar todas as atividades do processo antes de começar a trabalhar nelas.
14
O modelo em cascata
1. Análise e definição de requisitos:
2. Projeto de sistema e software:
3. Implementação e teste unitário:
4. Integração e teste de sistema:
5. Operação e manutenção:
16
O modelo em cascata
1. Análise e definição de requisitos:• Os serviços, restrições e metas do sistema são estabelecidos por meio de
consulta aos usuários. Em seguida, são definidos detalhes e funcionam como uma especificação do sistema.
2. Projeto de sistema e software:
3. Implementação e teste unitário:
4. Integração e teste de sistema:
5. Operação e manutenção:
17
O modelo em cascata
1. Análise e definição de requisitos:
2. Projeto de sistema e software:• O processo de projeto de sistemas aloca os requisitos tanto para sistemas de
hardware como para sistemas de software, por meio da definição de uma arquitetura geral do sistema.
• O projeto de software envolve identificação e descrição das abstrações fundamentais do sistema de software e seus relacionamentos.
3. Implementação e teste unitário:
4. Integração e teste de sistema:
5. Operação e manutenção:
18
O modelo em cascata
1. Análise e definição de requisitos:
2. Projeto de sistema e software:
3. Implementação e teste unitário:• Durante este estágio, o projeto do software é desenvolvido como um
conjunto de programas ou unidades de programa.
• O teste unitário envolve a verificação de que cada unidade atenda a sua especificação.
4. Integração e teste de sistema:
5. Operação e manutenção:
19
O modelo em cascata
1. Análise e definição de requisitos:
2. Projeto de sistema e software:
3. Implementação e teste unitário:
4. Integração e teste de sistema:• As unidades individuais do programa ou programas são integradas e testadas
como um sistema completo para assegurar que os requisitos do software tenham sido atendidos.
• Após o teste, o sistema de software é entregue ao cliente.
5. Operação e manutenção:
20
O modelo em cascata
1. Análise e definição de requisitos:
2. Projeto de sistema e software:
3. Implementação e teste unitário:
4. Integração e teste de sistema:
5. Operação e manutenção:• Normalmente (embora não necessariamente), essa fase é a mais longa do ciclo de
vida.• O sistema é instalado e colocado em uso. • A manutenção envolve a correção de erros que não foram descobertos em estágios
iniciais do ciclo de vida, com melhoria da implementação das unidades do sistema e ampliação de seus serviços em resposta às descobertas de novos requisitos.
21
O modelo em cascata
1. Análise e definição de requisitos:
2. Projeto de sistema e software:
3. Implementação e teste unitário:
4. Integração e teste de sistema:
5. Operação e manutenção:
23
1. Análise e definição de requisitos
• Contexto: José está encarregado de enfeitar sua enorme casa para o Natal. Devido ao tamanho da casa, é necessário antecipar os preparativos. Considerando a sustentabilidade, José irá confeccionar grande parte dos enfeites reutilizando papéis.
• Objetivo: O principal objetivo é criar uma estrela de papel.
• Mais informações (é necessário?):
24
3. Implementação e teste unitário
• Produzir a estrela e testar se ela corresponde aos requisitos básicos.
26
4. Integração e teste de sistema
• A integração de outros componentes é necessária?
• Se sim, deve ser integrado e testado.
27
5. Operação e manutenção
• O produto deve ser entregue e usado pelo cliente.
• O cliente pode indicar possíveis erros e falhas do produto produzido.
30
#1 Correção
• José não consultou a sua esposa e ela determinou que a estrela tenha exatamente seis pontas!
31
Considerações finais
• Em princípio, o resultado de cada estágio é a aprovação de um ou mais documentos (“assinados”);
• O estágio seguinte não deve ser iniciado até que a fase anterior seja concluída;
• Na prática, esses estágios se sobrepõem e alimentam uns aos outros de informações;
• Durante o projeto, os problemas como os requisitos são identificados; durante a codificação, problemas de projeto são encontrados e assim por diante;
34
Considerações finais
• O processo de software não é um modelo linear simples, mas envolve o feedback de uma fase para outra;
• Assim, os documentos produzidos em cada fase podem ser modificados para refletirem as alterações feitas em cada um deles;
35
Algumas desvantagens
• Por causa dos custos de produção e aprovação de documentos, as iterações podem ser dispendiosas e envolver significativo retrabalho;
• Assim, após um pequeno número de iterações, é normal se congelarem partes do desenvolvimento, como a especificação, e dar-se continuidade aos estágios posteriores de desenvolvimento;
• A solução dos problemas fica para mais tarde, ignorada ou programada, quando possível;
• O congelamento prematuro dos requisitos pode significar que o sistema não fará o que o usuário quer;
• Também pode levar a sistemas mal estruturados, quando os problemas de projeto são contornados por artifícios de implementação.
36
O estágio final do ciclo de vida
• Nesta fase, o software é colocado em uso;
• Erros e omissões nos requisitos originais do software são descobertos;
• Os erros de programa e projeto aparecem e são identificadas novas necessidades funcionais;
• O sistema deve evoluir para permanecer útil;
• Fazer alterações (manutenção de software) pode implicar repetição de estágios anteriores do processo.
37
Conclusões
• Em princípio, o modelo em cascata deve ser usado apenas quando os requisitos são bem compreendidos e pouco provavelmente venham a ser radicalmente alterados durante o desenvolvimento do sistema;
• No entanto, este modelo é usado para criar outas variações, tal como o desenvolvimento formal.
• O método B, é um tipo de desenvolvimento formal, no qual é adotado para requisitos rigorosos de segurança, confiabilidade e proteção;
• O formalismo se dá na transformação matemática dos requisitos.
38
Referências
• DICIONÁRIO AURÉLIO. Acessado em 31 de julho de 2017. Disponível em https://dicionariodoaurelio.com/modelo. 2017.
• SOMMERVILLE. Engenharia de Software, São Paulo: Addison-Wesley, 9 ed., 2011. ISBN-10: 8579361087 ISBN-13: 9788579361081.
40