Ciclo de desenvolvimento de um software
GUSTAFSON(2002) corrobora o conceito do SWEBOK, nos lembrando que um ciclo de vida para o desenvolvimento de um software geralmente possui as seguintes atividades:
· Análise viabilidade.
· Análise de mercado
· Levantamento de Requisitos.
· Detalhamento dos requisitos.
· Análise de domínio de cada um dos requisitos.
· Planejamento do projeto.
· Análise de custos.
· Definição de agenda / cronograma.
· Controle da qualidade do software.
· Definição de sub-atividades.
· Desenho aplicação.
· Definição de estruturas.
· Design de interfaces.
· Design detalhado de cada um dos processos e atividades.
· Implementação ou codificação.
· Testes.
Hoje existem inúmeros modelos de ciclo de vida para o desenvolvimento de um software. A grande maioria destes modelos abrange de forma mais ou menos abrangente os conceitos mencionados acima. Apenas como exemplo, podemos mencionar:
- Modelo linear ou clássico –
Proposto em 1970 foi a primeira iniciativa para padronização
de atividades de desenvolvimento de software. Uma fase será iniciada
apenas com o término de outra.
Imagem 1 : Modelo Linear
Fonte:PRESSMAN(2001)
- Modelo de prototipação – GUSTAFSON(2002) apresenta este modelo como sendo útil
para realizar provas de conceito do comportamento de uma sistema perante
um usuário. Isto é necessário, pois PRESSMAN(2001)
nos lembra que na maioria das vezes o cliente nem sempre sabe os dados
necessários, operações ou resultados esperados. Assim, fases sucessivas
são realizadas onde: - Define-se as necessidade do usuário.
- Gera-se
um modelo. - O usuário
realiza uma avaliação.
Imagem 2: Prototipação
Fonte:PRESSMAN(2001)
- Modelo RAD(Rapid application development) – PRESSMAN(2002) apresenta este modelo como
sendo uma variação do modelo de prototipação, onde se enfatiza ciclos
muito curtos de desenvolvimento. Este modelo enfatiza o trabalho com base
em componentes.
Imagem 3: RAD
Fonte:PRESSMAN(2001)
- Modelo incremental – Para GUSTAFSON(2002), o objetivo deste modelo é durante o
desenvolvimento entregar para o cliente pequenos conjuntos funcionais de
parte do sistema. Estas partes vão sendo aperfeiçoadas a cada incremento.
Imagem 4: Incremental
Fonte:PRESSMAN(2001)
- Modelo espiral – A cada volta na
espiral uma versão do software é criada. A cada nova volta todo o processo
de engenharia, testes, análise de riscos, planejamento, comunicação com o
cliente e construção é repetido e uma versão mais completa do software é
entregue ao cliente.
Imagem 5: Espiral
Fonte:SOMMERVILLE(2006)