• Nenhum resultado encontrado

Apêndice B – O processo de desenvolvimento de software

B.1 Modelos clássicos ou tradicionais

B.1.1 Modelo em cascata

O modelo em cascata é formado por um fluxo linear e sequencial de fases. Por isso também pode ser chamado de linear-sequencial, no qual cada fase somente inicia quando a fase anterior estiver completa, de modo que a entrada ou insumo de cada fase é o produto ou entrega da fase imediatamente anterior. As fases são apresentadas na Fig. 15 e descritas a seguir:

 Análise de Requisitos: Nesta fase todos os requisitos do software a ser desenvolvido são identificados e documentados em um documento de especificação de requisitos;

 Projeto do Sistema: As especificações de requisitos da fase anterior são avaliadas nesta fase para que seja preparado o projeto do software. O projeto visa especificar necessidades do hardware e do sistema e também definir a arquitetura do sistema.

 Implementação: Nesta fase as informações de análise e projeto são utilizadas para a codificação dos programas - unidades de software ou units - que serão integradas na próxima fase. Cada unidade é desenvolvida e suas funcionalidades testadas em uma atividade denominada teste unitário ou unit testing.

 Teste: Nesta fase as unidades de software já testadas individualmente são integradas e o conjunto total do sistema é testado para identificar faltas e falhas;

 Implantação: Uma vez executados os testes funcionais e não funcionais, o produto é implantado no ambiente do cliente ou lançado no mercado;

 Manutenção: A fase de manutenção tem a finalidade de realizar e implantar estas correções ou mudanças (atualizações ou melhorias) no ambiente do cliente.

O modelo em cascata é considerado apropriado para sistemas com as seguintes características:

 Requisitos claros, correto e bem documentados;

 Definição estável do produto;

 Tecnologias conhecidas e estáticas;

 Requisitos sem ambiguidade;

 Recursos com habilidades específicas disponíveis para suportar o produto;

 Projetos curtos.

Figura 15 - Modelo em Cascata. Adaptado de Kumar e Bathia (2014).

B.1.2 Modelo “V”

O modelo em V é uma extensão do modelo em cascata, com o acréscimo de uma fase de testes à cada estágio do desenvolvimento. Isto significa que para cada fase do desenvolvimento há uma fase de teste diretamente associada. É um modelo altamente disciplinado, e uma fase não é iniciada sem a conclusão da fase que a antecede.

No modelo V cada fase de teste, planejada em paralelo, correspondente a uma fase de desenvolvimento. Há fases de verificação em um lado do “V” e fases de validação no outro lado. A fase de codificação une os dois lados do “V”. As fases de verificação são as seguintes:

 Análise de Requisitos: é a primeira fase do ciclo de desenvolvimento, na qual os requisitos são entendidos do ponto de vista do cliente. Isto ocorre por meio de uma forte interação, com o registro exato e detalhado dos requisitos e das expectativas do cliente, exigindo o cuidado necessário para identificar indecisões ou falta de clareza do cliente. O plano do projeto dos testes de aceitação é feito nesta etapa, com base nos requisitos do negócio, e é usado como insumo para a elaboração dos testes de aceitação.

 Projeto do sistema: com base nos requisitos detalhados e claros, é o momento de projetar o sistema por completo. Isto requer o entendimento e detalhamento completo da configuração de hardware e comunicação necessários para o sistema em desenvolvimento. Ao fazer isto com antecedência deixa-se mais tempo para a execução dos testes posteriormente.

 Projeto de arquitetura: as especificações da arquitetura do sistema são entendidas e projetadas nesta fase. Geralmente mais de uma proposta de arquitetura é elaborada, e a decisão é tomada com base na viabilidade técnica e financeira destas propostas. O sistema é dividido em módulos conforme suas funcionalidades. Esta fase também é conhecida como Projeto de Alto Nível. O intercâmbio de dados e a comunicação entre os módulos e com outros sistemas é claramente entendida e definida nesta fase, e com esta informação projeta-se e documenta-se os testes de integração.

 Projeto de módulos: Nesta fase, também chamada de Projeto de Baixo Nível, o projeto dos detalhes internos de todos os módulos do sistema é especificado. É importante que o projeto mantenha a compatibilidade com os demais módulos da arquitetura do sistema, e com os demais sistemas. Os testes unitários são uma parte

essencial de qualquer processo de desenvolvimento para auxiliar a eliminar as falhas e erros o mais cedo possível, e são projetados nesta fase com base no projeto dos módulos.

Na fase de Codificação os módulos do sistema, projetados nas fases anteriores, são construídos na linguagem de programação mais adequada, com base nos requisitos do projeto e na arquitetura do sistema. A codificação é realizada com base em guias e padrões e revisada diversas vezes para garantir o melhor desempenho antes de gerar a versão final, que é identificada no repositório de código.

Em seguida vêm as fases de Validação do modelo “V”, que são:

 Os Testes Unitários, que foram projetados durante a fase de projeto de módulos, são executados com o código nesta fase. Testes unitários são testes em nível de código para auxiliar na identificação e eliminação de problemas em um estágio inicial do desenvolvimento. Porém nem todos os defeitos podem ser identificados por meio destes testes.

 Os Testes de Integração, que estão associados à fase de projeto da arquitetura, e são executados para avaliar a coexistência e a comunicação dos módulos internos do sistema.

 Os Testes de Sistema diretamente associados como a fase de projeto do sistema, validam as funcionalidades por completo, e a comunicação entre o sistema em desenvolvimento com os outros sistemas. A maioria das ocorrências de incompatibilidade com o software e o hardware utilizados são descobertas nesta fase.

 O Teste de Aceitação está associado à fase de análise de requisitos e compreende o teste do sistema no ambiente do cliente. Estes testes revelam incompatibilidades com outros sistemas ou ocorrências relativas aos requisitos não-funcionais, como carga e desempenho.

A sequência de fases do modelo “V” é apresentada na Fig. 16. Este modelo aplica-se ao desenvolvimento dos mesmos tipos de sistemas para os quais são indicados o modelo em cascata, com as seguintes características:

 Requisitos claros, correto e bem documentados;

 Tecnologias conhecidas e estáticas;

 Requisitos sem ambiguidade;

 Projetos curtos.

Figura 16 - V-Model.

Adaptado de Munassar e Govardhan (2010).