Sobre protótipos em projetos de software
Prototipação
Protótipo em termos de software é a materialização aproximada de um sistema e demonstra um conjunto de funcionalidades do novo sistema. A construção de um protótipo poderá ser efetiva para a elucidação de necessidades dos usuários. Os usuários poderão tocar, sentir e interagir com o protótipo fazendo com que sejam descobertas necessidades ocultas e, conseqüentemente haja, elucidação de possíveis dúvidas. A prototipação aliada com outras técnicas poderá prover a redução de retrabalho e minimização de riscos na implementação do projeto. A prototipação é muito eficiente na redução da síndrome do “Sim, mas”, “Não é exatamente isso que pensava” e a síndrome da “Ruínas ocultas” (“Só agora que percebemos isso, temos outros requisitos para adicionar”).
Tipo de protótipos
Protótipos podem ser categorizados de muitas formas. Por exemplo, Davis (1995a) categoriza protótipos como descartável verso evolucionário verso operacional, vertical verso horizontal, interface de usuários verso algoritmo e assim por diante. O tipo do protótipo depende do problema que você está tentando solucionar pela sua construção.
Por exemplo, se em seu projeto os risco estão baseados, principalmente, na viabilidade da abordagem tecnológica – essa solução nunca foi tentada antes e você está incerto quanto à aplicabilidade da tecnologia que pode afetar o desempenho ou desviar dos alvos (requisitos não funcionais de desempenho, por exemplo). Você pode decidir por realizar uma prova de conceito (que é o protótipo arquitetural) a fim de verificar a aderência da solução tecnológica. Um protótipo arquitetural pode ser descartável ou evolutivo (descartável é o protótipo que não será aproveitado no desenvolvimento. Sendo que, o termo evolutivo se refere ao protótipo que será aproveitado durante o processo de desenvolvimento). O protótipo descartável implica que o esforço empregado servirá, tão somente, para estabelecer a viabilidade, portanto, poder-se-á utilizar soluções restritas, tecnologias alternativas, simulações, cujo objetivo seja armazenar informações que o ajude na tomada de decisão. Quando a opção recai sobre a construção do protótipo descartável, os benefícios do exercício recaem sobre o aprendizado adquirido no exercício. O protótipo evolutivo implica que você implementou um protótipo com mesmos recursos e na mesma arquitetura em que será desenvolvido o sistema final e você estará habilitado a construir o sistema final a partir da evolução gradual do protótipo.
Se a área de risco primária do seu projeto reside na interface com o usuário, você deverá, então, desenvolver um protótipo de requisitos, usando tecnologias infinitas que possibilitam desenvolver de forma mais ágil o seu protótipo de interface. A figura 1, abaixo, mostra a árvore de decisão que pode ser utilizada para selecionar o modelo do protótipo que deverá ser desenvolvido, de acordo com as características do seu projeto.

Figura 1 – Árvore de decisão para seleção de protótipo: (a) protótipos para validação de requisitos; (b) protótipos para validação de arquitetura.
Protótipos para validação de requisitos
Para o propósito de elicitação de requisitos, deveremos nos fixar nos tipos de protótipos que estão representados na parte superior da árvore acima apresentada. Nós definimos um protótipo para validação de requisitos de software como:
Implementação parcial de um software cuja construção visa apoiar ao desenvolvedor, usuário e consumidores de software para melhor entender os requisitos de um sistema.
Para o processo de elicitação de requisitos, podemos construir uma interface de usuário, descartável e horizontal. “Horizontal” implica em, termos que, atentar para uma construção com ampla visão das funcionalidades do sistema; o protótipo vertical, pelo contrário, constrói apenas uns poucos requisitos, porém, atentando por implementá-los de forma qualificada. “Interface de usuários” implica que deverá ser construído mais detalhe da navegação da interface do sistema para os seus usuários diretos, do que a implementação de lógica e algoritmos que deverão residir no interior do software ou interfaces de outros módulos ou sistemas. Uma ferramenta de elicitação, como um servidor de protótipos pode conduzir aos seguintes caminhos:
· Construído pelo desenvolvedor - este pode ser utilizado para obter confirmação do usuário quanto ao entendimento sobre determinados requisitos;
· Construído pelo desenvolvedor – este pode ser usado como um catalisador para encorajar o usuário a fim de entender melhor os requisitos;
· Construído pelo usuário – este pode comunicar melhor os requisitos para o desenvolvedor.
Nesses três casos, o objetivo da construção do protótipo é construí-lo consumindo-se poucos recursos. Se for muito caro construí-lo, será melhor construir o próprio sistema!
Muitos protótipos de software tende a ser protótipos de requisitos e são usados primariamente para capturar aspectos das interfaces de usuários do sistema a ser construído. Existem, provavelmente, duas razões para isso:
1. A emergência de um projeto de baixo orçamento, sendo necessário a aplicação de ferramentas para construção de interfaces de usuário de baixo custo;
2. Para usuários de sistema com interação-intensiva, um protótipo de interface de usuários poderá revelar muitos outros requisitos ocultos inicialmente, com as funcionalidades que deverão ser providas aos usuários, onde todas as funções poderão ser avaliadas pelo usuário e que funções estão ocultas.
Na maioria das vezes, necessitamos de estar certos de que, não seremos influenciados a construir partes do sistema que não representam altos índices de risco para o projeto.


0 Comments:
Postar um comentário
<< Home