análise e projeto prof. erinaldo sanches nascimento · características e qualidade. metodologias...

35
Análise e Projeto Prof. Erinaldo Sanches Nascimento

Upload: others

Post on 29-Nov-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

Análise e Projeto

Prof. Erinaldo Sanches Nascimento

Page 2: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

2

Objetivos

● Apresentar o ciclo de vida de desenvolvimento de sistemas.

● Descrever as metodologias de desenvolvimento de sistemas.

Page 3: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

3

Introdução

● Programação

● Engenharia de software

É uma parte do desenvolvimento de software, mas isso não é tudo.

Page 4: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

4

Introdução● Programação

● Engenharia de software

Desenvolvimento de software é o processo de tomar um conjunto de requisitos de um usuário, analisá-los, projetar uma solução para o problema, e então implementar aquela solução no computador.

É uma parte do desenvolvimento de software, mas isso não é tudo.

Page 5: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

5

Introdução● Programação:

– Projeto e implementação

● Engenharia de software:– Processo

– Gerenciamento da criação de um programa de computador

– Cronograma

– Estimativa

– Gerenciamento de pessoas

O desenvolvimento de softwaredesenvolvimento de software é a parte da engenharia de software preocupada com a criação do software real. Inclui análise, projeto e liberação de versão.

Page 6: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

6

Introdução

● Desenvolvimento de software é difícil.● Desenvolver software eficiente, corretamente e

bem é difícil.● É uma habilidade que requer muita prática.

Page 7: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

7

Introdução● Desenvolvimento de software é difícil.● Desenvolver software eficiente, corretamente e

bem é difícil.● É uma habilidade que requer muita prática.

● Por que esse sistema falhou?● Por que uma empresa gastou tempo e dinheiro em

um projeto e depois o cancelou?● O que poderia ter sido feito para evitar isso?

Page 8: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

8

Introdução● Como desenvolver software?

– Uma equipe pequena e bem integrada;

– Boa comunicação entre os membros da equipe;

– Boa comunicação entre a equipe e o cliente;

– Um processo que todos sigam;

– A habilidade em ser flexível a respeito de um determinado processo;

– Um planejamento que todos sigam;

– Saber onde você está em todos os tempos (cronograma);

– As ferramentas certas e as práticas corretas para esse projeto.

Page 9: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

9

Ciclo de Vida do Desenvolvimento de Sistemas

1)Concepção

2)Coleta de requisitos, exploração e modelagem

3)Projeto

4)Codificação e depuração

5)Teste

6)Liberação

7)Manutenção e evolução do software

8)Aposentadoria

Page 10: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

10

Metodologias de Desenvolvimento de Sistemas

Page 11: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

11

Metodologias de Desenvolvimento de Sistemas

● Uma metodologiametodologia é uma abordagem formalizada para a implementação do ciclo de vida de desenvolvimento de sistemas.– Padrões formais utilizados em agências

governamentais.

– Desenvolvido por empresas de consultoria para vender aos seus clientes.

– Metodologias aprimoradas ao longo dos anos por muitas organizações.

Page 12: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

12

Metodologias de Desenvolvimento de Sistemas

● Categorizar metodologias:– Metodologia centrada no processo

– Metodologia centrada nos dados

– Metodologias orientadas a objetos

Page 13: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

13

Metodologias de Desenvolvimento de Sistemas

● Codifica e corrige– Não é propriamente um modelo.

– Remete aos primórdios da computação.

– Os programadores passavam rapidamente da fase de planejamento para as fases de construção e execução.

– Não há formalidade no levantamento dos requisitos, nem documentação.

– Sem garantia de qualidade ou formalidade de teste.

Page 14: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

14

Metodologias de Desenvolvimento de Sistemas

● Projeto estruturado– Desenvolvimento em cascata

– Desenvolvimento paralelo

● Desenvolvimento rápido de aplicações (RAD)– Desenvolvimento em fases

– Prototipagem

– Prototipagem descartável

● Desenvolvimento ágil– Programação extrema (XP)

– Scrum

Page 15: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

15

Metodologias de Desenvolvimento de Sistemas

● Desenvolvimento em Cascata– Foi criada em 1970 por Winston Royce;

– Requer documentação detalhada de cada estágio;

– É um modelo de processo orientado a plano.

Page 16: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

16

Metodologias de Desenvolvimento de Sistemas

● Desenvolvimento Paralelo– Tenta resolver o problema de longos atrasos entre a

fase de análise e a entrega do sistema.

– Executa um projeto geral para todo o sistema e então divide o projeto em uma série de subprojetos distintos que podem ser projetados e implementados em paralelo.

– Quando todos os subprojetos estiverem concluídos, há uma integração final das peças separadas, e o sistema é entregue.

Page 17: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

17

Metodologias de Desenvolvimento de Sistemas

Page 18: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

18

Metodologias de Desenvolvimento de Sistemas

● Desenvolvimento Rápido de Aplicações (RAD)– Surgiu nos anos 1990.

– Tenta ajustar o ciclo de vida do desenvolvimento de sistemas de maneira a entregar ao usuário parte do sistema desenvolvido mais rapidamente.

– O usuário pode entender melhor e sistema e sugerir revisões.

– Recomenda o uso de técnicas e ferramentas computacionais especiais: JAD, ferramentas CASE, linguagens como Visual Basic, etc.

– Categorias da abordagem RAD: centrada nos processos, centrada nos dados e orientada a objetos.

Page 19: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

19

Metodologias de Desenvolvimento de Sistemas

● Desenvolvimento em Fases– Quebra um sistema global em uma série de versões.

– Os requisitos mais importantes e fundamentais são empacotados na primeira versão do sistema.

– Uma vez que a versão 1 esteja implementada começa a versão 2; e assim para as próximas versões até que o sistema esteja completo.

Page 20: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

20

Metodologias de Desenvolvimento de Sistemas

Page 21: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

21

● Prototipagem– As fases de análise, projeto e implementação são

executadas repetidamente em um ciclo até que o sistema esteja completo.

– O primeiro protótipo fornece o mínimo de recursos.

– Os comentários dos usuários e patrocinadores são usados para reanalisar, reprojetar e reimplementar.

– Esse processo continua até que os analistas, usuários e patrocinadores concordem que o protótipo fornece funcionalidades suficientes para ser instalado e utilizado na organização.

Metodologias de Desenvolvimento de Sistemas

Page 22: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

22

Metodologias de Desenvolvimento de Sistemas

Page 23: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

23

● Prototipagem Descartável– Semelhante à metodologia baseada em protótipos.

– A fase de análise é praticamente completa.

– Por meio da análise constrói-se um protótipo do projeto.

– Os protótipos são utilizados para diminuir os riscos associados ao sistema.

– Nessa metodologia os protótipos evoluem para o sistema final.

Metodologias de Desenvolvimento de Sistemas

Page 24: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

24

Metodologias de Desenvolvimento de Sistemas

Page 25: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

25

● Desenvolvimento Ágil– Teve seu início em meados dos anos 1990.

– Metodologia centrada na programação.

– Elimina grande parte das tarefas de modelagem e documentação.

– Enfatiza o desenvolvimento de aplicativos simples e iterativos.

– A abordagem de desenvolvimento ágil é normalmente usada em conjunto com metodologias orientadas a objetos.

Metodologias de Desenvolvimento de Sistemas

Page 26: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

26

● Programação Extrema (XP)– Foi criada por Kent Beck e Ward Cunningham (1995).

– É uma maneira leve, eficiente, de baixo risco, flexível, previsível e científica de desenvolver software.

– Se baseia em quatro ideias fundamentais: ● Envolvimento pesado do cliente.● Teste de unidade contínuo.● Programação pareada.● Ciclos curtos de iteração e lançamentos frequentes.

– Minimiza riscos, controlando custo, tempo, características e qualidade.

Metodologias de Desenvolvimento de Sistemas

Page 27: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

27

Metodologias de Desenvolvimento de Sistemas

Page 28: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

28

● Scrum– Deriva de um nome do rugby.

– A ideia surgiu a partir de um artigo de Takeuchi e Nonaka (1986).

– Utiliza equipes com não mais de 10 desenvolvedores.

– É caracterizado por uma iteração entre uma e quatro semanas (sprint). Sempre proporciona um produto utilizável.

– Projetos scrum tem reuniões diárias de 15 a 30 minutos de duração.

Metodologias de Desenvolvimento de Sistemas

Page 29: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

29

Metodologias de Desenvolvimento de Sistemas

Page 30: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

30

● Processo Unificado– É uma metodologia específica que mapeia quando e

como utilizar as várias técnicas UML para análise e projeto orientado a objetos.

– UML fornece suporte estrutural para desenvolver a estrutura e comportamento de um sistema de informação.

– Processo unificado fornece o suporte comportamental.

– O processo unificado é orientado a casos de uso, centrado na arquitetura, iterativo e incremental.

Metodologias de Desenvolvimento de Sistemas

Page 31: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

31

Metodologias de Desenvolvimento de Sistemas

Page 32: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

32

Exercício:Exercício:Suponha que você é um analista na empresa XPTO, uma grande empresa de consultoria com escritórios em todo o mundo. A empresa quer construir um novo sistema de gestão de conhecimento que pode identificar e rastrear a expertise dos consultores individuais em todo o mundo com base na sua educação e os vários projetos de consultoria em que eles trabalharam.Assuma que se trata de uma ideia nova que nunca antes foi tentada na XPTO ou em qualquer outro lugar. A XPTO tem uma rede internacional, mas os escritórios em cada país podem usar software e hardware um pouco diferente. A gerência da XPTO quer o sistema instalado e funcionando dentro de um ano.

Metodologias de Desenvolvimento de Sistemas

Page 33: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

33

Exercício:Exercício:

Você pretende desenvolver um software seguindo os estágios do modelo em cascata, em razão de ponderações que faz em relação a outros modelos quanto à solução de um problema que se apresenta. Desta forma como você definiria em seu cronograma as etapas do ciclo de vida de software?

Metodologias de Desenvolvimento de Sistemas

Page 34: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

34

Exercícios:Exercícios:No processo unificado, cinco workflows acompanham o conjunto das fases de desenvolvimento de software. Cada workflow é um conjunto de atividades executadas por vários membros do projeto. Considerando o desenvolvimento de um sistema integrado de gestão (ERP), que workflow descreve o empacotamento em componentes de software dos elementos do modelo de projeto – tais como arquivo de código-fonte, biblioteca de ligação dinâmica e componentes executáveis ?

Metodologias de Desenvolvimento de Sistemas

Page 35: Análise e Projeto Prof. Erinaldo Sanches Nascimento · características e qualidade. Metodologias de Desenvolvimento de Sistemas. 27 Metodologias de Desenvolvimento de Sistemas

35

Conclusão

● Ciclo de vida de desenvolvimento de sistemas● Metodologias de desenvolvimento de sistemas