Aula 2 modelo de processo de software1

Preview:

Citation preview

Processo de Software

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.

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

Sommerville

Processo de Software

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

Processo de Desenvolvimento de Software

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.

Modelo de Processo de Software

 É 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

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

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.

Como escolher um modelo para o desenvolvimento do software?

27/07/13

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

27/07/13

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

2. Modelo evolutivo; Espiral;

Protótipo;

Iterativo e Incremental

Modelos de Processo de Software

• 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

• 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

Modelo Cascata

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

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

Implementação

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

Fases - Modelo Cascata

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

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

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

• 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

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

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.

Modelo Espiral

27/07/13

Modelo Espiral

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

uma repetição das atividades do modelo cascata.

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;

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;

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

Modelo Espiral

27/07/13

Vantagens

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

• Redução de risco.

Modelo de Prototipagem

Protótipo

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

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;

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.

Modelo de Prototipagem

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

27/07/13

Modelo de Prototipagem

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

27/07/13

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

Modelo de Prototipagem

27/07/13

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

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

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

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.

Modelo Iterativo e Incremental

Modelo Iterativo

Modelo Incremental

Vantagens do Desenvolvimento Incremental

Rational Unified Process – RUP