Modelos de Processos de Software O que é o Processo de Software
Um processo de software pode ser definido como uma sequência de atividades que visam o desenvolvimento e a entrega de um produto de software de qualidade. Existem vários modelos de processos, cada um com suas particularidades e perspectivas próprias de acordo com as necessidades de negócio.
Independente do modelo, há características comuns e fundamentais ao ciclo de vida de todo processo de software. Estas são:
Especificação: nessa etapa o cliente e desenvolvedores discutem os requisitos e restrições do sistema.
Desenvolvimento: é feito o design e implementação(codificação) do programa.
Validação: o software passa por uma série de testes para garantir atendimento com os requisitos.
Evolução: Manutenção periódica com o intuito de manter o sistema adaptado a novas exigências do mercado ou cliente.
Dentre as várias abordagens de desenvolvimento de software, algumas das mais amplamente conhecidas são: Modelo Cascata
Considerada ideal para sistemas cujo requisitos estão claros, esse método de desenvolvimento é baseado em uma sequência linear de fases bem definidas. Seu processo é dividido pelas seguintes etapas:
Análise e definição de requisitos: As funcionalidades e restrições são levantadas em conjunto com os clientes ou usuários finais
Design do sistema: é criado a arquitetura do sistema, quais serão seus componentes e relacionamentos
Implementação: o software é codificado como base no design estabelecido
Testes: fase onde se realizam testes unitários, de integração e do sistema, visando verificar se os requisitos foram atendidos
Implantação(entrega): instalação do software no ambiente de produção e entrega ao cliente
Manutenção: atualizações periódicas do sistema para aprimoramento e adaptação às novas demandas do mercado ou do cliente. Considerada a fase mais longa do ciclo de vida do software
Uma vez completada uma etapa inicia-se a próxima e não há retorno, como uma escada/cascata.
Vantagens: Controle de departamentos e gerência de documentos, o que permite baselines e prazos definidos de cada etapa
Desvantagens: Caracterizada pela sua enorme rigidez, prever tudo de antemão parece uma tarefa até impossível. É muito raro um projeto não precisar reestruturar seus requisitos em algum momento do processo. Essa inflexibilidade do modelo cascata é ainda mais preocupante quando se percebe que o feedback do cliente só é possível na versão final do software.