1. Introdução
Prova de Conceito, do inglês Proof of Concept (PoC), é um termo utilizado para denominar um modelo prático que possa provar
o conceito (teórico) estabelecido por uma pesquisa ou artigo técnico.
Em Tecnologia da Informação (TI), o termo pode ser relacionado ao
desenvolvimento de um protótipo como ferramenta para provar a
viabilidade de um projeto de rede de computadores.
A prova de conceito permite demonstrar na prática a
metodologia, os conceitos e as tecnologias envolvidas na elaboração do
projeto. Trata-se, pois, de uma iniciativa de curto prazo, incluída no
cronograma de atividades do projeto e orientada de forma restrita a um
segmento da rede. Tem natureza colaborativa, envolvendo a expertise do
projetista e fornecedores e as competências do cliente.
2. Formalizando a Prova de Conceito
Todas as alterações do projeto de uma rede de
computadores devem ser testadas antes de serem disponibilizadas para os
usuários. É importante testar dispositivos existentes, novos
equipamentos e versões dos sistemas instalados primeiramente em um
ambiente de não-produção ou, quando isto não for possível, em
segmento limitado da rede que se encontra funcionando. Esse é o valor
real de fazer uma prova de conceito, verificar se os novos equipamentos
e versões de sistemas se integram aos dispositivos existentes, bem como
à rede como um todo.
A prova de conceito pode ter muitas formas, por
exemplo:
- Lista de tecnologias (frameworks, padrões,
arquiteturas etc.) conhecidas que pareça adequada ao projeto;
- Esboço de modelo conceitual de uma solução;
- Simulação de uma solução através de
ferramentas de software;
- Protótipo executável.
A partir da prova de conceito é possível avaliar os
resultados dos testes de aceitação e certificação e usar esses
resultados para balizar as alterações que se fizerem necessárias na
estrutura (lógica e física), de segurança e especificações de
gestão antes de gerar uma proposta final de projeto.
A prova de conceito do modelo aqui sugerido segue as
premissas da metodologia Top Down para o projeto de redes de
computadores e envolve a concepção de protótipo, definição dos
testes, a construção de scripts e análise dos resultados obtidos.
Como vantagens específicas associadas à
utilização da prova de conceito destacam-se:
- Utilização de endereçamento de rede de forma a
não afetar aquele existente e em funcionamento;
- Elaboração de scripts de testes e respectivos
procedimentos para verificar possíveis inconsistências;
- Testar hardware, software e firmware sem afetar a
disponibilidade da rede para os usuários;
- Elaboração de projeto viável para o cliente.
Uma prova de conceito é necessária e deve ser
empregada em situações que considerem:
O escopo do projeto não é bem entendido -
se o escopo não é familiar aos envolvidos no projeto, a prova de
conceito não pode apenas explorar soluções possíveis, mas
também pode ajudar a entender e esclarecer os requisitos
necessários;
Experiência de projeto – quando o grupo de
trabalho tem pouca experiência anterior, considerando que todo
projeto é uma atividade não repetitiva e única, não sendo
possível basear resultados em arquiteturas e tecnologias
existentes, pois cada caso é um caso;
Requisitos complexos - quando qualquer
requisito é considerado complexo, podendo ainda ser classificado
como particularmente oneroso, mesmo que o domínio seja familiar e o
projeto tenha similaridade com outros existentes;
Alto risco - quanto maior o risco, mais
esforço é necessário, uma vez que há a expectativa de resultados
mais realistas dos modelos produzidos e avaliados. Entretanto, é
preciso reconhecer que nem todos os riscos podem ser eliminados.
3. Componentes
Para iniciar a prova de conceito, o primeiro passo é
avaliar o que será validado inicialmente durante a etapa de testes, se
as tecnologias condizem com as necessidades do cliente e com a
finalidade a qual se propõe o projeto. No segundo passo, definido o
ambiente de teste, deve-se identificar o segmento de rede menos crítico
ou aquele onde os usuários serão menos afetados para a construção de
um protótipo. O terceiro passo é instalar e configurar os equipamentos
e sistemas necessários no ambiente do cliente. No quarto passo,
definem-se os testes pertinentes, segundo o modelo de protótipo
definido anteriormente. Neste momento, scripts de teste devem ser
construídos para satisfazer as possibilidades de funcionamento da rede.
No quinto passo temos a análise dos resultados dos testes que servirão
como referência para possíveis correções no modelo do protótipo e,
posteriormente, irão compor a documentação final do projeto.
O modelo de prova de conceito proposto apresenta os
seguintes componentes:
3.1. Construção do protótipo
O protótipo é um modelo para testes de projeto e
configuração de recursos como um laboratório. Na construção do
protótipo devem ser observados os protocolos ou sistemas específicos
envolvidos, especificadas a topologia, equipamentos e acessórios
necessários para simular um segmento da rede real.
3.2. Configuração dos equipamentos
Tanto o cabeamento quanto as estações, servidores e
sistemas necessários para os testes devem ser adequadamente instalados
e configurados. Os equipamentos e sistemas devem ser idênticos ao
proposto no projeto para o teste específico e verificação. Todos os
equipamentos e sistemas devem estar funcionais conforme especificado no
protótipo.
3.3. Definição dos testes
No caso de um protótipo executável, a prova de
conceito pode ser feita com uma demonstração. No caso de um protótipo
conceitual, por meio de argumentação, inspeção e raciocínio. No
caso de uma simulação, requer a configuração e a execução do
modelo simulado com dados informados ou obtidos dos critérios de
avaliação e, em seguida, da coleta e análise dos dados resultantes do
modelo.
Deve-se ter em mente sempre que os testes devem ser
concebidos para verificar se o projeto funciona como descrito,
utilizando como parâmetro as definições das camadas do modelo de
referência OSI, ou seja, devem envolver desde a camada física da rede
até a conectividade de aplicativos.
A seguir, apresenta-se uma lista com sugestões de
testes aplicáveis a uma rede de computadores:
- Ping em servidores, estações e equipamentos de
rede;
- Routing e Switching
- Segurança (física e lógica)
- Disponibilidade
- Carga
Os testes podem ser customizados segundo as
necessidades de cada projeto. Os testes devem ser aplicados com o
mínimo impacto sobre os usuários, no caso de rede em funcionamento.
3.4. Elaboração dos scripts de teste
Levantar informações junto aos fornecedores de
equipamentos e sistemas para construir scripts corretos e eficientes
para cada dispositivo. Isto é particularmente relevante se o projeto
utilizar novos equipamentos e protocolos que ainda não foram utilizados
na rede.
É importante discutir quaisquer problemas ou
preocupações quanto ao funcionamento dos dispositivos com o fornecedor
e, se necessário, modificar as especificações do protótipo.
3.5. Análise dos resultados
A prova de conceito inclui a análise e discussão de
questões específicas de cada teste, definido e executado segundo o
modelo definido no protótipo. Os resultados dessa avaliação são
analisados não apenas para determinar se os requisitos importantes para
o projeto podem ser atendidos, mas também para verificar a validade
desses requisitos. Nesse momento, tais requisitos podem ser modificados
se ainda não estão necessariamente bem entendidos pelos envolvidos.
Os resultados dos testes devem ser utilizados para
fazer alterações na estrutura atual do projeto, desde a infraestrutura,
segurança e gerenciamento de especificações desenvolvidas até o
momento de avançar para a proposta final do projeto. Caso sejam
necessárias alterações na configuração da rede, o projetista deve
ter o discernimento necessário para identificar quais dispositivos ou
sistemas correlatos devem ter suas configurações alteradas a fim de
manter o estado de consistência da rede. Neste ponto, entende-se por
correlação o fato de haver dois ou mais dispositivos ou sistemas que
possuem a característica de, uma alteração no estado ou
configuração em um deles, implicar em uma ação nos demais.
4. Conclusão
A prova de conceito serve para validar um projeto de
rede de computadores antes que este seja executado na prática. Todos os
resultados dos testes devem ser plenamente avaliados na prova de
conceito, uma vez que nas fases posteriores, que envolvem a instalação
e operação da rede, será maior a relutância às mudanças ou à
reinterpretação dos requisitos.
A metodologia é recomendada para evitar imprevistos
durante a execução do projeto, comprovando o bom entendimento do
escopo, que os requisitos de projeto são bem definidos e o seu
desenvolvimento pode ser avaliado como tendo baixo risco para o cliente.
|