Com o protótipo alpha concluído, e até já levemente testado, torna-se necessário estabelecer os requisitos a implementar no protótipo seguinte, beta.
Neste post, vamos identificar as componentes que deveão estar presentes no protótipo beta (requisitos funcionais e não-funcionais), os bugs já encontrados e possíveis causas e soluções, e eventuais testes que deverão ser aplicados ao protótipo.
Representação do sistema do projeto

Estrutura de navegação da "webapp"

Como podemos observar pelas componentes identificadas a azul da primeira imagem, representação do sistema, todo o sistema deverá estar operacional, permitindo o acesso simplificado à plataforma, através dos serviços DHCP e DNS, o funcionamento local e sincronização remota dos servidores.
Na fase alpha, ficaram já implementadas as componentes do "Telemóvel", "Aplicação de desenho" e a sua ligação através de Sockets (em PHP), a integração do Kinect com a aplicação e a utilização do servidor local. Assim, nesta fase resta implementar: a utilização do servidor global e a necessária sincronização entre servidores, o servidor DNS e de DHCP.
Quanto à "webapp", a navegação da aplicação encontra-se bastante avançada, permitindo a navegação/utilização das funcionalidades implementadas na aplicação AS3. No entanto, o seu desenvolvimento ainda não está concluído, sendo necessário implementar a navegação entre ferramentas através de swipe, os eventos de mouseOver e mouseDown e eventuais bugs visuais já identificados.
No protótipo entregue, apenas era possível a utilização de um jogador em simultâneo. Neste entrega, pretendemos desenvolver o sistema de forma a se tornar multi-utilizador.
Lista dos requisitos implementados e por implementar na fase beta
| Tipo | Requisitos implementados | Componente |
| Não funcional | Detectar orientação do telemóvel | Tlm + App |
| Funcional | Selecionar mão | Tlm + App |
| Funcional | Selecionar tamanho do pincel | Tlm + App |
| Funcional | Selecionar cor | Tlm + App |
| Funcional | Desenhar (efeito flag) | Tlm + App |
| Funcional | Apagar (efeito flag) | Tlm + App |
| Funcional | Escolher stencils e tamanho (navegação apenas) | Tlm |
| Funcional | Guardar imagem completa | Tlm + App |
| Funcional | Selecionar avatar | Tlm |
| Funcional | Fazer upload de avatar | Tlm |
| Não funcional | Apagar avatares antigos do utilizador | Tlm |
| Funcional | Login, registo, editar perfil e logout | Tlm |
| Funcional | Ajuda (básica) | Tlm |
| Não funcional | Validação Javascript e PHP dos formulários | Tlm |
| Não funcional | Gerar tema (a partir da BD) | App |
| Não funcional | Gerar contador do tema actual | App |
| Funcional | Apontador da posição do utilizador | App |
| Não funcional | Ler posição através do Kinect | App |
| Não funcional | Ler posição através do rato (útil para debug e desenvolvimento) | App |
| Não funcional | Ligação entre Telemóvel, Aplicação e Base de dados | Tlm + App |
| Não funcional | Limitar área de desenho | App |
| Funcional | Exportar PNG para o servidor local | App |
| Não funcional | Inserir informação do PNG na base de dados | App |
| Não funcional | Apagar desenho completo | App |
| Tipo | Requisitos por implementar | Componente |
| Funcional | Utilização multi-jogador | Tlm + App |
| Funcional | Spray | Tlm + App |
| Funcional | Desenhar/apagar ao pressionar a ferramenta | Tlm |
| Funcional | Navegação através do toque (deslizar o ecrã) | Tlm |
| Funcional | Pré-visualizar stencil na parede | App |
| Funcional | Aplicar stencil na parede | App |
| Não funcional | Autores do desenho na parede | App |
| Não funcional | Autores do desenho na BD | App |
| Não funcional | Aviso ao apagar os avatares antigos | Tlm |
| Não funcional | Full screen | App |
| Não funcional | Sincronização entre servidores | App |
| Funcional | Guardar nome do desenho | App |
| Funcional | Guardar contributo | App |
| Funcional | Guardar imagem na BD (registo por email) | Tlm + App |
| Não funcional | Filtrar o movimento do utilizador no desenho | App |
| Não funcional | Melhoramento da navegação do utilizador pela área de jogo | App |
| Não funcional | Implementação do servidor DNS | Outro |
| Não funcional | Implementação do servidor DHCP | Outro |
Lista de bugs conhecidos
Prd | Natureza | Descrição | Estratégia de resolução |
3 | Design | Padrão de fundo com limites visíveis | Troca por um padrão que permita a repetição vertical e horizontal |
2 | Programação | Navegação por setas | A utilização de alguns plugins desenvolvidos em JQuery Mobile permitem adicionar o efeito swipe à aplicação |
4 | Design/ Programação | Avatar desalinhado na página de avatares | A implementação de imagens preview (thumbnails) com dimensões padrão |
4 | Design/ Programação | Preview dos avatares não ocupa a div por inteiro | A mesma solução para os avatares desalinhados deverá ser utilizada |
2 | Programação | Utilização das ferramentas através do evento de “click” | A utilização de JQuery Mobile possibilita a utilização de mais eventos, como vmouseup e vmousedown |
5 | Design/ Programação | Inserção de texto redimensiona as áreas da aplicação, desformatando a aplicação | O desenvolvimento do CSS ajustado para o display na horizontal deverá permitir contornar este problema |
1 | Programação | Seleção de mão ainda com problemas | Revisão do código |
Finalmente, falta apenas definir quais os testes que deverão ser utilizados para a identificação e correção de problemas da plataforma. De acordo com as especificidades do nosso projeto, considerámos relevantes os seguintes testes:
1) Funcionalidades - permite observar a eficácia das estratégias implementadas para a implementação dos nossos requisitos;
2) Segurança - o registo de informações pessoais e a capacidade de inserção de conteúdos obrigam a uma atenção redobrada a problemas como SQL Injection;
3) Compatibilidade - este teste tem grande importância, devido às diferentes condições que a WebApp vai encontrar (resoluções de ecrã, taxa de transmissão, comportamento de diferentes browsers, etc);
4) Design - A auditoria do trabalho de design da plataforma permite sempre ter um parecer objetivo do trabalho realizado, facilitando o registo de analomalias;
5) Usabilidade - De importante peso, visto que a natureza do projeto visa produzir experiências agradáveis ao utilizador. A utilização do Kinect para desenhar poderá trazer algumas limitações à usabilidade da plataforma.
. #aula13
. #aula12
. #aula11
. Mosaiko - Lx Factory Open...