49
Processo de Software

Aula 2 modelo de processo de software1

Embed Size (px)

Citation preview

Page 1: Aula 2   modelo de processo de software1

Processo de Software

Page 2: Aula 2   modelo de processo de software1

Processo

Um conjunto de atividades realizadas por pessoas cujo objetivo é desenvolvimento ou evolução de software e sua documentação.

– Tem como meta entregar um produto de software de maneira eficiente, previsível e que corresponda às necessidades de negócio. Geralmente inclui análise de requisitos, programação e testes, entre outras tarefas.

Page 3: Aula 2   modelo de processo de software1

 ” É um conjunto de atividades que, ao serem executadas, geram um produto de software”.

Sommerville

Processo de Software

Page 4: Aula 2   modelo de processo de software1

Atividades de Processo de Software

•EspecificaçãoO que o sistema deve fazer (funcionalidade) e quais as restrições.

•Projeto e Implementação Produção do Software a partir das definições.

•Validação: (V & V)Testar se está de acordo com o que o cliente necessita para ser validado.

•EvoluçãoO software tem que ser atualizado para sempre garantir as necessidades do cliente. Mudanças no software.

27/07/13

Page 5: Aula 2   modelo de processo de software1

Processo de Desenvolvimento de Software

Page 6: Aula 2   modelo de processo de software1

Vantagem

O uso de um processo de software bem definido leva à redução dos custos de produção, bem como à melhoria da qualidade e integridade do software.

Page 7: Aula 2   modelo de processo de software1

Modelo de Processo de Software

Page 8: Aula 2   modelo de processo de software1

 É uma representação de um processo de software, apresentada sobre uma perspectiva específica.

É uma estratégia para o desenvolvimento do software.

Define a ordem de execução das atividades durante as fases de engenharia de software.

Modelo de Processo de Software

Page 9: Aula 2   modelo de processo de software1

O que diferencia um modelo de processo do outro?

• É a ordem em que as fases vão ocorrer;• O tempo e a ênfase dados a cada fase;• As atividades presentes;• Os produtos entregues.

27/07/13

Page 10: Aula 2   modelo de processo de software1

Antes do desenvolvimento de um produto, devemos escolher um modelo de ciclo de vida.

De acordo com:- Tamanho;- Complexidade e/ou nível de confiabilidade;- Segurança do projeto.

Page 11: Aula 2   modelo de processo de software1

Como escolher um modelo para o desenvolvimento do software?

27/07/13

Page 12: Aula 2   modelo de processo de software1

Atividades comuns aos modelos?• Especificação;• Projeto e Implementação;• Validação;• Evolução.

27/07/13

Page 13: Aula 2   modelo de processo de software1

1. Cascata ou ciclo de vida clássico ou tradicional;

2. Modelo evolutivo; Espiral;

Protótipo;

Iterativo e Incremental

Modelos de Processo de Software

Page 14: Aula 2   modelo de processo de software1

• Modelo mais antigo;

• Modelado em função do ciclo da engenharia convencional;

• Fases sequencial ao desenvolvimento de software;

• O resultado de uma fase é entrada para outra fase.

Modelo Cascata

Page 15: Aula 2   modelo de processo de software1

• Utilizado principalmente quando os requisitos de um determinado problema são bem compreendidos.

• Utilização:• Fazer adaptações ou aperfeiçoamentos em um

sistema já existente.• Necessidade de uma nova funcionalidade e os

requisitos estão bem definidos e são estáveis.

Modelo Cascata

Page 16: Aula 2   modelo de processo de software1

Modelo Cascata

Page 17: Aula 2   modelo de processo de software1

Definição de Requisitos

O 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.

Fases - Modelo Cascata

Page 18: Aula 2   modelo de processo de software1

Projeto do Sistema

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.

Fases - Modelo Cascata

Page 19: Aula 2   modelo de processo de software1

Implementação

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

Fases - Modelo Cascata

Page 20: Aula 2   modelo de processo de software1

Teste

É a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

Fases - Modelo Cascata

Page 21: Aula 2   modelo de processo de software1

Manutenção

Provavelmente o software deverá sofrer mudanças depois que for entregue ao cliente.

Causas das mudanças: - Erros;- Adaptação do software para acomodar mudanças em seu

ambiente externo;- Exigência do cliente para acréscimos funcionais e de

desempenho.

Fases - Modelo Cascata

Page 22: Aula 2   modelo de processo de software1

Utilização• Existe um conjunto de Requisitos do usuário estáveis e de

alta qualidade;

• O sistema completo deve estar disponível de um única vez; • Recomendado para sistemas onde a segurança e a

confiabilidade tem grande importância.

27/07/13

Page 23: Aula 2   modelo de processo de software1

• Projetos reais raramente seguem o fluxo sequencial que o modelo propõe;

• Logo no início é difícil estabelecer explicitamente todos os requisitos.

• Fases são dependentes uma da outra;• Não é permitida mudança dos requisitos no meio do

processo de desenvolvimento;• O sistema completo deve estar disponível de um única vez; 

Problemas

Page 24: Aula 2   modelo de processo de software1

1) O que é software?2) Cite 4 Características de Software.3) O que é a Engenharia de Software? 4) Qual o objetivo da Engenharia de Software? 4) O que é um processo de software?5) O que é um modelo de Processo de Software?6) Dê exemplos de modelos de Processo de Software e descreva o

Modelo cascata.

Sugestão:Vincular a Engenharia de Software a um assunto visto em algumadisciplina cursada na instituição.

Questionário - Introdução

Page 25: Aula 2   modelo de processo de software1

Modelos Evolucionários

São explicitamente projetados para acomodar um produto que evolui com o tempo.

– A cada iteração, produzem uma versão cada vez mais completa do software;

Exemplos:– Modelo Espiral;– Modelo de Prototipagem.

Page 26: Aula 2   modelo de processo de software1

Modelo Espiral

27/07/13

Page 27: Aula 2   modelo de processo de software1

Modelo Espiral

• Proposto por Boehm em 1988.• Propôs uma forma de trabalho na qual ocorre

uma repetição das atividades do modelo cascata.

Page 28: Aula 2   modelo de processo de software1

Modelo Espiral

• Combina a natureza iterativa da prototipagem com os aspectos controlados do modelo em cascata;

• O software é produzido numa série de versões evolucionárias;

• Primeiras versões: papel ou protótipo;

Page 29: Aula 2   modelo de processo de software1

Modelo Espiral

• É uma abordagem cíclica que aumenta incrementalmente o grau de definição, enquanto diminui o risco;

• O modelo pode ser aplicado ao longo de todo ciclo de vida de uma aplicação;

Page 30: Aula 2   modelo de processo de software1

Modelo Espiral

• Evolução através de vários ciclos completos de especificação, projeto e desenvolvimento;

• O Espiral representa fases do processo;• Riscos avaliados e resolvidos ao longo do

processo.

27/07/13

Page 31: Aula 2   modelo de processo de software1

Modelo Espiral

27/07/13

Page 32: Aula 2   modelo de processo de software1

Vantagens

• Usuário pode usufruir de funcionalidades a cada incremento;

• Redução de risco.

Page 33: Aula 2   modelo de processo de software1

Modelo de Prototipagem

Page 34: Aula 2   modelo de processo de software1

Protótipo

Produto de trabalho na fase de teste e ou planejamento de um projeto.

Page 35: Aula 2   modelo de processo de software1

Vantagens - Protótipos

• Obter retorno sobre desenho mais depressa;• Facilitam o entendimento e o feedback dos usuários;• Cumprem o desejo de mostrar resultados rápidos para o

cliente;• Tornam as discussões mais produtivas e sob controle nas

sessões com os usuários;

Page 36: Aula 2   modelo de processo de software1

Vantagens - Protótipos

• Facilitar o entendimento entre os membros de equipes multidisciplinares de projetos;

• Analise da usabilidade no início do processo de desenvolvimento;

• Baixo custo para alterar;• Possibilitam obter uma aprovação formal do projeto antes de

se prosseguir para o desenvolvimento.

Page 37: Aula 2   modelo de processo de software1

Modelo de Prototipagem

O software passa por constantes versões até chegar a sua versão final.

27/07/13

Page 38: Aula 2   modelo de processo de software1

Modelo de Prototipagem

Começa com os requisitos bem compreendidos e adiciona funcionalidades a medida que o cliente propõe.

27/07/13

Page 39: Aula 2   modelo de processo de software1

Modelo de Prototipagem

Utilização:Entender os requisitos do usuário e, assim, obter

uma melhor definição dos requisitos do sistema;Possibilita que o desenvolvedor crie um protótipo

do software que deve ser construído;Cliente não definiu detalhadamente os requisitos.

27/07/13

Page 40: Aula 2   modelo de processo de software1

Modelo de Prototipagem

27/07/13

Page 41: Aula 2   modelo de processo de software1

Desvantagens• Pode haver pressão do cliente para transformar um

protótipo malfeito em produto final, resultando em baixa qualidade;

• Concessões na implementação podem fazer com que o desenvolvedor fique familiarizado com escolhas não ideais;

• O cliente tem que concordar que o protótipo será usado apenas para levantamento de requisitos e que o software real será submetido à engenharia com qualidade.

27/07/13

Page 42: Aula 2   modelo de processo de software1

Observações

– Ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente, a chave é definir as regras do jogo logo no começo;

– Cliente e desenvolvedor devem concordar que o protótipo seja construído para servir como um mecanismo para definir os requisitos.

27/07/13

Page 43: Aula 2   modelo de processo de software1

Ferramenta

• Axure– É uma ferramenta de design e documentação capaz de

gerar wireframes e protótipos em linguagens como HTML e Javascript.

• Download:– (http://www.axure.com/download)

Referência:– http://www.devmedia.com.br/introducao-a-prototipacao-e-

apresentacao-do-axure-rp-6-5/27978

Page 44: Aula 2   modelo de processo de software1

Modelo Iterativo e Incremental

Desenvolvimento iterativo e incremental - desenvolvimento é iniciado com um subconjunto simples de Requisitos de Software e iterativamente alcança evoluções subsequentes das versões até o sistema todo estar implementado.

Page 45: Aula 2   modelo de processo de software1

Modelo Iterativo e Incremental

Page 46: Aula 2   modelo de processo de software1

Modelo Iterativo

Page 47: Aula 2   modelo de processo de software1

Modelo Incremental

Page 48: Aula 2   modelo de processo de software1

Vantagens do Desenvolvimento Incremental

Page 49: Aula 2   modelo de processo de software1

Rational Unified Process – RUP