Embora tenhamos hoje os processo do desenvolvimento de software bastante desenvolvidos, ele ainda está longe de ter a maturidade que temos em outros segmentos da engenharia com a civil, mecânica entre algumas outras. Ainda assim podemos dizer que os processos de desenvolvimento de software está cada vez mais estruturado e robusto ao longo dos anos.

Existe uma série de etapas que são essências no ciclo de vida de um software, e outras que acabam por ser passiveis de descarte diante do tipo do projeto,  o que ainda assim não tira a sua relevância e importância para outro tipo de projeto, um exemplo deste tipo seria a documentação. Algumas das etapas que compreende o processo de desenvolvimento de software são:

  • Análise de requisitos de software – entendimento dos requisitos básicos, e por que não dos problemas que se queira solucionar com a implantação do sistema. Esta etapa geralmente é realizada com o cliente por meio de reuniões, questionários e observações do ambiente em questão.
  • Especificação dos requisitos – uma vez que os requisitos já foram identificados, cabe a especificação dos requisitos descrever precisamente o software que será escrito, ou o mais próximo disso.
  • Arquitetura de Software  – este processo remete a uma representação abstrata do sistema, com o objetivo de tentar garantir que o sistema irá ao encontro dos requisitos assim como assegurar que futuros requisitos possam ser atendidos.
  • Codificação – trata-se do processo de transformar as definições que até então foram detalhados no projeto em código do sistema.
  • Teste – etapa da validação das funcionalidades do software, assim como a verificação sobre o que foi especificado esta em conformidade com o que está sendo apresentado.
  • Manutenção de software – a fase da manutenção de software é frequentemente o período mais demorado no ciclo de vida de um software e compreende as mudanças realizadas neste período, seja pela realização de melhorias ou correções no software.

 

Para facilitar a realização de tais etapas, uma série de modelos foram criados ao longo dos anos com o intuito de representar a melhor abordagem possível sobre um determinado conceito e conhecimentos existentes no período em que tal modelo foi proposto.

Um exemplo disto seria o modelo de desenvolvimento de software Waterfall (Cascata), sendo este um dos primeiros modelos propostos, hoje em dia temos a absoluta certeza que este é uma abordagem impraticável no contexto atual, diante de seu processo inflexível que está totalmente em desacordo com as constantes mudanças que temos no projeto de um software. O que acaba por favorecer a adesão aos métodos ágeis de desenvolvimento de software, a qual está com um maior entrosamento com o contexto atual.

Alguns dos modelos que auxiliam o processo de desenvolvimento de software são:

  • Modelo em cascata (Waterfall development)
  • Prototipação (Prototyping)
  • Desenvolvimento incremental (Incremental development)
  • Desenvolvimento iterativo e incremental (Iterative and incremental development)
  • Desenvolvimento Rápido de Aplicação (Rapid application development – RAD)
  • Desenvolvimento ágil de software (Agile development)
  • Programar e Arrumar (Code and fix)
  • Metodologias leves (Lightweight methodologies)
  • Modelo em espiral (Spiral development)
  • Feature Driven Development (FDD)
  • Scrum
  • eXtreme Programming (XP)
  • Crystal

 

Categorized in: