Modelo espiral: história, características, etapas, exemplo - Ciência - 2023


science
Modelo espiral: história, características, etapas, exemplo - Ciência
Modelo espiral: história, características, etapas, exemplo - Ciência

Contente

o padrão espiral é um arquétipo do processo de desenvolvimento de aplicativos. Parte-se da hipótese de que o desenvolvimento de software é um ciclo iterativo que se repete até que os objetivos estabelecidos sejam alcançados. Ele tem a capacidade de lidar com o grande número de riscos que podem ocorrer durante o desenvolvimento de qualquer software.

É um dos modelos mais importantes de suporte à gestão de riscos. Como o nome sugere, este modelo é mostrado em forma de espiral, onde as diferentes etapas do modelo são distribuídas em diferentes ciclos. O número de ciclos no modelo não é fixo e pode variar de projeto para projeto.

História

Criação

O modelo espiral foi definido pelo matemático americano e professor de engenharia de software Barry Boehm. Depois de apresentar seu conceito em 1986 para o desenvolvimento de aplicações complexas, ele publicou seu modelo em 1988 em uma estrutura mais abrangente em seu artigo “Um modelo em espiral de desenvolvimento e melhoria de software“.


Parte desta publicação de 1988 descreveu o modelo em espiral graficamente, mostrando de uma maneira abrangente como o processo de desenvolvimento de software se parece em uma forma espiral e apoiado por ciclos.

Boehm é conhecido por suas inúmeras contribuições para a engenharia de software, como o modelo de custo construtivo (COCOMO), o modelo em espiral do processo de software, a abordagem da Teoria G (ganha-ganha) para determinação e gerenciamento de requisitos. do software.

Alternativa ao modelo em cascata

Em sua publicação, Boehm descreveu o modelo espiral como uma possível alternativa ao modelo em cascata previamente estabelecido, que também serviu de base para sua prática.

O modelo espiral não foi o primeiro a discutir o desenvolvimento cíclico, mas foi o primeiro modelo a explicar por que a iteração é importante. Conforme planejado originalmente, ele foi direcionado a projetos grandes e complexos, cujas iterações normalmente variam de 6 meses a 2 anos.


Este modelo não assume que as tarefas de desenvolvimento de software são projetadas linearmente, ao contrário do modelo em cascata, mas as vê como tarefas iterativas.

Esse modelo cíclico influenciou a Arquitetura de Engenharia de Software Baseada em Modelos (MBASE) e a programação extrema.

Características do modelo espiral

Controle de risco

O que diferencia muito este modelo de outros modelos de processo de software é que ele reconhece explicitamente os riscos. Assim, reduz significativamente a falha de grandes projetos de software, avaliando os riscos repetidamente e verificando o produto em desenvolvimento a cada vez.

Este modelo de computador contém componentes de quase todos os outros modelos do ciclo de vida do software, como o modelo em cascata, o modelo de prototipagem, o modelo iterativo, o modelo evolutivo, etc.

Por causa disso, ele é capaz de lidar com quase qualquer tipo de risco que outros modelos geralmente não suportam. No entanto, por ter tantos componentes, esse modelo é muito mais complexo do que os outros modelos de desenvolvimento de software.


Descrição da espiral

Cada volta da espiral representa um ciclo completo, pelo qual sempre passam os quatro quadrantes, representando as quatro etapas do modelo.

À medida que o tamanho da espiral aumenta, também aumenta o progresso feito. Portanto, as etapas não são executadas apenas uma, mas várias vezes, em espiral.

Embora esta repetição cíclica faça com que o projeto se aproxime lentamente dos objetivos estabelecidos, o risco de que o processo de desenvolvimento falhe é fortemente minimizado.

Genérico

Os quatro estágios apenas implementam os objetivos básicos de um ciclo, mas eles não precisam se manifestar em cada ciclo.

A ordem de cada ciclo também não é estritamente determinada. Portanto, o modelo pode ser combinado a qualquer momento com outros modelos.

Flexível

É bastante flexível, pois realiza os processos de definição de objetivos, análise de risco, desenvolvimento e planejamento separadamente para cada fase do projeto.

Metamodelo

É considerado um metamodelo porque inclui os outros modelos. Por exemplo, se a espiral fosse um único ciclo representaria o modelo em cascata, uma vez que incorpora a abordagem gradual deste modelo clássico.

Ele também usa a abordagem do modelo de prototipagem, pois no início de cada ciclo ele monta um protótipo para gerenciar os riscos.

Além disso, é compatível com o modelo evolutivo, pois as iterações da espiral podem ser consideradas níveis evolutivos, por meio dos quais o sistema final é construído.

Estágios

Determine objetivos, alternativas e restrições

Os requisitos do sistema são definidos com o máximo de detalhes possível, incluindo desempenho, interfaces de hardware / software, indicadores-chave de sucesso, etc. e quais metas devem ser associadas ao ciclo de desenvolvimento atual são consideradas.

Além disso, diferentes alternativas para sua implementação são examinadas, como build vs. comprar, reutilizar componentes existentes ou terceirizar, etc.

Da mesma forma, são determinadas restrições como custo, cronograma e interfaces, consumo de tempo, etc.

Avaliação de riscos

Todas as alternativas propostas são avaliadas. Os objetivos e restrições servem como referências determinantes para selecionar a melhor solução.

Além disso, são identificados riscos que podem dificultar o sucesso do projeto, como falta de experiência, novas tecnologias, prazos apertados, processos deficientes, etc., implementando as estratégias mais rentáveis ​​com o menor risco.

Por fim, são utilizados métodos como prototipagem, simulações, modelos analíticos e pesquisas com usuários.

Desenvolvimento e teste

Todo o desenvolvimento necessário é realizado, utilizando a tecnologia e solução selecionada. A cada iteração, uma versão melhor do aplicativo é criada.

O código real é escrito e testado várias vezes até que o resultado desejado seja alcançado, que servirá como base para etapas futuras de desenvolvimento.

Planejando o próximo ciclo

Após a conclusão de um ciclo, o planejamento para o próximo começa. Esse planejamento poderia ser dar continuidade ao projeto normalmente se o objetivo do ciclo fosse alcançado, considerando a definição do próximo objetivo.

Também pode ser para encontrar outras soluções, se o estágio anterior de desenvolvimento for defeituoso. A estratégia existente pode ser substituída por uma das alternativas previamente definidas ou por uma nova. Com isso, seria iniciada uma nova tentativa de atingir a meta estabelecida.

Exemplo

Os militares dos Estados Unidos adotaram o modelo em espiral para o desenvolvimento e atualização do programa de modernização do Future Fighting Systems (SCF).

Lançados oficialmente em 2003, os SCFs foram concebidos para equipar as tropas com veículos conectados em tempo real a uma rede extraordinariamente rápida e flexível de campos de batalha.

O projeto foi dividido em quatro espirais de desenvolvimento de cerca de dois anos cada. Spiral 1 foi programado para começar em 2008 e entregar protótipos para uso e avaliação.

Após a conclusão da espiral 1, a espiral 2 foi programada para começar em 2010. O desenvolvimento do produto final foi programado para ser entregue em 2015.

Em agosto de 2005, a Boeing anunciou a conclusão do primeiro grande marco do projeto, que era a revisão funcional dos sistemas. Boeing e Science Applications International Corporation foram os co-líderes do projeto.

No entanto, para outubro de 2005, o Pentágono recomendou atrasar o projeto devido ao alto impacto nos custos da guerra do Iraque e da ajuda do furacão Katrina.

O projeto foi cancelado em 2009 após cortes no orçamento, sem ser capaz de provar os benefícios do modelo em espiral nesta missão

Vantagem

Estrutura cíclica

Devido a este tipo de estrutura, os problemas entre o projeto e os requisitos técnicos do software são eliminados tacitamente, graças a verificações periódicas.

Gestão de riscos

Os riscos são analisados ​​em cada estágio do produto antes de prosseguir. Isso ajuda a superar ou mitigar riscos potenciais.

Todos os funcionários se beneficiam da grande importância da análise de risco neste modelo, possivelmente representando sua maior vantagem sobre os outros modelos de processo.

A avaliação de risco periódica é valiosa ao usar novos ambientes técnicos, que geralmente estão associados a um potencial de risco específico devido à ausência de valores empíricos.

Participação e feedback do cliente

Os clientes são envolvidos em cada etapa do projeto, até que o projeto seja concluído. Portanto, diferentes feedbacks podem ser coletados a fim de melhorar a próxima versão do projeto.

Além disso, o feedback pode ser obtido a qualquer momento devido ao avanço em forma de espiral. Assim, clientes e usuários podem ser integrados desde o início no processo de desenvolvimento.

Ideal para grandes projetos

É particularmente popular e importante para projetos grandes e complexos, onde o controle de orçamento é uma prioridade para clientes e desenvolvedores. Você tem o máximo controle sobre os custos, recursos e qualidade do projeto de software.

Desvantagens

Caro

Pode ser bastante caro, pois requer um alto nível de especialização para análise de risco. Além disso, os projetos levam muito tempo para serem desenvolvidos, o que pode aumentar a sobrecarga.

Bem complexo

É necessária uma gestão prévia muito ativa e complexa do projeto, onde cada ciclo é contínua e cuidadosamente controlado e documentado.

É comparativamente mais complexo do que os outros modelos, pois são muitos ciclos, cada um passando por diferentes etapas, aumentando assim o esforço do processo de documentação.

O conhecimento da análise e gestão de riscos é essencial e muitas vezes não está disponível.

Gerenciamento de tempo

O gerenciamento do tempo é difícil, pois o número de ciclos é desconhecido. Além disso, o processo de desenvolvimento pode ser atrasado a qualquer momento se decisões importantes devem ser tomadas dentro de um ciclo ou por ações adicionais ao planejar o próximo ciclo.

Muitos passos

Seguir várias etapas no desenvolvimento de software nem sempre é favorável devido ao fato de que, apesar da versatilidade dos testes, partes inacabadas do programa podem chegar ao sistema acabado.

Como consequência, sempre existe o perigo de que qualquer erro conceitual ou inconsistência afete o produto final.

Referências

  1. Victor Font Jr (2019). O modelo espiral. O guia definitivo para o SDLC. Retirado de: ultimatesdlc.com.
  2. Ionos (2019). Modelo espiral: o modelo de processo de desenvolvimento de software orientado a riscos. Retirado de: ionos.com.
  3. Techuz (2018). O que é modelo espiral? Uma explicação simples do ciclo de vida de desenvolvimento de software da Spiral (SDLC). Retirado de: techuz.com.
  4. Teste One Stop (2020). Modelo espiral. Retirado de: onestoptesting.com.
  5. Geeks for Geeks (2020). Engenharia de Software - Modelo Espiral. Retirado de: geeksforgeeks.org.
  6. Chandu (2019). Modelo Espiral em Engenharia de Software. Retirado de: medium.com.