40
Aula 2 - Modelos de Processo - cascata, iterativo e incremental e ágil Análise de Sistemas Prof. Filipe Arantes Fernandes [email protected]

Aula 2 - Modelos de Processo - cascata, iterativo e ... · publicado foi derivado de processos mais gerais da engenharia de ... •SOMMERVILLE, ... Engenharia de Software, São Paulo:

Embed Size (px)

Citation preview

Aula 2 - Modelos de Processo - cascata, iterativo e incremental e ágil

Análise de Sistemas

Prof. Filipe Arantes [email protected]

2

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

Outline

• Modelos de Processo:• Definição;

• O modelo em cascata.

7

Definição de Modelo de Processo

8

9

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

13http://bit.ly/2vY8vRl

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

15http://bit.ly/2f0Ma1H

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 “na prática”

22

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

2. Projeto de sistema e software

• Desenhar o formato da estrela.

25

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.

28

29http://bit.ly/2ucSUvn

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

#2 Correção

•A estrela deve ter aproximadamente o tamanho entre 12 e 15 cm!

32

#3 Correção

•A estrela deve ter um efeito 3D!

33

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

Leitura recomendada

• SOMMERVILLE, 2017: Páginas 18 a 22.

39

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