MY MUSIC: APLICATIVO DE COMPOSIÇÃO...
Transcript of MY MUSIC: APLICATIVO DE COMPOSIÇÃO...
UNIVERSIDADE REGIONAL DE BLUMENAU
CENTRO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIA DA COMPUTAÇÃO – BACHARELADO
MY MUSIC:
APLICATIVO DE COMPOSIÇÃO MUSICAL PARA LEIGOS
FABRÍCIO WEITGENANT
BLUMENAU 2014
2014/1-07
FABRÍCIO WEITGENANT
MY MUSIC:
APLICATIVO DE COMPOSIÇÃO MUSICAL PARA LEIGOS
Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Ciência da Computação — Bacharelado.
Prof. Aurélio Faustino Hoppe, Mestre – Orientador
BLUMENAU 2014
2014/1-07
MY MUSIC:
APLICATIVO DE COMPOSIÇÃO MUSICAL PARA LEIGOS
Por
FABRÍCIO WEITGENANT
Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por:
______________________________________________________ Presidente: Prof. Aurélio Faustino Hoppe, Mestre – Orientador, FURB
______________________________________________________ Membro: Prof. Dalton Solano dos Reis, Mestre – FURB
______________________________________________________ Membro: Prof. Marcel Hugo, Mestre – FURB
Blumenau, 10 de julho de 2014.
Dedico este trabalho à minha família, à minha namorada e aos meus amigos, pois todos sempre me incentivaram para a conclusão do mesmo. Dedico também este trabalho, de maneira especial ao meu padrinho Nelson Gramkow, que sempre foi um grande incentivador e motivador para mim durante todo o meu curso; a partir do começo deste ano passei a guardar sua lembrança em minha memória e o levo em meu coração.
AGRADECIMENTOS
A Deus pelo Dom da Vida.
À minha família por seu apoio, motivação, compreensão e por seu imenso amor.
A minha namorada, Gesiane Cristina Franke, por seu apoio, motivação, paciência e
compreensão.
Aos meus amigos que sempre manifestaram apoio à minha pessoa para a conclusão
deste trabalho, em especial Elton Cardoso, por suas palavras de motivação e demonstração de
apoio durante todo o desenrolar do TCC.
Ao meu orientador e Mestre, Professor Aurélio Faustino Hoppe, por seu apoio, por
toda a ajuda concedida, pela paciência, compreensão, por acreditar na viabilidade da
continuidade de um trabalho e, também, por confiar à minha pessoa esta continuidade do
trabalho e acreditar no meu potencial.
Não desanimeis jamais embora venham ventos contrários.
Santa Paulina
RESUMO
Este trabalho apresenta uma manutenção evolutiva ao aplicativo de composição musical para
leigos, desenvolvido por Alvarenga (2013), para dispositivos Android. Tal manutenção
propôs adicionar mecanismos de cooperação, coordenação e comunicação ao aplicativo,
tornando-o desta forma, um ambiente colaborativo para a criação de composições musicais.
Para atender a estes mecanismos foi utilizado a API QuickBlox, que provê suporte para a
comunicação entre usuários e o compartilhamento de artefatos. A partir dos testes de
usabilidade e experimentos realizados, conclui-se que o aplicativo atendeu às expectativas
quanto a um editor colaborativo, sendo intuitivo e de fácil utilização.
Palavras-chave: Composição musical. CSCW. Cooperação. Coordenação. Comunicação.
Android.
ABSTRACT
This work presents an adaptive maintenance musical composition for the laity application,
developed by Alvarenga (2013), for Android devices. Such maintenance mechanisms
proposed adding cooperation, coordination and communication to the application, making it
thus a collaborative environment for creating musical compositions. To meet these
mechanisms was used to QuickBlox API that provides support for communication between
users and the sharing of artifacts. From usability tests and experiments, it is concluded that the
application met the expectations of a collaborative editor, with intuitive and easy to use.
Key-words: Musical composition. CSCW. Cooperation. Coordination. Communication.
Android.
LISTA DE ILUSTRAÇÕES
Figura 1 – Modelo de colaboração 3C ..................................................................................... 18
Figura 2 – Modelo de coordenação mediada por computador ................................................. 18
Figura 3 – Modelo de cooperação mediada por computador ................................................... 19
Figura 4 – Interface para criação de composições musicais ..................................................... 20
Figura 5 – Elementos da janela de edição do CODES ............................................................. 21
Figura 6 – Modelo de entrada da rede neural ........................................................................... 22
Figura 7 – Composição individual com notas musicais na grade ............................................ 23
Quadro 1 – Características dos trabalhos correlatos ................................................................. 24
Figura 8 – Diagrama de casos de uso ....................................................................................... 26
Figura 9 – Diagrama de classes com suporte aos mecanismos de coordenação e cooperação 28
Figura 10 – Diagrama de classes com suporte à comunicação (chat) ...................................... 30
Figura 11 – Diagrama de atividades do download/upload de composição ao servidor ........... 32
Quadro 2 – Cadastro do usuário no servidor ............................................................................ 35
Quadro 3 – Login do usuário no serviço de chat ...................................................................... 36
Quadro 4 – Chamada do método de upload de arquivo ........................................................... 37
Quadro 5 – Método que retorna a lista de usuários cadastrados no servidor ........................... 38
Quadro 6 – Método de seleção dos usuários para associação ao arquivo de upload ............... 39
Quadro 7 – Continuação do método de seleção dos usuários (usuários já selecionados) ........ 40
Quadro 8 – Chamada do método de download de arquivos ..................................................... 41
Quadro 9 – Servidor retornando lista de arquivos disponíveis para download ........................ 42
Quadro 10 – Seleção do arquivo para download e marcação da forma de controle de versão 43
Quadro 11 – Download do arquivo e chamada para o controle de versão ............................... 44
Quadro 12 – Método de controle de versão do arquivo (suporte à coordenação) .................... 45
Quadro 13 – Continuação do método de controle de versão .................................................... 46
Quadro 14 – Seleção de abas da interface do chat do aplicativo ............................................. 47
Quadro 15 – Recebimento das salas de bate-papo cadastradas no servidor ............................. 48
Figura 12 – Interface principal do aplicativo e visualização dos itens de menu ...................... 49
Figura 13 – Tela do cadastro do usuário................................................................................... 50
Figura 14 – Lista dos usuários cadastrados no servidor para associação ao arquivo ............... 51
Figura 15 – Arquivos de composições disponíveis para download ......................................... 52
Figura 16 – Tela inicial do chat do aplicativo .......................................................................... 53
Quadro 16 – Perfis dos usuários envolvidos no teste de usabilidade ....................................... 55
Quadro 17 – Respostas quanto ao cenário do aplicativo .......................................................... 56
Quadro 18 – Respostas quanto ao mecanismo de cooperação ................................................. 56
Quadro 19 – Respostas quanto ao mecanismo de coordenação ............................................... 57
Quadro 20 – Respostas quanto ao mecanismo de comunicação .............................................. 57
Quadro 21 – Dispositivos utilizados no experimento de compatibilidade ............................... 58
Quadro 22 – Comparação com os trabalhos correlatos ............................................................ 59
Quadro 23 – Caso de uso UC01 ............................................................................................... 65
Quadro 24 – Caso de uso UC02 ............................................................................................... 66
Quadro 25 – Caso de uso UC03 ............................................................................................... 67
Quadro 26 – Caso de uso UC04 ............................................................................................... 68
Quadro 27 – Caso de uso UC05 ............................................................................................... 69
Quadro 28 – Folha de apresentação e convite para o teste de usabilidade ............................... 71
Quadro 29 – Questionário de perfil de usuário ........................................................................ 71
Quadro 30 – Lista de tarefas envolvendo a execução das funcionalidades do aplicativo ........ 72
Quadro 31 – Questionário de usabilidade do aplicativo ........................................................... 74
LISTA DE SIGLAS
3C – Cooperação, Comunicação e Coordenação
ADT – Android Developer Tools
API – Application Programming Interface
CSCW – Computer Supported Cooperative Work
HTTP – HyperText Transfer Protocol
HTTPS – HyperText Transfer Protocol Secure
JSON – JavaScript Object Notation
REST – REpresentational State Transfer
RF – Requisito Funcional
RNA – Redes Neurais Artificiais
RNF – Requisito Não Funcional
UML – Unified Modeling Language
SUMÁRIO
1 INTRODUÇÃO .................................................................................................................. 13
1.1 OBJETIVOS DO TRABALHO ........................................................................................ 14
1.2 ESTRUTURA DO TRABALHO ...................................................................................... 14
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 16
2.1 COMPOSIÇÃO MUSICAL .............................................................................................. 16
2.2 COMPUTER SUPPORTED COOPERATIVE WORK (CSCW) ....................................... 17
2.3 FERRAMENTA PARA CRIAÇÃO DE COMPOSIÇÕES MUSICAIS PARA
ANDROID ......................................................................................................................... 20
2.4 TRABALHOS CORRELATOS ........................................................................................ 20
2.4.1 CODES ............................................................................................................................ 21
2.4.2 MUSIK ............................................................................................................................ 22
2.4.3 EDITOR MUSICAL ....................................................................................................... 23
2.4.4 Comparação entre os trabalhos correlatos....................................................................... 23
3 DESENVOLVIMENTO DO APLICATIVO .................................................................. 25
3.1 REQUISITOS PRINCIPAIS DO APLICATIVO PROPOSTO ........................................ 25
3.2 ESPECIFICAÇÃO ............................................................................................................ 25
3.2.1 Diagrama de casos de uso ............................................................................................... 25
3.2.1.1 Casos de uso do mecanismo de suporte à cooperação .................................................. 26
3.2.1.2 Casos de uso dos mecanismos de suporte à coordenação e comunicação .................... 27
3.2.2 Diagrama de classes ........................................................................................................ 27
3.2.2.1 Diagrama de classes com suporte à coordenação e à cooperação ................................ 27
3.2.2.2 Diagrama de classes com suporte à comunicação (chat) .............................................. 30
3.2.3 Diagrama de atividades ................................................................................................... 31
3.3 IMPLEMENTAÇÃO ........................................................................................................ 33
3.3.1 Técnicas e ferramentas utilizadas.................................................................................... 33
3.3.2 Etapas da implementação ................................................................................................ 34
3.3.2.1 Implementações com suporte ao mecanismo de cooperação........................................ 34
3.3.2.1.1 Cadastro do usuário .................................................................................................. 34
3.3.2.1.2 Upload de arquivo de composição para o servidor .................................................. 36
3.3.2.2 Implementações com suporte ao mecanismo de coordenação...................................... 41
3.3.2.2.1 Download de arquivo de composição ...................................................................... 41
3.3.2.3 Implementações com suporte à comunicação ............................................................... 47
3.3.2.3.1 Acessar chat ............................................................................................................. 47
3.3.3 Operacionalidade da implementação .............................................................................. 48
3.3.3.1 Operacionalidade com suporte à cooperação................................................................ 49
3.3.3.1.1 Fazer Login / Cadastrar Usuário .............................................................................. 49
3.3.3.1.2 Enviar Composição ao Servidor .............................................................................. 50
3.3.3.2 Operacionalidade com suporte à coordenação.............................................................. 51
3.3.3.2.1 Baixar Composição do Servidor .............................................................................. 51
3.3.3.3 Operacionalidade com suporte à comunicação ............................................................. 52
3.3.3.3.1 Acessar Chat ............................................................................................................ 53
3.4 RESULTADOS E DISCUSSÃO ...................................................................................... 54
3.4.1 Experimento de usabilidade ............................................................................................ 54
3.4.1.1 Metodologia .................................................................................................................. 54
3.4.1.2 Aplicação do teste ......................................................................................................... 54
3.4.1.3 Análise e interpretação dos dados coletados ................................................................ 55
3.4.1.3.1 Análise quanto ao cenário do aplicativo .................................................................. 55
3.4.1.3.2 Análise quanto ao mecanismo de cooperação .......................................................... 56
3.4.1.3.3 Análise quanto ao mecanismo de coordenação ........................................................ 57
3.4.1.3.4 Análise quanto ao mecanismo de comunicação ....................................................... 57
3.4.2 Experimento de compatibilidade..................................................................................... 58
3.4.3 Comparação com trabalhos correlatos ............................................................................ 58
4 CONCLUSÕES .................................................................................................................. 60
4.1 EXTENSÕES .................................................................................................................... 61
REFERÊNCIAS ..................................................................................................................... 62
APÊNDICE A – Detalhamento dos casos de uso ................................................................. 64
APÊNDICE B – Lista de tarefas e questionário de avaliação de usabilidade .................. 70
13
1 INTRODUÇÃO
Segundo Med (1996, p. 9), a música, arte de combinar os sons, vem sendo cultivada
desde as mais remotas eras. Os chineses, por exemplo, três mil anos antes de Cristo, já
desenvolviam teorias musicais complexas.
A música não é apenas uma arte, mas também uma ciência. Por isso, os músicos
precisam de uma técnica bem apurada; e esta aprende-se durante longos anos de estudo
(MED, 1996, p. 9). Tais conhecimentos teóricos e práticos, somados à experiência adquirida
ao longo do tempo, possibilitam a estes tipos de profissionais a criação, por exemplo, de
composições musicais. A composição é parte integrante nas disciplinas que estruturam a
ciência musical (MED, 1996, p. 9).
A composição musical é uma ferramenta poderosa para desenvolver a compreensão
sobre o funcionamento dos elementos musicais, pois permite um relacionamento direto com o
material sonoro. Trabalhando-se a partir dessa, pode-se decidir sobre a ordenação temporal e
espacial dos sons, bem como sobre a maneira de produzir os sons (SWANWICK; FRANÇA,
2002, p. 09).
Além do citado, outros compositores profissionais compartilham com os educadores a
crença no potencial educativo da composição. Promover a composição é um dever da
educação musical. A educação musical deve oferecer espaço para a criação, não se limitando
apenas à reprodução de obras de compositores do passado (SWANWICK; FRANÇA, 2002, p.
09).
Para tanto, é necessário que, principalmente as crianças e adolescentes, tenham um
ambiente interativo e estimulante, onde possam desfrutar com liberdade, confiança e
interatividade de instrumentos musicais e objetos. A educação musical deve preservar,
principalmente nas crianças, o instinto de curiosidade, exploração, percepção e fantasia. Nos
processos iniciais da educação musical o objetivo deve ser brincar, explorar, descobrir
possibilidades expressivas dos sons e sua organização, e não dominar técnicas complexas de
composição, o que poderia resultar em um esvaziamento do seu potencial educativo
(SWANWICK; FRANÇA, 2002, p. 10).
Com o avanço da tecnologia da informação, e com o advento da mobilidade, muitas
aplicações foram sendo migradas dos dispositivos estacionários para dispositivos móveis,
como por exemplo, tablets e smartphones. Com as aplicações envolvendo a área da
computação musical não foi diferente. Muitos aplicativos foram e vêm sendo desenvolvidos
para esta área envolvendo a composição, editoração e execução musical. Os dispositivos
14
móveis auxiliam neste processo, à medida que possibilitam ao usuário o acesso rápido e em
qualquer lugar, do conteúdo de interesse. A tecnologia existente nos tablets e smartphones,
por exemplo, do toque na tela, provém uma interação tão grande, que aplicativos para
composição musical nestes dispositivos acabam-se tornando muitas vezes uma brincadeira
divertida e prazerosa, a partir do momento em que, arrastando componentes numa interface,
sons são gerados e reproduzidos. Muitos aplicativos dão suporte à usuários com pouco ou
nenhum conhecimento da teoria musical, para que esses também possam gerar artefatos
musicais, como uma composição, por exemplo, que possa a vir ser executada e apreciada.
Diante do exposto, este trabalho propôs a continuidade do desenvolvimento de um
aplicativo de composição musical voltada para leigos em música, proposto por Alvarenga
(2013). Com foco no aprendizado musical colaborativo, o aplicativo proverá de suporte à
cooperação, à coordenação e à comunicação, tornando-se, desta forma, um aplicativo multi-
usuário e com ambiente colaborativo.
1.1 OBJETIVOS DO TRABALHO
O objetivo deste trabalho é fazer uma manutenção evolutiva no aplicativo
desenvolvido por Alvarenga (2013), onde leigos em música possam de forma interativa,
realizarem suas próprias composições.
Os objetivos específicos do trabalho são:
a) incluir mecanismos de comunicação (chat), coordenação (controle de versão) e
cooperação (editor colaborativo) ao trabalho de Alvarenga (2013).
1.2 ESTRUTURA DO TRABALHO
Este trabalho está subdividido em quatro capítulos, sendo neste primeiro apresentado
uma introdução ao tema juntamente com a motivação para realização do mesmo, os objetivos
do trabalho e a estrutura o qual é apresentado.
O segundo capítulo contém a fundamentação teórica necessária para a compreensão do
assunto e da solução implementada no aplicativo.
O terceiro capítulo apresenta todo o processo de especificação da manutenção
evolutiva proposta ao aplicativo de composição musical, onde são apresentados os requisitos,
bem como os diagramas de casos de uso, de classes e de atividades. Também é apresentado
detalhes da implementação e da operacionalidade das extensões propostas do ponto de vista
do usuário.
15
O último capítulo, por sua vez, apresenta as conclusões a respeito dos resultados
obtidos, além de sugestões para trabalhos futuros.
16
2 FUNDAMENTAÇÃO TEÓRICA
Na seção 2.1 são apresentados os fundamentos da composição musical. A seção 2.2
descreve sobre Trabalho Cooperativo Suportado por Computador (CSCW). A seção 2.3, por
sua vez, traz uma ferramenta de composição musical para leigos desenvolvida por Alvarenga
(2013) e ao qual está sendo desenvolvida a manutenção evolutiva como foco deste trabalho.
Por fim, a seção 2.4 traz três trabalhos correlatos ao aplicativo proposto.
2.1 COMPOSIÇÃO MUSICAL
Segundo Swanwick e França (2002, p. 08), a composição é um processo essencial da
música devido à sua própria natureza: qualquer que seja o nível de complexidade, estilo ou
contexto, é o processo pelo qual toda e qualquer obra musical é gerada. Estes afirmam ainda
que, “esse argumento é suficiente para legitimá-la como atividade válida e relevante na
educação musical”. Porém, esses mesmos autores relatam que, alguns compositores adotam
uma posição contrária, qualificando a composição como atividade exclusive dos grandes
mestres da história da música. Mas, segundo Swanwick e França (2002, p. 09), os próprios
mestres da composição discordam dessa última afirmação dizendo que:
Composição não é um ramo especial do conhecimento que deve ser ensinado àqueles talentosos ou suficientemente interessados. Ela é simplesmente a culminação de um sistema saudável e estável de educação, cujo ideal é formar não um instrumentista, cantor ou arranjador especialista, mas um músico com um conhecimento musical universal... (SWANWICK; FRANÇA, 2002).
Além de ser uma ferramenta poderosa no desenvolvimento da compreensão sobre o
funcionamento dos elementos musicais, a composição também pode promover um
progressivo domínio da técnica e controle dos instrumentos para a realização do resultado
musical desejado, pois fortalece a associação entre a ação e o som (SWANWICK; FRANÇA,
2002, p. 9-10). Ainda, segundo Swanwick e França (2002, p. 10), ao tocarem suas peças, os
alunos tem que descobrir a maneira mais eficaz de abordar o instrumento para expressar sua
concepção musical. Portanto, ela proporciona um desenvolvimento técnico com um propósito
musical direto, oferecendo uma contribuição preciosa para o desenvolvimento musical das
crianças.
A idéia de se referir a uma peça de, talvez, menos de um minuto de duração como composição, ou ‘performance’, quando tudo o que podemos estar ouvindo são algumas notas tocadas em um instrumento de percussão, parece a princípio exagerada para ser levada a sério por alguns músicos. Mas, como professores de música, concentramo-nos nos processos envolvidos, e é provável que as primeiras manifestações sejam extremamente simples se comparadas com o que sabemos ser possível no auge da realização musical. Quando os alunos selecionam e organizam sons em uma peça de música, por mais simples que suas tentativas possam ser, ainda assim estão compondo. (SWANWICK; FRANÇA, 2002).
17
No âmbito de uma educação musical abrangente, a composição funciona como um
pilar do desenvolvimento musical. A composição, aliada à apreciação (ouvir) e performance
(prática instrumental) são processos fundamentais da música enquanto fenômeno e
experiência (SWANWICK; FRANÇA, 2002, p. 08).
2.2 COMPUTER SUPPORTED COOPERATIVE WORK (CSCW)
Segundo Castilho (2008), CSCW é uma ciência multidisciplinar que estuda as formas
de trabalho em grupo auxiliadas por tecnologia e comunicação.
Como requisitos para aplicações CSCW, pode-se citar (MOECKEL, 2003, p. 8):
a) facilitar a colaboração entre os indivíduos;
b) permitir acesso aos dados independente da localização dos usuários;
c) permitir a recuperação de informações armazenadas na base de dados;
d) gerenciar o controle de acesso quando da tentativa de vários usuários alterarem um
mesmo dado ao mesmo tempo;
e) reconhecer que as mudanças são frequentes neste contexto, e que por isso, deve ser
possível redefinir procedimentos e processos, além de disseminar as mudanças
ocorridas aos envolvidos;
f) garantir que as informações usadas no trabalho cooperativo sejam disseminadas
entre a equipe.
Para Gerosa, Fuks e Lucena (2003), para colaborar, os indivíduos têm que dialogar
(comunicarem-se), organizarem-se e operar em conjunto num espaço compartilhado
(cooperar). As trocas ocorridas durante a comunicação geram compromissos que são
gerenciados pela coordenação, que por sua vez organiza e dispõe as tarefas que são
executadas na cooperação. A Figura 1 apresenta o modelo de colaboração 3C (Comunicação,
Coordenação e Cooperação), que sumariza os conceitos abordados.
18
Figura 1 – Modelo de colaboração 3C
Fonte: Gerosa, Fuks e Lucena (2003).
Segundo Gerosa, Fuks e Lucena (2003), as tarefas da colaboração são originadas dos
compromissos assumidos na comunicação. O grupo coordena-se através de mecanismos de
coordenação de forma a garantir a execução das tarefas, respeitando suas interdependências.
A Figura 2 exibe o modelo da coordenação de atividades.
Figura 2 – Modelo de coordenação mediada por computador
Fonte: Gerosa, Fuks e Lucena (2003).
Com ou sem mecanismos de coordenação explícitos, informações de percepção são
essenciais para a coordenação do grupo. As informações de percepção são necessárias
principalmente durante a fase dinâmica da coordenação, para transmitir mudanças de planos e
ajudar a gerar o novo entendimento compartilhado (GEROSA; FUKS; LUCENA, 2003).
Tratando-se de mecanismos explícitos de coordenação, o controle de versões (objetos)
mediado por computador, conforme mostra a Figura 2, auxilia no processo do
compartilhamento dos objetos entre os membros do grupo. É de suma importância que cada
membro do grupo esteja ciente de novas versões do projeto e que, versões anteriores possam
19
ser arquivadas ou descartadas se for o caso (MACEDO; KUTOVA; PIMENTEL, 1999, p.
12).
Comunicação e coordenação, apesar de vitais, não são suficientes. É necessário espaço
compartilhado para criar entendimento compartilhado. Cooperação é a operação conjunta dos
membros do grupo no espaço compartilhado, visando a realização das tarefas. Eles cooperam
produzindo, manipulando e organizando informações e construindo e refinando objetos de
cooperação (GEROSA; FUKS; LUCENA, 2003). A Figura 3 exibe o modelo de cooperação
com elemento de percepção.
Figura 3 – Modelo de cooperação mediada por computador
Fonte: Gerosa, Fuks e Lucena (2003).
O registro da informação que ocorre na cooperação visa aumentar o entendimento
entre as pessoas, reduzindo a incerteza e a equivocalidade. Os indivíduos trabalham as
informações e se comunicam na tentativa de solucionar os desentendimentos (GEROSA;
FUKS; LUCENA, 2003).
Os indivíduos buscam nos elementos de percepção as informações necessárias para montar seu contexto de trabalho e antecipar ações e necessidades, bem como identificar as intenções dos companheiros do grupo, de forma a tornar possível prestar assistência ao trabalho deles quando for possível e necessário. Além disto, os elementos de percepção ajudam a identificar o papel e as tarefas de cada um com relação às metas da colaboração e com os objetos da cooperação. (GEROSA; FUKS; LUCENA, 2003).
20
2.3 FERRAMENTA PARA CRIAÇÃO DE COMPOSIÇÕES MUSICAIS PARA ANDROID
Segundo Alvarenga (2013), o aplicativo desenvolvido visa fornecer a usuários leigos
em composição musical os recursos necessários para criarem composições simples. A
representação musical utilizada encaixa peças que representam pequenos trechos de música,
em uma grid. Na Figura 4 é exibido um exemplo de música (composição) após seu
carregamento pela ferramenta.
Figura 4 – Interface para criação de composições musicais
Fonte: Alvarenga (2013, p. 43).
A ferramenta possui as opções de abrir uma composição previamente salva, editar,
salvar e reproduzi-las. É possível alterar o volume de cada uma das trilhas de áudio existentes
na composição e alterar e/ou adicionar instrumentos musicais à composição (ALVARENGA,
2013, p. 42-45).
Para o desenvolvimento do aplicativo foi utilizada a ferramenta Android Developer
Tools (ADT), que é um pacote que contém o ambiente de desenvolvimento Eclipse,
juntamente com os plugins necessários para o desenvolvimento de aplicativos Android. Foi
utilizado o componente de código aberto HorizontalVariableListView para a interface
gráfica e testados os componentes MediaPlayer e SoundPool para a execução do áudio.
2.4 TRABALHOS CORRELATOS
A seguir são apresentadas três ferramentas que auxiliam a composição musical por
leigos: CODES (MILETTO et al., 2005), que é um ambiente web para composição musical de
forma cooperativa e colaborativa; o MusiK (PINHATI; FERLIN, 2012), que é uma
21
ferramenta de auxílio à composição musical baseada em Redes Neurais Artificiais (RNA) e o
Editor Musical (FICHEMAN et al., 2003), que possui formas de composição individual ou
em grupos.
2.4.1 CODES
É um ambiente para prototipação musical cooperativa baseado na Web. Segundo
Miletto et al. (2005), seu propósito é permitir que seus usuários façam experimentos musicais
e interajam entre si na criação de peças musicais simples.
Utiliza padrões sonoros pré-definidos, dispondo de várias timelines, onde para cada
uma delas, pode-se ter um usuário associado. É um ambiente Web, que utiliza a Application
Programming Interface (API) Java Sound e servidor Web Apache Tomcat.
Foi criado a partir da ideia de possibilitar, principalmente, a leigos em composições
musicais criarem suas próprias sequências sonoras, sem que houvesse a necessidade primária
de estudar a teoria musical num todo (ritmos, acordes, melodia, harmonia, escalas, partituras,
e seus símbolos associados). Na Figura 5 têm-se os elementos da janela de edição do CODES.
Figura 5 – Elementos da janela de edição do CODES
Fonte: Miletto et al. (2005).
É possível ainda, adicionar comentários e observações aos trechos dos padrões
sonoros, dentro da linha de tempo. Um usuário pode tornar mudo a sequência sonora de outro
usuário, dispondo de uma opção para tal necessidade. Esta necessidade está associada ao fato
de não haver interferência de uma sequência sonora já criada por um usuário, na sequência
sonora que está sendo criada por um novo usuário.
22
2.4.2 MUSIK
O MusiK é uma ferramenta de auxílio à composição musical baseada em RNA.
Segundo Pinhati e Ferlin (2012), o objetivo do MusiK é indicar os problemas harmônicos
encontrados em composições musicais a ele apresentadas. A ferramenta permite que o músico
concentre-se na melodia, deixando a ela o encargo quanto à harmonia, minimizando desta
forma, o trabalho de revisão e de esforços quanto à obediência de um estilo.
Assim sendo, a criação de ferramentas computacionais capazes de realizar validação harmônica de forma automatizada surge como uma relevante iniciativa voltada a apoiar supervisores, aprendizes e compositores, não somente no ensino-aprendizagem, mas também no processo de composição musical em si. (PINHATI; FERLIN, 2012).
A Figura 6 apresenta o modelo de representação das entradas da rede neural do MusiK.
Figura 6 – Modelo de entrada da rede neural
Fonte: Pinhati e Ferlin (2012).
Segundo Pinhati e Ferlin (2012), a ideia é que, através de um programa de editoração
de partituras já existente, o usuário possa acionar um mecanismo de validação harmônica
(através de um botão ou opção de menu) que o auxiliará no processo de composição. Outra
funcionalidade para ilustrar o potencial do uso de RNA neste tipo de ferramenta, é que a cada
utilização do MusiK o sistema irá absorver as escolhas do compositor, gravando-as em logs e
aprendendo seu perfil de composição através de adaptações das redes neurais utilizadas, para
que as novas validações sejam realizadas de acordo com o estilo musical do compositor.
23
2.4.3 EDITOR MUSICAL
O Editor Musical é um ambiente individual e/ou colaborativo para a realização de
composições musicais. Segundo Ficheman et al. (2003), sua principal característica é o
oferecimento de ambientes de aprendizagem colaborativa que permitem o trabalho em
pequenos grupos de usuários, distribuídos em uma rede local ou em rede de longa distância.
O ambiente foi desenvolvido utilizando a tecnologia Java e também utiliza a API Java
Sound. A Figura 7 exibe a interface gráfica para a elaboração da composição musical.
Figura 7 – Composição individual com notas musicais na grade
Fonte: Ficheman et al. (2003).
O ambiente possui papéis bem definidos para os diversos usuários que eventualmente
estejam conectados entre si por meio do Editor Musical, sendo estes o professor, o mediador,
o aluno e o observador.
Conforme exibido na Figura 7, as pautas para dispor as notas a serem utilizadas foram
criadas em forma de grades. Ao colocar uma nota na grade, esta pode ser mais curta (uma
célula da grade) ou mais extensa, ocupando mais de uma célula da grade. O usuário utiliza as
ferramentas que se encontram do lado esquerdo da tela para compor música na grade.
2.4.4 Comparação entre os trabalhos correlatos
O Quadro 1 apresenta de forma comparativa algumas características dos trabalhos
apresentados na seção 2.5.
24
Quadro 1 – Características dos trabalhos correlatos características / trabalhos
correlatos Miletto et al.
(2005) Pinhati e Ferlin
(2012) Ficheman et al.
(2003) usuário-alvo leigos leigos e avançados leigos
tipo de plataforma web
desktop (plugin p/ software de editoração
de partituras) desktop
suporte à CSCW sim Não sim apoio a atividade musical composição validação harmônica composição
Pode-se observar que dos trabalhos relacionados acima apenas o MusiK (PINHATI;
FERLIN, 2012) não tem como foco a composição musical em si, trabalhando apenas como
um validador harmônico no apoio do processo de composição, que deve ser realizado por um
software de edição de partituras. No que diz respeito à validação harmônica a que se propõe o
MusiK (2012), essa não possui suporte à colaboração e cooperação (suporte CSCW).
Já com relação ao CODES (MILETO et al., 2005) e o Editor Musical (FICHEMAN et
al., 2003), ambos possuem sua interface em forma de timeline, porém o CODES já possui em
sua timeline elementos musicais pré-definidos, como: ritmo, melodia, harmonia e timbre.
A partir deste cenário, é possível perceber que dos dois trabalhos relacionados acima
que possuem suporte à CSCW (CODES e o Editor Musical), o primeiro está disponível na
plataforma web e o segundo, está disponível para desktops. Daí a importância e motivação
deste trabalho em implementar o suporte à CSCW como extensão do aplicativo de
composição musical para leigos proposto por Alvarenga (2013).
25
3 DESENVOLVIMENTO DO APLICATIVO
Neste capítulo são abordadas as etapas envolvidas na continuidade do
desenvolvimento do aplicativo de composição musical para leigos, criado por Alvarenga
(2013). Na seção 3.1 são enumerados os principais requisitos da manutenção evolutiva. A
seção 3.2 apresenta a especificação técnica do aplicativo. A seção 3.3 apresenta detalhes da
implementação e por fim, a seção 3.4 detalha os resultados alcançados.
3.1 REQUISITOS PRINCIPAIS DO APLICATIVO PROPOSTO
Além dos requisitos já atendidos no aplicativo proposto por (ALVARENGA, 2013), o
aplicativo deverá:
a) dispor de mecanismos para trabalho em grupo, de forma colaborativa, com suporte
à coordenação, cooperação e comunicação, permitindo desta forma o
compartilhamento dos artefatos gerados entre os indivíduos envolvidos no
processo de composição (Requisito Funcional - RF);
b) dispor de um mecanismo de controle de versão para controlar evoluções das
composições criadas (RF);
c) utilizar o ambiente de desenvolvimento Eclipse (Requisito Não Funcional - RNF);
d) utilizar Java como linguagem de programação (RNF);
e) utilizar o SDK do Android para a continuidade do desenvolvimento do aplicativo
(RNF).
3.2 ESPECIFICAÇÃO
Nesta seção é apresentada a especificação das extensões propostas ao aplicativo de
composição musical para leigos desenvolvido por Alvarenga (2013). A especificação foi
realizada utilizando diagramas da Unified Modeling Language (UML), criados na ferramenta
Enterprise Architect 9.0. Os diagramas apresentados a seguir contemplam os diagramas de
casos de uso, de classes e de atividades.
3.2.1 Diagrama de casos de uso
Nesta seção são descritos os casos de uso que contemplam as extensões propostas ao
aplicativo de Alvarenga (2013). Por se tratar de um trabalho de extensão, demais casos de uso
que o aplicativo já contemplava na implementação serão abstraídos (compor música, tocar
música). A Figura 8 contempla os casos de uso que atendem às extensões propostas.
26
Figura 8 – Diagrama de casos de uso
Os requisitos foram agrupados em cinco casos de uso (Apêncide A), subdivididos com
base nos mecanismos de colaboração do Modelo 3C (cooperação, coordenação e
comunicação) e estão descritos a seguir.
3.2.1.1 Casos de uso do mecanismo de suporte à cooperação
O caso de uso de UC01 - Fazer Login/Logout é utilizado quando o usuário necessita
enviar uma composição ao servidor, opcionalmente para baixar uma composição do servidor
e, obrigatoriamente para acesso ao chat.
O caso de uso UC02 - Cadastrar Usuário é utilizado quando um usuário ainda não
cadastrado deseja se cadastrar no servidor para poder enviar uma composição ao servidor, ou
acessar o chat do aplicativo, por exemplo.
Com suporte ao mecanismo de cooperação, devido à ação de cooperar e colaborar no
processo de composição, o caso de uso UC03 - Enviar Composição ao Servidor
possibilita ao usuário, enviar uma composição previamente armazenada no dispositivo, ao
servidor (desde que o usuário tenha efetuado cadastro/login).
27
3.2.1.2 Casos de uso dos mecanismos de suporte à coordenação e comunicação
Dando suporte ao mecanismo de coordenação, o caso de uso UC04 - Baixar
Composição do Servidor possibilita ao usuário, baixar uma composição que está
armazenada no servidor.
Por fim, dando suporte ao mecanismo de comunicação, o caso de uso UC05 -
Acessar Chat possibilita ao usuário, acessar o ambiente de comunicação instantânea, para
interagir com um ou mais usuários que estiverem online, ou até mesmo criar salas de bate-
papo.
3.2.2 Diagrama de classes
Nesta seção são descritos os relacionamentos e as estruturas das classes que
contemplam as extensões propostas ao aplicativo. O diagrama de classes é apresentado em
duas subseções, visando um melhor entendimento e detalhamento: diagrama de classes com
suporte à coordenação (download de composições) e à cooperação (upload de composições)
e, um segundo diagrama de classes com o suporte à comunicação (chat).
3.2.2.1 Diagrama de classes com suporte à coordenação e à cooperação
A Figura 9 apresenta o diagrama de classes das funções envolvidas na manutenção
evolutiva que dão suporte aos mecanismos de coordenação e cooperação.
28
Figura 9 – Diagrama de classes com suporte aos mecanismos de coordenação e cooperação
29
A classe App é a primeira classe a ser chamada quando o usuário executa a aplicação.
Estendendo a classe Application, a classe App armazena informações como, por exemplo,
um possível usuário logado no servidor, a lista de todos os usuários cadastrados no servidor
para a visualização no módulo de chat do aplicativo, bem como a lista com todas as
mensagens trocadas entre usuários durante um bate-papo no chat. A classe contém ainda a
informação de uma sala de bate-papo em que, possivelmente, o usuário acesse e interaja com
os demais usuários presentes na sala.
A tela principal do aplicativo, quando inicializada, é carregada através da classe
MainActivity (classe que dá suporte aos mecanismos de coordenação e cooperação). Esta
classe é responsável por armazenar as informações necessárias para que o aplicativo possa se
registrar no servidor, habilitando desta forma o aplicativo a trabalhar de forma online. As
informações de registro do aplicativo estão armazenadas nos atributos APP_ID, AUTH_KEY e
AUTH_SECRET e são repassados ao servidor no método onCreate da classe. O método
validaLogin é executado quando o usuário tenta realizar um upload ou acessar o chat do
aplicativo. O método download, responsável por carregar a lista de arquivos disponíveis no
servidor (através do método baixaComposicoes), não exige login, pois, o usuário pode optar
por acessar a lista de arquivos públicos no servidor, o qual não há necessidade de login por
parte do usuário. Ao efetuar um download, o método selecionaArquivo solicita ao usuário a
forma de controle de versão, que é tratada em seguida pelo método
controllVersionSubversion (método que dá suporte ao mecanismo de coordenação). Para
realizar o upload de uma composição ao servidor, o método executado, como o próprio nome
sugere, é o de upload (método que dá suporte ao mecanismo de cooperação). Ainda no
método upload, caso o usuário opte por não tornar o arquivo público, o método
carregaUsuarios é executado, retornando a lista com todos os usuários cadastrados no
servidor do aplicativo, e através do acionamento do método selecionaUsuarios, o usuário
escolhe quem terá permissão para acessar o arquivo que se deseja enviar ao servidor.
Já as classes LoginActivity e RegistrationActivity, responsáveis por carregar as
telas de login e cadastro do usuário, respectivamente, são acionadas pelo método
showAutenticateDialog (também presente na classe MainActivity), dependendo estas da
escolha por parte do usuário sobre qual ação tomar, para, aí sim, uma das classes ser
executada.
30
3.2.2.2 Diagrama de classes com suporte à comunicação (chat)
A Figura 10 apresenta o diagrama de classes que dá suporte ao mecanismo de
comunicação do Modelo de colaboração 3C (classes pertencentes ao chat do aplicativo).
Figura 10 – Diagrama de classes com suporte à comunicação (chat)
Ao acionar o chat presente no aplicativo, através do menu secundário da interface
principal no mesmo, é instanciado a classe MainChatActivity, carregando esta, a interface
principal do chat do aplicativo. A interface principal do chat é provida de abas para que o
31
usuário possa indicar se deseja acessar a lista de salas de bate-papo ou a lista de usuários
cadastrados no servidor. Ao acionar uma das abas, o usuário faz com que o método
onTabSelected seja executado, criando desta forma uma instância da classe UsersFragment
(para o caso de seleção da aba de usuários) ou da classe RoomsFragment (para o caso de
seleção da aba de salas de bate-papo).
Caso a classe instanciada seja a UsersFragment, no método onComplete desta classe é
carregado a lista de usuários cadastrados. Ao selecionar um usuário para iniciar uma conversa,
é acionado o método startChat, que definirá o modo de conversa como SINGLE, passando
este como parâmetro ao método start da classe ChatActivity, que criará uma instância da
classe SingleChat. Na classe SingleChat está presente o atributo que identifica o usuário ao
qual se mantém a conversa.
Nos casos em que a classe instanciada através das seleções de abas for a classe
RoomsFragment, é no método loadRooms desta classe que acontece o carregamento da lista
de salas disponíveis para acesso. Ao selecionar uma sala para acesso, é acionado o método
createChatBundle, que definirá o modo de conversa como GROUP, passando este como
parâmetro ao método start da classe ChatActivity, que então, diferentemente da situação
anteriormente descrita, criará uma instância da classe RoomChat.
A classe ChatMessage armazena os atributos pertinentes ao envio de uma mensagem,
como o texto da mensagem, a data e hora de envio, bem como o remetente da mensagem. A
classe ChatAdapter, que extende a classe BaseAdapter, define os padrões de visualização
das mensagens enviadas e recebidas, possuindo uma lista com todos os objetos do tipo
ChatMessage. A classe ChatActivity é quem possui um objeto do tipo ChatAdapter,
usando o método add desta última classe, para adicionar as mensagens listadas na interface à
lista do tipo ChatMessage presente na classe adaptadora.
3.2.3 Diagrama de atividades
O diagrama de atividades apresentado na Figura 11 é responsável por mostrar as
tarefas de uma computação. Tem como objetivo, elucidar o processo de download de uma
composição do servidor, bem como, posteriormente, o upload do arquivo de composição a
esse mesmo servidor.
32
Figura 11 – Diagrama de atividades do download/upload de composição ao servidor
Conforme apresentado na Figura 11, ao inicializar o aplicativo de composição musical,
se o usuário optar por efetuar o download de um arquivo de composição musical disponível
33
no servidor, será solicitado ao usuário a seleção da forma de controle de versão, sendo esta:
Criar Nova Versão ou Continuar Versão Atual. Selecionada a opção de controle de
versão, o aplicativo realiza os procedimentos de controle da nova versão (coordenação) e
carrega a composição na timeline do aplicativo, presente na interface principal do mesmo.
Porém, conforme apresentado na Figura 11, se ao inicializar o aplicativo de
composição musical, o usuário optar por iniciar uma nova composição, o mesmo a edita até o
momento que lhe for conveniente. Após finalizar a edição da composição, o usuário necessita
salvá-la localmente no dispositivo móvel e, após isso, o usuário pode optar por finalizar esse
processo de composição ou, pode ainda solicitar o envio (cooperação) do arquivo criado ao
servidor. O aplicativo então solicitará que o usuário faça o login no servidor e, somente após o
login efetuado, o aplicativo, de fato, encaminha o arquivo de composição ao servidor.
3.3 IMPLEMENTAÇÃO
Esta seção descreve as técnicas e ferramentas utilizadas para realizar a manutenção
evolutiva ao aplicativo de composição musical, as etapas de implementação das extensões
propostas, bem como a operacionalidade da implementação. Na seção 3.3.1 tem-se as técnicas
e ferramentas utilizadas na continuidade do desenvolvimento do aplicativo de composição
musical. A seção 3.3.2 traz as etapas da implementação das extensões propostas. Por fim, a
seção 3.3.3 demonstra a operacionalidade da implementação do ponto de vista do usuário.
Para todas essas subseções, utilizou-se uma subdivisão por mecanismo do Modelo de
colaboração 3C.
3.3.1 Técnicas e ferramentas utilizadas
Para implementar as extensões propostas ao aplicativo com o objetivo de realizar uma
manutenção evolutiva, foi utilizado a linguagem de programação Java, com o ambiente de
desenvolvimento Eclipse ADT e o sistema operacional Android. Foi utilizado também para
testes de execução e verificação do funcionamento do aplicativo de composição musical, o
simulador/emulador Genymotion, que simula um dispositivo com sistema operacional
Android. Seu uso deve-se ao fato de um melhor desempenho se comparado ao emulador
nativo presente no Eclipse ADT. Para realizar as implementações de upload/download de
arquivos para um servidor, bem como cadastro e login de usuário, além de um meio de trocar
mensagens de forma instantânea (chat) entre os usuários, foi utilizado a API QuickBlox
(QUICKBLOX MBAAS, 2014).
34
QuickBlox é uma API para comunicação que visa possibilitar a integração de um
aplicativo em um dispositivo móvel, com módulos de comunicação instantânea (chat), envio e
recebimento de arquivos a um servidor próprio da API, bem como notificações e também
check-in de locais. Além de possibilitar também cadastro de usuários e respectivamente
autenticações no servidor da aplicação. Trabalhando em um formato backend, todas as
requisições (HTTP/HTTPS) enviadas/recebidas entre aplicativo e servidor da API, utilizam
comunicação REST no formato JSON. Ao administrador da aplicação criada no servidor da
API, é disponibilizado uma interface contendo todas as informações armazenadas na
aplicação criada no servidor, bem como gráficos de execução da aplicação e chamadas à API,
para procedimentos como, por exemplo, login de usuário. A API QuickBlox está disponível
para os sistemas operacionais Android, iOS, Windows Phone e Blackberry.
Nas próximas seções serão descritas as técnicas de implementação envolvendo a API
QuickBlox, que possibilitaram a manutenção evolutiva ao aplicativo de composição musical
(envolvendo cadastro de usuário, login de usuário, upload/download de arquivo de
composição, bem como, ainda, comunicação instantânea: chat).
3.3.2 Etapas da implementação
O funcionamento das extensões propostas ao aplicativo foi dividido nesta seção em
três etapas, de acordo com os mecanismos do Modelo de colaboração 3C (cooperação,
coordenação e comunicação). A seguir é feito o detalhamento de cada uma das
implementações que compreendem e contemplam seus respectivos mecanismos de
colaboração do Modelo 3C.
3.3.2.1 Implementações com suporte ao mecanismo de cooperação
Dando suporte ao mecanismo de cooperação, são apresentadas a seguir as
implementações do cadastro do usuário, login do usuário no servidor, bem como o upload de
um arquivo de composição ao servidor.
3.3.2.1.1 Cadastro do usuário
A etapa de cadastro de usuário não necessita ser a primeira etapa a ser executada pelo
usuário, já que este pode trabalhar de forma off-line. No entanto, ao selecionar o item LOGIN
no menu principal, o usuário será direcionado para login/cadastro do usuário.
O Quadro 2 apresenta o bloco de código responsável por criar um novo usuário no
servidor da API QuickBlox.
35
Quadro 2 – Cadastro do usuário no servidor
Conforme apresentado no Quadro 2, no momento em que o usuário selecionar a opção
Cadastrar é criado uma novo objeto do tipo QBUser, conforme a linha 70, onde são
repassadas as informações de login e password do usuário. Na linha 72 é setado ao objeto
criado do tipo QBUser o email informado no cadastro e, a partir da linha 74 é criado um array
de tags, e adicionado a tag “publico” e uma segunda tag com o nome de login do usuário,
conforme linhas 75 e 76, respectivamente. Para esta primeira, ela é utilizada quando há
necessidade de baixar arquivos que estejam setados no servidor como públicos. Já para a
segunda tag adicionada, a mesma é utilizada quando da associação de um arquivo para um
usuário em específico, por isso do uso do login do mesmo como parte do nome da tag. Na
linha 78 é associado ao usuário a lista de tags. Na linha 82, de fato, as informações do novo
usuário são enviados ao servidor para que seja realizado o cadastro.
Após o envio dos dados do novo usuário ao servidor, é realizado o login do usuário no
serviço de chat do aplicativo. O Quadro 3 demonstra o login do usuário no serviço de chat.
36
Quadro 3 – Login do usuário no serviço de chat
Conforme apresentado no Quadro 3, o método onComplete (linha 94) é sobrescrito,
sendo este, um dos métodos da interface QBCallback, que é uma interface com a estrutura
para atender ao retorno dos resultados das requisições enviadas ao servidor. Neste caso, após
a solicitação de registro de um novo usuário, o método onComplete é acionado e, o primeiro
teste a ser realizado é verificar se o resultado da requisição enviada foi de sucesso, conforme
verificação realizada na linha 95. Caso o retorno seja de sucesso, então, na linha 96, o usuário
recém criado é armazenado no objeto do tipo QBUser presente na classe App, identificando
que o aplicativo possui o usuário em questão logado.
É na linha 98 que, de fato, é invocado o método loginWithUser da classe
QBChatService, que tornará online o usuário passado como parâmetro (que acabou de ser
cadastrado), no serviço de chat do servidor da API, para comunicação com os demais usuários
conectados no serviço de chat da API.
3.3.2.1.2 Upload de arquivo de composição para o servidor
Nesta etapa, o usuário acessa a opção Sincronizar do menu secundário presente na
interface principal do aplicativo e, seleciona a opção Enviar Composição. Ao selecionar tal
opção, o trecho de código é executado, conforme apresentado no Quadro 4.
37
Quadro 4 – Chamada do método de upload de arquivo
No início da execução do método de upload de arquivo, na linha 644, é validado se o
usuário que está utilizando o aplicativo de composição musical está logado no servidor da
API. Caso o usuário não tenha efetuado login, então o aplicativo informa-o de que ele precisa
efetuar o login. Após atendida essa condição, é verificado ainda, na linha 645, se a
composição que se deseja efetuar o upload está salva localmente; caso não esteja, da mesma
forma o usuário é informado de que precisa executar tal ação.
Após essas duas validações iniciais, é criada uma caixa de diálogo (linha 647) para
questionar ao usuário se ele deseja tornar o arquivo público, conforme linha 648. Caso o
usuário selecione a opção Sim, então é adicionado ao atributo tagsArquivo apenas a tag
público, conforme linha 665, que significa que qualquer usuário que se conecte no servidor,
poderá acessar o arquivo em questão. O próximo passo é chamar de fato o método da API que
efetuará o carregamento do arquivo para o servidor, passando o arquivo e o atributo de tag
como parâmetro, conforme linha 667 do trecho de código do Quadro 4. Se o retorno da
solicitação em questão ao servidor for de sucesso, então, conforme linha 671, é exibida uma
mensagem informando ao usuário de que o arquivo foi enviado ao servidor.
38
Porém, se o usuário optar por não tornar o arquivo público, então o aplicativo
carregará uma lista com todos os usuários cadastrados no servidor para seleção e associação.
A chamada para o método de carregamento desta lista de usuários está presente na linha 654;
o método carregaUsuarios é exibido no Quadro 5.
Quadro 5 – Método que retorna a lista de usuários cadastrados no servidor
De acordo com o Quadro 5, é na linha 700 que é solicitado ao servidor os usuários
cadastrados. Caso o retorno à solicitação seja de sucesso, é repassado a uma lista do tipo
QBUser todos os usuários cadastrados (linha 716). Caso a lista não esteja vazia, conforme
condição presente na linha 718, então esta é repassada a uma lista que é atributo da Classe
App do aplicativo através do método addQBUsers (linha 719). Na linha 721 do Quadro 5, é
realizada a chamada ao método selecionaUsuarios que carregará em uma caixa de diálogo
a lista aqui recebida, para que o usuário selecione os usuários desejados para realizar a
associação ao arquivo. O Quadro 6 detalha o método de seleção dos usuários.
39
Quadro 6 – Método de seleção dos usuários para associação ao arquivo de upload
Na linha 736 é realizada a varredura de toda lista presente na classe App do aplicativo,
alimentada anteriormente. Na linha 737, para cada registro da lista, é verificado se o usuário
na posição em que se encontra o índice da lista não é o próprio usuário logado e ainda se o
usuário que a lista está retornando não é o UserDefault, que é um usuário padrão utilizado
pelo aplicativo como login padrão para acesso público, durante a inicialização do aplicativo.
Na linha 750 é criada uma caixa de diálogo com forma de seleção múltipla, passando o array
de usuários; alimentado na linha 739. No método onClick da seleção múltipla (linha 754) é
repassado ao array usersSelected o(s) usuário(s) selecionado(s) em tempo de execução. O
Quadro 7 apresenta a continuação do método selecionaUsuarios.
40
Quadro 7 – Continuação do método de seleção dos usuários (usuários já selecionados)
Selecionados os usuários para associação, a caixa de diálogo, através do botão Gravar
Versão (linha 769), no seu evento onClick, inicia o processo de upload do arquivo
propriamente dito. Na linha 778, é varrida a lista de usuários selecionados e alimentado o
atributo já comentado anteriormente, que é o atributo tagsArquivo. Só que para esta
situação, o atributo de tag é alimentado com a descrição do login de cada usuário, para
identificá-lo e filtrá-lo posteriormente quando da solicitação de download dos arquivos
armazenados. Caso o usuário não tenha selecionado nenhum usuário anteriormente, o mesmo
é notificado, conforme linha 806 e retorna a chamada ao método selecionaUsuarios. Após
alimentado o atributo de tag, então, na linha 786 acontece a chamada ao método
uploadFileTask, da classe QBContent da API QuickBlox. Passando o arquivo de
composição e a lista de tags como parâmetro, esse método enviará o arquivo ao servidor e,
para o caso de sucesso, a mensagem presente na linha 790 é emitida ao usuário.
41
3.3.2.2 Implementações com suporte ao mecanismo de coordenação
Dando suporte ao mecanismo de coordenação, é apresentada a seguir a implementação
do download do servidor de um arquivo de composição, com o controle de versão do arquivo
de composição.
3.3.2.2.1 Download de arquivo de composição
Nesta etapa, o usuário acessa a opção Sincronizar do menu secundário presente na
interface principal do aplicativo e, seleciona a opção Baixar Composição. Ao selecionar tal
opção, o trecho de código é executado, conforme apresenta o Quadro 8.
Quadro 8 – Chamada do método de download de arquivos
Se o aplicativo não possuir nenhum usuário logado no servidor (linha 821), então, é
realizado a chamada do método carregaComposicoes, na linha 822, passando o parâmetro
com valor lógico true, que indicará que o servidor deverá retornar apenas arquivos públicos.
Caso contrário, o parâmetro é passado como falso (linha 825) e, além dos arquivos públicos,
será retornado os arquivos associados ao usuário em questão. O método
carregaComposicoes repassa o parâmetro ao método baixaComposições, que irá retornar a
lista de arquivos de fato, do servidor, conforme exibido no Quadro 9.
42
Quadro 9 – Servidor retornando lista de arquivos disponíveis para download
Se o download for de arquivos públicos e privados (para os casos em que o usuário já
está logado), então é chamado o método getFiles da classe QBContent, conforme linha 926,
que, ao retorno do servidor, para o caso de sucesso na solicitação da requisição (linha 937),
retorna a lista de arquivos do usuário em questão e as adiciona à lista nomeada files, na
linha 939. Dentro ainda do bloco de retorno com sucesso, é solicitado os arquivos com tags
específicas de usuários (linha 943), para retornar outros arquivos que tenham sido enviados
por outros usuários e que estes tenham associado o usuário em questão ao arquivo, além dos
próprios arquivos públicos que possuem uma tag específica denominada “publico”, conforme
já explicado. Da mesma forma, os arquivos que possam existir com tags que pertençam ao
usuário logado, são adicionados à mesma lista da linha 939. Para os momentos em que não
houver um usuário logado no servidor, o método baixaComposicoes chamará apenas o
método getTaggedList da classe QBContent, que retornará apenas arquivos do próprio
43
usuário e arquivos com tag de “publico”, excluindo-se desta vez os possíveis arquivos de
outros usuários.
Após a lista de arquivos alimentada, é chamado o método selecionaArquivo,
conforme pode ser visto na linha 961, e que será detalhado no Quadro 10.
Quadro 10 – Seleção do arquivo para download e marcação da forma de controle de versão
No método selecionaArquivo, é criada uma caixa de diálogo (na linha 997), que é
alimentada com a lista de arquivos retornada pelo servidor e que, através do evento onClick
do método setSingleChoiceItems, na linha 1027, o usuário selecionará um arquivo para
download. Ao selecionar um arquivo, as informações de ID do arquivo, bem como o nome do
arquivo são armazenados em variáveis conforme as linhas 1033 e 1034, respectivamente.
Ao criar a caixa de diálogo para a seleção do arquivo, também são adicionados dois
botões, responsáveis pelo método de controle de versão do arquivo que se deseja baixar; são
eles: Criar Nova Versão (linha 999) e Continuar Versão Atual (linha 1009). Ao
44
selecionar uma das duas opções, já com um arquivo selecionado, o método baixarArquivo é
acionado passando como parâmetro a forma de controle de versão. O Quadro 11 apresenta a
implementação do download do arquivo selecionado, bem como a chamada para o controle de
versão do arquivo.
Quadro 11 – Download do arquivo e chamada para o controle de versão
O método downloadFileTask, presente na linha 1045, no qual é passado como
parâmetro a variável fileID é que efetuará o download do arquivo do servidor da API
QuickBlox para o aplicativo presente no dispositivo móvel. No retorno desta requisição, para
o caso de sucesso (linha 1058), após a instanciação do arquivo do tipo SaveFile (linha 1077),
é realizada a chamada do método controllVersionSubversion, que fará, de fato, o controle
da versão do arquivo baixado (dando desta forma, suporte ao mecanismo de coordenação do
Modelo 3C). O método de controle de versão é apresentado e detalhado no Quadro 12.
45
Quadro 12 – Método de controle de versão do arquivo (suporte à coordenação)
Um arquivo de composição baixado do servidor dispõe de quatro posições na sua
nomenclatura para que seja trabalhado o controle da versão. A variável _version, na linha
1137 do código fonte, recebe as duas primeiras posições e as variáveis _subversion e
_subsubVersion recebem a terceira e quarta posição, respectivamente. Este conjunto de
quatro caracteres é formado apenas por números e se encontram entre os elementos underline
no nome do arquivo.
Caso a forma de controle de versão seja Criar Nova Versão (linha 1141), então, é
verificado num primeiro momento se as váriaveis de controle de subversão estão zeradas.
Estando zeradas, apenas incrementa-se a variável de versão, conforme linha 1143. Caso
contrário, incrementam-se as variáveis de subversão, dando prioridade ao incremento da
variável _subsubVersion; incrementando assim os valores de fora para dentro do conjunto de
caracteres (da quarta para a terceira posição).
Já para os casos em que a forma de controle de versão for Continuar Versão Atual
(linha 1161), então, ignora-se a variável _version e trabalha-se apenas com as variáveis de
subversão. Caso as variáveis de subversão estejam zeradas, conforme apresenta a linha 1162,
então incrementa-se a variável responsável pela última posição das quatro existentes
(seguindo a idéia de incremento de fora para dentro). Caso a variável responsável pela última
posição do controle já tenha valor assumido e a variável que responde pela terceira posição
ainda esteja zerada, incrementa-se esta última e atribui-se um valor 1 (um) à variável da
46
última casa, criando assim uma hierarquia e entrando um nível na hierarquia de versão do
arquivo.
Para os casos em que as duas variáveis de subversão já possuam valores e o usuário
opte por Continuar Versão Atual, seria necessário adentrar em mais um nível na hierarquia
de subversão, porém, o controle barrará essa tentativa, retornando um valor default (linha
1170). O Quadro 13 conclui o método do controle de versão com um último tratamento para
sua completude.
Quadro 13 – Continuação do método de controle de versão
Após realizado o controle de versão principal, é montado o nome do arquivo, conforme
mostra a linha 1181, já com os novos valores de versão e subversão do arquivo e, como uma
última validação, na linha 1184, é verificado se existe, possivelmente, um arquivo salvo no
servidor já com a versão e subversão que acabou de ser montada; caso exista, é novamente
recalculado os valores de versão e subversão, até que seja encontrado os próximos valores
disponíveis para atribuição ao nome do arquivo. A pesquisa pelos próximos valores se dá da
mesma forma que o controle principal do método, apresentado no quadro anterior.
47
3.3.2.3 Implementações com suporte à comunicação
Por fim, dando suporte ao mecanismo de comunicação, é apresentada a seguir a
implementação do chat do aplicativo.
3.3.2.3.1 Acessar chat
Para acesso ao chat do aplicativo o usuário acessa o menu secundário presente na
interface principal do aplicativo e, seleciona a opção Chat. Será carregada a interface
principal do chat com a aba dos usuários cadastrados selecionada por padrão. Além da aba de
usuários, a interface do chat possui ainda a aba das salas de bate-papo. Ao selecionar qualquer
uma das abas o método onTabSelected é executado, conforme apresentado no Quadro 14.
Quadro 14 – Seleção de abas da interface do chat do aplicativo
Na linha 68, conforme apresentado no Quadro 14, é armazenada a aba selecionada na
variável position e na linha seguinte, é recebido o usuário que está logado no servidor. Na
linha 71 é setado a aba selecionada ao atributo viewPager que resultará na visualização da
aba selecionada. Para o carregamento do conteúdo da aba correspondente é feito um teste na
linha 73 para saber se a aba selecionada é das salas de bate-papo. Caso seja, é executado o
método loadRooms da classe RoomsFragment (linha 74).
O método loadRooms irá executar o método getRooms da classe QBChatService, da
API QuickBlox. A classe RoomsFragment implementa um listener do recebimento das salas.
Ao retorna das salas é chamado o método onReceiveRooms, conforme apresenta o Quadro 15.
48
Quadro 15 – Recebimento das salas de bate-papo cadastradas no servidor
A lista com as salas de bate-papo, recebida como parâmetro (linha 91) é repassada ao
atributo rooms, conforme a linha 96. Entre as linhas 100 e 103 é repassado cada uma das salas
existentes no atributo rooms a uma lista chamada roomsListForAdapter (linha 103), com o
nome da sala como chave da lista. Em seguida, é repassado a lista roomListForAdapter no
método construtor da classe SimpleAdapter, conforme linha 107, com o objetivo de criar
uma lista customizada, tratando cada item desta lista pelo nome da sala de bate-papo.
Entre as linhas 112 e 119 está implementado a ação de selecionar uma das salas que
estão sendo exibidas na interface para o usuário. Ao selecionar uma das salas, na linha 115 é
armazenado em um objeto do tipo Bundle a sala selecionada. Um objeto Bundle é um pacote
que permite enviar um dado mapeado através de uma chave (neste caso a chave é o nome da
sala). Na linha seguinte é setado para o aplicativo a sala em que o usuário logado está
conectado. Na linha 117 é executado o método start da classe ChatActivity que fará o
usuário entrar na sala e a partir daí iniciar a conversa em grupo.
3.3.3 Operacionalidade da implementação
Esta seção apresenta a operacionalidade da implementação do ponto de vista do
usuário e, assim como nas etapas de implementação, foi dividida em três seções de acordo
com os mecanismos do Modelo de colaboração 3C (cooperação, coordenação e
49
comunicação). A seguir é feito o detalhamento da operacionalidade que compreende e
contempla seu respectivo mecanismo de colaboração do Modelo 3C.
3.3.3.1 Operacionalidade com suporte à cooperação
Dando suporte ao mecanismo de cooperação, são apresentadas a seguir as
operacionalidades do cadastro do usuário, login do usuário no servidor, bem como o upload
de um arquivo de composição ao servidor. A cooperação ocorre através da troca de arquivos
entre usuários.
3.3.3.1.1 Fazer Login / Cadastrar Usuário
Ao inicializar o aplicativo de composição musical para leigos, a interface principal é
exibida conforme demostrado na Figura 12.
Figura 12 – Interface principal do aplicativo e visualização dos itens de menu
A interface principal do aplicativo dispõe, do seu lado esquerdo, dos instrumentos
disponíveis, bem como as notas musicais para formulação de uma composição musical. Ao
centro está colocada a timeline do aplicativo, para onde as notas musicais serão transportadas
e alocadas nas áreas de interesse. Na parte superior da interface principal, é possível
visualizar, conforma a Figura 12, além do título do aplicativo (MyMusic), os dois itens de
menu principais: TOCAR e LOGIN (canto superior direito). E, ao acessar os itens de menu
secundários, através do botão de acesso para itens de menu da maioria dos aplicativos para
Android, é exibida a lista de menu conforme a Figura 12 (canto inferior direito).
50
Para login e/ou cadastro do usuário, o usuário deve selecionar a opção LOGIN do menu
principal do aplicativo e a tela de autorização será carregada com as opções de Login e
Cadastre-se. O usuário deve selecionar a opção Cadastre-se para realizar o seu cadastro
no servidor do aplicativo. Ao selecionar tal opção, é carregada a tela de cadastro de usuário,
exibida na Figura 13.
Figura 13 – Tela do cadastro do usuário
Na tela de cadastro de usuário, o mesmo deve informar seu login de acesso, senha e
seu endereço de email para que seu cadastro seja efetivado com sucesso no servidor. Ao
finalizar o seu processo de cadastro o usuário deve selecionar a opção Cadastrar onde será
efetuado o cadastro do mesmo. Após esse procedimento, o aplicativo retorna à interface
principal.
3.3.3.1.2 Enviar Composição ao Servidor
Dando continuidade ao detalhamento da operacionalidade do aplicativo na visão do
usuário, esta seção demonstra como o usuário executa o processo de envio de uma
composição ao servidor do aplicativo.
Após salvar a composição no dispositivo, o usuário deve acessar a opção Sincronizar
do menu secundário e, posteriormente, escolher a opção Enviar Composição. Ao executar
esta ação, será lançado ao usuário um questionamento a respeito de tornar ou não público o
arquivo que se deseja enviar.
Caso o usuário deseje tornar o arquivo público para que todas que utilizem o aplicativo
tenham acesso ao mesmo, então o usuário deve selecionar a opção "Sim" e o arquivo será
51
enviado ao servidor com a tag de público. Após o envio, o aplicativo lançará uma mensagem
ao usuário informando-o de que o arquivo foi enviado com sucesso ao servidor.
Ao selecionar a opção de não tornar o arquivo público, será carregada a tela com a lista
dos usuários cadastrados no servidor, para associação ao arquivo, concedendo-os o direito ao
acesso da composição que está sendo enviada ao servidor. A Figura 14 demonstra a tela
responsável por retornar esses usuários.
Figura 14 – Lista dos usuários cadastrados no servidor para associação ao arquivo
Conforme exibido na Figura 14, o usuário pode selecionar um ou mais usuários para
realizar a associação ao acesso do arquivo de composição. Após selecionados os usuários
desejados, o usuário seleciona a opção Gravar Versão para enviar o arquivo de composição
ao servidor. Como retorno desta operação, para o caso de sucesso, o aplicativo emitirá a
mensagem de “Arquivo carregado para o servidor com sucesso”.
3.3.3.2 Operacionalidade com suporte à coordenação
Dando suporte ao mecanismo de coordenação, é apresentada a seguir a
operacionalidade do download de um arquivo de composição do servidor, com o controle de
versão do arquivo de composição.
3.3.3.2.1 Baixar Composição do Servidor
Para baixar um arquivo de composição disponível no servidor, o usuário deverá
selecionar a opção Sincronizar, disponível no menu secundário do aplicativo e, dentro do
52
menu Sincronizar selecionar a segunda opção da lista, descrita como Baixar composição,
onde então será carregada a lista das composições disponíveis no servidor, conforme exibido
na Figura 15.
Figura 15 – Arquivos de composições disponíveis para download
Carregada a lista de arquivos do servidor, o usuário deverá selecionar a
composição/versão desejada para posteriormente selecionar a forma de controle da futura
versão do arquivo (Criar Nova Versão ou Continuar Versão Atual). Com a seleção de
uma das duas formas de controle de versão, o aplicativo setará ao arquivo sua nova versão e
carregará na interface principal, o conteúdo armazenado no arquivo baixado, dispondo os
objetos na timeline de composição do aplicativo de composição musical.
Com a composição carregada para o aplicativo, o usuário pode então livremente editá-
la com os instrumentos e notas musicais disponíveis na interface. Após o término do processo
de edição da composição musical, o usuário precisa salvar a composição se desejar enviá-la
em seguida ao servidor do aplicativo. A opção de Salvar a composição (no dispositivo) está
presente na lista do menu secundário.
3.3.3.3 Operacionalidade com suporte à comunicação
Por fim, dando suporte ao mecanismo de comunicação, é apresentada a seguir a
operacionalidade do acesso ao chat do aplicativo.
53
3.3.3.3.1 Acessar Chat
Para acessar ao chat do aplicativo, passado a etapa de cadastro/login do usuário, o
mesmo deve selecionar a opção Chat, presente no menu secundário do aplicativo (Figura 12)
e o acesso ao chat será carregado, conforme Figura 16.
Figura 16 – Tela inicial do chat do aplicativo
O chat do aplicativo de composição musical dispõe de duas abas: uma com os usuários
cadastrados no servidor para a necessidade de uma conversa de forma individual (caso
visualizado na figura acima) e a outra aba com as salas disponíveis para bate-papos em grupo.
Para iniciar uma conversa individual, basta o usuário selecionar um dos usuários
disponíveis, conforme exibido na imagem acima e iniciar a troca de mensagens como
qualquer outro chat. Para o acesso às salas de bate-papo em grupo, o usuário deve selecionar a
aba SALAS onde então será exibida a lista de salas disponíveis. Com a lista de salas exibida, o
usuário pode adentrar em uma delas apenas selecionando-a, para consequentemente participar
de uma conversa em grupo com os demais usuários que também estiverem na mesma sala. O
usuário tem ainda a opção de criar uma nova sala de bate-papo; basta selecionar a opção
Adicionar Sala, exibida quando da seleção do menu secundário da maioria dos aplicativos
Android.
54
3.4 RESULTADOS E DISCUSSÃO
Nesta seção é detalhada a metodologia de avaliação, perfil dos usuários, aplicação do
teste, análise a interpretação dos dados coletados e comparação entre as funcionalidades
adicionadas ao aplicativo de composição musical e os trabalhos correlatos.
A seção 3.4.1 descreve o experimento de usabilidade, no qual se avaliou a usabilidade
do aplicativo pelo usuário final. Esta seção foi subdividida pelos mecanismos de colaboração
do Modelo 3C (coordenação, comunicação e cooperação) para se obter desta forma, um
detalhamento mais preciso a respeito dos resultados de cada mecanismo. Na seção 3.4.2 é
descrito o experimento de compatibilidade, no qual se avaliou a compatibilidade do aplicativo
com alguns dispositivos. Por fim, na seção 3.4.3 é feita uma comparação deste trabalho com
os trabalhos correlatos.
3.4.1 Experimento de usabilidade
O experimento de usabilidade foi realizado com 5 usuários, com perfis compatíveis
com o público-alvo do aplicativo, para avaliar a aceitação e a eficiência das funcionalidades
adicionadas ao aplicativo de composição musical.
3.4.1.1 Metodologia
O experimento foi realizado durante o mês de junho por meio de teste individual com
os usuários. O aplicativo de composição musical foi instalado no dispositivo móvel de cada
usuário, sendo todos dispositivos smartphones. Foi fornecido à cada usuário um questionário
de perfil, uma lista de tarefas a serem executadas utilizando o aplicativo e um questionário de
usabilidade (Apêndice B).
Segundo Nielsen (1993), para se obter resultados satisfatórios em testes de usabilidade,
são necessários apenas cinco usuários, alegando que, a partir do quinto usuário, se desperdiça
tempo em observar praticamente os mesmos problemas repetidamente, sem encontrar novos
erros.
3.4.1.2 Aplicação do teste
Cada participante convidado foi orientado sobre os objetivos do teste de usabilidade,
com foco para os mecanismos de colaboração desenvolvidos neste trabalho. Antes de ser
repassado a cada usuário a lista de tarefas a serem executadas com algumas orientações
iniciais, foi solicitado o preenchimento de um questionário de perfil de usuário.
55
A lista de tarefas procurou contemplar todas as atividades envolvidas nos processos de
cooperação, coordenação e comunicação implementados no aplicativo. Para cada tarefa
solicitada, o usuário foi questionado sobre o sucesso na conclusão da mesma, com
possibilidade do usuário redigir suas sugestões e/ou justificativas à respeito desta.
Ao término da lista de tarefas, foi apresentado aos usuários o questionário de
usabilidade, composto por 12 questões fechadas e 7 questões abertas. As questões fechadas
diziam respeito ao sucesso ou não quanto à execução de cada uma das tarefas solicitadas,
enquanto as questões abertas procuraram captar e absorver dos usuários suas percepções
quanto ao cenário desenhado no aplicativo, bem como suas sugestões/reclamações e/ou
dúvidas à respeito de cada mecanismo de colaboração adicionado ao aplicativo (coordenação,
cooperação e comunicação). Os resultados deste experimento estão descritos na próxima
seção.
3.4.1.3 Análise e interpretação dos dados coletados
A análise dos dados partiu dos dados coletados através do questionário de perfil de
usuário. No Quadro 16, são exibidos perfis dos usuários envolvidos no teste de usabilidade.
Quadro 16 – Perfis dos usuários envolvidos no teste de usabilidade Sexo 80% feminino
20% masculino Idade 40% entre 18 e 25 anos
40% entre 25 e 35 anos 20% mais de 35 anos
Nível de escolaridade 20% ensino médio completo 60% ensino superior incompleto 20% ensino superior completo
Relação com a música 60% escutam música mas não tem nenhum conhecimento da área 40% conseguem identificar instrumentos e ritmos musicais
Após a análise do perfil do usuário, iniciou-se a interpretação e apresentação dos
resultados obtidos a partir do questionário de usabilidade. Os resultados foram subdivididos
inicialmente, pelas questões que envolvem o cenário do aplicativo, seguido das questões que
envolvem cada um dos mecanismos de colaboração, segundo Modelo 3C (coordenação,
cooperação e comunicação). As subseções abaixo apresentam cada um dos resultados.
3.4.1.3.1 Análise quanto ao cenário do aplicativo
No Quadro 17 são apresentados resultados quanto às questões envolvendo o cenário do
aplicativo.
56
Quadro 17 – Respostas quanto ao cenário do aplicativo Perguntas/Respostas Sim Não 1. Você conseguiu executar todas as tarefas solicitadas? 100% 2. De um modo geral, você achou o aplicativo intuitivo e fácil de usar? 100% 3. Você acha interessante fazer música colaborativamente? 100% 4. Você achou prática a representação visual dos samples? 100% 5. Você gostaria que o aplicativo exportasse as composições criadas para um formato de áudio (ex. MP3)?
100%
A partir dos resultados das questões 1 e 2 do Quadro 17, percebeu-se que os usuários
não tiveram dificuldades na execução da lista das tarefas solicitadas, porém, a principal
sugestão apontada pelos usuários quanto ao cenário do aplicativo foi um menu com lista de
opções mais claras e objetivas, como por exemplo, quanto ao acesso das funcionalidades de
enviar/baixar composição do servidor através do menu Sincronizar.
A questão 3 demonstra o quão interessante foi a utilização de um ambiente agora
colaborativo, através das implementações dos mecanismos de colaboração.
Na questão 4, apesar de todos os usuários acharem prática a representação visual dos
instrumentos e notas musicais disponíveis para composição, 40% destes sugeriram a
substituição da representação textual por símbolos e/ou imagens que os representassem.
Para concluir a avaliação com relação ao cenário, todos os usuários se expressaram a
favor da implementação de um mecanismo que exportasse as composições criadas para algum
formato de áudio, conforme resultado da questão 5.
3.4.1.3.2 Análise quanto ao mecanismo de cooperação
A análise do mecanismo de cooperação envolveu as atividades relacionadas a cadastro
de usuário, montagem e edição de composição, bem como o envio e o recebimento de
composições junto ao servidor. O Quadro 18 apresenta os resultados obtidos.
Quadro 18 – Respostas quanto ao mecanismo de cooperação Perguntas/Respostas Sim Não 1. Você conseguiu cadastrar um usuário? 100% 2. Você conseguiu criar uma composição? 100% 3. Você conseguiu enviar este composição para o servidor? 100% 4. Você cooperou com algum usuário baixando alguma composição do servidor e complementando-a com seus incrementos?
100%
Conforme exibido no Quadro 18, todas as atividades envolvendo o mecanismo de
cooperação, dentre elas, cadastro de usuário, montagem e edição de composição e envio e
recebimento de composição por parte do servidor, foram executadas na sua totalidade. Porém,
destaca-se a sugestão de 40% dos usuários quanto a questão número 3, onde estes sugeriram
57
que o menu para envio/recebimento das composições deveria ter outra descrição, tornando-o
mais intuitivo para esta função, diferente da atual descrição: Sincronizar.
3.4.1.3.3 Análise quanto ao mecanismo de coordenação
A análise do mecanismo de coordenação envolveu a atividade de download de
composições de outros usuários, do servidor. O Quadro 19 apresenta os resultados obtidos.
Quadro 19 – Respostas quanto ao mecanismo de coordenação Perguntas/Respostas Sim Não 1. Você baixou alguma composição do servidor de outro usuário, gerando desta forma uma nova versão?
100%
2. Você complementou a composição baixada e a enviou novamente ao servidor cooperando com o outro usuário?
100%
Apesar da execução das atividades na sua completude, sugeriu-se o mesmo que na
seção anterior quanto à descrição do menu Sincronizar. Sugestão essa feita pelos mesmos
usuários que sugeriram a mudança quando da análise do mecanismo de cooperação.
Além disto, 20% dos usuários sugeriram que, ao baixar uma composição do servidor,
que o usuário fosse informado e atualizado quanto ao processo de carregamento desta para o
aplicativo.
3.4.1.3.4 Análise quanto ao mecanismo de comunicação
Por fim, a análise do mecanismo de comunicação, envolveu as atividades de acesso ao
chat do aplicativo de composição musical, bem como, interação com um ou mais usuários
através do chat e de suas salas de bate-papo. O Quadro 20 apresenta os resultados obtidos
quanto a este mecanismo.
Quadro 20 – Respostas quanto ao mecanismo de comunicação Perguntas/Respostas Sim Não 1. Você conseguiu acessar o chat do aplicativo? 100% 2. Você interagiu com algum usuário através do chat? 100% 3. Você acessou alguma sala de bate-papo? 100%
Quanto à questão 1 do Quadro 20, esta foi facilmente realizada pelos usuários. Já na
questão 2, 20% dos usuários sugeriram que fosse alterada a visualização do código do usuário
que se está dialogando, pela descrição utilizada como login deste. Quanto a terceira questão
do Quadro 20, 20% dos usuários sugeriram que, fosse exibido o nome da sala ao qual o
usuário está conectado e, 20% dos usuários também sugeriram que fosse implementado um
mecanismo para controlar e selecionar usuários específicos quanto a permissão de acesso à
salas de bate-papo.
58
3.4.2 Experimento de compatibilidade
O experimento de compatibilidade foi realizado utilizando-se 6 dispositivos Android,
para avaliar a compatibilidade do aplicativo quanto a diferentes hardwares e versões do
Android. Os dispositivos utilizados compreendem a classe de smartphones e são listados no
Quadro 21.
Quadro 21 – Dispositivos utilizados no experimento de compatibilidade
Quantidade Dispositivo Versão do Android
Tamanho da tela
3 Samsung Galaxy SIII Mini 4.1.2 4” (480x800)
1 Samsung Galaxy S Duos 4.0.4 4” (480x800)
1 Samsung Galaxy SII 4.1.2 4.3” (480x800)
1 Samsung Galaxy S4 (dispositivo de desenvolvimento)
4.4.2 5” (1080x1920)
Todas as funcionalidades adicionadas ao aplicativo com o desenvolvimento deste
trabalho, bem como as funcionalidades já implementadas, puderam ser executadas sem
nenhum problema. O único relato a ser feito é em relação à interface principal do aplicativo,
onde a timeline presente, bem como a área com os Samples não foram exibidas corretamente,
em virtude do tamanho de tela dos aparelhos acima mencionados no Quadro 20. Como o
aplicativo, na sua origem, quando do desenvolvimento por Alvarenga (2013), foi otimizado
para uso em tablets, a visualização da interface principal ficou, desta forma, comprometida
quando do uso em smartphones.
3.4.3 Comparação com trabalhos correlatos
Com a análise dos resultados obtidos, reformulou-se o quadro de características dos
trabalhos correlatos (Quadro 1 da seção 2.4.4), adicionando o aplicativo de composição
musical para leigos MyMusic, para fins de comparação. O Quadro 22 apresenta a análise
comparativa entre as características do aplicativo MyMusic com as características existentes
nos trabalhos relacionados.
59
Quadro 22 – Comparação com os trabalhos correlatos
características / trabalhos correlatos
Miletto et al. (2005)
Pinhati e Ferlin
(2012)
Ficheman et al. (2003)
MyMusic
usuário-alvo leigos leigos e avançados leigos leigos
tipo de plataforma web
desktop (plugin p/ software de
editoração de partituras)
desktop
Android
suporte à CSCW sim não sim sim
apoio a atividade musical
composição validação harmônica
composição composição
Comparando-se aos trabalhos correlatos, mesmo que dois deles (CODES e EDITOR
MUSICAL) também possuam suporte à CSCW, o grande diferencial no aplicativo proposto,
MyMusic, está no uso da plataforma Android.
60
4 CONCLUSÕES
Este trabalho propôs realizar uma manutenção evolutiva ao aplicativo de composição
musical para leigos desenvolvido por Alvarenga (2013). Foram adicionados mecanismo de
cooperação, coordenação e comunicação ao aplicativo, através do uso da API QuickBlox.
Em relação aos resultados obtidos através dos experimentos realizados, pode-se
concluir que o aplicativo atende a um editor colaborativo, permitindo que usuários interajam e
comuniquem-se entre si para a composição de trechos musicais. A troca de artefatos gerados
entre os usuários por meio dos mecanismos de envio e o recebimento de arquivos do servidor,
possibilitou o compartilhamento dos artefatos e a cooperação entre esses usuários.
Quanto aos objetivos específicos, foi possível tornar o aplicativo em um cenário
colaborativo, com as implementações de controle de versão, envio/recebimento de arquivos
do servidor, bem como comunicação entre usuários por meio de chat. Porém, foi apontado por
alguns usuários a necessidade de um menu mais intuitivo, principalmente com relação ao
envio/recebimento de arquivos do servidor. Foi levantado ainda pelos usuários a possibilidade
de alterar a representação textual dos samples por imagens/icones que os representem.
Em relação às limitações, pode-se destacar a ausência na identificação dos usuários
que estão online em relação aos usuários que não estão acessando o chat. Ainda com relação
ao mecanismo do chat, não é possível manter um controle de acesso de usuários quando da
criação de salas de bate-papo (situação sugerida por um usuário). Um dos maiores desafios e
dificuldades encontradas foi em associar os arquivos enviados ao servidor como público ou
privado, com relação ao acesso de usuários. A implementação desta necessidade utilizando-se
da API QuickBlox estava muito abstrata no seu princípio e a falta de conhecimento da própria
API em si, contribui para o surgimentos dessas dificuldades. Porém, foram superados ao final
das implementações, com o melhor entendimento do funcionamento da API utilizada. Outra
dificuldade surgiu, no princípio das implementações, ao montar um servidor de arquivos para
troca de artefatos com o aplicativo. Não conseguia-se efetuar o download de um arquivo
armazenado no então servidor de arquivos, para o aplicativo. Passadas algumas semanas,
buscando-se alternativas e pensando também na comunicação por chat, encontrou-se a API
QuickBlox, a qual então foi utilizada para implementação da manutenção evolutiva proposta.
Pode-se destacar, como grande vantagem do aplicativo de composição musical para
leigos MyMusic, o fato deste ter se tornado um editor colaborativo para composição musical
por usuários sem experiência na área, associado ao fato deste ser um aplicativo para
dispositivos móveis com sistema operacional Android, sendo este, um sistema operacional
61
presente em diversos modelos de aparelhos smartphones e também tablets, o que torna
evidente a possibilidade e facilidade de acesso ao uso do aplicativo proposto neste trabalho.
4.1 EXTENSÕES
Como extensões para este trabalho, com relação ao cenário do aplicativo sugerem-se:
a) alterar a representação musical, atualmente textual, para imagens e/ou símbolos
que os identifiquem, tornando-se desta forma, mais intuitivo e também atraente aos
usuários que utilizarem o aplicativo de composição musical;
b) criar um layout de interface que se adeque a diferentes tamanhos de telas com
diferentes resoluções, criando assim uma espécie de interface adaptativa e
responsiva;
c) otimizar o processo de reprodução da composição para eliminar os atrasos que
ocorrem entre cada faixa de tempo dos samples na timeline;
d) exportar as composições criadas para algum formato de áudio a ser definido.
Em relação ao mecanismo de coordenação adicionado ao aplicativo, como um dos
objetivos deste trabalho, sugerem-se:
a) remover o controle de versão do nome do arquivo e passar para um controle de
versão interno, com um mecanismo próprio e independente;
b) poder retornar aos usuários as versões de composições num formato de árvore,
associando desta forma os níveis de versão a uma visualização mais concisa e que
de fato, dê sentido à hierarquia criada dentro dos arquivos.
Por fim, em relação ao mecanismo de comunicação adicionado ao aplicativo, como
outro objetivo também deste trabalho, sugerem-se:
a) adicionar informações da atividade dos usuários no chat do aplicativo; online e off-
line, bem como seus possíveis estados: ocupado, ausente, entre outros;
b) permitir que usuários possam selecionar outros usuários do seu interesse a
acessarem uma sala de bate-papo criado por um destes, restringindo desta forma, o
acesso a usuários não desejados ou que não façam parte de um mesmo grupo de
interesse.
62
REFERÊNCIAS
ALVARENGA, Gustavo G. Ferramenta para criação de composições musicais para Android. 2013. 58 f. Trabalho de Conclusão de Curso (Bacharelando em Ciências da Computação) – Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. Disponível em: < http://campeche.inf.furb.br/tccs/2013-I/TCC2013-1-16-VF-GustavoGAlvarenga.pdf>. Acesso em: 09 set. 2013.
CASTILHO, Marcelo. O que é CSCW? [S.l.], 2008. Disponível em: <http://www.dimensaotech.com/2008/11/o-que-e-cscw/>. Acesso em: 12 set. 2013.
FICHEMAN, Irene K. et al. Editor musical: uma aplicação para a aprendizagem de música apoiada por meios eletrônicos interativos. In: SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA EDUCAÇÃO, 2003, Rio de Janeiro. Anais eletrônicos... Rio de Janeiro: UFRJ, 2003. Disponível em: <http://www.nce.ufrj.br/sbie2003/publicacoes/paper20.pdf>. Acesso em: 06 abr. 2013.
GEROSA, Marco A.; FUKS, Hugo; LUCENA, Carlos J. P. Suporte à percepção em ambientes de aprendizagem colaborativa. Revista Brasileira de Informática na Educação, vol. 11, n. 2, nov. 2003. Disponível em: <http://groupware.les.inf.puc-rio.br/public/papers/RBIE-PercepcaoAulaNet.pdf>. Acesso em: 16 set. 2013.
MACEDO, Alessandra A.; KUTOVA, Marcos A. S.; PIMENTEL, Maria G. C. Ambientes cooperativos: tendências e exemplos. Notas Didáticas do ICMC, São Carlos, n. 35, p. 4-41, fev. 1999. Disponível em: <http://www.icmc.usp.br/CMS/Arquivos/arquivos_enviados/BIBLIOTECA_113_ND_35.pdf>. Acesso em: 17 set. 2013.
MED, Bohumil. Teoria da música. 4. ed. Brasília: Musimed, 1996.
MILETTO, Evandro M. et al. CODES: um ambiente para prototipação musical cooperativa baseado na web. In: CONGRESSO DA SOCIEDADE BRASILEIRA DE COMPUTAÇÃO, 25., 2005, São Leopoldo. Anais eletrônicos... São Leopoldo: UNISINOS, 2005. Disponível em: <http://www.researchgate.net/publication/229009479_CODES_Um_Ambiente_para_Prototipao_Musical_Cooperativa_Baseado_na_Web/file/72e7e51543931470e7.pdf>. Acesso em: 06 abr. 2013.
MOECKEL, Alexandre. CSCW: conceitos e aplicações para cooperação. Centro Federal de Educação Tecnológica do Paraná, Curitiba. p. 2-32, jun. 2003. Disponível em: <http://www.pessoal.utfpr.edu.br/moeckel/publicacoes/cscw_gdp2003.pdf>. Acesso em: 15 set. 2013.
NIELSEN, Jakob. Usability Engineering. San Franciso: Morgan Kaufmann Publishing, 1993.
PINHATI, Fernando; FERLIN, Claudia. MusiK – um ambiente inteligente de auxílio à composição. Revista: Publicação técnico-científica do IST-Rio, Rio de Janeiro, v. 03, n. 05, p. 95-111, dez. 2012. Disponível em: <http://www.istrio.net/revista/ojs/index.php/revISTa/article/viewFile/52/11>. Acesso em: 15 set. 2013.
63
QUICKBLOX MBAAS: cloud backend API as a service for mobile and web apps. [S.l.], jun. 2014. Disponível em: < http://quickblox.com/>. Acesso em: 20 mar. 2014.
SWANWICK, Keith; FRANÇA, Cecília C. Composição, apreciação e performance na educação musical: teoria, pesquisa e prática. EM PAUTA, Porto Alegre: v. 13, n. 21, p. 05-41, 2002. Disponível em: <http://seer.ufrgs.br/index.php/EmPauta/article/download/8526/4948>. Acesso em: 02 jun. 2013.
64
APÊNDICE A – Detalhamento dos casos de uso
Neste apêndice está o detalhamento dos casos de uso especificados no aplicativo de
composição musical para leigos. Associando ações aos mecanismos de suporte ao Modelo 3C
de colaboração (coordenação, cooperação e comunicação), são apresentados os roteiros de
cada caso de uso, com seus cenários.
O Quadro 23 apresenta o caso de uso UC01 - Fazer Login/Logout. O Quadro 24
apresenta o caso de uso UC02 - Cadastrar Usuário. Já os Quadros 25 e 26, apresentam os
casos de uso UC03 - Baixar Composição do Servidor (suporte à coordenação) e UC04 -
Enviar Composição ao Servidor (suporte à cooperação), respectivamente. Por fim, o
Quadro 27 apresenta o caso de uso UC05 - Acessar Chat (provendo suporte ao mecanismo
de comunicação).
65
Quadro 23 – Caso de uso UC01 Número 01 Caso de uso Fazer Login/Logout Descrição Caso de uso da funcionalidade que permite um usuário se registrar no
servidor. Ator Usuário
Pré-condições Possuir o aplicativo de composição musical instalado no dispositivo móvel. Estar conectado à internet.
Pós-condições Usuário registrado no servidor ou deslogado do servidor. Cenário principal 1. O Usuário abre o aplicativo no dispositivo móvel;
2. O aplicativo exibe a interface principal; 3. O Usuário seleciona a opção Login no menu principal do
aplicativo; 4. O aplicativo carrega uma caixa de diálogo com as opções de
Login e Cadastre-se; 5. O Usuário seleciona a opção de Login; 6. O Usuário informa o seu login, senha e seleciona a opção
Login; 7. O aplicativo verifica se o usuário informado é um usuário
cadastrado no servidor; 8. O aplicativo registra o Usuário no servidor; 9. Retorna ao passo 2.
Cenário de exceção No passo 6, após o Usuário informar o login e senha e selecionar a opção Login, se o dispositivo móvel não estiver conectado à Internet, o aplicativo informa que ocorreu um erro ao tentar efetuar o login e retorna ao passo 6. No passo 7, se os campos de login e senha não estiverem preenchidos corretamente, o aplicativo informa que ocorreu um erro ao tentar efetuar o login e retorna ao passo 6.
66
Quadro 24 – Caso de uso UC02 Número 02 Caso de uso Cadastrar Usuário Descrição Caso de uso da funcionalidade que permite um usuário se cadastrar no
servidor. Ator Usuário
Pré-condições Possuir o aplicativo de composição musical instalado no dispositivo móvel. Estar conectado à internet.
Pós-condições Usuário cadastrado e registrado no servidor. Cenário principal 1. O Usuário abre o aplicativo no dispositivo móvel;
2. O aplicativo exibe a interface principal; 3. O Usuário seleciona a opção Login no menu principal do
aplicativo; 4. O aplicativo carrega uma caixa de diálogo com as opções de
Login e Cadastre-se; 5. O Usuário seleciona a opção Cadastra-se; 6. O Usuário informa o seu login, senha, email e seleciona a
opção Cadastrar; 7. O aplicativo valida os campos do cadastro; 8. O aplicativo cadastra e registra o Usuário no servidor; 9. Retorna ao passo 2.
Cenário de exceção No passo 6, após o Usuário informar o login, senha, email e selecionar a opção Cadastrar, se o dispositivo móvel não estiver conectado à Internet, o aplicativo informa que ocorreu um erro ao tentar efetuar o cadastro e retorna ao passo 6. No passo 7, se algum campo do cadastro não foi preenchido corretamente, o aplicativo informa que ocorreu um erro ao tentar efetuar o cadastro e retorna ao passo 6.
67
Quadro 25 – Caso de uso UC03 Número 03 Caso de uso Baixar Composição do Servidor (suporte à coordenação) Descrição Caso de uso da funcionalidade que permite um usuário baixar uma
composição do servidor. Ator Usuário
Pré-condições Usuário logado no servidor. Pós-condições Timeline carregada com os Samples que compõem a composição. Cenário principal 1. O Usuário abre o menu secundário da interface principal;
2. O Usuário seleciona a opção Sincronizar do menu secundário;
3. O aplicativo abre uma caixa de diálogo com as opções de Enviar Composição e Baixar Composição;
4. O Usuário seleciona a opção de Baixar Composição; 5. O aplicativo retorna para o Usuário uma lista com as
composições armazenadas no servidor, listando as composições enviadas pelo próprio Usuário e também as composições enviadas por outros usuários que tenham associado o Usuário em questão aos seus arquivos de composição.
6. O Usuário seleciona a composição desejada; 7. O Usuário seleciona a opção de Criar Nova Versão ou de
Continuar Versão Atual; 8. O aplicativo efetua o controle da versão de acordo com a
opção selecionada pelo Usuário; 9. O aplicativo dispõe os Samples existentes no arquivo na
Timeline da interface principal. Cenário de exceção No passo 4, após o Usuário selecionar a opção Baixar Composição,
se o dispositivo móvel não estiver conectado à Internet, o aplicativo informa que ocorreu um erro ao tentar carregar a lista de composições e retorna ao passo 3. No passo 8, se o Usuário selecionar a opção de Continuar Versão Atual e a composição selecionada já possuir dois níveis de versão de arquivo, o aplicativo informa de que não é possível criar mais que dois níveis de composição e a operação retorna ao passo 6.
68
Quadro 26 – Caso de uso UC04 Número 04 Caso de uso Enviar Composição ao Servidor (suporte à cooperação) Descrição Caso de uso da funcionalidade que permite um usuário enviar uma
composição ao servidor. Ator Usuário
Pré-condições Usuário logado no servidor e arquivo salvo localmente após o login do Usuário.
Pós-condições Arquivo de composição armazenado no servidor. Cenário principal 1. O Usuário abre o menu secundário da interface principal;
2. O Usuário seleciona a opção Sincronizar do menu secundário;
3. O aplicativo abre uma caixa de diálogo com as opções de Enviar Composição e Baixar Composição;
4. O Usuário seleciona a opção de Enviar Composição; 5. O aplicativo abre uma caixa de diálogo perguntando ao
Usuário se o mesmo deseja tornar o arquivo público; 6. O Usuário seleciona a opção Não; 7. O aplicativo carrega uma lista com os usuários cadastrados no
servidor; 8. O Usuário marca os usuários que ele deseja associar (que
posteriormente poderão baixar o arquivo); 9. O Usuário seleciona a opção OK; 10. O aplicativo envia o arquivo de composição ao servidor; 11. O aplicativo retorna ao Usuário uma mensagem na tela
informando que a composição foi carregada para o servidor com sucesso;
12. O aplicativo retorna à interface principal. Cenário alternativo No passo 5, se o Usuário selecionar a opção Sim a operação é
direcionada para o passo 10. Cenário de exceção No passo 4, após o Usuário selecionar a opção Enviar Composição,
se o dispositivo móvel não estiver conectado à Internet, o aplicativo informa que ocorreu um erro ao tentar processar a operação e retorna ao passo 3. No passo 9, se o Usuário selecionar a opção OK e não tiver marcado nenhum usuário para associar ao arquivo, o aplicativo informa que é necessário associar ao menos um usuário e a operação retorna ao passo 8.
69
Quadro 27 – Caso de uso UC05 Número 05 Caso de uso Acessar Chat (suporte à comunicação) Descrição Caso de uso da funcionalidade que permite um usuário acessar o
ambiente de mensagens instantâneas. Ator Usuário
Pré-condições Usuário logado no servidor. Pós-condições Usuário em comunicação com um ou mais usuários. Cenário principal 1. O Usuário abre o menu secundário da interface principal;
2. O Usuário seleciona a opção Chat do menu secundário; 3. O aplicativo carrega a lista de usuários cadastrados no
servidor, bem como a lista de salas de bate-papo; 4. O Usuário seleciona outro usuário para iniciar uma conversa; 5. Os usuários trocam mensagens entre si; 6. O passo 5 se repete até que o Usuário saia do ambiente do
Chat; 7. O aplicativo retorna à interface principal.
Cenário alternativo No passo 4, se o Usuário selecionar a aba de salas de bate-papo, o Usuário deverá selecionar uma sala para ingressar em uma conversa em grupo. O Usuário poderá ainda, criar uma nova sala de bate-papo selecionado a opção + na aba de salas; dando à ela a descrição desejada. A operação segue para o passo 5.
70
APÊNDICE B – Lista de tarefas e questionário de avaliação de usabilidade
Neste apêndice estão a folha de apresentação com os objetivos do teste, bem como
apresentação do aplicativo de composição musical, além da lista de tarefas que foram
executadas pelos usuários durante o experimento de usabilidade e, concluindo com o
questionário aplicado que avaliou a usabilidade do aplicativo em relação às funcionalidades
propostas, principalmente aquelas com foco nos mecanismos de colaboração.
O Quadro 28 apresenta a folha de apresentação e convite para o teste. O Quadro 29
apresenta o questionário de perfil de usuário. O Quadro 30 apresenta a lista de tarefas
solicitadas envolvendo as funcionalidades do aplicativo. Por fim, o Quadro 31 apresenta o
questionário de usabilidade do aplicativo.
71
Quadro 28 – Folha de apresentação e convite para o teste de usabilidade
MyMusic – Aplicativo de composição musical para leigos Pesquisa de Usabilidade
Olá!
Você está sendo convidado a participar de uma avaliação de usabilidade do aplicativo de composição musical para leigos MyMusic. Este aplicativo tem por objetivo principal, possibilitar que usuários com pouco ou nenhum conhecimento em composição musical criem seus próprios trechos de músicas, através de alguns instrumentos e notas que o aplicativo dispõe.
Além da criação da composição, o aplicativo está voltado (através deste trabalho) para um ambiente colaborativo, onde um usuário pode interagir com outros usuários. O aplicativo, através desse trabalho de TCC, dispõe agora de chat, envio de arquivos de composição para um servidor como forma de compartilhamento e, também o download destes arquivos. Para tanto, gostaríamos do seu apoio e contribuição, respondendo ao questionário de Perfil de Usuário abaixo para, posteriormente, utilizar o aplicativo e responder ao Questionário de Usabilidade.
Quadro 29 – Questionário de perfil de usuário
PERFIL DE USUÁRIO Observação: As informações aqui preenchidas serão mantidas em sigilo. Sexo: ( ) Masculino ( ) Feminino Idade: ( ) Tenho menos de 18 anos ( ) Tenho entre 18 e 25 anos ( ) Tenho entre 25 e 35 anos ( ) Tenho mais de 35 anos Nível de Escolaridade: ( ) Ensino Fundamental Incompleto ( ) Ensino Fundamental Completo – 1º grau ( ) Ensino Médio Incompleto ( ) Ensino Médio Completo – 2º grau ( ) Ensino Superior Incompleto ( ) Ensino Superior Completo Indique a sua relação com a música: ( ) Não ouço música ( ) Escuto música mas não tenho nenhum conhecimento da área ( ) Consigo identificar instrumentos e ritmos musicais ( ) Sou músico amador
( ) Sou músico profissional
72
Quadro 30 – Lista de tarefas envolvendo a execução das funcionalidades do aplicativo INSTRUÇÕES Nosso principal objetivo é avaliar a utilização do aplicativo de composição musical quanto aos seus mecanismos de cooperação e colaboração entre os usuários. O aplicativo dispõe não apenas da criação de composição musical, que é a sua base, mas principalmente, como foco deste trabalho, a cooperação e a interação entre os usuários, através da utilização do chat disponível no aplicativo, do envio e recebimento de arquivos de composição de outros usuários e assim por diante. Utilize livremente o aplicativo explorando-o da melhor forma possível, por um período de 10 a 15 minutos e, não havendo nenhuma dúvida ou questionamento, solicitamos que prossiga para as orientações abaixo. Lista de tarefas a serem executadas: A seguir você deve proceder de acordo com o solicitado, indicando ao final se a atividade foi concluída ou não. � As tarefas abaixo contemplam o mecanismo de cooperação presente no aplicativo.
1) Realize o cadastro de um usuário.
A tarefa foi executada? Sim, não? Por quê? ____________________________________________________________________________________________________________________________________________________
2) Monte uma composição no aplicativo com os instrumentos e notas musicais disponíveis e, em seguida salve-a no dispositivo.
A tarefa foi executada? Sim, não? Por quê? ____________________________________________________________________________________________________________________________________________________
3) Envie a composição criada para o servidor.
A tarefa foi executada? Sim, não? Por quê? ____________________________________________________________________________________________________________________________________________________ � Os passos abaixo contemplam o mecanismo de coordenação do aplicativo.
4) Faça o download de uma composição disponível no servidor.
A tarefa foi executada? Sim, não? Por quê? ____________________________________________________________________________________________________________________________________________________
5) Se você conseguiu executar a tarefa anterior, edite a composição complementando-a e ao término, envie-a novamente ao servidor.
A tarefa foi executada? Sim, não? Por quê? ____________________________________________________________________________________________________________________________________________________ � Os passos abaixo contemplam o mecanismo de comunicação do aplicativo.
6) Acesse o chat do aplicativo.
A tarefa foi executada? Sim, não? Por quê? ____________________________________________________________________________________________________________________________________________________
73
7) Troque mensagens com algum usuário no modo individual ou através das salas de bate-papo.
A tarefa foi executada? Sim, não? Por quê? ____________________________________________________________________________________________________________________________________________________
8) Crie uma nova sala de bate-papo.
A tarefa foi executada? Sim, não? Por quê?
______________________________________________________________________________________________________________________________________________
74
Quadro 31 – Questionário de usabilidade do aplicativo QUESTIONÁRIO DE USABILIDADE
Das tarefas solicitadas acima, quantas você conseguiu executar? ( ) Todas ( ) A maior parte delas ( ) Metade das tarefas ( ) Menos da metade das tarefas ( ) Nenhuma tarefa De um modo geral, você achou o aplicativo intuitivo e fácil de usar? ( ) Sim ( ) Não Você acha interessante fazer música colaborativamente? Caso a resposta seja não, expresse sua opinião a respeito nas linhas abaixo. ( ) Sim ( ) Não ____________________________________________________________________________________________________________________________________________________ � Com relação ao mecanismo de cooperação do aplicativo:
Você conseguiu cadastrar um usuário? ( ) Sim ( ) Não Você conseguiu criar uma composição? ( ) Sim ( ) Não Você conseguiu enviar esta composição para o servidor? ( ) Sim ( ) Não Você cooperou com algum usuário baixando alguma composição do servidor e complementando com seus incrementos? ( ) Sim ( ) Não � Com relação ao mecanismo de coordenação do aplicativo:
Você baixou alguma composição do servidor de outro usuário, gerando desta forma uma nova versão? ( ) Sim ( ) Não Se a resposta for SIM, você complementou a composição baixada e a enviou novamente ao servidor cooperando com o outro usuário? ( ) Sim ( ) Não � Com relação ao mecanismo de comunicação do aplicativo:
Você conseguiu acessar o chat do aplicativo? ( ) Sim ( ) Não Você interagiu com algum usuário através do chat? ( ) Sim ( ) Não
75
Você acessou alguma sala de bate-papo? ( ) Sim ( ) Não Você achou prática a representação visual dos samples? Se não, como acha que os samples deveriam ser representados? ______________________________________________________________________________________________________________________________________________________________________________________________________________________________ Você gostaria que o aplicativo exportasse as composições criadas para um formato de áudio (ex. MP3)? ______________________________________________________________________________________________________________________________________________________________________________________________________________________________ Por fim, o que você achou do aplicativo? ______________________________________________________________________________________________________________________________________________________________________________________________________________________________ Sugestões, dúvidas, reclamações a respeito do mecanismo de cooperação do aplicativo (cadastro do usuário, processo de composição e envio ao servidor). ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Sugestões, dúvidas, reclamações a respeito do mecanismo de coordenação (download de composição do servidor). ______________________________________________________________________________________________________________________________________________________________________________________________________________________________ Sugestões, dúvidas, reclamações a respeito do mecanismo de comunicação (chat). ______________________________________________________________________________________________________________________________________________________________________________________________________________________________
Obrigado pela participação!