Modelos de Ciclo de Vida e Metodologias de Software

Tecnologia6,9 KB

Modelo Evolucionário

  • Tentativa de lançar o produto antecipadamente: Foco na entrega inicial rápida.
  • Operação da evolução do primeiro produto: O sistema evolui a partir de uma versão inicial.
  • Sistemas com mudanças esperadas: Projetado para sistemas onde a mudança é constante ao longo do tempo.
  • Instabilidade de requisitos: Dificuldade em estabilizar os requisitos; o ciclo do projeto confunde-se com o ciclo de vida.

Desvantagens:

  • Falta de planejamento e produção de software mal estruturada.
  • Dificuldade em modificar códigos criados antes da análise completa do sistema.
  • Dificuldade de integração com outras aplicações.
  • Pouco usado em sistemas de grande porte por ser incapaz de processar mudanças de controle de forma eficiente.
  • Não é aconselhável para substituir sistemas bem definidos.

Modelo Incremental

  • Similar ao sistema evolutivo: É criado pela adição progressiva de componentes funcionais (incrementos).
  • Atualizações constantes: A cada passo, o sistema é atualizado.
  • Integração de resultados: Foco na entrega contínua de software funcional.

Desvantagens:

  • Pode gerar soluções não estruturadas e necessidade de retestes constantes por erros acumulados.
  • O usuário pode ficar relutante com um desenvolvimento onde não se sabe o resultado final exato.

Modelo em Espiral

  • Origem: Proposto por Barry Boehm em 1986 (e revisado em 1998).
  • Objetivo: Surge para aliviar os problemas do ciclo de vida clássico.
  • Análise de Risco: Apresenta uma análise de risco composta por uma série de ciclos.
  • Estrutura: A espiral é dividida em quatro quadrantes; o projeto inicia no centro e avança para fora.
  • Planejamento: Identificação dos objetivos do produto, estudo de alternativas e restrições.
  • Análise de Riscos: Avaliação de alternativas, análise de incertezas, prototipagem e identificação de elementos de risco.
  • Riscos Comuns: Falta de pessoal qualificado, orçamentos irreais, planejamento inadequado, funções de software erradas, requisitos de interface de usuário incorretos, mudanças contínuas, deficiências em itens externos e lacunas em trabalhos terceirizados.
  • Restrições: Pode exceder as possibilidades atuais da engenharia de computação no desenvolvimento e teste de produtos.
  • Revisão: Avaliação constante para o próximo nível.

Vantagens:

  • Combina o melhor de outros modelos e evita o pior, dependendo da situação.
  • Opções de reutilização são consideradas desde o início.
  • Prepara o sistema para crescimento, desenvolvimento e mudanças.
  • Incorpora objetivos de qualidade no desenvolvimento.
  • Foca na eliminação de erros e opções atraentes precocemente.
  • Determina o nível de esforço necessário para cada fase.
  • Segue o mesmo procedimento para desenvolvimento e manutenção, evitando problemas de "melhorias de rotina" de alto risco.
  • Permite alta flexibilidade e adapta-se bem ao design e programação orientada a objetos.

Desvantagens:

  • Desenvolvido inicialmente para o mundo da contratação comercial, podendo ser complexo para desenvolvimento interno.
  • Necessita de especialistas em avaliação de riscos, que nem sempre estão disponíveis.
  • Requer etapas de processamento adicionais em comparação a outros modelos.
  • É um modelo relativamente novo e menos utilizado que o modelo em cascata ou prototipagem.

Diferenças com outros modelos (Wolff, 1989):

  • Reconhecimento explícito de alternativas para alcançar os objetivos.
  • Foco na identificação e resolução de riscos em cada alternativa.
  • Divisão em fases com acordos finais, permitindo mudanças ou o encerramento do projeto com base no aprendizado.
  • Método adaptável a qualquer atividade, incluindo consultoria externa.

Metodologias

  • É necessário estabelecer uma abordagem sistemática e disciplinada para o desenvolvimento de software.
  • As metodologias afetam diretamente o processo de construção.
  • São desenvolvidas a partir da estrutura definida por um ou mais ciclos de vida.
  • Não há consenso absoluto entre autores sobre o conceito exato de metodologia.

Definição

Conjunto de passos e procedimentos a serem seguidos para o desenvolvimento de software.

O que a metodologia abrange?

  • Aplicação de melhores processos de desenvolvimento.
  • Melhoria contínua.
  • Estabelecimento de normas para a organização.

Objetivos das Metodologias

  • Estabelecer os requisitos de um sistema de software com sucesso.
  • Construir sistemas dentro de um tempo adequado e custo aceitável.
  • Garantir que o sistema seja bem documentado e de fácil manutenção.
  • Ajudar a identificar rapidamente qualquer mudança necessária no processo.
  • Proporcionar o desenvolvimento de um sistema que satisfaça todos os envolvidos.

Características Desejáveis em uma Metodologia

  • Existência de regras pré-definidas e cobertura completa do ciclo de vida.
  • Planejamento intermediário e controle de verificações.
  • Comunicação eficaz e suporte para uma vasta gama de projetos.
  • Facilidade de treinamento e uso de ferramentas CASE.
  • Atividades para melhorar o processo de desenvolvimento.
  • Suporte para manutenção e reuso de software.

Método vs. Metodologia

  • Existe confusão entre os termos devido ao uso indevido da linguagem técnica.
  • Uma metodologia pode seguir um ou vários modelos de ciclo de vida.
  • O ciclo de vida diz o que precisa ser superado no desenvolvimento, mas não como; a metodologia indica o como.
  • A metodologia é um conceito mais amplo; pode ser considerada um conjunto de métodos.

Classificação

  • Estruturada: Orientada a processos, orientada a dados ou orientada a estruturas de dados hierárquicas.
  • Mista: Combinação de abordagens.
  • Orientada a Objetos: Focada na modelagem de objetos e suas interações.

Baixar

PDF Word HTML