processo de desenvolvimento de software wolley w. silva
TRANSCRIPT
Processo de Desenvolvimento de
SoftwareWolley W. Silva
Agenda
• Conceitos• Modelo Cascata• Modelo Evolucionário• Modelo Incremental• Modelo Espiral
Conceitos
• Um processo de desenvolvimento é constituído das etapas a serem realizadas para o desenvolvimento de um sistema de software, as técnicas utilizadas, os tipos de produtos a serem confeccionados e os recursos necessários (humano e material).
Conceitos
• Não existe um único processo que possa ser adotado para todos os projetos.
• Deve-se considerar:o Tipo e o porte do sistema;o As condições existentes para o desenvolvimento
(usuários, prazos, recursos);o As características da qualidade e os respectivos
níveis desejados para cada característica do sistema.
Conceitos
• Modelos de Processo de Desenvolvimento:– Descrições simplificadas de processos de
desenvolvimento, onde se ressaltam características mais importantes;
– Modelos servem de base para a definição do processo adequado para um dado projeto.
Conceitos
• Abordagem dos Modelos de Processo1. Linear (conservadora) : atividades realizadas em
sequência• Modelo Cascata
2. Paralela (radical) : Atividades realizadas em paralelo• Modelo incremental• Modelo Evolucionário• Modelo Espiral
Modelo Cascata• Caracteriza-se por fases sucessivas e
interações entre as fases.
Modelo Cascata
• Vantagens desse modelo:– Com atividades sequenciais, torna os processos
“mais fáceis de serem controlados e gerenciados”;– É um modelo vantajoso quando se tem as
especificações de requisitos bem definidas;– Tornou-se um modelo fortemente utilizado;
Modelo Cascata
• Desvantagens desse modelo:– Se a uma de suas fase for levada com muito rigor
ela poderá retardar o término do projeto.– Quando não é possível identificar todos os
requisitos na primeira fase torna-se inviável a utilização este modelo;
Modelo Evolucionário
Modelo Evolucionário
• Desenvolve-se uma versão inicial com alguns poucos requisitos implementados para avaliação por parte dos usuários;
• Faz-se o aprimoramento produzindo novas versões com base nos comentários recebidos dos usuários.
• Após construção de sucessivas versões, chega-se na versão final do sistema.
Modelo Evolucionário
Descrição doesboço
Especificação
Desenvolvimento
Validação( Testes )
VersãoInicial
VersõesIntermediárias
VersãoFinal
( Atividades emParalelo )
• Vantagens dos modelos evolucionários– As primeiras versões podem ajudar os usuários na
compreensão dos requisitos; – Com mais atividades realizadas em paralelo existe
possibilidade de acelerar o término do projeto.
Modelo Evolucionário
• Desvantagem dos modelos evolucionários– Controlar e gerenciar o projeto poderá se tornar
difícil (até mesmo a evolução das versões);– Produzir documentos que reflitam cada versão
poderá se tornar um problema difícil;– A tendência é a de produzir sistemas com
arquitetura mal estruturada.
Modelo Evolucionário
Modelo de Desenvolvimento Incremental
Modelo de Desenvolvimento Incremental
• Faz-se o desenvolvimento por partes, acrescentando-se sucessivas partes denominadas de incrementos.
• A cada incremento novas funcionalidades são implementadas.
• Para desenvolver um incremento outro modelo (como o cascata ou o evolucionário) poderá ser incorporado;
Modelo de Desenvolvimento Incremental
• Vantagens do modelo incremental– Com uma pequena equipe de desenvolvimento é
possível desenvolver grandes sistemas. – Permite aos usuários retardar o detalhamento dos
requisitos e ir adquirindo experiência e maturidade.
Modelo de Desenvolvimento Incremental
• Dificuldades– Definir incrementos pequenos de acordo com nas
necessidades dos usuários;– Definir projeto global do sistema para que a
junção dos incrementos não resulte em um sistema com uma arquitetura pobre.
Modelo de Desenvolvimento Incremental
Modelo de Desenvolvimento Incremental
Desenv. Incremento
Projetar Arquitetura
Global
Atribuir prioridade
às Funções
Def. Requisitos
Globais
Validar Incremento
Integrar Incremento
Validar Sistema
Sist. Final
Modelo de Desenvolvimento Espiral
• Consiste em realizar as fases de desenvolvimento (Especificação, Análise, Projeto, etc.) repetindo sistematicamente 4 atividades para cada uma das fases.a) Definição dos objetivosb) Avaliação e redução de riscosc) Desenvolvimento e validaçãod) Planejamento
Modelo de Desenvolvimento Espiral
Desenv. eValidação
Planejamento
Def. dosObjetivos
Avaliação e Redução dos
Riscos
Cada "loop" da espiral representa uma fase do processo de desenvolvimento: 1º loop - Viabilidade do projeto.2º loop - Referência dos requisitos / Análise.3º loop - Projeto lógico.4º loop - Projeto físico.
A. Definição do objetivo:– Definem-se os objetos específicos para a fase;– Identificam-se as restrições para o processo de
desenvolvimento da fase e para os produtos;– Prepara-se um plano para o controle e
gerenciamento da fase;– Identificam-se os riscos do projeto.
Modelo de Desenvolvimento Espiral
B. Avaliação e redução de riscos:– Analisa-se cada risco identificado;– Providenciam-se ações para a redução desses
riscos (a probabilidade de ocorrência do risco e seus efeitos).
Modelo de Desenvolvimento Espiral
C. Desenvolvimento e validação:– Escolhe-se o modelo de processo apropriado para
o desenvolvimento da fase;– Por exemplo, o modelo cascata ou modelo
evolucionário (dependendo das condições existentes);
Modelo de Desenvolvimento Espiral
D. Planejamento– Faz-se uma revisão do projeto e se a decisão for a
de continuar com o próximo "loop";– Elaboram-se planos para a próxima fase;
Modelo de Desenvolvimento Espiral