Post on 21-Jan-2017
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