Conforme vimos na Apostila Processos de Software; o modelo de processo
de software é uma representação abstrata de um processo de software onde cada
perspectiva é definida pela engenharia de software agrupando em fase as
atividades a serem desenvolvidas produzindo várias entradas e saídas definindo
quem faz o quê, quando e como para
atingir certo objetivo.
No modelo processo software sua definição esta relacionada com a redução
dos problemas relacionados a treinamento, revisão e suporte à ferramentas;
experiências adquiridas nos projetos e a
economia de tempo. O modelo cascata tem
como principal característica a sequencia de atividades onde cada fase
transcorre completamente e seus produtos são vistos com E/S para uma nova fase.
As principais vantagens deste modelo são:
*Cada etapa segue uma sequência agrupada em tarefas;
*O cliente participa do projeto;
*Prever fazer alterações de forma
a contemplar alterações funcionais ou técnicas.
Suas desvantagens são:
*Dificuldade em acomodar mudanças depois de sua execução.
*Partição inflexível do projeto em estágios distintos;
*Dificuldade em responder as mudanças dos requisitos;
*Difícil adaptação para modelos linear sequencial;
*Cliente esperar resultado;
*Alto custo de correção dos específicos;
Já o modelo espiral o
projeto é atacado como uma serie de pequenos ciclos, cada um finalizando uma
versão de software executável.
Entre suas vantagens podemos citar:
*Permite que ao longo de cada
interação se obtenha versões do sistema recorrendo a prototipagem;
*Permite a abordagem do refinamento seguido pelo modelo em cascata;
Entre suas desvantagens podemos citar:
*Exige considerável experiência na avaliação dos riscos e baseia-se na
experiência para o sucesso.
*O protótipo pode não cumprir os
requisitos de desempenho.
*Pode levar ao desenvolvimento em paralelo de múltiplas partes do
projeto.
Após a avaliação de risco um modelo de desenvolvimento para o sistema é
relacionado, se os riscos da interface como o usuário forem dominantes, um
modelo de desenvolvimento apropriado pode ser a prototipação. Se o principal
risco for a integração de subsistema, o modelo de desenvolvimento em cascata
pode ser o mais apropriado para a situação. Portanto, o modelo cascata deve ser
usado apenas quando os requisitos forem bem compreendidos e houver pouca
probabilidade de mudanças radicais durante o desenvolvimento do sistema. Uma abordagem
evolucionária para desenvolvimento de software é frequentemente mais eficaz do
que a abordagem em cascata na produção de sistemas que atendam as necessidades
imediatas dos clientes.
Modelo Espiral
O modelo espiral completo está ilustrado na Figura. A dimensão radial
representa o custo acumulado atualizado e a dimensão angular representa o
progresso através da espiral. Cada setor da espiral corresponde a uma tarefa
(fase) do desenvolvimento. No modelo original foram propostas quatro tarefas
(fases ou quadrantes) ilustrada na Figura
Um ciclo se inicia com a
"Determinação de objetivos, alternativas e restrições "(primeira
tarefa) onde ocorre o comprometimento dos envolvidos e o estabelecimento de uma
estratégia para alcançar os objetivos. Na segunda tarefa "Avaliação de
alternativas, identificação e solução de riscos", executa-se uma análise
de risco.
Prototipação é uma boa ferramenta para tratar riscos. Se o risco for
considerado inaceitável, pode parar o projeto. Na terceira tarefa ocorre o
desenvolvimento do produto. Neste quadrante pode-se considerar o modelo
cascata. Na quarta tarefa o produto é avaliado e se prepara para iniciar um
novo ciclo.
A manutenção de um
software utilizando este modelo de ciclo de vida é tratada da mesma forma que o
desenvolvimento. A razão para se colocar
em discussão este modelo na disciplina engenharia de software está no fato dele
chamar a atenção para vários pontos importantíssimos no desenvolvimento de
software. Variações do modelo espiral consideram entre três e seis tarefas ou
setores da espiral. Um exemplo são as regiões: Comunicação com o cliente;
Planejamento; Análise de risco; Engenharia; Construção e liberação; e Avaliação
do cliente.
Modelo Incremental
Os modelos de processo interativos como incremental apresentam um ciclo
de atividades, que evitam um comprometimento prematuro em relação a uma
especificação ou até um projeto.
A atividade de definir requisitos é fundamental, esta porta é que faz a
coleta de dados para desenvolver o tipo de projeto.
A essência do processo incremental é que o cliente identifica facilmente
os serviços que serão fornecidos pelo sistema e participa do processo de incrementar
tanto a sua opinião.
Mais com tudo isso existe problema devido a sua relatividade incremental
pequena sendo de até 20 mil linhas de código.
A vantagem de um processo de software baseado na abordagem evolucionaria
é que as especificações podem ser desenvolvidas de forma incremental. No entanto
a abordagem tem dois problemas, o processo não é visível, os gerentes precisam
de produtos regulares para medir o progresso, a analise insuficiente do
software, os usuários esperam um desempenho do software igual do protótipo, os
clientes podem tornar-se unidos demais ao seus protótipos.
Exemplos de Modelos de processos de softwares que poderiam ser usados como
base para gerenciar desenvolvimento de alguns sistemas:
* Sistema para controlar anti-bloqueador de sistemas
de freios de um automóvel, usa-se o modelo evolucionário de prototipação. O
modelo evolucionário é direcionado para sistemas complexos e pequenos.
* Sistema de realidade virtual para apoiar a
manutenção de software, usa-se o modelo por componentes, basicamente um
componente de realidade virtual para construir outro.
* Sistema de contabilidade de universidade que
substitui um sistema existente, usa-se o modelo de desenvolvimento
evolucionário exploratório.
* Sistema interativo que permite aos passageiros
encontrar o horário dos trens por meio de terminais instalados nas estacoes,
neste caso a solução mais viável e a junção do modelo cascata com o modelo por
componentes.
Fonte: Aulas de Engenharia de Software e apostila de Processos de Software.


Cada modelo tem um estilo próprio de ser identificado e estes são muito importante para o desenvolvimento do software mais um deles que nos mostra que tem relação um com o outro são os modelo espiral e incremental ambos possui alguma relação em comum mais como disse cada um tem um estilo próprio que o difere um do outro.
ResponderExcluirMuito interessante galera ...Podemos notar que a utilização de um processo de software têm sido apontada como um fator primordial para o sucesso de empresas de desenvolvimento de software.
ResponderExcluiro modelo processo software sua definição esta relacionada com a redução dos problemas estar relacionados a revisão e suporte à ferramentas; nos modelo espiral e incremental.joao andre...
ResponderExcluirO modelo de processo de software é muito importante na area de desenvolvimento de software, para tal existem 3 modelos de software que podem ser escolhidos pelo desenvolvedor para criação de um software eficiente.
ResponderExcluirA Engenharia de software baseada em componentes, baseia-se na existência de um numero significativo de componentes reusáveis. O processo de desenvolvimento do sistema enfoca a integração desses componentes, em vez de desenvolvê-los a partir do zero.
ResponderExcluirA gestão do serviço clientela: o cliente gosta de saber que é conhecido na empresa e não suporta ter de recapitular, a cada contato, o historial da sua relação à empresa.
ResponderExcluir