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ção
O 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ção
O 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 alguma
disciplina 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

Aula 2 modelo de processo de software1

  • 1.
  • 2.
    Processo Um conjunto deatividades 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.
  • 3.
    ” É umconjunto de atividades que, ao serem executadas, geram um produto de software”. Sommerville Processo de Software
  • 4.
    Atividades de Processode Software •Especificação O 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ção O software tem que ser atualizado para sempre garantir as necessidades do cliente. Mudanças no software. 27/07/13
  • 5.
  • 6.
    Vantagem O uso deum processo de software bem definido leva à redução dos custos de produção, bem como à melhoria da qualidade e integridade do software.
  • 7.
    Modelo de Processode Software
  • 8.
    É uma representaçãode 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
  • 9.
    O que diferenciaum 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
  • 10.
    Antes do desenvolvimentode 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.
  • 11.
    Como escolher ummodelo para o desenvolvimento do software? 27/07/13
  • 12.
    Atividades comuns aosmodelos? • Especificação; • Projeto e Implementação; • Validação; • Evolução. 27/07/13
  • 13.
    1. Cascata ouciclo de vida clássico ou tradicional; 2. Modelo evolutivo;  Espiral;  Protótipo;  Iterativo e Incremental Modelos de Processo de Software
  • 14.
    • Modelo maisantigo; • 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
  • 15.
    • Utilizado principalmentequando 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
  • 16.
  • 17.
    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
  • 18.
    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
  • 19.
    Implementação  Tradução dasrepresentações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador. Fases - Modelo Cascata
  • 20.
    Teste  É ainvestigaçã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
  • 21.
    Manutenção  Provavelmente osoftware 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
  • 22.
    Utilização • Existe umconjunto 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
  • 23.
    • Projetos reaisraramente 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
  • 24.
    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 alguma disciplina cursada na instituição. Questionário - Introdução
  • 25.
    Modelos Evolucionários São explicitamenteprojetados 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.
  • 26.
  • 27.
    Modelo Espiral • Propostopor Boehm em 1988. • Propôs uma forma de trabalho na qual ocorre uma repetição das atividades do modelo cascata.
  • 28.
    Modelo Espiral • Combinaa 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;
  • 29.
    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;
  • 30.
    Modelo Espiral • Evoluçãoatravé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
  • 31.
  • 32.
    Vantagens • Usuário podeusufruir de funcionalidades a cada incremento; • Redução de risco.
  • 33.
  • 34.
    Protótipo Produto de trabalhona fase de teste e ou planejamento de um projeto.
  • 35.
    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;
  • 36.
    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.
  • 37.
    Modelo de Prototipagem Osoftware passa por constantes versões até chegar a sua versão final. 27/07/13
  • 38.
    Modelo de Prototipagem Começacom os requisitos bem compreendidos e adiciona funcionalidades a medida que o cliente propõe. 27/07/13
  • 39.
    Modelo de Prototipagem Utilização: Entenderos 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
  • 40.
  • 41.
    Desvantagens • Pode haverpressã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
  • 42.
    Observações – Ainda quepossam 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
  • 43.
    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 •
  • 44.
    Modelo Iterativo eIncremental 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.
  • 45.
    Modelo Iterativo eIncremental
  • 46.
  • 47.
  • 48.
  • 49.