SlideShare uma empresa Scribd logo
1 de 84
Baixar para ler offline
UNIVERSIDADE DO SUL DE SANTA CATARINA - UNISUL
FELIPPE RODRIGO PUHLE
DESENVOLVIMENTO DE KARAOKÊ WEB COM CONCEITOS DE
GAMIFICAÇÃO
Palhoça
2014
FELIPPE RODRIGO PUHLE
DESENVOLVIMENTO DE KARAOKÊ WEB COM CONCEITOS DE
GAMIFICAÇÃO
Monografia apresentada ao Curso Superior de
Sistemas para a Internet da Universidade do
Sul de Santa Catarina, como requisito parcial
para a obtenção do título de Tecnólogo.
Orientador: Prof. Clávison Martinelli Zapelini Esp.
Palhoça
2014
AGRADECIMENTOS
Muitas pessoas passaram pela minha vida nestes últimos tempos, e todos
contribuíram com um pouco para que este momento chegasse.
Em primeiro lugar, gostaria de agradecer a minha família por me ensinar a nunca
desistir de um sonho, por sempre ter me incentivado, por sempre me apoiar e dar a estrutura
necessária para que eles se realizem.
Em segundo lugar, gostaria de agradecer as pessoas que estão diretamente ligadas
a esta monografia: a minha coordenadora na empresa Naiara Sebben, por ter me ajudado na
concepção da ideia e na elaboração do projeto, e aos professores Clávison Martinelli Zapelini
e Flavia Lumi Matuzawa por sempre se disponibilizarem em nos ajudar, compartilhando
conhecimento e nos indicando os melhores caminhos para seguir.
Em terceiro lugar, a minha professora de técnica vocal, Celly Pacheco Maurer, por
ter me ensinado a nunca desistir da música e também por nunca ter desistido deste eterno
aluno.
Em quarto lugar e não menos importante, a todos os amigos e colegas de
trabalho pelos momentos compartilhados durante esta jornada.
Obrigado!
Dedico esta monografia à todos que
participaram desta etapa da minha vida e/ou
puderam me ajudar de alguma forma, seja ela
direta ou indiretamente.
“Cada sonho que você deixa para trás, é um futuro que deixa de existir.” (Steve Jobs)
RESUMO
Esta monografia explica e documenta o desenvolvimento de um Karaokê rodando em um
ambiente especificamente Web, o qual utiliza os conceitos de gamificação para recompensar e
fidelizar o usuário. Serão abordados conhecimentos sobre as linguagens de programação
utilizadas (PHP e Javascript), assim como modelagem do banco de dados, plug-ins, APIs e
frameworks utilizados para facilitarem o desenvolvimento. Também abordará uma breve
explicação sobre a teoria musical aplicada ao canto (técnica vocal) e como foi elaborado o
sistema de pontuação do game através da gamificação.
Palavras-chave: Karaokê, Canto, Gamificação, Técnica Vocal.
LISTA DE FIGURAS
FIGURA 1 - Mercado mundial de games por segmento..........................................................22
FIGURA 2 - Navegadores mais utilizados no mundo..............................................................41
FIGURA 3 - Navegadores mais utilizados no Brasil ...............................................................41
FIGURA 4 - Compatibilidade de navegadores - Web Áudio...................................................42
FIGURA 5 - Suporte de navegadores (versões) - Web Áudio .................................................42
FIGURA 6 - jQuery - compatibilidade entre navegadores.......................................................43
FIGURA 7 - Exemplo de ícones - Font Awesome...................................................................44
FIGURA 8 - Banco de dados - Tabela de sessão (CodeIgniter)...............................................46
FIGURA 9 - Formulário de login.............................................................................................47
FIGURA 10 - Banco de dados - tabela de usuários..................................................................47
FIGURA 11 - Tela inicial da administração.............................................................................48
FIGURA 12 - Alteração do perfil.............................................................................................48
FIGURA 13 - Alteração da senha.............................................................................................48
FIGURA 14 - Módulo "Categorias".........................................................................................49
FIGURA 15 - Módulo "Categorias" - formulário ....................................................................49
FIGURA 16 - Banco de dados - tabela de categorias...............................................................50
FIGURA 17 - Módulo "Artistas"..............................................................................................50
FIGURA 18 - Módulo "Artistas" - formulário .........................................................................51
FIGURA 19 - Banco de dados - tabela de artistas....................................................................51
FIGURA 20 - Módulo "Músicas".............................................................................................51
FIGURA 21 - Módulo "Músicas" - formulário ........................................................................52
FIGURA 22 - Banco de dados - tabela de músicas ..................................................................52
FIGURA 23 - Módulo "Músicas" - gerenciamento de acordes................................................53
FIGURA 24 - Banco de dados - tabela de acordes...................................................................53
FIGURA 25 - Módulo "Músicas" - gerenciamento de textos ..................................................54
FIGURA 26 - Banco de dados - tabela de textos .....................................................................54
FIGURA 27 - Banco de dados - tabela de ranking de jogadores .............................................55
FIGURA 28 - Módulo "Configurações" - geral .......................................................................55
FIGURA 29 - Módulo "Configurações" - mídias sociais.........................................................55
FIGURA 30 - Módulo "Configurações" - e-mail .....................................................................56
FIGURA 31 - Módulo "Usuários"............................................................................................56
FIGURA 32 - Bootstrap - Sistema de grid ...............................................................................58
FIGURA 33 - Bootstrap - Demonstração do sistema de grid...................................................58
FIGURA 34 - Layout................................................................................................................59
FIGURA 35 - Tela de jogo.......................................................................................................60
FIGURA 36 - Jogo - permissão do navegador .........................................................................60
FIGURA 37 - Durante o jogo...................................................................................................61
FIGURA 38 - Escala de dó maior ............................................................................................62
FIGURA 39 - Término do jogo................................................................................................63
FIGURA 40 - Registrar a pontuação........................................................................................63
FIGURA 41 - Término do registro...........................................................................................64
FIGURA 42 - Compartilhando pontuação no Facebook..........................................................64
FIGURA 43 - Linha do tempo no Facebook............................................................................65
FIGURA 44 - Melhores colocados...........................................................................................65
FIGURA 45 - Questionário de avaliação de usabilidade .........................................................72
FIGURA 46 - PageSpeed - Karaokê Web................................................................................73
FIGURA 47 - PageSpeed - UOL..............................................................................................74
FIGURA 48 - WebPage Test - Karaokê Web ..........................................................................74
FIGURA 49 - WebPage Test - UOL ........................................................................................75
FIGURA 50 - Validação HTML - W3C...................................................................................75
LISTA DE QUADROS
QUADRO 1 - Recursos Mobilizados.......................................................................................27
QUADRO 2 - Estudo de viabilidade........................................................................................30
QUADRO 3 - Questionário de Estudo de Riscos de Projetos..................................................33
QUADRO 4 - Fluxo de Atividades ..........................................................................................34
QUADRO 5 - Estimativa de recursos e custos mensais...........................................................35
QUADRO 6 - Divisão de tarefas com estimativa de recursos .................................................38
QUADRO 7 - Divisão de Reponsabilidades ............................................................................39
QUADRO 8 - Indicadores de desempenho ..............................................................................68
QUADRO 9 - Respostas obtidas na avaliação de usabilidade .................................................76
QUADRO 10 - Navegador e SO utilizados pelas pessoas que responderam a avaliação de
usabilidade................................................................................................................................78
QUADRO 11 - Formulário de Lições Aprendidas...................................................................80
LISTA DE GRÁFICOS
GRÁFICO 1 - Gráfico de Gantt – Cronograma previsto..........................................................36
GRÁFICO 2 - Gráfico de Gantt – Término da Etapa 1............................................................44
GRÁFICO 3 - Gráfico de Gantt – Término da Etapa 2............................................................57
GRÁFICO 4 - Gráfico de Gantt – Término da Etapa 3............................................................66
GRÁFICO 5 - Gráfico de Gantt – Término da Etapa 4............................................................67
SUMÁRIO
INTRODUÇÃO ......................................................................................................................13
1 IDENTIFICAÇÃO DO ESCOPO DO PROJETO...........................................................14
1.1 DEFINIÇÃO E APRESENTAÇÃO DO TEMA............................................................14
1.2 CATEGORIA DO PROJETO ........................................................................................14
1.3 CONTEXTO DO PROJETO..........................................................................................15
1.4 EQUIPE DO PROJETO .................................................................................................15
2 DESCRIÇÃO DETALHADA DO PROJETO..................................................................17
2.1 DESCRIÇÃO..................................................................................................................17
2.2 OBJETIVOS ...................................................................................................................20
2.2.1 Objetivos Gerais.....................................................................................................20
2.2.2 Objetivos Específicos..............................................................................................21
2.3 JUSTIFICATIVA ...........................................................................................................21
2.4 RESULTADOS ESPERADOS.......................................................................................22
2.5 COLETA E INTERPRETAÇÃO DE DADOS ..............................................................23
3 ANÁLISE DO PROJETO ..................................................................................................25
3.1 ESTUDO DE NECESSIDADES – PLANEJAMENTO DE ATIVIDADES.................25
3.1.1 Etapa 1 - Pesquisa ..................................................................................................25
3.1.2 Etapa 2 – Desenvolvimento backend ....................................................................26
3.1.3 Etapa 3 – Desenvolvimento frontend....................................................................26
3.1.4 Etapa 4 - Testes.......................................................................................................27
3.2 ESTUDO DE RECURSOS MOBILIZADOS ................................................................27
3.3 ESTUDO DE VIABILIDADE .......................................................................................28
3.4 ESTUDO DE RISCOS ...................................................................................................30
4 PLANEJAMENTO DE PROJETO ...................................................................................34
4.1 PLANO DE TRABALHO..............................................................................................34
4.1.1 Fluxo de Atividades................................................................................................34
4.1.2 Detalhamento das Atividades................................................................................35
4.1.3 Cronograma das Atividades (gráfico de Gantt) ..................................................35
4.2 EQUIPES DE TRABALHO...........................................................................................36
4.2.1 Divisão de Tarefas..................................................................................................37
4.2.2 Divisão de Responsabilidades................................................................................38
5 EXECUÇÃO DO PROJETO .............................................................................................40
5.1 RELATÓRIOS PARCIAIS DE EXECUÇÃO ...............................................................40
5.1.1 Etapa 1 – Pesquisa..................................................................................................40
5.1.2 Etapa 2 – Desenvolvimento Backend....................................................................45
5.1.3 Etapa 3 – Desenvolvimento Frontend...................................................................57
5.1.4 Etapa 4 – Testes......................................................................................................66
5.2 VERIFICAÇÃO DE ÍNDICES DE DESEMPENHO ....................................................67
5.3 AJUSTES / MODIFICAÇÕES DE PROJETO ..............................................................69
5.4 PROTÓTIPO DO PROJETO..........................................................................................69
5.5 PROJETO PILOTO ........................................................................................................70
6 ENCERRAMENTO DO PROJETO .................................................................................71
6.1 VALIDAÇÃO DO PROJETO........................................................................................71
6.2 ENTREGA / APRESENTAÇÃO FINAL ......................................................................73
6.3 MEDIÇÃO DOS RESULTADOS..................................................................................73
7 CONSIDERAÇÕES FINAIS..............................................................................................79
7.1 LIÇÕES APRENDIDAS ................................................................................................81
7.2 NOVAS IDEIAS E OPORTUNIDADES.......................................................................81
REFERÊNCIAS .....................................................................................................................83
13
INTRODUÇÃO
A indústria dos games é relativamente nova e encontra-se em enorme expansão,
tendo um mercado gigantesco a ser explorado.
Poder jogar online oferecia uma enorme atratividade e era considerado o grande
diferencial dos games até alguns anos atrás. Hoje, trata-se de questão de sobrevivência do
mercado.
Principalmente depois da disseminação das práticas de gamificação que é a
utilização do conceito de um game no apoio de atividades como treinamentos, resoluções de
problemas, potencialização de retorno de investimento, mensuração da qualidade do serviço e
diversas outras (TOTVS, 2014).
Este trabalho trata do processo de desenvolvimento de um projeto denominado
“Karaokê Web”, um browser game de karaokê com sistema de pontuação incluso. Nele, serão
apresentadas as lógicas utilizadas para o desenvolvimento do código-fonte, assim como as
linguagens de programação, APIs e frameworks utilizados.
Ao final serão apresentados os resultados alcançados em comparação aos
resultados esperados, as lições aprendidas e ideias para melhorias na próxima versão do
projeto.
14
1 IDENTIFICAÇÃO DO ESCOPO DO PROJETO
A identificação do escopo do projeto aborda informações que detalham itens
como a equipe responsável pelo desenvolvimento deste trabalho, além de apontar a categoria
e o contexto do projeto; e por fim define e apresenta o tema.
1.1 DEFINIÇÃO E APRESENTAÇÃO DO TEMA
O tema do projeto foi escolhido baseado em uma paixão do próprio autor e de
milhares de pessoas ao redor do mundo: a música.
Após uma pesquisa, foram constatados dois pontos principais para a continuidade
do projeto:
 Poucos são os games relacionados ao meio musical no mercado nacional,
e este número é ainda menor quando relacionado ao canto (técnica vocal);
 O nível de aceitação da ideia foi extremamente grande.
O autor definiu como tema de seu projeto, o desenvolvimento de um web site
onde os usuários podem competir através da sua participação no karaokê que será
disponibilizado e ranqueado através de técnicas de gamificação.
1.2 CATEGORIA DO PROJETO
O projeto se enquadra na categoria de “Desenvolvimento Tecnológico”, pois trata-
se do desenvolvimento de um novo software utilizando conhecimentos já existentes, e que
será utilizado para suprir a demanda identificada pelo autor na elaboração do tema.
15
1.3 CONTEXTO DO PROJETO
É cada vez maior a procura pelas oportunidades de lazer que o avanço científico-
tecnológico tem nos oferecido. Dentro destas possibilidades, a Internet se tornou a principal
opção pelo simples fato de estar presente em grande percentual de residências pelo mundo.
Além disto, pesquisas também demonstram que são grandes os casos em que o
entretenimento e a música estão interligadas por meio de atividades realizadas mutuamente.
Apesar de ter um mercado gigante a ser explorado, a gamificação trata de um
conceito relativamente novo e representa basicamente o estabelecimento de regras e
mecânicas de um jogo a algo que não necessariamente seja um jogo.
Este projeto visa a inserção de um game rodando especificamente em um
ambiente Web no mercado nacional. Nele, os jogadores poderão fazer livre utilização do
sistema de pontuação para sua própria diversão e também a de seus amigos, promovendo uma
concorrência sadia entre eles através do compartilhamento nas redes sociais.
Sem qualquer instalação no computador necessária, “Karaokê Web” visa a
simplicidade e fácil jogabilidade, independentemente do local em que o usuário se encontra.
Para isto, o navegador precisa dar suporte a alguns componentes utilizados pelo jogo, além de
que o usuário habilite o microfone e dê permissão ao navegador para utilizá-lo.
1.4 EQUIPE DO PROJETO
A equipe do projeto é composta por apenas um integrante: Felippe Rodrigo Puhle,
o qual foi gestor e responsável por todas as etapas do processo de pesquisa e de
desenvolvimento, podendo destacar as pesquisas sobre melhores tecnologias a serem
utilizadas, elaboração do sistema de pontuação e área administrativa para gerenciamento de
conteúdo do site.
O autor trabalha há mais de três anos com desenvolvimento Web, com projetos de
que incluíam o desenvolvimento de websites, sistemas e integrações, utilizando tecnologias
como:
 PHP;
16
 Javascript;
 jSon
 jQuery;
 MySql.
17
2 DESCRIÇÃO DETALHADA DO PROJETO
Neste capitulo consta a descrição do projeto, junto com o objetivo geral e as suas
especificidades. Justificando a relevância e a importância do mesmo para a comunidade,
assim como apresentando os resultados esperados e a interpretação dos dados coletados.
2.1 DESCRIÇÃO
Este projeto trata do desenvolvimento de um game on-line sobre música. O game
é composto por vários módulos, podendo ser separados também por duas seções: site e
administração.
Na seção administrativa, encontraremos:
a) Formulário de login: o acesso a administração de conteúdo do site só será
permitido para usuários cadastrados. O login poderá ser realizado com
sucesso utilizando e-mail e senha previamente cadastrados.
b) Atualização de perfil: todo usuário cadastrado poderá alterar seus próprios
dados dentro da administração do site.
c) Módulo de categorias: neste módulo, será possível gerenciar todas as
categorias de músicas disponíveis no site. Dentre as ações a serem
realizadas aqui são:
- Adição de novos registros;
- Listagem, alteração e exclusão de registros já cadastrados.
d) Módulo de artistas: neste módulo, será possível gerenciar todas os artistas
e bandas disponíveis no site. Dentre as ações a serem realizadas aqui são:
- Adição de novos registros;
- Listagem, alteração e exclusão de registros já cadastrados.
18
e) Módulo de músicas: neste módulo, será possível gerenciar todas as
músicas disponíveis no site. Neste cadastro estará incluso o arquivo de
áudio e também vínculos com artistas e categorias. Dentre as ações a
serem realizadas aqui são:
- Adição de novos registros;
- Listagem, alteração e exclusão de registros já cadastrados;
- Gerenciamento das legendas (letras) que aparecerão na tela enquanto a
música estiver tocando;
- Gerenciamento da troca de acordes durante a música, o que acarretará em
como o sistema de pontuação funcionará.
f) Configurações: neste módulo, serão configuradas todas as informações
referentes ao site, como por exemplo:
- Título, descrição e palavras chave;
- Endereço de e-mail que deverá receber as mensagens de contato;
- Configurações de mídias sociais;
- Configuração de servidor de e-mail para envio de mensagens.
g) Módulo de usuários: neste módulo, será possível gerenciar todos os
usuários que terão acesso a área administrativa. Dentre as ações a serem
realizadas aqui são:
- Adição de novos registros;
- Listagem, alteração e exclusão de registros já cadastrados.
Na seção site, a visualização será composta por um template fixo, ou seja, em
todas as páginas teremos o mesmo cabeçalho e rodapé, com as seguintes opções:
 Cabeçalho:
- Início: link para a página inicial;
- Artistas: link para a lista de artistas disponíveis;
- Categorias: link para a lista de categorias disponíveis;
- Músicas: link para a lista de músicas disponíveis;
- Contato: link para o formulário de contato;
19
- Avaliação de usabilidade: janela com um formulário disponível para
avaliação do sistema;
- Sobre: janela com algumas informações sobre o sistema;
- Ajuda: janela com algumas dicas de uso do sistema.
 Rodapé:
- Início: link para a página inicial;
- Contato: link para o formulário de contato;
- Avaliação: janela com um formulário disponível para avaliação do
sistema;
- Sobre: janela com algumas informações sobre o sistema;
- Ajuda: janela com algumas dicas de uso do sistema;
- Integração com as redes sociais: Facebook, Twitter e Youtube.
A navegação do site se dará pelas seguintes telas:
a) Página inicial: na página inicial serão mostrados os seguintes dados:
- Top músicas: músicas mais jogadas;
- Top artistas: artistas mais jogados;
- Top categorias: categorias mais jogadas;
b) Artistas: lista de todos os artistas cadastrados. Ao final do conteúdo terá
uma área para paginação. Caso houver mais de doze registros esta área
será exibida, limitando assim a carga no banco de dados. Caso um item for
clicado, o usuário será redirecionado para a lista de música disponíveis
para este artista.
c) Categorias: lista de todas as categorias cadastradas. Ao final do conteúdo
terá uma área para paginação. Caso houver mais de doze registros esta área
será exibida, limitando assim a carga no banco de dados. Caso um item for
clicado, o usuário será redirecionado para a lista de música disponíveis
para esta categoria.
20
d) Músicas: lista de todas as músicas cadastradas. Ao final do conteúdo terá
uma área para paginação. Caso houver mais de doze registros esta área
será exibida, limitando assim a carga no banco de dados. Caso um item for
clicado, o usuário será redirecionado para a tela de jogo desta música.
e) Jogo: tela para qual o usuário será redirecionado ao escolher uma música.
Aqui serão exibidas algumas informações como: sistema de pontuação
está habilitado ou não (caso o usuário não tenha habilitado o microfone),
botão para a escolha da dificuldade e botão para início do jogo. Será
exibido também um ranking de melhores colocados para cada dificuldade.
f) Contato: formulário de contato com os campos para os dados do usuário e
texto a ser enviado. Enviará um e-mail para o endereço configurado nas
configurações do site.
2.2 OBJETIVOS
Os objetivos da monografia são descritos a seguir. Neles há uma divisão entre o
objetivo geral do trabalho e as especificidades a serem realizadas no transcorrer do mesmo.
2.2.1 Objetivos Gerais
O objetivo geral do projeto “Karaokê Web” é:
Desenvolver um aplicativo Web para karaokê com conceitos de gamificação.
21
2.2.2 Objetivos Específicos
Os objetivos específicos do projeto “Karaokê Web” são:
 Desenvolver a área administrativa (backend);
 Desenvolver o site (frontend);
 Desenvolver módulo de análise de desempenho e pontuação do usuário;
 Desenvolver módulo para integração com mídias sociais;
 Realizar testes para saber se o sistema de pontuação é confiável.
2.3 JUSTIFICATIVA
Jogar na Web tem sido um grande atrativo para as pessoas que desejam tirar uns
minutinhos de folga para aliviar o stress. Fortalecem-se aqui a praticidade dos browser games:
sem a necessidade de efetuar o download de arquivos gigantes, difusos e disponíveis a todo o
momento na rede.
Nos últimos anos, o mercado dos games desponta como promissor e com um
crescimento de enorme potencial: “De acordo com Alves Junior, o mercado de games
movimenta algo em torno de US$ 2,63 bilhões no Brasil, uma prova de que proporcionar
diversão e entretenimento às pessoas por meio de jogos pode ser algo muito lucrativo”
(MACHADO, 2014).
Mundialmente falando, segundo estudo realizado pela empresa de pesquisa de
mercado Newzoo, o mercado de games movimentou de 2013 para 2014 cerca de US$ 81,5
bilhões, US$ 6 bilhões a mais que no ano anterior. Destes, 9% pertencem aos considerados
browser games, como pode ser visto na FIGURA 1 a seguir:
22
FIGURA 1 - Mercado mundial de games por segmento.
Fonte: Newzoo 1
Após pesquisa realizada, foi constatado que não há nenhum browser game na área
do canto e da técnica vocal no mercado nacional. Este projeto visa oferecer um game
dinâmico e que se adeque a este nicho de mercado.
Sem a necessidade de fazer qualquer instalação no computador, o projeto
“Karaokê Web” fornecerá estrutura necessária para que o usuário se divirta sem qualquer
limitações de uso.
2.4 RESULTADOS ESPERADOS
O desenvolvimento de um aplicativo Web para karaokê com conceitos em
gamificação. Com uma interface extremamente amigável, basta apenas que o usuário habilite
o microfone e permita que o navegador faça o seu uso para poder jogar.
Do ponto de vista estratégico, é esperado que o game promova uma disputa
acirrada e sadia, forçando os usuários e compartilharem os seus resultados nas redes sociais e
atraindo o maior número de visitantes possíveis da seguinte forma:
 O sistema de pontuação será crescente, de forma que quanto mais o
usuário praticar, maior será sua pontuação;
1
Disponível em http://www.newzoo.com/insights/asia-pacific-contributes-82-6bn-global-games-market-
growth. Acesso em out 2014.
23
 Após o término da música o usuário poderá compartilhar a sua pontuação
nas redes sociais, visando a divulgação do game e atraindo outras pessoas
a conhecerem o produto.
Do ponto de vista técnico, “Karaokê Web” torna-se um projeto inovador e ousado.
O projeto contará com o uso da API de Web Áudio, tecnologia relativamente nova no
mercado. É esperado que a API e a integração com o Javascript consigam fornecer estrutura e
capacidade necessária para a elaboração do algoritmo de pontuação em tempo real, sem
quaisquer atrasos na execução.
2.5 COLETA E INTERPRETAÇÃO DE DADOS
Tratando-se do desenvolvimento de um software novo e após a concepção do
tema, a coleta das informações foi feita da seguinte maneira:
 Através de pesquisa na Internet;
 Com amigos, colegas de trabalho e do meio musical.
Com a pesquisa na internet, foi possível constatar a maior necessidade: uma
enorme escassez de browser games relacionados a música no mercado nacional. Alguns
modelos foram encontrados, mas a grande maioria ao estilo de “Guitar Hero”.
Após a identificação da necessidade de um karaokê, foram coletadas as
informações e dicas necessárias através de conversas informais com amigos, colegas de
trabalho e colegas no meio musical, a fim de verificarmos o nível de aceitação do projeto.
Através desta coleta foi chegado à conclusão de que o projeto era totalmente
viável, também sendo feito o levantamento de alguns itens primordiais para o funcionamento
e um rápido desenvolvimento do código fonte do sistema.
Com colegas de trabalho, debatemos as seguintes soluções:
 Utilização de frameworks;
 Linguagens de programação utilizadas;
 Banco de dados a ser utilizado;
 Utilização da API de web áudio;
 Utilização de jQuery e outros plug-ins.
24
Com os colegas envolvidos no meio musical, debatemos sobre a teoria musical
básica: como poderíamos aplicar esta teoria ao sistema de pontuação do game.
25
3 ANÁLISE DO PROJETO
Este capítulo apresenta o estudo de necessidades para realizar o planejamento de
atividades. Pontuando os recursos mobilizados, assim como, o etudo de viabilidade e riscos
do trabalho.
3.1 ESTUDO DE NECESSIDADES – PLANEJAMENTO DE ATIVIDADES
Segundo (FACCINONI, 2006), “Um projeto é um conjunto de tarefas, arranjado
uma sequência ou relação definida, que produz um efeito ou saída pré-definida.”. Assim
sendo, dividimos o projeto em etapas e tarefas menores, para posterior análise (DUTRA,
2007). Sendo elas:
3.1.1 Etapa 1 - Pesquisa
Nesta etapa, o objetivo principal é a identificação de quais os requisitos mínimos
para que o game tenha um correto funcionamento. Além disto, será preparada a base para o
código fonte ser escrito futuramente. Fazem parte desta etapa:
a) Compatibilidade:
- Verificar compatibilidade do web áudio no HTML5 entre navegadores;
- Verifica se a captura de áudio pelo web áudio possui uma qualidade
mínima;
- Verificar se a detecção da nota emitida pelo vocalista é capturada de
maneira correta.
b) Equipamentos:
- Testar microfones de diferentes valores;
- Testar placa de áudio onboard e outras.
26
c) Linguagem de Programação:
- Pesquisa sobre qual framework será utilizado para programar;
- Pesquisa de plug-ins que poderão ser úteis.
3.1.2 Etapa 2 – Desenvolvimento backend
Nesta etapa, se dará o início do desenvolvimento. O ambiente backend nada mais
é do que a seção que administra o conteúdo do site. Fazem parte desta etapa:
a) Definição do framework
- Verifica qual framework se adapta melhor;
- Verificar linguagens que podem ser combinadas para melhorar o sistema.
b) Intranet base
- Desenvolver sistema de login;
- Desenvolver sistema de módulos;
- Desenvolver módulos básicos como: configurações, usuário, etc.
c) Módulos referente a música
- Desenvolver módulo de gerenciamento de músicas;
- Desenvolver módulo para controle do ranking de jogadores.
3.1.3 Etapa 3 – Desenvolvimento frontend
Após o término do desenvolvimento do backend começará o desenvolvimento do
frontend, que é a parte visível do site para os usuários. Fazem parte desta etapa:
a) Layout
- Verificar melhor estrutura HTML a ser utilizada;
- Definir esquema de cores;
27
- Desenvolver frontend.
b) Integração
- Integrar frontend com backend;
- Integrar com mídias sociais.
3.1.4 Etapa 4 - Testes
Última etapa do projeto. Nela será testada todo o desenvolvimento e integração
com as mídias sociais. Fazem parte desta etapa:
a) Verifica se o algoritmo de pontuação funciona adequadamente;
b) Verificar se a integração com as mídias sociais está funcionando.
3.2 ESTUDO DE RECURSOS MOBILIZADOS
Segundo (DUTRA, 2007), recursos podem ser materiais (equipamentos,
instalações, softwares, etc) e humanos (a equipe do projeto e/ou terceiros). Levando em conta
essa consideração, temos a seguinte previsão orçamentária (anual) para realização do projeto:
Previsão Orçamentária (ANUAL): R$ 34.295,00
Humanos Quantidade Custo mensal
Tecnólogo em web design e programação 1 R$ 2.500,00
Material Quantidade Custo
Computador 1 R$ 3.000,00
Interface de som offboard 1 R$ 800,00
Microfone multimídia (simples) 1 R$ 20, 00
Microfone Sennheiser E835 (profissional) 1 R$ 450,00
Cabo balanceado XLR 1 R$ 25,00
QUADRO 1 - Recursos Mobilizados.
Fonte: Adaptado (DUTRA, 2007)
28
Segundo informações exibidas no QUADRO 1, podemos notar que a previsão
orçamentária para um ano de desenvolvimento é de R$ 34.295,00. Destes, R$ 4.295,00 são
referentes aos materiais fixos, que serão utilizados durante todo o projeto. O restante se refere
a variável (salário do tecnólogo em web design e programação) multiplicada a quantidade de
meses que o projeto levará para ser executado.
3.3 ESTUDO DE VIABILIDADE
Segundo (DUTRA, 2007), o Estudo de Viabilidade de Projetos é importantíssimo
para fazer o levantamento de uma série de preocupações iniciais para prosseguir com o
desenvolvimento do projeto, assim como prever alguns riscos que possam atrapalhar
futuramente. Utilizaremos o modelo de questionário/relatório proposto por (FACCIONI,
2011) para tal.
Estudo de viabilidade
Desenvolvimento de Karaokê Web com conceitos de Gamificação
Equipe de estudo: FRP Music Technology
Local e data: São Miguel do Oeste – SC, 15 de abril de 2014
Resumo do projeto (escopo, objetivos, estratégias)
Trata-se do desenvolvimento de um karaokê web que pretende promover a diversão e
interação dos jogadores através dos conceitos de gamificação e interações com as redes
sociais.
Benefícios:
- quais são as vantagens mensuráveis que o
projeto trará?
- quais são os valores comparativos?
Descrição:
- A grande maioria dos softwares de
karaokê hoje tem de ser instalados no
computador para serem executados.
- Um karaokê web não teria esta
necessidade, bastaria acessar a página para
jogar.
29
Benefícios:
- que vantagens intangíveis ele trará?
- como se poderá verificar?
Descrição:
- Portabilidade: você poderia jogar em
qualquer lugar sem ter o game ‘instalado’
no computador.
Recursos:
- quais os recursos materiais necessários para
o projeto?
- esses recursos estão disponíveis?
- caso não disponíveis, é possível obtê-los?
Descrição:
- Recursos materiais conforme a tabela;
- Sim, já foram adquiridos;
Recursos:
- quais os recursos humanos necessários para
o projeto?
- essas pessoas estão disponíveis para o
projeto?
- caso não disponíveis, há outras pessoas
para substituí-las?
Descrição:
- Recursos humanos conforme a tabela;
- Equipe já está completa.
Custos:
- considerando os recursos necessários,
quanto dinheiro será necessário para
desenvolver o projeto?
- esse montante está disponível?
Descrição:
- Todos os itens físicos já estão disponíveis,
restando apenas o salário do Tecnólogo em
web design e programação.
- O dinheiro não está disponível.
Custos:
- há fontes de financiamento?
Descrição:
- Não, o projeto será levado com verbas
próprias.
Prazo:
- qual o prazo pré-definido pelo “cliente”
para o projeto?
Descrição:
- O prazo especificado para finalização do
projeto é de 12 meses.
Prazo:
- considerando a experiência da equipe, qual
o prazo estimado para o projeto? É igual ao
pré-definido?
Descrição:
- A projeção inicial do projeto foi de 6
meses, mas ele poderá ser executado em 4
meses.
Conclusões quanto à viabilidade do projeto:
O projeto é totalmente viável, tendo bastante tempo para a finalização do mesmo.
30
Recomendações:
Anexos:
QUADRO 2 - Estudo de viabilidade.
Fonte: Adaptado (FACCIONI, 2011, p. 125)
Conforme o QUADRO 2 mostra, o projeto tem viabilidade de ser concretizado e o
tempo disponível para execução é grande, mesmo após o remanejamento de tempo de
execução inicial.
3.4 ESTUDO DE RISCOS
O estudo de riscos em um projeto é uma etapa importantíssima para a
continuidade do mesmo. Os riscos já existem mesmo antes do projeto nascer, e o gestor deve
estar atendo ao processo de administração de riscos, que deve ser contínuo. Desta maneira,
eles podem ser antecipados e administrados, ou até mesmo eliminados (DUTRA, 2007).
Estudo de riscos
Desenvolvimento de Karaokê Web com conceitos de Gamificação
Equipe de estudo: FRP Music Technology
Local e data: São Miguel do Oeste – SC, 15 de abril de 2014
Resumo do projeto (escopo, objetivos, estratégias)
Trata-se do desenvolvimento de um karaokê web que pretende promover a diversão e
interação dos jogadores através dos conceitos de gamificação e interações com as redes
sociais.
Riscos quanto aos benefícios:
- o cliente tem uma idéia exata do resultado
a ser obtido?
- ou tem uma idéia aproximada?
- é possível medir os benefícios?
Descrição:
Sim, os benefícios serão notáveis devido ao
fato do karaokê pode ser acessado de
qualquer lugar com uma conexão com a
internet, porém, caso a internet estiver lenta,
pode ser que o usuário sinta-se frustrado pelo
fato de não poder jogar de uma maneira
satisfatória.
31
Riscos quanto aos benefícios:
- qual a probabilidade desse tipo de riscos?
- qual o seu impacto?
Descrição:
A probabilidade é média, visto que hoje
encontramos internet com altas taxas de
conexão em qualquer lugar, porém, a internet
no Brasil ainda é muito instável.
Riscos quanto aos recursos:
- há equipamentos de reserva?
- há pessoal de reserva?
- a tecnologia empregada é inteiramente
dominada?
Descrição:
Não há recursos materiais ou humanos
reserva. A tecnologia é dominada pelo
profissional visto que trabalha há alguns anos
com isto.
Riscos quanto aos recursos:
- qual a probabilidade desse tipo de riscos?
- qual o seu impacto?
Descrição:
A probabilidade é mínima, mas pode resultar
em uma pequena demora no prazo inicial de
desenvolvimento da equipe (impacto
pequeno).
Riscos quanto aos custos:
- o financiamento de todo o projeto está
garantido?
- há um montante de reserva?
Descrição:
O financiamento não está garantido ou possui
reservas, apesar de todo o equipamento já ter
sido adquirido.
Riscos quanto aos custos:
- qual a probabilidade desse tipo de riscos?
- qual o seu impacto?
Descrição:
A falta de recursos para pagamento de
recursos humanos pode acarretar em atrasos
no prazo inicial de desenvolvimento da
equipe (impacto médio).
Riscos quanto ao prazo:
- há fatores internos ou externos, não
considerados, que podem afetar o prazo do
projeto?
Descrição:
A maior dificuldade será devido ao fato do
web áudio ser um conceito novo e ainda não
ser suportado por todos os navegadores,
então o karaokê terá de ser testado em todos
para homologação de funcionamento.
Riscos quanto ao prazo:
- a equipe de projeto é experiente?
Descrição:
Apesar de nunca ter trabalho com web áudio,
a equipe trabalha há anos no mercado de
32
trabalho e possui domínio sobre as
linguagens de programação que serão
utilizadas.
Riscos quanto ao prazo:
- qual a probabilidade desse tipo de riscos?
- qual o seu impacto?
Descrição:
Probabilidade pequena e impacto pequeno.
Caso um navegador não der suporte ao web
áudio, não há outra alternativa a não ser
instruir o usuário a utilizar um navegador
homologado pela equipe, verificação que não
atrasará no desenvolvimento do projeto...
Lista dos 10 riscos mais importantes:
- Falha nos testes efetuados durante a pesquisa;
- Erro na escolha do framework utilizado;
- Erro na escolha do modelo de frontend a ser utilizado;
- Atraso no desenvolvimento;
- Baixa performance da internet;
- Falha de integração de navegadores com o web áudio;
- Falha no desenvolvimento do algoritmo de pontuação (identificação da nota emitida);
- Falha nos equipamentos utilizados;
- Falha na captação do áudio pelo navegador;
- Baixa qualidade de captação do áudio pode interferir na pontuação do jogador;
Podemos conviver com eles?
Sim, mas em alguns casos específicos, será necessário o replanejamento do projeto.
É possível atenuá-los?
Em caso de falhas ou erros em relação a compatibilidade do web áudio com alguns
navegadores, deverá ser desenvolvido um módulo capaz de realizar a interação necessária
para que o jogador consiga fazer a atualização ou instalação de um navegador homologado
pelo sistema.
É possível evitá-los?
Em sua grande maioria, sim. A etapa de pesquisa será de importância significativa para
determinar qual o melhor caminho a ser seguido no desenvolvimento do sistema.
Além disto, em caso de alguma falha de equipamento, poderá ser locado ou pegar
emprestado os equipamentos de empresas parceiras.
33
Conclusões quanto aos riscos do projeto:
Tendo em vista que os maiores riscos devem-se a duvidosa integração do web áudio com os
navegadores, podemos afirmar que o projeto é de médio risco, pois de pouco em pouco
tempo temos constantes atualização dos mesmos e de suas APIs de integração com os
novos recursos do HTML5. Além disto, lendo sua documentação, temos a garantia de que
irá funcionar em pelo menos dois dos navegadores mais utilizados hoje – Google Chrome e
Mozilla Firefox.
Recomendações:
Anexos:
QUADRO 3 - Questionário de Estudo de Riscos de Projetos.
Fonte: Adaptado (FACCIONI, 2011, p.134)
No QUADRO 3, através do questionário para estudo de riscos de projeto,
proposto por FACCIONI (2011, p.134), podemos chegar à conclusão de que o projeto tem
médio risco. Apesar disto, o projeto é totalmente viável, bastando apenas que a equipe se
mantenha atenta a alguns riscos já calculados.
34
4 PLANEJAMENTO DE PROJETO
Aborda-se nesta sessão o plano de trabalho definido com base no capítulo anterior
e a equipe envolvida na execução do mesmo.
4.1 PLANO DE TRABALHO
Após o levantamento e análise de dados e os estudos de viabilidade e riscos do
projeto, a equipe pode estimar algumas informações importantes para a sequência do trabalho,
como o fluxo e o detalhamento das atividades. A seguir apresentaremos estas informações,
assim como o cronograma com o Gráfico de Gantt.
4.1.1 Fluxo de Atividades
Etapa 1 - Pesquisa Prazo estimado: 21 dias
Compatibilidade 10 dias
Equipamentos 7 dias
Linguagens de programação 4 dias
Etapa 2 – Desenvolvimento Backend Prazo estimado: 48 dias
Definição do framework 4 dias
Intranet Base 29 dias
Módulo referente a música 15 dias
Etapa 3 – Desenvolvimento Frontend Prazo estimado: 40 dias
Layout 20 dias
Integração 20 dias
Etapa 4 - Testes Prazo estimado: 20 dias
Algoritmo de pontuação 15 dias
Integração com mídias sociais 5 dias
QUADRO 4 - Fluxo de Atividades.
Fonte: Adaptado (DUTRA, 2007)
35
O QUADRO 4 demonstra o fluxo de atividades e seus respectivos prazos
estimados, contando apenas dias úteis de trabalho. Através dele podemos ter uma melhor
visão da duração total do projeto.
4.1.2 Detalhamento das Atividades
Definido o fluxo de atividades e estimada a sua duração, decompomos as
informações em uma outra tabela, estimando através do tempo de execução os custos e os
recursos necessários para a realização das tarefas:
MÊS RECURSO CUSTO (R$)
Junho Computador
Interface de som offboard
Microfone multimídia (simples)
Microfone Sennheiser E835 (profissional)
Cabo balanceado XLR
Equipe
3.000,00
800,00
20,00
450,00
25,00
2.500,00
Julho Equipe 2.500,00
Agosto Equipe 2.500,00
Setembro Equipe 2.500,00
Outubro Equipe 2.500,00
Novembro Equipe 2.500,00
QUADRO 5 - Estimativa de recursos e custos mensais.
Fonte: O autor (2014)
4.1.3 Cronograma das Atividades (gráfico de Gantt)
Considerando que as realizações das tarefas deverão ser executadas em um
período e ordem previamente definidos, o gráfico de Gantt serve para facilitar a visualização e
execução do que deverá ser desenvolvido.
36
No eixo horizontal do gráfico há um calendário com a escala de tempo, e no eixo
vertical as atividades a serem executadas. Estas, estarão distribuídas no gráfico utilizando uma
barra para demarcar a data inicial e final de realização da atividade, se estendendo por todo o
período de tempo compreendido (FACCIONI, 2011).
Após definição do fluxo de atividades e análise dos prazos, chegamos ao seguinte
cronograma:
GRÁFICO 1 - Gráfico de Gantt – Cronograma previsto.
Fonte: O autor (2014)
O GRÁFICO 1 mostra que nenhuma atividade será realizada em paralelo. Isto se
deve ao fato de que cada etapa e tarefa foi estruturada para ser dependente da anterior, devido
ao fato da equipe contar com apenas uma pessoa.
4.2 EQUIPES DE TRABALHO
A equipe do projeto é composta por apenas uma pessoa, logo, temos apenas uma
equipe de trabalho também. Esta, ficará a cargo de todas responsabilidades e tarefas durante
todo o projeto.
37
4.2.1 Divisão de Tarefas
Segundo (DUTRA, 2007), o planejamento do projeto é fundamental para
começarmos a desenvolvê-lo, e um bom nível de detalhamento deve ser alcançando para que
consigamos estimar melhor as atividades.
Uma tabela foi criada com a descrição de cada etapa e tarefa, com informações
adicionais dos recursos necessários para a realização cada uma:
Etapas do desenvolvimento Recursos Necessários
Etapa 1 - Pesquisa
1) Compatibilidade Computador, Interface de som offboard,
Microfone multimídia (simples) ou
Microfone Sennheiser E835 (profissional),
Cabo balanceado XLR.
2) Equipamentos Computador, Interface de som offboard,
Microfone multimídia (simples), Microfone
Sennheiser E835 (profissional), Cabo
balanceado XLR.
3) Linguagem de programação Computador.
Etapa 2 - Desenvolvimento backend
1) Definição do framework Computador.
2) Intranet base Computador.
3) Módulos referente a música Computador, Interface de som offboard,
Microfone multimídia (simples), Microfone
Sennheiser E835 (profissional), Cabo
balanceado XLR.
Etapa 3 - Desenvolvimento frontend
1) Layout Computador.
2) Integração Computador.
Etapa 4 - Testes
1) Verificar se o algoritmo de
pontuação funciona adequadamente
Computador, Interface de som offboard,
Microfone multimídia (simples), Microfone
38
Sennheiser E835 (profissional), Cabo
balanceado XLR.
2) Verificar se a integração com as
mídias sociais está funcionando
Computador.
QUADRO 6 - Divisão de tarefas com estimativa de recursos.
Fonte: O autor (2014)
Como demonstrado pelo QUADRO 6, todos os recursos deverão ser adquiridos
logo na primeira etapa e tarefa do projeto, pois serão através das pesquisas e dos testes iniciais
de compatibilidade que teremos maiores informações sobre o comportamento do web áudio.
4.2.2 Divisão de Responsabilidades
A divisão de responsabilidades é uma etapa extremamente importante para
qualquer projeto, pois é nesta etapa que será definido qual equipe de trabalho ficará
responsável por alguma atividade, e quais atividades poderão ser realizadas em paralelo.
Como o projeto “Karaokê Web” é composto por apenas um integrante e possui
apenas uma equipe de trabalho, todas as tarefas foram delegadas para esta mesma pessoa:
Etapas do desenvolvimento Responsável
Etapa 1 - Pesquisa
1) Compatibilidade Tecnólogo em web design e programação
2) Equipamentos Tecnólogo em web design e programação
3) Linguagem de programação Tecnólogo em web design e programação
Etapa 2 - Desenvolvimento backend
1) Definição do framework Tecnólogo em web design e programação
2) Intranet base Tecnólogo em web design e programação
3) Módulos referente a música Tecnólogo em web design e programação
Etapa 3 - Desenvolvimento frontend
1) Layout Tecnólogo em web design e programação
2) Integração Tecnólogo em web design e programação
Etapa 4 - Testes
39
1) Verificar se o algoritmo de
pontuação funciona adequadamente
Tecnólogo em web design e programação
2) Verificar se a integração com as
mídias sociais está funcionando
Tecnólogo em web design e programação
QUADRO 7 - Divisão de Reponsabilidades.
Fonte: O autor (2014)
40
5 EXECUÇÃO DO PROJETO
A execução do projeto aborda os relatórios parciais de execução, apresenta a
verificação de índices de desempenho, ajustes e modificações, além do protótipo e o piloto do
projeto.
5.1 RELATÓRIOS PARCIAIS DE EXECUÇÃO
Para melhor entendimento e acompanhamento em tempo real durante o
desenvolvimento do projeto, os relatórios parciais de execução foram feitos na conclusão de
cada etapa.
5.1.1 Etapa 1 – Pesquisa
Um bom resultado durante a execução da etapa 1 era essencial para que o
desenvolvimento do projeto continuasse dentro do cronograma previsto. Um erro aqui poderia
significar em um atraso gradativo nas etapas posteriores.
A primeira tarefa desta etapa visava efetuar todos os testes de compatibilidade
possíveis para que o game funcione de forme homogênea no maior número de navegadores, e
um dos principais objetivos era a identificação de quais os navegadores mais utilizados na
atualidade. Veja as figuras abaixo:
41
FIGURA 2 - Navegadores mais utilizados no mundo
Fonte: Wikipedia 2
FIGURA 3 - Navegadores mais utilizados no Brasil.
Fonte: Wikipedia 3
Após o levantamento destes dados, nossa maior preocupação era sobre o suporte
do web áudio a estes navegadores. Mas o que é o web áudio?
“A API de Web Áudio disponibiliza um poderoso e versátil sistema de controle de
áudio para a Web, permitindo aos desenvolvedores escolher arquivos de áudio,
adicionar efeitos a estes arquivos, criar reprodutores de áudio, aplicar spatial effects
(como panning) e muito mais.” (MDN, 2014)
O web áudio é uma ferramenta extremamente nova no mercado, e nem todos
navegadores suportam o seu uso. A própria comunidade MDN especifica isto:
2
Disponível em http://pt.wikipedia.org/wiki/Anexo:Lista_de_navegadores. Acesso em jun 2014.
3
Disponível em http://pt.wikipedia.org/wiki/Anexo:Lista_de_navegadores. Acesso em jun 2014.
42
FIGURA 4 - Compatibilidade de navegadores - Web Áudio.
Fonte: MDN 4
Utilizamos também uma ferramenta que possibilitou uma visão geral das
funcionalidade em todos os navegadores, denominada “Can I Use”. Assim conseguimos
mapear quais versões de cada navegador realmente suportam o web áudio. Veja a figura
abaixo:
FIGURA 5 - Suporte de navegadores (versões) - Web Áudio.
Fonte: Can I Use 5
Podemos perceber através da FIGURA 4 que atualmente apenas o Internet
Explorer não fornece suporte para o Web Áudio. Porém, podemos relatar também que a
versão 5.1 do Safari não oferece suporte, através da FIGURA 5. Isto acaba tornando-se um
problema para usuários do Safari no Windows, pois a última versão lançada neste sistema
operacional é justamente a versão 5.1.
Definido quais navegadores terão compatibilidade, chegou o momento de
testarmos o web áudio de verdade. Testes foram feitos com todas as configurações de
4
Disponível em https://developer.mozilla.org/pt-BR/docs/Web/API/API_Web_Audio. Acesso em jun 2014.
5
Disponível em http://caniuse.com/#feat=audio-api. Acesso em jun 2014.
43
hardwares previamente especificadas neste projeto e em todos os navegadores, chegando à
conclusão que o projeto poderia ser seguido normalmente com esta tecnologia.
Os navegadores Internet Explorer e Opera não conseguiram capturar o áudio dos
microfones, como relatado pela pesquisa anterior. No quesito qualidade na captura de áudio
não houve diferença: tanto com a placa de som onboard do computador quanto com a
interface de som offboard o resultado foi satisfatório. O mesmo se aplica nos dois microfones
testados.
Na última tarefa da Etapa 1, houve a definição dos frameworks e plug-ins que
seriam utilizado no desenvolvimento. Os principais encontrados foram: jQuery, Bootstrap e
Font Awesome.
 jQuery:
“jQuery é uma biblioteca JavaScript cross-browser desenvolvida para simplificar
os scripts client side que interagem com o HTML. Ela foi lançada em dezembro de 2006 no
BarCamp de Nova York por John Resig. Usada por cerca de 77% dos 10 mil sites mais
visitados do mundo, jQuery é a mais popular das bibliotecas JavaScript” (WIKIPEDIA,
2014).
Além disto, jQuery possui compatibilidade com diversos navegadores:
FIGURA 6 - jQuery - compatibilidade entre navegadores.
Fonte: jQuery – site oficial 6
 Bootstrap:
Bootstrap é um framework para se utilizar no frontend de um projeto e visa
facilitar o desenvolvimento e manutenção do mesmo, através da do reaproveitamento dos
códigos. Criado por Mark Otto e Jacob Thornton (engenheiros do Twitter), ele é capaz de
fornecer uma série de componentes, como:
 Estrutura HTML com suporte a design responsivo;
 Pacotes de ícones básicos;
 Menus em cascata;
6
Disponível em http://jquery.com/browser-support. Acesso em jun 2014.
44
 Outros diversos plug-ins escritos em Javascript.
 Font Awesome:
Font Awesome é um pacote de ícones vetoriais para se utilizar em websites.
Através do uso de CSS, é possível alterar seu tamanho, cor, sombra e quaisquer outras técnica
de estilização de fontes.
FIGURA 7 - Exemplo de ícones - Font Awesome.
Fonte: O autor (2014)
Após o término da primeira etapa, com a atualização do cronograma geramos o
seguinte gráfico de Gantt:
GRÁFICO 2 - Gráfico de Gantt – Término da Etapa 1.
Fonte: O autor (2014)
45
5.1.2 Etapa 2 – Desenvolvimento Backend
A primeira tarefa desta etapa refere-se a escolha das linguagens de programação e
frameworks utilizados para o início do desenvolvimento. As escolhas da equipe do projeto
foram:
 PHP;
 MySQL;
 Javascript;
 CSS;
 CodeIgniter.
PHP
O PHP é uma linguagem de programação server-side, ou seja, ele é executado no
lado do servidor. O cliente recebe apenas o conteúdo que é processado pelo servidor, não
podendo visualizar o código fonte desta maneira.
Ele é suportado pela maioria dos servidores webs existentes hoje, e tem suporte a
uma ampla variedade de banco de dados.
MySQL
O MySQL é um dos sistemas gerenciadores de bancos de dados (SGBD) open
sources mais populares em uso atualmente. Sua linguagem é o SQL.
Sua popularidade deve-se ao fato da sua fácil integração com o PHP.
Javascript
Javascript é uma linguagem de programação interpretada e client-side (executada
no navegador do cliente). É considerada leve por causa deste fato. É uma linguagem baseada
em objetos, porém, a tipagem de suas variáveis são dinâmicas e não há distinção entre funções
e métodos.
CSS
46
“Cascading Style Sheets (ou simplesmente CSS) é uma linguagem de folhas de
estilo utilizada para definir a apresentação de documentos escritos em uma linguagem de
marcação, como HTML ou XML. Seu principal benefício é prover a separação entre o
formato e o conteúdo de um documento” (WIKIPEDIA, 2014).
O CSS está em fase de padronização e hoje está no seu terceiro estágio, também
chamado de CSS3.
CodeIgniter
CodeIgniter é um framework para desenvolvimento de projetos em linguagem de
programação PHP. Ele é gratuito, leve, rápido, possui várias bibliotecas e utiliza MVC
(modelo, visão, controle), facilitando e auxiliando na criação e manutenção do código fonte.
 Model (modelo): comunicação com o banco de dados, através das
operações CRUD (create, read, update e delete);
 View (visão): a parte visível das páginas para o usuário, o código HTML;
 Controller (controle): é o elo de comunicação entre o modelo e a visão. É
aqui que ficará armazenada toda a lógica da aplicação.
Para iniciar o desenvolvimento, temos de levar em consideração que o sistema de
sessão do CodeIgniter também utiliza o banco de dados. Nossa modelagem foi feita através do
programa MySQL Workbench. A tabela referente as sessões abertas no CodeIgniter ficou
assim:
FIGURA 8 - Banco de dados - Tabela de sessão (CodeIgniter)
Fonte: O autor (2014)
Criada a tabela das sessões, podemos iniciar o desenvolvimento do login no
sistema administrativo. A primeira parte a ser realizada foi o formulário a ser preenchido,
conforme FIGURA 9:
47
FIGURA 9 - Formulário de login.
Fonte: O autor (2014)
Para que a autenticação ocorra, o e-mail informado necessita ser válido. Esta
autenticação é feita através do plug-in jQuery Validate. Além disto, e-mail e senha
informados devem estar previamente cadastrado na tabela “usuario” do banco de dados:
FIGURA 10 - Banco de dados - tabela de usuários.
Fonte: O autor (2014)
Caso os dados não sejam validados, uma mensagem de erro aparecerá para o
usuário. Caso contrário, ele será redirecionado para a tela inicial da administração.
48
FIGURA 11 - Tela inicial da administração.
Fonte: O autor (2014)
Como demonstra a FIGURA 11, a esquerda temos todos os módulos disponíveis,
e ao canto superior direito temos o nome do usuário que fez a autenticação. Clicando nos
módulos, o usuário será redirecionado para a página principal do módulo selecionado.
Clicando no seu próprio nome, ele será redirecionado para a tela de alteração de perfil, como
mostram as próximas figuras:
FIGURA 12 - Alteração do perfil.
Fonte: O autor (2014)
FIGURA 13 - Alteração da senha.
Fonte: O autor (2014)
49
Após clicar em finalizar, os dados serão alterados. Caso os campos referentes a
alteração de senha forem preenchidos, a senha também será alterada (caso a senha atual tenha
sido digitado corretamente).
Categorias
O primeiro módulo listado é o de categorias de músicas que serão disponibilizadas
no site. Ao acessá-lo, você será redirecionado para a página inicial do módulo:
FIGURA 14 - Módulo "Categorias".
Fonte: O autor (2014)
Como podemos ver, a tela inicial do módulo é a lista de registros já inseridos.
Clicando em “Excluir”, uma confirmação será exigida para que a exclusão seja efetuada. Ao
clicar em “Alterar”, o usuário será redirecionado para o mesmo formulário da ação
“Adicionar”, porém, já virá preenchido:
FIGURA 15 - Módulo "Categorias" – formulário.
Fonte: O autor (2014)
Os registros inseridos neste módulo ficam organizados da seguinte maneira no
banco de dados:
50
FIGURA 16 - Banco de dados - tabela de categorias.
Fonte: O autor (2014)
Artistas
Entrando no módulo artistas, o usuário visualizará a seguinte tela:
FIGURA 17 - Módulo "Artistas".
Fonte: O autor (2014)
Como podemos ver, a tela inicial do módulo é a lista de registros já inseridos.
Clicando em “Excluir”, uma confirmação será exigida para que a exclusão seja efetuada. Ao
clicar em “Alterar”, o usuário será redirecionado para o mesmo formulário da ação
“Adicionar”, porém, já virá preenchido:
51
FIGURA 18 - Módulo "Artistas" – formulário.
Fonte: O autor (2014)
Os registros inseridos neste módulo ficam organizados da seguinte maneira no
banco de dados:
FIGURA 19 - Banco de dados - tabela de artistas.
Fonte: O autor (2014)
Músicas
Ao entrar no módulo “Músicas”, o usuário visualizará a seguinte tela:
FIGURA 20 - Módulo "Músicas".
Fonte: O autor (2014)
52
Como podemos ver, a tela inicial do módulo é a lista de registros já inseridos.
Clicando em “Excluir”, uma confirmação será exigida para que a exclusão seja efetuada. Ao
clicar em “Alterar”, o usuário será redirecionado para o mesmo formulário da ação
“Adicionar”, porém, já virá preenchido:
FIGURA 21 - Módulo "Músicas" – formulário.
Fonte: O autor (2014)
Os registros inseridos neste módulo ficam organizados da seguinte maneira no
banco de dados:
FIGURA 22 - Banco de dados - tabela de músicas.
Fonte: O autor (2014)
53
Na lista de músicas inseridas, ao clicar em “Acordes” o usuário será redirecionado
para a tela de gerenciamento de troca de acordes (notas), que será a base que o sistema de
pontuação utilizará para verificar se o usuário está cantando corretamente ou não. Veja:
FIGURA 23 - Módulo "Músicas" - gerenciamento de acordes.
Fonte: O autor (2014)
Os acordes inseridos na música ficam organizados da seguinte maneira no banco
de dados:
FIGURA 24 - Banco de dados - tabela de acordes.
Fonte: O autor (2014)
Ainda na lista de músicas cadastradas, ao clicar em “Textos”, o usuário será
redirecionado para a tela de gerenciamento dos textos que aparecerão no decorrer da música,
que neste caso será utilizado para exibir a letra a ser cantada:
54
FIGURA 25 - Módulo "Músicas" - gerenciamento de textos.
Fonte: O autor (2014)
Os textos inseridos na música ficam organizados da seguinte maneira no banco de
dados:
FIGURA 26 - Banco de dados - tabela de textos.
Fonte: O autor (2014)
Além destas opções, aproveitamos para modelar a tabela que será utilizada na
pontuação dos jogadores:
55
FIGURA 27 - Banco de dados - tabela de ranking de jogadores.
Fonte: O autor (2014)
Configurações
Neste módulo, serão feitas todas as configurações referentes ao site. O formulário
está dividido em três etapas:
FIGURA 28 - Módulo "Configurações" – geral.
Fonte: O autor (2014)
FIGURA 29 - Módulo "Configurações" - mídias sociais.
Fonte: O autor (2014)
56
FIGURA 30 - Módulo "Configurações" - e-mail.
Fonte: O autor (2014)
Na primeira tela, é feita a configuração geral do site: informações que são visíveis
aos usuários que o visitam.
Na segunda tela, temos a configuração das redes sociais. Aqui, devemos colocar o
nome de usuário nas redes sociais disponíveis, além do ID do APP no Facebook e seus
respectivos administradores. Desta maneira, quando um link do site for compartilhado,
aparecerá o nome do aplicativo no Facebook.
Na terceira tela é feita a configuração para que o site consiga enviar e-mails
autenticando em um servidor SMTP, evitando que se tenha problemas ao receber os e-mails
enviados através do formulário de contato.
Usuários
Módulo utilizado para gerenciar os usuários que tem acesso a administração. O
formulário utilizado para adicionar novos usuários e alterar usuários já existentes é o mesmo
formulário utilizado para atualização do perfil, assim como a tabela no banco de dados é a
mesma. Ao acessar o módulo usuários, a tela inicial será:
FIGURA 31 - Módulo "Usuários".
Fonte: O autor (2014)
57
Com isto, a segunda etapa é finalizada. Atualizando o cronograma do projeto, o
seguinte gráfico de Gantt foi gerado:
GRÁFICO 3 - Gráfico de Gantt – Término da Etapa 2.
Fonte: O autor (2014)
5.1.3 Etapa 3 – Desenvolvimento Frontend
Esta etapa refere-se a elaboração do layout do site, e, foi relativamente rápida em
relação ao que havia sido previsto inicialmente. Através da utilização do Bootstrap, foi
possível desenvolver o layout rapidamente.
As telas visam um fácil entendimento e navegabilidade dentro do site. Com
apenas um clique é possível executar a ação desejada pelo usuário:
 Voltar a página inicial;
 Lista de músicas por artista;
 Lista de músicas por categoria;
 Lista de todas as músicas;
 Jogar;
 Formulário de contato.
58
A estrutura HTML do site é baseada no sistema de grid de 12 colunas responsivas
do próprio Bootstrap. Conforme a largura da tela (diferentes viewports), as colunas ajustam-se
ao tamanho da tela.
FIGURA 32 - Bootstrap - Sistema de grid.
Fonte: Bootstrap 7
Veja uma simples demonstração a seguir:
FIGURA 33 - Bootstrap - Demonstração do sistema de grid.
Fonte: Bootstrap 8
O esquema de cores definido pela equipe foi a utilização de cores neutras. Para
jogar, basta clicar em alguma música. Caso o usuário clique em um artista ou categoria, será
redirecionado para a lista de músicas do respectivo item selecionado.
7
Disponível em http://getbootstrap.com/css/#grid. Acesso em ago 2014.
8
Disponível em http://getbootstrap.com/css/#grid-example-basic. Acesso em ago 2014.
59
FIGURA 34 - Layout
Fonte: O autor (2014)
Jogo
Ao selecionar uma música, o usuário será redirecionado para a tela de jogo:
60
FIGURA 35 - Tela de jogo
Fonte: O autor (2014)
Como podemos perceber, inicialmente a pontuação está desativada. Devido a
questões de segurança, o navegador irá solicitar se o usuário deseja ou não permitir que o
áudio seja capturado, como demonstra a imagem abaixo:
FIGURA 36 - Jogo - permissão do navegador
Fonte: O autor (2014)
Negando esta permissão ou iniciando o jogo sem ela, o usuário poderá jogar
normalmente, porém, o sistema de pontuação ficará desativado e o usuário não poderá
compartilhar a sua pontuação.
Para iniciar o jogo basta selecionar o nível de dificuldade desejado e após isso
clicar em “Iniciar”.
61
FIGURA 37 - Durante o jogo
Fonte: O autor (2014)
O sistema do jogo foi desenvolvido em Javascript e jQuery. Ao clicar em
“Iniciar”, é salvo em uma variável local a data em que o jogo começou. Através de uma
função recursiva o sistema verifica qual texto deverá ser exibido, qual será o próximo acorde
e se deverá trocar a cor do background através da verificação do tempo de execução da
música (subtraindo da data atual a data de início do jogo).
Para que o usuário pontue, é necessário que ele cante adequadamente em cima do
acorde que está sendo tocado pelo playback da música. Para isto, utilizaremos de referência a
teoria musical. Um acorde é formado por três notas:
 Fundamental (que dá nome ao acorde);
 3ª maior ou menor;
 5ª justa.
Como exemplo, utilizaremos a escala de Dó Maior. A escala maior é formada
pelos seguintes intervalos: Fundamental, 2ª maior, 3ª maior, 4ª justa, 5ª justa, 6ª maior, 7ª
maior, 8ª justa.
62
FIGURA 38 - Escala de dó maior.
Fonte: Wikiversidade 9
Neste caso, o acorde de Dó Maior seria formado por Dó (fundamental), Mi (3ª
maior) e Sol (5ª justa). Quando a música tocar este acorde, o usuário deverá cantar uma destas
três notas para pontuar no jogo.
O nível de dificuldade escolhido está diretamente ligado a estas notas. São raros
os casos de que alguém cantará exatamente a nota necessária, ou seja, há um percentual de
desafinação. Os níveis de dificuldade foram definidos da seguinte maneira pela equipe:
 Cantor de chuveiro – o usuário pontuará com até 90% de desafinação;
 Amador – o usuário pontuará com até 40% de desafinação;
 Profissional – o usuário pontuará com até 10% de desafinação.
Durante a execução da música deverão ocorrer várias trocas de acordes (de
milissegundos em milissegundos) e o usuário deverá ficar atento a este fato para conseguir
uma melhor pontuação.
Após o término da música, será exibida a pontuação que o usuário atingiu, assim
como um botão para que ele insira seu nome para cadastrar-se no ranking de jogadores. Após
o registro, ele poderá compartilhar o resultado no Facebook, como demonstram as imagens
abaixo:
9
Disponível em http://pt.wikiversity.org/wiki/Teoria_musical. Acesso em set 2014.
63
FIGURA 39 - Término do jogo.
Fonte: O autor (2014)
FIGURA 40 - Registrar a pontuação
Fonte: O autor (2014)
Após efetuar o registro, o botão será substituído pelo botão de compartilhar do
Facebook:
64
FIGURA 41 - Término do registro.
Fonte: O autor (2014)
Clicando em compartilhar, uma janela do próprio Facebook será aberta e o
usuário poderá postar a pontuação alcançada na sua linha do tempo:
FIGURA 42 - Compartilhando pontuação no Facebook.
Fonte: O autor (2014)
65
FIGURA 43 - Linha do tempo no Facebook.
Fonte: O autor (2014)
Além de poder compartilhar nas redes sociais, a pontuação do usuário também
poderá ficar salva na tabela de melhores colocados, veja:
FIGURA 44 - Melhores colocados.
Fonte: O autor (2014)
66
Ao término desta etapa, temos a seguinte atualização de cronograma e gráfico de
Gantt:
GRÁFICO 4 - Gráfico de Gantt – Término da Etapa 3.
Fonte: O autor (2014)
5.1.4 Etapa 4 – Testes
A quarta e última etapa do projeto refere-se aos testes utilizando o sistema de
pontuação e a integração com as mídias sociais. Como detectado previamente nas etapas
anteriores, os navegadores Internet Explorer e Safari (versão 5.1 ou inferior) não possuem
compatibilidade com o Web Áudio, então nosso game também não será suportado por eles.
Nos primeiros testes realizados, constatamos que em algumas ocasiões legendas e
acordes não estavam sincronizados corretamente com a música. Conseguimos contornar este
problema habilitando o botão de iniciar o jogo apenas depois da música ter carregado
totalmente no navegador. Após esta correção, o algoritmo de pontuação funcionou como
planejado.
Sobre a integração com as redes sociais, encontramos um único problema: ao
compartilhar a pontuação, aparecia a mensagem “via Widget Share Log App”. O problema foi
resolvido após criarmos um aplicativo no próprio Facebook e também adicionarmos a sua
integração no código fonte do site.
67
Os testes foram feitos em todos os outros navegadores atualizados em suas
últimas versões, sendo elas:
 Google Chrome: 37.0.2062.124
 Mozilla Firefox: 32.0.3
 Opera: 24.0.1558.64
Não conseguimos acesso a nenhum computador com Mac OS para testar o game
nas versões mais recentes do Safari.
Finalizando a última etapa, temos o seguinte gráfico de Gantt:
GRÁFICO 5 - Gráfico de Gantt – Término da Etapa 4.
Fonte: O autor (2014)
5.2 VERIFICAÇÃO DE ÍNDICES DE DESEMPENHO
De acordo com DUTRA (2007), uma revisão do projeto deve ser realizada a cada
término de etapa a fim de analisar os resultados obtidos e replanejar o projeto caso houver a
necessidade. Seguindo este modelo, elaboramos o QUADRO 8, com especificação detalhada
de cada etapa:
68
Indicadores de desempenho
Etapa 1 – Pesquisa
Cronograma: Projeto está adiantado.
Orçamento: Orçamento não foi violado.
Tecnologia: Os equipamentos adquiridos foram capazes
de suprir todas as necessidades desta etapa.
Etapa 2 – Desenvolvimento backend
Cronograma: Projeto está adiantado. Leve atraso no
desenvolvimento da intranet base, mas foi
compensado com a agilização das outras
tarefas.
Orçamento: Orçamento não foi violado.
Tecnologia: Linguagens de programação e frameworks
escolhidos deram um desempenho
satisfatório.
Etapa 3 – Desenvolvimento frontend
Cronograma: Projeto está adiantado.
Orçamento: Orçamento não foi violado.
Tecnologia: As tecnologias selecionadas previamente
ajudaram na aceleração do desenvolvimento
do projeto.
Etapa 4 - Testes
Cronograma: Projeto está adiantado.
Orçamento: Orçamento não foi violado.
Tecnologia: As tecnologias selecionadas previamente
ajudaram na aceleração do desenvolvimento
do projeto.
QUADRO 8 - Indicadores de desempenho.
Fonte: Adaptado (DUTRA, 2007 apud MENEZES, 2001)
69
5.3 AJUSTES / MODIFICAÇÕES DE PROJETO
Durante a fase de desenvolvimento e testes, várias alterações foram feitas visando
aprimoramentos na forma de jogar e também servindo de correções para bugs não previstos
anteriormente.
Além das correções citadas no relatório de acompanhamento da última etapa, a
principal alteração feita refere-se ao uso das funções setTimeout e setInterval do próprio
Javascript. Ambas não foram capazes de prover um desempenho satisfatório na hora de tornar
a função principal do game recursiva.
Através delas, mesmo chamando a função com um milisegundo de atraso, o
processamento levava mais de cinco milisegundos para acontecer, o que acarretava em atrasos
na exibição de legendas e trocas de acordes. A solução encontrada foi um uma implementação
cross-broswer da API setImmediate (proposta pela Microsoft para executar funções de
maneira assíncrona e diminuir a carga de recursos consumidas pelo navegador).
A última modificação importante foi no sistema de pontuação: inicialmente, havia
planejado o usuário começar o jogo com cinquenta pontos e atingir no máximo cem pontos.
Conforme a música fosse tocando a pontuação iria decaindo, desta maneira, caso o usuário
permanecesse em silêncio a sua pontuação final seria zero.
O sistema de pontuação final foi simplificado: a pontuação inicia em zero e vai
aumentando gradativamente as notas emitidas corretamente. Ao remover este limite de
pontuação, no ponto de vista da equipe do projeto, a competição entre os jogadores será
infinita. Sempre haverá disputa pela maior pontuação.
5.4 PROTÓTIPO DO PROJETO
Na visão da equipe, a prototipagem foi uma etapa muito importante. Foi a partir
dela que conseguimos identificar e melhorar o desenvolvimento em vários pontos críticos no
decorrer do projeto.
A técnica escolhida pela equipe e que melhor se adaptou no desenvolvimento foi a
técnica de prototipagem evolutiva: conforme fomos desenvolvendo, fomos implementando as
alterações ao protótipo online.
70
Apesar de termos demorado mais no desenvolvimento e implementação,
acabamos ganhando mais tempo prevendo e contornando algumas situações que poderiam ser
catastróficas para a finalização do projeto.
5.5 PROJETO PILOTO
O projeto piloto se encontra disponível no link http://karaokeweb-
lippep.rhcloud.com/ e o jogo pode ser testado em qualquer computador, desde que se utilize
um navegador com suporte ao web áudio.
Para acessar o sistema administrativo, o seguinte endereço deve ser acessado:
http://karaokeweb-lippep.rhcloud.com/sysadmin. A fins de demonstração, o usuário para
acesso é “felippe@dblinks.com.br” e a senha “123456”, ambos sem as aspas.
71
6 ENCERRAMENTO DO PROJETO
Para encerramento do projeto apresenta-se a validação, a apresentação final e os
resultados medidos.
6.1 VALIDAÇÃO DO PROJETO
A validação do projeto foi realizada em três etapas. Na primeira delas, o objetivo
era a otimização do carregamento do site. Para isto, foi necessária a utilização de duas
ferramentas:
 JS CSS Minify Compress: plug-in disponível para instalação na própria
IDE utilizada para o desenvolvimento do projeto (Netbeans IDE 7.4). Com
ele, comprimimos todo o CSS e JS utilizados no site, diminuindo assim o
tamanho de cada arquivo.
 PageSpeed: extensão do navegador Google Chrome, fornecida pela
própria Google. Através dela, foi possível mensurar e otimizar scripts e
imagens que poderiam acarretar em um carregamento mais lento do site.
Na segunda etapa, foi estipulado a validação do código HTML de acordo com as
normas estabelecidas pela W3C. Para isto, foi utilizado uma ferramenta disponibilizada por
eles: W3C Markup Validation Service, disponível em http://validator.w3.org/.
Na terceira e última etapa, decidimos elaborar um questionário de avaliação de
usabilidade incluso no próprio site. O questionário visa obter o feedback e o índice de
aceitação dos usuários que utilizaram o sistema, e pode ser acessado através do menu ou ao
terminar uma música. Além das perguntas visíveis, alguns dados referentes ao sistema
operacional e navegador utilizados também são enviados.
72
FIGURA 45 - Questionário de avaliação de usabilidade.
Fonte: O autor (2014)
As opções disponíveis para as questões referente ao layout, facilidade de uso,
carregamento do site, jogabilidade e sincronismo entre áudio e legenda eram:
 Excelente;
 Bom;
 Regular;
 Ruim;
 Péssimo.
As opções disponíveis para a largura de banda de conexão eram:
 Abaixo de 1MBps;
 Entre 1MBps e 2MBps;
 Entre 2MBps e 4MBps;
 Entre 5MBps e 10MBps;
 Acima de 10MBps.
73
6.2 ENTREGA / APRESENTAÇÃO FINAL
O projeto encontra-se disponível através do link http://karaokeweb-
lippep.rhcloud.com/ e foi compartilhado através das redes sociais para que o maior número
possível de pessoas pudessem testar.
O feedback agradou a equipe do projeto, pois houve um grande número de
pessoas que testaram este browser game e nos mandaram mensagens através das redes sociais.
Apesar disto, o percentual de pessoas que responderam o questionário foi baixo em relação ao
total de pessoas que jogaram, e menor ainda os que utilizaram o sistema de pontuação.
O acesso ao sistema administrativo permaneceu confidencial, pois não há a
necessidade de termos um feedback sobre o gerenciamento do projeto.
6.3 MEDIÇÃO DOS RESULTADOS
Os resultados obtidos após aplicação dos índices de avaliação foram excelentes.
Utilizamos as mesmas ferramentas para comparação do projeto com um dos sites mais
visitados atualmente no Brasil, a UOL.
Através do PageSpeed Insights10
, conseguimos uma pontuação de 92 (de um
máximo de 100), enquanto a UOL tem uma pontuação de 81. Veja:
FIGURA 46 - PageSpeed - Karaokê Web.
Fonte: PageSpeed Insights 11
10
Disponível em https://developers.google.com/speed/pagespeed/insights. Acesso em out 2014.
11
Disponível em https://developers.google.com/speed/pagespeed/insights/?url=karaokeweb-
lippep.rhcloud.com. Acesso em out 2014.
74
FIGURA 47 - PageSpeed - UOL.
Fonte: PageSpeed Insights 12
Utilizamos outra ferramenta para verificarmos quanto tempo cada site demorava
para carregar, e os índices foram ainda melhores: Karaokê Web teve mais que o dobro de
velocidade para abrir do que o site comparado.
FIGURA 48 – WebPage Test - Karaokê Web.
Fonte: WebPage Test 13
12
Disponível em https://developers.google.com/speed/pagespeed/insights/?url=uol.com.br. Acesso em out
2014.
13
Disponível em http://www.webpagetest.org/result/141007_B2_10T0/. Acesso em out 2014.
75
FIGURA 49 - WebPage Test – UOL.
Fonte: WebPage Test 14
De acordo com o validador da W3C, nosso projeto também está de acordo com as
normas e regras estabelecidas:
FIGURA 50 - Validação HTML - W3C.
Fonte: W3C Markup Validation Service 15
Através do formulário de avaliação de usabilidade, conseguimos os seguintes
resultados:
Avaliação de Usabilidade
Número de respostas obtidas: 10
Pergunta Respostas Percentual
Layout Excelente – 3
Bom – 6
Regular – 1
Ruim – 0
Péssimo – 0
Excelente – 30%
Bom – 60%
Regular – 10%
Ruim – 0%
Péssimo – 0%
Facilidade de Uso Excelente – 5
Bom – 4
Regular – 1
Ruim – 0
Péssimo – 0
Excelente – 50%
Bom – 40%
Regular – 10%
Ruim – 0%
Péssimo – 0%
14
Disponível em http://www.webpagetest.org/result/141007_XM_10NV/. Acesso em out 2014.
15
Disponível em http://validator.w3.org/check?uri=http%3A%2F%2Fkaraokeweb-
lippep.rhcloud.com%2F&charset=%28detect+automatically%29&doctype=Inline&group=0. Acesso em out
2014.
76
Carregamento do Site: Excelente – 7
Bom – 2
Regular – 1
Ruim – 0
Péssimo – 0
Excelente – 70%
Bom – 20%
Regular – 10%
Ruim – 0%
Péssimo – 0%
Sua Conexão: Abaixo de 1MBps – 0
Entre 1MBps e 2MBps – 2
Entre 2MBps e 5MBps – 7
Entre 5MBps e 10MBps – 1
Acima de 10MBps – 0
Abaixo de 1MBps – 0%
Entre 1MBps e 2MBps – 20%
Entre 2MBps e 5MBps – 70%
Entre 5MBps e 10MBps – 10%
Acima de 10MBps – 0%
Jogabilidade Excelente – 8
Bom – 2
Regular – 0
Ruim – 0
Péssimo – 0
Excelente – 80%
Bom – 20%
Regular – 0%
Ruim – 0%
Péssimo – 0%
Utilizou sistema de
pontuação
Sim – 4
Não - 6
Sim – 40%
Não – 60%
Sincronismo entre áudio e
legenda
Excelente – 8
Bom –1
Regular – 1
Ruim – 0
Péssimo – 0
Excelente – 80%
Bom – 10%
Regular – 10%
Ruim – 0%
Péssimo – 0%
Jogará mais vezes Sim – 10
Não - 0
Sim – 100%
Não – 0%
QUADRO 9 - Respostas obtidas na avaliação de usabilidade.
Fonte: O autor (2014)
Podemos notar um índice satisfatório de aprovação do projeto. Porém, poucas
foram as pessoas que utilizaram o sistema de pontuação, e apenas duas registraram a sua
pontuação no ranking do site. Algumas alegaram não possuir microfone na hora do teste.
Além disto, capturamos os seguintes dados referentes ao navegador e sistema
operacional utilizados por estas pessoas:
77
Avaliação de Usabilidade – Navegadores e Sistemas Operacionais
User Agent Browser Plataform
Mozilla/5.0 (Windows NT
6.1; WOW64)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/37.0.2062.124
Safari/537.36
Chrome Unknown Windows OS
Mozilla/5.0 (Windows NT
6.3; WOW64; rv:32.0)
Gecko/20100101
Firefox/32.0
Firefox Unknown Windows OS
Mozilla/5.0 (Windows NT
6.1; WOW64)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/37.0.2062.124
Safari/537.36
Chrome Unknown Windows OS
Mozilla/5.0 (Windows NT
6.1; WOW64)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/37.0.2062.124
Safari/537.36
Chrome Unknown Windows OS
Mozilla/5.0 (Windows NT
6.3; WOW64; rv:32.0)
Gecko/20100101
Firefox/32.0
Firefox Unknown Windows OS
Mozilla/5.0 (Macintosh;
Intel Mac OS X 10_9_5)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/39.0.2166.2
Chrome Mac OS X
78
Safari/537.36
Mozilla/5.0 (Macintosh;
Intel Mac OS X 10_9_5)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/39.0.2166.2
Safari/537.36
Chrome Mac OS X
Mozilla/5.0 (Macintosh;
Intel Mac OS X 10_9_5)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/39.0.2166.2
Safari/537.36
Chrome Mac OS X
Mozilla/5.0 (Windows NT
5.1) AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/37.0.2062.124
Safari/537.36
Chrome Windows XP
Mozilla/5.0 (Windows NT
6.3; WOW64)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/37.0.2062.124
Safari/537.36
Chrome Unknown Windows OS
QUADRO 10 - Navegador e SO utilizados pelas pessoas que responderam a avaliação de usabilidade.
Fonte: O autor (2014)
Como podemos perceber, todos os navegadores utilizados estão atualizados a
ponto de possuírem suporte ao web áudio. O Google Chrome tem um índice esmagador de
utilizadores, cerca de 80%. Mesmo as pessoas com Mac OS utilizaram o navegador da
Google ao invés do navegador nativo do sistema operacional (Safari).
79
7 CONSIDERAÇÕES FINAIS
As considerações finais abordam a melhoria do processo de desenvolvimento do
projeto em si, documentando e analisando pontos cruciais da memória do projeto. Aqui, foi
registrado a opinião pessoal de cada membro da equipe, conforme modelo de formulário
proposto por (DUTRA, 2007).
Lições Aprendidas
Título do Projeto: Desenvolvimento de Karaokê Web com conceitos de Gamificação
Data de Início do Projeto: 01/03/2014
Data de Entrega de Projeto: 24/10/2014
Seu nome: Felippe Rodrigo Puhle
Sua função no projeto: Gestor e desenvolvedor
Em sua opinião, cite três itens que mais
contribuíram para que o sucesso no
projeto pudesse ser obtido.
 Comprometimento da equipe;
 Conhecimento nas linguagens de programação
utilizadas;
 Aquisição de equipamentos necessário para o
desenvolvimento.
Em sua opinião, quais os três itens que
contribuíram para que o projeto falhasse e
o que pode ser feito para evitar/prevenir
isto em projetos futuros?
 Mal planejamento do projeto;
 Falta de tempo para desenvolvimento;
 Incompatibilidade do karaokê com
navegadores;
Devido à falta de experiência do gestor, o tempo de
desenvolvimento do projeto era bem menor do que
o previsto. Um gestor com maior experiência e uma
equipe maior (agregando maior conhecimento)
ajudaria a solucionar os problemas.
Identifique os obstáculos críticos ou
ponto chave que impediram o
desenvolvimento e o progresso do
projeto.
Como a equipe era composta por apenas uma
pessoa, as tarefas tiveram de ser desenvolvidas
consecutivamente. Com uma equipe maior, várias
tarefas poderiam ser feitas simultaneamente, e
alguns obstáculos poderiam ser contornados de
maneira mais rápida devido à variedade de
conhecimentos que seriam agregados desde a etapa
de planejamento do projeto.
80
Identifique os fatores críticos que
geraram um desvio significativo na
equipe:
As funções nativas de timeout do Javascript não
foram capazes de prover o desempenho necessário
para as funções recursivas do jogo. Foram feitos
diversos testes até chegarmos a uma solução.
Baseado em sua experiência neste
projeto, quais seriam as três
recomendações que você faria para uma
próxima equipe de projeto?
 Planejar o projeto mais detalhadamente, de
maneira a conseguir mensurar melhor custos e
tempo para desenvolvimento;
 Compor a equipe com um número maior de
membros, de maneira que o conhecimento de
cada pessoa agregue valor ao projeto;
 Explorar outras linguagens de programação,
com recursos melhores ao tratamento do áudio.
Identifique pontos positivos no processo
de desenvolvimento do seu projeto:
Apesar do tempo de planejamento de cada tarefa ter
sido mensurado errado, a sequência e ordem de
elaboração e desenvolvimento facilitaram as
próximas etapas.
Identifique oportunidades de melhoria no
processo de desenvolvimento do seu
projeto:
Com uma equipe maior, o planejamento do projeto
seria diferente. A equipe poderia ser dividida em
equipes menores, e as etapas e tarefas divididas de
maneira que pudessem ser feitas de maneira
simultânea, onde cada equipe seria responsável
pelas tarefas correspondentes ao ponto forte dos
seus integrantes.
Novas Ideias e Oportunidades
Perspectivas Futuras
Adição de novos recursos ao jogo e aprimoramento da interface, visando atingir um maior
número de jogadores.
Além disto, deverão ser feitas melhorias na administração do site, de maneira que o cadastro de
músicas se torne fácil e intuitivo.
Outras informações relevantes
QUADRO 11 - Formulário de Lições Aprendidas.
Fonte: Adaptado (DUTRA, 2007)
81
7.1 LIÇÕES APRENDIDAS
Chegando ao fim do projeto, podemos perceber que o total sucesso do seu
desenvolvimento se deve aos conteúdos e propostas sugeridos por (DUTRA, 2007) e
(FACCIONI, 2006).
Através destes, foi possível manter o projeto rigorosamente em dia, através de
técnicas de controle e previsão de acontecimentos que poderiam atrasar sua entrega ou até
mesmo o seu cancelamento.
Um dos fatos a ser citado aqui é a utilização de funções recursivas. No
desenvolvimento de games, este tipo de função é comum. A recursividade trata de uma
função chamar a ela mesmo no término da sua execução. Porém, cuidados devem ser tomados
para não cair em um loop infinito.
Podemos destacar também o aprendizado adquirido no trabalho com a API do
web áudio. Através dela, a equipe pode desenvolver a lógica necessária para o
desenvolvimento da interface e funcionamento de um jogo.
7.2 NOVAS IDEIAS E OPORTUNIDADES
O projeto não deve parar por aí. Novas ideias já estão em etapa de planejamento e
pesquisa para futuros aprimoramentos e correções.
A primeira delas refere-se a integração de uma nova linguagem de programação
para o tratamento do áudio no momento do cadastro de uma nova música. Hoje, os
administradores do sistema precisam cadastrar manualmente as trocas de acordes (de
milissegundos em milissegundos), e isto é um processo trabalhoso. Através de algumas
pesquisas iniciais, encontramos algumas bibliotecas para tratamento de áudio nas linguagens
de programação Java e Python.
A segunda ideia refere-se ao tratamento de tempo durante o jogo. Hoje,
trabalhamos com a verificação do tempo de execução através de milissegundos de diferença
do início do jogo. Futuramente, pretendemos trabalhar com a noção de compassos e bpm
(batidas por minutos). Assim poderemos aprimorar o sistema de pontuação, cadastrando
exatamente qual nota o usuário deverá emitir para que pontue no jogo (diferentemente de
hoje, que pode ser cantado as três notas do acorde).
82
Terminando a divisão em compassos e cadastrando devidamente as notas emitidas
pelo usuário, tentaremos tornar o jogo multiplayer da seguinte maneira:
 Cadastrar segunda e terceira voz (vocais de apoio);
 Adição de outros instrumentos, jogando através do teclado ou de algum
equipamento que forneça suporte ao mapeamento midi.
A opção multiplayer fará com que o nível de dificuldade aumente, pois todos os
usuários deverão jogar em sincronia, porém, uma correta execução de todos fará com que a
pontuação atinja níveis não alcançados jogando sozinho.
Todas estas ideias deverão ser testadas cuidadosamente a fim de sabermos suas
viabilidades. Além disto, o aprimoramento do layout é um fator crucial para tornar o site mais
atrativo e conhecido pelo público alvo.
83
REFERÊNCIAS
BOOTSTRAP. Disponível em: <http://getbootstrap.com/>. Acesso em 25 jun 2014.
CAN I USE. Web Audio API. Disponível em: <http://caniuse.com/#feat=audio-api>. Acesso
em 05 jun 2014.
CODEIGNITER. Disponível em: <https://ellislab.com/codeigniter>. Acesso em 02 jul 2014.
DUTRA, Cynthia Beatriz Scheffer. Projeto Integrador Web (I e II). 3 ed. Palhoça:
UnisulVirtual, 2007.
FACCIONI FILHO, Mauro. Gestão de projetos e de equipes. 4 ed. Palhoça: UnisulVirtual,
2011.
FONT AWESOME. Disponível em: <http://fontawesome.io/>. Acesso em 26 jun 2014.
GITHUB. YuzuJS / setImmediate. Disponível em:
<https://github.com/YuzuJS/setImmediate>. Acesso em 18 set 2014.
GOOGLE. Site de buscas. Disponível em: <http://www.google.com.br>. Acesso em: 07 mar.
2014.
JQUERY. Disponível em: <http://jquery.com/>. Acesso em 23 jun 2014.
MACHADO, Pedro. Mercado de games movimenta US$ 2,63 bilhões no País e pode crescer
ainda mais. Disponível em:
<http://anoticia.clicrbs.com.br/sc/economia/negocios/noticia/2014/03/mercado-de-games-
movimenta-us-2-63-bilhoes-no-pais-e-pode-crescer-ainda-mais-4447494.html>. Acesso em
30 set 2014.
MDN – Mozilla Developer Network. API Web Áudio. Disponível em:
<https://developer.mozilla.org/pt-BR/docs/Web/API/API_Web_Audio>. Acesso em 02 jun
2014.
MDN – Mozilla Developer Network. CSS. Disponível em: <https://developer.mozilla.org/pt-
BR/docs/Web/CSS>. Acesso em 01 jul 2014.
MDN – Mozilla Developer Network. Javascript. Disponível em:
<https://developer.mozilla.org/pt-BR/docs/Web/JavaScript>. Acesso em 01 jul 2014.
MYSQL. Disponível em: <http://www.mysql.com/>. Acesso em 30 jun 2014.
Newzoo Games Market Research. Asia-Pacific Contributes 82% of the $6Bn Global Games
Market Growth in 2014. Disponível em: <http://www.newzoo.com/insights/asia-pacific-
contributes-82-6bn-global-games-market-growth/>. Acesso em 01 out 2014.
PAGESPEED TOOLS. Disponível em: <https://developers.google.com/speed/pagespeed/>.
Acesso em 05 out 2014.
84
PHP. Disponível em: <http://php.net/>. Acesso em 30 jun 2014.
TOTVS. Gamification: conheça essa tendência. Disponível em:
<http://blog.totvs.com/gamification-conheca-essa-tendencia/>. Acesso em 26 set 2014.
W3CSCHOOLS. Site com conteúdo para desenvolvedores. Disponível em:
<http://www.w3schools.com>. Acesso em: 07 mar. 2014.
WEBPAGE TEST. Test a website’s performance. Disponível em:
<http://www.webpagetest.org/>. Acesso em 05 out 2014.
WIKIPEDIA. Anexo: Lista de navegadores. Disponível em:
<http://pt.wikipedia.org/wiki/Anexo:Lista_de_navegadores>. Acesso em 02 jun 2014.
WIKIPEDIA. Cascading Style Sheets. Disponível em:
<http://pt.wikipedia.org/wiki/Cascading_Style_Sheets>. Acesso em 01 jul 2014.
WIKIPEDIA. CodeIgniter. Disponível em: <http://pt.wikipedia.org/wiki/CodeIgniter>.
Acesso em 02 jul 2014.
WIKIPEDIA. Enciclopédia online. Disponível em: <http://www.wikipedia.org>. Acesso em:
07 mar. 2014.
WIKIPEDIA. Javascript. Disponível em: <http://pt.wikipedia.org/wiki/JavaScript>. Acesso
em 01 jul 2014.
WIKIPEDIA. jQuery. Disponível em: <http://pt.wikipedia.org/wiki/JQuery>. Acesso em 23
jun 2014.
WIKIPEDIA. MySQL. Disponível em: <http://pt.wikipedia.org/wiki/MySQL>. Acesso em 30
jun 2014.
WIKIVERSIDADE. Teoria Musical. Disponível em:
<http://pt.wikiversity.org/wiki/Teoria_musical>. Acesso em 10 set 2014.

Mais conteúdo relacionado

Mais procurados

Fireworks truquesmagicos
Fireworks truquesmagicosFireworks truquesmagicos
Fireworks truquesmagicosLucas Cruz
 
Amm advpl - 01 básico-rev01 2
Amm   advpl - 01 básico-rev01 2Amm   advpl - 01 básico-rev01 2
Amm advpl - 01 básico-rev01 2Marcelo Pacheco
 
Portal de Acompanhamento de Egressos
Portal de Acompanhamento de EgressosPortal de Acompanhamento de Egressos
Portal de Acompanhamento de EgressosCassiano Carraro
 
Br office writer
Br office writerBr office writer
Br office writerLuciana
 
Html course for_visually_impaired_persons
Html course for_visually_impaired_personsHtml course for_visually_impaired_persons
Html course for_visually_impaired_personsRicardo Schmidt
 
Ubuntu guia do iniciante - 1.0
Ubuntu   guia do iniciante - 1.0Ubuntu   guia do iniciante - 1.0
Ubuntu guia do iniciante - 1.0lordsjdr1978
 
Apostila unity3dv033
Apostila unity3dv033Apostila unity3dv033
Apostila unity3dv033unityshare
 
Come si fa a promuovere con Google - Indice
Come si fa a promuovere con Google - IndiceCome si fa a promuovere con Google - Indice
Come si fa a promuovere con Google - IndiceMarco Fontebasso
 
Tcc Mauricio Bento Ghem 2009 - Versão Final
Tcc Mauricio Bento Ghem 2009 - Versão FinalTcc Mauricio Bento Ghem 2009 - Versão Final
Tcc Mauricio Bento Ghem 2009 - Versão Finalimpalador69
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHPFernando Palma
 

Mais procurados (19)

Fireworks truquesmagicos
Fireworks truquesmagicosFireworks truquesmagicos
Fireworks truquesmagicos
 
112131953 apostila-solidworks-2009
112131953 apostila-solidworks-2009112131953 apostila-solidworks-2009
112131953 apostila-solidworks-2009
 
Teste
TesteTeste
Teste
 
Advpl completo
Advpl completo Advpl completo
Advpl completo
 
Amm advpl - 01 básico-rev01 2
Amm   advpl - 01 básico-rev01 2Amm   advpl - 01 básico-rev01 2
Amm advpl - 01 básico-rev01 2
 
Portal de Acompanhamento de Egressos
Portal de Acompanhamento de EgressosPortal de Acompanhamento de Egressos
Portal de Acompanhamento de Egressos
 
Br office writer
Br office writerBr office writer
Br office writer
 
Html course for_visually_impaired_persons
Html course for_visually_impaired_personsHtml course for_visually_impaired_persons
Html course for_visually_impaired_persons
 
Formas 01-comandos e funções
Formas 01-comandos e funçõesFormas 01-comandos e funções
Formas 01-comandos e funções
 
Ubuntu guia do iniciante - 1.0
Ubuntu   guia do iniciante - 1.0Ubuntu   guia do iniciante - 1.0
Ubuntu guia do iniciante - 1.0
 
Flash cs4
Flash cs4Flash cs4
Flash cs4
 
Apostila unity3dv033
Apostila unity3dv033Apostila unity3dv033
Apostila unity3dv033
 
Come si fa a promuovere con Google - Indice
Come si fa a promuovere con Google - IndiceCome si fa a promuovere con Google - Indice
Come si fa a promuovere con Google - Indice
 
Tcc Mauricio Bento Ghem 2009 - Versão Final
Tcc Mauricio Bento Ghem 2009 - Versão FinalTcc Mauricio Bento Ghem 2009 - Versão Final
Tcc Mauricio Bento Ghem 2009 - Versão Final
 
Flash
Flash Flash
Flash
 
TCC - Tiago Antonio Jacobi
TCC - Tiago Antonio JacobiTCC - Tiago Antonio Jacobi
TCC - Tiago Antonio Jacobi
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHP
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila de proje cad
Apostila de proje cadApostila de proje cad
Apostila de proje cad
 

Semelhante a Monografia - UNISUL

TCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec CarapicuíbaTCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec CarapicuíbaVanessa Alves Nascimento
 
Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...
Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...
Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...bentow
 
Visão artificial
Visão artificialVisão artificial
Visão artificialPedrolobo8
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idososPaulo Rosa
 
Servidores de Redes.pdf
Servidores de Redes.pdfServidores de Redes.pdf
Servidores de Redes.pdfOs Fantasmas !
 
TCC IMPRESSORA 3D
 TCC IMPRESSORA 3D TCC IMPRESSORA 3D
TCC IMPRESSORA 3Djamesfrk
 
Eletronica digital senai sc
Eletronica digital senai scEletronica digital senai sc
Eletronica digital senai scthiagocpradof
 
Agile desenvolvimento de software com entregas frequentes e foco no valor d...
Agile   desenvolvimento de software com entregas frequentes e foco no valor d...Agile   desenvolvimento de software com entregas frequentes e foco no valor d...
Agile desenvolvimento de software com entregas frequentes e foco no valor d...Art IT
 
Apostila completa de access
Apostila completa de accessApostila completa de access
Apostila completa de accessmazinho1955
 
O Tecnobrega Paraense E Os Modelos De Negocio Abertos
O Tecnobrega Paraense E Os Modelos De Negocio AbertosO Tecnobrega Paraense E Os Modelos De Negocio Abertos
O Tecnobrega Paraense E Os Modelos De Negocio AbertosMúsicaParaense.Org
 

Semelhante a Monografia - UNISUL (20)

TCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec CarapicuíbaTCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec Carapicuíba
 
TCC Aporano Play'ed SCRUM'ces
TCC Aporano Play'ed SCRUM'cesTCC Aporano Play'ed SCRUM'ces
TCC Aporano Play'ed SCRUM'ces
 
TG KickGames
TG KickGamesTG KickGames
TG KickGames
 
2014 Monografia Final
2014 Monografia Final2014 Monografia Final
2014 Monografia Final
 
Photoshop cs3
Photoshop cs3Photoshop cs3
Photoshop cs3
 
Photoshop cs3
Photoshop cs3Photoshop cs3
Photoshop cs3
 
Photoshop cs3
Photoshop cs3Photoshop cs3
Photoshop cs3
 
TCC_William Strafacce Soares_2013_v3
TCC_William Strafacce Soares_2013_v3TCC_William Strafacce Soares_2013_v3
TCC_William Strafacce Soares_2013_v3
 
Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...
Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...
Tcc Mauricio Bento Ghem 2009 - Proposta de uma Ferramenta de Monitoramento de...
 
Visão artificial
Visão artificialVisão artificial
Visão artificial
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idosos
 
Servidores de Redes.pdf
Servidores de Redes.pdfServidores de Redes.pdf
Servidores de Redes.pdf
 
TCC IMPRESSORA 3D
 TCC IMPRESSORA 3D TCC IMPRESSORA 3D
TCC IMPRESSORA 3D
 
Eletronica digital senai sc
Eletronica digital senai scEletronica digital senai sc
Eletronica digital senai sc
 
Agile desenvolvimento de software com entregas frequentes e foco no valor d...
Agile   desenvolvimento de software com entregas frequentes e foco no valor d...Agile   desenvolvimento de software com entregas frequentes e foco no valor d...
Agile desenvolvimento de software com entregas frequentes e foco no valor d...
 
Apostila completa de access
Apostila completa de accessApostila completa de access
Apostila completa de access
 
Samba
SambaSamba
Samba
 
O Tecnobrega Paraense E Os Modelos De Negocio Abertos
O Tecnobrega Paraense E Os Modelos De Negocio AbertosO Tecnobrega Paraense E Os Modelos De Negocio Abertos
O Tecnobrega Paraense E Os Modelos De Negocio Abertos
 
Gimp
GimpGimp
Gimp
 
Relatório técnico i fc 29-07
Relatório técnico i   fc 29-07Relatório técnico i   fc 29-07
Relatório técnico i fc 29-07
 

Monografia - UNISUL

  • 1. UNIVERSIDADE DO SUL DE SANTA CATARINA - UNISUL FELIPPE RODRIGO PUHLE DESENVOLVIMENTO DE KARAOKÊ WEB COM CONCEITOS DE GAMIFICAÇÃO Palhoça 2014
  • 2. FELIPPE RODRIGO PUHLE DESENVOLVIMENTO DE KARAOKÊ WEB COM CONCEITOS DE GAMIFICAÇÃO Monografia apresentada ao Curso Superior de Sistemas para a Internet da Universidade do Sul de Santa Catarina, como requisito parcial para a obtenção do título de Tecnólogo. Orientador: Prof. Clávison Martinelli Zapelini Esp. Palhoça 2014
  • 3. AGRADECIMENTOS Muitas pessoas passaram pela minha vida nestes últimos tempos, e todos contribuíram com um pouco para que este momento chegasse. Em primeiro lugar, gostaria de agradecer a minha família por me ensinar a nunca desistir de um sonho, por sempre ter me incentivado, por sempre me apoiar e dar a estrutura necessária para que eles se realizem. Em segundo lugar, gostaria de agradecer as pessoas que estão diretamente ligadas a esta monografia: a minha coordenadora na empresa Naiara Sebben, por ter me ajudado na concepção da ideia e na elaboração do projeto, e aos professores Clávison Martinelli Zapelini e Flavia Lumi Matuzawa por sempre se disponibilizarem em nos ajudar, compartilhando conhecimento e nos indicando os melhores caminhos para seguir. Em terceiro lugar, a minha professora de técnica vocal, Celly Pacheco Maurer, por ter me ensinado a nunca desistir da música e também por nunca ter desistido deste eterno aluno. Em quarto lugar e não menos importante, a todos os amigos e colegas de trabalho pelos momentos compartilhados durante esta jornada. Obrigado!
  • 4. Dedico esta monografia à todos que participaram desta etapa da minha vida e/ou puderam me ajudar de alguma forma, seja ela direta ou indiretamente.
  • 5. “Cada sonho que você deixa para trás, é um futuro que deixa de existir.” (Steve Jobs)
  • 6. RESUMO Esta monografia explica e documenta o desenvolvimento de um Karaokê rodando em um ambiente especificamente Web, o qual utiliza os conceitos de gamificação para recompensar e fidelizar o usuário. Serão abordados conhecimentos sobre as linguagens de programação utilizadas (PHP e Javascript), assim como modelagem do banco de dados, plug-ins, APIs e frameworks utilizados para facilitarem o desenvolvimento. Também abordará uma breve explicação sobre a teoria musical aplicada ao canto (técnica vocal) e como foi elaborado o sistema de pontuação do game através da gamificação. Palavras-chave: Karaokê, Canto, Gamificação, Técnica Vocal.
  • 7. LISTA DE FIGURAS FIGURA 1 - Mercado mundial de games por segmento..........................................................22 FIGURA 2 - Navegadores mais utilizados no mundo..............................................................41 FIGURA 3 - Navegadores mais utilizados no Brasil ...............................................................41 FIGURA 4 - Compatibilidade de navegadores - Web Áudio...................................................42 FIGURA 5 - Suporte de navegadores (versões) - Web Áudio .................................................42 FIGURA 6 - jQuery - compatibilidade entre navegadores.......................................................43 FIGURA 7 - Exemplo de ícones - Font Awesome...................................................................44 FIGURA 8 - Banco de dados - Tabela de sessão (CodeIgniter)...............................................46 FIGURA 9 - Formulário de login.............................................................................................47 FIGURA 10 - Banco de dados - tabela de usuários..................................................................47 FIGURA 11 - Tela inicial da administração.............................................................................48 FIGURA 12 - Alteração do perfil.............................................................................................48 FIGURA 13 - Alteração da senha.............................................................................................48 FIGURA 14 - Módulo "Categorias".........................................................................................49 FIGURA 15 - Módulo "Categorias" - formulário ....................................................................49 FIGURA 16 - Banco de dados - tabela de categorias...............................................................50 FIGURA 17 - Módulo "Artistas"..............................................................................................50 FIGURA 18 - Módulo "Artistas" - formulário .........................................................................51 FIGURA 19 - Banco de dados - tabela de artistas....................................................................51 FIGURA 20 - Módulo "Músicas".............................................................................................51 FIGURA 21 - Módulo "Músicas" - formulário ........................................................................52 FIGURA 22 - Banco de dados - tabela de músicas ..................................................................52 FIGURA 23 - Módulo "Músicas" - gerenciamento de acordes................................................53 FIGURA 24 - Banco de dados - tabela de acordes...................................................................53 FIGURA 25 - Módulo "Músicas" - gerenciamento de textos ..................................................54 FIGURA 26 - Banco de dados - tabela de textos .....................................................................54 FIGURA 27 - Banco de dados - tabela de ranking de jogadores .............................................55 FIGURA 28 - Módulo "Configurações" - geral .......................................................................55 FIGURA 29 - Módulo "Configurações" - mídias sociais.........................................................55 FIGURA 30 - Módulo "Configurações" - e-mail .....................................................................56 FIGURA 31 - Módulo "Usuários"............................................................................................56
  • 8. FIGURA 32 - Bootstrap - Sistema de grid ...............................................................................58 FIGURA 33 - Bootstrap - Demonstração do sistema de grid...................................................58 FIGURA 34 - Layout................................................................................................................59 FIGURA 35 - Tela de jogo.......................................................................................................60 FIGURA 36 - Jogo - permissão do navegador .........................................................................60 FIGURA 37 - Durante o jogo...................................................................................................61 FIGURA 38 - Escala de dó maior ............................................................................................62 FIGURA 39 - Término do jogo................................................................................................63 FIGURA 40 - Registrar a pontuação........................................................................................63 FIGURA 41 - Término do registro...........................................................................................64 FIGURA 42 - Compartilhando pontuação no Facebook..........................................................64 FIGURA 43 - Linha do tempo no Facebook............................................................................65 FIGURA 44 - Melhores colocados...........................................................................................65 FIGURA 45 - Questionário de avaliação de usabilidade .........................................................72 FIGURA 46 - PageSpeed - Karaokê Web................................................................................73 FIGURA 47 - PageSpeed - UOL..............................................................................................74 FIGURA 48 - WebPage Test - Karaokê Web ..........................................................................74 FIGURA 49 - WebPage Test - UOL ........................................................................................75 FIGURA 50 - Validação HTML - W3C...................................................................................75
  • 9. LISTA DE QUADROS QUADRO 1 - Recursos Mobilizados.......................................................................................27 QUADRO 2 - Estudo de viabilidade........................................................................................30 QUADRO 3 - Questionário de Estudo de Riscos de Projetos..................................................33 QUADRO 4 - Fluxo de Atividades ..........................................................................................34 QUADRO 5 - Estimativa de recursos e custos mensais...........................................................35 QUADRO 6 - Divisão de tarefas com estimativa de recursos .................................................38 QUADRO 7 - Divisão de Reponsabilidades ............................................................................39 QUADRO 8 - Indicadores de desempenho ..............................................................................68 QUADRO 9 - Respostas obtidas na avaliação de usabilidade .................................................76 QUADRO 10 - Navegador e SO utilizados pelas pessoas que responderam a avaliação de usabilidade................................................................................................................................78 QUADRO 11 - Formulário de Lições Aprendidas...................................................................80
  • 10. LISTA DE GRÁFICOS GRÁFICO 1 - Gráfico de Gantt – Cronograma previsto..........................................................36 GRÁFICO 2 - Gráfico de Gantt – Término da Etapa 1............................................................44 GRÁFICO 3 - Gráfico de Gantt – Término da Etapa 2............................................................57 GRÁFICO 4 - Gráfico de Gantt – Término da Etapa 3............................................................66 GRÁFICO 5 - Gráfico de Gantt – Término da Etapa 4............................................................67
  • 11. SUMÁRIO INTRODUÇÃO ......................................................................................................................13 1 IDENTIFICAÇÃO DO ESCOPO DO PROJETO...........................................................14 1.1 DEFINIÇÃO E APRESENTAÇÃO DO TEMA............................................................14 1.2 CATEGORIA DO PROJETO ........................................................................................14 1.3 CONTEXTO DO PROJETO..........................................................................................15 1.4 EQUIPE DO PROJETO .................................................................................................15 2 DESCRIÇÃO DETALHADA DO PROJETO..................................................................17 2.1 DESCRIÇÃO..................................................................................................................17 2.2 OBJETIVOS ...................................................................................................................20 2.2.1 Objetivos Gerais.....................................................................................................20 2.2.2 Objetivos Específicos..............................................................................................21 2.3 JUSTIFICATIVA ...........................................................................................................21 2.4 RESULTADOS ESPERADOS.......................................................................................22 2.5 COLETA E INTERPRETAÇÃO DE DADOS ..............................................................23 3 ANÁLISE DO PROJETO ..................................................................................................25 3.1 ESTUDO DE NECESSIDADES – PLANEJAMENTO DE ATIVIDADES.................25 3.1.1 Etapa 1 - Pesquisa ..................................................................................................25 3.1.2 Etapa 2 – Desenvolvimento backend ....................................................................26 3.1.3 Etapa 3 – Desenvolvimento frontend....................................................................26 3.1.4 Etapa 4 - Testes.......................................................................................................27 3.2 ESTUDO DE RECURSOS MOBILIZADOS ................................................................27 3.3 ESTUDO DE VIABILIDADE .......................................................................................28 3.4 ESTUDO DE RISCOS ...................................................................................................30 4 PLANEJAMENTO DE PROJETO ...................................................................................34 4.1 PLANO DE TRABALHO..............................................................................................34 4.1.1 Fluxo de Atividades................................................................................................34 4.1.2 Detalhamento das Atividades................................................................................35 4.1.3 Cronograma das Atividades (gráfico de Gantt) ..................................................35 4.2 EQUIPES DE TRABALHO...........................................................................................36 4.2.1 Divisão de Tarefas..................................................................................................37
  • 12. 4.2.2 Divisão de Responsabilidades................................................................................38 5 EXECUÇÃO DO PROJETO .............................................................................................40 5.1 RELATÓRIOS PARCIAIS DE EXECUÇÃO ...............................................................40 5.1.1 Etapa 1 – Pesquisa..................................................................................................40 5.1.2 Etapa 2 – Desenvolvimento Backend....................................................................45 5.1.3 Etapa 3 – Desenvolvimento Frontend...................................................................57 5.1.4 Etapa 4 – Testes......................................................................................................66 5.2 VERIFICAÇÃO DE ÍNDICES DE DESEMPENHO ....................................................67 5.3 AJUSTES / MODIFICAÇÕES DE PROJETO ..............................................................69 5.4 PROTÓTIPO DO PROJETO..........................................................................................69 5.5 PROJETO PILOTO ........................................................................................................70 6 ENCERRAMENTO DO PROJETO .................................................................................71 6.1 VALIDAÇÃO DO PROJETO........................................................................................71 6.2 ENTREGA / APRESENTAÇÃO FINAL ......................................................................73 6.3 MEDIÇÃO DOS RESULTADOS..................................................................................73 7 CONSIDERAÇÕES FINAIS..............................................................................................79 7.1 LIÇÕES APRENDIDAS ................................................................................................81 7.2 NOVAS IDEIAS E OPORTUNIDADES.......................................................................81 REFERÊNCIAS .....................................................................................................................83
  • 13. 13 INTRODUÇÃO A indústria dos games é relativamente nova e encontra-se em enorme expansão, tendo um mercado gigantesco a ser explorado. Poder jogar online oferecia uma enorme atratividade e era considerado o grande diferencial dos games até alguns anos atrás. Hoje, trata-se de questão de sobrevivência do mercado. Principalmente depois da disseminação das práticas de gamificação que é a utilização do conceito de um game no apoio de atividades como treinamentos, resoluções de problemas, potencialização de retorno de investimento, mensuração da qualidade do serviço e diversas outras (TOTVS, 2014). Este trabalho trata do processo de desenvolvimento de um projeto denominado “Karaokê Web”, um browser game de karaokê com sistema de pontuação incluso. Nele, serão apresentadas as lógicas utilizadas para o desenvolvimento do código-fonte, assim como as linguagens de programação, APIs e frameworks utilizados. Ao final serão apresentados os resultados alcançados em comparação aos resultados esperados, as lições aprendidas e ideias para melhorias na próxima versão do projeto.
  • 14. 14 1 IDENTIFICAÇÃO DO ESCOPO DO PROJETO A identificação do escopo do projeto aborda informações que detalham itens como a equipe responsável pelo desenvolvimento deste trabalho, além de apontar a categoria e o contexto do projeto; e por fim define e apresenta o tema. 1.1 DEFINIÇÃO E APRESENTAÇÃO DO TEMA O tema do projeto foi escolhido baseado em uma paixão do próprio autor e de milhares de pessoas ao redor do mundo: a música. Após uma pesquisa, foram constatados dois pontos principais para a continuidade do projeto:  Poucos são os games relacionados ao meio musical no mercado nacional, e este número é ainda menor quando relacionado ao canto (técnica vocal);  O nível de aceitação da ideia foi extremamente grande. O autor definiu como tema de seu projeto, o desenvolvimento de um web site onde os usuários podem competir através da sua participação no karaokê que será disponibilizado e ranqueado através de técnicas de gamificação. 1.2 CATEGORIA DO PROJETO O projeto se enquadra na categoria de “Desenvolvimento Tecnológico”, pois trata- se do desenvolvimento de um novo software utilizando conhecimentos já existentes, e que será utilizado para suprir a demanda identificada pelo autor na elaboração do tema.
  • 15. 15 1.3 CONTEXTO DO PROJETO É cada vez maior a procura pelas oportunidades de lazer que o avanço científico- tecnológico tem nos oferecido. Dentro destas possibilidades, a Internet se tornou a principal opção pelo simples fato de estar presente em grande percentual de residências pelo mundo. Além disto, pesquisas também demonstram que são grandes os casos em que o entretenimento e a música estão interligadas por meio de atividades realizadas mutuamente. Apesar de ter um mercado gigante a ser explorado, a gamificação trata de um conceito relativamente novo e representa basicamente o estabelecimento de regras e mecânicas de um jogo a algo que não necessariamente seja um jogo. Este projeto visa a inserção de um game rodando especificamente em um ambiente Web no mercado nacional. Nele, os jogadores poderão fazer livre utilização do sistema de pontuação para sua própria diversão e também a de seus amigos, promovendo uma concorrência sadia entre eles através do compartilhamento nas redes sociais. Sem qualquer instalação no computador necessária, “Karaokê Web” visa a simplicidade e fácil jogabilidade, independentemente do local em que o usuário se encontra. Para isto, o navegador precisa dar suporte a alguns componentes utilizados pelo jogo, além de que o usuário habilite o microfone e dê permissão ao navegador para utilizá-lo. 1.4 EQUIPE DO PROJETO A equipe do projeto é composta por apenas um integrante: Felippe Rodrigo Puhle, o qual foi gestor e responsável por todas as etapas do processo de pesquisa e de desenvolvimento, podendo destacar as pesquisas sobre melhores tecnologias a serem utilizadas, elaboração do sistema de pontuação e área administrativa para gerenciamento de conteúdo do site. O autor trabalha há mais de três anos com desenvolvimento Web, com projetos de que incluíam o desenvolvimento de websites, sistemas e integrações, utilizando tecnologias como:  PHP;
  • 16. 16  Javascript;  jSon  jQuery;  MySql.
  • 17. 17 2 DESCRIÇÃO DETALHADA DO PROJETO Neste capitulo consta a descrição do projeto, junto com o objetivo geral e as suas especificidades. Justificando a relevância e a importância do mesmo para a comunidade, assim como apresentando os resultados esperados e a interpretação dos dados coletados. 2.1 DESCRIÇÃO Este projeto trata do desenvolvimento de um game on-line sobre música. O game é composto por vários módulos, podendo ser separados também por duas seções: site e administração. Na seção administrativa, encontraremos: a) Formulário de login: o acesso a administração de conteúdo do site só será permitido para usuários cadastrados. O login poderá ser realizado com sucesso utilizando e-mail e senha previamente cadastrados. b) Atualização de perfil: todo usuário cadastrado poderá alterar seus próprios dados dentro da administração do site. c) Módulo de categorias: neste módulo, será possível gerenciar todas as categorias de músicas disponíveis no site. Dentre as ações a serem realizadas aqui são: - Adição de novos registros; - Listagem, alteração e exclusão de registros já cadastrados. d) Módulo de artistas: neste módulo, será possível gerenciar todas os artistas e bandas disponíveis no site. Dentre as ações a serem realizadas aqui são: - Adição de novos registros; - Listagem, alteração e exclusão de registros já cadastrados.
  • 18. 18 e) Módulo de músicas: neste módulo, será possível gerenciar todas as músicas disponíveis no site. Neste cadastro estará incluso o arquivo de áudio e também vínculos com artistas e categorias. Dentre as ações a serem realizadas aqui são: - Adição de novos registros; - Listagem, alteração e exclusão de registros já cadastrados; - Gerenciamento das legendas (letras) que aparecerão na tela enquanto a música estiver tocando; - Gerenciamento da troca de acordes durante a música, o que acarretará em como o sistema de pontuação funcionará. f) Configurações: neste módulo, serão configuradas todas as informações referentes ao site, como por exemplo: - Título, descrição e palavras chave; - Endereço de e-mail que deverá receber as mensagens de contato; - Configurações de mídias sociais; - Configuração de servidor de e-mail para envio de mensagens. g) Módulo de usuários: neste módulo, será possível gerenciar todos os usuários que terão acesso a área administrativa. Dentre as ações a serem realizadas aqui são: - Adição de novos registros; - Listagem, alteração e exclusão de registros já cadastrados. Na seção site, a visualização será composta por um template fixo, ou seja, em todas as páginas teremos o mesmo cabeçalho e rodapé, com as seguintes opções:  Cabeçalho: - Início: link para a página inicial; - Artistas: link para a lista de artistas disponíveis; - Categorias: link para a lista de categorias disponíveis; - Músicas: link para a lista de músicas disponíveis; - Contato: link para o formulário de contato;
  • 19. 19 - Avaliação de usabilidade: janela com um formulário disponível para avaliação do sistema; - Sobre: janela com algumas informações sobre o sistema; - Ajuda: janela com algumas dicas de uso do sistema.  Rodapé: - Início: link para a página inicial; - Contato: link para o formulário de contato; - Avaliação: janela com um formulário disponível para avaliação do sistema; - Sobre: janela com algumas informações sobre o sistema; - Ajuda: janela com algumas dicas de uso do sistema; - Integração com as redes sociais: Facebook, Twitter e Youtube. A navegação do site se dará pelas seguintes telas: a) Página inicial: na página inicial serão mostrados os seguintes dados: - Top músicas: músicas mais jogadas; - Top artistas: artistas mais jogados; - Top categorias: categorias mais jogadas; b) Artistas: lista de todos os artistas cadastrados. Ao final do conteúdo terá uma área para paginação. Caso houver mais de doze registros esta área será exibida, limitando assim a carga no banco de dados. Caso um item for clicado, o usuário será redirecionado para a lista de música disponíveis para este artista. c) Categorias: lista de todas as categorias cadastradas. Ao final do conteúdo terá uma área para paginação. Caso houver mais de doze registros esta área será exibida, limitando assim a carga no banco de dados. Caso um item for clicado, o usuário será redirecionado para a lista de música disponíveis para esta categoria.
  • 20. 20 d) Músicas: lista de todas as músicas cadastradas. Ao final do conteúdo terá uma área para paginação. Caso houver mais de doze registros esta área será exibida, limitando assim a carga no banco de dados. Caso um item for clicado, o usuário será redirecionado para a tela de jogo desta música. e) Jogo: tela para qual o usuário será redirecionado ao escolher uma música. Aqui serão exibidas algumas informações como: sistema de pontuação está habilitado ou não (caso o usuário não tenha habilitado o microfone), botão para a escolha da dificuldade e botão para início do jogo. Será exibido também um ranking de melhores colocados para cada dificuldade. f) Contato: formulário de contato com os campos para os dados do usuário e texto a ser enviado. Enviará um e-mail para o endereço configurado nas configurações do site. 2.2 OBJETIVOS Os objetivos da monografia são descritos a seguir. Neles há uma divisão entre o objetivo geral do trabalho e as especificidades a serem realizadas no transcorrer do mesmo. 2.2.1 Objetivos Gerais O objetivo geral do projeto “Karaokê Web” é: Desenvolver um aplicativo Web para karaokê com conceitos de gamificação.
  • 21. 21 2.2.2 Objetivos Específicos Os objetivos específicos do projeto “Karaokê Web” são:  Desenvolver a área administrativa (backend);  Desenvolver o site (frontend);  Desenvolver módulo de análise de desempenho e pontuação do usuário;  Desenvolver módulo para integração com mídias sociais;  Realizar testes para saber se o sistema de pontuação é confiável. 2.3 JUSTIFICATIVA Jogar na Web tem sido um grande atrativo para as pessoas que desejam tirar uns minutinhos de folga para aliviar o stress. Fortalecem-se aqui a praticidade dos browser games: sem a necessidade de efetuar o download de arquivos gigantes, difusos e disponíveis a todo o momento na rede. Nos últimos anos, o mercado dos games desponta como promissor e com um crescimento de enorme potencial: “De acordo com Alves Junior, o mercado de games movimenta algo em torno de US$ 2,63 bilhões no Brasil, uma prova de que proporcionar diversão e entretenimento às pessoas por meio de jogos pode ser algo muito lucrativo” (MACHADO, 2014). Mundialmente falando, segundo estudo realizado pela empresa de pesquisa de mercado Newzoo, o mercado de games movimentou de 2013 para 2014 cerca de US$ 81,5 bilhões, US$ 6 bilhões a mais que no ano anterior. Destes, 9% pertencem aos considerados browser games, como pode ser visto na FIGURA 1 a seguir:
  • 22. 22 FIGURA 1 - Mercado mundial de games por segmento. Fonte: Newzoo 1 Após pesquisa realizada, foi constatado que não há nenhum browser game na área do canto e da técnica vocal no mercado nacional. Este projeto visa oferecer um game dinâmico e que se adeque a este nicho de mercado. Sem a necessidade de fazer qualquer instalação no computador, o projeto “Karaokê Web” fornecerá estrutura necessária para que o usuário se divirta sem qualquer limitações de uso. 2.4 RESULTADOS ESPERADOS O desenvolvimento de um aplicativo Web para karaokê com conceitos em gamificação. Com uma interface extremamente amigável, basta apenas que o usuário habilite o microfone e permita que o navegador faça o seu uso para poder jogar. Do ponto de vista estratégico, é esperado que o game promova uma disputa acirrada e sadia, forçando os usuários e compartilharem os seus resultados nas redes sociais e atraindo o maior número de visitantes possíveis da seguinte forma:  O sistema de pontuação será crescente, de forma que quanto mais o usuário praticar, maior será sua pontuação; 1 Disponível em http://www.newzoo.com/insights/asia-pacific-contributes-82-6bn-global-games-market- growth. Acesso em out 2014.
  • 23. 23  Após o término da música o usuário poderá compartilhar a sua pontuação nas redes sociais, visando a divulgação do game e atraindo outras pessoas a conhecerem o produto. Do ponto de vista técnico, “Karaokê Web” torna-se um projeto inovador e ousado. O projeto contará com o uso da API de Web Áudio, tecnologia relativamente nova no mercado. É esperado que a API e a integração com o Javascript consigam fornecer estrutura e capacidade necessária para a elaboração do algoritmo de pontuação em tempo real, sem quaisquer atrasos na execução. 2.5 COLETA E INTERPRETAÇÃO DE DADOS Tratando-se do desenvolvimento de um software novo e após a concepção do tema, a coleta das informações foi feita da seguinte maneira:  Através de pesquisa na Internet;  Com amigos, colegas de trabalho e do meio musical. Com a pesquisa na internet, foi possível constatar a maior necessidade: uma enorme escassez de browser games relacionados a música no mercado nacional. Alguns modelos foram encontrados, mas a grande maioria ao estilo de “Guitar Hero”. Após a identificação da necessidade de um karaokê, foram coletadas as informações e dicas necessárias através de conversas informais com amigos, colegas de trabalho e colegas no meio musical, a fim de verificarmos o nível de aceitação do projeto. Através desta coleta foi chegado à conclusão de que o projeto era totalmente viável, também sendo feito o levantamento de alguns itens primordiais para o funcionamento e um rápido desenvolvimento do código fonte do sistema. Com colegas de trabalho, debatemos as seguintes soluções:  Utilização de frameworks;  Linguagens de programação utilizadas;  Banco de dados a ser utilizado;  Utilização da API de web áudio;  Utilização de jQuery e outros plug-ins.
  • 24. 24 Com os colegas envolvidos no meio musical, debatemos sobre a teoria musical básica: como poderíamos aplicar esta teoria ao sistema de pontuação do game.
  • 25. 25 3 ANÁLISE DO PROJETO Este capítulo apresenta o estudo de necessidades para realizar o planejamento de atividades. Pontuando os recursos mobilizados, assim como, o etudo de viabilidade e riscos do trabalho. 3.1 ESTUDO DE NECESSIDADES – PLANEJAMENTO DE ATIVIDADES Segundo (FACCINONI, 2006), “Um projeto é um conjunto de tarefas, arranjado uma sequência ou relação definida, que produz um efeito ou saída pré-definida.”. Assim sendo, dividimos o projeto em etapas e tarefas menores, para posterior análise (DUTRA, 2007). Sendo elas: 3.1.1 Etapa 1 - Pesquisa Nesta etapa, o objetivo principal é a identificação de quais os requisitos mínimos para que o game tenha um correto funcionamento. Além disto, será preparada a base para o código fonte ser escrito futuramente. Fazem parte desta etapa: a) Compatibilidade: - Verificar compatibilidade do web áudio no HTML5 entre navegadores; - Verifica se a captura de áudio pelo web áudio possui uma qualidade mínima; - Verificar se a detecção da nota emitida pelo vocalista é capturada de maneira correta. b) Equipamentos: - Testar microfones de diferentes valores; - Testar placa de áudio onboard e outras.
  • 26. 26 c) Linguagem de Programação: - Pesquisa sobre qual framework será utilizado para programar; - Pesquisa de plug-ins que poderão ser úteis. 3.1.2 Etapa 2 – Desenvolvimento backend Nesta etapa, se dará o início do desenvolvimento. O ambiente backend nada mais é do que a seção que administra o conteúdo do site. Fazem parte desta etapa: a) Definição do framework - Verifica qual framework se adapta melhor; - Verificar linguagens que podem ser combinadas para melhorar o sistema. b) Intranet base - Desenvolver sistema de login; - Desenvolver sistema de módulos; - Desenvolver módulos básicos como: configurações, usuário, etc. c) Módulos referente a música - Desenvolver módulo de gerenciamento de músicas; - Desenvolver módulo para controle do ranking de jogadores. 3.1.3 Etapa 3 – Desenvolvimento frontend Após o término do desenvolvimento do backend começará o desenvolvimento do frontend, que é a parte visível do site para os usuários. Fazem parte desta etapa: a) Layout - Verificar melhor estrutura HTML a ser utilizada; - Definir esquema de cores;
  • 27. 27 - Desenvolver frontend. b) Integração - Integrar frontend com backend; - Integrar com mídias sociais. 3.1.4 Etapa 4 - Testes Última etapa do projeto. Nela será testada todo o desenvolvimento e integração com as mídias sociais. Fazem parte desta etapa: a) Verifica se o algoritmo de pontuação funciona adequadamente; b) Verificar se a integração com as mídias sociais está funcionando. 3.2 ESTUDO DE RECURSOS MOBILIZADOS Segundo (DUTRA, 2007), recursos podem ser materiais (equipamentos, instalações, softwares, etc) e humanos (a equipe do projeto e/ou terceiros). Levando em conta essa consideração, temos a seguinte previsão orçamentária (anual) para realização do projeto: Previsão Orçamentária (ANUAL): R$ 34.295,00 Humanos Quantidade Custo mensal Tecnólogo em web design e programação 1 R$ 2.500,00 Material Quantidade Custo Computador 1 R$ 3.000,00 Interface de som offboard 1 R$ 800,00 Microfone multimídia (simples) 1 R$ 20, 00 Microfone Sennheiser E835 (profissional) 1 R$ 450,00 Cabo balanceado XLR 1 R$ 25,00 QUADRO 1 - Recursos Mobilizados. Fonte: Adaptado (DUTRA, 2007)
  • 28. 28 Segundo informações exibidas no QUADRO 1, podemos notar que a previsão orçamentária para um ano de desenvolvimento é de R$ 34.295,00. Destes, R$ 4.295,00 são referentes aos materiais fixos, que serão utilizados durante todo o projeto. O restante se refere a variável (salário do tecnólogo em web design e programação) multiplicada a quantidade de meses que o projeto levará para ser executado. 3.3 ESTUDO DE VIABILIDADE Segundo (DUTRA, 2007), o Estudo de Viabilidade de Projetos é importantíssimo para fazer o levantamento de uma série de preocupações iniciais para prosseguir com o desenvolvimento do projeto, assim como prever alguns riscos que possam atrapalhar futuramente. Utilizaremos o modelo de questionário/relatório proposto por (FACCIONI, 2011) para tal. Estudo de viabilidade Desenvolvimento de Karaokê Web com conceitos de Gamificação Equipe de estudo: FRP Music Technology Local e data: São Miguel do Oeste – SC, 15 de abril de 2014 Resumo do projeto (escopo, objetivos, estratégias) Trata-se do desenvolvimento de um karaokê web que pretende promover a diversão e interação dos jogadores através dos conceitos de gamificação e interações com as redes sociais. Benefícios: - quais são as vantagens mensuráveis que o projeto trará? - quais são os valores comparativos? Descrição: - A grande maioria dos softwares de karaokê hoje tem de ser instalados no computador para serem executados. - Um karaokê web não teria esta necessidade, bastaria acessar a página para jogar.
  • 29. 29 Benefícios: - que vantagens intangíveis ele trará? - como se poderá verificar? Descrição: - Portabilidade: você poderia jogar em qualquer lugar sem ter o game ‘instalado’ no computador. Recursos: - quais os recursos materiais necessários para o projeto? - esses recursos estão disponíveis? - caso não disponíveis, é possível obtê-los? Descrição: - Recursos materiais conforme a tabela; - Sim, já foram adquiridos; Recursos: - quais os recursos humanos necessários para o projeto? - essas pessoas estão disponíveis para o projeto? - caso não disponíveis, há outras pessoas para substituí-las? Descrição: - Recursos humanos conforme a tabela; - Equipe já está completa. Custos: - considerando os recursos necessários, quanto dinheiro será necessário para desenvolver o projeto? - esse montante está disponível? Descrição: - Todos os itens físicos já estão disponíveis, restando apenas o salário do Tecnólogo em web design e programação. - O dinheiro não está disponível. Custos: - há fontes de financiamento? Descrição: - Não, o projeto será levado com verbas próprias. Prazo: - qual o prazo pré-definido pelo “cliente” para o projeto? Descrição: - O prazo especificado para finalização do projeto é de 12 meses. Prazo: - considerando a experiência da equipe, qual o prazo estimado para o projeto? É igual ao pré-definido? Descrição: - A projeção inicial do projeto foi de 6 meses, mas ele poderá ser executado em 4 meses. Conclusões quanto à viabilidade do projeto: O projeto é totalmente viável, tendo bastante tempo para a finalização do mesmo.
  • 30. 30 Recomendações: Anexos: QUADRO 2 - Estudo de viabilidade. Fonte: Adaptado (FACCIONI, 2011, p. 125) Conforme o QUADRO 2 mostra, o projeto tem viabilidade de ser concretizado e o tempo disponível para execução é grande, mesmo após o remanejamento de tempo de execução inicial. 3.4 ESTUDO DE RISCOS O estudo de riscos em um projeto é uma etapa importantíssima para a continuidade do mesmo. Os riscos já existem mesmo antes do projeto nascer, e o gestor deve estar atendo ao processo de administração de riscos, que deve ser contínuo. Desta maneira, eles podem ser antecipados e administrados, ou até mesmo eliminados (DUTRA, 2007). Estudo de riscos Desenvolvimento de Karaokê Web com conceitos de Gamificação Equipe de estudo: FRP Music Technology Local e data: São Miguel do Oeste – SC, 15 de abril de 2014 Resumo do projeto (escopo, objetivos, estratégias) Trata-se do desenvolvimento de um karaokê web que pretende promover a diversão e interação dos jogadores através dos conceitos de gamificação e interações com as redes sociais. Riscos quanto aos benefícios: - o cliente tem uma idéia exata do resultado a ser obtido? - ou tem uma idéia aproximada? - é possível medir os benefícios? Descrição: Sim, os benefícios serão notáveis devido ao fato do karaokê pode ser acessado de qualquer lugar com uma conexão com a internet, porém, caso a internet estiver lenta, pode ser que o usuário sinta-se frustrado pelo fato de não poder jogar de uma maneira satisfatória.
  • 31. 31 Riscos quanto aos benefícios: - qual a probabilidade desse tipo de riscos? - qual o seu impacto? Descrição: A probabilidade é média, visto que hoje encontramos internet com altas taxas de conexão em qualquer lugar, porém, a internet no Brasil ainda é muito instável. Riscos quanto aos recursos: - há equipamentos de reserva? - há pessoal de reserva? - a tecnologia empregada é inteiramente dominada? Descrição: Não há recursos materiais ou humanos reserva. A tecnologia é dominada pelo profissional visto que trabalha há alguns anos com isto. Riscos quanto aos recursos: - qual a probabilidade desse tipo de riscos? - qual o seu impacto? Descrição: A probabilidade é mínima, mas pode resultar em uma pequena demora no prazo inicial de desenvolvimento da equipe (impacto pequeno). Riscos quanto aos custos: - o financiamento de todo o projeto está garantido? - há um montante de reserva? Descrição: O financiamento não está garantido ou possui reservas, apesar de todo o equipamento já ter sido adquirido. Riscos quanto aos custos: - qual a probabilidade desse tipo de riscos? - qual o seu impacto? Descrição: A falta de recursos para pagamento de recursos humanos pode acarretar em atrasos no prazo inicial de desenvolvimento da equipe (impacto médio). Riscos quanto ao prazo: - há fatores internos ou externos, não considerados, que podem afetar o prazo do projeto? Descrição: A maior dificuldade será devido ao fato do web áudio ser um conceito novo e ainda não ser suportado por todos os navegadores, então o karaokê terá de ser testado em todos para homologação de funcionamento. Riscos quanto ao prazo: - a equipe de projeto é experiente? Descrição: Apesar de nunca ter trabalho com web áudio, a equipe trabalha há anos no mercado de
  • 32. 32 trabalho e possui domínio sobre as linguagens de programação que serão utilizadas. Riscos quanto ao prazo: - qual a probabilidade desse tipo de riscos? - qual o seu impacto? Descrição: Probabilidade pequena e impacto pequeno. Caso um navegador não der suporte ao web áudio, não há outra alternativa a não ser instruir o usuário a utilizar um navegador homologado pela equipe, verificação que não atrasará no desenvolvimento do projeto... Lista dos 10 riscos mais importantes: - Falha nos testes efetuados durante a pesquisa; - Erro na escolha do framework utilizado; - Erro na escolha do modelo de frontend a ser utilizado; - Atraso no desenvolvimento; - Baixa performance da internet; - Falha de integração de navegadores com o web áudio; - Falha no desenvolvimento do algoritmo de pontuação (identificação da nota emitida); - Falha nos equipamentos utilizados; - Falha na captação do áudio pelo navegador; - Baixa qualidade de captação do áudio pode interferir na pontuação do jogador; Podemos conviver com eles? Sim, mas em alguns casos específicos, será necessário o replanejamento do projeto. É possível atenuá-los? Em caso de falhas ou erros em relação a compatibilidade do web áudio com alguns navegadores, deverá ser desenvolvido um módulo capaz de realizar a interação necessária para que o jogador consiga fazer a atualização ou instalação de um navegador homologado pelo sistema. É possível evitá-los? Em sua grande maioria, sim. A etapa de pesquisa será de importância significativa para determinar qual o melhor caminho a ser seguido no desenvolvimento do sistema. Além disto, em caso de alguma falha de equipamento, poderá ser locado ou pegar emprestado os equipamentos de empresas parceiras.
  • 33. 33 Conclusões quanto aos riscos do projeto: Tendo em vista que os maiores riscos devem-se a duvidosa integração do web áudio com os navegadores, podemos afirmar que o projeto é de médio risco, pois de pouco em pouco tempo temos constantes atualização dos mesmos e de suas APIs de integração com os novos recursos do HTML5. Além disto, lendo sua documentação, temos a garantia de que irá funcionar em pelo menos dois dos navegadores mais utilizados hoje – Google Chrome e Mozilla Firefox. Recomendações: Anexos: QUADRO 3 - Questionário de Estudo de Riscos de Projetos. Fonte: Adaptado (FACCIONI, 2011, p.134) No QUADRO 3, através do questionário para estudo de riscos de projeto, proposto por FACCIONI (2011, p.134), podemos chegar à conclusão de que o projeto tem médio risco. Apesar disto, o projeto é totalmente viável, bastando apenas que a equipe se mantenha atenta a alguns riscos já calculados.
  • 34. 34 4 PLANEJAMENTO DE PROJETO Aborda-se nesta sessão o plano de trabalho definido com base no capítulo anterior e a equipe envolvida na execução do mesmo. 4.1 PLANO DE TRABALHO Após o levantamento e análise de dados e os estudos de viabilidade e riscos do projeto, a equipe pode estimar algumas informações importantes para a sequência do trabalho, como o fluxo e o detalhamento das atividades. A seguir apresentaremos estas informações, assim como o cronograma com o Gráfico de Gantt. 4.1.1 Fluxo de Atividades Etapa 1 - Pesquisa Prazo estimado: 21 dias Compatibilidade 10 dias Equipamentos 7 dias Linguagens de programação 4 dias Etapa 2 – Desenvolvimento Backend Prazo estimado: 48 dias Definição do framework 4 dias Intranet Base 29 dias Módulo referente a música 15 dias Etapa 3 – Desenvolvimento Frontend Prazo estimado: 40 dias Layout 20 dias Integração 20 dias Etapa 4 - Testes Prazo estimado: 20 dias Algoritmo de pontuação 15 dias Integração com mídias sociais 5 dias QUADRO 4 - Fluxo de Atividades. Fonte: Adaptado (DUTRA, 2007)
  • 35. 35 O QUADRO 4 demonstra o fluxo de atividades e seus respectivos prazos estimados, contando apenas dias úteis de trabalho. Através dele podemos ter uma melhor visão da duração total do projeto. 4.1.2 Detalhamento das Atividades Definido o fluxo de atividades e estimada a sua duração, decompomos as informações em uma outra tabela, estimando através do tempo de execução os custos e os recursos necessários para a realização das tarefas: MÊS RECURSO CUSTO (R$) Junho Computador Interface de som offboard Microfone multimídia (simples) Microfone Sennheiser E835 (profissional) Cabo balanceado XLR Equipe 3.000,00 800,00 20,00 450,00 25,00 2.500,00 Julho Equipe 2.500,00 Agosto Equipe 2.500,00 Setembro Equipe 2.500,00 Outubro Equipe 2.500,00 Novembro Equipe 2.500,00 QUADRO 5 - Estimativa de recursos e custos mensais. Fonte: O autor (2014) 4.1.3 Cronograma das Atividades (gráfico de Gantt) Considerando que as realizações das tarefas deverão ser executadas em um período e ordem previamente definidos, o gráfico de Gantt serve para facilitar a visualização e execução do que deverá ser desenvolvido.
  • 36. 36 No eixo horizontal do gráfico há um calendário com a escala de tempo, e no eixo vertical as atividades a serem executadas. Estas, estarão distribuídas no gráfico utilizando uma barra para demarcar a data inicial e final de realização da atividade, se estendendo por todo o período de tempo compreendido (FACCIONI, 2011). Após definição do fluxo de atividades e análise dos prazos, chegamos ao seguinte cronograma: GRÁFICO 1 - Gráfico de Gantt – Cronograma previsto. Fonte: O autor (2014) O GRÁFICO 1 mostra que nenhuma atividade será realizada em paralelo. Isto se deve ao fato de que cada etapa e tarefa foi estruturada para ser dependente da anterior, devido ao fato da equipe contar com apenas uma pessoa. 4.2 EQUIPES DE TRABALHO A equipe do projeto é composta por apenas uma pessoa, logo, temos apenas uma equipe de trabalho também. Esta, ficará a cargo de todas responsabilidades e tarefas durante todo o projeto.
  • 37. 37 4.2.1 Divisão de Tarefas Segundo (DUTRA, 2007), o planejamento do projeto é fundamental para começarmos a desenvolvê-lo, e um bom nível de detalhamento deve ser alcançando para que consigamos estimar melhor as atividades. Uma tabela foi criada com a descrição de cada etapa e tarefa, com informações adicionais dos recursos necessários para a realização cada uma: Etapas do desenvolvimento Recursos Necessários Etapa 1 - Pesquisa 1) Compatibilidade Computador, Interface de som offboard, Microfone multimídia (simples) ou Microfone Sennheiser E835 (profissional), Cabo balanceado XLR. 2) Equipamentos Computador, Interface de som offboard, Microfone multimídia (simples), Microfone Sennheiser E835 (profissional), Cabo balanceado XLR. 3) Linguagem de programação Computador. Etapa 2 - Desenvolvimento backend 1) Definição do framework Computador. 2) Intranet base Computador. 3) Módulos referente a música Computador, Interface de som offboard, Microfone multimídia (simples), Microfone Sennheiser E835 (profissional), Cabo balanceado XLR. Etapa 3 - Desenvolvimento frontend 1) Layout Computador. 2) Integração Computador. Etapa 4 - Testes 1) Verificar se o algoritmo de pontuação funciona adequadamente Computador, Interface de som offboard, Microfone multimídia (simples), Microfone
  • 38. 38 Sennheiser E835 (profissional), Cabo balanceado XLR. 2) Verificar se a integração com as mídias sociais está funcionando Computador. QUADRO 6 - Divisão de tarefas com estimativa de recursos. Fonte: O autor (2014) Como demonstrado pelo QUADRO 6, todos os recursos deverão ser adquiridos logo na primeira etapa e tarefa do projeto, pois serão através das pesquisas e dos testes iniciais de compatibilidade que teremos maiores informações sobre o comportamento do web áudio. 4.2.2 Divisão de Responsabilidades A divisão de responsabilidades é uma etapa extremamente importante para qualquer projeto, pois é nesta etapa que será definido qual equipe de trabalho ficará responsável por alguma atividade, e quais atividades poderão ser realizadas em paralelo. Como o projeto “Karaokê Web” é composto por apenas um integrante e possui apenas uma equipe de trabalho, todas as tarefas foram delegadas para esta mesma pessoa: Etapas do desenvolvimento Responsável Etapa 1 - Pesquisa 1) Compatibilidade Tecnólogo em web design e programação 2) Equipamentos Tecnólogo em web design e programação 3) Linguagem de programação Tecnólogo em web design e programação Etapa 2 - Desenvolvimento backend 1) Definição do framework Tecnólogo em web design e programação 2) Intranet base Tecnólogo em web design e programação 3) Módulos referente a música Tecnólogo em web design e programação Etapa 3 - Desenvolvimento frontend 1) Layout Tecnólogo em web design e programação 2) Integração Tecnólogo em web design e programação Etapa 4 - Testes
  • 39. 39 1) Verificar se o algoritmo de pontuação funciona adequadamente Tecnólogo em web design e programação 2) Verificar se a integração com as mídias sociais está funcionando Tecnólogo em web design e programação QUADRO 7 - Divisão de Reponsabilidades. Fonte: O autor (2014)
  • 40. 40 5 EXECUÇÃO DO PROJETO A execução do projeto aborda os relatórios parciais de execução, apresenta a verificação de índices de desempenho, ajustes e modificações, além do protótipo e o piloto do projeto. 5.1 RELATÓRIOS PARCIAIS DE EXECUÇÃO Para melhor entendimento e acompanhamento em tempo real durante o desenvolvimento do projeto, os relatórios parciais de execução foram feitos na conclusão de cada etapa. 5.1.1 Etapa 1 – Pesquisa Um bom resultado durante a execução da etapa 1 era essencial para que o desenvolvimento do projeto continuasse dentro do cronograma previsto. Um erro aqui poderia significar em um atraso gradativo nas etapas posteriores. A primeira tarefa desta etapa visava efetuar todos os testes de compatibilidade possíveis para que o game funcione de forme homogênea no maior número de navegadores, e um dos principais objetivos era a identificação de quais os navegadores mais utilizados na atualidade. Veja as figuras abaixo:
  • 41. 41 FIGURA 2 - Navegadores mais utilizados no mundo Fonte: Wikipedia 2 FIGURA 3 - Navegadores mais utilizados no Brasil. Fonte: Wikipedia 3 Após o levantamento destes dados, nossa maior preocupação era sobre o suporte do web áudio a estes navegadores. Mas o que é o web áudio? “A API de Web Áudio disponibiliza um poderoso e versátil sistema de controle de áudio para a Web, permitindo aos desenvolvedores escolher arquivos de áudio, adicionar efeitos a estes arquivos, criar reprodutores de áudio, aplicar spatial effects (como panning) e muito mais.” (MDN, 2014) O web áudio é uma ferramenta extremamente nova no mercado, e nem todos navegadores suportam o seu uso. A própria comunidade MDN especifica isto: 2 Disponível em http://pt.wikipedia.org/wiki/Anexo:Lista_de_navegadores. Acesso em jun 2014. 3 Disponível em http://pt.wikipedia.org/wiki/Anexo:Lista_de_navegadores. Acesso em jun 2014.
  • 42. 42 FIGURA 4 - Compatibilidade de navegadores - Web Áudio. Fonte: MDN 4 Utilizamos também uma ferramenta que possibilitou uma visão geral das funcionalidade em todos os navegadores, denominada “Can I Use”. Assim conseguimos mapear quais versões de cada navegador realmente suportam o web áudio. Veja a figura abaixo: FIGURA 5 - Suporte de navegadores (versões) - Web Áudio. Fonte: Can I Use 5 Podemos perceber através da FIGURA 4 que atualmente apenas o Internet Explorer não fornece suporte para o Web Áudio. Porém, podemos relatar também que a versão 5.1 do Safari não oferece suporte, através da FIGURA 5. Isto acaba tornando-se um problema para usuários do Safari no Windows, pois a última versão lançada neste sistema operacional é justamente a versão 5.1. Definido quais navegadores terão compatibilidade, chegou o momento de testarmos o web áudio de verdade. Testes foram feitos com todas as configurações de 4 Disponível em https://developer.mozilla.org/pt-BR/docs/Web/API/API_Web_Audio. Acesso em jun 2014. 5 Disponível em http://caniuse.com/#feat=audio-api. Acesso em jun 2014.
  • 43. 43 hardwares previamente especificadas neste projeto e em todos os navegadores, chegando à conclusão que o projeto poderia ser seguido normalmente com esta tecnologia. Os navegadores Internet Explorer e Opera não conseguiram capturar o áudio dos microfones, como relatado pela pesquisa anterior. No quesito qualidade na captura de áudio não houve diferença: tanto com a placa de som onboard do computador quanto com a interface de som offboard o resultado foi satisfatório. O mesmo se aplica nos dois microfones testados. Na última tarefa da Etapa 1, houve a definição dos frameworks e plug-ins que seriam utilizado no desenvolvimento. Os principais encontrados foram: jQuery, Bootstrap e Font Awesome.  jQuery: “jQuery é uma biblioteca JavaScript cross-browser desenvolvida para simplificar os scripts client side que interagem com o HTML. Ela foi lançada em dezembro de 2006 no BarCamp de Nova York por John Resig. Usada por cerca de 77% dos 10 mil sites mais visitados do mundo, jQuery é a mais popular das bibliotecas JavaScript” (WIKIPEDIA, 2014). Além disto, jQuery possui compatibilidade com diversos navegadores: FIGURA 6 - jQuery - compatibilidade entre navegadores. Fonte: jQuery – site oficial 6  Bootstrap: Bootstrap é um framework para se utilizar no frontend de um projeto e visa facilitar o desenvolvimento e manutenção do mesmo, através da do reaproveitamento dos códigos. Criado por Mark Otto e Jacob Thornton (engenheiros do Twitter), ele é capaz de fornecer uma série de componentes, como:  Estrutura HTML com suporte a design responsivo;  Pacotes de ícones básicos;  Menus em cascata; 6 Disponível em http://jquery.com/browser-support. Acesso em jun 2014.
  • 44. 44  Outros diversos plug-ins escritos em Javascript.  Font Awesome: Font Awesome é um pacote de ícones vetoriais para se utilizar em websites. Através do uso de CSS, é possível alterar seu tamanho, cor, sombra e quaisquer outras técnica de estilização de fontes. FIGURA 7 - Exemplo de ícones - Font Awesome. Fonte: O autor (2014) Após o término da primeira etapa, com a atualização do cronograma geramos o seguinte gráfico de Gantt: GRÁFICO 2 - Gráfico de Gantt – Término da Etapa 1. Fonte: O autor (2014)
  • 45. 45 5.1.2 Etapa 2 – Desenvolvimento Backend A primeira tarefa desta etapa refere-se a escolha das linguagens de programação e frameworks utilizados para o início do desenvolvimento. As escolhas da equipe do projeto foram:  PHP;  MySQL;  Javascript;  CSS;  CodeIgniter. PHP O PHP é uma linguagem de programação server-side, ou seja, ele é executado no lado do servidor. O cliente recebe apenas o conteúdo que é processado pelo servidor, não podendo visualizar o código fonte desta maneira. Ele é suportado pela maioria dos servidores webs existentes hoje, e tem suporte a uma ampla variedade de banco de dados. MySQL O MySQL é um dos sistemas gerenciadores de bancos de dados (SGBD) open sources mais populares em uso atualmente. Sua linguagem é o SQL. Sua popularidade deve-se ao fato da sua fácil integração com o PHP. Javascript Javascript é uma linguagem de programação interpretada e client-side (executada no navegador do cliente). É considerada leve por causa deste fato. É uma linguagem baseada em objetos, porém, a tipagem de suas variáveis são dinâmicas e não há distinção entre funções e métodos. CSS
  • 46. 46 “Cascading Style Sheets (ou simplesmente CSS) é uma linguagem de folhas de estilo utilizada para definir a apresentação de documentos escritos em uma linguagem de marcação, como HTML ou XML. Seu principal benefício é prover a separação entre o formato e o conteúdo de um documento” (WIKIPEDIA, 2014). O CSS está em fase de padronização e hoje está no seu terceiro estágio, também chamado de CSS3. CodeIgniter CodeIgniter é um framework para desenvolvimento de projetos em linguagem de programação PHP. Ele é gratuito, leve, rápido, possui várias bibliotecas e utiliza MVC (modelo, visão, controle), facilitando e auxiliando na criação e manutenção do código fonte.  Model (modelo): comunicação com o banco de dados, através das operações CRUD (create, read, update e delete);  View (visão): a parte visível das páginas para o usuário, o código HTML;  Controller (controle): é o elo de comunicação entre o modelo e a visão. É aqui que ficará armazenada toda a lógica da aplicação. Para iniciar o desenvolvimento, temos de levar em consideração que o sistema de sessão do CodeIgniter também utiliza o banco de dados. Nossa modelagem foi feita através do programa MySQL Workbench. A tabela referente as sessões abertas no CodeIgniter ficou assim: FIGURA 8 - Banco de dados - Tabela de sessão (CodeIgniter) Fonte: O autor (2014) Criada a tabela das sessões, podemos iniciar o desenvolvimento do login no sistema administrativo. A primeira parte a ser realizada foi o formulário a ser preenchido, conforme FIGURA 9:
  • 47. 47 FIGURA 9 - Formulário de login. Fonte: O autor (2014) Para que a autenticação ocorra, o e-mail informado necessita ser válido. Esta autenticação é feita através do plug-in jQuery Validate. Além disto, e-mail e senha informados devem estar previamente cadastrado na tabela “usuario” do banco de dados: FIGURA 10 - Banco de dados - tabela de usuários. Fonte: O autor (2014) Caso os dados não sejam validados, uma mensagem de erro aparecerá para o usuário. Caso contrário, ele será redirecionado para a tela inicial da administração.
  • 48. 48 FIGURA 11 - Tela inicial da administração. Fonte: O autor (2014) Como demonstra a FIGURA 11, a esquerda temos todos os módulos disponíveis, e ao canto superior direito temos o nome do usuário que fez a autenticação. Clicando nos módulos, o usuário será redirecionado para a página principal do módulo selecionado. Clicando no seu próprio nome, ele será redirecionado para a tela de alteração de perfil, como mostram as próximas figuras: FIGURA 12 - Alteração do perfil. Fonte: O autor (2014) FIGURA 13 - Alteração da senha. Fonte: O autor (2014)
  • 49. 49 Após clicar em finalizar, os dados serão alterados. Caso os campos referentes a alteração de senha forem preenchidos, a senha também será alterada (caso a senha atual tenha sido digitado corretamente). Categorias O primeiro módulo listado é o de categorias de músicas que serão disponibilizadas no site. Ao acessá-lo, você será redirecionado para a página inicial do módulo: FIGURA 14 - Módulo "Categorias". Fonte: O autor (2014) Como podemos ver, a tela inicial do módulo é a lista de registros já inseridos. Clicando em “Excluir”, uma confirmação será exigida para que a exclusão seja efetuada. Ao clicar em “Alterar”, o usuário será redirecionado para o mesmo formulário da ação “Adicionar”, porém, já virá preenchido: FIGURA 15 - Módulo "Categorias" – formulário. Fonte: O autor (2014) Os registros inseridos neste módulo ficam organizados da seguinte maneira no banco de dados:
  • 50. 50 FIGURA 16 - Banco de dados - tabela de categorias. Fonte: O autor (2014) Artistas Entrando no módulo artistas, o usuário visualizará a seguinte tela: FIGURA 17 - Módulo "Artistas". Fonte: O autor (2014) Como podemos ver, a tela inicial do módulo é a lista de registros já inseridos. Clicando em “Excluir”, uma confirmação será exigida para que a exclusão seja efetuada. Ao clicar em “Alterar”, o usuário será redirecionado para o mesmo formulário da ação “Adicionar”, porém, já virá preenchido:
  • 51. 51 FIGURA 18 - Módulo "Artistas" – formulário. Fonte: O autor (2014) Os registros inseridos neste módulo ficam organizados da seguinte maneira no banco de dados: FIGURA 19 - Banco de dados - tabela de artistas. Fonte: O autor (2014) Músicas Ao entrar no módulo “Músicas”, o usuário visualizará a seguinte tela: FIGURA 20 - Módulo "Músicas". Fonte: O autor (2014)
  • 52. 52 Como podemos ver, a tela inicial do módulo é a lista de registros já inseridos. Clicando em “Excluir”, uma confirmação será exigida para que a exclusão seja efetuada. Ao clicar em “Alterar”, o usuário será redirecionado para o mesmo formulário da ação “Adicionar”, porém, já virá preenchido: FIGURA 21 - Módulo "Músicas" – formulário. Fonte: O autor (2014) Os registros inseridos neste módulo ficam organizados da seguinte maneira no banco de dados: FIGURA 22 - Banco de dados - tabela de músicas. Fonte: O autor (2014)
  • 53. 53 Na lista de músicas inseridas, ao clicar em “Acordes” o usuário será redirecionado para a tela de gerenciamento de troca de acordes (notas), que será a base que o sistema de pontuação utilizará para verificar se o usuário está cantando corretamente ou não. Veja: FIGURA 23 - Módulo "Músicas" - gerenciamento de acordes. Fonte: O autor (2014) Os acordes inseridos na música ficam organizados da seguinte maneira no banco de dados: FIGURA 24 - Banco de dados - tabela de acordes. Fonte: O autor (2014) Ainda na lista de músicas cadastradas, ao clicar em “Textos”, o usuário será redirecionado para a tela de gerenciamento dos textos que aparecerão no decorrer da música, que neste caso será utilizado para exibir a letra a ser cantada:
  • 54. 54 FIGURA 25 - Módulo "Músicas" - gerenciamento de textos. Fonte: O autor (2014) Os textos inseridos na música ficam organizados da seguinte maneira no banco de dados: FIGURA 26 - Banco de dados - tabela de textos. Fonte: O autor (2014) Além destas opções, aproveitamos para modelar a tabela que será utilizada na pontuação dos jogadores:
  • 55. 55 FIGURA 27 - Banco de dados - tabela de ranking de jogadores. Fonte: O autor (2014) Configurações Neste módulo, serão feitas todas as configurações referentes ao site. O formulário está dividido em três etapas: FIGURA 28 - Módulo "Configurações" – geral. Fonte: O autor (2014) FIGURA 29 - Módulo "Configurações" - mídias sociais. Fonte: O autor (2014)
  • 56. 56 FIGURA 30 - Módulo "Configurações" - e-mail. Fonte: O autor (2014) Na primeira tela, é feita a configuração geral do site: informações que são visíveis aos usuários que o visitam. Na segunda tela, temos a configuração das redes sociais. Aqui, devemos colocar o nome de usuário nas redes sociais disponíveis, além do ID do APP no Facebook e seus respectivos administradores. Desta maneira, quando um link do site for compartilhado, aparecerá o nome do aplicativo no Facebook. Na terceira tela é feita a configuração para que o site consiga enviar e-mails autenticando em um servidor SMTP, evitando que se tenha problemas ao receber os e-mails enviados através do formulário de contato. Usuários Módulo utilizado para gerenciar os usuários que tem acesso a administração. O formulário utilizado para adicionar novos usuários e alterar usuários já existentes é o mesmo formulário utilizado para atualização do perfil, assim como a tabela no banco de dados é a mesma. Ao acessar o módulo usuários, a tela inicial será: FIGURA 31 - Módulo "Usuários". Fonte: O autor (2014)
  • 57. 57 Com isto, a segunda etapa é finalizada. Atualizando o cronograma do projeto, o seguinte gráfico de Gantt foi gerado: GRÁFICO 3 - Gráfico de Gantt – Término da Etapa 2. Fonte: O autor (2014) 5.1.3 Etapa 3 – Desenvolvimento Frontend Esta etapa refere-se a elaboração do layout do site, e, foi relativamente rápida em relação ao que havia sido previsto inicialmente. Através da utilização do Bootstrap, foi possível desenvolver o layout rapidamente. As telas visam um fácil entendimento e navegabilidade dentro do site. Com apenas um clique é possível executar a ação desejada pelo usuário:  Voltar a página inicial;  Lista de músicas por artista;  Lista de músicas por categoria;  Lista de todas as músicas;  Jogar;  Formulário de contato.
  • 58. 58 A estrutura HTML do site é baseada no sistema de grid de 12 colunas responsivas do próprio Bootstrap. Conforme a largura da tela (diferentes viewports), as colunas ajustam-se ao tamanho da tela. FIGURA 32 - Bootstrap - Sistema de grid. Fonte: Bootstrap 7 Veja uma simples demonstração a seguir: FIGURA 33 - Bootstrap - Demonstração do sistema de grid. Fonte: Bootstrap 8 O esquema de cores definido pela equipe foi a utilização de cores neutras. Para jogar, basta clicar em alguma música. Caso o usuário clique em um artista ou categoria, será redirecionado para a lista de músicas do respectivo item selecionado. 7 Disponível em http://getbootstrap.com/css/#grid. Acesso em ago 2014. 8 Disponível em http://getbootstrap.com/css/#grid-example-basic. Acesso em ago 2014.
  • 59. 59 FIGURA 34 - Layout Fonte: O autor (2014) Jogo Ao selecionar uma música, o usuário será redirecionado para a tela de jogo:
  • 60. 60 FIGURA 35 - Tela de jogo Fonte: O autor (2014) Como podemos perceber, inicialmente a pontuação está desativada. Devido a questões de segurança, o navegador irá solicitar se o usuário deseja ou não permitir que o áudio seja capturado, como demonstra a imagem abaixo: FIGURA 36 - Jogo - permissão do navegador Fonte: O autor (2014) Negando esta permissão ou iniciando o jogo sem ela, o usuário poderá jogar normalmente, porém, o sistema de pontuação ficará desativado e o usuário não poderá compartilhar a sua pontuação. Para iniciar o jogo basta selecionar o nível de dificuldade desejado e após isso clicar em “Iniciar”.
  • 61. 61 FIGURA 37 - Durante o jogo Fonte: O autor (2014) O sistema do jogo foi desenvolvido em Javascript e jQuery. Ao clicar em “Iniciar”, é salvo em uma variável local a data em que o jogo começou. Através de uma função recursiva o sistema verifica qual texto deverá ser exibido, qual será o próximo acorde e se deverá trocar a cor do background através da verificação do tempo de execução da música (subtraindo da data atual a data de início do jogo). Para que o usuário pontue, é necessário que ele cante adequadamente em cima do acorde que está sendo tocado pelo playback da música. Para isto, utilizaremos de referência a teoria musical. Um acorde é formado por três notas:  Fundamental (que dá nome ao acorde);  3ª maior ou menor;  5ª justa. Como exemplo, utilizaremos a escala de Dó Maior. A escala maior é formada pelos seguintes intervalos: Fundamental, 2ª maior, 3ª maior, 4ª justa, 5ª justa, 6ª maior, 7ª maior, 8ª justa.
  • 62. 62 FIGURA 38 - Escala de dó maior. Fonte: Wikiversidade 9 Neste caso, o acorde de Dó Maior seria formado por Dó (fundamental), Mi (3ª maior) e Sol (5ª justa). Quando a música tocar este acorde, o usuário deverá cantar uma destas três notas para pontuar no jogo. O nível de dificuldade escolhido está diretamente ligado a estas notas. São raros os casos de que alguém cantará exatamente a nota necessária, ou seja, há um percentual de desafinação. Os níveis de dificuldade foram definidos da seguinte maneira pela equipe:  Cantor de chuveiro – o usuário pontuará com até 90% de desafinação;  Amador – o usuário pontuará com até 40% de desafinação;  Profissional – o usuário pontuará com até 10% de desafinação. Durante a execução da música deverão ocorrer várias trocas de acordes (de milissegundos em milissegundos) e o usuário deverá ficar atento a este fato para conseguir uma melhor pontuação. Após o término da música, será exibida a pontuação que o usuário atingiu, assim como um botão para que ele insira seu nome para cadastrar-se no ranking de jogadores. Após o registro, ele poderá compartilhar o resultado no Facebook, como demonstram as imagens abaixo: 9 Disponível em http://pt.wikiversity.org/wiki/Teoria_musical. Acesso em set 2014.
  • 63. 63 FIGURA 39 - Término do jogo. Fonte: O autor (2014) FIGURA 40 - Registrar a pontuação Fonte: O autor (2014) Após efetuar o registro, o botão será substituído pelo botão de compartilhar do Facebook:
  • 64. 64 FIGURA 41 - Término do registro. Fonte: O autor (2014) Clicando em compartilhar, uma janela do próprio Facebook será aberta e o usuário poderá postar a pontuação alcançada na sua linha do tempo: FIGURA 42 - Compartilhando pontuação no Facebook. Fonte: O autor (2014)
  • 65. 65 FIGURA 43 - Linha do tempo no Facebook. Fonte: O autor (2014) Além de poder compartilhar nas redes sociais, a pontuação do usuário também poderá ficar salva na tabela de melhores colocados, veja: FIGURA 44 - Melhores colocados. Fonte: O autor (2014)
  • 66. 66 Ao término desta etapa, temos a seguinte atualização de cronograma e gráfico de Gantt: GRÁFICO 4 - Gráfico de Gantt – Término da Etapa 3. Fonte: O autor (2014) 5.1.4 Etapa 4 – Testes A quarta e última etapa do projeto refere-se aos testes utilizando o sistema de pontuação e a integração com as mídias sociais. Como detectado previamente nas etapas anteriores, os navegadores Internet Explorer e Safari (versão 5.1 ou inferior) não possuem compatibilidade com o Web Áudio, então nosso game também não será suportado por eles. Nos primeiros testes realizados, constatamos que em algumas ocasiões legendas e acordes não estavam sincronizados corretamente com a música. Conseguimos contornar este problema habilitando o botão de iniciar o jogo apenas depois da música ter carregado totalmente no navegador. Após esta correção, o algoritmo de pontuação funcionou como planejado. Sobre a integração com as redes sociais, encontramos um único problema: ao compartilhar a pontuação, aparecia a mensagem “via Widget Share Log App”. O problema foi resolvido após criarmos um aplicativo no próprio Facebook e também adicionarmos a sua integração no código fonte do site.
  • 67. 67 Os testes foram feitos em todos os outros navegadores atualizados em suas últimas versões, sendo elas:  Google Chrome: 37.0.2062.124  Mozilla Firefox: 32.0.3  Opera: 24.0.1558.64 Não conseguimos acesso a nenhum computador com Mac OS para testar o game nas versões mais recentes do Safari. Finalizando a última etapa, temos o seguinte gráfico de Gantt: GRÁFICO 5 - Gráfico de Gantt – Término da Etapa 4. Fonte: O autor (2014) 5.2 VERIFICAÇÃO DE ÍNDICES DE DESEMPENHO De acordo com DUTRA (2007), uma revisão do projeto deve ser realizada a cada término de etapa a fim de analisar os resultados obtidos e replanejar o projeto caso houver a necessidade. Seguindo este modelo, elaboramos o QUADRO 8, com especificação detalhada de cada etapa:
  • 68. 68 Indicadores de desempenho Etapa 1 – Pesquisa Cronograma: Projeto está adiantado. Orçamento: Orçamento não foi violado. Tecnologia: Os equipamentos adquiridos foram capazes de suprir todas as necessidades desta etapa. Etapa 2 – Desenvolvimento backend Cronograma: Projeto está adiantado. Leve atraso no desenvolvimento da intranet base, mas foi compensado com a agilização das outras tarefas. Orçamento: Orçamento não foi violado. Tecnologia: Linguagens de programação e frameworks escolhidos deram um desempenho satisfatório. Etapa 3 – Desenvolvimento frontend Cronograma: Projeto está adiantado. Orçamento: Orçamento não foi violado. Tecnologia: As tecnologias selecionadas previamente ajudaram na aceleração do desenvolvimento do projeto. Etapa 4 - Testes Cronograma: Projeto está adiantado. Orçamento: Orçamento não foi violado. Tecnologia: As tecnologias selecionadas previamente ajudaram na aceleração do desenvolvimento do projeto. QUADRO 8 - Indicadores de desempenho. Fonte: Adaptado (DUTRA, 2007 apud MENEZES, 2001)
  • 69. 69 5.3 AJUSTES / MODIFICAÇÕES DE PROJETO Durante a fase de desenvolvimento e testes, várias alterações foram feitas visando aprimoramentos na forma de jogar e também servindo de correções para bugs não previstos anteriormente. Além das correções citadas no relatório de acompanhamento da última etapa, a principal alteração feita refere-se ao uso das funções setTimeout e setInterval do próprio Javascript. Ambas não foram capazes de prover um desempenho satisfatório na hora de tornar a função principal do game recursiva. Através delas, mesmo chamando a função com um milisegundo de atraso, o processamento levava mais de cinco milisegundos para acontecer, o que acarretava em atrasos na exibição de legendas e trocas de acordes. A solução encontrada foi um uma implementação cross-broswer da API setImmediate (proposta pela Microsoft para executar funções de maneira assíncrona e diminuir a carga de recursos consumidas pelo navegador). A última modificação importante foi no sistema de pontuação: inicialmente, havia planejado o usuário começar o jogo com cinquenta pontos e atingir no máximo cem pontos. Conforme a música fosse tocando a pontuação iria decaindo, desta maneira, caso o usuário permanecesse em silêncio a sua pontuação final seria zero. O sistema de pontuação final foi simplificado: a pontuação inicia em zero e vai aumentando gradativamente as notas emitidas corretamente. Ao remover este limite de pontuação, no ponto de vista da equipe do projeto, a competição entre os jogadores será infinita. Sempre haverá disputa pela maior pontuação. 5.4 PROTÓTIPO DO PROJETO Na visão da equipe, a prototipagem foi uma etapa muito importante. Foi a partir dela que conseguimos identificar e melhorar o desenvolvimento em vários pontos críticos no decorrer do projeto. A técnica escolhida pela equipe e que melhor se adaptou no desenvolvimento foi a técnica de prototipagem evolutiva: conforme fomos desenvolvendo, fomos implementando as alterações ao protótipo online.
  • 70. 70 Apesar de termos demorado mais no desenvolvimento e implementação, acabamos ganhando mais tempo prevendo e contornando algumas situações que poderiam ser catastróficas para a finalização do projeto. 5.5 PROJETO PILOTO O projeto piloto se encontra disponível no link http://karaokeweb- lippep.rhcloud.com/ e o jogo pode ser testado em qualquer computador, desde que se utilize um navegador com suporte ao web áudio. Para acessar o sistema administrativo, o seguinte endereço deve ser acessado: http://karaokeweb-lippep.rhcloud.com/sysadmin. A fins de demonstração, o usuário para acesso é “felippe@dblinks.com.br” e a senha “123456”, ambos sem as aspas.
  • 71. 71 6 ENCERRAMENTO DO PROJETO Para encerramento do projeto apresenta-se a validação, a apresentação final e os resultados medidos. 6.1 VALIDAÇÃO DO PROJETO A validação do projeto foi realizada em três etapas. Na primeira delas, o objetivo era a otimização do carregamento do site. Para isto, foi necessária a utilização de duas ferramentas:  JS CSS Minify Compress: plug-in disponível para instalação na própria IDE utilizada para o desenvolvimento do projeto (Netbeans IDE 7.4). Com ele, comprimimos todo o CSS e JS utilizados no site, diminuindo assim o tamanho de cada arquivo.  PageSpeed: extensão do navegador Google Chrome, fornecida pela própria Google. Através dela, foi possível mensurar e otimizar scripts e imagens que poderiam acarretar em um carregamento mais lento do site. Na segunda etapa, foi estipulado a validação do código HTML de acordo com as normas estabelecidas pela W3C. Para isto, foi utilizado uma ferramenta disponibilizada por eles: W3C Markup Validation Service, disponível em http://validator.w3.org/. Na terceira e última etapa, decidimos elaborar um questionário de avaliação de usabilidade incluso no próprio site. O questionário visa obter o feedback e o índice de aceitação dos usuários que utilizaram o sistema, e pode ser acessado através do menu ou ao terminar uma música. Além das perguntas visíveis, alguns dados referentes ao sistema operacional e navegador utilizados também são enviados.
  • 72. 72 FIGURA 45 - Questionário de avaliação de usabilidade. Fonte: O autor (2014) As opções disponíveis para as questões referente ao layout, facilidade de uso, carregamento do site, jogabilidade e sincronismo entre áudio e legenda eram:  Excelente;  Bom;  Regular;  Ruim;  Péssimo. As opções disponíveis para a largura de banda de conexão eram:  Abaixo de 1MBps;  Entre 1MBps e 2MBps;  Entre 2MBps e 4MBps;  Entre 5MBps e 10MBps;  Acima de 10MBps.
  • 73. 73 6.2 ENTREGA / APRESENTAÇÃO FINAL O projeto encontra-se disponível através do link http://karaokeweb- lippep.rhcloud.com/ e foi compartilhado através das redes sociais para que o maior número possível de pessoas pudessem testar. O feedback agradou a equipe do projeto, pois houve um grande número de pessoas que testaram este browser game e nos mandaram mensagens através das redes sociais. Apesar disto, o percentual de pessoas que responderam o questionário foi baixo em relação ao total de pessoas que jogaram, e menor ainda os que utilizaram o sistema de pontuação. O acesso ao sistema administrativo permaneceu confidencial, pois não há a necessidade de termos um feedback sobre o gerenciamento do projeto. 6.3 MEDIÇÃO DOS RESULTADOS Os resultados obtidos após aplicação dos índices de avaliação foram excelentes. Utilizamos as mesmas ferramentas para comparação do projeto com um dos sites mais visitados atualmente no Brasil, a UOL. Através do PageSpeed Insights10 , conseguimos uma pontuação de 92 (de um máximo de 100), enquanto a UOL tem uma pontuação de 81. Veja: FIGURA 46 - PageSpeed - Karaokê Web. Fonte: PageSpeed Insights 11 10 Disponível em https://developers.google.com/speed/pagespeed/insights. Acesso em out 2014. 11 Disponível em https://developers.google.com/speed/pagespeed/insights/?url=karaokeweb- lippep.rhcloud.com. Acesso em out 2014.
  • 74. 74 FIGURA 47 - PageSpeed - UOL. Fonte: PageSpeed Insights 12 Utilizamos outra ferramenta para verificarmos quanto tempo cada site demorava para carregar, e os índices foram ainda melhores: Karaokê Web teve mais que o dobro de velocidade para abrir do que o site comparado. FIGURA 48 – WebPage Test - Karaokê Web. Fonte: WebPage Test 13 12 Disponível em https://developers.google.com/speed/pagespeed/insights/?url=uol.com.br. Acesso em out 2014. 13 Disponível em http://www.webpagetest.org/result/141007_B2_10T0/. Acesso em out 2014.
  • 75. 75 FIGURA 49 - WebPage Test – UOL. Fonte: WebPage Test 14 De acordo com o validador da W3C, nosso projeto também está de acordo com as normas e regras estabelecidas: FIGURA 50 - Validação HTML - W3C. Fonte: W3C Markup Validation Service 15 Através do formulário de avaliação de usabilidade, conseguimos os seguintes resultados: Avaliação de Usabilidade Número de respostas obtidas: 10 Pergunta Respostas Percentual Layout Excelente – 3 Bom – 6 Regular – 1 Ruim – 0 Péssimo – 0 Excelente – 30% Bom – 60% Regular – 10% Ruim – 0% Péssimo – 0% Facilidade de Uso Excelente – 5 Bom – 4 Regular – 1 Ruim – 0 Péssimo – 0 Excelente – 50% Bom – 40% Regular – 10% Ruim – 0% Péssimo – 0% 14 Disponível em http://www.webpagetest.org/result/141007_XM_10NV/. Acesso em out 2014. 15 Disponível em http://validator.w3.org/check?uri=http%3A%2F%2Fkaraokeweb- lippep.rhcloud.com%2F&charset=%28detect+automatically%29&doctype=Inline&group=0. Acesso em out 2014.
  • 76. 76 Carregamento do Site: Excelente – 7 Bom – 2 Regular – 1 Ruim – 0 Péssimo – 0 Excelente – 70% Bom – 20% Regular – 10% Ruim – 0% Péssimo – 0% Sua Conexão: Abaixo de 1MBps – 0 Entre 1MBps e 2MBps – 2 Entre 2MBps e 5MBps – 7 Entre 5MBps e 10MBps – 1 Acima de 10MBps – 0 Abaixo de 1MBps – 0% Entre 1MBps e 2MBps – 20% Entre 2MBps e 5MBps – 70% Entre 5MBps e 10MBps – 10% Acima de 10MBps – 0% Jogabilidade Excelente – 8 Bom – 2 Regular – 0 Ruim – 0 Péssimo – 0 Excelente – 80% Bom – 20% Regular – 0% Ruim – 0% Péssimo – 0% Utilizou sistema de pontuação Sim – 4 Não - 6 Sim – 40% Não – 60% Sincronismo entre áudio e legenda Excelente – 8 Bom –1 Regular – 1 Ruim – 0 Péssimo – 0 Excelente – 80% Bom – 10% Regular – 10% Ruim – 0% Péssimo – 0% Jogará mais vezes Sim – 10 Não - 0 Sim – 100% Não – 0% QUADRO 9 - Respostas obtidas na avaliação de usabilidade. Fonte: O autor (2014) Podemos notar um índice satisfatório de aprovação do projeto. Porém, poucas foram as pessoas que utilizaram o sistema de pontuação, e apenas duas registraram a sua pontuação no ranking do site. Algumas alegaram não possuir microfone na hora do teste. Além disto, capturamos os seguintes dados referentes ao navegador e sistema operacional utilizados por estas pessoas:
  • 77. 77 Avaliação de Usabilidade – Navegadores e Sistemas Operacionais User Agent Browser Plataform Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 Chrome Unknown Windows OS Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 Firefox Unknown Windows OS Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 Chrome Unknown Windows OS Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 Chrome Unknown Windows OS Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 Firefox Unknown Windows OS Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2166.2 Chrome Mac OS X
  • 78. 78 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2166.2 Safari/537.36 Chrome Mac OS X Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2166.2 Safari/537.36 Chrome Mac OS X Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 Chrome Windows XP Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 Chrome Unknown Windows OS QUADRO 10 - Navegador e SO utilizados pelas pessoas que responderam a avaliação de usabilidade. Fonte: O autor (2014) Como podemos perceber, todos os navegadores utilizados estão atualizados a ponto de possuírem suporte ao web áudio. O Google Chrome tem um índice esmagador de utilizadores, cerca de 80%. Mesmo as pessoas com Mac OS utilizaram o navegador da Google ao invés do navegador nativo do sistema operacional (Safari).
  • 79. 79 7 CONSIDERAÇÕES FINAIS As considerações finais abordam a melhoria do processo de desenvolvimento do projeto em si, documentando e analisando pontos cruciais da memória do projeto. Aqui, foi registrado a opinião pessoal de cada membro da equipe, conforme modelo de formulário proposto por (DUTRA, 2007). Lições Aprendidas Título do Projeto: Desenvolvimento de Karaokê Web com conceitos de Gamificação Data de Início do Projeto: 01/03/2014 Data de Entrega de Projeto: 24/10/2014 Seu nome: Felippe Rodrigo Puhle Sua função no projeto: Gestor e desenvolvedor Em sua opinião, cite três itens que mais contribuíram para que o sucesso no projeto pudesse ser obtido.  Comprometimento da equipe;  Conhecimento nas linguagens de programação utilizadas;  Aquisição de equipamentos necessário para o desenvolvimento. Em sua opinião, quais os três itens que contribuíram para que o projeto falhasse e o que pode ser feito para evitar/prevenir isto em projetos futuros?  Mal planejamento do projeto;  Falta de tempo para desenvolvimento;  Incompatibilidade do karaokê com navegadores; Devido à falta de experiência do gestor, o tempo de desenvolvimento do projeto era bem menor do que o previsto. Um gestor com maior experiência e uma equipe maior (agregando maior conhecimento) ajudaria a solucionar os problemas. Identifique os obstáculos críticos ou ponto chave que impediram o desenvolvimento e o progresso do projeto. Como a equipe era composta por apenas uma pessoa, as tarefas tiveram de ser desenvolvidas consecutivamente. Com uma equipe maior, várias tarefas poderiam ser feitas simultaneamente, e alguns obstáculos poderiam ser contornados de maneira mais rápida devido à variedade de conhecimentos que seriam agregados desde a etapa de planejamento do projeto.
  • 80. 80 Identifique os fatores críticos que geraram um desvio significativo na equipe: As funções nativas de timeout do Javascript não foram capazes de prover o desempenho necessário para as funções recursivas do jogo. Foram feitos diversos testes até chegarmos a uma solução. Baseado em sua experiência neste projeto, quais seriam as três recomendações que você faria para uma próxima equipe de projeto?  Planejar o projeto mais detalhadamente, de maneira a conseguir mensurar melhor custos e tempo para desenvolvimento;  Compor a equipe com um número maior de membros, de maneira que o conhecimento de cada pessoa agregue valor ao projeto;  Explorar outras linguagens de programação, com recursos melhores ao tratamento do áudio. Identifique pontos positivos no processo de desenvolvimento do seu projeto: Apesar do tempo de planejamento de cada tarefa ter sido mensurado errado, a sequência e ordem de elaboração e desenvolvimento facilitaram as próximas etapas. Identifique oportunidades de melhoria no processo de desenvolvimento do seu projeto: Com uma equipe maior, o planejamento do projeto seria diferente. A equipe poderia ser dividida em equipes menores, e as etapas e tarefas divididas de maneira que pudessem ser feitas de maneira simultânea, onde cada equipe seria responsável pelas tarefas correspondentes ao ponto forte dos seus integrantes. Novas Ideias e Oportunidades Perspectivas Futuras Adição de novos recursos ao jogo e aprimoramento da interface, visando atingir um maior número de jogadores. Além disto, deverão ser feitas melhorias na administração do site, de maneira que o cadastro de músicas se torne fácil e intuitivo. Outras informações relevantes QUADRO 11 - Formulário de Lições Aprendidas. Fonte: Adaptado (DUTRA, 2007)
  • 81. 81 7.1 LIÇÕES APRENDIDAS Chegando ao fim do projeto, podemos perceber que o total sucesso do seu desenvolvimento se deve aos conteúdos e propostas sugeridos por (DUTRA, 2007) e (FACCIONI, 2006). Através destes, foi possível manter o projeto rigorosamente em dia, através de técnicas de controle e previsão de acontecimentos que poderiam atrasar sua entrega ou até mesmo o seu cancelamento. Um dos fatos a ser citado aqui é a utilização de funções recursivas. No desenvolvimento de games, este tipo de função é comum. A recursividade trata de uma função chamar a ela mesmo no término da sua execução. Porém, cuidados devem ser tomados para não cair em um loop infinito. Podemos destacar também o aprendizado adquirido no trabalho com a API do web áudio. Através dela, a equipe pode desenvolver a lógica necessária para o desenvolvimento da interface e funcionamento de um jogo. 7.2 NOVAS IDEIAS E OPORTUNIDADES O projeto não deve parar por aí. Novas ideias já estão em etapa de planejamento e pesquisa para futuros aprimoramentos e correções. A primeira delas refere-se a integração de uma nova linguagem de programação para o tratamento do áudio no momento do cadastro de uma nova música. Hoje, os administradores do sistema precisam cadastrar manualmente as trocas de acordes (de milissegundos em milissegundos), e isto é um processo trabalhoso. Através de algumas pesquisas iniciais, encontramos algumas bibliotecas para tratamento de áudio nas linguagens de programação Java e Python. A segunda ideia refere-se ao tratamento de tempo durante o jogo. Hoje, trabalhamos com a verificação do tempo de execução através de milissegundos de diferença do início do jogo. Futuramente, pretendemos trabalhar com a noção de compassos e bpm (batidas por minutos). Assim poderemos aprimorar o sistema de pontuação, cadastrando exatamente qual nota o usuário deverá emitir para que pontue no jogo (diferentemente de hoje, que pode ser cantado as três notas do acorde).
  • 82. 82 Terminando a divisão em compassos e cadastrando devidamente as notas emitidas pelo usuário, tentaremos tornar o jogo multiplayer da seguinte maneira:  Cadastrar segunda e terceira voz (vocais de apoio);  Adição de outros instrumentos, jogando através do teclado ou de algum equipamento que forneça suporte ao mapeamento midi. A opção multiplayer fará com que o nível de dificuldade aumente, pois todos os usuários deverão jogar em sincronia, porém, uma correta execução de todos fará com que a pontuação atinja níveis não alcançados jogando sozinho. Todas estas ideias deverão ser testadas cuidadosamente a fim de sabermos suas viabilidades. Além disto, o aprimoramento do layout é um fator crucial para tornar o site mais atrativo e conhecido pelo público alvo.
  • 83. 83 REFERÊNCIAS BOOTSTRAP. Disponível em: <http://getbootstrap.com/>. Acesso em 25 jun 2014. CAN I USE. Web Audio API. Disponível em: <http://caniuse.com/#feat=audio-api>. Acesso em 05 jun 2014. CODEIGNITER. Disponível em: <https://ellislab.com/codeigniter>. Acesso em 02 jul 2014. DUTRA, Cynthia Beatriz Scheffer. Projeto Integrador Web (I e II). 3 ed. Palhoça: UnisulVirtual, 2007. FACCIONI FILHO, Mauro. Gestão de projetos e de equipes. 4 ed. Palhoça: UnisulVirtual, 2011. FONT AWESOME. Disponível em: <http://fontawesome.io/>. Acesso em 26 jun 2014. GITHUB. YuzuJS / setImmediate. Disponível em: <https://github.com/YuzuJS/setImmediate>. Acesso em 18 set 2014. GOOGLE. Site de buscas. Disponível em: <http://www.google.com.br>. Acesso em: 07 mar. 2014. JQUERY. Disponível em: <http://jquery.com/>. Acesso em 23 jun 2014. MACHADO, Pedro. Mercado de games movimenta US$ 2,63 bilhões no País e pode crescer ainda mais. Disponível em: <http://anoticia.clicrbs.com.br/sc/economia/negocios/noticia/2014/03/mercado-de-games- movimenta-us-2-63-bilhoes-no-pais-e-pode-crescer-ainda-mais-4447494.html>. Acesso em 30 set 2014. MDN – Mozilla Developer Network. API Web Áudio. Disponível em: <https://developer.mozilla.org/pt-BR/docs/Web/API/API_Web_Audio>. Acesso em 02 jun 2014. MDN – Mozilla Developer Network. CSS. Disponível em: <https://developer.mozilla.org/pt- BR/docs/Web/CSS>. Acesso em 01 jul 2014. MDN – Mozilla Developer Network. Javascript. Disponível em: <https://developer.mozilla.org/pt-BR/docs/Web/JavaScript>. Acesso em 01 jul 2014. MYSQL. Disponível em: <http://www.mysql.com/>. Acesso em 30 jun 2014. Newzoo Games Market Research. Asia-Pacific Contributes 82% of the $6Bn Global Games Market Growth in 2014. Disponível em: <http://www.newzoo.com/insights/asia-pacific- contributes-82-6bn-global-games-market-growth/>. Acesso em 01 out 2014. PAGESPEED TOOLS. Disponível em: <https://developers.google.com/speed/pagespeed/>. Acesso em 05 out 2014.
  • 84. 84 PHP. Disponível em: <http://php.net/>. Acesso em 30 jun 2014. TOTVS. Gamification: conheça essa tendência. Disponível em: <http://blog.totvs.com/gamification-conheca-essa-tendencia/>. Acesso em 26 set 2014. W3CSCHOOLS. Site com conteúdo para desenvolvedores. Disponível em: <http://www.w3schools.com>. Acesso em: 07 mar. 2014. WEBPAGE TEST. Test a website’s performance. Disponível em: <http://www.webpagetest.org/>. Acesso em 05 out 2014. WIKIPEDIA. Anexo: Lista de navegadores. Disponível em: <http://pt.wikipedia.org/wiki/Anexo:Lista_de_navegadores>. Acesso em 02 jun 2014. WIKIPEDIA. Cascading Style Sheets. Disponível em: <http://pt.wikipedia.org/wiki/Cascading_Style_Sheets>. Acesso em 01 jul 2014. WIKIPEDIA. CodeIgniter. Disponível em: <http://pt.wikipedia.org/wiki/CodeIgniter>. Acesso em 02 jul 2014. WIKIPEDIA. Enciclopédia online. Disponível em: <http://www.wikipedia.org>. Acesso em: 07 mar. 2014. WIKIPEDIA. Javascript. Disponível em: <http://pt.wikipedia.org/wiki/JavaScript>. Acesso em 01 jul 2014. WIKIPEDIA. jQuery. Disponível em: <http://pt.wikipedia.org/wiki/JQuery>. Acesso em 23 jun 2014. WIKIPEDIA. MySQL. Disponível em: <http://pt.wikipedia.org/wiki/MySQL>. Acesso em 30 jun 2014. WIKIVERSIDADE. Teoria Musical. Disponível em: <http://pt.wikiversity.org/wiki/Teoria_musical>. Acesso em 10 set 2014.