Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02 Processos Existentes; Ciclo de vida de...

70
Professor Mário Dantas ENGENHARIA DE SOFTWARE

Transcript of Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02 Processos Existentes; Ciclo de vida de...

Page 1: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

Professor Mário DantasProfessor Mário Dantas

ENGENHARIA DE SOFTWAREENGENHARIA DE SOFTWARE

Page 2: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

2

Aula 02

Processos Existentes; Ciclo de vida de desenvolvimento de

software;

Page 3: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

3

Processo de Software - Introdução

O que é processo de software: É um conjunto ( framework ) de atividades e

resultados associados que geram um produto de software;

Há quatro atividades de processo de software fundamentais, a saber:

Especificação do software; Desenvolvimento do Software; Validação do Software; Evolução do Software;

Page 4: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

4

Processo de Software - Introdução

Uma Visão Genérica: 3 Fases Definição - “o que”

Análise de Requisitos Análise do Sistema Planejamento do Projeto

Desenvolvimento - “como” Projeto Geração do Código Teste

Manutenção

Page 5: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

5

Processo de Software - Introdução

Processo de Software é diferente de Engenharia de Software: Processo define a abordagem; Engenharia engloba também as tecnologias

como métodos e ferramentas;

Page 6: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

6

Processo de Software – Engenharia de Software Já vimos que Engenharia de Software é:

Uma disciplina da engenharia que se ocupa de todos os aspectos do desenvolvimento de software;

Para o IEEE (Instituto de Engenheiros Eletricistas e Eletrônicos) é: aplicação de uma abordagem sistemática,

disciplinada e quantificável ao desenvolvimento, operação e manutenção de software, ou seja, a aplicação da engenharia ao software;

O estudo de abordagens do tipo declarado acima.

Page 7: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

7

Processo de Software – Engenharia de Software

Analisando as definições anteriores podemos encarar a Engenharia de Software como uma tecnologia em camadas:

ferramentasmétodosprocesso

foco na qualidade

Page 8: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

8

Processo de Software – Engenharia de Software

É o “solo” e o porque de utilizarmos um processo de software.

Gerenciamento da Qualidade Total e filosofias similares produzem uma mudança cultural que permite o desenvolvimento crescente de abordagens mais maduras para a Engenharia de Software.

ferramentasmétodosprocesso

foco na qualidade

Page 9: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

9

Processo de Software – Engenharia de Software

É a “fundação”; É o que intermedeia as camadas de tecnologias e

permite um desenvolvimento de software racional e em tempo;

Define um conjunto de áreas chave do processo que deve ser estabelecido para um uso efetivo da Engenharia de Software;

ferramentasmétodosprocesso

foco na qualidade

Page 10: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

10

Processo de Software – Engenharia de Software

É o “como fazer”; Englobam um conjunto de tarefas que inclui

análise de requisitos, projeto, implementação, teste e manutenção;

ferramentasmétodosprocesso

foco na qualidade

Page 11: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

11

Processo de Software – Engenharia de Software

É o “instrumento apropriado”; Dão suporte automatizado ou semi-automatizado

aos métodos; Quando as ferramentas que apoiam os métodos se

integram, forma-se a Engenharia de Software auxiliada por computador – CASE – Computer Aided Software Engineering;

ferramentasmétodosprocesso

foco na qualidade

Page 12: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

12

Processo de Software – Engenharia de Software O objetivo desta aula é dar foco no

PROCESSO de desenvolvimento de software e aos MODELOS existentes na literatura;

Processo de software define uma abordagem;

Modelo é uma descrição simplificada, uma abstração dessa abordagem;

Page 13: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

13

Processo de Software – Modelo de Processo de Software Um modelo de processo de software deve

ser escolhido com base: Na natureza do projeto e da aplicação; Nos métodos e ferramentas a serem

utilizados; Nos controles e produtos que precisam ser

entregues;

Page 14: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

14

Processo de Software – Modelo de Processo de Software Alguns modelos de processo:

Modelo Seqüencial Linear Modelo RAD Modelos Evolucionários

Modelo de Prototipação ( Descartáveis ) Incremental ( Exploratório ) Espiral ( Exploratório )

Técnicas de 4a Geração

Page 15: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

15

Processo de Software – Modelo Seqüencial Linear Também conhecido como ciclo de vida

clássico ou Modelo Cascata: Modelo mais antigo e mais usado; Modelado em função do ciclo de engenharia

convencional; Requer uma abordagem sistemática e

seqüencial para o desenvolvimento de um software;

Page 16: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

16

Processo de Software – Modelo Seqüencial Linear Muitos aplicam esse modelo de forma

estritamente linear:

Engenharia de Sistemas / Informação

Projeto Codificação Testes Análise

Page 17: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

17

Processo de Software – Modelo Seqüencial Linear

Mas o modelo original prevê a volta:

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

Page 18: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

18

Processo de Software – Modelo Seqüencial Linear

Envolve a coleta de requisitos de todos os elementos do sistema;

Essa visão de sistema é essencial quando o software faz interface com outros elementos como HW, pessoas e BD;

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

Page 19: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

19

Processo de Software – Modelo Seqüencial Linear

Processo de coleta dos requisitos é intensificado e concentrado especificamente no software.

Deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos.

Os requisitos (para o sistema e para o software) são documentados e revistos com o cliente.

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

Page 20: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

20

Processo de Software – Modelo Seqüencial Linear

Tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie

Se concentra em 4 atributos do programa:

Estrutura de Dados,

Arquitetura de Software,

Detalhes Procedimentais e

Caracterização de Interfaces.

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

Page 21: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

21

Processo de Software – Modelo Seqüencial Linear

Tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador.

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

Page 22: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

22

Processo de Software – Modelo Seqüencial Linear

Concentram-se:

nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas.

nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados.

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

Page 23: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

23

Processo de Software – Modelo Seqüencial Linear

O software

deverá sofrer

mudanças

depois que for

entregue ao

cliente

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

Page 24: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

24

Processo de Software – Modelo Seqüencial Linear

Problemas:

Projetos reais raramente seguem o fluxo sequencial proposto;

É dificil estabelecer todos os requisitos no começo do projeto na qual existe uma incerteza natural quanto a esses requisitos;

Uma versão do software só vai ficar pronto em um ponto tradio do desenvolvimento; Assim se houver algum erro grave não detectado na

análise ou projeto o resultado pode ser desastroso; Há muitos estágios bloqueantes que permitem a

ociosidade dos desenvolvedores em alguns momentos

Page 25: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

25

Processo de Software – Modelo Seqüencial Linear

Embora o Modelo Seqüencial Linear

ou Ciclo de Vida Clássico tenha

fragilidades, ele é significativamente

melhor do que uma abordagem

casual ao desenvolvimento de

software.

Page 26: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

MODELOS DE PROCESSO

RAD – Rapid Application Development

Page 27: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

27

É o modelo seqüencial linear, mas que enfatiza um desenvolvimento extremamente rápido;

A “alta velocidade” é conseguida através de uma abordagem de construção baseada em componentes;

Usado quando os requisitos são bem definidos e o escopo do sistema é restrito.

Modelo RAD (Rapid Application Development)

Page 28: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

28

Modelo RAD

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicaçãoteste e

modificação

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicação teste e

modificação

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicaçãoteste e

modificação

equipe # 3equipe # 2

equipe # 1

60-90 dias

Page 29: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

29

Atividades do Modelo RAD

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicaçãoteste e

modificação

Modelagem do negócio: o fluxo de informação entre as funções do negócio são modeladas de maneira a responder às questões:

que informação dirige o processo do negócio? que informação é gerada? quem gera a informação?

para onde a informação vai? quem a processa?

Page 30: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

30

Atividades do Modelo RAD

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicaçãoteste e

modificação

Modelagem dos dados:

O fluxo de informação definido na fase anterior é refinado em um conjunto de objetos de dados que são necessários para dar suporte ao negócio; são identificadas as características de cada objeto e são definidos seus relacionamentos.

Page 31: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

31

Atividades do Modelo RAD

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicaçãoteste e

modificação

Modelagem do processo:Os objetos de dados definidos são transformados para se obter o fluxo de informação necessário para implementar uma função do negócio;São criadas as descrições dos processamentos necessários para manipular esses objetos de dados.

Page 32: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

32

Atividades do Modelo RAD

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicaçãoteste e

modificação

Geração da aplicação:

O modelo RAD assume o uso de técnicas de 4a. geração; ao invés de criar software de forma convencional, reusa componentes quando possível ou cria componentes reutilizáveis;Ferramentas automatizadas são utilizadas para gerar software.

Page 33: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

33

Atividades do Modelo RAD

modelagem do

negóciomodelagem dos dadosmodelage

m do processogeração

da aplicaçãoteste e

modificação

Teste e modificação:

Por reutilizar componentes, muitas vezes eles já foram testados, o que reduz o tempo de teste; os novos componentes devem ser testados e as interfaces devem ser exercitadas

Page 34: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

34

Modelo RAD

Quando usar?

As restrições de tempo impostas pelo projeto demandam um escopo de escala.

Quando a aplicação pode ser modularizada de forma que cada grande função possa ser completada em menos de 3 meses.

Cada grande função pode ser alocada para uma equipe distinta e, depois são integradas para formar o todo.

Page 35: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

35

Problemas com o Modelo RAD Para projetos escaláveis, mas grandes, o

RAD requer recursos humanos suficientes para criar um número adequado de equipes;

RAD requer um comprometimento entre desenvolvedores e clientes para que as atividades possam ser realizadas rapidamente e o sistema seja concluído em um tempo abreviado;

Se o comprometimento for abandonado por qualquer das partes, o projeto falhará;

Não é apropriado quando os riscos são grandes.

Page 36: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

36

MODELOS DE PROCESSO

Modelos de Processo Evolucionários Descartáveis

Page 37: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

37

MODELOS DE PROCESSO

Prototipação

Page 38: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

38

Processo de Software – Prototipação

Processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído.

Idealmente, o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software.

Apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes.

Page 39: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

39

Processo de Software – Prototipação

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

Page 40: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

40

Processo de Software – Prototipação

construa/reviseprotótipo

construa/reviseprotótipo

teste doprotótipo

pelo cliente

teste doprotótipo

pelo cliente

ouça o clienteouça o cliente

Simplificando

Page 41: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

41

Processo de Software – Prototipação

Obtenção dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais.

Projeto Rápido: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída).

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

Page 42: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

42

Processo de Software – Prototipação

Construção Protótipo: implementação rápida do projeto.

Avaliação do Protótipo: cliente e desenvolvedor avaliam o protótipo.

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

Page 43: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

43

Processo de Software – Prototipação

Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido.

Ocorre neste ponto um processo de iteração que pode conduzir à 1ª. atividade até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito.

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

Page 44: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

44

Processo de Software – Prototipação

Construção Produto: identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade.

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

Page 45: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

45

Processo de Software – Prototipação

Problemas:

Cliente não sabe que o software que ele vê, não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. Não aceita bem a idéia de que a versão final do software vai ser construída e "força" a utilização do protótipo como produto final;

Desenvolvedor freqüentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo. Depois de um tempo ele se familiariza com essas escolhas, e esquece que elas não são apropriadas para o produto final.

Page 46: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

46

Processo de Software – Prototipação

Comentários:Ainda que possam ocorrer problemas, a

prototipação é um ciclo de vida eficiente.

A chave é definirem-se as regras do jogo logo no começo.

O cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos.

Page 47: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

47

MODELOS DE PROCESSO

Modelos de Processo Evolucionários Exploratórios – Incremental, Espiral e

Concorrente

Page 48: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

48

Processo de Software – Modelos de Processo Evolucionários

Usado quando o deadline não é adequado para o desenvolvimento do software; a data de término não é realística;

Uma versão limitada pode ser introduzida para atender à competitividade e pressões do negócio;

São liberados “produtos core”;

Os detalhes e extensões ainda devem ser definidos;

Page 49: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

49

Processo de Software – Modelos de Processo Evolucionários

-Prototipação

-Incremental

-Espiral

-Concorrente

Page 50: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

50

Processo de Software – Modelo Incremental

Combina elementos do Modelo Linear com a filosofia da Prototipação.

Aplica seqüências lineares numa abordagem de “saltos” à medida que o tempo progride

Cada seqüência linear produz um incremento do software (proc. de texto)

O processo se repete até que um produto completo seja produzido

Difere da Prototipação pois a cada incremento produz uma versão operacional do software

Page 51: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

51

Processo de Software – Modelo Incremental

Engenharia de Sistemas / Informação

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

incremento 1

incremento 2

incremento 3

incremento 4

produto liberadodo incremento 1

produto liberadodo incremento 2

produto liberadodo incremento 3

produto liberado

do incremento

4tempo

Page 52: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

52

Processo de Software – Modelo Espiral

Engloba a natureza iterativa da Prototipação com os aspectos sistemáticos e controlados do Modelo Linear

Fornece o potencial para o desenvolvimento rápido de versões incrementais do software

Cada clico da espiral é uma fase do desenvolvimento que sempre passa por 4 aspectos

Page 53: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

Processo de Software – Modelo Espiral

Planejamento

Definição de Objetivos

Avaliação e redução de risco

Desenvolvimento e Validação

Cada loop da espira é uma fase de desenvolvimento do software;

Page 54: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

54

É, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala.

Usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva.

Pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável.

Exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso.

Processo de Software – Modelo Espiral (comentários)

Page 55: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

55

Processo de Software – Modelo de Desenvolvimento Concorrente

É representado como uma série de grandes atividades técnicas, tarefas e seus estados associados.

Ele define uma série de eventos que podem disparar transições de um estado para outro, para cada uma das atividades da engenharia de software.

É freqüentemente usado como um paradigma para o desenvolvimento de aplicações Cliente/Servidor.

Pode ser aplicado a todo tipo de desenvolvimento de software e fornece uma visão exata de como está o estado do projeto.

Page 56: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

56

Processo de Software – Modelo de Desenvolvimento Concorrente

nonenone

sob

inspeção

sob

inspeção

sob

revisão

sob

revisão

averiguado

averiguado

realizado

realizado

aguardando

mudanças

aguardando

mudanças

em desenvolvime

nto

em desenvolvime

nto

Atividade de Análise

Page 57: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

57

MODELOS DE PROCESSO

Desenvolvimento orientado ao reuso

Page 58: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

58

Processo de Software – Desenvolvimento orientado a reuso

Baseado em reutilização de componentes de software e que podem ser acessados com alguma infraestrutura de integração para estes componentes.

Estágios do Processo Análise dos Componentes; Modificação dos Requisitos; Projeto de sistema com reuso; Desenvolvimento e Integração.

Vantagem de reduzir a quantidade de software a ser desenvolvido, e reduzir os custos.

Page 59: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

59

Processo de Software – Desenvolvimento Orientado a Reuso

Especificação dos Requisitos

Análise dos Componentes

Modificação dos Requisitos

Projeto do Sistema com

Reuso

Desenvolvimento e

Integração

Validação do Sistema

Page 60: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

60

Processo de Software – Desenvolvimento Orientado a Reuso

Desvantagens: Adequação dos requisitos são inevitáveis; O produto final pode não ser aquele que o

cliente pediu; Difícil controle sobre a evolução do sistema

pois os componentes evoluem independentemente;

Page 61: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

61

MODELOS DE PROCESSO

Modelos de Métodos Formais

Page 62: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

62

Processo de Software – Modelo de Métodos Formais

Compreende um conjunto de atividades que determinam uma especificação matemática para o software;

Utilizando métodos formais eliminam-se muitos problemas encontrados nos outros modelos, como p.ex., ambigüidade, incompletitude e inconsistência, que podem ser corrigidas mais facilmente de forma não ad hoc, mas através de análise matemática;

Promete o desenvolvimento de software livre de defeitos

Page 63: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

63

Processo de Software – Modelo de Métodos Formais (comentários)

Atualmente esse modelo consome muito tempo e é muito caro;

Como poucos desenvolvedores possuem o background necessário para utilizá-lo, são requeridos muitos cursos e treinamentos;

É difícil usar tais modelos como meio de comunicação com a maioria dos clientes;

Page 64: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

64

Processo de Software – Modelo de Métodos Formais

Definição de Requisitos

Especificação Formal

Transformação Formal

Integração e Teste do Sistema

Page 65: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

65

Modelo de Métodos Formais -Transformações Formais

R2Formal

specificationR3

Executableprogram

P2 P3 P4

T1 T2 T3 T4

Proofs of transformation correctness

Formal transformations

R1

P1

Prova de regularidade transformações

Transformações Formais

Page 66: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

66

MODELOS DE PROCESSO

Técnicas de Quarta Geração

Page 67: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

67

Processo de Software – Técnicas de 4a Geração

Concentra-se na capacidade de se especificar o software a uma máquina em um nível que esteja próximo à linguagem natural.

Engloba um conjunto de ferramentas de software que possibilitam que:

o sistema seja especificado em uma linguagem de alto nível e

o código fonte seja gerado automaticamente a partir dessas especificações

Page 68: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

68

Obtenção dos Requisitos

Estratégia do “Projeto”

Implementação usando 4GL

Testes

Processo de Software – Técnicas de 4a Geração

Page 69: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

69

PROPONENTES: redução dramática no tempo de desenvolvimento do software (aumento de produtividade);

OPONENTES: as 4GL atuais não são mais fáceis de usar do que as linguagens de programação;

o código fonte produzido é ineficiente a manutenibilidade de sistemas usando técnicas

4G ainda é questionável

Processo de Software – Técnicas de 4a Geração (comentários)

Page 70: Professor Mário Dantas E NGENHARIA DE S OFTWARE. Aula 02  Processos Existentes;  Ciclo de vida de desenvolvimento de software; 2.

70

Processo de Software – Conclusão

ENGENHARIA DE SOFTWARE

pode ser vista como uma abordagem de desenvolvimento de software

elaborada com disciplina e métodos bem definidos.