TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A SPIRAL MODEL OF SOFTWARE DEVELOPMENT AND ENHANCEMENT

Por:   •  12/9/2018  •  Trabalho acadêmico  •  2.294 Palavras (10 Páginas)  •  291 Visualizações

Página 1 de 10

1.1. Informações sobre modelos de processos de software

As principais funções de um modelo de processo de software são determinar a ordem dos estágios envolvidos no desenvolvimento e evolução do software e estabelecer os critérios de transição para o processamento de um estágio para o próximo. Estes incluem critérios de conclusão para o estágio atual além de critérios de escolha e critérios de entrada para o próximo estágio. Assim, um modelo de processo aborda o que deve ser feito e por quanto tempo isso deve ser feito em um projeto de software.

Os modelos de processos de software fornecem orientações sobre a ordem nas quais um projeto deve executar suas principais tarefas. Muitos projetos de software têm sofrido porque perseguiram suas várias fases de desenvolvimento e evolução na ordem errada.

1.2. Evolução de modelos de processo

1.2.1. O modelo code-and-fix (codificar e corrigir)

O modelo básico utilizado nos primeiros dias de desenvolvimento de software consistia em duas etapas: escrever um código e corrigir os problemas do código. Desse modo, a ordem das etapas era fazer primeiro uma codificação e pensar nos requisitos, no design, no teste e na manutenção mais tarde. Este modelo apresenta três dificuldades principais:

a) Após várias correções, o código ficava tão mal estruturado que as correções subsequentes eram muito caras. Isso ressaltou a necessidade de uma fase de projeto antes da codificação;

b) Até mesmo softwares bem projetados correspondiam tão mal às necessidades dos usuários que eram rejeitados ou completamente reformulados. Isso tornou a necessidade de uma fase de requisitos antes do design evidente;

c) A correção do código tinha custo elevado devido à má preparação para testes e modificações. Isso deixou claro que o reconhecimento explícito dessas fases, bem como tarefas de planejamento e preparação de testes e evolução nas fases iniciais, eram necessários.

1.3. Os modelos de etapas e cascata

A experiência em grandes sistemas de software levou ao reconhecimento desses problemas e ao desenvolvimento de um modelo de etapas. Este modelo estipulava que o software fosse desenvolvido em etapas sucessivas.

O modelo em cascata foi um refinamento altamente influente do modelo de etapas. Ele forneceu dois aprimoramentos primários para o modelo de etapas:

a) Reconhecimento dos ciclos de retroalimentação entre os estágios, uma diretriz para limitar os ciclos de feedback a etapas sucessivas para minimizar o retrabalho caro envolvido no feedback em vários estágios;

b) Incorporação inicial de prototipagem no ciclo de vida do software, através de uma etapa "construa duas vezes" em paralelo com a análise e o design de requisitos.

A abordagem do modelo em cascata ajudou a eliminar muitas dificuldades encontradas anteriormente em projetos de software e se tornou a base para a maioria dos padrões de aquisição de software no governo e na indústria. Algumas de suas dificuldades iniciais foram abordadas adicionando-se extensões para abranger o desenvolvimento incremental, desenvolvimentos paralelos, famílias de programas, acomodação de mudanças evolutivas, desenvolvimento e verificação de software formal, e validação em etapas e análise de risco.

No entanto, mesmo com extensas revisões e refinamentos, o esquema básico do modelo em cascata encontrou algumas dificuldades mais fundamentais, e isso levou à formulação de modelos de processos alternativos.

1.4. O modelo de desenvolvimento evolutivo

Suas etapas consistem em enriquecer os incrementos de um produto de software operacional, com as direções de evolução sendo determinadas pela experiência operacional.

O modelo de desenvolvimento evolucionário oferece aos usuários capacidade operacional inicial rápida e fornece base operacional realista para determinar as melhorias subsequentes do produto.

Porém, ele também tem suas dificuldades. É difícil distingui-lo do modelo code-and-fix. Também se baseia na suposição de que o sistema operacional do usuário será flexível o suficiente para acomodar caminhos de evolução não planejados.

Os projetos de desenvolvimento evolucionário têm sofrido ao seguir os estágios na ordem errada.

1.5. O modelo de transformação

Foi proposto como uma solução para as dificuldades encontradas nos modelos citados anteriormente.

Ele pressupõe a existência de uma capacidade de converter automaticamente uma especificação formal de um produto de software em um programa que atenda à especificação. Os passos então prescritos pelo modelo de transformação são: especificação formal da melhor compreensão inicial do produto desejado; transformação automática da especificação em código; loop iterativo para melhorar o desempenho do código resultante, fornecendo orientação de otimização para o sistema de transformação; exercício do produto resultante e loop iterativo externo para ajustar a especificação com base na experiência operacional resultante e rederivar, reotimizar e exercitar o produto de software ajustado.

O modelo de transformação contorna a dificuldade de modificar o código que se tornou mal estruturado por meio de repetidas reotimizações, uma vez que as modificações são feitas na especificação. Além disso, evita o tempo e as despesas extras envolvidas nas atividades de design, código e teste intermediários.

Ainda assim, o modelo de transformação possui várias dificuldades. Os recursos de transformação automática estão disponíveis apenas para produtos pequenos em algumas áreas limitadas além de dificuldades como a suposição de que os sistemas operacionais dos usuários sempre serão flexíveis o suficiente para suportar caminhos de evolução não planejados. Além disso, enfrentaria um problema de manutenção de base de conhecimento ao lidar com o crescente fornecimento de componentes de software reutilizáveis e produtos comerciais de software.

1.6. O modelo espiral

O modelo espiral vem evoluindo com base na experiência com vários refinamentos do modelo em cascata. Ele pode acomodar a maioria dos modelos anteriores como casos especiais e ainda fornece orientação sobre qual combinação de modelos anteriores melhor se adapta a uma dada situação de software.

A dimensão radial representa o custo cumulativo

...

Baixar como (para membros premium)  txt (15.6 Kb)   pdf (56.8 Kb)   docx (16.9 Kb)  
Continuar por mais 9 páginas »
Disponível apenas no TrabalhosGratuitos.com