Desenvolvimento de software: processo tradicional e ágil: Desenvolver software torna-se a cada dia uma tarefa mais complexa onde os clientes desejam softwares com qualidade, rápidos e que atendam suas necessidades. A modelagem de software tradicional com requisitos completos, projeto, construção e testes, demora para ser realizada e na maioria das vezes os projetos com este tipo de modelagem não saem do “papel”. Visando minimizar essa situação alguns engenheiros de software criaram a metodologia ágil, ou seja, uma forma de desenvolver software rápido, com qualidade e com a documentação básica necessária para o desenvolvimento. Diante disso, o presente artigo objetiva mencionar o desenvolvimento de software com base em especificação tradicional (modelo em cascata, evolucionário, entrega incremental e espiral) e um desenvolvimento com base em uma metodologia ágil, a Extreme Programming, ilustrando as principais características e diferenças entre os mesmos.


Em que situação o tema é útil:
O tema é útil em todos os projetos de software, principalmente nos de médio e grande porte onde a decisão sobre qual tipo de processo melhor se adéqua ao software pode ser determinante para o sucesso do projeto.

Processo de desenvolvimento de software

O processo de software é um conjunto de atividades destinadas à produção e/ou evolução de um sistema. As atividades dos processos podem envolver o desenvolvimento ou a manutenção do software através de linguagens de programação como C# ou Java.

Os processos de softwares são complexos e na maioria das vezes realizados com uso de ferramentas CASE.

Os processos de software evoluíram para explorar as capacidades das pessoas dentro das organizações e as características específicas dos sistemas. Atualmente existem diversos processos de software e algumas atividades são comuns entre eles, como por exemplo:

  1. Especificação: definem-se as funcionalidades do software e as restrições sobre suas operações;
  2. Projeto de implementação: produção de um software que atenda à especificação;
  3. Validação de software: o software precisa ser validado para garantir que atendeu os requisitos elucidados pelo cliente;
  4. Evolução de software: o software deve evoluir para atender às necessidades mutáveis do cliente.

Os processos de software podem ser aprimorados para incrementar a qualidade do produto e/ou reduzir seu tempo e custo. Diante disso, neste artigo serão abordados os modelos de processos de software em cascata, evolucionário, de entrega incremental, espiral e um modelo de método ágil, o extreme programming.

Modelo em cascata

O modelo clássico (cascata) foi proposto por Royce em 1970. O modelo criado derivou-se de atividades da engenharia para estabelecer ordem aos softwares, por ser um dos mais importantes modelos de processo é referência para muitos outros. A versão original deste modelo foi melhorada e continua sendo utilizada nos dias atuais.

Os principais estágios do modelo em cascata demonstram as atividades fundamentais de desenvolvimento de sistemas:

  • Definição dos requisitos: coletam-se os requisitos por meio de consultas e reuniões com os usuários. Os requisitos são definidos detalhadamente e são utilizados na especificação do sistema;
  • Projeto do sistema: é a parte do projeto em que divide os requisitos em requisitos de hardware ou de software. O projeto do sistema envolve a identificação, a descrição das abstrações fundamentais do sistema e as suas relações;
  • Implementação: é a fase do desenvolvimento e da realização de testes unitários. É através dos testes unitários que é verificado se o sistema atende à sua especificação;
  • Teste do sistema: iniciam-se os testes no sistema. Se não forem identificados erros durante esta fase, o sistema é liberado para o usuário;
  • ...
    Quer ler esse conteúdo completo? Tenha acesso completo