Aula 3 – Análise de Projetos de Sistemas

67
1 Curso de Gestão da TI Análise de Projetos de Sistemas Prof. Flávio Barbosa 19/08/2009

Transcript of Aula 3 – Análise de Projetos de Sistemas

Page 1: Aula 3 – Análise de Projetos de Sistemas

1

Curso de Gestão da TI

Análise de Projetos de Sistemas

Prof. Flávio Barbosa

19/08/2009

Page 2: Aula 3 – Análise de Projetos de Sistemas

2

Módulo 4.1

Aula 3

Ciclo de Vida do Software

Page 3: Aula 3 – Análise de Projetos de Sistemas

3

• AGRADECIMENTOS

• AVISOS

Page 4: Aula 3 – Análise de Projetos de Sistemas

4

AGENDA• Crise do Software;• Conceitos fundamentais sobre ciclos

de vida;• Modelos de ciclo de vida.

Page 5: Aula 3 – Análise de Projetos de Sistemas

5

Crise de Software

Refere-se a um conjunto de

problemas encontrados no

desenvolvimento de software.

Page 6: Aula 3 – Análise de Projetos de Sistemas

6

(1) As estimativas de prazo e de custo frequentemente são imprecisas“Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software”.“Sem nenhuma indicação sólida de produtividade, não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões”.

Crise de Software

Page 7: Aula 3 – Análise de Projetos de Sistemas

7

(2) A produtividade das pessoas da área de software (desenvolvimento) não acompanha a demanda por seus serviços“Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente.”

Crise de Software

Page 8: Aula 3 – Análise de Projetos de Sistemas

8

(3) A qualidade de software às vezes é

menos que adequada.

“Só recentemente começam a surgir

conceitos quantitativos sólidos de

garantia de qualidade de software.”

Crise de Software

Page 9: Aula 3 – Análise de Projetos de Sistemas

9

(4) O software existente é muito difícil de

manter.

“A tarefa de manutenção devora o

orçamento destinado ao software.”

“A facilidade de manutenção não foi

enfatizada como um critério importante.”

Crise de Software

Page 10: Aula 3 – Análise de Projetos de Sistemas

10

RESULTADO:

1. Estimativas de prazo e

de custo estourados;

2. Produtividade das pessoas reduzida;

3. Qualidade de software reduzida;

4. Enorme dificuldade em se manter

(efetuar manutenção) o software.

Crise de Software

Page 11: Aula 3 – Análise de Projetos de Sistemas

11

SOFTWARE

Conceituando: Engenharia de Software

É a utilização de sólidos princípios de engenharia a fim de se obter um software de maneira econômica que seja confiável e que trabalhe eficientemente em máquinas reais.

Programas

+

Documentação

+

Dados

Fritz Bauer, 1969

Page 12: Aula 3 – Análise de Projetos de Sistemas

12

SOFTWARE

Como construir um software?

Programas

+

Documentação

+

Dados

Simplesmente“FAZER” OU

ENGENHARIA DE SOFTWAREwww.sei.cmu.edu/ www.rspa.com/spi/ www.swebok.org

Conceituando: Engenharia de Software

Page 13: Aula 3 – Análise de Projetos de Sistemas

13

Conceituando: Método

1. Conjunto dos meios dispostos convenientemente para

alcançar um fim e especialmente para chegar a um

conhecimento científico ou comunicá-lo aos outros.

2. Técnica para o ensino de qualquer

disciplina.

3. Caminho pelo qual se atinge um

objetivo.

4. Maneira de fazer as coisas;

modo de proceder, meio.

13

Page 14: Aula 3 – Análise de Projetos de Sistemas

14

Processo de Software

É uma série de passos (um roteiro) para realizar

um propósito.

Para criar em tempo hábil um software de alta

qualidade, sem estourar o orçamento.

Processo Bom...Processo Bom...

...Resultado Bom!...Resultado Bom!

Processo Ruim...Processo Ruim...

...Resultado Ruim!...Resultado Ruim!

(IEEE – Institute of Electrical and Electronics Engineers)

Page 15: Aula 3 – Análise de Projetos de Sistemas

15

Processo de Software IMATURO

1. processo improvisado por profissionais e gerências (Ad hoc);

2. Não é rigorosamente seguido e o cumprimento não é controlado;

3. Altamente dependente dos profissionais atuais;

4. Baixa visibilidade do progresso e da qualidade;5. A funcionalidade e a qualidade do produto

podem ficar comprometidas para que prazos sejam cumpridos.

Page 16: Aula 3 – Análise de Projetos de Sistemas

16

6. Custos de manutenção excessivos.

7. Qualidade difícil de se prever (imprevisível).

Entrada

Processamento

Saída?

Processo de Software IMATURO

Page 17: Aula 3 – Análise de Projetos de Sistemas

17

1. Coerente com as linhas de ação, o trabalho é

efetivamente concluído.

2. Revisado (definido, documentado e melhorado)

constantemente.

3. Com o apoio visível da alta administração e outras

gerências.

4. Bem controlado - fidelidade ao processo é objeto de

auditoria e de controle.

5. São utilizadas medições do produto e do processo.

Processo de Software IMATURO

Page 18: Aula 3 – Análise de Projetos de Sistemas

18

Processo de Software MADUROEntrada

Saída

Os processos de cada fase, assim como o processo como um todo são controlados e

medidos.

Page 19: Aula 3 – Análise de Projetos de Sistemas

19

Foco na melhoria continua do processo.Entrada

Saída

A qualidade de um sistema de software é altamente

influenciada pela qualidade do processo utilizado no

seu desenvolvimento e manutenção.

Processo de Software MADURO

Page 20: Aula 3 – Análise de Projetos de Sistemas

20

Processo de Software

Como “escolher” um processo de software?

As CARACTERÍSTICAS DA APLICAÇÃO (domínio do problema, tamanho, complexidade etc.);

A TECNOLOGIA a ser adotada na sua

construção (paradigma de desenvolvimento,

linguagem de programação, mecanismo de

persistência, etc.), a organização;

ONDE o produto será desenvolvido;

O PERFIL DA EQUIPE de desenvolvimento.

Page 21: Aula 3 – Análise de Projetos de Sistemas

21

Processo de Software e Ciclo de Vida de Software

Quando se “escolhe“ um processo de desenvolvimento de software (SI) define-se um:Modelo de Ciclo de Vida (ou modelo de processo).˗É uma representação abstrata da estrutura (“ESQUELETO“) de processo.˗Inclui algumas atividades principais.˗A ordem de precedência entre elas.˗Opcionalmente, artefatos requeridos e produzidos.

21

Page 22: Aula 3 – Análise de Projetos de Sistemas

22

Entrada

Saída

Quando o processo envolve a elaboração de um

produto, nos referimos a ele como ciclo de vida.

Processo de Software e Ciclo de Vida de Software

Page 23: Aula 3 – Análise de Projetos de Sistemas

23

Atividade

Agora é com vocês!!

Reúnam-se em duplas e discutam:

Um processo maduro não garante o sucesso do produto. O processo de desenvolvimento do meu software pode ser excelente, porém os clientes podem preferir usar o da concorrência que não tem um processo tão maduro quanto o meu.Se isso ocorre, porque devo lutar por um processo maduro de desenvolvimento de software? Justifique.

Page 24: Aula 3 – Análise de Projetos de Sistemas

24

Resposta da Atividade

Porque sem isso, voltaríamos a crise do software:

1. Estimativas de prazo e de custo estourados;

2. Produtividade das pessoas reduzida;

3. Qualidade de software reduzida;

4. Enorme dificuldade em se manter (efetuar

manutenção) o software.Esse exercício tem por finalidade ressaltar a importância

de se investir tanto no processo quanto no produto, pois,

não se deve investir em um processo maravilhoso se o

produto é uma lastima.

Slide do professor

Page 25: Aula 3 – Análise de Projetos de Sistemas

25

Alguém lembra do Lada?

Lada é uma marca da Avtovaz, uma fábrica de automóveis russa de Togliatti.

Slide do professorResposta da Atividade

Page 26: Aula 3 – Análise de Projetos de Sistemas

26

Conceituando: Ciclo

1. Período durante o qual se completa uma

sequência de eventos ou fenômenos.

2. Fase; período.

(Fonte: DIC Michaelis Escolar Versão 2.0)

26

Page 27: Aula 3 – Análise de Projetos de Sistemas

27

Ciclo de Vida

O que vem a ser um ciclo de vida?

CICLO DA ÁGUA

Page 28: Aula 3 – Análise de Projetos de Sistemas

28

Ciclo de Vida de Software

Em geral os ciclos de vida de desenvolvimento de

software envolvem as seguintes fases:

Planejamento;

Análise e Especificação de Requisitos;

Projeto;

Implementação; Testes;

Entrega e Implantação;

Operação;

Manutenção.

Page 29: Aula 3 – Análise de Projetos de Sistemas

29

Ciclo de Vida de Software: Planejamento

O escopo do software é estabelecido;

Um plano de projeto deve ser

elaborado configurando o

processo a ser utilizado;

Esta atividade faz parte da

gerência de projeto.

Fornece uma estrutura que possibilita ao gerente fazer

estimativas iniciais de recursos, custos e prazos;

29

Page 30: Aula 3 – Análise de Projetos de Sistemas

30

Ciclo de Vida de Software: Análise de Requisitos

Devem ser analisados o

domínio do problema e

o domínio da solução.

O escopo do software é refinado;

Descreve “o que” o software deverá fazer;

Page 31: Aula 3 – Análise de Projetos de Sistemas

31

Ciclo de Vida de Software: Projeto

− Projeto da arquitetura

do software;

− Projeto detalhado.

Utiliza a fase anterior como insumo;

Envolve duas grandes fases:

Page 32: Aula 3 – Análise de Projetos de Sistemas

32

Ciclo de Vida de Software: Implementação

O projeto é

traduzido para uma

forma passível de

execução pela

máquina.

Page 33: Aula 3 – Análise de Projetos de Sistemas

33

Ciclo de Vida de Software: Testes

Testes de unidade e documentação dos resultados;

Integração dos componentes e teste do software como

um todo;

Alguns modelos de

processo prevêem a

realização de testes já

nas primeiras etapas.

33

Page 34: Aula 3 – Análise de Projetos de Sistemas

34

Ciclo de Vida de Software: Entrega e Implantação

O software deve ser instalado em ambiente de produção;

Principal propósito é estabelecer que o software satisfaz as necessidades do usuário (teste de aceitação);

Envolve:

Treinamento de usuários;Configuração do ambiente de produção;Conversão de bases de dados (se necessário).

34

Page 35: Aula 3 – Análise de Projetos de Sistemas

35

Ciclo de Vida de Software: Operação

Após o teste de aceitação, o software passa a ser

utilizado de fato em ambiente de produção;

Após o teste de aceitação, o software passa a ser

utilizado de fato em ambiente de produção;

Acompanhamento

dos usuários é

imprescindível ainda

nessa fase.

35

Page 36: Aula 3 – Análise de Projetos de Sistemas

36

Ciclo de Vida de Software: Manutenção

Atividade durante a qual ocorrem modificações em

um ou mais artefatos resultantes do

desenvolvimento de um software;

Busca mantê-lo disponível,

corrigir suas falhas, melhorar

seu desempenho e adequá-lo

aos requisitos novos ou

modificados.

(ANSI/IEEE, 1993) 36

Page 37: Aula 3 – Análise de Projetos de Sistemas

37

Ciclo de Vida de Software: Tipos de Manutenção

CORRETIVA:

Correção de erros/falhas.

ADAPTATIVA:

Adaptação do software para acomodar mudanças em seu ambiente externo.

Exemplos: uma nova plataforma (hardware, sistema operacional) ou mudanças nas regras de negócio, leis, políticas governamentais etc.

Page 38: Aula 3 – Análise de Projetos de Sistemas

38

EVOLUTIVA (OU PERFECTIVA):

Acréscimo de funcionalidades, não previstas em seu documento de requisitos original.

PREVENTIVA (REENGENHARIA):

O software é modificado para oferecer uma base melhor para futuras manutenções.

Esse tipo de manutenção visa melhorar a confiabilidade e/ou manutenibilidade futura.

Ciclo de Vida de Software: Tipos de Manutenção

Page 39: Aula 3 – Análise de Projetos de Sistemas

39

Ciclo de Vida de Software: Modelos Sequenciais

CASCATA (LINEAR):

Organizam o processo em uma sequência

linear de fases.

Resultado de uma etapa é usado na

etapa seguinte

Estudo

Análise

Projeto

Codificação

Testes

Entrega e Implantação

Page 40: Aula 3 – Análise de Projetos de Sistemas

40

Estudo

Análise

Projeto

Codificação

Testes

Entrega e Implantação

CASCATA (LINEAR): PROBLEMASProjetos reais não seguem um fluxo em sequência,

na maioria das vezes, como o modelo propõe.

Difícil estabelecer todos os requisitos logo no início.

O cliente precisa ter paciência e o tempo necessário

para disponibilizar o software.

Ciclo de Vida de Software: Modelos Sequenciais

Page 41: Aula 3 – Análise de Projetos de Sistemas

41

Estudo

Análise

Projeto

Codificação

Testes

Entrega e Implantação

CASCATA (LINEAR): INDICAÇÃO

Projetos (SI) onde os

requisitos são bem

Definidos.

Ciclo de Vida de Software: Modelos Sequenciais

Page 42: Aula 3 – Análise de Projetos de Sistemas

42

Modelos de Ciclo de Vida de Software

Page 43: Aula 3 – Análise de Projetos de Sistemas

43

Ciclo de Vida de Software: Modelos Incrementais

Software produzido por incrementos (módulos);

Incrementos

- Seu desenvolvimento segue o modelo sequencial;

- Exigem revisão do cliente.

Page 44: Aula 3 – Análise de Projetos de Sistemas

44

RAD (Rapid Application Development):

Busca um ciclo de desenvolvimento curto.

Especificação de Requisitos

Análise ProjetoImplementação

e Testes

Integração

Entrega e Implantação

Análise ProjetoImplementação

e Testes

Análise ProjetoImplementação

e Testes

Software

Ciclo de Vida de Software: Modelos Incrementais

Page 45: Aula 3 – Análise de Projetos de Sistemas

45

VANTAGENS:

Menor custo e tempo para entrega da 1ª versão.Menor risco e nº de mudanças nos requisitos (porque os incrementos são menores que o sw todo).

Ciclo de Vida de Software: Modelos Incrementais

Page 46: Aula 3 – Análise de Projetos de Sistemas

46

PROBLEMAS:

Requisitos instáveis ou incompletos geram muitas mudanças nos incrementos;Gerência do projeto é mais complexa.

Ciclo de Vida de Software: Modelos Incrementais

Page 47: Aula 3 – Análise de Projetos de Sistemas

47

INDICAÇÃO:

Projetos (SI) onde exista uma boa equipe de gerência e onde o projeto permita

modularização.

Ciclo de Vida de Software: Modelos Incrementais

Page 48: Aula 3 – Análise de Projetos de Sistemas

48

Modelos de Ciclo de Vida de Software

Page 49: Aula 3 – Análise de Projetos de Sistemas

49

Ciclo de Vida de Software: Modelos Iterativos

Não se preocupa com a entrega de versões operacionais desde o primeiro ciclo;

Geralmente produzem protótipos ou modelos;

Versões operacionais são produzidas à medida em que os requisitos vão ficando mais claros e estáveis.

Page 50: Aula 3 – Análise de Projetos de Sistemas

50

Exemplo: Modelo Espiral, RUP (Rational Unified

Process)

Quanto mais se

caminha para

fora do espiral,

mais se caminha

na direção do SI

concluído.

Especificação de Requisitos

AnáliseAnálise

ProjetoProjeto

ImplementaçãoImplementação

TestesTestes

Entrega eImplantação

Ciclo de Vida de Software: Modelos Iterativos

Page 51: Aula 3 – Análise de Projetos de Sistemas

51

Exemplo: Modelo Espiral, RUP

Cada iteração do

espiral representa

uma versão

progressivamente

mais completa do

SI.

Especificação de Requisitos

AnáliseAnálise

ProjetoProjeto

ImplementaçãoImplementação

TestesTestes

Entrega eImplantação

Ciclo de Vida de Software: Modelos Iterativos

Page 52: Aula 3 – Análise de Projetos de Sistemas

52

INDICAÇÃO:

Projetos (SI) de alta complexidade onde os

requisitos são bastante voláteis ou que não

podem ser totalmente especificados no início do

desenvolvimento.

Ciclo de Vida de Software: Modelos Iterativos

Page 53: Aula 3 – Análise de Projetos de Sistemas

53

Modelos de Ciclo de Vida de Software

Page 54: Aula 3 – Análise de Projetos de Sistemas

54

Atividade

Agora é com vocês!!Reúnam-se em duplas e discutam:

Supondo que sua equipe fosse composta de 03 desenvolvedores (programadores) e você tivesse que iniciar um projeto que envolvesse três áreas de sua organização (compras, financeiro e contabilidade) e a contratação de uma empresa terceirizada para lhe prover um determinado serviço. Qual modelo de ciclo de vida você utilizaria? Por quê?(não existem restrições).

Page 55: Aula 3 – Análise de Projetos de Sistemas

55

Ciclo de Vida de Software: Protótipos

OBJETIVOS:

Processo onde se cria um

esboço do software que

será implementado.

Pode evoluir para o

produto final ou ser

descartado.

O protótipo serve como uma técnica para o

levantamento dos requisitos do software.

Page 56: Aula 3 – Análise de Projetos de Sistemas

56

PROCESSO DE PROTOTIPAÇÃO:

Ciclo de Vida de Software: Protótipos

Page 57: Aula 3 – Análise de Projetos de Sistemas

57

PROBLEMAS:

Idealização do protótipo como

“solucionador” dos problemas.

O cliente, não raro, ignora

a função do protótipo.

Concessões do desenvolvedor na implementação a

fim de conseguir rapidamente o sistema em

funcionamento.

Ciclo de Vida de Software: Protótipos

Page 58: Aula 3 – Análise de Projetos de Sistemas

58

Ciclo de Vida de Software: Tipos de Protótipos

PROTÓTIPO INCREMENTAL:

Baseado no modelo de ciclo de vida incremental.

Gera versão

operável do

sistema.

Page 59: Aula 3 – Análise de Projetos de Sistemas

59

Redução de riscos;

Maior visibilidade sobre o processo;

Problemas podem ser descobertos logo no início;

Auxilia na estimativa de tempo do projeto.

VANTAGENS DO PROTÓTIPO INCREMENTAL:

Ciclo de Vida de Software: Tipos de Protótipos

Page 60: Aula 3 – Análise de Projetos de Sistemas

60

Exige grande esforço na atualização da documentação do usuário;

O desenvolvimento por estágio requer que as dependências entre eles sejam bem planejadas. Um dos problemas comuns é descobrir que o estágio 2 depende de componentes do estágio 4.

DESVANTAGENS DO PROTÓTIPO INCREMENTAL:

Ciclo de Vida de Software: Tipos de Protótipos

Page 61: Aula 3 – Análise de Projetos de Sistemas

61

PROTÓTIPO EVOLUTIVO:

Baseado no modelo de ciclo de vida iterativo.

Gera versão

operável do

sistema.

Ciclo de Vida de Software: Tipos de Protótipos

Page 62: Aula 3 – Análise de Projetos de Sistemas

62

Menor taxa de defeitos (pela melhor definição das especificações do sistema);

Promove maior participação do cliente;

Maior visibilidade do progresso de desenvolvimento;

Verificação da aceitação do sistema nos primeiros estágios do desenvolvimento.

VANTAGENS DO PROTÓTIPO EVOLUTIVO:

Ciclo de Vida de Software: Tipos de Protótipos

Page 63: Aula 3 – Análise de Projetos de Sistemas

63

Pobre manutenibilidade (provocada pela rapidez no desenvolvimento ou constantes mudanças na estrutura do protótipo);

Acréscimo de novas funcionalidades devido ao constante contato do cliente com o protótipo;

Uso ineficiente do tempo destinado à construção do protótipo.

DESVANTAGENS DO PROTÓTIPO EVOLUTIVO:

Ciclo de Vida de Software: Tipos de Protótipos

Page 64: Aula 3 – Análise de Projetos de Sistemas

64

PROTÓTIPO DESCARTÁVEL:

Utilizado para o levantamento de requisitos;

Definição de interfaces;

Não Gera versão operável do sistema.

Ciclo de Vida de Software: Tipos de Protótipos

Page 65: Aula 3 – Análise de Projetos de Sistemas

65

Tema 4 – ENGENHARIA DE REQUISITOS

Definição de requisitos;

Tipos de requisitos;

Documento de requisitos.

O que veremos na próxima aula:

Não se esqueçam de:

Ler o material didático;

Participar das atividades do portal.

Page 66: Aula 3 – Análise de Projetos de Sistemas

66

Curso de Gestão da TI

Obrigado!

Nos vemos em nossa plataforma.

Prof. Flavio Barbosa

Page 67: Aula 3 – Análise de Projetos de Sistemas

67

Visite o site e avalie a aula.

Utilize seu código e senha de aluno.

http://www.inepad.org.br/interativacoc/