From 8be34f3fe687b6773776c0053fd13ff8f741425a Mon Sep 17 00:00:00 2001 From: Natan Santana Date: Thu, 18 Aug 2022 13:54:32 -0300 Subject: [PATCH 01/23] =?UTF-8?q?#39=20-=20cria=C3=A7=C3=A3o=20do=20planej?= =?UTF-8?q?amento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ghpages08/docs/planejamento/cronograma.md | 14 ++++++- .../etapa_1/planejamento.md" | 41 ++++++++++++++++++- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/ghpages08/docs/planejamento/cronograma.md b/ghpages08/docs/planejamento/cronograma.md index e61b4ba..aba7f79 100644 --- a/ghpages08/docs/planejamento/cronograma.md +++ b/ghpages08/docs/planejamento/cronograma.md @@ -101,8 +101,18 @@ Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limit Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limite para revisão --------- | ----------------- | -------------- | ---------- | ---------- -21/08/2022 | Verificação dos artefatos | - +21/08/2022 | Planejamento da Verificação da Etapa 1 | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 2 | [Daniel Coimbra](https://github.com/DanielCoimbra) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 21/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 3 | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) | 21/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 4 | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) | 21/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 5 | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 +21/08/2022 | Relato da Verificação da Etapa 1 e ajustes nos artefatos | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 +21/08/2022 | Relato da Verificação da Etapa 2 e ajustes nos artefatos | [Daniel Coimbra](https://github.com/DanielCoimbra) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 21/08/2022 +21/08/2022 | Relato da Verificação da Etapa 3 e ajustes nos artefatos | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) | 21/08/2022 +21/08/2022 | Relato da Verificação da Etapa 4 e ajustes nos artefatos | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) | 21/08/2022 +21/08/2022 | Relato da Verificação da Etapa 5 e ajustes nos artefatos | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 +21/08/2022 | Slides e gravação do vídeo de apresentação | Todos | [Clara Ribeiro](https://github.com/clara-ribeiro) | 22/08/2022 +22/08/2022 | Edição do vídeo de apresentação | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Natan Santana](https://github.com/Neitan2001) | 22/08/2022

Tabela 6: Verificação dos artefatos

diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" index d380717..f0a2351 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" @@ -1 +1,40 @@ -# Planejamento da Verificação da Etapa 1 \ No newline at end of file +# Planejamento da Verificação da Etapa 1 + +## Introdução e Objetivo + +A fim de garantirmos que todos os artefatos de todas as entregas estão de acordo com os requisitos e critérios de aceitação definidos pelo professor André Barros, é necessário a realização de uma verificação. Assim, todos os erros encontrados e qualquer coisa que estiver faltando, será ajustado e documentado. Nesta página será feita o planejamento da verificação dos artefatos da Etapa 1. + +## Método + +O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. + +## Avaliador e Cronograma + +O avaliador responsável pela revisão dos artefatos da etapa 1 será o membro Natan Tavares Santana e a revisão será executada no dia 19/08/2022. + +## Checklist + +A tabela 1 especifica todos os pontos que serão avaliados durante a execução da revisão. + +| Checklist | +| ---- | +| O artefato possui uma tabela de versionamento? | +| O artefato possui as referência bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| Todos os artefatos possuem texto de introdução? | +| É apresentado os Princípios Gerais do Projeto que serão utilizados? | +| É apresentado como o Princípios Gerais do Projeto será utilizado no projeto? | +| Foi definido as características da plataforma para o projeto? | +| É apresentada as metas de usabilidade que devem ser alcançadas no projeto? | +| É explicada a razão de quais das metas de usabilidade serão utilizadas? | +| É apresentado o Guia de Estilo do projeto? | +| O Guia de Estilo corresponde ao site avaliado? | + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 18/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 1 | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file From ad4b57d7ff19c2aa43016e4d18e580e7088f4c60 Mon Sep 17 00:00:00 2001 From: Natan Santana Date: Fri, 19 Aug 2022 07:53:24 -0300 Subject: [PATCH 02/23] =?UTF-8?q?#39=20-=20corre=C3=A7=C3=A3o=20do=20arqui?= =?UTF-8?q?vo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_1/planejamento.md" | 41 +------------------ .../etapa_3/planejamento.md" | 41 ++++++++++++++++++- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" index f0a2351..d380717 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" @@ -1,40 +1 @@ -# Planejamento da Verificação da Etapa 1 - -## Introdução e Objetivo - -A fim de garantirmos que todos os artefatos de todas as entregas estão de acordo com os requisitos e critérios de aceitação definidos pelo professor André Barros, é necessário a realização de uma verificação. Assim, todos os erros encontrados e qualquer coisa que estiver faltando, será ajustado e documentado. Nesta página será feita o planejamento da verificação dos artefatos da Etapa 1. - -## Método - -O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. - -## Avaliador e Cronograma - -O avaliador responsável pela revisão dos artefatos da etapa 1 será o membro Natan Tavares Santana e a revisão será executada no dia 19/08/2022. - -## Checklist - -A tabela 1 especifica todos os pontos que serão avaliados durante a execução da revisão. - -| Checklist | -| ---- | -| O artefato possui uma tabela de versionamento? | -| O artefato possui as referência bibliográficas? | -| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | -| Todos os artefatos possuem texto de introdução? | -| É apresentado os Princípios Gerais do Projeto que serão utilizados? | -| É apresentado como o Princípios Gerais do Projeto será utilizado no projeto? | -| Foi definido as características da plataforma para o projeto? | -| É apresentada as metas de usabilidade que devem ser alcançadas no projeto? | -| É explicada a razão de quais das metas de usabilidade serão utilizadas? | -| É apresentado o Guia de Estilo do projeto? | -| O Guia de Estilo corresponde ao site avaliado? | - -## Bibliografia -> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 - -## Tabela de Versionamento - -| Data | Versão | Descrição | Autor | Revisor | -| ---- | ------ | --------- | ----- | ------- | -| 18/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 1 | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file +# Planejamento da Verificação da Etapa 1 \ No newline at end of file diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" index 3b632af..eda42cd 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" @@ -1 +1,40 @@ -# Planejamento da Verificação da Etapa 3 \ No newline at end of file +# Planejamento da Verificação da Etapa 3 + +## Introdução e Objetivo + +A fim de garantirmos que todos os artefatos de todas as entregas estão de acordo com os requisitos e critérios de aceitação definidos pelo professor André Barros, é necessário a realização de uma verificação. Assim, todos os erros encontrados e qualquer coisa que estiver faltando, será ajustado e documentado. Nesta página será feita o planejamento da verificação dos artefatos da Etapa 1. + +## Método + +O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. + +## Avaliador e Cronograma + +O avaliador responsável pela revisão dos artefatos da etapa 1 será o membro Natan Tavares Santana e a revisão será executada no dia 19/08/2022. + +## Checklist + +A tabela 1 especifica todos os pontos que serão avaliados durante a execução da revisão. + +| Checklist | +| ---- | +| O artefato possui uma tabela de versionamento? | +| O artefato possui as referência bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| Todos os artefatos possuem texto de introdução? | +| É apresentado os Princípios Gerais do Projeto que serão utilizados? | +| É apresentado como o Princípios Gerais do Projeto será utilizado no projeto? | +| Foi definido as características da plataforma para o projeto? | +| É apresentada as metas de usabilidade que devem ser alcançadas no projeto? | +| É explicada a razão de quais das metas de usabilidade serão utilizadas? | +| É apresentado o Guia de Estilo do projeto? | +| O Guia de Estilo corresponde ao site avaliado? | + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 18/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 1 | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file From d33267bac227a992f7113494473a2196a7445b00 Mon Sep 17 00:00:00 2001 From: Natan Santana Date: Fri, 19 Aug 2022 08:46:52 -0300 Subject: [PATCH 03/23] =?UTF-8?q?#44=20-=20relato=20da=20revis=C3=A3o=20e?= =?UTF-8?q?=20ajustes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../analise_de_requisitos/caracteristicas.md | 24 ++++++++++ ...act-plataforma.md => metas_usabilidade.md} | 16 ++++++- .../principios_gerais_do_projeto.md | 9 ++-- .../etapa_3/relato.md" | 46 ++++++++++++++++++- 4 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 ghpages08/docs/analise_de_requisitos/caracteristicas.md rename ghpages08/docs/analise_de_requisitos/{caract-plataforma.md => metas_usabilidade.md} (89%) diff --git a/ghpages08/docs/analise_de_requisitos/caracteristicas.md b/ghpages08/docs/analise_de_requisitos/caracteristicas.md new file mode 100644 index 0000000..dde39c5 --- /dev/null +++ b/ghpages08/docs/analise_de_requisitos/caracteristicas.md @@ -0,0 +1,24 @@ +# Características da Plataforma + +## Introdução + +Durante a análise de requisitos, é de suma importância entender as características da plataforma: por quais dispositivos ela pode ser acessada e quais as suas limitações. Com isso levantado, o grupo pode seguir com as próximas etapas do projeto e guiar as decisões de design de acordo com o que foi avaliado. + +## Características + +O sistema Agência Virtual NeoEnergia é uma aplicação WEB que pode ser acessada por um computador ou celular utilizando algum navegador (como o Google Chrome, Opera GX, Mozilla Firefox, entre outros). A fim de realizar alguma das tarefas do site (2° Via de Conta, Religação, Falta de Energia, Atualizar Cadastro, Alterar Data de Vencimento, Histórico de consumo) é necessário entrar na conta ou criar uma nova. + +## Limitações + +Mesmo sendo possível acessar o site pelo celular, a interface não é responsiva e possui algumas falhas. E até nos computadores, a interface não foi projetada para se adaptar ao tamanho da tela, fazendo com que alguns problemas apareçam de acordo com o tamanho do monitor do usuário. Além disso, o sistema não possui uma opção de manter o usuário logado, fazendo com que seja necessário realizar o login toda vez que o sistema é acessado. + +## Conclusão + +Dito isso, durante as próximas fases do projeto, o time irá priorizar a correção dessas limitações a fim de que seja feito uma interface que irá facilitar a realização das atividades pelos usuários. + +## Bibliografia +> Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Interação Humano-Computador e Experiência do usuário. + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 19/08/2022 | `0.1` | Criação do artefato Características da Plataforma| [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file diff --git a/ghpages08/docs/analise_de_requisitos/caract-plataforma.md b/ghpages08/docs/analise_de_requisitos/metas_usabilidade.md similarity index 89% rename from ghpages08/docs/analise_de_requisitos/caract-plataforma.md rename to ghpages08/docs/analise_de_requisitos/metas_usabilidade.md index c83f1a4..9e095e0 100644 --- a/ghpages08/docs/analise_de_requisitos/caract-plataforma.md +++ b/ghpages08/docs/analise_de_requisitos/metas_usabilidade.md @@ -49,7 +49,7 @@ #### Aplicação -  A aplicação não apresenta uma proteção para o usuário quanto a condições perigosas e situações indesejáveis. Por exemplo, não há a opção de manter o usuário conectado ou de salvar a senha para facilitar o acesso na próxima vez que for realizar o login. +  A aplicação não apresenta uma proteção para o usuário quanto a condições perigosas e situações indesejáveis. Por exemplo, não há a opção de manter o usuário conectado ou de salvar a senha para facilitar o acesso na próxima vez que for realizar o login. Além disso, o fluxo para mudar a senha, obrigatoriamente muda o email também e se o usuário não quiser mudar o email e escrever o email atual errado, é feito a alteração para o errado.

@@ -85,6 +85,19 @@   O site por ter funcionalidades muito objetivas deixa os seus serviços bem visíveis em diversos espaços. O que permite aos usuários lembrarem com facilidade onde precisam clicar para realizar as tarefas.

+## Conclusão + +

+  Observa-se que o site Agência Virtual NeoEnergia não alcançou algumas das metas de usabilidade: +

+- Eficiência; +- Segurança; +- Aprendizagem; + +

+  Portante, as metas listadas acima serão priorizadas durante as próximas etapas do projeto a fim de ser criado um design que os alcance. +

+ ## Bibliografia > BARBOSA, Simone; DINIZ, Bruno. Interação Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. @@ -105,3 +118,4 @@ | 19/07/2022 | `0.3` | Explicação dos objetivos | [Matheus Perillo](https://github.com/MatheusPerillo) | [Natan Santana](https://github.com/Neitan2001) | 19/07/2022 | `0.4` | Explicação das metas de usabilidade | [Matheus Perillo](https://github.com/MatheusPerillo) | [Natan Santana](https://github.com/Neitan2001) | 29/07/2022 | `0.5` | Aplicação das metas de usabilidade | [Matheus Perillo](https://github.com/MatheusPerillo) | [Natan Santana](https://github.com/Neitan2001) +| 19/08/2022 | `0.6` | Ajustes do artefato de acordo com a revisão | [Natan Santana](https://github.com/Neitan2001) | diff --git a/ghpages08/docs/analise_de_requisitos/principios_gerais_do_projeto.md b/ghpages08/docs/analise_de_requisitos/principios_gerais_do_projeto.md index 4980759..7b2bb35 100644 --- a/ghpages08/docs/analise_de_requisitos/principios_gerais_do_projeto.md +++ b/ghpages08/docs/analise_de_requisitos/principios_gerais_do_projeto.md @@ -19,15 +19,15 @@ A construção dessas diretrizes se baseiam em nove pontos: ## Aplicação dos princípios no projeto -Dentro do sistema, fizemos a análise do uso dos princípios das seguintes atividades: recuperação de senha, recuperação de email e geração do relatório nada consta. A partir disso conseguimos identificar problemas com as seguintes diretrizes: +Dentro do sistema, fizemos a análise do uso dos princípios das seguintes atividades: primeiro acesso, recuperação de senha, recuperação de email e geração do relatório nada consta. A partir disso conseguimos identificar problemas com as seguintes diretrizes: **Correspondência com as expectativas dos usuários** -Esse princípio deixa a desejar em todas as atividades citadas acima. Ao solicitar a geração do relatório nada consta, se acontece um erro a mensagem que aparece ao usuário é muito genérica e difícil de entender, impossibilitando que o usuário se recupere do erro. Já na recuperação de senha e email, o sistema solicita que seja informado dados pessoais, e, quando a pessoa clica no botão de prosseguir, não é informado se os dados inseridos constam na base ou como prosseguir. Logo, é importante inserir mais mensagem que informem melhor o usuário sobre qual a situação do sistema de acordo com as atividades. +Esse princípio deixa a desejar em todas as atividades citadas acima. Na recuperação de senha e email, o sistema solicita que seja informado dados pessoais, e, quando a pessoa clica no botão de prosseguir, não é informado se os dados inseridos constam na base ou como prosseguir. Logo, é importante inserir mais mensagem que informem melhor o usuário sobre qual a situação do sistema de acordo com as atividades. **Visibilidade e reconhecimento** -O usuário não consegue reconhecer dentro das atividades quando elas foram encerradas, já que nenhum indicativo nem de forma sonora nem de forma visual, deixando-o confuso ou esperando por algo sem saber se finalizou. +Ao solicitar a geração do relatório nada consta, se acontece um erro, a mensagem que aparece ao usuário é muito genérica e difícil de entender, impossibilitando que o usuário se recupere do erro. Além disso, o usuário não consegue reconhecer dentro da atividade de "Primeiro Acesso" quando ela foi encerrada, já que nenhum indicativo nem de forma sonora nem de forma visual, deixando-o confuso ou esperando por algo sem saber se finalizou. **Projeto para erros** @@ -44,4 +44,5 @@ Fazendo uma análise do sistema da NeoEnergia em relação às diretrizes aprese | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | | 26/07/2022 | `0.1` | Criação da página de Princípios Gerais do Projeto | [Luíza Esteves](https://github.com/luiza-esteves) | [Clara Ribeiro](https://github.com/clara-ribeiro) -| 16/08/2022 | `0.2` | Ajustes da página de Princípios Gerais do Projeto | [Luíza Esteves](https://github.com/luiza-esteves) | [Natan Santana](https://github.com/Neitan2001) \ No newline at end of file +| 16/08/2022 | `0.2` | Ajustes da página de Princípios Gerais do Projeto | [Luíza Esteves](https://github.com/luiza-esteves) | [Natan Santana](https://github.com/Neitan2001) +| 19/08/2022 | `0.3` | Ajustes do artefato de acordo com a revisão | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" index 32d72c3..a1616e2 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" @@ -1 +1,45 @@ -# Relato da Verificação da Etapa 3 \ No newline at end of file +# Relato da Verificação da Etapa 3 + +## Introdução + +Este documento possui o objetivo de relatar os resultados da verificação feita pelo avaliador Natan Tavares Santana no dia 19/08/2022 utilizando o método de Inspeção. O checklist desenvolvido no [planejamento da verificação](./planejamento.md) foi utilizado a fim de verificar a conformidade de todo os artefatos da etapa 3 quanto aos requisitos e critérios de aceite definidos pelo professor André Barros. + +## Sumário dos dados + +| Checklist | Resposta | +| --------- | -------- | +| O artefato possui uma tabela de versionamento? | Sim | +| O artefato possui as referência bibliográficas? | Sim | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | Sim | +| Todos os artefatos possuem texto de introdução? | Sim | +| É apresentado os Princípios Gerais do Projeto que serão utilizados? | Sim, porém o princípio "Correspondência com as expectativas dos usuários" estava com uma parte da descrição que deveria ser do "Visibilidade e reconhecimento" | +| É apresentado como o Princípios Gerais do Projeto será utilizado no projeto? | Sim | +| Foi definido as características da plataforma para o projeto? | Não | +| É apresentada as metas de usabilidade que devem ser alcançadas no projeto? | Não | +| É explicada a razão de quais das metas de usabilidade serão utilizadas? | Não | +| É apresentado o Guia de Estilo do projeto? | Sim | +| O Guia de Estilo corresponde ao site avaliado? | Sim | + +## Problemas encontrados + +De acordo com as respostas do checklist acima, os seguintes problemas foram encontrados durante a revisão: + +- No artefato Princípios Gerais do Projeto, um dos princípios estava com uma descrição que deveria ser de outro; +- Não foi feito o artefato "Características da Plataforma"; +- No artefato Metas de Usabilidade, são descritas as metas disponíveis mas não é apresentada quais serão utilizadas no projeto e o porquê; + +## Correções + +Depois que foi levantado todos os problemas encontrados, o avaliador Natan também realizou as seguinte modificações a fim de corrigí-los: + +- Ajuste da descrição do Princípio "Correspondência com as expectativas dos usuários" e "Visibilidade e reconhecimento"; +- Criação do artefato "Características da Plataforma"; +- Listagem das Metas de Usabilidade a serem alcançadas no projeto; + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 18/08/2022 | `0.1` | Criação de relato da verificação da etapa 3 | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file From 9bd9e8755d29346abe517e2631c83ea3c30852ce Mon Sep 17 00:00:00 2001 From: luiza Date: Fri, 19 Aug 2022 10:36:35 -0300 Subject: [PATCH 04/23] #44- Correcao e alteracao na tabela de versionamento --- .../verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" index a1616e2..15643ca 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/relato.md" @@ -42,4 +42,4 @@ Depois que foi levantado todos os problemas encontrados, o avaliador Natan tamb | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | -| 18/08/2022 | `0.1` | Criação de relato da verificação da etapa 3 | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file +| 18/08/2022 | `0.1` | Criação de relato da verificação da etapa 3 | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) \ No newline at end of file From 0213e7e97920af8a569fd2854807868cdb04d8dc Mon Sep 17 00:00:00 2001 From: luiza Date: Fri, 19 Aug 2022 10:40:48 -0300 Subject: [PATCH 05/23] #39- Correcao e alteracao na tabela de versionamento --- .../etapa_3/planejamento.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" index eda42cd..97cd44a 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_3/planejamento.md" @@ -37,4 +37,4 @@ A tabela 1 especifica todos os pontos que serão avaliados durante a execução | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | -| 18/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 1 | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file +| 18/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 1 | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) \ No newline at end of file From a0d2cac0a11ebb7111dc11af2dffbdbc6afbff54 Mon Sep 17 00:00:00 2001 From: luiza Date: Fri, 19 Aug 2022 13:05:57 -0300 Subject: [PATCH 06/23] #46- Adicao da pagina de relato dos ajustes --- .../n\303\255vel 2/planejamento_prototipo.md" | 2 +- .../etapa_5/relato.md" | 42 ++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" index 818e577..c15431d 100644 --- "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" +++ "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" @@ -18,7 +18,7 @@ Assim, começamos o processo de estruturação montando um termo de consentiment ## Ferramentas utilizadas na avaliação -Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunicação quanto a gravação do encontro. Iremos utilizar os protótipos, que serão elaborados pela equipe, de algumas funcionalidades do sistema, como recuperação de senha e geração do relatório Nada consta. Além disso, forneceremos ao participante ferramentas online, caso ele queira esboçar alguma ideia em relação ao sistema. +Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunicação quanto a gravação do encontro. Iremos utilizar os protótipos, que serão elaborados conforme o cronograma citado acima, pela equipe, de algumas funcionalidades do sistema, como recuperação de senha e geração do relatório Nada consta. Além disso, forneceremos ao participante ferramentas online, caso ele queira esboçar alguma ideia em relação ao sistema. ## Perfis dos entrevistados e formas de seleção diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_5/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_5/relato.md" index 07c7430..6e0c011 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_5/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_5/relato.md" @@ -1 +1,41 @@ -# Relato da Verificação da Etapa 5 \ No newline at end of file +# Relato da Verificação da Etapa 5 + +## Introdução + +Este documento possui o objetivo de relatar os resultados da verificação feita pela avaliadora Luíza Esteves dos Santos no dia 19/08/2022 utilizando o método de Inspeção. O checklist desenvolvido no [planejamento da verificação](./planejamento.md) foi utilizado a fim de verificar a conformidade de todo os artefatos da etapa 5 quanto aos requisitos e critérios de aceite definidos pelo professor André Barros. + +## Sumário dos dados + +| Checklist | Resposta | +| --------- | -------- | +| Todos os artefatos possuem texto de introdução? | Sim | +| O artefato possui uma tabela de versionamento? |Sim | +| Todos os artefatos possuem um revisor? | Sim | +| O artefato possui as referência bibliográficas? | Sim | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | Sim | +| É apresentado os relatos dos resultados dos storyboards?| Sim | +| É apresentado os relatos dos resultados das análises de tarefas?| Sim | +| É apresentado o planejamento da avaliação do protótipo de papel?| Sim, porém é necessário ressaltar que os protótipos não estão prontos e colocar a data de realização, e além disso, alterar a quantidade de entrevistados com a devida justificativa | +| É apresentado o planejamento do relato dos resultados avaliação do protótipo de papel?| Sim | + +## Problemas encontrados + +De acordo com as respostas do checklist acima, os seguintes problemas foram encontrados durante a revisão: + +- No artefato Planejamento da avaliação do Protótipo de Papel acresentar no desenvolvimento do planejamento que o protótipo ainda vai ser feito; +- No artefato Planejamento da avaliação do Protótipo de Papel alterar a quantidade de entrevistados para 3; + +## Correções + +Depois que foi levantado todos os problemas encontrados, a avaliadora Luíza Esteves também realizou as seguinte modificações a fim de corrigí-los: + +- Ajuste na quantidade de pessoas que serão entrevistadas; +- Acréscimo da informação de data do desenvolvimento do protótipo; + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 18/08/2022 | `0.1` | Criação de relato da verificação da etapa 5 | [Luíza Esteves](https://github.com/luiza-esteves) | \ No newline at end of file From a20e278be81dc7e762912c2f2b314d7af9a5490d Mon Sep 17 00:00:00 2001 From: rafaelxavierr Date: Sun, 21 Aug 2022 19:41:29 -0300 Subject: [PATCH 07/23] =?UTF-8?q?#38=20-=20Adi=C3=A7=C3=A3o=20do=20planeja?= =?UTF-8?q?mento=20da=20verifica=C3=A7=C3=A3o=20da=20etapa=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_2/planejamento.md" | 100 ++++- ghpages08/site/404.html | 314 +++++++++++++- ghpages08/site/index.html | 383 ++++++++++++++---- ghpages08/site/search/search_index.json | 2 +- ghpages08/site/sitemap.xml | 90 +++- ghpages08/site/sitemap.xml.gz | Bin 209 -> 215 bytes 6 files changed, 790 insertions(+), 99 deletions(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" index a035f43..beff5c3 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" @@ -1 +1,99 @@ -# Planejamento da Verificação da Etapa 2 \ No newline at end of file +# Planejamento da Verificação da Etapa 2 + +## Introdução e Objetivo + +A fim de garantirmos que todos os artefatos de todas as entregas estão de acordo com os requisitos e critérios de aceitação definidos pelo professor André Barros além das alterações solicitadas pelos monitores, é necessário a realização de uma verificação. Assim, todos os erros encontrados e qualquer coisa que estiver faltando, será ajustado e documentado. Nesta página será feita o planejamento da verificação dos artefatos da Etapa 2. + +## Método + +O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. +Através dessa checklist, verificaremos se é necessário realizar a correção ou adição de pontos dentro desse artefato. + +## Avaliador e Cronograma + +Os avaliadores que ficarão responsáveis pela revisão dos artefatos da etapa 2 serão os membros Rafael Xavier Canabrava e Daniel Coimbra, que será executada no dia 21/08/2022. Assim, após a finalização já será iniciado o [relato dos resultados da verificação](./relato.md). + +## Checklist + +As tabelas 1, 2, 3, 4, e 5 especificam todos os pontos que serão avaliados durante a execução da revisão, a fim de garantir que todos os pontos estão dentro do artefato. + +| Perfil do usuário | +| ---- | +| Dados demográficos: idade, sexo, status socioeconômico | +| Experiência no cargo que ocupa: cargo atual, experiência nesse cargo, tempo na empresa, responsabilidades, trabalhos e cargos anteriores, plano de carreira | +| Informações sobre a empresa: tamanho da empresa, área de atuação | +| Educação: grau de instrução, área de formação, cursos realizados, alfabetismo. | +| Experiência com computadores: alfabetismo computacional, tempo de experiência | +| Experiência com um produto específico ou ferramentas semelhantes | +| Tecnologia disponível: hardware, software e outras ferramentas as quais tem acesso | +| Treinamento: o quanto o usuáario valoriza treinamento? Prefere um estilo de aprendizado visual, auditivo ou outro? Pode investir um tempo aprendendo utilizar o produto em questão? | +| Atitudes e valores: preferências de produto, medo de tecnologia etc. O usuário costuma assumir riscos e explorar novas formas de fazer o mesmo trabalho? Ou prefere que alguém lhe mostre cada passo de uma tarefa sendo aprendida? | +| Conhecimento do domínio: o que e quanto o usuário conhece sobre o assunto em questão? É especialista? É esperado que se torne especialista? | +| Objetivos: quais são os principais objetivos do usuário? Como eles são alcançados atualmente? | +| Tarefas: quais são as tarefas do usuário que precisam ser apoiadas? Quais dessas são consideradas primárias, e quais são secundárias? Há quanto tempo realiza essas tarefas? São tarefas frequentes ou infrequentes? São tarefas inovadoras? | + +
+

Tabela 1: Checklist de perfil de usuário

+
+ +| Considera aspectos éticos de pesquisas envolvendo pessoas? | +| ---- | +| Os 4 peincípios (da autonomia, da beneficência, princípio da não maleficência e da justiça e equidade) | +| Solicitará a permissão para gravar a voz ou a imagem de qualquer pessoa, antes de começar a gravação? | +| Possui oi termo de consentimento livre e esclarecido dos participantes? | + +
+

Tabela 2: Checklist dos aspectos éticos

+
+ +| Utiliza alguma técnica para coletar dados e levantar os requisitos dos usuários? | +| ---- | +| Entrevistas | +| Grupos de foco | +| Questionários | +| Brainstorming | +| Classificação de cartões | +| Estudos de campo | +| Investigação contextual | + +
+

Tabela 3: Técnicas de coleta

+
+ +| Personas | +| ---- | +| As personas são defendidas a partir dos dados do perfil do usuário? | +| As personas possuem: identidade? Idade e dados demográficos? Foto ? Status (primária, secundária, outro stakeholder ou representa um antiusuário do seu sistema)? | +| Objetivos da persona | +| Habilidades | +| Tarefas | +| Relacionamentos | +| Requisitos | +| Expectativas | +| Elenco de personas | +| Número de personas e uma razão desse número | +| Foram definidos cenários? | + +
+

Tabela 4: Checklist de personas

+
+ +| Análise de tarefas | +| ---- | +| Foi utilizada alguma técnica para especificar as tarefas? | +| O HTA possui diagrama, legenda e representação em tabela? | +| O GOMS foi representado pelo KLM, CMN ou CPM? | + +
+

Tabela 5: Checklist de análise de tarefas

+
+ +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 21/08/2022 + + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 21/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 2 | [Rafael Xavier](https://github.com/rafaelxavierr) | \ No newline at end of file diff --git a/ghpages08/site/404.html b/ghpages08/site/404.html index 995f7a1..286a072 100644 --- a/ghpages08/site/404.html +++ b/ghpages08/site/404.html @@ -394,12 +394,304 @@ + + + + + + + + + + + + + + +
  • + + + + + + + +
  • -

    Políticas

    -

    Políticas de Branchs

    -
    -As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: - -
    git checkout -b "#X - Nome"
    -
    -Onde 'X' é o número da issue e o 'Nome' deve ser um breve título que resuma a issue. -
    - -

    Políticas de Commits

    -

    Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo:

    -

    git commit -m "#X - Comentário"
    -
    -Onde 'X' é o número da issue e o 'Comentário' deve ser um resumo do que foi feito no commit.

    Desenvolvedores.🤝

    diff --git a/ghpages08/site/search/search_index.json b/ghpages08/site/search/search_index.json index a1e32e1..91e5ae4 100644 --- a/ghpages08/site/search/search_index.json +++ b/ghpages08/site/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Home Fonte: NEOENERGIA BRAS\u00cdLIA Sobre o Projeto Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia. Pol\u00edticas Pol\u00edticas de Branchs As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue. Pol\u00edticas de Commits Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit. Desenvolvedores.\ud83e\udd1d Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Home"},{"location":"#home","text":"Fonte: NEOENERGIA BRAS\u00cdLIA","title":"Home"},{"location":"#sobre-o-projeto","text":"Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia.","title":"Sobre o Projeto"},{"location":"#politicas","text":"","title":"Pol\u00edticas"},{"location":"#politicas-de-branchs","text":"As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue.","title":"Pol\u00edticas de Branchs"},{"location":"#politicas-de-commits","text":"Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit.","title":"Pol\u00edticas de Commits"},{"location":"#desenvolvedores","text":"Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra","title":"Desenvolvedores.\ud83e\udd1d"},{"location":"#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"apresentacoes/","text":"Apresenta\u00e7\u00f5es Etapa 1 V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1 Etapa 2 V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2 Etapa 3 V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#apresentacoes","text":"","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#etapa-1","text":"V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1","title":"Etapa 1"},{"location":"apresentacoes/#etapa-2","text":"V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2","title":"Etapa 2"},{"location":"apresentacoes/#etapa-3","text":"V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3","title":"Etapa 3"},{"location":"apresentacoes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/caract-plataforma/","text":"Metas de usabilidade Introdu\u00e7\u00e3o \u2003 Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas. Objetivo \u2003 Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo. Metas de usabilidade \u2003 A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. 1. Efic\u00e1cia \u2003 \u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele. Aplica\u00e7\u00e3o \u2003 O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando. 2. Efici\u00eancia \u2003 \u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la. Aplica\u00e7\u00e3o \u2003 Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui . 3. Seguran\u00e7a \u2003 \u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso. Aplica\u00e7\u00e3o \u2003 A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login. 4. Utilidade \u2003 Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente. Aplica\u00e7\u00e3o \u2003 O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes. 5. Aprendizagem \u2003 \u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto. Aplica\u00e7\u00e3o \u2003 Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos. 6. Memoriza\u00e7\u00e3o \u2003 Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas. Aplica\u00e7\u00e3o \u2003 O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013. Tabela de versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade","text":"","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#introducao","text":"Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#objetivo","text":"Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo.","title":"Objetivo"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade_1","text":"A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia.","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#1-eficacia","text":"\u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele.","title":"1. Efic\u00e1cia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao","text":"O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#2-eficiencia","text":"\u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la.","title":"2. Efici\u00eancia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_1","text":"Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui .","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#3-seguranca","text":"\u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso.","title":"3. Seguran\u00e7a"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_2","text":"A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#4-utilidade","text":"Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente.","title":"4. Utilidade"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_3","text":"O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#5-aprendizagem","text":"\u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto.","title":"5. Aprendizagem"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_4","text":"Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#6-memorizacao","text":"Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas.","title":"6. Memoriza\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_5","text":"O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013.","title":"Bibliografia"},{"location":"analise_de_requisitos/caract-plataforma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Tabela de versionamento"},{"location":"analise_de_requisitos/guia/","text":"Guia de Estilo Introdu\u00e7\u00e3o Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign. Identidade Visual da NeoEnergia Logo O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br Cores H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos Tipografia A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek Bot\u00f5es e \u00edcones Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia An\u00e1lise de estilo Logo Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos Cores Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia Tipografia Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia Bot\u00f5es e \u00edcones Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam. Bibliografia ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#guia-de-estilo","text":"","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#introducao","text":"Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/guia/#identidade-visual-da-neoenergia","text":"","title":"Identidade Visual da NeoEnergia"},{"location":"analise_de_requisitos/guia/#logo","text":"O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores","text":"H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia","text":"A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones","text":"Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#analise-de-estilo","text":"","title":"An\u00e1lise de estilo"},{"location":"analise_de_requisitos/guia/#logo_1","text":"Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores_1","text":"Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia_1","text":"Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones_1","text":"Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam.","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#bibliografia","text":"ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022","title":"Bibliografia"},{"location":"analise_de_requisitos/guia/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/","text":"Perfil do Usu\u00e1rio Introdu\u00e7\u00e3o O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo. Metodologia Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento) Question\u00e1rio Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18 Observa\u00e7\u00f5es Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#perfil-do-usuario","text":"","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#introducao","text":"O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#metodologia","text":"Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento)","title":"Metodologia"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#questionario","text":"Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18","title":"Question\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#observacoes","text":"Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo.","title":"Observa\u00e7\u00f5es"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/","text":"Personas Introdu\u00e7\u00e3o \u2003 Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006) Metodologia \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa. Personas Persona prim\u00e1ria Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Personas"},{"location":"analise_de_requisitos/personas/#personas","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#introducao","text":"Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006)","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/personas/#metodologia","text":"Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa.","title":"Metodologia"},{"location":"analise_de_requisitos/personas/#personas_1","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#persona-primaria","text":"Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona","title":"Persona prim\u00e1ria"},{"location":"analise_de_requisitos/personas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/","text":"Princ\u00edpios Gerais do Projeto Introdu\u00e7\u00e3o Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o. Diretrizes A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro. Conclus\u00e3o Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#principios-gerais-do-projeto","text":"","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#introducao","text":"Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#diretrizes","text":"A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro.","title":"Diretrizes"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#conclusao","text":"Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es.","title":"Conclus\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/","text":"An\u00e1lise Hier\u00e1rquica de Tarefas Introdu\u00e7\u00e3o A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link). Diagramas e tabelas Acessar a conta no site A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA Relat\u00f3rio Nada Consta A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#analise-hierarquica-de-tarefas","text":"","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#introducao","text":"A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link).","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#diagramas-e-tabelas","text":"","title":"Diagramas e tabelas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#acessar-a-conta-no-site","text":"A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA","title":"Acessar a conta no site"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#relatorio-nada-consta","text":"A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA","title":"Relat\u00f3rio Nada Consta"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/","text":"\u00c1rvores de Tarefas Concorrentes Introdu\u00e7\u00e3o Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT Diagrama de An\u00e1lise de Tarefas Concorrentes Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#arvores-de-tarefas-concorrentes","text":"","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#introducao","text":"Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#diagrama-de-analise-de-tarefas-concorrentes","text":"Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta","title":"Diagrama de An\u00e1lise de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/","text":"GOMS Introdu\u00e7\u00e3o Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM. KLM-GOMS KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios. Objetivo: Cadastro na plataforma O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM Objetivo: Entrar na plataforma O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s Objetivo: Recuperar a senha O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s Objetivo: Gerar o relat\u00f3rio de nada consta mensal O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro Objetivo: Gerar o relat\u00f3rio de nada consta anual O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#goms","text":"","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#introducao","text":"Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#klm-goms","text":"KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios.","title":"KLM-GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-cadastro-na-plataforma","text":"O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM","title":"Objetivo: Cadastro na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-entrar-na-plataforma","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s","title":"Objetivo: Entrar na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-recuperar-a-senha","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s","title":"Objetivo: Recuperar a senha"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-mensal","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro","title":"Objetivo: Gerar o relat\u00f3rio de nada consta mensal"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-anual","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s","title":"Objetivo: Gerar o relat\u00f3rio de nada consta anual"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/cronograma/","text":"Cronograma de atividades Introdu\u00e7\u00e3o Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es. Etapa 1 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design Etapa 2 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas Etapa 3 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo Etapa 4 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas Etapa 5 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Etapa 6 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos Etapa 7 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade Bibliografia 1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#cronograma-de-atividades","text":"","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#introducao","text":"Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/cronograma/#etapa-1","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design","title":"Etapa 1"},{"location":"planejamento/cronograma/#etapa-2","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas","title":"Etapa 2"},{"location":"planejamento/cronograma/#etapa-3","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo","title":"Etapa 3"},{"location":"planejamento/cronograma/#etapa-4","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas","title":"Etapa 4"},{"location":"planejamento/cronograma/#etapa-5","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel","title":"Etapa 5"},{"location":"planejamento/cronograma/#etapa-6","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos","title":"Etapa 6"},{"location":"planejamento/cronograma/#etapa-7","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade","title":"Etapa 7"},{"location":"planejamento/cronograma/#bibliografia","text":"1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022.","title":"Bibliografia"},{"location":"planejamento/cronograma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/ferramentas/","text":"Ferramentas Introdu\u00e7\u00e3o As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o. Ferramentas do Projeto Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto Refer\u00eancias FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Ferramentas"},{"location":"planejamento/ferramentas/#ferramentas","text":"","title":"Ferramentas"},{"location":"planejamento/ferramentas/#introducao","text":"As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/ferramentas/#ferramentas-do-projeto","text":"Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto","title":"Ferramentas do Projeto"},{"location":"planejamento/ferramentas/#referencias","text":"FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022","title":"Refer\u00eancias"},{"location":"planejamento/ferramentas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/processoDesign/","text":"Processo de Design Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel. Engenharia de Usabilidade de Mayhew Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos. Por que usar o ciclo de vida de Mayhew? O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas. Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Processo de Design"},{"location":"planejamento/processoDesign/#processo-de-design","text":"Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel.","title":"Processo de Design"},{"location":"planejamento/processoDesign/#engenharia-de-usabilidade-de-mayhew","text":"Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos.","title":"Engenharia de Usabilidade de Mayhew"},{"location":"planejamento/processoDesign/#por-que-usar-o-ciclo-de-vida-de-mayhew","text":"O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas.","title":"Por que usar o ciclo de vida de Mayhew?"},{"location":"planejamento/processoDesign/#aplicando-a-usabilidade-de-mayhew-na-avaliacao-do-site","text":"O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento.","title":"Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site"},{"location":"planejamento/processoDesign/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999.","title":"Bibliografia"},{"location":"planejamento/processoDesign/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/sitesAvaliados/","text":"Sites Avaliados Introdu\u00e7\u00e3o Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Sites escolhidos pelos integrantes Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro Caixa Econ\u00f4mica A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Governo de Pernambuco O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Central Expresso O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Rastreamento Correios O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Bras\u00edlia Laser Show O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Ag\u00eancia Virtual NeoEnergia A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Site escolhido Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#sites-avaliados","text":"","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#introducao","text":"Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/sitesAvaliados/#sites-escolhidos-pelos-integrantes","text":"Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro","title":"Sites escolhidos pelos integrantes"},{"location":"planejamento/sitesAvaliados/#caixa-economica","text":"A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/sitesAvaliados/#governo-de-pernambuco","text":"O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Governo de Pernambuco"},{"location":"planejamento/sitesAvaliados/#central-expresso","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Central Expresso"},{"location":"planejamento/sitesAvaliados/#rastreamento-correios","text":"O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Rastreamento Correios"},{"location":"planejamento/sitesAvaliados/#brasilia-laser-show","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Bras\u00edlia Laser Show"},{"location":"planejamento/sitesAvaliados/#agencia-virtual-neoenergia","text":"A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/sitesAvaliados/#site-escolhido","text":"Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal.","title":"Site escolhido"},{"location":"planejamento/sitesAvaliados/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.","title":"Bibliografia"},{"location":"planejamento/sitesAvaliados/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/","text":"Ag\u00eancia Virtual NeoEnergia Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa. Dados Coletados 1. Visibilidade do status do sistema A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1 2. Compatibilidade do sistema com o mundo real Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento 3. Controle do usu\u00e1rio e liberdade Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2 4. Consist\u00eancia e padr\u00f5es Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o. 5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha. 6. Preven\u00e7\u00e3o de erros A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2 7. Reconhecimento em vez de memoriza\u00e7\u00e3o Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5 8. Flexibilidade e efici\u00eancia de uso Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8 9. Est\u00e9tica e design minimalista Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas. 10. Ajuda e documenta\u00e7\u00e3o Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#agencia-virtual-neoenergia","text":"","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#introducao","text":"Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#1-visibilidade-do-status-do-sistema","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1","title":"1. Visibilidade do status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#2-compatibilidade-do-sistema-com-o-mundo-real","text":"Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento","title":"2. Compatibilidade do sistema com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#3-controle-do-usuario-e-liberdade","text":"Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2","title":"3. Controle do usu\u00e1rio e liberdade"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#4-consistencia-e-padroes","text":"Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o.","title":"4. Consist\u00eancia e padr\u00f5es"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#5-ajuda-o-usuario-a-reconhecer-diagnosticar-e-recuperar-se-de-erros","text":"Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha.","title":"5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#6-prevencao-de-erros","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2","title":"6. Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#7-reconhecimento-em-vez-de-memorizacao","text":"Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5","title":"7. Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#8-flexibilidade-e-eficiencia-de-uso","text":"Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8","title":"8. Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#9-estetica-e-design-minimalista","text":"Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas.","title":"9. Est\u00e9tica e design minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#10-ajuda-e-documentacao","text":"Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9","title":"10. Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/","text":"Bras\u00edlia Lazer Show Introdu\u00e7\u00e3o O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo. Problemas Identificados Problema 1 A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Problema 2 A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Problema 3 A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Problema 4 A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Problema 5 A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#brasilia-lazer-show","text":"","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#introducao","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problemas-identificados","text":"","title":"Problemas Identificados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-1","text":"A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1:","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-2","text":"A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2:","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-3","text":"A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3:","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-4","text":"A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4:","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-5","text":"A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5:","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/","text":"Caixa Econ\u00f4mica Introdu\u00e7\u00e3o Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana. Avalia\u00e7\u00e3o Heur\u00edstica A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2 Problema 3 A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3 Problema 4 A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4 Problema 5 A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5 Problema 6 A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6 Problema 7 A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7 Problema 8 A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8 Problema 9 A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#caixa-economica","text":"","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#introducao","text":"Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#avaliacao-heuristica","text":"A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema.","title":"Avalia\u00e7\u00e3o Heur\u00edstica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-3","text":"A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-4","text":"A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-5","text":"A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-6","text":"A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6","title":"Problema 6"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-7","text":"A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7","title":"Problema 7"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-8","text":"A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8","title":"Problema 8"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-9","text":"A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9","title":"Problema 9"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/","text":"Central Expresso Introdu\u00e7\u00e3o O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava. Objetivo O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o. Avalia\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#central-expresso","text":"","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#introducao","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#objetivo","text":"O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o.","title":"Objetivo"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#avaliacao","text":"Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade.","title":"Avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/","text":"Governo Pernambuco Introdu\u00e7\u00e3o Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves. Heur\u00edsticas de Nielsen As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema 1 - Visibilidade e status do sistema Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema. 2 - Compatibilidade com o mundo real Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es. 3 - Consist\u00eancia e padroniza\u00e7\u00e3o Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto. 4 - Projeto est\u00e9tico e minimalista Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos. Objetivos e escopo da avalia\u00e7\u00e3o A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#governo-pernambuco","text":"","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#introducao","text":"Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#heuristicas-de-nielsen","text":"As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Heur\u00edsticas de Nielsen"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#interpretacao-e-identificacao-de-problemas-no-sistema","text":"","title":"Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#1-visibilidade-e-status-do-sistema","text":"Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema.","title":"1 - Visibilidade e status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#2-compatibilidade-com-o-mundo-real","text":"Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es.","title":"2 - Compatibilidade com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#3-consistencia-e-padronizacao","text":"Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto.","title":"3 - Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#4-projeto-estetico-e-minimalista","text":"Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos.","title":"4 - Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#objetivos-e-escopo-da-avaliacao","text":"A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site.","title":"Objetivos e escopo da avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/","text":"Rastreamento Correios Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos. Dados Coletados Visibilidade do estado do sistema Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d. Correspond\u00eancia entre o sistema e o mundo real \u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema. Controle e liberdade do usu\u00e1rio N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido. Consist\u00eancia e padroniza\u00e7\u00e3o A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios. Reconhecimento em vez de memoriza\u00e7\u00e3o O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez. Flexibilidade e efici\u00eancia de uso N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input. Projeto est\u00e9tico e minimalista O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9. Preven\u00e7\u00e3o de erros Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio. Ajuda e documenta\u00e7\u00e3o Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#rastreamento-correios","text":"","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#introducao","text":"Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#visibilidade-do-estado-do-sistema","text":"Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d.","title":"Visibilidade do estado do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#correspondencia-entre-o-sistema-e-o-mundo-real","text":"\u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema.","title":"Correspond\u00eancia entre o sistema e o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#controle-e-liberdade-do-usuario","text":"N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido.","title":"Controle e liberdade do usu\u00e1rio"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#consistencia-e-padronizacao","text":"A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios.","title":"Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#reconhecimento-em-vez-de-memorizacao","text":"O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez.","title":"Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#flexibilidade-e-eficiencia-de-uso","text":"N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input.","title":"Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#projeto-estetico-e-minimalista","text":"O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9.","title":"Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#prevencao-de-erros","text":"Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro.","title":"Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajude-os-usuarios-a-reconhecerem-diagnosticarem-e-se-recuperarem-de-erros","text":"Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio.","title":"Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajuda-e-documentacao","text":"Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs.","title":"Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282.","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Home Fonte: NEOENERGIA BRAS\u00cdLIA Sobre o Projeto Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia. Desenvolvedores.\ud83e\udd1d Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Home"},{"location":"#home","text":"Fonte: NEOENERGIA BRAS\u00cdLIA","title":"Home"},{"location":"#sobre-o-projeto","text":"Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia.","title":"Sobre o Projeto"},{"location":"#desenvolvedores","text":"Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra","title":"Desenvolvedores.\ud83e\udd1d"},{"location":"#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"apresentacoes/","text":"Apresenta\u00e7\u00f5es Etapa 1 V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1 Etapa 2 V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2 Etapa 3 V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#apresentacoes","text":"","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#etapa-1","text":"V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1","title":"Etapa 1"},{"location":"apresentacoes/#etapa-2","text":"V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2","title":"Etapa 2"},{"location":"apresentacoes/#etapa-3","text":"V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3","title":"Etapa 3"},{"location":"apresentacoes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/caract-plataforma/","text":"Metas de usabilidade Introdu\u00e7\u00e3o \u2003 Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas. Objetivo \u2003 Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo. Metas de usabilidade \u2003 A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. 1. Efic\u00e1cia \u2003 \u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele. Aplica\u00e7\u00e3o \u2003 O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando. 2. Efici\u00eancia \u2003 \u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la. Aplica\u00e7\u00e3o \u2003 Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui . 3. Seguran\u00e7a \u2003 \u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso. Aplica\u00e7\u00e3o \u2003 A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login. 4. Utilidade \u2003 Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente. Aplica\u00e7\u00e3o \u2003 O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes. 5. Aprendizagem \u2003 \u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto. Aplica\u00e7\u00e3o \u2003 Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos. 6. Memoriza\u00e7\u00e3o \u2003 Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas. Aplica\u00e7\u00e3o \u2003 O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013. Tabela de versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade","text":"","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#introducao","text":"Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#objetivo","text":"Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo.","title":"Objetivo"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade_1","text":"A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia.","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#1-eficacia","text":"\u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele.","title":"1. Efic\u00e1cia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao","text":"O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#2-eficiencia","text":"\u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la.","title":"2. Efici\u00eancia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_1","text":"Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui .","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#3-seguranca","text":"\u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso.","title":"3. Seguran\u00e7a"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_2","text":"A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#4-utilidade","text":"Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente.","title":"4. Utilidade"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_3","text":"O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#5-aprendizagem","text":"\u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto.","title":"5. Aprendizagem"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_4","text":"Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#6-memorizacao","text":"Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas.","title":"6. Memoriza\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_5","text":"O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013.","title":"Bibliografia"},{"location":"analise_de_requisitos/caract-plataforma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Tabela de versionamento"},{"location":"analise_de_requisitos/guia/","text":"Guia de Estilo Introdu\u00e7\u00e3o Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign. Identidade Visual da NeoEnergia Logo O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br Cores H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos Tipografia A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek Bot\u00f5es e \u00edcones Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia An\u00e1lise de estilo Logo Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos Cores Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia Tipografia Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia Bot\u00f5es e \u00edcones Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam. Bibliografia ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#guia-de-estilo","text":"","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#introducao","text":"Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/guia/#identidade-visual-da-neoenergia","text":"","title":"Identidade Visual da NeoEnergia"},{"location":"analise_de_requisitos/guia/#logo","text":"O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores","text":"H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia","text":"A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones","text":"Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#analise-de-estilo","text":"","title":"An\u00e1lise de estilo"},{"location":"analise_de_requisitos/guia/#logo_1","text":"Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores_1","text":"Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia_1","text":"Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones_1","text":"Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam.","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#bibliografia","text":"ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022","title":"Bibliografia"},{"location":"analise_de_requisitos/guia/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/","text":"Perfil do Usu\u00e1rio Introdu\u00e7\u00e3o O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo. Metodologia Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento) Question\u00e1rio Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18 Observa\u00e7\u00f5es Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#perfil-do-usuario","text":"","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#introducao","text":"O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#metodologia","text":"Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento)","title":"Metodologia"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#questionario","text":"Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18","title":"Question\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#observacoes","text":"Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo.","title":"Observa\u00e7\u00f5es"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/","text":"Personas Introdu\u00e7\u00e3o \u2003 Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006) Metodologia \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa. Personas Persona prim\u00e1ria Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Personas"},{"location":"analise_de_requisitos/personas/#personas","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#introducao","text":"Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006)","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/personas/#metodologia","text":"Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa.","title":"Metodologia"},{"location":"analise_de_requisitos/personas/#personas_1","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#persona-primaria","text":"Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona","title":"Persona prim\u00e1ria"},{"location":"analise_de_requisitos/personas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/","text":"Princ\u00edpios Gerais do Projeto Introdu\u00e7\u00e3o Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o. Diretrizes A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro. Conclus\u00e3o Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#principios-gerais-do-projeto","text":"","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#introducao","text":"Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#diretrizes","text":"A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro.","title":"Diretrizes"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#conclusao","text":"Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es.","title":"Conclus\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/","text":"An\u00e1lise Hier\u00e1rquica de Tarefas Introdu\u00e7\u00e3o A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link). Diagramas e tabelas Acessar a conta no site A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA Relat\u00f3rio Nada Consta A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#analise-hierarquica-de-tarefas","text":"","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#introducao","text":"A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link).","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#diagramas-e-tabelas","text":"","title":"Diagramas e tabelas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#acessar-a-conta-no-site","text":"A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA","title":"Acessar a conta no site"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#relatorio-nada-consta","text":"A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA","title":"Relat\u00f3rio Nada Consta"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/","text":"\u00c1rvores de Tarefas Concorrentes Introdu\u00e7\u00e3o Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT Diagrama de An\u00e1lise de Tarefas Concorrentes Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#arvores-de-tarefas-concorrentes","text":"","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#introducao","text":"Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#diagrama-de-analise-de-tarefas-concorrentes","text":"Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta","title":"Diagrama de An\u00e1lise de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/","text":"GOMS Introdu\u00e7\u00e3o Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM. KLM-GOMS KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios. Objetivo: Cadastro na plataforma O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM Objetivo: Entrar na plataforma O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s Objetivo: Recuperar a senha O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s Objetivo: Gerar o relat\u00f3rio de nada consta mensal O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro Objetivo: Gerar o relat\u00f3rio de nada consta anual O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#goms","text":"","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#introducao","text":"Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#klm-goms","text":"KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios.","title":"KLM-GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-cadastro-na-plataforma","text":"O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM","title":"Objetivo: Cadastro na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-entrar-na-plataforma","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s","title":"Objetivo: Entrar na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-recuperar-a-senha","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s","title":"Objetivo: Recuperar a senha"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-mensal","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro","title":"Objetivo: Gerar o relat\u00f3rio de nada consta mensal"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-anual","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s","title":"Objetivo: Gerar o relat\u00f3rio de nada consta anual"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/","text":"Teste Piloto Introdu\u00e7\u00e3o Nesta p\u00e1gina ser\u00e1 documentado o Teste Piloto da valida\u00e7\u00e3o do Storyboard e An\u00e1lise de Tarefas. Os avaliadores que participaram deste teste foram os membros Natan Tavares Santana e Clara Ribeiro que se reuniram em uma reuni\u00e3o do Microsoft Teams no dia 11/08, como previsto no cronograma. O Teste Piloto possui a finalidade de validar o planejameto das entrevistas, verificando se as respostas geradas pelas perguntas s\u00e3o pertinentes \u00e0 avalia\u00e7\u00e3o e se ser\u00e1 necess\u00e1rio alguma mudan\u00e7a no roteiro das perguntas a fim de gerar dados mais completos. Al\u00e9m disso, \u00e9 verificado se o ambiente est\u00e1 preparado para a entrevista e se \u00e9 necess\u00e1rio algum ajuste ou ferramenta. Grava\u00e7\u00e3o do Teste Piloto Resultados Prepara\u00e7\u00e3o para a entrevista Durante o Teste Piloto foi observado que alguns itens precisam estar organizados antes da realiza\u00e7\u00e3o das entrevistas a fim de economizar o tempo dos entrevistadores e dos entrevistados. Para a valida\u00e7\u00e3o da An\u00e1lise de Tarefas, foi verificado que ser\u00e1 necess\u00e1rio ter os seguintes artefatos abertos em uma tela que ser\u00e1 mostrada para o entrevistado: Diagrama HTA da tarefa \"Acessar a conta no site\" Diagrama HTA da tarefa \"Relat\u00f3rio Nada Consta\" Termo de Consentimento Al\u00e9m disso, ser\u00e1 necess\u00e1rio que o avaliador tenha os seguintes artefatos abertos em uma tela que n\u00e3o ser\u00e1 mostrada para o entrevistado: Tabela de HTA da tarefa \"Acessar a conta no site\" Tabela de HTA da tarefa \"Relat\u00f3rio Nada Consta\" Roteiro de perguntas da valida\u00e7\u00e3o da An\u00e1lise de Tarefas Para a valida\u00e7\u00e3o do Storyboard, foi verificado que ser\u00e1 necess\u00e1rio ter os seguintes artefatos abertos em uma tela que ser\u00e1 mostrada para o entrevistado: Storyboard da tarefa \"Recupera\u00e7\u00e3o de senha\" Storyboard da tarefa \"Relat\u00f3rio Nada Consta anual\" Storyboard da tarefa \"Recupera\u00e7\u00e3o de email\" Storyboard da tarefa \"Relat\u00f3rio Nada Consta mensal\" Termo de Consentimento Al\u00e9m disso, ser\u00e1 necess\u00e1rio que o avaliador tenha os seguintes artefatos abertos em uma tela que n\u00e3o ser\u00e1 mostrada para o entrevistado: Roteiro de perguntas da valida\u00e7\u00e3o do Storyboard Mudan\u00e7as Ap\u00f3s a execu\u00e7\u00e3o do Teste Piloto, os avaliadores Natan e Clara decidiram que para obter dados melhores era necess\u00e1rio fazer alguns ajustes nas perguntas. Ent\u00e3o o roteiro de perguntas do Storyboard sofreu algumas mudan\u00e7as: Retirada de perguntas que estavam gerando respostas iguais; Especifica\u00e7\u00e3o das perguntas para cada Storyboard; Para o roteiro de perguntas da an\u00e1lise de tarefas, foi observado que seria melhor ter uma pergunta para cada item do diagrama que apresentasse um problema e uma recomenda\u00e7\u00e3o, a fim de verificar se o entrevistado concorda se o que foi levantado realmente \u00e9 um problema e se a recomenda\u00e7\u00e3o levantada seria suficiente para resolv\u00ea-lo. O roteiro de perguntas dispon\u00edvel no documento de planejamento foi atualizado com essas mudan\u00e7as antes que as entrevistas ocorressem. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 11/08/2022 0.1 Cria\u00e7\u00e3o do documento e resultados do teste piloto Natan Santana Rafael Xavier","title":"Teste Piloto"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#teste-piloto","text":"","title":"Teste Piloto"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#introducao","text":"Nesta p\u00e1gina ser\u00e1 documentado o Teste Piloto da valida\u00e7\u00e3o do Storyboard e An\u00e1lise de Tarefas. Os avaliadores que participaram deste teste foram os membros Natan Tavares Santana e Clara Ribeiro que se reuniram em uma reuni\u00e3o do Microsoft Teams no dia 11/08, como previsto no cronograma. O Teste Piloto possui a finalidade de validar o planejameto das entrevistas, verificando se as respostas geradas pelas perguntas s\u00e3o pertinentes \u00e0 avalia\u00e7\u00e3o e se ser\u00e1 necess\u00e1rio alguma mudan\u00e7a no roteiro das perguntas a fim de gerar dados mais completos. Al\u00e9m disso, \u00e9 verificado se o ambiente est\u00e1 preparado para a entrevista e se \u00e9 necess\u00e1rio algum ajuste ou ferramenta.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#gravacao-do-teste-piloto","text":"","title":"Grava\u00e7\u00e3o do Teste Piloto"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#resultados","text":"","title":"Resultados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#preparacao-para-a-entrevista","text":"Durante o Teste Piloto foi observado que alguns itens precisam estar organizados antes da realiza\u00e7\u00e3o das entrevistas a fim de economizar o tempo dos entrevistadores e dos entrevistados. Para a valida\u00e7\u00e3o da An\u00e1lise de Tarefas, foi verificado que ser\u00e1 necess\u00e1rio ter os seguintes artefatos abertos em uma tela que ser\u00e1 mostrada para o entrevistado: Diagrama HTA da tarefa \"Acessar a conta no site\" Diagrama HTA da tarefa \"Relat\u00f3rio Nada Consta\" Termo de Consentimento Al\u00e9m disso, ser\u00e1 necess\u00e1rio que o avaliador tenha os seguintes artefatos abertos em uma tela que n\u00e3o ser\u00e1 mostrada para o entrevistado: Tabela de HTA da tarefa \"Acessar a conta no site\" Tabela de HTA da tarefa \"Relat\u00f3rio Nada Consta\" Roteiro de perguntas da valida\u00e7\u00e3o da An\u00e1lise de Tarefas Para a valida\u00e7\u00e3o do Storyboard, foi verificado que ser\u00e1 necess\u00e1rio ter os seguintes artefatos abertos em uma tela que ser\u00e1 mostrada para o entrevistado: Storyboard da tarefa \"Recupera\u00e7\u00e3o de senha\" Storyboard da tarefa \"Relat\u00f3rio Nada Consta anual\" Storyboard da tarefa \"Recupera\u00e7\u00e3o de email\" Storyboard da tarefa \"Relat\u00f3rio Nada Consta mensal\" Termo de Consentimento Al\u00e9m disso, ser\u00e1 necess\u00e1rio que o avaliador tenha os seguintes artefatos abertos em uma tela que n\u00e3o ser\u00e1 mostrada para o entrevistado: Roteiro de perguntas da valida\u00e7\u00e3o do Storyboard","title":"Prepara\u00e7\u00e3o para a entrevista"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#mudancas","text":"Ap\u00f3s a execu\u00e7\u00e3o do Teste Piloto, os avaliadores Natan e Clara decidiram que para obter dados melhores era necess\u00e1rio fazer alguns ajustes nas perguntas. Ent\u00e3o o roteiro de perguntas do Storyboard sofreu algumas mudan\u00e7as: Retirada de perguntas que estavam gerando respostas iguais; Especifica\u00e7\u00e3o das perguntas para cada Storyboard; Para o roteiro de perguntas da an\u00e1lise de tarefas, foi observado que seria melhor ter uma pergunta para cada item do diagrama que apresentasse um problema e uma recomenda\u00e7\u00e3o, a fim de verificar se o entrevistado concorda se o que foi levantado realmente \u00e9 um problema e se a recomenda\u00e7\u00e3o levantada seria suficiente para resolv\u00ea-lo. O roteiro de perguntas dispon\u00edvel no documento de planejamento foi atualizado com essas mudan\u00e7as antes que as entrevistas ocorressem.","title":"Mudan\u00e7as"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/teste_piloto/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 11/08/2022 0.1 Cria\u00e7\u00e3o do documento e resultados do teste piloto Natan Santana Rafael Xavier","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/avaliacao/","text":"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas","title":"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/avaliacao/#avaliacao-da-analise-de-tarefas","text":"","title":"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/","text":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Introdu\u00e7\u00e3o Na etapa de requisitos foi realizada pela equipe a an\u00e1lise de tarefas de algumas fun\u00e7\u00f5es do site, com o objetivo de identificar poss\u00edveis melhorias de tarefas existentes no site da Ag\u00eancia Virtual da Neoenergia. O pr\u00f3ximo passo \u00e9 realizar uma avalia\u00e7\u00e3o com a perspectiva de usu\u00e1rios reais do sistema, pois s\u00f3 assim \u00e9 poss\u00edvel ter uma vis\u00e3o mais ampla sobre as tecnologias que os usu\u00e1rios possuem facilidades, al\u00e9m de entender se h\u00e1 alguma tarefa que necessita uma interven\u00e7\u00e3o mais urgente e se h\u00e1 alguma outra fun\u00e7\u00e3o que poderia ser inclu\u00edda no sistema. Coletar essas informa\u00e7\u00f5es \u00e9 essencial para entender os requisitos que o sistema deve ter para realmente ajudar os usu\u00e1rios a atingirem seus objetivos. Metodologia de avalia\u00e7\u00e3o da An\u00e1lise de tarefas A metodologia escolhida foi a de entrevistas com usu\u00e1rios da Ag\u00eancia Virtual. A entrevista \u00e9 um m\u00e9todo investigativo e consegue coletar as informa\u00e7\u00f5es buscadas por meio de uma pesquisa qualitativa. Com a entrevista \u00e9 poss\u00edvel entender com maiores detalhes as dores dos usu\u00e1rios e seus objetivos. Termo de consentimento O termo de consentimento est\u00e1 apresentado abaixo e ele ser\u00e1 entregue ao usu\u00e1rio antes do in\u00edcio da entrevista. Ferramentas utilizadas na entrevista A entrevista ser\u00e1 realizada e gravada no Microsoft Teams. Perfis dos entrevistados Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia. Roteiro de perguntas N\u00famero Pergunta Poss\u00edvel Resposta 1 Como voc\u00ea se chama? Pergunta discursiva 2 Qual \u00e9 a sua idade? Pergunta discursiva 3 Com o que voc\u00ea trabalha? Pergunta discursiva 4 \u00c9 voc\u00ea quem paga a conta de energia na sua casa? Sim N\u00e3o 5 Caso a resposta anterior tenha sido \"N\u00e3o\" Voc\u00ea j\u00e1 entrou no site a pedido de algu\u00e9m? Porque? Pergunta discursiva 6 Porque voc\u00ea faz o uso do site? Pergunta discursiva 7 Como foi realizar o primeiro acesso a plataforma? Pergunta discursiva 8 Como \u00e9 fazer login na plataforma? Pergunta discursiva 9 Voc\u00ea j\u00e1 esqueceu a sua senha ao tentar realizar o login? Sim N\u00e3o Inconclusivo 9.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Sim\": O que voc\u00ea achou do processo de recuperar a sua senha? Pergunta discursiva 9.2 Caso tenha sido respondida a op\u00e7\u00e3o \"N\u00e3o\": Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 10 Quais s\u00e3o as atividades que voc\u00ea mais realiza no site? Segunda Via de Conta Religa\u00e7\u00e3o Falta de Energia Atualizar Cadastro Alterar Data de Vencimento Gerar Hist\u00f3rico de Consumo Relat\u00f3rio Nada Consta Data da Pr\u00f3xima Leitura 10.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\": Porque voc\u00ea precisou usar a fun\u00e7\u00e3o de gera\u00e7\u00e3o do relat\u00f3rio nada consta? Pergunta discursiva 10.2 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" na quest\u00e3o 10: Voc\u00ea fez o geramento de qual relat\u00f3rio? Anual Mensal Os dois 10.2 Caso n\u00e3o tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 11 Qual \u00e9 a sua maior dificuldade ao utilizar o site? Pergunta discursiva 12 H\u00e1 alguma funcionalidade que voc\u00ea gostaria muito que tivesse no site? Pergunta discursiva Conclus\u00e3o Os dados coletados durante a entrevista ser\u00e3o registrados e utilizados como insumo para o desenvolvimento do projeto. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento da an\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves","title":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#planejamento-da-avaliacao-da-analise-de-tarefas","text":"","title":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#introducao","text":"Na etapa de requisitos foi realizada pela equipe a an\u00e1lise de tarefas de algumas fun\u00e7\u00f5es do site, com o objetivo de identificar poss\u00edveis melhorias de tarefas existentes no site da Ag\u00eancia Virtual da Neoenergia. O pr\u00f3ximo passo \u00e9 realizar uma avalia\u00e7\u00e3o com a perspectiva de usu\u00e1rios reais do sistema, pois s\u00f3 assim \u00e9 poss\u00edvel ter uma vis\u00e3o mais ampla sobre as tecnologias que os usu\u00e1rios possuem facilidades, al\u00e9m de entender se h\u00e1 alguma tarefa que necessita uma interven\u00e7\u00e3o mais urgente e se h\u00e1 alguma outra fun\u00e7\u00e3o que poderia ser inclu\u00edda no sistema. Coletar essas informa\u00e7\u00f5es \u00e9 essencial para entender os requisitos que o sistema deve ter para realmente ajudar os usu\u00e1rios a atingirem seus objetivos.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#metodologia-de-avaliacao-da-analise-de-tarefas","text":"A metodologia escolhida foi a de entrevistas com usu\u00e1rios da Ag\u00eancia Virtual. A entrevista \u00e9 um m\u00e9todo investigativo e consegue coletar as informa\u00e7\u00f5es buscadas por meio de uma pesquisa qualitativa. Com a entrevista \u00e9 poss\u00edvel entender com maiores detalhes as dores dos usu\u00e1rios e seus objetivos.","title":"Metodologia de avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#termo-de-consentimento","text":"O termo de consentimento est\u00e1 apresentado abaixo e ele ser\u00e1 entregue ao usu\u00e1rio antes do in\u00edcio da entrevista.","title":"Termo de consentimento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#ferramentas-utilizadas-na-entrevista","text":"A entrevista ser\u00e1 realizada e gravada no Microsoft Teams.","title":"Ferramentas utilizadas na entrevista"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#perfis-dos-entrevistados","text":"Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia.","title":"Perfis dos entrevistados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#roteiro-de-perguntas","text":"N\u00famero Pergunta Poss\u00edvel Resposta 1 Como voc\u00ea se chama? Pergunta discursiva 2 Qual \u00e9 a sua idade? Pergunta discursiva 3 Com o que voc\u00ea trabalha? Pergunta discursiva 4 \u00c9 voc\u00ea quem paga a conta de energia na sua casa? Sim N\u00e3o 5 Caso a resposta anterior tenha sido \"N\u00e3o\" Voc\u00ea j\u00e1 entrou no site a pedido de algu\u00e9m? Porque? Pergunta discursiva 6 Porque voc\u00ea faz o uso do site? Pergunta discursiva 7 Como foi realizar o primeiro acesso a plataforma? Pergunta discursiva 8 Como \u00e9 fazer login na plataforma? Pergunta discursiva 9 Voc\u00ea j\u00e1 esqueceu a sua senha ao tentar realizar o login? Sim N\u00e3o Inconclusivo 9.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Sim\": O que voc\u00ea achou do processo de recuperar a sua senha? Pergunta discursiva 9.2 Caso tenha sido respondida a op\u00e7\u00e3o \"N\u00e3o\": Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 10 Quais s\u00e3o as atividades que voc\u00ea mais realiza no site? Segunda Via de Conta Religa\u00e7\u00e3o Falta de Energia Atualizar Cadastro Alterar Data de Vencimento Gerar Hist\u00f3rico de Consumo Relat\u00f3rio Nada Consta Data da Pr\u00f3xima Leitura 10.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\": Porque voc\u00ea precisou usar a fun\u00e7\u00e3o de gera\u00e7\u00e3o do relat\u00f3rio nada consta? Pergunta discursiva 10.2 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" na quest\u00e3o 10: Voc\u00ea fez o geramento de qual relat\u00f3rio? Anual Mensal Os dois 10.2 Caso n\u00e3o tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 11 Qual \u00e9 a sua maior dificuldade ao utilizar o site? Pergunta discursiva 12 H\u00e1 alguma funcionalidade que voc\u00ea gostaria muito que tivesse no site? Pergunta discursiva","title":"Roteiro de perguntas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#conclusao","text":"Os dados coletados durante a entrevista ser\u00e3o registrados e utilizados como insumo para o desenvolvimento do projeto.","title":"Conclus\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento da an\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/","text":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Introdu\u00e7\u00e3o Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o das an\u00e1lises de tarefas, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da avalia\u00e7\u00e3o ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo. T\u00f3picos A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos: Objetivo e escopo da avalia\u00e7\u00e3o Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la. M\u00e9todo Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu. Avaliadores e Participantes Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes. Sum\u00e1rio dos dados \u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios. Problemas encontrados De acordo com as tarefas apresentadas aos participantes, ser\u00e1 feita a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas encontrados. Sugest\u00f5es de corre\u00e7\u00f5es Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 05/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o da an\u00e1lise de tarefas Rafael Xavier Clara Ribeiro","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#planejamento-do-relato-dos-resultados-da-avaliacao-da-analise-de-tarefas","text":"","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#introducao","text":"Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o das an\u00e1lises de tarefas, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da avalia\u00e7\u00e3o ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#topicos","text":"A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos:","title":"T\u00f3picos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#objetivo-e-escopo-da-avaliacao","text":"Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la.","title":"Objetivo e escopo da avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#metodo","text":"Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu.","title":"M\u00e9todo"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#avaliadores-e-participantes","text":"Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes.","title":"Avaliadores e Participantes"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#sumario-dos-dados","text":"\u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios.","title":"Sum\u00e1rio dos dados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#problemas-encontrados","text":"De acordo com as tarefas apresentadas aos participantes, ser\u00e1 feita a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas encontrados.","title":"Problemas encontrados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#sugestoes-de-correcoes","text":"Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es.","title":"Sugest\u00f5es de corre\u00e7\u00f5es"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 05/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o da an\u00e1lise de tarefas Rafael Xavier Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/avaliacao/","text":"Avalia\u00e7\u00e3o Storyboard","title":"Avalia\u00e7\u00e3o Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/avaliacao/#avaliacao-storyboard","text":"","title":"Avalia\u00e7\u00e3o Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/","text":"Planejamento da avalia\u00e7\u00e3o do Storyboard Introdu\u00e7\u00e3o O Storyboard \u00e9 uma forma de prototipa\u00e7\u00e3o de baixa fidelidade, em que s\u00e3o utilizados desenhos que mostram a evolu\u00e7\u00e3o de um usu\u00e1rio na realiza\u00e7\u00e3o de uma tarefa, indicando um caminho ideal para conclu\u00ed-la com sucesso. Ao ser colocado junto com os cen\u00e1rios, traz uma riqueza de detalhes e informa\u00e7\u00f5es muito maior para o projeto. Suas principais vatangens ao ser executado s\u00e3o: baixo custo para ser desenvolvido, identifica requisitos, f\u00e1cil comunica\u00e7\u00e3o e avalia v\u00e1rios conceitos do design. Nesse documento, ser\u00e1 feita a descri\u00e7\u00e3o de como ser\u00e1 feita a an\u00e1lise e avalia\u00e7\u00e3o dos storyboards desenvolvidos pela equipe. Metodologias de avalia\u00e7\u00e3o dos Storyboards Dentro do nosso escopo de formas de avalia\u00e7\u00f5es, chegamos a um entendimento de que a forma mais adequada para o nosso projeto de se avaliar o storyboard s\u00e3o com entrevistas com os usu\u00e1rios, fazendo uma investiga\u00e7\u00e3o t\u00e9cnica. Assim, come\u00e7amos o processo de estrutura\u00e7\u00e3o montando um termo de consentimento espec\u00edfico para a entrevista, fizemos a an\u00e1lise de ferramentas necess\u00e1rias, definimos um roteiro de perguntas a serem utilizadas para a avalia\u00e7\u00e3o, podendo serem acrescidas mais caso seja de valia para a avalia\u00e7\u00e3o e fizemos a escolha de perfis para a entrevista. Termo de consentimento Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o. Ferramentas utilizadas na avalia\u00e7\u00e3o Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunica\u00e7\u00e3o quanto a grava\u00e7\u00e3o do encontro. Al\u00e9m disso, solicitaremos que o candidato esteja com l\u00e1pis e papel caso deseje fazer algum esbo\u00e7o de seu racioc\u00ednio. Perfis dos entrevistados Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia. Roteiro de perguntas N\u00famero Pergunta Poss\u00edvel Resposta 1 Observando os dois storyboards dessa tarefa como usu\u00e1rio, voc\u00ea identifica que a sequ\u00eancia das atividades seja coerente? SIM N\u00c3O INCONCLUSIVO 1.1 Se a resposta \u00e0 pergunta 1 foi N\u00c3O ou INCONCLUSIVO, pode explicar o motivo da resposta? Pergunta discursiva 2 Voc\u00ea realmente acha que a Ag\u00eancia Virtual NeoEnergia facilita o usu\u00e1rio a realizar a tarefa indicada? SIM N\u00c3O INCONCLUSIVO 2.1 Explique o porque da sua resposta Pergunta discursiva 3 Qual dos storyboards voc\u00ea acha que mais faz sentido com a tarefa a qual eles est\u00e3o indicados? Pergunta discursiva 4 O que voc\u00ea pensa sobre a solu\u00e7\u00e3o da tarefa do sistema da NeoEnergia no Storyboard? Ela est\u00e1 atendendo ou faltam elementos? Pergunta discursiva 5 Voc\u00ea imagina alguma outra forma de solu\u00e7\u00e3o que poderia ser representado pelos Storyboards? Pergunta discursiva Storyboards desenvolvidos Para a realiza\u00e7\u00e3o da avalia\u00e7\u00e3o de storyboard, os membros do grupo desenvolveram storyboards das seguintes atividades do sistema: recupera\u00e7\u00e3o de senha, recupera\u00e7\u00e3o de email e relat\u00f3rio nada consta. Na Figura 1, \u00e9 colocado a recupera\u00e7\u00e3o de senha no contexto em que o usu\u00e1rio entra no site do sistema para realizar uma atividade mas acaba se esquecendo sua senha e precisa iniciar o processo de recupera\u00e7\u00e3o. Figura 1- Storyboard de recupera\u00e7\u00e3o de senha (Lu\u00edza Esteves) Na Figura 2, \u00e9 contada uma hist\u00f3ria de uma pessoa emitindo um relat\u00f3rio nada consta para o aluguel de uma casa. Figura 2- Storyboard de relat\u00f3rio nada consta (Natan Santana) Na Figura 3, \u00e9 colocado a recupera\u00e7\u00e3o de email para que o usu\u00e1rio consiga ter acesso a atividades do sistema Figura 3- Storyboard de recupera\u00e7\u00e3o de email (Rafael Xavier) Na Figura 4, \u00e9 colocado o relat\u00f3rio nada consta para verificar se as contas realmente est\u00e3o pagas Figura 3- Storyboard de relat\u00f3rio nada consta (Clara Ribeiro) Conclus\u00e3o Com todos esse planejamento, esperamos conseguir identificar todos os pontos a serem melhorados e os que est\u00e3o em um bom n\u00edvel para passar para as pr\u00f3ximas etapas do design. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento de storyboard Lu\u00edza Esteves Natan Santana","title":"Planejamento da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#planejamento-da-avaliacao-do-storyboard","text":"","title":"Planejamento da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#introducao","text":"O Storyboard \u00e9 uma forma de prototipa\u00e7\u00e3o de baixa fidelidade, em que s\u00e3o utilizados desenhos que mostram a evolu\u00e7\u00e3o de um usu\u00e1rio na realiza\u00e7\u00e3o de uma tarefa, indicando um caminho ideal para conclu\u00ed-la com sucesso. Ao ser colocado junto com os cen\u00e1rios, traz uma riqueza de detalhes e informa\u00e7\u00f5es muito maior para o projeto. Suas principais vatangens ao ser executado s\u00e3o: baixo custo para ser desenvolvido, identifica requisitos, f\u00e1cil comunica\u00e7\u00e3o e avalia v\u00e1rios conceitos do design. Nesse documento, ser\u00e1 feita a descri\u00e7\u00e3o de como ser\u00e1 feita a an\u00e1lise e avalia\u00e7\u00e3o dos storyboards desenvolvidos pela equipe.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#metodologias-de-avaliacao-dos-storyboards","text":"Dentro do nosso escopo de formas de avalia\u00e7\u00f5es, chegamos a um entendimento de que a forma mais adequada para o nosso projeto de se avaliar o storyboard s\u00e3o com entrevistas com os usu\u00e1rios, fazendo uma investiga\u00e7\u00e3o t\u00e9cnica. Assim, come\u00e7amos o processo de estrutura\u00e7\u00e3o montando um termo de consentimento espec\u00edfico para a entrevista, fizemos a an\u00e1lise de ferramentas necess\u00e1rias, definimos um roteiro de perguntas a serem utilizadas para a avalia\u00e7\u00e3o, podendo serem acrescidas mais caso seja de valia para a avalia\u00e7\u00e3o e fizemos a escolha de perfis para a entrevista.","title":"Metodologias de avalia\u00e7\u00e3o dos Storyboards"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#termo-de-consentimento","text":"Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o.","title":"Termo de consentimento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#ferramentas-utilizadas-na-avaliacao","text":"Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunica\u00e7\u00e3o quanto a grava\u00e7\u00e3o do encontro. Al\u00e9m disso, solicitaremos que o candidato esteja com l\u00e1pis e papel caso deseje fazer algum esbo\u00e7o de seu racioc\u00ednio.","title":"Ferramentas utilizadas na avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#perfis-dos-entrevistados","text":"Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia.","title":"Perfis dos entrevistados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#roteiro-de-perguntas","text":"N\u00famero Pergunta Poss\u00edvel Resposta 1 Observando os dois storyboards dessa tarefa como usu\u00e1rio, voc\u00ea identifica que a sequ\u00eancia das atividades seja coerente? SIM N\u00c3O INCONCLUSIVO 1.1 Se a resposta \u00e0 pergunta 1 foi N\u00c3O ou INCONCLUSIVO, pode explicar o motivo da resposta? Pergunta discursiva 2 Voc\u00ea realmente acha que a Ag\u00eancia Virtual NeoEnergia facilita o usu\u00e1rio a realizar a tarefa indicada? SIM N\u00c3O INCONCLUSIVO 2.1 Explique o porque da sua resposta Pergunta discursiva 3 Qual dos storyboards voc\u00ea acha que mais faz sentido com a tarefa a qual eles est\u00e3o indicados? Pergunta discursiva 4 O que voc\u00ea pensa sobre a solu\u00e7\u00e3o da tarefa do sistema da NeoEnergia no Storyboard? Ela est\u00e1 atendendo ou faltam elementos? Pergunta discursiva 5 Voc\u00ea imagina alguma outra forma de solu\u00e7\u00e3o que poderia ser representado pelos Storyboards? Pergunta discursiva","title":"Roteiro de perguntas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#storyboards-desenvolvidos","text":"Para a realiza\u00e7\u00e3o da avalia\u00e7\u00e3o de storyboard, os membros do grupo desenvolveram storyboards das seguintes atividades do sistema: recupera\u00e7\u00e3o de senha, recupera\u00e7\u00e3o de email e relat\u00f3rio nada consta. Na Figura 1, \u00e9 colocado a recupera\u00e7\u00e3o de senha no contexto em que o usu\u00e1rio entra no site do sistema para realizar uma atividade mas acaba se esquecendo sua senha e precisa iniciar o processo de recupera\u00e7\u00e3o. Figura 1- Storyboard de recupera\u00e7\u00e3o de senha (Lu\u00edza Esteves) Na Figura 2, \u00e9 contada uma hist\u00f3ria de uma pessoa emitindo um relat\u00f3rio nada consta para o aluguel de uma casa. Figura 2- Storyboard de relat\u00f3rio nada consta (Natan Santana) Na Figura 3, \u00e9 colocado a recupera\u00e7\u00e3o de email para que o usu\u00e1rio consiga ter acesso a atividades do sistema Figura 3- Storyboard de recupera\u00e7\u00e3o de email (Rafael Xavier) Na Figura 4, \u00e9 colocado o relat\u00f3rio nada consta para verificar se as contas realmente est\u00e3o pagas Figura 3- Storyboard de relat\u00f3rio nada consta (Clara Ribeiro)","title":"Storyboards desenvolvidos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#conclusao","text":"Com todos esse planejamento, esperamos conseguir identificar todos os pontos a serem melhorados e os que est\u00e3o em um bom n\u00edvel para passar para as pr\u00f3ximas etapas do design.","title":"Conclus\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento de storyboard Lu\u00edza Esteves Natan Santana","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/","text":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Storyboard Introdu\u00e7\u00e3o Nesta p\u00e1gina ser\u00e1 descrita como ser\u00e1 feito o relato dos resultados da valida\u00e7\u00e3o do Storyboard, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da valida\u00e7\u00e3o ser\u00e3o documentadas em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Storyboard\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo. T\u00f3picos A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos: Objetivos da avalia\u00e7\u00e3o Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feito e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la. M\u00e9todo Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu. Avaliadores e Participantes Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes. Sum\u00e1rio dos dados \u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios. Problemas encontrados De acordo com o Storyboard apresentado aos participantes, ser\u00e1 feito a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas de usabilidade encontrados na interface. Sugest\u00f5es de corre\u00e7\u00f5es Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o Natan Santana Matheus Perillo","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#planejamento-do-relato-dos-resultados-da-avaliacao-do-storyboard","text":"","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#introducao","text":"Nesta p\u00e1gina ser\u00e1 descrita como ser\u00e1 feito o relato dos resultados da valida\u00e7\u00e3o do Storyboard, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da valida\u00e7\u00e3o ser\u00e3o documentadas em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Storyboard\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#topicos","text":"A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos:","title":"T\u00f3picos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#objetivos-da-avaliacao","text":"Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feito e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la.","title":"Objetivos da avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#metodo","text":"Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu.","title":"M\u00e9todo"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#avaliadores-e-participantes","text":"Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes.","title":"Avaliadores e Participantes"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#sumario-dos-dados","text":"\u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios.","title":"Sum\u00e1rio dos dados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#problemas-encontrados","text":"De acordo com o Storyboard apresentado aos participantes, ser\u00e1 feito a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas de usabilidade encontrados na interface.","title":"Problemas encontrados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#sugestoes-de-correcoes","text":"Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es.","title":"Sugest\u00f5es de corre\u00e7\u00f5es"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o Natan Santana Matheus Perillo","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/planejamento_prototipo/","text":"Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel","title":"Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/planejamento_prototipo/#planejamento-da-avaliacao-do-prototipo-de-papel","text":"","title":"Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/","text":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Introdu\u00e7\u00e3o Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel, descrevendo os aspectos que ser\u00e3o abordados e apresentados no relat\u00f3rio. A an\u00e1lise dos resultados da ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo. T\u00f3picos A fim de relatar os resultados obtidos, ser\u00e1 feita uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos: Objetivos da avalia\u00e7\u00e3o Pequena introdu\u00e7\u00e3o sobre a avalia\u00e7\u00e3o contendo o porqu\u00ea dessa avalia\u00e7\u00e3o estar sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la. M\u00e9todo Neste t\u00f3pico deve ser descrito o m\u00e9todo utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu. Avaliadores e Participantes Deve-se listar quem foram os avaliadores e qual papel realizaram durante a avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado quem foram os participantes, mostrando quais tarefas executaram e trazendo alguns dados demogr\u00e1ficos sobre eles a fim de equipar\u00e1-los com nossos perfis de usu\u00e1rio. Ambiente de avalia\u00e7\u00e3o Descri\u00e7\u00e3o sobre o ambiente de avalia\u00e7\u00e3o, contendo as ferramentas e equipamentos que foram utilizados. Problemas de usabilidade Corrigidos \u2013 local onde ocorreu; \u2013 fatores de usabilidade prejudicados; \u2013 descri\u00e7\u00e3o e justificativa do problema; \u2013 corre\u00e7\u00e3o realizada no prot\u00f3tipo em papel; \u2013 indica\u00e7\u00e3o se o problema voltou a ocorrer depois da corre\u00e7\u00e3o; N\u00e3o corrigidos \u2013 local onde ocorreu; \u2013 fatores de usabilidade prejudicados; \u2013 descri\u00e7\u00e3o e justificativa do problema; \u2013 prioridade para corre\u00e7\u00e3o; \u2013 sugest\u00f5es de corre\u00e7\u00e3o; \u2013 indica\u00e7\u00f5es de partes do sistema que podem ser mais bem elaboradas. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 14/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Rafael Xavier Lu\u00edza Esteves","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#planejamento-do-relato-dos-resultados-da-avaliacao-do-prototipo-de-papel","text":"","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#introducao","text":"Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel, descrevendo os aspectos que ser\u00e3o abordados e apresentados no relat\u00f3rio. A an\u00e1lise dos resultados da ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#topicos","text":"A fim de relatar os resultados obtidos, ser\u00e1 feita uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos:","title":"T\u00f3picos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#objetivos-da-avaliacao","text":"Pequena introdu\u00e7\u00e3o sobre a avalia\u00e7\u00e3o contendo o porqu\u00ea dessa avalia\u00e7\u00e3o estar sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la.","title":"Objetivos da avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#metodo","text":"Neste t\u00f3pico deve ser descrito o m\u00e9todo utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu.","title":"M\u00e9todo"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#avaliadores-e-participantes","text":"Deve-se listar quem foram os avaliadores e qual papel realizaram durante a avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado quem foram os participantes, mostrando quais tarefas executaram e trazendo alguns dados demogr\u00e1ficos sobre eles a fim de equipar\u00e1-los com nossos perfis de usu\u00e1rio.","title":"Avaliadores e Participantes"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#ambiente-de-avaliacao","text":"Descri\u00e7\u00e3o sobre o ambiente de avalia\u00e7\u00e3o, contendo as ferramentas e equipamentos que foram utilizados.","title":"Ambiente de avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#problemas-de-usabilidade","text":"","title":"Problemas de usabilidade"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#corrigidos","text":"\u2013 local onde ocorreu; \u2013 fatores de usabilidade prejudicados; \u2013 descri\u00e7\u00e3o e justificativa do problema; \u2013 corre\u00e7\u00e3o realizada no prot\u00f3tipo em papel; \u2013 indica\u00e7\u00e3o se o problema voltou a ocorrer depois da corre\u00e7\u00e3o;","title":"Corrigidos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#nao-corrigidos","text":"\u2013 local onde ocorreu; \u2013 fatores de usabilidade prejudicados; \u2013 descri\u00e7\u00e3o e justificativa do problema; \u2013 prioridade para corre\u00e7\u00e3o; \u2013 sugest\u00f5es de corre\u00e7\u00e3o; \u2013 indica\u00e7\u00f5es de partes do sistema que podem ser mais bem elaboradas.","title":"N\u00e3o corrigidos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%202/resultados_prototipo/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 14/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Rafael Xavier Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/cronograma/","text":"Cronograma de atividades Introdu\u00e7\u00e3o Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es. Etapa 1 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design Etapa 2 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas Etapa 3 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo Etapa 4 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard Lu\u00edza Esteves Natan Santana 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Natan Santana Matheus Perillo 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Rafael Xavier Clara Ribeiro 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas Etapa 5 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 16/08/2022 Ajuste nas Metas de Usabilidade Matheus Perillo Clara Ribeiro 17/08/2022 16/08/2022 Ajuste nos Princ\u00edpios Gerais do projeto Lu\u00edza Esteves Natan Santana 17/08/2022 16/08/2022 Ajuste no planejamento de storyboard Lu\u00edza Esteves e Natan Santana Clara Ribeiro 17/08/2022 16/08/2022 Ajuste no planejamento de an\u00e1lise de tarefa Clara Ribeiro e Natan Santana Lu\u00edza Esteves 17/08/2022 11/08/2022 Teste-piloto das entrevistas Clara Ribeiro e Natan Santana Rafael Xavier 12/08/2022 12/08/2022 Realiza\u00e7\u00e3o das entrevistas Clara Ribeiro e Natan Santana Rafael Xavier 13/08/2022 14/08/2022 Relato dos resultados do Story Board Clara Ribeiro Natan Santana 15/08/2022 14/08/2022 Relato dos resultados da An\u00e1lise de tarefas Natan Santana Clara Ribeiro 15/08/2022 14/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Lu\u00edza Esteves Matheus Perillo 15/08/2022 14/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Rafael Xavier Lu\u00edza Esteves 15/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Etapa 6 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos Etapa 7 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade Bibliografia 1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana 11/08/2022 0.5 Altera\u00e7\u00f5es na etapa 5 Natan Santana Rafael Xavier","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#cronograma-de-atividades","text":"","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#introducao","text":"Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/cronograma/#etapa-1","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design","title":"Etapa 1"},{"location":"planejamento/cronograma/#etapa-2","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas","title":"Etapa 2"},{"location":"planejamento/cronograma/#etapa-3","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo","title":"Etapa 3"},{"location":"planejamento/cronograma/#etapa-4","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard Lu\u00edza Esteves Natan Santana 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Natan Santana Matheus Perillo 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Rafael Xavier Clara Ribeiro 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas","title":"Etapa 4"},{"location":"planejamento/cronograma/#etapa-5","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 16/08/2022 Ajuste nas Metas de Usabilidade Matheus Perillo Clara Ribeiro 17/08/2022 16/08/2022 Ajuste nos Princ\u00edpios Gerais do projeto Lu\u00edza Esteves Natan Santana 17/08/2022 16/08/2022 Ajuste no planejamento de storyboard Lu\u00edza Esteves e Natan Santana Clara Ribeiro 17/08/2022 16/08/2022 Ajuste no planejamento de an\u00e1lise de tarefa Clara Ribeiro e Natan Santana Lu\u00edza Esteves 17/08/2022 11/08/2022 Teste-piloto das entrevistas Clara Ribeiro e Natan Santana Rafael Xavier 12/08/2022 12/08/2022 Realiza\u00e7\u00e3o das entrevistas Clara Ribeiro e Natan Santana Rafael Xavier 13/08/2022 14/08/2022 Relato dos resultados do Story Board Clara Ribeiro Natan Santana 15/08/2022 14/08/2022 Relato dos resultados da An\u00e1lise de tarefas Natan Santana Clara Ribeiro 15/08/2022 14/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Lu\u00edza Esteves Matheus Perillo 15/08/2022 14/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Rafael Xavier Lu\u00edza Esteves 15/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel","title":"Etapa 5"},{"location":"planejamento/cronograma/#etapa-6","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos","title":"Etapa 6"},{"location":"planejamento/cronograma/#etapa-7","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade","title":"Etapa 7"},{"location":"planejamento/cronograma/#bibliografia","text":"1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022.","title":"Bibliografia"},{"location":"planejamento/cronograma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana 11/08/2022 0.5 Altera\u00e7\u00f5es na etapa 5 Natan Santana Rafael Xavier","title":"Tabela de Versionamento"},{"location":"planejamento/ferramentas/","text":"Ferramentas Introdu\u00e7\u00e3o As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o. Ferramentas do Projeto Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto Refer\u00eancias FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Ferramentas"},{"location":"planejamento/ferramentas/#ferramentas","text":"","title":"Ferramentas"},{"location":"planejamento/ferramentas/#introducao","text":"As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/ferramentas/#ferramentas-do-projeto","text":"Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto","title":"Ferramentas do Projeto"},{"location":"planejamento/ferramentas/#referencias","text":"FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022","title":"Refer\u00eancias"},{"location":"planejamento/ferramentas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/metodologias/","text":"Metodologias Introdu\u00e7\u00e3o A defini\u00e7\u00e3o de metodologias a serem seguidas durante a execu\u00e7\u00e3o de um projeto \u00e9 de extrema import\u00e2ncia, pois isso que permite entregas r\u00e1pidas, sistem\u00e1ticas e de boa qualidade. Assim, nesta p\u00e1gina ser\u00e3o apresentadas as metodologias utilizadas a fim de organizar o grupo e gerenciar o versionamento do c\u00f3digo de documenta\u00e7\u00e3o a ser desenvolvido ao longo do semestre. Scrum Com a finalidade de assegurar que o grupo fa\u00e7a entregas de forma r\u00e1pida, consistente e sem arriscar a qualidade, foi escolhido a metodologia \u00e1gil Scrum seguindo os seguintes princ\u00edpios: Estabelecimento de prazos: todas as entregas possuem um cronograma detalhado onde pode ser consultado o dia m\u00e1ximo para entrega e revis\u00e3o, o autor da entrega e o revisor. Esse cronograma pode ser consultado aqui . Desenvolvimento iterativo: esta wiki \u00e9 a documenta\u00e7\u00e3o do projeto realizado durante este semestre e ela \u00e9 icrementada a cada etapa (sprint) que possue a dura\u00e7\u00e3o de aproximadamente duas semanas. Reuni\u00f5es de planejamento: no come\u00e7o de cada etapa \u00e9 realizada um reuni\u00e3o de planejamento onde \u00e9 dividido cada tarefa e criada as issues no github. Vale notar que o grupo realizou algumas modifica\u00e7\u00f5es \u00e0 metodologia original a fim de encaixar com o contexto da mat\u00e9ria e disponibilidade dos integrantes do membro: No cronograma, chamamos as sprints do Scrum de Etapas. N\u00e3o fazemos dailys, mas fazemos weeklys que s\u00e3o reuni\u00f5es semanais a fim de verificar como est\u00e1 o andamento das atividades passadas no planejamento. Pol\u00edticas Pol\u00edticas de Branchs As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue. Pol\u00edticas de Commits Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit. Bibliografia COHN, Mike. Desenvolvimento de Software com Scrum: Aplicando M\u00e9todos \u00c1geis com Sucesso. 2021. Dispon\u00edvel em: https://books.google.com.br/books. Acesso em: 31 de jul. de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 31/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de metodologias Natan Santana Lu\u00edza Esteves 04/08/2022 0.2 Corre\u00e7\u00e3o da p\u00e1gina movendo para a pasta de planejamento Natan Santana Lu\u00edza Esteves","title":"Metodologias"},{"location":"planejamento/metodologias/#metodologias","text":"","title":"Metodologias"},{"location":"planejamento/metodologias/#introducao","text":"A defini\u00e7\u00e3o de metodologias a serem seguidas durante a execu\u00e7\u00e3o de um projeto \u00e9 de extrema import\u00e2ncia, pois isso que permite entregas r\u00e1pidas, sistem\u00e1ticas e de boa qualidade. Assim, nesta p\u00e1gina ser\u00e3o apresentadas as metodologias utilizadas a fim de organizar o grupo e gerenciar o versionamento do c\u00f3digo de documenta\u00e7\u00e3o a ser desenvolvido ao longo do semestre.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/metodologias/#scrum","text":"Com a finalidade de assegurar que o grupo fa\u00e7a entregas de forma r\u00e1pida, consistente e sem arriscar a qualidade, foi escolhido a metodologia \u00e1gil Scrum seguindo os seguintes princ\u00edpios: Estabelecimento de prazos: todas as entregas possuem um cronograma detalhado onde pode ser consultado o dia m\u00e1ximo para entrega e revis\u00e3o, o autor da entrega e o revisor. Esse cronograma pode ser consultado aqui . Desenvolvimento iterativo: esta wiki \u00e9 a documenta\u00e7\u00e3o do projeto realizado durante este semestre e ela \u00e9 icrementada a cada etapa (sprint) que possue a dura\u00e7\u00e3o de aproximadamente duas semanas. Reuni\u00f5es de planejamento: no come\u00e7o de cada etapa \u00e9 realizada um reuni\u00e3o de planejamento onde \u00e9 dividido cada tarefa e criada as issues no github. Vale notar que o grupo realizou algumas modifica\u00e7\u00f5es \u00e0 metodologia original a fim de encaixar com o contexto da mat\u00e9ria e disponibilidade dos integrantes do membro: No cronograma, chamamos as sprints do Scrum de Etapas. N\u00e3o fazemos dailys, mas fazemos weeklys que s\u00e3o reuni\u00f5es semanais a fim de verificar como est\u00e1 o andamento das atividades passadas no planejamento.","title":"Scrum"},{"location":"planejamento/metodologias/#politicas","text":"","title":"Pol\u00edticas"},{"location":"planejamento/metodologias/#politicas-de-branchs","text":"As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue.","title":"Pol\u00edticas de Branchs"},{"location":"planejamento/metodologias/#politicas-de-commits","text":"Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit.","title":"Pol\u00edticas de Commits"},{"location":"planejamento/metodologias/#bibliografia","text":"COHN, Mike. Desenvolvimento de Software com Scrum: Aplicando M\u00e9todos \u00c1geis com Sucesso. 2021. Dispon\u00edvel em: https://books.google.com.br/books. Acesso em: 31 de jul. de 2022.","title":"Bibliografia"},{"location":"planejamento/metodologias/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 31/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de metodologias Natan Santana Lu\u00edza Esteves 04/08/2022 0.2 Corre\u00e7\u00e3o da p\u00e1gina movendo para a pasta de planejamento Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/processoDesign/","text":"Processo de Design Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel. Engenharia de Usabilidade de Mayhew Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos. Por que usar o ciclo de vida de Mayhew? O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas. Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Processo de Design"},{"location":"planejamento/processoDesign/#processo-de-design","text":"Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel.","title":"Processo de Design"},{"location":"planejamento/processoDesign/#engenharia-de-usabilidade-de-mayhew","text":"Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos.","title":"Engenharia de Usabilidade de Mayhew"},{"location":"planejamento/processoDesign/#por-que-usar-o-ciclo-de-vida-de-mayhew","text":"O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas.","title":"Por que usar o ciclo de vida de Mayhew?"},{"location":"planejamento/processoDesign/#aplicando-a-usabilidade-de-mayhew-na-avaliacao-do-site","text":"O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento.","title":"Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site"},{"location":"planejamento/processoDesign/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999.","title":"Bibliografia"},{"location":"planejamento/processoDesign/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/sitesAvaliados/","text":"Sites Avaliados Introdu\u00e7\u00e3o Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Sites escolhidos pelos integrantes Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro Caixa Econ\u00f4mica A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Governo de Pernambuco O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Central Expresso O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Rastreamento Correios O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Bras\u00edlia Laser Show O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Ag\u00eancia Virtual NeoEnergia A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Site escolhido Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#sites-avaliados","text":"","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#introducao","text":"Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/sitesAvaliados/#sites-escolhidos-pelos-integrantes","text":"Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro","title":"Sites escolhidos pelos integrantes"},{"location":"planejamento/sitesAvaliados/#caixa-economica","text":"A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/sitesAvaliados/#governo-de-pernambuco","text":"O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Governo de Pernambuco"},{"location":"planejamento/sitesAvaliados/#central-expresso","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Central Expresso"},{"location":"planejamento/sitesAvaliados/#rastreamento-correios","text":"O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Rastreamento Correios"},{"location":"planejamento/sitesAvaliados/#brasilia-laser-show","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Bras\u00edlia Laser Show"},{"location":"planejamento/sitesAvaliados/#agencia-virtual-neoenergia","text":"A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/sitesAvaliados/#site-escolhido","text":"Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal.","title":"Site escolhido"},{"location":"planejamento/sitesAvaliados/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.","title":"Bibliografia"},{"location":"planejamento/sitesAvaliados/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/","text":"Ag\u00eancia Virtual NeoEnergia Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa. Dados Coletados 1. Visibilidade do status do sistema A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1 2. Compatibilidade do sistema com o mundo real Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento 3. Controle do usu\u00e1rio e liberdade Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2 4. Consist\u00eancia e padr\u00f5es Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o. 5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha. 6. Preven\u00e7\u00e3o de erros A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2 7. Reconhecimento em vez de memoriza\u00e7\u00e3o Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5 8. Flexibilidade e efici\u00eancia de uso Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8 9. Est\u00e9tica e design minimalista Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas. 10. Ajuda e documenta\u00e7\u00e3o Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#agencia-virtual-neoenergia","text":"","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#introducao","text":"Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#1-visibilidade-do-status-do-sistema","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1","title":"1. Visibilidade do status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#2-compatibilidade-do-sistema-com-o-mundo-real","text":"Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento","title":"2. Compatibilidade do sistema com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#3-controle-do-usuario-e-liberdade","text":"Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2","title":"3. Controle do usu\u00e1rio e liberdade"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#4-consistencia-e-padroes","text":"Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o.","title":"4. Consist\u00eancia e padr\u00f5es"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#5-ajuda-o-usuario-a-reconhecer-diagnosticar-e-recuperar-se-de-erros","text":"Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha.","title":"5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#6-prevencao-de-erros","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2","title":"6. Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#7-reconhecimento-em-vez-de-memorizacao","text":"Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5","title":"7. Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#8-flexibilidade-e-eficiencia-de-uso","text":"Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8","title":"8. Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#9-estetica-e-design-minimalista","text":"Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas.","title":"9. Est\u00e9tica e design minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#10-ajuda-e-documentacao","text":"Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9","title":"10. Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/","text":"Bras\u00edlia Lazer Show Introdu\u00e7\u00e3o O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo. Problemas Identificados Problema 1 A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Problema 2 A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Problema 3 A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Problema 4 A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Problema 5 A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#brasilia-lazer-show","text":"","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#introducao","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problemas-identificados","text":"","title":"Problemas Identificados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-1","text":"A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1:","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-2","text":"A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2:","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-3","text":"A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3:","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-4","text":"A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4:","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-5","text":"A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5:","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/","text":"Caixa Econ\u00f4mica Introdu\u00e7\u00e3o Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana. Avalia\u00e7\u00e3o Heur\u00edstica A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2 Problema 3 A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3 Problema 4 A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4 Problema 5 A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5 Problema 6 A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6 Problema 7 A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7 Problema 8 A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8 Problema 9 A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#caixa-economica","text":"","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#introducao","text":"Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#avaliacao-heuristica","text":"A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema.","title":"Avalia\u00e7\u00e3o Heur\u00edstica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-3","text":"A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-4","text":"A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-5","text":"A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-6","text":"A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6","title":"Problema 6"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-7","text":"A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7","title":"Problema 7"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-8","text":"A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8","title":"Problema 8"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-9","text":"A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9","title":"Problema 9"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/","text":"Central Expresso Introdu\u00e7\u00e3o O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava. Objetivo O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o. Avalia\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#central-expresso","text":"","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#introducao","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#objetivo","text":"O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o.","title":"Objetivo"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#avaliacao","text":"Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade.","title":"Avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/","text":"Governo Pernambuco Introdu\u00e7\u00e3o Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves. Heur\u00edsticas de Nielsen As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema 1 - Visibilidade e status do sistema Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema. 2 - Compatibilidade com o mundo real Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es. 3 - Consist\u00eancia e padroniza\u00e7\u00e3o Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto. 4 - Projeto est\u00e9tico e minimalista Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos. Objetivos e escopo da avalia\u00e7\u00e3o A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#governo-pernambuco","text":"","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#introducao","text":"Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#heuristicas-de-nielsen","text":"As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Heur\u00edsticas de Nielsen"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#interpretacao-e-identificacao-de-problemas-no-sistema","text":"","title":"Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#1-visibilidade-e-status-do-sistema","text":"Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema.","title":"1 - Visibilidade e status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#2-compatibilidade-com-o-mundo-real","text":"Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es.","title":"2 - Compatibilidade com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#3-consistencia-e-padronizacao","text":"Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto.","title":"3 - Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#4-projeto-estetico-e-minimalista","text":"Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos.","title":"4 - Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#objetivos-e-escopo-da-avaliacao","text":"A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site.","title":"Objetivos e escopo da avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/","text":"Rastreamento Correios Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos. Dados Coletados Visibilidade do estado do sistema Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d. Correspond\u00eancia entre o sistema e o mundo real \u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema. Controle e liberdade do usu\u00e1rio N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido. Consist\u00eancia e padroniza\u00e7\u00e3o A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios. Reconhecimento em vez de memoriza\u00e7\u00e3o O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez. Flexibilidade e efici\u00eancia de uso N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input. Projeto est\u00e9tico e minimalista O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9. Preven\u00e7\u00e3o de erros Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio. Ajuda e documenta\u00e7\u00e3o Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#rastreamento-correios","text":"","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#introducao","text":"Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#visibilidade-do-estado-do-sistema","text":"Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d.","title":"Visibilidade do estado do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#correspondencia-entre-o-sistema-e-o-mundo-real","text":"\u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema.","title":"Correspond\u00eancia entre o sistema e o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#controle-e-liberdade-do-usuario","text":"N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido.","title":"Controle e liberdade do usu\u00e1rio"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#consistencia-e-padronizacao","text":"A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios.","title":"Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#reconhecimento-em-vez-de-memorizacao","text":"O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez.","title":"Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#flexibilidade-e-eficiencia-de-uso","text":"N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input.","title":"Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#projeto-estetico-e-minimalista","text":"O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9.","title":"Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#prevencao-de-erros","text":"Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro.","title":"Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajude-os-usuarios-a-reconhecerem-diagnosticarem-e-se-recuperarem-de-erros","text":"Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio.","title":"Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajuda-e-documentacao","text":"Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs.","title":"Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282.","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"}]} \ No newline at end of file diff --git a/ghpages08/site/sitemap.xml b/ghpages08/site/sitemap.xml index 0bc6294..8399630 100644 --- a/ghpages08/site/sitemap.xml +++ b/ghpages08/site/sitemap.xml @@ -2,102 +2,152 @@ None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 daily None - 2022-08-02 + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 + daily + + + None + 2022-08-19 daily \ No newline at end of file diff --git a/ghpages08/site/sitemap.xml.gz b/ghpages08/site/sitemap.xml.gz index 2b3b957d1513aff92060d0c1628294a2769f0427..ce2db83acb52c3b4124c4fa96837f39e98c2af7b 100644 GIT binary patch literal 215 zcmb2|=HL($VMu2BUz}NznwwalSCN~;@b>y%zGejh_78WL8@y?<%52_I`sRvVgX1a{ zu4#+6*8YCv-oszGz2MKzJNa$b?-zF1pK9E;Oi9w$b4|~dwPvxda^JIqCPcaXdCL}H z$9I@b>r%CSti9;<)|&VR?3qiuXo_vgr!?ll)9XCxwqx%+C^yQUDG%>?cJXX z4f46#pG?kA-r}*zsOQbiOrLMPFRxr)IXy$#_K$_N>g*GILWM^J-DQvo{u From d32709d627d6262c628c6bdabb58ada6f49f0772 Mon Sep 17 00:00:00 2001 From: luiza Date: Mon, 22 Aug 2022 11:06:26 -0300 Subject: [PATCH 08/23] correcao de erros --- .../n\303\255vel 2/planejamento_prototipo.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" index c15431d..42974d9 100644 --- "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" +++ "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 2/planejamento_prototipo.md" @@ -22,7 +22,7 @@ Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que p ## Perfis dos entrevistados e formas de seleção -Dentro da atividade de Perfil do Usuário e das Personas, conseguimos identificar características necessárias para realizar uma entrevista com um usuário. Sendo assim, buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que façam utilização do site da Agência Virtual NeoEnergia. +Dentro da atividade de Perfil do Usuário e das Personas, conseguimos identificar características necessárias para realizar uma entrevista com um usuário. Sendo assim, buscaremos três perfis maiores de 18 anos, que residam no Distrito Federal e que façam utilização do site da Agência Virtual NeoEnergia. Decidimos esse quantitativo de entrevistados com base na análise de Kruger. Para encontrar esses perfis, divulgamos a necessidade da nossa entrevista em grupos de redes sociais com pessoas que estão dentro dos critérios de utilização do sistema e convidamos pessoas já conhecidas pelos membros do grupo que se encaixam. From 6149833558c0a596fbb25c7a6ae21adc2ccd2c61 Mon Sep 17 00:00:00 2001 From: Clara Ribeiro Date: Mon, 22 Aug 2022 15:24:33 -0300 Subject: [PATCH 09/23] #45 - etapa 4 --- .../planejamento_tarefas.md" | 25 ++++++++++- .../storyboard/planejamento_storyboard.md" | 25 ++++++++++- .../etapa_4/planejamento.md" | 45 ++++++++++++++++++- .../etapa_4/relato.md" | 37 ++++++++++++++- 4 files changed, 128 insertions(+), 4 deletions(-) diff --git "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/an\303\241lise_de_tarefas/planejamento_tarefas.md" "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/an\303\241lise_de_tarefas/planejamento_tarefas.md" index 9aab613..b5e2a27 100644 --- "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/an\303\241lise_de_tarefas/planejamento_tarefas.md" +++ "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/an\303\241lise_de_tarefas/planejamento_tarefas.md" @@ -30,7 +30,29 @@ Durante as entrevistas, estarão dois membros do projeto como avaliadores, sendo ## Termo de consentimento -O termo de consentimento está apresentado abaixo e ele será entregue ao usuário antes do início da entrevista. +A pesquisa foi realizada levando em conta os princípios recomendados pela Resolução No 466/2012 do Conselho Nacional de Saúde, que é responsável pela regulamentação de pesquisas científicas envolvendo pessoas. Esses princípios são: + +- princípio da autonomia, que envolve o consentimento livre e esclarecido dos indivíduos; + +- princípio da beneficência, que envolve a ponderação entre riscos e benefícios, tanto atuais como potenciais, individuais ou coletivos, comprometendo-se com o máximo de benefícios e o mínimo de danos e riscos. + +- princípio da não maleficência, que envolve a garantia de evitar danos previsíveis relacionados à pesquisa, tanto os imediatos quanto os tardios; + +- princípio da justiça e equidade, relacionado à relevância social da pesquisa, com vantagens significativas para os participantes da pesquisa e minimização do ônus para os participantes vulneráveis, o que garante a igual consideração dos interesses envolvidos, não perdendo o sentido de sua destinação sócio-humanitária. + +Os participantes foram apresentados ao termo de consentimento, em que está especificado que: + +- os dados coletados durante a entrevista destinam-se estritamente a atividades de análise e elaboração de melhorias do sistema Agência Virtual NeoEnergia; + +- a equipe tem o compromisso de divulgar os resultados das pesquisas para o cliente. A divulgação desses resultados pauta-se no respeito à privacidade, e o anonimato dos participantes será preservado em quaisquer documentos que for elaborado; + +- quaisquer informações pessoais e sensíveis que aparecer durante a gravação (CPF, RG, data de nascimento, email) serão censuradas a fim de preservar a privacidade e o anonimato dos participantes; + +- o consentimento para a gravação da entrevista é uma escolha livre, feita mediante a prestação de todos os esclarecimentos necessários sobre a pesquisa + +- a entrevista pode ser interrompida a qualquer momento. + +O Termo de Consentimento está apresentado abaixo:

    @@ -71,3 +93,4 @@ Os dados coletados durante a entrevista serão registrados e utilizados como ins | 10/08/2022 | `0.2` | Ajuste das perguntas e adição do tópico teste piloto | [Natan Santana](https://github.com/Neitan2001) | | 12/08/2022 | `0.3` | Ajuste das perguntas de acordo com o teste piloto | [Natan Santana](https://github.com/Neitan2001) | | 16/08/2022 | `0.4` | Adição de informações sobre o teste piloto e sobre os entrevistados | [Clara Ribeiro](https://github.com/clara-ribeiro) | +| 22/08/2022 | `0.5` | Adição de informações sobre as questões éticas | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) diff --git "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/storyboard/planejamento_storyboard.md" "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/storyboard/planejamento_storyboard.md" index c8e27b4..f911360 100644 --- "a/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/storyboard/planejamento_storyboard.md" +++ "b/ghpages08/docs/design,_avalia\303\247\303\243o,_desenvolvimento/n\303\255vel 1/storyboard/planejamento_storyboard.md" @@ -30,7 +30,29 @@ Durante as entrevistas, estarão dois membros do projeto como avaliadores. Um fi ## Termo de consentimento -Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a gravação das entrevistas, deixando claro que tudo ocorrerá garantindo o sigilo das informações e somente com a devida autorização. +A pesquisa foi realizada levando em conta os princípios recomendados pela Resolução No 466/2012 do Conselho Nacional de Saúde, que é responsável pela regulamentação de pesquisas científicas envolvendo pessoas. Esses princípios são: + +- princípio da autonomia, que envolve o consentimento livre e esclarecido dos indivíduos; + +- princípio da beneficência, que envolve a ponderação entre riscos e benefícios, tanto atuais como potenciais, individuais ou coletivos, comprometendo-se com o máximo de benefícios e o mínimo de danos e riscos. + +- princípio da não maleficência, que envolve a garantia de evitar danos previsíveis relacionados à pesquisa, tanto os imediatos quanto os tardios; + +- princípio da justiça e equidade, relacionado à relevância social da pesquisa, com vantagens significativas para os participantes da pesquisa e minimização do ônus para os participantes vulneráveis, o que garante a igual consideração dos interesses envolvidos, não perdendo o sentido de sua destinação sócio-humanitária. + +Os participantes foram apresentados ao termo de consentimento, em que está especificado que: + +- os dados coletados durante a entrevista destinam-se estritamente a atividades de análise e elaboração de melhorias do sistema Agência Virtual NeoEnergia; + +- a equipe tem o compromisso de divulgar os resultados das pesquisas para o cliente. A divulgação desses resultados pauta-se no respeito à privacidade, e o anonimato dos participantes será preservado em quaisquer documentos que for elaborado; + +- quaisquer informações pessoais e sensíveis que aparecer durante a gravação (CPF, RG, data de nascimento, email) serão censuradas a fim de preservar a privacidade e o anonimato dos participantes; + +- o consentimento para a gravação da entrevista é uma escolha livre, feita mediante a prestação de todos os esclarecimentos necessários sobre a pesquisa + +- a entrevista pode ser interrompida a qualquer momento. + +O Termo de Consentimento está apresentado abaixo:

    @@ -100,3 +122,4 @@ Com todos esse planejamento, esperamos conseguir identificar todos os pontos a s | 10/08/2022 | `0.2` | Ajuste nas perguntas e adição do tópico de teste piloto | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 11/08/2022 | `0.3` | Ajuste nas perguntas de acordo com o que foi observado no teste piloto | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 16/08/2022 | `0.4` | Ajuste nos tópicos e correção da legenda de figura | [Luíza Esteves](https://github.com/luiza-esteves)| [Clara Ribeiro](https://github.com/clara-ribeiro) +| 22/08/2022 | `0.5` | Adição de informações sobre as questões éticas | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) \ No newline at end of file diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" index eb04430..e7a4f11 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" @@ -1 +1,44 @@ -# Planejamento da Verificação da Etapa 4 \ No newline at end of file +# Planejamento da Verificação da Etapa 4 + +## Introdução e Objetivo + +A fim de garantirmos que todos os artefatos de todas as entregas estão de acordo com os requisitos e critérios de aceitação definidos pelo professor André Barros além das alterações solicitadas pelos monitores, é necessário a realização de uma verificação. Assim, todos os erros encontrados e qualquer coisa que estiver faltando, será ajustado e documentado. Nesta página será feita o planejamento da verificação dos artefatos da Etapa 4. + +## Método + +O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. +Através dessa checklist, verificaremos se é necessário realizar a correção ou adição de pontos dentro desse artefato. + +## Avaliador e Cronograma + +O avaliador que ficará responsável pela revisão dos artefatos da etapa 4 será a Clara Ribeiro e a revisão será executada no dia 22/08/2022. Assim, após a finalização já será iniciado o [relato dos resultados da verificação](./relato.md). + +## Checklist + +A tabela 1 especifica todos os pontos que serão avaliados durante a execução da revisão, a fim de garantir que todos os pontos estão dentro do artefato. + +| Checklist | +| ---- | +| Todos os artefatos possuem texto de introdução? | +| O artefato possui uma tabela de versionamento? | +| Todos os artefatos possuem um revisor? | +| O artefato possui as referência bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| É apresentado os objetivos da avaliação de IHC? | +| Apresenta as perguntas a serem respondidas com a avaliação? | +| Apresenta os métodos de avaliação a serem utilizados? | +| Apresenta as questões práticas da avaliação? | +| Apresenta sobre as questões éticas? | +| Apresenta a estrutura do relatório da avaliação? | +| Apresenta um cronograma para realização da avaliação? | +| Está previsto a realização de um teste piloto antes da avaliação? | +| Está previsto o que o avaliador deve realizar durante a avaliação? | + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 18/08/2022 | `0.1` | Criação do planejamento da verificação | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) \ No newline at end of file diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/relato.md" index 56db840..8e7cff9 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/relato.md" @@ -1 +1,36 @@ -# Relato da Verificação da Etapa 4 \ No newline at end of file +# Relato da Verificação da Etapa 4 + +## Introdução + +Este documento possui o objetivo de relatar os resultados da verificação feita pela avaliadora Clara Ribeiro no dia 21/08/2022 utilizando o método de Inspeção. O checklist desenvolvido no [planejamento da verificação](./planejamento.md) foi utilizado a fim de verificar a conformidade de todo os artefatos da etapa 4 quanto aos requisitos e critérios de aceite definidos pelo professor André Barros. + +## Sumário dos dados + +| Checklist | Resposta | +| -- | -- | +| Todos os artefatos possuem texto de introdução? | Sim | +| Os artefatos possuem uma tabela de versionamento? | Sim | +| Todos os artefatos possuem um revisor? | Sim | +| O artefato possui as referência bibliográficas? | Sim | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | Sim | +| É apresentado os objetivos da avaliação de IHC? | Sim | +| Apresenta os métodos de avaliação a serem utilizados? | Sim | +| Apresenta as questões práticas da avaliação? | Sim | +| Apresenta sobre as questões éticas? | Algumas questões éticas são levantadas no próprio termo de consentimento, porém não há uma explanação mais aprofundada | +| Apresenta a estrutura do relatório da avaliação? | Sim | +| Apresenta um cronograma para realização da avaliação? | Sim, o cronograma foi detalhado em [Cronograma de atividades](../../../planejamento/cronograma.md) | +| Está previsto a realização de um teste piloto antes da avaliação? | Sim | +| Está previsto o que o avaliador deve realizar durante a avaliação? | Sim, foi informado que a entrevista será realizada por dois membros, em que um tem a função de conduzir a entrevista e o outro deve tomar notas das partes relevantes | + +## Problemas encontrados +- Foi identificado a necessidade de adicionar mais informações sobre as questões éticas envolvendo as entrevistas. + +## Correções +- A avaliadora Clara inseriu um tópico para tratar das questões éticas nas avaliações de análise de tarefas e dos storyboards. + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 21/08/2022 +## Tabela de Versionamento +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 18/08/2022 | `0.1` | Criação de relato da verificação | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) \ No newline at end of file From e94616c30e92c382fa168474d478fc3a779a7ec9 Mon Sep 17 00:00:00 2001 From: Clara Ribeiro Date: Mon, 22 Aug 2022 16:02:35 -0300 Subject: [PATCH 10/23] =?UTF-8?q?#38=20-=20revis=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_2/planejamento.md" | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" index beff5c3..04c6245 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/planejamento.md" @@ -9,7 +9,7 @@ A fim de garantirmos que todos os artefatos de todas as entregas estão de acord O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. Através dessa checklist, verificaremos se é necessário realizar a correção ou adição de pontos dentro desse artefato. -## Avaliador e Cronograma +## Avaliadores e Cronograma Os avaliadores que ficarão responsáveis pela revisão dos artefatos da etapa 2 serão os membros Rafael Xavier Canabrava e Daniel Coimbra, que será executada no dia 21/08/2022. Assim, após a finalização já será iniciado o [relato dos resultados da verificação](./relato.md). @@ -38,9 +38,9 @@ As tabelas 1, 2, 3, 4, e 5 especificam todos os pontos que serão avaliados dura | Considera aspectos éticos de pesquisas envolvendo pessoas? | | ---- | -| Os 4 peincípios (da autonomia, da beneficência, princípio da não maleficência e da justiça e equidade) | +| Os 4 princípios (da autonomia, da beneficência, princípio da não maleficência e da justiça e equidade) | | Solicitará a permissão para gravar a voz ou a imagem de qualquer pessoa, antes de começar a gravação? | -| Possui oi termo de consentimento livre e esclarecido dos participantes? | +| Possui o termo de consentimento livre e esclarecido dos participantes? |

    Tabela 2: Checklist dos aspectos éticos

    @@ -82,7 +82,7 @@ As tabelas 1, 2, 3, 4, e 5 especificam todos os pontos que serão avaliados dura | ---- | | Foi utilizada alguma técnica para especificar as tarefas? | | O HTA possui diagrama, legenda e representação em tabela? | -| O GOMS foi representado pelo KLM, CMN ou CPM? | +| O GOMS foi representado pelo KLM, CMN e CPM? |

    Tabela 5: Checklist de análise de tarefas

    @@ -96,4 +96,4 @@ As tabelas 1, 2, 3, 4, e 5 especificam todos os pontos que serão avaliados dura | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | -| 21/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 2 | [Rafael Xavier](https://github.com/rafaelxavierr) | \ No newline at end of file +| 21/08/2022 | `0.1` | Criação do planejamento da verificação da etapa 2 | [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) \ No newline at end of file From 33e71ceceff77b76a35f728c76c706c501c215a3 Mon Sep 17 00:00:00 2001 From: rafaelxavierr Date: Mon, 22 Aug 2022 18:21:00 -0300 Subject: [PATCH 11/23] #43 - Ajustes da etapa 2 --- .../analise_de_requisitos/aspectos_eticos.md | 50 ++++++++ .../perfil_do_usu\303\241rio.md" | 7 ++ .../docs/analise_de_requisitos/personas.md | 3 - .../etapa_2/relato.md" | 118 +++++++++++++++++- 4 files changed, 174 insertions(+), 4 deletions(-) create mode 100644 ghpages08/docs/analise_de_requisitos/aspectos_eticos.md diff --git a/ghpages08/docs/analise_de_requisitos/aspectos_eticos.md b/ghpages08/docs/analise_de_requisitos/aspectos_eticos.md new file mode 100644 index 0000000..c767e7b --- /dev/null +++ b/ghpages08/docs/analise_de_requisitos/aspectos_eticos.md @@ -0,0 +1,50 @@ +# Aspectos éticos + +## Introdução + +
    +

    É responsabilidade da equipe de design proteger o bem-estar físico e psicológico dos participantes de qualquer estudo. A Resolução No 466/2012 do Conselho Nacional de Saúde, que regulamenta as pesquisas científicas envolvendo pessoas, pode ser usada para orientar os avaliadores no cuidado ético durante seu trabalho. Segundo essa resolução, esses cuidados envolvem considerar os seguintes princípios:

    +
    + +* Princípio da autonomia: que envolve o consentimento livre e esclarecido dos indivíduos e a +proteção a grupos vulneráveis e aos legalmente incapazes. + +* Princípio da beneficência: que envolve a ponderação entre riscos e benefícios, tanto atuais como +potenciais, individuais ou coletivos, comprometendo-se com o máximo de benefícios e o mínimo +de danos e riscos. Esses danos podem ser físicos, psíquicos, morais, intelectuais, sociais, etc. + +* Princípio da não maleficência: que envolve a garantia de evitar danos previsíveis relacionados à +pesquisa, tanto os imediatos quanto os tardios. + +* Princípio da justiça e equidade: relacionado à relevância social da pesquisa, com vantagens +significativas para os participantes da pesquisa e minimização do ônus para os participantes vulneráveis, +o que garante a igual consideração dos interesses envolvidos, não perdendo o sentido de sua destinação +sócio-humanitária. + +## Termo de consentimento + +
    +

    A participação na pesquisa deve ocorrer apenas com o consentimento livre e esclarecido dos participantes. Todo participante, independente do estudo, tem o direito de saber a duração estimada, o objetivo do estudo, os procedimentos de coleta de dados, os seus direitos enquanto participante do estudo, o uso que será feito da informação coletada e quaisquer riscos, desconfortos ou efeitos adversos relacionados à sua participação no estudo.

    +
    + +
    +

    Em nosso questionário, nos usamos o seguinte termo para que o participante da pesquisa aceite e fique ciente das garantias e riscos envolvidas no estudo:

    +
    + +Somos alunos de Engenharia de Software da Universidade de Brasília, e estamos realizando um projeto na matéria de Interação Humano Computador, ministrada pelo professor André Barros. Nessa etapa do projeto, queremos conhecer o que algumas das pessoas que utilizam o sistema pensam a respeito da Agência Virtual NeoEnergia e como imaginam que o novo sistema deveria apoiar o seu trabalho. +Estamos realizando uma série de pesquisas e solicitamos seu consentimento para utilização dos dados para realizar um estudo avaliativo do site. Para decidir sobre o seu consentimento, é importante que você conheça as seguintes informações sobre a pesquisa: + +- Os dados coletados durante a entrevista destinam-se estritamente a atividades de análise e elaboração de melhorias do sistema Agência Virtual NeoEnergia. +- Nossa equipe tem o compromisso de divulgar os resultados de nossas pesquisas para o cliente. A divulgação desses resultados pauta-se no respeito à sua privacidade, e o anonimato dos participantes será preservado em quaisquer documentos que elaborarmos. +- O consentimento para o questionário é uma escolha livre, feita mediante a prestação de todos os esclarecimentos necessários sobre a pesquisa. +- O questionário pode ser interrompido a qualquer momento, segundo a sua disponibilidade e vontade. + +## Bibliografia + +

      1. SALES, André Barros. Plano de ensino da disciplina. Disponível em: https://aprender3.unb.br. Acesso em: 22 de agosto de 2022.

    + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 21/08/2022 | `0.1` | Criação do documento sobre aspectos éticos | [Rafael Xavier](https://github.com/rafaelxavierr) \ No newline at end of file diff --git "a/ghpages08/docs/analise_de_requisitos/perfil_do_usu\303\241rio.md" "b/ghpages08/docs/analise_de_requisitos/perfil_do_usu\303\241rio.md" index 3add4d3..0dac98f 100644 --- "a/ghpages08/docs/analise_de_requisitos/perfil_do_usu\303\241rio.md" +++ "b/ghpages08/docs/analise_de_requisitos/perfil_do_usu\303\241rio.md" @@ -12,6 +12,13 @@ O perfil de usuário é uma forma de entendermos quem são as pessoas que fazem Para entender quem são os usuários, nossa equipe elaborou um questionário através do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com características semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o questionário iniciasse de fato, era necessário aceitar o seguinte termo de consentimento:
    +## Por que usar o perfil de usuário? + +
    +Visto que um perfil de usuário é caracterizado por dados sobre o próprio usuário, podemos observar a faixa de respostas para cada uma das características e a porcentagem de usuários nessa faixa, categorizando os usuários em grupos, com base em suas semelhanças. +
    + + ![MkDocs](../assets/perfil/termo_de_consentimento.png) ![MkDocs](../assets/perfil/resposta_termo.png) diff --git a/ghpages08/docs/analise_de_requisitos/personas.md b/ghpages08/docs/analise_de_requisitos/personas.md index 6e50910..ff79811 100644 --- a/ghpages08/docs/analise_de_requisitos/personas.md +++ b/ghpages08/docs/analise_de_requisitos/personas.md @@ -9,9 +9,6 @@ ## Metodologia -

    -  Este é um método de elicitação muito utilizado, inclusive existem metodologias de projeto guiadas por personas. É também, uma importante ferramenta de síntese de ideias, de forma que o nome de uma persona já evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados àquela persona. Determinamos de início, a persona primária, as secundárias e a anti-persona. -

      Este é um método de elicitação muito utilizado, inclusive existem metodologias de projeto guiadas por personas. É também uma importante ferramenta de síntese de ideias, de forma que o nome de uma persona já evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados àquela persona. Determinamos de início, a persona primária, as secundárias e a anti-persona. A partir do Brainstorm realizado em uma reunião com todos os membros do grupo, conseguimos levantar alguns requisitos básicos. A partir desses requisitos, buscamos as personas básicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas histórias, necessidades e objetivos. É importante criar essa imagem vívida da persona para os designers estabelecerem os requisitos de forma precisa.

    diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" index a717bff..215ca5d 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" @@ -1 +1,117 @@ -# Relato da Verificação da Etapa 2 \ No newline at end of file +# Relato da Verificação da Etapa 2 + +## Introdução + +Este documento possui o objetivo de relatar os resultados da verificação feita pelos avaliadores Rafael Xavier Canabrava e Daniel Coimbra no dia 21/08/2022 utilizando o método de Inspeção. O checklist desenvolvido no [planejamento da verificação](./planejamento.md) foi utilizado a fim de verificar a conformidade de todos os artefatos da etapa 2 quanto aos requisitos e critérios de aceitação definidos pelo professor André Barros. + +## Sumário dos dados + +### Perfil do usuário + +| Ponto analisado | Foi realizado? | +| ---- | ---- | +| Dados demográficos: idade, sexo, status socioeconômico | Sim +| Experiência no cargo que ocupa: cargo atual, experiência nesse cargo, tempo na empresa, responsabilidades, trabalhos e cargos anteriores, plano de carreira | Sim +| Informações sobre a empresa: tamanho da empresa, área de atuação | Sim +| Educação: grau de instrução, área de formação, cursos realizados, alfabetismo. | Sim +| Experiência com computadores: alfabetismo computacional, tempo de experiência | Não se aplica +| Experiência com um produto específico ou ferramentas semelhantes | Sim +| Tecnologia disponível: hardware, software e outras ferramentas as quais tem acesso | Não se aplica +| Treinamento: o quanto o usuáario valoriza treinamento? Prefere um estilo de aprendizado visual, auditivo ou outro? Pode investir um tempo aprendendo utilizar o produto em questão? | Não se aplica +| Atitudes e valores: preferências de produto, medo de tecnologia etc. O usuário costuma assumir riscos e explorar novas formas de fazer o mesmo trabalho? Ou prefere que alguém lhe mostre cada passo de uma tarefa sendo aprendida? | Não se aplica +| Conhecimento do domínio: o que e quanto o usuário conhece sobre o assunto em questão? É especialista? É esperado que se torne especialista? | Não se aplica +| Objetivos: quais são os principais objetivos do usuário? Como eles são alcançados atualmente? | Sim +| Tarefas: quais são as tarefas do usuário que precisam ser apoiadas? | Sim +| Foi dada uma motivação para o uso da técnica do perfil de usuário? | Não + +
    +

    Tabela 1: Checklist de perfil do usuário

    +
    +
    + +### Aspectos éticos + +| Ponto analisado | Foi realizado? +| ---- | ---- | +| Os 4 princípios (da autonomia, da beneficência, princípio da não maleficência e da justiça e equidade) | Não +| Solicitará a permissão para gravar a voz ou a imagem de qualquer pessoa, antes de começar a gravação? | Não se aplica +| Possui o termo de consentimento livre e esclarecido dos participantes? | Sim + +
    +

    Tabela 2: Checklist dos aspectos éticos

    +
    +
    + +### Técnicas de coleta + +| Ponto analisado | Foi realizado? +| ---- | ---- | +| Entrevistas | Não +| Grupos de foco | Não +| Questionários | Sim +| Brainstorming | Não +| Classificação de cartões | Não +| Estudos de campo | Não +| Investigação contextual | Não + +
    +

    Tabela 3: Técnicas de coleta

    +
    + +### Personas + +| Ponto analisado | Foi ralizado? +| ---- | ---- | +| As personas são defendidas a partir dos dados do perfil do usuário? | Sim +| As personas possuem: identidade? Idade e dados demográficos? Foto ? Status (primária, secundária, outro stakeholder ou representa um antiusuário do seu sistema)? | Sim +| Objetivos da persona | Sim +| Habilidades | Sim +| Tarefas | Sim +| Relacionamentos | Sim +| Requisitos | Sim +| Expectativas | Sim +| Elenco de personas | Sim +| Número de personas e uma razão desse número | Sim +| Foram definidos cenários? | Não + +
    +

    Tabela 4: Checklist de personas

    +
    + +### Análise de tarefas + +| Ponto analisado | Foi realizado? +| ---- | ---- | +| Foi utilizada alguma técnica para especificar as tarefas? | Sim +| O HTA possui diagrama, legenda e representação em tabela? | Sim +| O GOMS foi representado pelo KLM, CMN e CPM? | Parcialmente + +
    +

    Tabela 5: Checklist de análise de tarefas

    +
    + + +## Problemas encontrados + +De acordo com as respostas dos checklists acima, os seguintes problemas foram encontrados durante a revisão: + +1. No artefato Perfil de Usuário não havia uma motivação para o uso da técnica do perfil de usuário; +2. Não havia nada citando os 4 princípios (da autonomia, da beneficência, princípio da não maleficência e da justiça e equidade); +3. Não foram definios cenários; +4. O GOMS foi representado apenas pelo KLM; + +## Correções + +Depois que levantamos todos os problemas, o avaliador Rafael Xavier ficou responsável por corrigir os problemas 1 e 2, enquanto o avaliador Daniel Coimbra ficou responsável pelos problemas 3 e 4. Segue abaixo a lista de correções que foram feitas: + +1. Adição de uma justificativa para a utilização da técnica de perfil do usuário; +2. Adição de uma página sobre os aspectos éticos do projeto, citando os 4 princípios e mostrando o termo de consentimento usado no questionário; + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 21/08/2022 + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autores | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 21/08/2022 | `0.1` | Criação de relato da verificação da etapa 2 | [Rafael Xavier](https://github.com/rafaelxavierr) | \ No newline at end of file From 3e5c376711a08c4c09066db6b38dfc1099700408 Mon Sep 17 00:00:00 2001 From: Clara Ribeiro Date: Mon, 22 Aug 2022 20:19:28 -0300 Subject: [PATCH 12/23] =?UTF-8?q?#43=20-=20Revis=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ghpages08/docs/planejamento/cronograma.md | 20 +++++++++---------- .../etapa_2/relato.md" | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ghpages08/docs/planejamento/cronograma.md b/ghpages08/docs/planejamento/cronograma.md index aba7f79..e8e0713 100644 --- a/ghpages08/docs/planejamento/cronograma.md +++ b/ghpages08/docs/planejamento/cronograma.md @@ -101,16 +101,16 @@ Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limit Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limite para revisão --------- | ----------------- | -------------- | ---------- | ---------- -21/08/2022 | Planejamento da Verificação da Etapa 1 | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 -21/08/2022 | Planejamento da Verificação da Etapa 2 | [Daniel Coimbra](https://github.com/DanielCoimbra) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 21/08/2022 -21/08/2022 | Planejamento da Verificação da Etapa 3 | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) | 21/08/2022 -21/08/2022 | Planejamento da Verificação da Etapa 4 | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) | 21/08/2022 -21/08/2022 | Planejamento da Verificação da Etapa 5 | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 -21/08/2022 | Relato da Verificação da Etapa 1 e ajustes nos artefatos | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 -21/08/2022 | Relato da Verificação da Etapa 2 e ajustes nos artefatos | [Daniel Coimbra](https://github.com/DanielCoimbra) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 21/08/2022 -21/08/2022 | Relato da Verificação da Etapa 3 e ajustes nos artefatos | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) | 21/08/2022 -21/08/2022 | Relato da Verificação da Etapa 4 e ajustes nos artefatos | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) | 21/08/2022 -21/08/2022 | Relato da Verificação da Etapa 5 e ajustes nos artefatos | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 21/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 1 | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) | 22/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 2 | [Daniel Coimbra](https://github.com/DanielCoimbra) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 22/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 3 | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) | 22/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 4 | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) | 22/08/2022 +21/08/2022 | Planejamento da Verificação da Etapa 5 | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 22/08/2022 +21/08/2022 | Relato da Verificação da Etapa 1 e ajustes nos artefatos | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) | 22/08/2022 +21/08/2022 | Relato da Verificação da Etapa 2 e ajustes nos artefatos | [Daniel Coimbra](https://github.com/DanielCoimbra) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 22/08/2022 +21/08/2022 | Relato da Verificação da Etapa 3 e ajustes nos artefatos | [Natan Santana](https://github.com/Neitan2001) | [Luíza Esteves](https://github.com/luiza-esteves) | 22/08/2022 +21/08/2022 | Relato da Verificação da Etapa 4 e ajustes nos artefatos | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) | 22/08/2022 +21/08/2022 | Relato da Verificação da Etapa 5 e ajustes nos artefatos | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 22/08/2022 21/08/2022 | Slides e gravação do vídeo de apresentação | Todos | [Clara Ribeiro](https://github.com/clara-ribeiro) | 22/08/2022 22/08/2022 | Edição do vídeo de apresentação | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Natan Santana](https://github.com/Neitan2001) | 22/08/2022 diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" index 215ca5d..048cc41 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_2/relato.md" @@ -2,7 +2,7 @@ ## Introdução -Este documento possui o objetivo de relatar os resultados da verificação feita pelos avaliadores Rafael Xavier Canabrava e Daniel Coimbra no dia 21/08/2022 utilizando o método de Inspeção. O checklist desenvolvido no [planejamento da verificação](./planejamento.md) foi utilizado a fim de verificar a conformidade de todos os artefatos da etapa 2 quanto aos requisitos e critérios de aceitação definidos pelo professor André Barros. +Este documento possui o objetivo de relatar os resultados da verificação feita pelo avaliador Rafael Xavier Canabrava no dia 21/08/2022 utilizando o método de Inspeção. O checklist desenvolvido no [planejamento da verificação](./planejamento.md) foi utilizado a fim de verificar a conformidade de todos os artefatos da etapa 2 quanto aos requisitos e critérios de aceitação definidos pelo professor André Barros. ## Sumário dos dados @@ -114,4 +114,4 @@ Depois que levantamos todos os problemas, o avaliador Rafael Xavier ficou respon | Data | Versão | Descrição | Autores | Revisor | | ---- | ------ | --------- | ----- | ------- | -| 21/08/2022 | `0.1` | Criação de relato da verificação da etapa 2 | [Rafael Xavier](https://github.com/rafaelxavierr) | \ No newline at end of file +| 21/08/2022 | `0.1` | Criação de relato da verificação da etapa 2 | [Rafael Xavier](https://github.com/rafaelxavierr) | [Clara Ribeiro](https://github.com/clara-ribeiro) \ No newline at end of file From d25ea33cf75ae4de8d2abd51eec08f1a0d5ae75d Mon Sep 17 00:00:00 2001 From: Clara Ribeiro Date: Mon, 22 Aug 2022 20:26:43 -0300 Subject: [PATCH 13/23] =?UTF-8?q?#45=20-=20Corre=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_4/planejamento.md" | 1 - 1 file changed, 1 deletion(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" index e7a4f11..bcf0e5a 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_4/planejamento.md" @@ -25,7 +25,6 @@ A tabela 1 especifica todos os pontos que serão avaliados durante a execução | O artefato possui as referência bibliográficas? | | Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | | É apresentado os objetivos da avaliação de IHC? | -| Apresenta as perguntas a serem respondidas com a avaliação? | | Apresenta os métodos de avaliação a serem utilizados? | | Apresenta as questões práticas da avaliação? | | Apresenta sobre as questões éticas? | From 56636f6fc29fc36b4bd93bb8e25ce0a5f1427b8a Mon Sep 17 00:00:00 2001 From: MatheusPerillo Date: Mon, 22 Aug 2022 20:48:32 -0300 Subject: [PATCH 14/23] =?UTF-8?q?#87=20-=20Cria=C3=A7=C3=A3o=20do=20planej?= =?UTF-8?q?amento=20da=20verifica=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_1/planejamento.md" | 47 ++- ghpages08/site/404.html | 211 ++++++++++++- ghpages08/site/index.html | 280 +++++++++++++----- ghpages08/site/search/search_index.json | 2 +- ghpages08/site/sitemap.xml | 65 ++-- ghpages08/site/sitemap.xml.gz | Bin 209 -> 213 bytes 6 files changed, 506 insertions(+), 99 deletions(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" index d380717..cfb2423 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" @@ -1 +1,46 @@ -# Planejamento da Verificação da Etapa 1 \ No newline at end of file +# Planejamento da Verificação da Etapa 1 + +## Introdução e Objetivo + +A fim de garantirmos que todos os artefatos de todas as entregas estão de acordo com os requisitos e critérios de aceitação definidos pelo professor André Barros além das alterações solicitadas pelos monitores, é necessário a realização de uma verificação. Assim, todos os erros encontrados e qualquer coisa que estiver faltando, será ajustado e documentado. Nesta página será feita o planejamento da verificação dos artefatos da Etapa 1. + +## Método + +O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. +Através dessa checklist, verificaremos se é necessário realizar a correção ou adição de pontos dentro desse artefato. + +## Avaliador e Cronograma + +O avaliador responsável pela revisão dos artefatos da etapa 1 será o membro Matheus Perillo e a revisão será executada no dia 22/08/2022. +## Checklist + +A tabela 1 especifica todos os pontos que serão avaliados durante a execução da revisão, a fim de garantir que todos os pontos estão dentro do artefato. + +| Checklist | +| ---- | +| Apresenta os Artefatos: Planejamento, Equipe, Sites avaliados, Site escolhido, Ferramentas, Processo de design e Cronograma? | +| Todos os artefatos possuem texto de introdução? | +| Todos os artefatos possuem uma tabela de versionamento? | +| Todos os artefatos possuem um revisor? | +| Os artefatos possuem as referências bibliográficas? | +| A equipe é apresentada com nome e foto dos integrantes? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| Apresenta os sites avaliados? | +| Possui a avaliação individual dos sites? | +| Na avaliação dos sites é apresentada qual o método de avaliação? | +| A motivação para a escolha do site? | +| Possui justificativa da escolha do Processo de Design? | + + +
    +

    Tabela 1: Pontos a serem avaliados

    +
    + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 22/08/2022 | `0.1` | Criação do planejamento da verificação | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) \ No newline at end of file diff --git a/ghpages08/site/404.html b/ghpages08/site/404.html index 995f7a1..72b2beb 100644 --- a/ghpages08/site/404.html +++ b/ghpages08/site/404.html @@ -394,12 +394,201 @@ + + + + + + + + + + + + + + +
  • + + + + + + + +
  • -

    Políticas

    -

    Políticas de Branchs

    -
    -As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: - -
    git checkout -b "#X - Nome"
    -
    -Onde 'X' é o número da issue e o 'Nome' deve ser um breve título que resuma a issue. -
    - -

    Políticas de Commits

    -

    Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo:

    -

    git commit -m "#X - Comentário"
    -
    -Onde 'X' é o número da issue e o 'Comentário' deve ser um resumo do que foi feito no commit.

    Desenvolvedores.🤝

    diff --git a/ghpages08/site/search/search_index.json b/ghpages08/site/search/search_index.json index a1e32e1..075fefc 100644 --- a/ghpages08/site/search/search_index.json +++ b/ghpages08/site/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Home Fonte: NEOENERGIA BRAS\u00cdLIA Sobre o Projeto Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia. Pol\u00edticas Pol\u00edticas de Branchs As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue. Pol\u00edticas de Commits Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit. Desenvolvedores.\ud83e\udd1d Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Home"},{"location":"#home","text":"Fonte: NEOENERGIA BRAS\u00cdLIA","title":"Home"},{"location":"#sobre-o-projeto","text":"Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia.","title":"Sobre o Projeto"},{"location":"#politicas","text":"","title":"Pol\u00edticas"},{"location":"#politicas-de-branchs","text":"As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue.","title":"Pol\u00edticas de Branchs"},{"location":"#politicas-de-commits","text":"Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit.","title":"Pol\u00edticas de Commits"},{"location":"#desenvolvedores","text":"Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra","title":"Desenvolvedores.\ud83e\udd1d"},{"location":"#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"apresentacoes/","text":"Apresenta\u00e7\u00f5es Etapa 1 V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1 Etapa 2 V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2 Etapa 3 V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#apresentacoes","text":"","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#etapa-1","text":"V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1","title":"Etapa 1"},{"location":"apresentacoes/#etapa-2","text":"V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2","title":"Etapa 2"},{"location":"apresentacoes/#etapa-3","text":"V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3","title":"Etapa 3"},{"location":"apresentacoes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/caract-plataforma/","text":"Metas de usabilidade Introdu\u00e7\u00e3o \u2003 Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas. Objetivo \u2003 Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo. Metas de usabilidade \u2003 A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. 1. Efic\u00e1cia \u2003 \u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele. Aplica\u00e7\u00e3o \u2003 O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando. 2. Efici\u00eancia \u2003 \u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la. Aplica\u00e7\u00e3o \u2003 Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui . 3. Seguran\u00e7a \u2003 \u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso. Aplica\u00e7\u00e3o \u2003 A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login. 4. Utilidade \u2003 Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente. Aplica\u00e7\u00e3o \u2003 O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes. 5. Aprendizagem \u2003 \u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto. Aplica\u00e7\u00e3o \u2003 Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos. 6. Memoriza\u00e7\u00e3o \u2003 Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas. Aplica\u00e7\u00e3o \u2003 O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013. Tabela de versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade","text":"","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#introducao","text":"Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#objetivo","text":"Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo.","title":"Objetivo"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade_1","text":"A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia.","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#1-eficacia","text":"\u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele.","title":"1. Efic\u00e1cia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao","text":"O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#2-eficiencia","text":"\u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la.","title":"2. Efici\u00eancia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_1","text":"Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui .","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#3-seguranca","text":"\u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso.","title":"3. Seguran\u00e7a"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_2","text":"A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#4-utilidade","text":"Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente.","title":"4. Utilidade"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_3","text":"O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#5-aprendizagem","text":"\u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto.","title":"5. Aprendizagem"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_4","text":"Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#6-memorizacao","text":"Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas.","title":"6. Memoriza\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_5","text":"O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013.","title":"Bibliografia"},{"location":"analise_de_requisitos/caract-plataforma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Tabela de versionamento"},{"location":"analise_de_requisitos/guia/","text":"Guia de Estilo Introdu\u00e7\u00e3o Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign. Identidade Visual da NeoEnergia Logo O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br Cores H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos Tipografia A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek Bot\u00f5es e \u00edcones Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia An\u00e1lise de estilo Logo Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos Cores Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia Tipografia Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia Bot\u00f5es e \u00edcones Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam. Bibliografia ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#guia-de-estilo","text":"","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#introducao","text":"Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/guia/#identidade-visual-da-neoenergia","text":"","title":"Identidade Visual da NeoEnergia"},{"location":"analise_de_requisitos/guia/#logo","text":"O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores","text":"H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia","text":"A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones","text":"Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#analise-de-estilo","text":"","title":"An\u00e1lise de estilo"},{"location":"analise_de_requisitos/guia/#logo_1","text":"Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores_1","text":"Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia_1","text":"Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones_1","text":"Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam.","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#bibliografia","text":"ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022","title":"Bibliografia"},{"location":"analise_de_requisitos/guia/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/","text":"Perfil do Usu\u00e1rio Introdu\u00e7\u00e3o O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo. Metodologia Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento) Question\u00e1rio Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18 Observa\u00e7\u00f5es Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#perfil-do-usuario","text":"","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#introducao","text":"O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#metodologia","text":"Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento)","title":"Metodologia"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#questionario","text":"Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18","title":"Question\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#observacoes","text":"Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo.","title":"Observa\u00e7\u00f5es"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/","text":"Personas Introdu\u00e7\u00e3o \u2003 Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006) Metodologia \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa. Personas Persona prim\u00e1ria Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Personas"},{"location":"analise_de_requisitos/personas/#personas","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#introducao","text":"Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006)","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/personas/#metodologia","text":"Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa.","title":"Metodologia"},{"location":"analise_de_requisitos/personas/#personas_1","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#persona-primaria","text":"Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona","title":"Persona prim\u00e1ria"},{"location":"analise_de_requisitos/personas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/","text":"Princ\u00edpios Gerais do Projeto Introdu\u00e7\u00e3o Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o. Diretrizes A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro. Conclus\u00e3o Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#principios-gerais-do-projeto","text":"","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#introducao","text":"Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#diretrizes","text":"A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro.","title":"Diretrizes"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#conclusao","text":"Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es.","title":"Conclus\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/","text":"An\u00e1lise Hier\u00e1rquica de Tarefas Introdu\u00e7\u00e3o A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link). Diagramas e tabelas Acessar a conta no site A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA Relat\u00f3rio Nada Consta A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#analise-hierarquica-de-tarefas","text":"","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#introducao","text":"A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link).","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#diagramas-e-tabelas","text":"","title":"Diagramas e tabelas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#acessar-a-conta-no-site","text":"A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA","title":"Acessar a conta no site"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#relatorio-nada-consta","text":"A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA","title":"Relat\u00f3rio Nada Consta"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/","text":"\u00c1rvores de Tarefas Concorrentes Introdu\u00e7\u00e3o Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT Diagrama de An\u00e1lise de Tarefas Concorrentes Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#arvores-de-tarefas-concorrentes","text":"","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#introducao","text":"Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#diagrama-de-analise-de-tarefas-concorrentes","text":"Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta","title":"Diagrama de An\u00e1lise de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/","text":"GOMS Introdu\u00e7\u00e3o Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM. KLM-GOMS KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios. Objetivo: Cadastro na plataforma O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM Objetivo: Entrar na plataforma O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s Objetivo: Recuperar a senha O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s Objetivo: Gerar o relat\u00f3rio de nada consta mensal O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro Objetivo: Gerar o relat\u00f3rio de nada consta anual O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#goms","text":"","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#introducao","text":"Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#klm-goms","text":"KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios.","title":"KLM-GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-cadastro-na-plataforma","text":"O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM","title":"Objetivo: Cadastro na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-entrar-na-plataforma","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s","title":"Objetivo: Entrar na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-recuperar-a-senha","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s","title":"Objetivo: Recuperar a senha"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-mensal","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro","title":"Objetivo: Gerar o relat\u00f3rio de nada consta mensal"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-anual","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s","title":"Objetivo: Gerar o relat\u00f3rio de nada consta anual"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/cronograma/","text":"Cronograma de atividades Introdu\u00e7\u00e3o Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es. Etapa 1 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design Etapa 2 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas Etapa 3 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo Etapa 4 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas Etapa 5 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Etapa 6 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos Etapa 7 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade Bibliografia 1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#cronograma-de-atividades","text":"","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#introducao","text":"Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/cronograma/#etapa-1","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design","title":"Etapa 1"},{"location":"planejamento/cronograma/#etapa-2","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas","title":"Etapa 2"},{"location":"planejamento/cronograma/#etapa-3","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo","title":"Etapa 3"},{"location":"planejamento/cronograma/#etapa-4","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas","title":"Etapa 4"},{"location":"planejamento/cronograma/#etapa-5","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel","title":"Etapa 5"},{"location":"planejamento/cronograma/#etapa-6","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos","title":"Etapa 6"},{"location":"planejamento/cronograma/#etapa-7","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade","title":"Etapa 7"},{"location":"planejamento/cronograma/#bibliografia","text":"1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022.","title":"Bibliografia"},{"location":"planejamento/cronograma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/ferramentas/","text":"Ferramentas Introdu\u00e7\u00e3o As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o. Ferramentas do Projeto Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto Refer\u00eancias FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Ferramentas"},{"location":"planejamento/ferramentas/#ferramentas","text":"","title":"Ferramentas"},{"location":"planejamento/ferramentas/#introducao","text":"As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/ferramentas/#ferramentas-do-projeto","text":"Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto","title":"Ferramentas do Projeto"},{"location":"planejamento/ferramentas/#referencias","text":"FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022","title":"Refer\u00eancias"},{"location":"planejamento/ferramentas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/processoDesign/","text":"Processo de Design Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel. Engenharia de Usabilidade de Mayhew Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos. Por que usar o ciclo de vida de Mayhew? O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas. Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Processo de Design"},{"location":"planejamento/processoDesign/#processo-de-design","text":"Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel.","title":"Processo de Design"},{"location":"planejamento/processoDesign/#engenharia-de-usabilidade-de-mayhew","text":"Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos.","title":"Engenharia de Usabilidade de Mayhew"},{"location":"planejamento/processoDesign/#por-que-usar-o-ciclo-de-vida-de-mayhew","text":"O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas.","title":"Por que usar o ciclo de vida de Mayhew?"},{"location":"planejamento/processoDesign/#aplicando-a-usabilidade-de-mayhew-na-avaliacao-do-site","text":"O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento.","title":"Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site"},{"location":"planejamento/processoDesign/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999.","title":"Bibliografia"},{"location":"planejamento/processoDesign/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/sitesAvaliados/","text":"Sites Avaliados Introdu\u00e7\u00e3o Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Sites escolhidos pelos integrantes Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro Caixa Econ\u00f4mica A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Governo de Pernambuco O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Central Expresso O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Rastreamento Correios O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Bras\u00edlia Laser Show O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Ag\u00eancia Virtual NeoEnergia A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Site escolhido Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#sites-avaliados","text":"","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#introducao","text":"Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/sitesAvaliados/#sites-escolhidos-pelos-integrantes","text":"Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro","title":"Sites escolhidos pelos integrantes"},{"location":"planejamento/sitesAvaliados/#caixa-economica","text":"A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/sitesAvaliados/#governo-de-pernambuco","text":"O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Governo de Pernambuco"},{"location":"planejamento/sitesAvaliados/#central-expresso","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Central Expresso"},{"location":"planejamento/sitesAvaliados/#rastreamento-correios","text":"O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Rastreamento Correios"},{"location":"planejamento/sitesAvaliados/#brasilia-laser-show","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Bras\u00edlia Laser Show"},{"location":"planejamento/sitesAvaliados/#agencia-virtual-neoenergia","text":"A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/sitesAvaliados/#site-escolhido","text":"Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal.","title":"Site escolhido"},{"location":"planejamento/sitesAvaliados/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.","title":"Bibliografia"},{"location":"planejamento/sitesAvaliados/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/","text":"Ag\u00eancia Virtual NeoEnergia Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa. Dados Coletados 1. Visibilidade do status do sistema A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1 2. Compatibilidade do sistema com o mundo real Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento 3. Controle do usu\u00e1rio e liberdade Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2 4. Consist\u00eancia e padr\u00f5es Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o. 5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha. 6. Preven\u00e7\u00e3o de erros A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2 7. Reconhecimento em vez de memoriza\u00e7\u00e3o Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5 8. Flexibilidade e efici\u00eancia de uso Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8 9. Est\u00e9tica e design minimalista Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas. 10. Ajuda e documenta\u00e7\u00e3o Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#agencia-virtual-neoenergia","text":"","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#introducao","text":"Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#1-visibilidade-do-status-do-sistema","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1","title":"1. Visibilidade do status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#2-compatibilidade-do-sistema-com-o-mundo-real","text":"Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento","title":"2. Compatibilidade do sistema com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#3-controle-do-usuario-e-liberdade","text":"Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2","title":"3. Controle do usu\u00e1rio e liberdade"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#4-consistencia-e-padroes","text":"Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o.","title":"4. Consist\u00eancia e padr\u00f5es"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#5-ajuda-o-usuario-a-reconhecer-diagnosticar-e-recuperar-se-de-erros","text":"Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha.","title":"5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#6-prevencao-de-erros","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2","title":"6. Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#7-reconhecimento-em-vez-de-memorizacao","text":"Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5","title":"7. Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#8-flexibilidade-e-eficiencia-de-uso","text":"Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8","title":"8. Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#9-estetica-e-design-minimalista","text":"Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas.","title":"9. Est\u00e9tica e design minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#10-ajuda-e-documentacao","text":"Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9","title":"10. Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/","text":"Bras\u00edlia Lazer Show Introdu\u00e7\u00e3o O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo. Problemas Identificados Problema 1 A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Problema 2 A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Problema 3 A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Problema 4 A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Problema 5 A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#brasilia-lazer-show","text":"","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#introducao","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problemas-identificados","text":"","title":"Problemas Identificados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-1","text":"A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1:","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-2","text":"A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2:","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-3","text":"A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3:","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-4","text":"A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4:","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-5","text":"A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5:","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/","text":"Caixa Econ\u00f4mica Introdu\u00e7\u00e3o Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana. Avalia\u00e7\u00e3o Heur\u00edstica A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2 Problema 3 A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3 Problema 4 A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4 Problema 5 A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5 Problema 6 A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6 Problema 7 A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7 Problema 8 A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8 Problema 9 A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#caixa-economica","text":"","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#introducao","text":"Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#avaliacao-heuristica","text":"A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema.","title":"Avalia\u00e7\u00e3o Heur\u00edstica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-3","text":"A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-4","text":"A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-5","text":"A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-6","text":"A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6","title":"Problema 6"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-7","text":"A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7","title":"Problema 7"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-8","text":"A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8","title":"Problema 8"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-9","text":"A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9","title":"Problema 9"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/","text":"Central Expresso Introdu\u00e7\u00e3o O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava. Objetivo O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o. Avalia\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#central-expresso","text":"","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#introducao","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#objetivo","text":"O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o.","title":"Objetivo"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#avaliacao","text":"Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade.","title":"Avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/","text":"Governo Pernambuco Introdu\u00e7\u00e3o Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves. Heur\u00edsticas de Nielsen As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema 1 - Visibilidade e status do sistema Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema. 2 - Compatibilidade com o mundo real Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es. 3 - Consist\u00eancia e padroniza\u00e7\u00e3o Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto. 4 - Projeto est\u00e9tico e minimalista Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos. Objetivos e escopo da avalia\u00e7\u00e3o A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#governo-pernambuco","text":"","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#introducao","text":"Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#heuristicas-de-nielsen","text":"As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Heur\u00edsticas de Nielsen"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#interpretacao-e-identificacao-de-problemas-no-sistema","text":"","title":"Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#1-visibilidade-e-status-do-sistema","text":"Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema.","title":"1 - Visibilidade e status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#2-compatibilidade-com-o-mundo-real","text":"Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es.","title":"2 - Compatibilidade com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#3-consistencia-e-padronizacao","text":"Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto.","title":"3 - Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#4-projeto-estetico-e-minimalista","text":"Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos.","title":"4 - Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#objetivos-e-escopo-da-avaliacao","text":"A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site.","title":"Objetivos e escopo da avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/","text":"Rastreamento Correios Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos. Dados Coletados Visibilidade do estado do sistema Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d. Correspond\u00eancia entre o sistema e o mundo real \u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema. Controle e liberdade do usu\u00e1rio N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido. Consist\u00eancia e padroniza\u00e7\u00e3o A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios. Reconhecimento em vez de memoriza\u00e7\u00e3o O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez. Flexibilidade e efici\u00eancia de uso N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input. Projeto est\u00e9tico e minimalista O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9. Preven\u00e7\u00e3o de erros Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio. Ajuda e documenta\u00e7\u00e3o Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#rastreamento-correios","text":"","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#introducao","text":"Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#visibilidade-do-estado-do-sistema","text":"Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d.","title":"Visibilidade do estado do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#correspondencia-entre-o-sistema-e-o-mundo-real","text":"\u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema.","title":"Correspond\u00eancia entre o sistema e o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#controle-e-liberdade-do-usuario","text":"N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido.","title":"Controle e liberdade do usu\u00e1rio"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#consistencia-e-padronizacao","text":"A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios.","title":"Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#reconhecimento-em-vez-de-memorizacao","text":"O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez.","title":"Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#flexibilidade-e-eficiencia-de-uso","text":"N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input.","title":"Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#projeto-estetico-e-minimalista","text":"O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9.","title":"Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#prevencao-de-erros","text":"Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro.","title":"Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajude-os-usuarios-a-reconhecerem-diagnosticarem-e-se-recuperarem-de-erros","text":"Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio.","title":"Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajuda-e-documentacao","text":"Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs.","title":"Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282.","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Home Fonte: NEOENERGIA BRAS\u00cdLIA Sobre o Projeto Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia. Desenvolvedores.\ud83e\udd1d Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Home"},{"location":"#home","text":"Fonte: NEOENERGIA BRAS\u00cdLIA","title":"Home"},{"location":"#sobre-o-projeto","text":"Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia.","title":"Sobre o Projeto"},{"location":"#desenvolvedores","text":"Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra","title":"Desenvolvedores.\ud83e\udd1d"},{"location":"#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"apresentacoes/","text":"Apresenta\u00e7\u00f5es Etapa 1 V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1 Etapa 2 V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2 Etapa 3 V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#apresentacoes","text":"","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#etapa-1","text":"V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1","title":"Etapa 1"},{"location":"apresentacoes/#etapa-2","text":"V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2","title":"Etapa 2"},{"location":"apresentacoes/#etapa-3","text":"V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3","title":"Etapa 3"},{"location":"apresentacoes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/caract-plataforma/","text":"Metas de usabilidade Introdu\u00e7\u00e3o \u2003 Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas. Objetivo \u2003 Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo. Metas de usabilidade \u2003 A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. 1. Efic\u00e1cia \u2003 \u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele. Aplica\u00e7\u00e3o \u2003 O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando. 2. Efici\u00eancia \u2003 \u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la. Aplica\u00e7\u00e3o \u2003 Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui . 3. Seguran\u00e7a \u2003 \u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso. Aplica\u00e7\u00e3o \u2003 A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login. 4. Utilidade \u2003 Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente. Aplica\u00e7\u00e3o \u2003 O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes. 5. Aprendizagem \u2003 \u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto. Aplica\u00e7\u00e3o \u2003 Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos. 6. Memoriza\u00e7\u00e3o \u2003 Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas. Aplica\u00e7\u00e3o \u2003 O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013. Tabela de versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade","text":"","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#introducao","text":"Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#objetivo","text":"Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo.","title":"Objetivo"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade_1","text":"A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia.","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#1-eficacia","text":"\u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele.","title":"1. Efic\u00e1cia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao","text":"O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#2-eficiencia","text":"\u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la.","title":"2. Efici\u00eancia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_1","text":"Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui .","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#3-seguranca","text":"\u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso.","title":"3. Seguran\u00e7a"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_2","text":"A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#4-utilidade","text":"Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente.","title":"4. Utilidade"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_3","text":"O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#5-aprendizagem","text":"\u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto.","title":"5. Aprendizagem"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_4","text":"Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#6-memorizacao","text":"Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas.","title":"6. Memoriza\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_5","text":"O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013.","title":"Bibliografia"},{"location":"analise_de_requisitos/caract-plataforma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Tabela de versionamento"},{"location":"analise_de_requisitos/guia/","text":"Guia de Estilo Introdu\u00e7\u00e3o Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign. Identidade Visual da NeoEnergia Logo O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br Cores H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos Tipografia A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek Bot\u00f5es e \u00edcones Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia An\u00e1lise de estilo Logo Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos Cores Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia Tipografia Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia Bot\u00f5es e \u00edcones Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam. Bibliografia ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#guia-de-estilo","text":"","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#introducao","text":"Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/guia/#identidade-visual-da-neoenergia","text":"","title":"Identidade Visual da NeoEnergia"},{"location":"analise_de_requisitos/guia/#logo","text":"O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores","text":"H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia","text":"A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones","text":"Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#analise-de-estilo","text":"","title":"An\u00e1lise de estilo"},{"location":"analise_de_requisitos/guia/#logo_1","text":"Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores_1","text":"Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia_1","text":"Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones_1","text":"Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam.","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#bibliografia","text":"ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022","title":"Bibliografia"},{"location":"analise_de_requisitos/guia/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/","text":"Perfil do Usu\u00e1rio Introdu\u00e7\u00e3o O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo. Metodologia Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento) Question\u00e1rio Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18 Observa\u00e7\u00f5es Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#perfil-do-usuario","text":"","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#introducao","text":"O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#metodologia","text":"Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento)","title":"Metodologia"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#questionario","text":"Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18","title":"Question\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#observacoes","text":"Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo.","title":"Observa\u00e7\u00f5es"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/","text":"Personas Introdu\u00e7\u00e3o \u2003 Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006) Metodologia \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa. Personas Persona prim\u00e1ria Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Personas"},{"location":"analise_de_requisitos/personas/#personas","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#introducao","text":"Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006)","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/personas/#metodologia","text":"Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa.","title":"Metodologia"},{"location":"analise_de_requisitos/personas/#personas_1","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#persona-primaria","text":"Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona","title":"Persona prim\u00e1ria"},{"location":"analise_de_requisitos/personas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/","text":"Princ\u00edpios Gerais do Projeto Introdu\u00e7\u00e3o Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o. Diretrizes A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro. Conclus\u00e3o Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#principios-gerais-do-projeto","text":"","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#introducao","text":"Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#diretrizes","text":"A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro.","title":"Diretrizes"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#conclusao","text":"Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es.","title":"Conclus\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/","text":"An\u00e1lise Hier\u00e1rquica de Tarefas Introdu\u00e7\u00e3o A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link). Diagramas e tabelas Acessar a conta no site A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA Relat\u00f3rio Nada Consta A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#analise-hierarquica-de-tarefas","text":"","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#introducao","text":"A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link).","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#diagramas-e-tabelas","text":"","title":"Diagramas e tabelas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#acessar-a-conta-no-site","text":"A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA","title":"Acessar a conta no site"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#relatorio-nada-consta","text":"A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA","title":"Relat\u00f3rio Nada Consta"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/","text":"\u00c1rvores de Tarefas Concorrentes Introdu\u00e7\u00e3o Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT Diagrama de An\u00e1lise de Tarefas Concorrentes Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#arvores-de-tarefas-concorrentes","text":"","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#introducao","text":"Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#diagrama-de-analise-de-tarefas-concorrentes","text":"Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta","title":"Diagrama de An\u00e1lise de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/","text":"GOMS Introdu\u00e7\u00e3o Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM. KLM-GOMS KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios. Objetivo: Cadastro na plataforma O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM Objetivo: Entrar na plataforma O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s Objetivo: Recuperar a senha O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s Objetivo: Gerar o relat\u00f3rio de nada consta mensal O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro Objetivo: Gerar o relat\u00f3rio de nada consta anual O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#goms","text":"","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#introducao","text":"Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#klm-goms","text":"KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios.","title":"KLM-GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-cadastro-na-plataforma","text":"O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM","title":"Objetivo: Cadastro na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-entrar-na-plataforma","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s","title":"Objetivo: Entrar na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-recuperar-a-senha","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s","title":"Objetivo: Recuperar a senha"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-mensal","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro","title":"Objetivo: Gerar o relat\u00f3rio de nada consta mensal"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-anual","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s","title":"Objetivo: Gerar o relat\u00f3rio de nada consta anual"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/","text":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Introdu\u00e7\u00e3o Na etapa de requisitos foi realizada pela equipe a an\u00e1lise de tarefas de algumas fun\u00e7\u00f5es do site, com o objetivo de identificar poss\u00edveis melhorias de tarefas existentes no site da Ag\u00eancia Virtual da Neoenergia. O pr\u00f3ximo passo \u00e9 realizar uma avalia\u00e7\u00e3o com a perspectiva de usu\u00e1rios reais do sistema, pois s\u00f3 assim \u00e9 poss\u00edvel ter uma vis\u00e3o mais ampla sobre as tecnologias que os usu\u00e1rios possuem facilidades, al\u00e9m de entender se h\u00e1 alguma tarefa que necessita uma interven\u00e7\u00e3o mais urgente e se h\u00e1 alguma outra fun\u00e7\u00e3o que poderia ser inclu\u00edda no sistema. Coletar essas informa\u00e7\u00f5es \u00e9 essencial para entender os requisitos que o sistema deve ter para realmente ajudar os usu\u00e1rios a atingirem seus objetivos. Metodologia de avalia\u00e7\u00e3o da An\u00e1lise de tarefas A metodologia escolhida foi a de entrevistas com usu\u00e1rios da Ag\u00eancia Virtual. A entrevista \u00e9 um m\u00e9todo investigativo e consegue coletar as informa\u00e7\u00f5es buscadas por meio de uma pesquisa qualitativa. Com a entrevista \u00e9 poss\u00edvel entender com maiores detalhes as dores dos usu\u00e1rios e seus objetivos. Termo de consentimento O termo de consentimento ser\u00e1 entregue ao usu\u00e1rio antes do in\u00edcio Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o. Ferramentas utilizadas na entrevista A entrevista ser\u00e1 realizada e gravada no Microsoft Teams. Perfis dos entrevistados Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia. Roteiro de perguntas N\u00famero Pergunta Poss\u00edvel Resposta 1 Como voc\u00ea se chama? Pergunta discursiva 2 Qual \u00e9 a sua idade? Pergunta discursiva 3 Com o que voc\u00ea trabalha? Pergunta discursiva 4 \u00c9 voc\u00ea quem paga a conta de energia na sua casa? Sim N\u00e3o 5 Caso a resposta anterior tenha sido \"N\u00e3o\" Voc\u00ea j\u00e1 entrou no site a pedido de algu\u00e9m? Porque? Pergunta discursiva 6 Porque voc\u00ea faz o uso do site? Pergunta discursiva 7 Como foi realizar o primeiro acesso a plataforma? Pergunta discursiva 8 Como \u00e9 fazer login na plataforma? Pergunta discursiva 9 Voc\u00ea j\u00e1 esqueceu a sua senha ao tentar realizar o login? Sim N\u00e3o Inconclusivo 9.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Sim\": O que voc\u00ea achou do processo de recuperar a sua senha? Pergunta discursiva 9.2 Caso tenha sido respondida a op\u00e7\u00e3o \"N\u00e3o\": Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 10 Quais s\u00e3o as atividades que voc\u00ea mais realiza no site? Segunda Via de Conta Religa\u00e7\u00e3o Falta de Energia Atualizar Cadastro Alterar Data de Vencimento Gerar Hist\u00f3rico de Consumo Relat\u00f3rio Nada Consta Data da Pr\u00f3xima Leitura 10.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\": Porque voc\u00ea precisou usar a fun\u00e7\u00e3o de gera\u00e7\u00e3o do relat\u00f3rio nada consta? Pergunta discursiva 10.2 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" na quest\u00e3o 10: Voc\u00ea fez o geramento de qual relat\u00f3rio? Anual Mensal Os dois 10.2 Caso n\u00e3o tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 11 Qual \u00e9 a sua maior dificuldade ao utilizar o site? Pergunta discursiva 12 H\u00e1 alguma funcionalidade que voc\u00ea gostaria muito que tivesse no site? Pergunta discursiva Conclus\u00e3o Os dados coletados durante a entrevista ser\u00e3o registrados e utilizados como insumo para o desenvolvimento do projeto. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento da an\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves","title":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#planejamento-da-avaliacao-da-analise-de-tarefas","text":"","title":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#introducao","text":"Na etapa de requisitos foi realizada pela equipe a an\u00e1lise de tarefas de algumas fun\u00e7\u00f5es do site, com o objetivo de identificar poss\u00edveis melhorias de tarefas existentes no site da Ag\u00eancia Virtual da Neoenergia. O pr\u00f3ximo passo \u00e9 realizar uma avalia\u00e7\u00e3o com a perspectiva de usu\u00e1rios reais do sistema, pois s\u00f3 assim \u00e9 poss\u00edvel ter uma vis\u00e3o mais ampla sobre as tecnologias que os usu\u00e1rios possuem facilidades, al\u00e9m de entender se h\u00e1 alguma tarefa que necessita uma interven\u00e7\u00e3o mais urgente e se h\u00e1 alguma outra fun\u00e7\u00e3o que poderia ser inclu\u00edda no sistema. Coletar essas informa\u00e7\u00f5es \u00e9 essencial para entender os requisitos que o sistema deve ter para realmente ajudar os usu\u00e1rios a atingirem seus objetivos.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#metodologia-de-avaliacao-da-analise-de-tarefas","text":"A metodologia escolhida foi a de entrevistas com usu\u00e1rios da Ag\u00eancia Virtual. A entrevista \u00e9 um m\u00e9todo investigativo e consegue coletar as informa\u00e7\u00f5es buscadas por meio de uma pesquisa qualitativa. Com a entrevista \u00e9 poss\u00edvel entender com maiores detalhes as dores dos usu\u00e1rios e seus objetivos.","title":"Metodologia de avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#termo-de-consentimento","text":"O termo de consentimento ser\u00e1 entregue ao usu\u00e1rio antes do in\u00edcio Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o.","title":"Termo de consentimento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#ferramentas-utilizadas-na-entrevista","text":"A entrevista ser\u00e1 realizada e gravada no Microsoft Teams.","title":"Ferramentas utilizadas na entrevista"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#perfis-dos-entrevistados","text":"Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia.","title":"Perfis dos entrevistados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#roteiro-de-perguntas","text":"N\u00famero Pergunta Poss\u00edvel Resposta 1 Como voc\u00ea se chama? Pergunta discursiva 2 Qual \u00e9 a sua idade? Pergunta discursiva 3 Com o que voc\u00ea trabalha? Pergunta discursiva 4 \u00c9 voc\u00ea quem paga a conta de energia na sua casa? Sim N\u00e3o 5 Caso a resposta anterior tenha sido \"N\u00e3o\" Voc\u00ea j\u00e1 entrou no site a pedido de algu\u00e9m? Porque? Pergunta discursiva 6 Porque voc\u00ea faz o uso do site? Pergunta discursiva 7 Como foi realizar o primeiro acesso a plataforma? Pergunta discursiva 8 Como \u00e9 fazer login na plataforma? Pergunta discursiva 9 Voc\u00ea j\u00e1 esqueceu a sua senha ao tentar realizar o login? Sim N\u00e3o Inconclusivo 9.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Sim\": O que voc\u00ea achou do processo de recuperar a sua senha? Pergunta discursiva 9.2 Caso tenha sido respondida a op\u00e7\u00e3o \"N\u00e3o\": Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 10 Quais s\u00e3o as atividades que voc\u00ea mais realiza no site? Segunda Via de Conta Religa\u00e7\u00e3o Falta de Energia Atualizar Cadastro Alterar Data de Vencimento Gerar Hist\u00f3rico de Consumo Relat\u00f3rio Nada Consta Data da Pr\u00f3xima Leitura 10.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\": Porque voc\u00ea precisou usar a fun\u00e7\u00e3o de gera\u00e7\u00e3o do relat\u00f3rio nada consta? Pergunta discursiva 10.2 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" na quest\u00e3o 10: Voc\u00ea fez o geramento de qual relat\u00f3rio? Anual Mensal Os dois 10.2 Caso n\u00e3o tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 11 Qual \u00e9 a sua maior dificuldade ao utilizar o site? Pergunta discursiva 12 H\u00e1 alguma funcionalidade que voc\u00ea gostaria muito que tivesse no site? Pergunta discursiva","title":"Roteiro de perguntas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#conclusao","text":"Os dados coletados durante a entrevista ser\u00e3o registrados e utilizados como insumo para o desenvolvimento do projeto.","title":"Conclus\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento da an\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/","text":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Introdu\u00e7\u00e3o Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o das an\u00e1lises de tarefas, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da avalia\u00e7\u00e3o ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo. T\u00f3picos A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos: Objetivo e escopo da avalia\u00e7\u00e3o Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la. M\u00e9todo Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu. Avaliadores e Participantes Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes. Sum\u00e1rio dos dados \u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios. Problemas encontrados De acordo com as tarefas apresentadas aos participantes, ser\u00e1 feita a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas encontrados. Sugest\u00f5es de corre\u00e7\u00f5es Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 05/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o da an\u00e1lise de tarefas Rafael Xavier Clara Ribeiro","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#planejamento-do-relato-dos-resultados-da-avaliacao-da-analise-de-tarefas","text":"","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#introducao","text":"Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o das an\u00e1lises de tarefas, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da avalia\u00e7\u00e3o ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#topicos","text":"A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos:","title":"T\u00f3picos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#objetivo-e-escopo-da-avaliacao","text":"Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la.","title":"Objetivo e escopo da avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#metodo","text":"Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu.","title":"M\u00e9todo"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#avaliadores-e-participantes","text":"Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes.","title":"Avaliadores e Participantes"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#sumario-dos-dados","text":"\u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios.","title":"Sum\u00e1rio dos dados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#problemas-encontrados","text":"De acordo com as tarefas apresentadas aos participantes, ser\u00e1 feita a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas encontrados.","title":"Problemas encontrados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#sugestoes-de-correcoes","text":"Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es.","title":"Sugest\u00f5es de corre\u00e7\u00f5es"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 05/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o da an\u00e1lise de tarefas Rafael Xavier Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/","text":"Planejamento da avalia\u00e7\u00e3o do Storyboard Introdu\u00e7\u00e3o O Storyboard \u00e9 uma forma de prototipa\u00e7\u00e3o de baixa fidelidade, em que s\u00e3o utilizados desenhos que mostram a evolu\u00e7\u00e3o de um usu\u00e1rio na realiza\u00e7\u00e3o de uma tarefa, indicando um caminho ideal para conclu\u00ed-la com sucesso. Ao ser colocado junto com os cen\u00e1rios, traz uma riqueza de detalhes e informa\u00e7\u00f5es muito maior para o projeto. Suas principais vatangens ao ser executado s\u00e3o: baixo custo para ser desenvolvido, identifica requisitos, f\u00e1cil comunica\u00e7\u00e3o e avalia v\u00e1rios conceitos do design. Nesse documento, ser\u00e1 feita a descri\u00e7\u00e3o de como ser\u00e1 feita a an\u00e1lise e avalia\u00e7\u00e3o dos storyboards desenvolvidos pela equipe. Metodologias de avalia\u00e7\u00e3o dos Storyboards Dentro do nosso escopo de formas de avalia\u00e7\u00f5es, chegamos a um entendimento de que a forma mais adequada para o nosso projeto de se avaliar o storyboard s\u00e3o com entrevistas com os usu\u00e1rios, fazendo uma investiga\u00e7\u00e3o t\u00e9cnica. Assim, come\u00e7amos o processo de estrutura\u00e7\u00e3o montando um termo de consentimento espec\u00edfico para a entrevista, fizemos a an\u00e1lise de ferramentas necess\u00e1rias, definimos um roteiro de perguntas a serem utilizadas para a avalia\u00e7\u00e3o, podendo serem acrescidas mais caso seja de valia para a avalia\u00e7\u00e3o e fizemos a escolha de perfis para a entrevista. Termo de consentimento Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o. Ferramentas utilizadas na avalia\u00e7\u00e3o Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunica\u00e7\u00e3o quanto a grava\u00e7\u00e3o do encontro. Al\u00e9m disso, solicitaremos que o candidato esteja com l\u00e1pis e papel caso deseje fazer algum esbo\u00e7o de seu racioc\u00ednio. Perfis dos entrevistados Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia. Roteiro de perguntas N\u00famero Pergunta Poss\u00edvel Resposta 1 Observando os dois storyboards dessa tarefa como usu\u00e1rio, voc\u00ea identifica que a sequ\u00eancia das atividades seja coerente? SIM N\u00c3O INCONCLUSIVO 1.1 Se a resposta \u00e0 pergunta 1 foi N\u00c3O ou INCONCLUSIVO, pode explicar o motivo da resposta? Pergunta discursiva 2 Voc\u00ea realmente acha que a Ag\u00eancia Virtual NeoEnergia facilita o usu\u00e1rio a realizar a tarefa indicada? SIM N\u00c3O INCONCLUSIVO 2.1 Explique o porque da sua resposta Pergunta discursiva 3 Qual dos storyboards voc\u00ea acha que mais faz sentido com a tarefa a qual eles est\u00e3o indicados? Pergunta discursiva 4 O que voc\u00ea pensa sobre a solu\u00e7\u00e3o da tarefa do sistema da NeoEnergia no Storyboard? Ela est\u00e1 atendendo ou faltam elementos? Pergunta discursiva 5 Voc\u00ea imagina alguma outra forma de solu\u00e7\u00e3o que poderia ser representado pelos Storyboards? Pergunta discursiva Storyboards desenvolvidos Para a realiza\u00e7\u00e3o da avalia\u00e7\u00e3o de storyboard, os membros do grupo desenvolveram storyboards das seguintes atividades do sistema: recupera\u00e7\u00e3o de senha, recupera\u00e7\u00e3o de email e relat\u00f3rio nada consta. Na Figura 1, \u00e9 colocado a recupera\u00e7\u00e3o de senha no contexto em que o usu\u00e1rio entra no site do sistema para realizar uma atividade mas acaba se esquecendo sua senha e precisa iniciar o processo de recupera\u00e7\u00e3o. Figura 1- Storyboard de recupera\u00e7\u00e3o de senha (Lu\u00edza Esteves) Na Figura 2, \u00e9 contada uma hist\u00f3ria de uma pessoa emitindo um relat\u00f3rio nada consta para o aluguel de uma casa. Figura 2- Storyboard de relat\u00f3rio nada consta (Natan Santana) Na Figura 3, \u00e9 colocado a recupera\u00e7\u00e3o de email para que o usu\u00e1rio consiga ter acesso a atividades do sistema Figura 3- Storyboard de recupera\u00e7\u00e3o de email (Rafael Xavier) Na Figura 4, \u00e9 colocado o relat\u00f3rio nada consta para verificar se as contas realmente est\u00e3o pagas Figura 3- Storyboard de relat\u00f3rio nada consta (Clara Ribeiro) Conclus\u00e3o Com todos esse planejamento, esperamos conseguir identificar todos os pontos a serem melhorados e os que est\u00e3o em um bom n\u00edvel para passar para as pr\u00f3ximas etapas do design. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento de storyboard Lu\u00edza Esteves Natan Santana","title":"Planejamento da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#planejamento-da-avaliacao-do-storyboard","text":"","title":"Planejamento da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#introducao","text":"O Storyboard \u00e9 uma forma de prototipa\u00e7\u00e3o de baixa fidelidade, em que s\u00e3o utilizados desenhos que mostram a evolu\u00e7\u00e3o de um usu\u00e1rio na realiza\u00e7\u00e3o de uma tarefa, indicando um caminho ideal para conclu\u00ed-la com sucesso. Ao ser colocado junto com os cen\u00e1rios, traz uma riqueza de detalhes e informa\u00e7\u00f5es muito maior para o projeto. Suas principais vatangens ao ser executado s\u00e3o: baixo custo para ser desenvolvido, identifica requisitos, f\u00e1cil comunica\u00e7\u00e3o e avalia v\u00e1rios conceitos do design. Nesse documento, ser\u00e1 feita a descri\u00e7\u00e3o de como ser\u00e1 feita a an\u00e1lise e avalia\u00e7\u00e3o dos storyboards desenvolvidos pela equipe.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#metodologias-de-avaliacao-dos-storyboards","text":"Dentro do nosso escopo de formas de avalia\u00e7\u00f5es, chegamos a um entendimento de que a forma mais adequada para o nosso projeto de se avaliar o storyboard s\u00e3o com entrevistas com os usu\u00e1rios, fazendo uma investiga\u00e7\u00e3o t\u00e9cnica. Assim, come\u00e7amos o processo de estrutura\u00e7\u00e3o montando um termo de consentimento espec\u00edfico para a entrevista, fizemos a an\u00e1lise de ferramentas necess\u00e1rias, definimos um roteiro de perguntas a serem utilizadas para a avalia\u00e7\u00e3o, podendo serem acrescidas mais caso seja de valia para a avalia\u00e7\u00e3o e fizemos a escolha de perfis para a entrevista.","title":"Metodologias de avalia\u00e7\u00e3o dos Storyboards"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#termo-de-consentimento","text":"Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o.","title":"Termo de consentimento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#ferramentas-utilizadas-na-avaliacao","text":"Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunica\u00e7\u00e3o quanto a grava\u00e7\u00e3o do encontro. Al\u00e9m disso, solicitaremos que o candidato esteja com l\u00e1pis e papel caso deseje fazer algum esbo\u00e7o de seu racioc\u00ednio.","title":"Ferramentas utilizadas na avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#perfis-dos-entrevistados","text":"Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia.","title":"Perfis dos entrevistados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#roteiro-de-perguntas","text":"N\u00famero Pergunta Poss\u00edvel Resposta 1 Observando os dois storyboards dessa tarefa como usu\u00e1rio, voc\u00ea identifica que a sequ\u00eancia das atividades seja coerente? SIM N\u00c3O INCONCLUSIVO 1.1 Se a resposta \u00e0 pergunta 1 foi N\u00c3O ou INCONCLUSIVO, pode explicar o motivo da resposta? Pergunta discursiva 2 Voc\u00ea realmente acha que a Ag\u00eancia Virtual NeoEnergia facilita o usu\u00e1rio a realizar a tarefa indicada? SIM N\u00c3O INCONCLUSIVO 2.1 Explique o porque da sua resposta Pergunta discursiva 3 Qual dos storyboards voc\u00ea acha que mais faz sentido com a tarefa a qual eles est\u00e3o indicados? Pergunta discursiva 4 O que voc\u00ea pensa sobre a solu\u00e7\u00e3o da tarefa do sistema da NeoEnergia no Storyboard? Ela est\u00e1 atendendo ou faltam elementos? Pergunta discursiva 5 Voc\u00ea imagina alguma outra forma de solu\u00e7\u00e3o que poderia ser representado pelos Storyboards? Pergunta discursiva","title":"Roteiro de perguntas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#storyboards-desenvolvidos","text":"Para a realiza\u00e7\u00e3o da avalia\u00e7\u00e3o de storyboard, os membros do grupo desenvolveram storyboards das seguintes atividades do sistema: recupera\u00e7\u00e3o de senha, recupera\u00e7\u00e3o de email e relat\u00f3rio nada consta. Na Figura 1, \u00e9 colocado a recupera\u00e7\u00e3o de senha no contexto em que o usu\u00e1rio entra no site do sistema para realizar uma atividade mas acaba se esquecendo sua senha e precisa iniciar o processo de recupera\u00e7\u00e3o. Figura 1- Storyboard de recupera\u00e7\u00e3o de senha (Lu\u00edza Esteves) Na Figura 2, \u00e9 contada uma hist\u00f3ria de uma pessoa emitindo um relat\u00f3rio nada consta para o aluguel de uma casa. Figura 2- Storyboard de relat\u00f3rio nada consta (Natan Santana) Na Figura 3, \u00e9 colocado a recupera\u00e7\u00e3o de email para que o usu\u00e1rio consiga ter acesso a atividades do sistema Figura 3- Storyboard de recupera\u00e7\u00e3o de email (Rafael Xavier) Na Figura 4, \u00e9 colocado o relat\u00f3rio nada consta para verificar se as contas realmente est\u00e3o pagas Figura 3- Storyboard de relat\u00f3rio nada consta (Clara Ribeiro)","title":"Storyboards desenvolvidos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#conclusao","text":"Com todos esse planejamento, esperamos conseguir identificar todos os pontos a serem melhorados e os que est\u00e3o em um bom n\u00edvel para passar para as pr\u00f3ximas etapas do design.","title":"Conclus\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento de storyboard Lu\u00edza Esteves Natan Santana","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/","text":"Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Introdu\u00e7\u00e3o Nesta p\u00e1gina ser\u00e1 descrita como ser\u00e1 feito o relato dos resultados da valida\u00e7\u00e3o do Storyboard, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da valida\u00e7\u00e3o ser\u00e3o documentadas em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Storyboard\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo. T\u00f3picos A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos: Objetivos da avalia\u00e7\u00e3o Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feito e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la. M\u00e9todo Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu. Avaliadores e Participantes Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes. Sum\u00e1rio dos dados \u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios. Problemas encontrados De acordo com o Storyboard apresentado aos participantes, ser\u00e1 feito a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas de usabilidade encontrados na interface. Sugest\u00f5es de corre\u00e7\u00f5es Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o Natan Santana Matheus Perillo","title":"Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#planejamento-do-relato-dos-resultados-da-valiacao-do-storyboard","text":"","title":"Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#introducao","text":"Nesta p\u00e1gina ser\u00e1 descrita como ser\u00e1 feito o relato dos resultados da valida\u00e7\u00e3o do Storyboard, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da valida\u00e7\u00e3o ser\u00e3o documentadas em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Storyboard\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#topicos","text":"A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos:","title":"T\u00f3picos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#objetivos-da-avaliacao","text":"Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feito e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la.","title":"Objetivos da avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#metodo","text":"Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu.","title":"M\u00e9todo"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#avaliadores-e-participantes","text":"Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes.","title":"Avaliadores e Participantes"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#sumario-dos-dados","text":"\u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios.","title":"Sum\u00e1rio dos dados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#problemas-encontrados","text":"De acordo com o Storyboard apresentado aos participantes, ser\u00e1 feito a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas de usabilidade encontrados na interface.","title":"Problemas encontrados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#sugestoes-de-correcoes","text":"Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es.","title":"Sugest\u00f5es de corre\u00e7\u00f5es"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o Natan Santana Matheus Perillo","title":"Tabela de Versionamento"},{"location":"planejamento/cronograma/","text":"Cronograma de atividades Introdu\u00e7\u00e3o Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es. Etapa 1 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design Etapa 2 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas Etapa 3 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo Etapa 4 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard Lu\u00edza Esteves Natan Santana 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Natan Santana Matheus Perillo 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Rafael Xavier Clara Ribeiro 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas Etapa 5 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Etapa 6 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos Etapa 7 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade Bibliografia 1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#cronograma-de-atividades","text":"","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#introducao","text":"Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/cronograma/#etapa-1","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design","title":"Etapa 1"},{"location":"planejamento/cronograma/#etapa-2","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas","title":"Etapa 2"},{"location":"planejamento/cronograma/#etapa-3","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo","title":"Etapa 3"},{"location":"planejamento/cronograma/#etapa-4","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard Lu\u00edza Esteves Natan Santana 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Natan Santana Matheus Perillo 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Rafael Xavier Clara Ribeiro 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas","title":"Etapa 4"},{"location":"planejamento/cronograma/#etapa-5","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel","title":"Etapa 5"},{"location":"planejamento/cronograma/#etapa-6","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos","title":"Etapa 6"},{"location":"planejamento/cronograma/#etapa-7","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade","title":"Etapa 7"},{"location":"planejamento/cronograma/#bibliografia","text":"1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022.","title":"Bibliografia"},{"location":"planejamento/cronograma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/ferramentas/","text":"Ferramentas Introdu\u00e7\u00e3o As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o. Ferramentas do Projeto Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto Refer\u00eancias FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Ferramentas"},{"location":"planejamento/ferramentas/#ferramentas","text":"","title":"Ferramentas"},{"location":"planejamento/ferramentas/#introducao","text":"As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/ferramentas/#ferramentas-do-projeto","text":"Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto","title":"Ferramentas do Projeto"},{"location":"planejamento/ferramentas/#referencias","text":"FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022","title":"Refer\u00eancias"},{"location":"planejamento/ferramentas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/metodologias/","text":"Metodologias Introdu\u00e7\u00e3o A defini\u00e7\u00e3o de metodologias a serem seguidas durante a execu\u00e7\u00e3o de um projeto \u00e9 de extrema import\u00e2ncia, pois isso que permite entregas r\u00e1pidas, sistem\u00e1ticas e de boa qualidade. Assim, nesta p\u00e1gina ser\u00e3o apresentadas as metodologias utilizadas a fim de organizar o grupo e gerenciar o versionamento do c\u00f3digo de documenta\u00e7\u00e3o a ser desenvolvido ao longo do semestre. Scrum Com a finalidade de assegurar que o grupo fa\u00e7a entregas de forma r\u00e1pida, consistente e sem arriscar a qualidade, foi escolhido a metodologia \u00e1gil Scrum seguindo os seguintes princ\u00edpios: Estabelecimento de prazos: todas as entregas possuem um cronograma detalhado onde pode ser consultado o dia m\u00e1ximo para entrega e revis\u00e3o, o autor da entrega e o revisor. Esse cronograma pode ser consultado aqui . Desenvolvimento iterativo: esta wiki \u00e9 a documenta\u00e7\u00e3o do projeto realizado durante este semestre e ela \u00e9 icrementada a cada etapa (sprint) que possue a dura\u00e7\u00e3o de aproximadamente duas semanas. Reuni\u00f5es de planejamento: no come\u00e7o de cada etapa \u00e9 realizada um reuni\u00e3o de planejamento onde \u00e9 dividido cada tarefa e criada as issues no github. Vale notar que o grupo realizou algumas modifica\u00e7\u00f5es \u00e0 metodologia original a fim de encaixar com o contexto da mat\u00e9ria e disponibilidade dos integrantes do membro: No cronograma, chamamos as sprints do Scrum de Etapas. N\u00e3o fazemos dailys, mas fazemos weeklys que s\u00e3o reuni\u00f5es semanais a fim de verificar como est\u00e1 o andamento das atividades passadas no planejamento. Pol\u00edticas Pol\u00edticas de Branchs As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue. Pol\u00edticas de Commits Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit. Bibliografia COHN, Mike. Desenvolvimento de Software com Scrum: Aplicando M\u00e9todos \u00c1geis com Sucesso. 2021. Dispon\u00edvel em: https://books.google.com.br/books. Acesso em: 31 de jul. de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 31/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de metodologias Natan Santana Lu\u00edza Esteves 04/08/2022 0.2 Corre\u00e7\u00e3o da p\u00e1gina movendo para a pasta de planejamento Natan Santana Lu\u00edza Esteves","title":"Metodologias"},{"location":"planejamento/metodologias/#metodologias","text":"","title":"Metodologias"},{"location":"planejamento/metodologias/#introducao","text":"A defini\u00e7\u00e3o de metodologias a serem seguidas durante a execu\u00e7\u00e3o de um projeto \u00e9 de extrema import\u00e2ncia, pois isso que permite entregas r\u00e1pidas, sistem\u00e1ticas e de boa qualidade. Assim, nesta p\u00e1gina ser\u00e3o apresentadas as metodologias utilizadas a fim de organizar o grupo e gerenciar o versionamento do c\u00f3digo de documenta\u00e7\u00e3o a ser desenvolvido ao longo do semestre.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/metodologias/#scrum","text":"Com a finalidade de assegurar que o grupo fa\u00e7a entregas de forma r\u00e1pida, consistente e sem arriscar a qualidade, foi escolhido a metodologia \u00e1gil Scrum seguindo os seguintes princ\u00edpios: Estabelecimento de prazos: todas as entregas possuem um cronograma detalhado onde pode ser consultado o dia m\u00e1ximo para entrega e revis\u00e3o, o autor da entrega e o revisor. Esse cronograma pode ser consultado aqui . Desenvolvimento iterativo: esta wiki \u00e9 a documenta\u00e7\u00e3o do projeto realizado durante este semestre e ela \u00e9 icrementada a cada etapa (sprint) que possue a dura\u00e7\u00e3o de aproximadamente duas semanas. Reuni\u00f5es de planejamento: no come\u00e7o de cada etapa \u00e9 realizada um reuni\u00e3o de planejamento onde \u00e9 dividido cada tarefa e criada as issues no github. Vale notar que o grupo realizou algumas modifica\u00e7\u00f5es \u00e0 metodologia original a fim de encaixar com o contexto da mat\u00e9ria e disponibilidade dos integrantes do membro: No cronograma, chamamos as sprints do Scrum de Etapas. N\u00e3o fazemos dailys, mas fazemos weeklys que s\u00e3o reuni\u00f5es semanais a fim de verificar como est\u00e1 o andamento das atividades passadas no planejamento.","title":"Scrum"},{"location":"planejamento/metodologias/#politicas","text":"","title":"Pol\u00edticas"},{"location":"planejamento/metodologias/#politicas-de-branchs","text":"As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue.","title":"Pol\u00edticas de Branchs"},{"location":"planejamento/metodologias/#politicas-de-commits","text":"Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit.","title":"Pol\u00edticas de Commits"},{"location":"planejamento/metodologias/#bibliografia","text":"COHN, Mike. Desenvolvimento de Software com Scrum: Aplicando M\u00e9todos \u00c1geis com Sucesso. 2021. Dispon\u00edvel em: https://books.google.com.br/books. Acesso em: 31 de jul. de 2022.","title":"Bibliografia"},{"location":"planejamento/metodologias/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 31/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de metodologias Natan Santana Lu\u00edza Esteves 04/08/2022 0.2 Corre\u00e7\u00e3o da p\u00e1gina movendo para a pasta de planejamento Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/processoDesign/","text":"Processo de Design Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel. Engenharia de Usabilidade de Mayhew Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos. Por que usar o ciclo de vida de Mayhew? O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas. Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Processo de Design"},{"location":"planejamento/processoDesign/#processo-de-design","text":"Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel.","title":"Processo de Design"},{"location":"planejamento/processoDesign/#engenharia-de-usabilidade-de-mayhew","text":"Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos.","title":"Engenharia de Usabilidade de Mayhew"},{"location":"planejamento/processoDesign/#por-que-usar-o-ciclo-de-vida-de-mayhew","text":"O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas.","title":"Por que usar o ciclo de vida de Mayhew?"},{"location":"planejamento/processoDesign/#aplicando-a-usabilidade-de-mayhew-na-avaliacao-do-site","text":"O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento.","title":"Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site"},{"location":"planejamento/processoDesign/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999.","title":"Bibliografia"},{"location":"planejamento/processoDesign/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/sitesAvaliados/","text":"Sites Avaliados Introdu\u00e7\u00e3o Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Sites escolhidos pelos integrantes Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro Caixa Econ\u00f4mica A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Governo de Pernambuco O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Central Expresso O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Rastreamento Correios O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Bras\u00edlia Laser Show O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Ag\u00eancia Virtual NeoEnergia A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Site escolhido Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#sites-avaliados","text":"","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#introducao","text":"Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/sitesAvaliados/#sites-escolhidos-pelos-integrantes","text":"Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro","title":"Sites escolhidos pelos integrantes"},{"location":"planejamento/sitesAvaliados/#caixa-economica","text":"A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/sitesAvaliados/#governo-de-pernambuco","text":"O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Governo de Pernambuco"},{"location":"planejamento/sitesAvaliados/#central-expresso","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Central Expresso"},{"location":"planejamento/sitesAvaliados/#rastreamento-correios","text":"O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Rastreamento Correios"},{"location":"planejamento/sitesAvaliados/#brasilia-laser-show","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Bras\u00edlia Laser Show"},{"location":"planejamento/sitesAvaliados/#agencia-virtual-neoenergia","text":"A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/sitesAvaliados/#site-escolhido","text":"Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal.","title":"Site escolhido"},{"location":"planejamento/sitesAvaliados/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.","title":"Bibliografia"},{"location":"planejamento/sitesAvaliados/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/","text":"Ag\u00eancia Virtual NeoEnergia Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa. Dados Coletados 1. Visibilidade do status do sistema A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1 2. Compatibilidade do sistema com o mundo real Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento 3. Controle do usu\u00e1rio e liberdade Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2 4. Consist\u00eancia e padr\u00f5es Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o. 5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha. 6. Preven\u00e7\u00e3o de erros A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2 7. Reconhecimento em vez de memoriza\u00e7\u00e3o Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5 8. Flexibilidade e efici\u00eancia de uso Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8 9. Est\u00e9tica e design minimalista Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas. 10. Ajuda e documenta\u00e7\u00e3o Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#agencia-virtual-neoenergia","text":"","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#introducao","text":"Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#1-visibilidade-do-status-do-sistema","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1","title":"1. Visibilidade do status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#2-compatibilidade-do-sistema-com-o-mundo-real","text":"Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento","title":"2. Compatibilidade do sistema com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#3-controle-do-usuario-e-liberdade","text":"Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2","title":"3. Controle do usu\u00e1rio e liberdade"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#4-consistencia-e-padroes","text":"Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o.","title":"4. Consist\u00eancia e padr\u00f5es"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#5-ajuda-o-usuario-a-reconhecer-diagnosticar-e-recuperar-se-de-erros","text":"Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha.","title":"5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#6-prevencao-de-erros","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2","title":"6. Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#7-reconhecimento-em-vez-de-memorizacao","text":"Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5","title":"7. Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#8-flexibilidade-e-eficiencia-de-uso","text":"Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8","title":"8. Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#9-estetica-e-design-minimalista","text":"Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas.","title":"9. Est\u00e9tica e design minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#10-ajuda-e-documentacao","text":"Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9","title":"10. Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/","text":"Bras\u00edlia Lazer Show Introdu\u00e7\u00e3o O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo. Problemas Identificados Problema 1 A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Problema 2 A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Problema 3 A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Problema 4 A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Problema 5 A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#brasilia-lazer-show","text":"","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#introducao","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problemas-identificados","text":"","title":"Problemas Identificados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-1","text":"A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1:","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-2","text":"A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2:","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-3","text":"A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3:","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-4","text":"A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4:","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-5","text":"A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5:","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/","text":"Caixa Econ\u00f4mica Introdu\u00e7\u00e3o Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana. Avalia\u00e7\u00e3o Heur\u00edstica A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2 Problema 3 A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3 Problema 4 A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4 Problema 5 A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5 Problema 6 A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6 Problema 7 A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7 Problema 8 A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8 Problema 9 A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#caixa-economica","text":"","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#introducao","text":"Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#avaliacao-heuristica","text":"A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema.","title":"Avalia\u00e7\u00e3o Heur\u00edstica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-3","text":"A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-4","text":"A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-5","text":"A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-6","text":"A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6","title":"Problema 6"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-7","text":"A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7","title":"Problema 7"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-8","text":"A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8","title":"Problema 8"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-9","text":"A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9","title":"Problema 9"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/","text":"Central Expresso Introdu\u00e7\u00e3o O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava. Objetivo O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o. Avalia\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#central-expresso","text":"","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#introducao","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#objetivo","text":"O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o.","title":"Objetivo"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#avaliacao","text":"Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade.","title":"Avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/","text":"Governo Pernambuco Introdu\u00e7\u00e3o Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves. Heur\u00edsticas de Nielsen As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema 1 - Visibilidade e status do sistema Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema. 2 - Compatibilidade com o mundo real Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es. 3 - Consist\u00eancia e padroniza\u00e7\u00e3o Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto. 4 - Projeto est\u00e9tico e minimalista Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos. Objetivos e escopo da avalia\u00e7\u00e3o A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#governo-pernambuco","text":"","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#introducao","text":"Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#heuristicas-de-nielsen","text":"As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Heur\u00edsticas de Nielsen"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#interpretacao-e-identificacao-de-problemas-no-sistema","text":"","title":"Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#1-visibilidade-e-status-do-sistema","text":"Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema.","title":"1 - Visibilidade e status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#2-compatibilidade-com-o-mundo-real","text":"Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es.","title":"2 - Compatibilidade com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#3-consistencia-e-padronizacao","text":"Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto.","title":"3 - Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#4-projeto-estetico-e-minimalista","text":"Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos.","title":"4 - Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#objetivos-e-escopo-da-avaliacao","text":"A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site.","title":"Objetivos e escopo da avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/","text":"Rastreamento Correios Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos. Dados Coletados Visibilidade do estado do sistema Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d. Correspond\u00eancia entre o sistema e o mundo real \u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema. Controle e liberdade do usu\u00e1rio N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido. Consist\u00eancia e padroniza\u00e7\u00e3o A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios. Reconhecimento em vez de memoriza\u00e7\u00e3o O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez. Flexibilidade e efici\u00eancia de uso N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input. Projeto est\u00e9tico e minimalista O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9. Preven\u00e7\u00e3o de erros Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio. Ajuda e documenta\u00e7\u00e3o Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#rastreamento-correios","text":"","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#introducao","text":"Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#visibilidade-do-estado-do-sistema","text":"Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d.","title":"Visibilidade do estado do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#correspondencia-entre-o-sistema-e-o-mundo-real","text":"\u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema.","title":"Correspond\u00eancia entre o sistema e o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#controle-e-liberdade-do-usuario","text":"N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido.","title":"Controle e liberdade do usu\u00e1rio"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#consistencia-e-padronizacao","text":"A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios.","title":"Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#reconhecimento-em-vez-de-memorizacao","text":"O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez.","title":"Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#flexibilidade-e-eficiencia-de-uso","text":"N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input.","title":"Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#projeto-estetico-e-minimalista","text":"O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9.","title":"Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#prevencao-de-erros","text":"Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro.","title":"Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajude-os-usuarios-a-reconhecerem-diagnosticarem-e-se-recuperarem-de-erros","text":"Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio.","title":"Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajuda-e-documentacao","text":"Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs.","title":"Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282.","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"}]} \ No newline at end of file diff --git a/ghpages08/site/sitemap.xml b/ghpages08/site/sitemap.xml index 0bc6294..6a10ab2 100644 --- a/ghpages08/site/sitemap.xml +++ b/ghpages08/site/sitemap.xml @@ -2,102 +2,127 @@ None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 daily None - 2022-08-02 + 2022-08-07 + daily + + + None + 2022-08-07 + daily + + + None + 2022-08-07 + daily + + + None + 2022-08-07 + daily + + + None + 2022-08-07 + daily + + + None + 2022-08-07 daily \ No newline at end of file diff --git a/ghpages08/site/sitemap.xml.gz b/ghpages08/site/sitemap.xml.gz index 2b3b957d1513aff92060d0c1628294a2769f0427..3eb1c82f3095016806262c44f78619375d50c6cf 100644 GIT binary patch literal 213 zcmV;`04o0*#^FTiIF2NksCzjC;(SAcYSSgqHKdFjvDl$h(}Ja&i+4_mi?f>3soOrt z5PMgPoaK4Oii{o7$eL}&R4Z+x?_NJdElu~~bdxM1{gHqJ4mjX|0}eRgfCCQrf8+C! Pz8vBU!9hKYq6`24<-%(7 literal 209 zcmV;?051O@iwFo#3h813|8r?{Wo=<_E_iKh0PWVj4#FT12k^a5LD&n(R1Kw@qmw=W zq1ZNQp#oZcd+A3^SNFSx From 9a578b7c92d2e8f5f7ba16d15f645fefc98b132c Mon Sep 17 00:00:00 2001 From: MatheusPerillo Date: Mon, 22 Aug 2022 20:49:20 -0300 Subject: [PATCH 15/23] =?UTF-8?q?#87=20-=20Cria=C3=A7=C3=A3o=20do=20relato?= =?UTF-8?q?=20da=20verifica=C3=A7=C3=A3o=20Etapa1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_1/relato.md" | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" index 547c60f..280113a 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" @@ -1 +1,46 @@ -# Relato da Verificação da Etapa 1 \ No newline at end of file +# Relato da Verificação da Etapa 1 + +Este documento possui o objetivo de relatar os resultados da verificação feita pelo avaliador Matheus Perillo no dia 22/08/2022 utilizando o método de Inspeção. O checklist encontrado na Tabela 1, desenvolvido no [planejamento da verificação](./planejamento.md) foi utilizado a fim de verificar a conformidade de todo os artefatos da etapa 1 quanto aos requisitos e critérios de aceitação definidos pelo professor André Barros. + +## Sumário dos dados + +| Checklist | Resposta | +| --------- | :--------: | +| Apresenta os Artefatos: Planejamento, Equipe, Sites avaliados, Site escolhido, Ferramentas, Processo de design e Cronograma? | Sim | +| Todos os artefatos possuem texto de introdução? | Sim | +| Todos os artefatos possuem uma tabela de versionamento? | Sim | +| Todos os artefatos possuem um revisor? | Sim | +| Os artefatos possuem as referências bibliográficas? | Sim | +| A equipe é apresentada com nome e foto dos integrantes? | Sim | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | Em Sites avaliados possui uma tabela sem estar identificada | +| Apresenta os sites avaliados? | Sim +| Possui a avaliação individual dos sites? | Sim | +| Na avaliação dos sites é apresentada qual o método de avaliação? | Sim, exceto na avaliação do site Brasília Laser Show | +| A motivação para a escolha do site? | Sim | +| Possui justificativa da escolha do Processo de Design? | Sim | + +
    +

    Tabela 1: Checklist dos pontos avaliados

    +
    + +## Problemas encontrados + +De acordo com as respostas do checklist acima, os seguintes problemas foram encontrados durante a revisão: + +- No artefato Sites avaliados, possui uma tabela indicando os sites avaliados e quem os avaliou e ela não possui uma legenda de identificação e não é chamada no texto; +- No artefato de Avaliação (individual) dos sites, a avaliação do site Brasília Laser Show não apresenta qual foi o metodo de avaliação utilizado, apesar da avaliação seguir uma inspeção sistemática que pode ser identificada como o método de avaliação heurística; + +## Correções + +Depois que foi levantado todos os problemas encontrados, o avaliador Matheus Perillo também realizou as seguinte modificações a fim de corrigí-los: + +- Adição de legenda e chamada no texto da tabela indicadora dos sites avaliados e quem os avaliou; +- Especificação do método de avaliação usado na avaliação do site Brasília Laser Show; + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 22/08/2022 | `0.1` | Criação de relato da verificação da etapa 1 | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) \ No newline at end of file From 6ed2be3dc51c870dd98c5915227ecc72c90ea3a0 Mon Sep 17 00:00:00 2001 From: MatheusPerillo Date: Mon, 22 Aug 2022 20:51:04 -0300 Subject: [PATCH 16/23] =?UTF-8?q?#87=20-=20Corre=C3=A7=C3=A3o=20feita=20pe?= =?UTF-8?q?lo=20relato=20de=20verifica=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../brasilia_lazer.md" | 6 ++++-- ghpages08/docs/planejamento/sitesAvaliados.md | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git "a/ghpages08/docs/planejamento/avalia\303\247\303\265es_dos_sites/brasilia_lazer.md" "b/ghpages08/docs/planejamento/avalia\303\247\303\265es_dos_sites/brasilia_lazer.md" index f3f1bd7..5c73ed9 100644 --- "a/ghpages08/docs/planejamento/avalia\303\247\303\265es_dos_sites/brasilia_lazer.md" +++ "b/ghpages08/docs/planejamento/avalia\303\247\303\265es_dos_sites/brasilia_lazer.md" @@ -8,7 +8,8 @@ em iluminação a laser para eventos especiais. O site da empresa mostra os even que já cobriu em fotos e vídeos, e também, diversas redes para entrar em contato com a mesma.
    -A seguir será apresentado todos os dados coletados por meio da inspeção realizada pelo avaliador Matheus Moreira Lopes Perillo. +
    +Utilizando-se do método de avaliação heurística, a seguir será apresentado todos os dados coletados por meio da inspeção realizada pelo avaliador Matheus Perillo. ## Problemas Identificados @@ -49,4 +50,5 @@ A seguir pode ser verificado o problema 5. A análise detalhada do problema est | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | -| 18/07/2022 | `0.1` | Criação da página de Avaliação do Brasilia Laser Show | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) \ No newline at end of file +| 18/07/2022 | `0.1` | Criação da página de Avaliação do Brasilia Laser Show | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) +| 22/08/2022 | `0.2` | Correção realizada pelo relato de verficação| [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) \ No newline at end of file diff --git a/ghpages08/docs/planejamento/sitesAvaliados.md b/ghpages08/docs/planejamento/sitesAvaliados.md index 81d1ad6..2ca8d4a 100644 --- a/ghpages08/docs/planejamento/sitesAvaliados.md +++ b/ghpages08/docs/planejamento/sitesAvaliados.md @@ -2,7 +2,7 @@ ## Introdução
    -

    Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas análises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avaliações foram feitas baseadas nas 10 heurísticas de Nielsen:

    +

    Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas análises de 6 sites diferentes, encontrados na Tabela 1, a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avaliações foram feitas baseadas nas 10 heurísticas de Nielsen:

      @@ -51,6 +51,10 @@ | Brasília Laser Show | Matheus Perillo | | Agência Virtual NeoEnergia | Clara Ribeiro | +
      +

      Tabela 1: Sites escolhidos pelos integrantes

      +
      + ## Caixa Econômica @@ -183,5 +187,6 @@ Diante dos sites analisados individualmente por cada integrante da equipe, fizem | 03/07/2022 | `0.1` | Criação da página de Sites Avaliados | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 04/07/2022 | `0.2` | Adição de tabela de versionamento | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 07/07/2022 | `0.3` | Inserção do restante dos sites avaliados| [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) -| 18/07/2022 | `0.4` | Adição dos links para avaliações individuais dos sites| [Natan Santana](https://github.com/Neitan2001) | +| 18/07/2022 | `0.4` | Adição dos links para avaliações individuais dos sites| [Natan Santana](https://github.com/Neitan2001) | +| 22/08/2022 | `0.5` | Correção realizada pelo relato de verficação| [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) From 4248ef2bc6890b89f55bfbafca8daa3c07d37f1a Mon Sep 17 00:00:00 2001 From: Natan Santana Date: Mon, 22 Aug 2022 22:42:21 -0300 Subject: [PATCH 17/23] resolvendo conflito --- ghpages08/site/404.html | 857 --- ghpages08/site/assets/images/favicon.png | Bin 1870 -> 0 bytes .../javascripts/lunr/min/lunr.ar.min.js | 1 - .../javascripts/lunr/min/lunr.da.min.js | 18 - .../javascripts/lunr/min/lunr.de.min.js | 18 - .../javascripts/lunr/min/lunr.du.min.js | 18 - .../javascripts/lunr/min/lunr.es.min.js | 18 - .../javascripts/lunr/min/lunr.fi.min.js | 18 - .../javascripts/lunr/min/lunr.fr.min.js | 18 - .../javascripts/lunr/min/lunr.hi.min.js | 1 - .../javascripts/lunr/min/lunr.hu.min.js | 18 - .../javascripts/lunr/min/lunr.it.min.js | 18 - .../javascripts/lunr/min/lunr.ja.min.js | 1 - .../javascripts/lunr/min/lunr.jp.min.js | 1 - .../javascripts/lunr/min/lunr.multi.min.js | 1 - .../javascripts/lunr/min/lunr.nl.min.js | 18 - .../javascripts/lunr/min/lunr.no.min.js | 18 - .../javascripts/lunr/min/lunr.pt.min.js | 18 - .../javascripts/lunr/min/lunr.ro.min.js | 18 - .../javascripts/lunr/min/lunr.ru.min.js | 18 - .../lunr/min/lunr.stemmer.support.min.js | 1 - .../javascripts/lunr/min/lunr.sv.min.js | 18 - .../javascripts/lunr/min/lunr.th.min.js | 1 - .../javascripts/lunr/min/lunr.tr.min.js | 18 - .../javascripts/lunr/min/lunr.vi.min.js | 1 - .../javascripts/lunr/min/lunr.zh.min.js | 1 - .../site/assets/javascripts/lunr/tinyseg.js | 206 - .../site/assets/javascripts/lunr/wordcut.js | 6708 ----------------- .../workers/search.b97dbffb.min.js | 48 - .../workers/search.b97dbffb.min.js.map | 8 - ghpages08/site/assets/logo.png | Bin 23376 -> 0 bytes .../assets/stylesheets/main.1d29e8d0.min.css | 1 - .../stylesheets/main.1d29e8d0.min.css.map | 1 - .../stylesheets/palette.cbb835fc.min.css | 1 - .../stylesheets/palette.cbb835fc.min.css.map | 1 - ghpages08/site/index.html | 1052 --- ghpages08/site/search/search_index.json | 1 - ghpages08/site/sitemap.xml | 128 - ghpages08/site/sitemap.xml.gz | Bin 213 -> 0 bytes 39 files changed, 9291 deletions(-) delete mode 100644 ghpages08/site/404.html delete mode 100644 ghpages08/site/assets/images/favicon.png delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.ar.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.da.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.de.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.du.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.es.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.fi.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.fr.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.hi.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.hu.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.it.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.ja.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.jp.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.multi.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.nl.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.no.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.pt.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.ro.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.ru.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.sv.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.th.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.tr.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.vi.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/min/lunr.zh.min.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/tinyseg.js delete mode 100644 ghpages08/site/assets/javascripts/lunr/wordcut.js delete mode 100644 ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js delete mode 100644 ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js.map delete mode 100644 ghpages08/site/assets/logo.png delete mode 100644 ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css delete mode 100644 ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css.map delete mode 100644 ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css delete mode 100644 ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css.map delete mode 100644 ghpages08/site/index.html delete mode 100644 ghpages08/site/search/search_index.json delete mode 100644 ghpages08/site/sitemap.xml delete mode 100644 ghpages08/site/sitemap.xml.gz diff --git a/ghpages08/site/404.html b/ghpages08/site/404.html deleted file mode 100644 index 72b2beb..0000000 --- a/ghpages08/site/404.html +++ /dev/null @@ -1,857 +0,0 @@ - - - - - - - - - - - - - - - - Agência Virtual Neoenergia Brasília - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      -
      - -
      - - - - -
      - - -
      - -
      - - - - - - -
      -
      - - - -
      -
      -
      - - - - -
      -
      -
      - - - -
      -
      -
      - - - - - -
      -
      -
      - - -
      -
      - -

      404 - Not found

      - -
      - -
      -
      - -
      - - - -
      -
      -
      -
      - - - - - - - - \ No newline at end of file diff --git a/ghpages08/site/assets/images/favicon.png b/ghpages08/site/assets/images/favicon.png deleted file mode 100644 index 1cf13b9f9d978896599290a74f77d5dbe7d1655c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.ar.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.ar.min.js deleted file mode 100644 index 248ddc5..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.ar.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.de.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.de.min.js deleted file mode 100644 index f3b5c10..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.de.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `German` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!v.eq_s(1,e)||(v.ket=v.cursor,!v.in_grouping(p,97,252)))&&(v.slice_from(r),v.cursor=n,!0)}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,l=m;var e=v.cursor+3;0<=e&&e<=v.limit&&(d=e,s()||(m=v.cursor,m=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return l<=v.cursor}function a(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,(e=v.find_among_b(w,7))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(f,4))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(_,8))&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var d,l,m,h=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],w=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,a(),v.cursor=v.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.du.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.du.min.js deleted file mode 100644 index 49a0f3f..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.du.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Dutch` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e,r,i,o=C.cursor;;){if(C.bra=C.cursor,e=C.find_among(b,11))switch(C.ket=C.cursor,e){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(r=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=r);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=r;else if(n(r))break}else if(n(r))break}function n(e){return C.cursor=e,e>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,f=_,t()||(_=C.cursor,_<3&&(_=3),t()||(f=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var e;;)if(C.bra=C.cursor,e=C.find_among(p,3))switch(C.ket=C.cursor,e){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return f<=C.cursor}function a(){var e=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-e,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var e;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.slice_del(),w=!0,a())))}function m(){var e;u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.eq_s_b(3,"gem")||(C.cursor=C.limit-e,C.slice_del(),a())))}function d(){var e,r,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,e=C.find_among_b(h,5))switch(C.bra=C.cursor,e){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(z,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(r=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-r,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,e=C.find_among_b(k,6))switch(C.bra=C.cursor,e){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(j,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var f,_,w,b=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],p=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],g=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],h=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],k=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],v=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(e){C.setCurrent(e)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var r=C.cursor;return e(),C.cursor=r,o(),C.limit_backward=r,C.cursor=C.limit,d(),C.cursor=C.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.es.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.es.min.js deleted file mode 100644 index 2989d34..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.es.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Spanish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=function(){var s=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(){if(A.out_grouping(x,97,252)){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}return!0}function n(){if(A.in_grouping(x,97,252)){var s=A.cursor;if(e()){if(A.cursor=s,!A.in_grouping(x,97,252))return!0;for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}}return!1}return!0}function i(){var s,r=A.cursor;if(n()){if(A.cursor=r,!A.out_grouping(x,97,252))return;if(s=A.cursor,e()){if(A.cursor=s,!A.in_grouping(x,97,252)||A.cursor>=A.limit)return;A.cursor++}}g=A.cursor}function a(){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}return!0}function t(){var e=A.cursor;g=A.limit,p=g,v=g,i(),A.cursor=e,a()&&(p=A.cursor,a()&&(v=A.cursor))}function o(){for(var e;;){if(A.bra=A.cursor,e=A.find_among(k,6))switch(A.ket=A.cursor,e){case 1:A.slice_from("a");continue;case 2:A.slice_from("e");continue;case 3:A.slice_from("i");continue;case 4:A.slice_from("o");continue;case 5:A.slice_from("u");continue;case 6:if(A.cursor>=A.limit)break;A.cursor++;continue}break}}function u(){return g<=A.cursor}function w(){return p<=A.cursor}function c(){return v<=A.cursor}function m(){var e;if(A.ket=A.cursor,A.find_among_b(y,13)&&(A.bra=A.cursor,(e=A.find_among_b(q,11))&&u()))switch(e){case 1:A.bra=A.cursor,A.slice_from("iendo");break;case 2:A.bra=A.cursor,A.slice_from("ando");break;case 3:A.bra=A.cursor,A.slice_from("ar");break;case 4:A.bra=A.cursor,A.slice_from("er");break;case 5:A.bra=A.cursor,A.slice_from("ir");break;case 6:A.slice_del();break;case 7:A.eq_s_b(1,"u")&&A.slice_del()}}function l(e,s){if(!c())return!0;A.slice_del(),A.ket=A.cursor;var r=A.find_among_b(e,s);return r&&(A.bra=A.cursor,1==r&&c()&&A.slice_del()),!1}function d(e){return!c()||(A.slice_del(),A.ket=A.cursor,A.eq_s_b(2,e)&&(A.bra=A.cursor,c()&&A.slice_del()),!1)}function b(){var e;if(A.ket=A.cursor,e=A.find_among_b(S,46)){switch(A.bra=A.cursor,e){case 1:if(!c())return!1;A.slice_del();break;case 2:if(d("ic"))return!1;break;case 3:if(!c())return!1;A.slice_from("log");break;case 4:if(!c())return!1;A.slice_from("u");break;case 5:if(!c())return!1;A.slice_from("ente");break;case 6:if(!w())return!1;A.slice_del(),A.ket=A.cursor,e=A.find_among_b(C,4),e&&(A.bra=A.cursor,c()&&(A.slice_del(),1==e&&(A.ket=A.cursor,A.eq_s_b(2,"at")&&(A.bra=A.cursor,c()&&A.slice_del()))));break;case 7:if(l(P,3))return!1;break;case 8:if(l(F,3))return!1;break;case 9:if(d("at"))return!1}return!0}return!1}function f(){var e,s;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(W,12),A.limit_backward=s,e)){if(A.bra=A.cursor,1==e){if(!A.eq_s_b(1,"u"))return!1;A.slice_del()}return!0}return!1}function _(){var e,s,r,n;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(L,96),A.limit_backward=s,e))switch(A.bra=A.cursor,e){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"u")?(n=A.limit-A.cursor,A.eq_s_b(1,"g")?A.cursor=A.limit-n:A.cursor=A.limit-r):A.cursor=A.limit-r,A.bra=A.cursor;case 2:A.slice_del()}}function h(){var e,s;if(A.ket=A.cursor,e=A.find_among_b(z,8))switch(A.bra=A.cursor,e){case 1:u()&&A.slice_del();break;case 2:u()&&(A.slice_del(),A.ket=A.cursor,A.eq_s_b(1,"u")&&(A.bra=A.cursor,s=A.limit-A.cursor,A.eq_s_b(1,"g")&&(A.cursor=A.limit-s,u()&&A.slice_del())))}}var v,p,g,k=[new s("",-1,6),new s("á",0,1),new s("é",0,2),new s("í",0,3),new s("ó",0,4),new s("ú",0,5)],y=[new s("la",-1,-1),new s("sela",0,-1),new s("le",-1,-1),new s("me",-1,-1),new s("se",-1,-1),new s("lo",-1,-1),new s("selo",5,-1),new s("las",-1,-1),new s("selas",7,-1),new s("les",-1,-1),new s("los",-1,-1),new s("selos",10,-1),new s("nos",-1,-1)],q=[new s("ando",-1,6),new s("iendo",-1,6),new s("yendo",-1,7),new s("ándo",-1,2),new s("iéndo",-1,1),new s("ar",-1,6),new s("er",-1,6),new s("ir",-1,6),new s("ár",-1,3),new s("ér",-1,4),new s("ír",-1,5)],C=[new s("ic",-1,-1),new s("ad",-1,-1),new s("os",-1,-1),new s("iv",-1,1)],P=[new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,1)],F=[new s("ic",-1,1),new s("abil",-1,1),new s("iv",-1,1)],S=[new s("ica",-1,1),new s("ancia",-1,2),new s("encia",-1,5),new s("adora",-1,2),new s("osa",-1,1),new s("ista",-1,1),new s("iva",-1,9),new s("anza",-1,1),new s("logía",-1,3),new s("idad",-1,8),new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,2),new s("mente",-1,7),new s("amente",13,6),new s("ación",-1,2),new s("ución",-1,4),new s("ico",-1,1),new s("ismo",-1,1),new s("oso",-1,1),new s("amiento",-1,1),new s("imiento",-1,1),new s("ivo",-1,9),new s("ador",-1,2),new s("icas",-1,1),new s("ancias",-1,2),new s("encias",-1,5),new s("adoras",-1,2),new s("osas",-1,1),new s("istas",-1,1),new s("ivas",-1,9),new s("anzas",-1,1),new s("logías",-1,3),new s("idades",-1,8),new s("ables",-1,1),new s("ibles",-1,1),new s("aciones",-1,2),new s("uciones",-1,4),new s("adores",-1,2),new s("antes",-1,2),new s("icos",-1,1),new s("ismos",-1,1),new s("osos",-1,1),new s("amientos",-1,1),new s("imientos",-1,1),new s("ivos",-1,9)],W=[new s("ya",-1,1),new s("ye",-1,1),new s("yan",-1,1),new s("yen",-1,1),new s("yeron",-1,1),new s("yendo",-1,1),new s("yo",-1,1),new s("yas",-1,1),new s("yes",-1,1),new s("yais",-1,1),new s("yamos",-1,1),new s("yó",-1,1)],L=[new s("aba",-1,2),new s("ada",-1,2),new s("ida",-1,2),new s("ara",-1,2),new s("iera",-1,2),new s("ía",-1,2),new s("aría",5,2),new s("ería",5,2),new s("iría",5,2),new s("ad",-1,2),new s("ed",-1,2),new s("id",-1,2),new s("ase",-1,2),new s("iese",-1,2),new s("aste",-1,2),new s("iste",-1,2),new s("an",-1,2),new s("aban",16,2),new s("aran",16,2),new s("ieran",16,2),new s("ían",16,2),new s("arían",20,2),new s("erían",20,2),new s("irían",20,2),new s("en",-1,1),new s("asen",24,2),new s("iesen",24,2),new s("aron",-1,2),new s("ieron",-1,2),new s("arán",-1,2),new s("erán",-1,2),new s("irán",-1,2),new s("ado",-1,2),new s("ido",-1,2),new s("ando",-1,2),new s("iendo",-1,2),new s("ar",-1,2),new s("er",-1,2),new s("ir",-1,2),new s("as",-1,2),new s("abas",39,2),new s("adas",39,2),new s("idas",39,2),new s("aras",39,2),new s("ieras",39,2),new s("ías",39,2),new s("arías",45,2),new s("erías",45,2),new s("irías",45,2),new s("es",-1,1),new s("ases",49,2),new s("ieses",49,2),new s("abais",-1,2),new s("arais",-1,2),new s("ierais",-1,2),new s("íais",-1,2),new s("aríais",55,2),new s("eríais",55,2),new s("iríais",55,2),new s("aseis",-1,2),new s("ieseis",-1,2),new s("asteis",-1,2),new s("isteis",-1,2),new s("áis",-1,2),new s("éis",-1,1),new s("aréis",64,2),new s("eréis",64,2),new s("iréis",64,2),new s("ados",-1,2),new s("idos",-1,2),new s("amos",-1,2),new s("ábamos",70,2),new s("áramos",70,2),new s("iéramos",70,2),new s("íamos",70,2),new s("aríamos",74,2),new s("eríamos",74,2),new s("iríamos",74,2),new s("emos",-1,1),new s("aremos",78,2),new s("eremos",78,2),new s("iremos",78,2),new s("ásemos",78,2),new s("iésemos",78,2),new s("imos",-1,2),new s("arás",-1,2),new s("erás",-1,2),new s("irás",-1,2),new s("ís",-1,2),new s("ará",-1,2),new s("erá",-1,2),new s("irá",-1,2),new s("aré",-1,2),new s("eré",-1,2),new s("iré",-1,2),new s("ió",-1,2)],z=[new s("a",-1,1),new s("e",-1,2),new s("o",-1,1),new s("os",-1,1),new s("á",-1,1),new s("é",-1,2),new s("í",-1,1),new s("ó",-1,1)],x=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],A=new r;this.setCurrent=function(e){A.setCurrent(e)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return t(),A.limit_backward=e,A.cursor=A.limit,m(),A.cursor=A.limit,b()||(A.cursor=A.limit,f()||(A.cursor=A.limit,_())),A.cursor=A.limit,h(),A.cursor=A.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.fi.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.fi.min.js deleted file mode 100644 index 29f5dfc..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.fi.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Finnish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=function(){var e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){function i(){f=A.limit,d=f,n()||(f=A.cursor,n()||(d=A.cursor))}function n(){for(var i;;){if(i=A.cursor,A.in_grouping(W,97,246))break;if(A.cursor=i,i>=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(W,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(h,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(v,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(p,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(q,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(C,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(W,97,246)||!A.out_grouping_b(W,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(P,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(F,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(W,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(W,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(W,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,h=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("pä",-1,1),new e("kö",-1,1)],p=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("nä",-1,-1),new e("ssä",-1,-1),new e("tä",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],v=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],q=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],C=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("nä",22,-1),new e("ssä",22,-1),new e("tä",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],P=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],F=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],W=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return"function"==typeof i.update?i.update(function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}):(n.setCurrent(i),n.stem(),n.getCurrent())}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.fr.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.fr.min.js deleted file mode 100644 index 68cd009..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.fr.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `French` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return!(!W.eq_s(1,e)||(W.ket=W.cursor,!W.in_grouping(F,97,251)))&&(W.slice_from(r),W.cursor=s,!0)}function i(e,r,s){return!!W.eq_s(1,e)&&(W.ket=W.cursor,W.slice_from(r),W.cursor=s,!0)}function n(){for(var r,s;;){if(r=W.cursor,W.in_grouping(F,97,251)){if(W.bra=W.cursor,s=W.cursor,e("u","U",r))continue;if(W.cursor=s,e("i","I",r))continue;if(W.cursor=s,i("y","Y",r))continue}if(W.cursor=r,W.bra=r,!e("y","Y",r)){if(W.cursor=r,W.eq_s(1,"q")&&(W.bra=W.cursor,i("u","U",r)))continue;if(W.cursor=r,r>=W.limit)return;W.cursor++}}}function t(){for(;!W.in_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}for(;!W.out_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}return!1}function u(){var e=W.cursor;if(q=W.limit,g=q,p=q,W.in_grouping(F,97,251)&&W.in_grouping(F,97,251)&&W.cursor=W.limit){W.cursor=q;break}W.cursor++}while(!W.in_grouping(F,97,251))}q=W.cursor,W.cursor=e,t()||(g=W.cursor,t()||(p=W.cursor))}function o(){for(var e,r;;){if(r=W.cursor,W.bra=r,!(e=W.find_among(h,4)))break;switch(W.ket=W.cursor,e){case 1:W.slice_from("i");break;case 2:W.slice_from("u");break;case 3:W.slice_from("y");break;case 4:if(W.cursor>=W.limit)return;W.cursor++}}}function c(){return q<=W.cursor}function a(){return g<=W.cursor}function l(){return p<=W.cursor}function w(){var e,r;if(W.ket=W.cursor,e=W.find_among_b(C,43)){switch(W.bra=W.cursor,e){case 1:if(!l())return!1;W.slice_del();break;case 2:if(!l())return!1;W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")&&(W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU"));break;case 3:if(!l())return!1;W.slice_from("log");break;case 4:if(!l())return!1;W.slice_from("u");break;case 5:if(!l())return!1;W.slice_from("ent");break;case 6:if(!c())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(z,6))switch(W.bra=W.cursor,e){case 1:l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&W.slice_del()));break;case 2:l()?W.slice_del():a()&&W.slice_from("eux");break;case 3:l()&&W.slice_del();break;case 4:c()&&W.slice_from("i")}break;case 7:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(y,3))switch(W.bra=W.cursor,e){case 1:l()?W.slice_del():W.slice_from("abl");break;case 2:l()?W.slice_del():W.slice_from("iqU");break;case 3:l()&&W.slice_del()}break;case 8:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")))){W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU");break}break;case 9:W.slice_from("eau");break;case 10:if(!a())return!1;W.slice_from("al");break;case 11:if(l())W.slice_del();else{if(!a())return!1;W.slice_from("eux")}break;case 12:if(!a()||!W.out_grouping_b(F,97,251))return!1;W.slice_del();break;case 13:return c()&&W.slice_from("ant"),!1;case 14:return c()&&W.slice_from("ent"),!1;case 15:return r=W.limit-W.cursor,W.in_grouping_b(F,97,251)&&c()&&(W.cursor=W.limit-r,W.slice_del()),!1}return!0}return!1}function f(){var e,r;if(W.cursor=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.hi.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.hi.min.js deleted file mode 100644 index 7dbc414..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.hi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.hu.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.hu.min.js deleted file mode 100644 index ed9d909..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.hu.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Hungarian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.it.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.it.min.js deleted file mode 100644 index 344b6a3..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.it.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Italian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor=x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.ja.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.ja.min.js deleted file mode 100644 index 5f254eb..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.ja.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.no.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.no.min.js deleted file mode 100644 index 92bc7e4..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.no.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Norwegian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.pt.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.pt.min.js deleted file mode 100644 index 6c16996..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.pt.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Portuguese` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.ro.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.ro.min.js deleted file mode 100644 index 7277140..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.ro.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Romanian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.ru.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.ru.min.js deleted file mode 100644 index 186cc48..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.ru.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Russian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.sv.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.sv.min.js deleted file mode 100644 index 3e5eb64..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.sv.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Swedish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.th.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.th.min.js deleted file mode 100644 index dee3aac..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.th.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.tr.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.tr.min.js deleted file mode 100644 index 563f6ec..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.tr.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Turkish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=function(){var i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){function r(r,i,e){for(;;){var n=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(r,i,e)){Dr.cursor=Dr.limit-n;break}if(Dr.cursor=Dr.limit-n,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function n(){var i,e;i=Dr.limit-Dr.cursor,r(Wr,97,305);for(var n=0;nDr.limit_backward&&(Dr.cursor--,e=Dr.limit-Dr.cursor,i()))?(Dr.cursor=Dr.limit-e,!0):(Dr.cursor=Dr.limit-n,r()?(Dr.cursor=Dr.limit-n,!1):(Dr.cursor=Dr.limit-n,!(Dr.cursor<=Dr.limit_backward)&&(Dr.cursor--,!!i()&&(Dr.cursor=Dr.limit-n,!0))))}function u(r){return t(r,function(){return Dr.in_grouping_b(Wr,97,305)})}function o(){return u(function(){return Dr.eq_s_b(1,"n")})}function s(){return u(function(){return Dr.eq_s_b(1,"s")})}function c(){return u(function(){return Dr.eq_s_b(1,"y")})}function l(){return t(function(){return Dr.in_grouping_b(Lr,105,305)},function(){return Dr.out_grouping_b(Wr,97,305)})}function a(){return Dr.find_among_b(ur,10)&&l()}function m(){return n()&&Dr.in_grouping_b(Lr,105,305)&&s()}function d(){return Dr.find_among_b(or,2)}function f(){return n()&&Dr.in_grouping_b(Lr,105,305)&&c()}function b(){return n()&&Dr.find_among_b(sr,4)}function w(){return n()&&Dr.find_among_b(cr,4)&&o()}function _(){return n()&&Dr.find_among_b(lr,2)&&c()}function k(){return n()&&Dr.find_among_b(ar,2)}function p(){return n()&&Dr.find_among_b(mr,4)}function g(){return n()&&Dr.find_among_b(dr,2)}function y(){return n()&&Dr.find_among_b(fr,4)}function z(){return n()&&Dr.find_among_b(br,2)}function v(){return n()&&Dr.find_among_b(wr,2)&&c()}function h(){return Dr.eq_s_b(2,"ki")}function q(){return n()&&Dr.find_among_b(_r,2)&&o()}function C(){return n()&&Dr.find_among_b(kr,4)&&c()}function P(){return n()&&Dr.find_among_b(pr,4)}function F(){return n()&&Dr.find_among_b(gr,4)&&c()}function S(){return Dr.find_among_b(yr,4)}function W(){return n()&&Dr.find_among_b(zr,2)}function L(){return n()&&Dr.find_among_b(vr,4)}function x(){return n()&&Dr.find_among_b(hr,8)}function A(){return Dr.find_among_b(qr,2)}function E(){return n()&&Dr.find_among_b(Cr,32)&&c()}function j(){return Dr.find_among_b(Pr,8)&&c()}function T(){return n()&&Dr.find_among_b(Fr,4)&&c()}function Z(){return Dr.eq_s_b(3,"ken")&&c()}function B(){var r=Dr.limit-Dr.cursor;return!(T()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,Z()))))}function D(){if(A()){var r=Dr.limit-Dr.cursor;if(S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T())return!1}return!0}function G(){if(W()){Dr.bra=Dr.cursor,Dr.slice_del();var r=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,x()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,T()||(Dr.cursor=Dr.limit-r)))),nr=!1,!1}return!0}function H(){if(!L())return!0;var r=Dr.limit-Dr.cursor;return!E()&&(Dr.cursor=Dr.limit-r,!j())}function I(){var r,i=Dr.limit-Dr.cursor;return!(S()||(Dr.cursor=Dr.limit-i,F()||(Dr.cursor=Dr.limit-i,P()||(Dr.cursor=Dr.limit-i,C()))))||(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,T()||(Dr.cursor=Dr.limit-r),!1)}function J(){var r,i=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,nr=!0,B()&&(Dr.cursor=Dr.limit-i,D()&&(Dr.cursor=Dr.limit-i,G()&&(Dr.cursor=Dr.limit-i,H()&&(Dr.cursor=Dr.limit-i,I()))))){if(Dr.cursor=Dr.limit-i,!x())return;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T()||(Dr.cursor=Dr.limit-r)}Dr.bra=Dr.cursor,Dr.slice_del()}function K(){var r,i,e,n;if(Dr.ket=Dr.cursor,h()){if(r=Dr.limit-Dr.cursor,p())return Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,a()&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))),!0;if(Dr.cursor=Dr.limit-r,w()){if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,e=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-e,!m()&&(Dr.cursor=Dr.limit-e,!K())))return!0;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}return!0}if(Dr.cursor=Dr.limit-r,g()){if(n=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-n,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-n,!K())return!1;return!0}}return!1}function M(r){if(Dr.ket=Dr.cursor,!g()&&(Dr.cursor=Dr.limit-r,!k()))return!1;var i=Dr.limit-Dr.cursor;if(d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-i,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-i,!K())return!1;return!0}function N(r){if(Dr.ket=Dr.cursor,!z()&&(Dr.cursor=Dr.limit-r,!b()))return!1;var i=Dr.limit-Dr.cursor;return!(!m()&&(Dr.cursor=Dr.limit-i,!d()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)}function O(){var r,i=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,!(!w()&&(Dr.cursor=Dr.limit-i,!v()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,!(!W()||(Dr.bra=Dr.cursor,Dr.slice_del(),!K()))||(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!(a()||(Dr.cursor=Dr.limit-r,m()||(Dr.cursor=Dr.limit-r,K())))||(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)))}function Q(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,!p()&&(Dr.cursor=Dr.limit-e,!f()&&(Dr.cursor=Dr.limit-e,!_())))return!1;if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,a())Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()||(Dr.cursor=Dr.limit-i);else if(Dr.cursor=Dr.limit-r,!W())return!0;return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,K(),!0}function R(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,W())return Dr.bra=Dr.cursor,Dr.slice_del(),void K();if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,q())if(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-r,!m())){if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!W())return;if(Dr.bra=Dr.cursor,Dr.slice_del(),!K())return}Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}else if(Dr.cursor=Dr.limit-e,!M(e)&&(Dr.cursor=Dr.limit-e,!N(e))){if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,y())return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,i=Dr.limit-Dr.cursor,void(a()?(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())):(Dr.cursor=Dr.limit-i,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,K())));if(Dr.cursor=Dr.limit-e,!O()){if(Dr.cursor=Dr.limit-e,d())return Dr.bra=Dr.cursor,void Dr.slice_del();Dr.cursor=Dr.limit-e,K()||(Dr.cursor=Dr.limit-e,Q()||(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,(a()||(Dr.cursor=Dr.limit-e,m()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))))}}}function U(){var r;if(Dr.ket=Dr.cursor,r=Dr.find_among_b(Sr,4))switch(Dr.bra=Dr.cursor,r){case 1:Dr.slice_from("p");break;case 2:Dr.slice_from("ç");break;case 3:Dr.slice_from("t");break;case 4:Dr.slice_from("k")}}function V(){for(;;){var r=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(Wr,97,305)){Dr.cursor=Dr.limit-r;break}if(Dr.cursor=Dr.limit-r,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function X(r,i,e){if(Dr.cursor=Dr.limit-r,V()){var n=Dr.limit-Dr.cursor;if(!Dr.eq_s_b(1,i)&&(Dr.cursor=Dr.limit-n,!Dr.eq_s_b(1,e)))return!0;Dr.cursor=Dr.limit-r;var t=Dr.cursor;return Dr.insert(Dr.cursor,Dr.cursor,e),Dr.cursor=t,!1}return!0}function Y(){var r=Dr.limit-Dr.cursor;(Dr.eq_s_b(1,"d")||(Dr.cursor=Dr.limit-r,Dr.eq_s_b(1,"g")))&&X(r,"a","ı")&&X(r,"e","i")&&X(r,"o","u")&&X(r,"ö","ü")}function $(){for(var r,i=Dr.cursor,e=2;;){for(r=Dr.cursor;!Dr.in_grouping(Wr,97,305);){if(Dr.cursor>=Dr.limit)return Dr.cursor=r,!(e>0)&&(Dr.cursor=i,!0);Dr.cursor++}e--}}function rr(r,i,e){for(;!Dr.eq_s(i,e);){if(Dr.cursor>=Dr.limit)return!0;Dr.cursor++}return(tr=i)!=Dr.limit||(Dr.cursor=r,!1)}function ir(){var r=Dr.cursor;return!rr(r,2,"ad")||(Dr.cursor=r,!rr(r,5,"soyad"))}function er(){var r=Dr.cursor;return!ir()&&(Dr.limit_backward=r,Dr.cursor=Dr.limit,Y(),Dr.cursor=Dr.limit,U(),!0)}var nr,tr,ur=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],or=[new i("leri",-1,-1),new i("ları",-1,-1)],sr=[new i("ni",-1,-1),new i("nu",-1,-1),new i("nü",-1,-1),new i("nı",-1,-1)],cr=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],lr=[new i("a",-1,-1),new i("e",-1,-1)],ar=[new i("na",-1,-1),new i("ne",-1,-1)],mr=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],dr=[new i("nda",-1,-1),new i("nde",-1,-1)],fr=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],br=[new i("ndan",-1,-1),new i("nden",-1,-1)],wr=[new i("la",-1,-1),new i("le",-1,-1)],_r=[new i("ca",-1,-1),new i("ce",-1,-1)],kr=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],pr=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],gr=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],yr=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],zr=[new i("lar",-1,-1),new i("ler",-1,-1)],vr=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],hr=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],qr=[new i("casına",-1,-1),new i("cesine",-1,-1)],Cr=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("dü",-1,-1),new i("tü",-1,-1),new i("dı",-1,-1),new i("tı",-1,-1)],Pr=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],Fr=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],Sr=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],Wr=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],Lr=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],xr=[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],Ar=[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],Er=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],jr=[17],Tr=[65],Zr=[65],Br=[["a",xr,97,305],["e",Ar,101,252],["ı",Er,97,305],["i",jr,101,105],["o",Tr,111,117],["ö",Zr,246,252],["u",Tr,111,117]],Dr=new e;this.setCurrent=function(r){Dr.setCurrent(r)},this.getCurrent=function(){return Dr.getCurrent()},this.stem=function(){return!!($()&&(Dr.limit_backward=Dr.cursor,Dr.cursor=Dr.limit,J(),Dr.cursor=Dr.limit,nr&&(R(),Dr.cursor=Dr.limit_backward,er())))}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.tr.stemmer,"stemmer-tr"),r.tr.stopWordFilter=r.generateStopWordFilter("acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle".split(" ")),r.Pipeline.registerFunction(r.tr.stopWordFilter,"stopWordFilter-tr")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.vi.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.vi.min.js deleted file mode 100644 index 22aed28..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.vi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/min/lunr.zh.min.js b/ghpages08/site/assets/javascripts/lunr/min/lunr.zh.min.js deleted file mode 100644 index 7727bbe..0000000 --- a/ghpages08/site/assets/javascripts/lunr/min/lunr.zh.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/tinyseg.js b/ghpages08/site/assets/javascripts/lunr/tinyseg.js deleted file mode 100644 index 167fa6d..0000000 --- a/ghpages08/site/assets/javascripts/lunr/tinyseg.js +++ /dev/null @@ -1,206 +0,0 @@ -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -;(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function () { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - - return function(lunr) { - // TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript - // (c) 2008 Taku Kudo - // TinySegmenter is freely distributable under the terms of a new BSD licence. - // For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt - - function TinySegmenter() { - var patterns = { - "[一二三四五六七八九十百千万億兆]":"M", - "[一-龠々〆ヵヶ]":"H", - "[ぁ-ん]":"I", - "[ァ-ヴーア-ン゙ー]":"K", - "[a-zA-Za-zA-Z]":"A", - "[0-90-9]":"N" - } - this.chartype_ = []; - for (var i in patterns) { - var regexp = new RegExp(i); - this.chartype_.push([regexp, patterns[i]]); - } - - this.BIAS__ = -332 - this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378}; - this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920}; - this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266}; - this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352}; - this.BP2__ = {"BO":60,"OO":-1762}; - this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965}; - this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146}; - this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699}; - this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973}; - this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682}; - this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669}; - this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990}; - this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832}; - this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649}; - this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393}; - this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841}; - this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68}; - this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591}; - this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685}; - this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156}; - this.TW1__ = {"につい":-4681,"東京都":2026}; - this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216}; - this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287}; - this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865}; - this.UC1__ = {"A":484,"K":93,"M":645,"O":-505}; - this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646}; - this.UC3__ = {"A":-1370,"I":2311}; - this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646}; - this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831}; - this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387}; - this.UP1__ = {"O":-214}; - this.UP2__ = {"B":69,"O":935}; - this.UP3__ = {"B":189}; - this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422}; - this.UQ2__ = {"BH":216,"BI":113,"OK":1759}; - this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212}; - this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135}; - this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568}; - this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278}; - this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637}; - this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343}; - this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496}; - - return this; - } - TinySegmenter.prototype.ctype_ = function(str) { - for (var i in this.chartype_) { - if (str.match(this.chartype_[i][0])) { - return this.chartype_[i][1]; - } - } - return "O"; - } - - TinySegmenter.prototype.ts_ = function(v) { - if (v) { return v; } - return 0; - } - - TinySegmenter.prototype.segment = function(input) { - if (input == null || input == undefined || input == "") { - return []; - } - var result = []; - var seg = ["B3","B2","B1"]; - var ctype = ["O","O","O"]; - var o = input.split(""); - for (i = 0; i < o.length; ++i) { - seg.push(o[i]); - ctype.push(this.ctype_(o[i])) - } - seg.push("E1"); - seg.push("E2"); - seg.push("E3"); - ctype.push("O"); - ctype.push("O"); - ctype.push("O"); - var word = seg[3]; - var p1 = "U"; - var p2 = "U"; - var p3 = "U"; - for (var i = 4; i < seg.length - 3; ++i) { - var score = this.BIAS__; - var w1 = seg[i-3]; - var w2 = seg[i-2]; - var w3 = seg[i-1]; - var w4 = seg[i]; - var w5 = seg[i+1]; - var w6 = seg[i+2]; - var c1 = ctype[i-3]; - var c2 = ctype[i-2]; - var c3 = ctype[i-1]; - var c4 = ctype[i]; - var c5 = ctype[i+1]; - var c6 = ctype[i+2]; - score += this.ts_(this.UP1__[p1]); - score += this.ts_(this.UP2__[p2]); - score += this.ts_(this.UP3__[p3]); - score += this.ts_(this.BP1__[p1 + p2]); - score += this.ts_(this.BP2__[p2 + p3]); - score += this.ts_(this.UW1__[w1]); - score += this.ts_(this.UW2__[w2]); - score += this.ts_(this.UW3__[w3]); - score += this.ts_(this.UW4__[w4]); - score += this.ts_(this.UW5__[w5]); - score += this.ts_(this.UW6__[w6]); - score += this.ts_(this.BW1__[w2 + w3]); - score += this.ts_(this.BW2__[w3 + w4]); - score += this.ts_(this.BW3__[w4 + w5]); - score += this.ts_(this.TW1__[w1 + w2 + w3]); - score += this.ts_(this.TW2__[w2 + w3 + w4]); - score += this.ts_(this.TW3__[w3 + w4 + w5]); - score += this.ts_(this.TW4__[w4 + w5 + w6]); - score += this.ts_(this.UC1__[c1]); - score += this.ts_(this.UC2__[c2]); - score += this.ts_(this.UC3__[c3]); - score += this.ts_(this.UC4__[c4]); - score += this.ts_(this.UC5__[c5]); - score += this.ts_(this.UC6__[c6]); - score += this.ts_(this.BC1__[c2 + c3]); - score += this.ts_(this.BC2__[c3 + c4]); - score += this.ts_(this.BC3__[c4 + c5]); - score += this.ts_(this.TC1__[c1 + c2 + c3]); - score += this.ts_(this.TC2__[c2 + c3 + c4]); - score += this.ts_(this.TC3__[c3 + c4 + c5]); - score += this.ts_(this.TC4__[c4 + c5 + c6]); - // score += this.ts_(this.TC5__[c4 + c5 + c6]); - score += this.ts_(this.UQ1__[p1 + c1]); - score += this.ts_(this.UQ2__[p2 + c2]); - score += this.ts_(this.UQ3__[p3 + c3]); - score += this.ts_(this.BQ1__[p2 + c2 + c3]); - score += this.ts_(this.BQ2__[p2 + c3 + c4]); - score += this.ts_(this.BQ3__[p3 + c2 + c3]); - score += this.ts_(this.BQ4__[p3 + c3 + c4]); - score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]); - score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]); - score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]); - score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]); - var p = "O"; - if (score > 0) { - result.push(word); - word = ""; - p = "B"; - } - p1 = p2; - p2 = p3; - p3 = p; - word += seg[i]; - } - result.push(word); - - return result; - } - - lunr.TinySegmenter = TinySegmenter; - }; - -})); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/lunr/wordcut.js b/ghpages08/site/assets/javascripts/lunr/wordcut.js deleted file mode 100644 index 146f4b4..0000000 --- a/ghpages08/site/assets/javascripts/lunr/wordcut.js +++ /dev/null @@ -1,6708 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.lunr || (g.lunr = {})).wordcut = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1; - }) - this.addWords(words, false) - } - if(finalize){ - this.finalizeDict(); - } - }, - - dictSeek: function (l, r, ch, strOffset, pos) { - var ans = null; - while (l <= r) { - var m = Math.floor((l + r) / 2), - dict_item = this.dict[m], - len = dict_item.length; - if (len <= strOffset) { - l = m + 1; - } else { - var ch_ = dict_item[strOffset]; - if (ch_ < ch) { - l = m + 1; - } else if (ch_ > ch) { - r = m - 1; - } else { - ans = m; - if (pos == LEFT) { - r = m - 1; - } else { - l = m + 1; - } - } - } - } - return ans; - }, - - isFinal: function (acceptor) { - return this.dict[acceptor.l].length == acceptor.strOffset; - }, - - createAcceptor: function () { - return { - l: 0, - r: this.dict.length - 1, - strOffset: 0, - isFinal: false, - dict: this, - transit: function (ch) { - return this.dict.transit(this, ch); - }, - isError: false, - tag: "DICT", - w: 1, - type: "DICT" - }; - }, - - transit: function (acceptor, ch) { - var l = this.dictSeek(acceptor.l, - acceptor.r, - ch, - acceptor.strOffset, - LEFT); - if (l !== null) { - var r = this.dictSeek(l, - acceptor.r, - ch, - acceptor.strOffset, - RIGHT); - acceptor.l = l; - acceptor.r = r; - acceptor.strOffset++; - acceptor.isFinal = this.isFinal(acceptor); - } else { - acceptor.isError = true; - } - return acceptor; - }, - - sortuniq: function(a){ - return a.sort().filter(function(item, pos, arr){ - return !pos || item != arr[pos - 1]; - }) - }, - - flatten: function(a){ - //[[1,2],[3]] -> [1,2,3] - return [].concat.apply([], a); - } -}; -module.exports = WordcutDict; - -}).call(this,"/dist/tmp") -},{"glob":16,"path":22}],3:[function(require,module,exports){ -var WordRule = { - createAcceptor: function(tag) { - if (tag["WORD_RULE"]) - return null; - - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - var lch = ch.toLowerCase(); - if (lch >= "a" && lch <= "z") { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "WORD_RULE", - type: "WORD_RULE", - w: 1}; - } -}; - -var NumberRule = { - createAcceptor: function(tag) { - if (tag["NUMBER_RULE"]) - return null; - - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (ch >= "0" && ch <= "9") { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "NUMBER_RULE", - type: "NUMBER_RULE", - w: 1}; - } -}; - -var SpaceRule = { - tag: "SPACE_RULE", - createAcceptor: function(tag) { - - if (tag["SPACE_RULE"]) - return null; - - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (ch == " " || ch == "\t" || ch == "\r" || ch == "\n" || - ch == "\u00A0" || ch=="\u2003"//nbsp and emsp - ) { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: SpaceRule.tag, - w: 1, - type: "SPACE_RULE"}; - } -} - -var SingleSymbolRule = { - tag: "SINSYM", - createAcceptor: function(tag) { - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (this.strOffset == 0 && ch.match(/^[\@\(\)\/\,\-\."`]$/)) { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "SINSYM", - w: 1, - type: "SINSYM"}; - } -} - - -var LatinRules = [WordRule, SpaceRule, SingleSymbolRule, NumberRule]; - -module.exports = LatinRules; - -},{}],4:[function(require,module,exports){ -var _ = require("underscore") - , WordcutCore = require("./wordcut_core"); -var PathInfoBuilder = { - - /* - buildByPartAcceptors: function(path, acceptors, i) { - var - var genInfos = partAcceptors.reduce(function(genInfos, acceptor) { - - }, []); - - return genInfos; - } - */ - - buildByAcceptors: function(path, finalAcceptors, i) { - var self = this; - var infos = finalAcceptors.map(function(acceptor) { - var p = i - acceptor.strOffset + 1 - , _info = path[p]; - - var info = {p: p, - mw: _info.mw + (acceptor.mw === undefined ? 0 : acceptor.mw), - w: acceptor.w + _info.w, - unk: (acceptor.unk ? acceptor.unk : 0) + _info.unk, - type: acceptor.type}; - - if (acceptor.type == "PART") { - for(var j = p + 1; j <= i; j++) { - path[j].merge = p; - } - info.merge = p; - } - - return info; - }); - return infos.filter(function(info) { return info; }); - }, - - fallback: function(path, leftBoundary, text, i) { - var _info = path[leftBoundary]; - if (text[i].match(/[\u0E48-\u0E4E]/)) { - if (leftBoundary != 0) - leftBoundary = path[leftBoundary].p; - return {p: leftBoundary, - mw: 0, - w: 1 + _info.w, - unk: 1 + _info.unk, - type: "UNK"}; -/* } else if(leftBoundary > 0 && path[leftBoundary].type !== "UNK") { - leftBoundary = path[leftBoundary].p; - return {p: leftBoundary, - w: 1 + _info.w, - unk: 1 + _info.unk, - type: "UNK"}; */ - } else { - return {p: leftBoundary, - mw: _info.mw, - w: 1 + _info.w, - unk: 1 + _info.unk, - type: "UNK"}; - } - }, - - build: function(path, finalAcceptors, i, leftBoundary, text) { - var basicPathInfos = this.buildByAcceptors(path, finalAcceptors, i); - if (basicPathInfos.length > 0) { - return basicPathInfos; - } else { - return [this.fallback(path, leftBoundary, text, i)]; - } - } -}; - -module.exports = function() { - return _.clone(PathInfoBuilder); -} - -},{"./wordcut_core":8,"underscore":25}],5:[function(require,module,exports){ -var _ = require("underscore"); - - -var PathSelector = { - selectPath: function(paths) { - var path = paths.reduce(function(selectedPath, path) { - if (selectedPath == null) { - return path; - } else { - if (path.unk < selectedPath.unk) - return path; - if (path.unk == selectedPath.unk) { - if (path.mw < selectedPath.mw) - return path - if (path.mw == selectedPath.mw) { - if (path.w < selectedPath.w) - return path; - } - } - return selectedPath; - } - }, null); - return path; - }, - - createPath: function() { - return [{p:null, w:0, unk:0, type: "INIT", mw:0}]; - } -}; - -module.exports = function() { - return _.clone(PathSelector); -}; - -},{"underscore":25}],6:[function(require,module,exports){ -function isMatch(pat, offset, ch) { - if (pat.length <= offset) - return false; - var _ch = pat[offset]; - return _ch == ch || - (_ch.match(/[กข]/) && ch.match(/[ก-ฮ]/)) || - (_ch.match(/[มบ]/) && ch.match(/[ก-ฮ]/)) || - (_ch.match(/\u0E49/) && ch.match(/[\u0E48-\u0E4B]/)); -} - -var Rule0 = { - pat: "เหก็ม", - createAcceptor: function(tag) { - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (isMatch(Rule0.pat, this.strOffset,ch)) { - this.isFinal = (this.strOffset + 1 == Rule0.pat.length); - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "THAI_RULE", - type: "THAI_RULE", - w: 1}; - } -}; - -var PartRule = { - createAcceptor: function(tag) { - return {strOffset: 0, - patterns: [ - "แก", "เก", "ก้", "กก์", "กา", "กี", "กิ", "กืก" - ], - isFinal: false, - transit: function(ch) { - var offset = this.strOffset; - this.patterns = this.patterns.filter(function(pat) { - return isMatch(pat, offset, ch); - }); - - if (this.patterns.length > 0) { - var len = 1 + offset; - this.isFinal = this.patterns.some(function(pat) { - return pat.length == len; - }); - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "PART", - type: "PART", - unk: 1, - w: 1}; - } -}; - -var ThaiRules = [Rule0, PartRule]; - -module.exports = ThaiRules; - -},{}],7:[function(require,module,exports){ -var sys = require("sys") - , WordcutDict = require("./dict") - , WordcutCore = require("./wordcut_core") - , PathInfoBuilder = require("./path_info_builder") - , PathSelector = require("./path_selector") - , Acceptors = require("./acceptors") - , latinRules = require("./latin_rules") - , thaiRules = require("./thai_rules") - , _ = require("underscore"); - - -var Wordcut = Object.create(WordcutCore); -Wordcut.defaultPathInfoBuilder = PathInfoBuilder; -Wordcut.defaultPathSelector = PathSelector; -Wordcut.defaultAcceptors = Acceptors; -Wordcut.defaultLatinRules = latinRules; -Wordcut.defaultThaiRules = thaiRules; -Wordcut.defaultDict = WordcutDict; - - -Wordcut.initNoDict = function(dict_path) { - var self = this; - self.pathInfoBuilder = new self.defaultPathInfoBuilder; - self.pathSelector = new self.defaultPathSelector; - self.acceptors = new self.defaultAcceptors; - self.defaultLatinRules.forEach(function(rule) { - self.acceptors.creators.push(rule); - }); - self.defaultThaiRules.forEach(function(rule) { - self.acceptors.creators.push(rule); - }); -}; - -Wordcut.init = function(dict_path, withDefault, additionalWords) { - withDefault = withDefault || false; - this.initNoDict(); - var dict = _.clone(this.defaultDict); - dict.init(dict_path, withDefault, additionalWords); - this.acceptors.creators.push(dict); -}; - -module.exports = Wordcut; - -},{"./acceptors":1,"./dict":2,"./latin_rules":3,"./path_info_builder":4,"./path_selector":5,"./thai_rules":6,"./wordcut_core":8,"sys":28,"underscore":25}],8:[function(require,module,exports){ -var WordcutCore = { - - buildPath: function(text) { - var self = this - , path = self.pathSelector.createPath() - , leftBoundary = 0; - self.acceptors.reset(); - for (var i = 0; i < text.length; i++) { - var ch = text[i]; - self.acceptors.transit(ch); - - var possiblePathInfos = self - .pathInfoBuilder - .build(path, - self.acceptors.getFinalAcceptors(), - i, - leftBoundary, - text); - var selectedPath = self.pathSelector.selectPath(possiblePathInfos) - - path.push(selectedPath); - if (selectedPath.type !== "UNK") { - leftBoundary = i; - } - } - return path; - }, - - pathToRanges: function(path) { - var e = path.length - 1 - , ranges = []; - - while (e > 0) { - var info = path[e] - , s = info.p; - - if (info.merge !== undefined && ranges.length > 0) { - var r = ranges[ranges.length - 1]; - r.s = info.merge; - s = r.s; - } else { - ranges.push({s:s, e:e}); - } - e = s; - } - return ranges.reverse(); - }, - - rangesToText: function(text, ranges, delimiter) { - return ranges.map(function(r) { - return text.substring(r.s, r.e); - }).join(delimiter); - }, - - cut: function(text, delimiter) { - var path = this.buildPath(text) - , ranges = this.pathToRanges(path); - return this - .rangesToText(text, ranges, - (delimiter === undefined ? "|" : delimiter)); - }, - - cutIntoRanges: function(text, noText) { - var path = this.buildPath(text) - , ranges = this.pathToRanges(path); - - if (!noText) { - ranges.forEach(function(r) { - r.text = text.substring(r.s, r.e); - }); - } - return ranges; - }, - - cutIntoArray: function(text) { - var path = this.buildPath(text) - , ranges = this.pathToRanges(path); - - return ranges.map(function(r) { - return text.substring(r.s, r.e) - }); - } -}; - -module.exports = WordcutCore; - -},{}],9:[function(require,module,exports){ -// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 -// -// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! -// -// Originally from narwhal.js (http://narwhaljs.org) -// Copyright (c) 2009 Thomas Robinson <280north.com> -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the 'Software'), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// when used in node, this will actually load the util module we depend on -// versus loading the builtin util module as happens otherwise -// this is a bug in node module loading as far as I am concerned -var util = require('util/'); - -var pSlice = Array.prototype.slice; -var hasOwn = Object.prototype.hasOwnProperty; - -// 1. The assert module provides functions that throw -// AssertionError's when particular conditions are not met. The -// assert module must conform to the following interface. - -var assert = module.exports = ok; - -// 2. The AssertionError is defined in assert. -// new assert.AssertionError({ message: message, -// actual: actual, -// expected: expected }) - -assert.AssertionError = function AssertionError(options) { - this.name = 'AssertionError'; - this.actual = options.actual; - this.expected = options.expected; - this.operator = options.operator; - if (options.message) { - this.message = options.message; - this.generatedMessage = false; - } else { - this.message = getMessage(this); - this.generatedMessage = true; - } - var stackStartFunction = options.stackStartFunction || fail; - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, stackStartFunction); - } - else { - // non v8 browsers so we can have a stacktrace - var err = new Error(); - if (err.stack) { - var out = err.stack; - - // try to strip useless frames - var fn_name = stackStartFunction.name; - var idx = out.indexOf('\n' + fn_name); - if (idx >= 0) { - // once we have located the function frame - // we need to strip out everything before it (and its line) - var next_line = out.indexOf('\n', idx + 1); - out = out.substring(next_line + 1); - } - - this.stack = out; - } - } -}; - -// assert.AssertionError instanceof Error -util.inherits(assert.AssertionError, Error); - -function replacer(key, value) { - if (util.isUndefined(value)) { - return '' + value; - } - if (util.isNumber(value) && !isFinite(value)) { - return value.toString(); - } - if (util.isFunction(value) || util.isRegExp(value)) { - return value.toString(); - } - return value; -} - -function truncate(s, n) { - if (util.isString(s)) { - return s.length < n ? s : s.slice(0, n); - } else { - return s; - } -} - -function getMessage(self) { - return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + - self.operator + ' ' + - truncate(JSON.stringify(self.expected, replacer), 128); -} - -// At present only the three keys mentioned above are used and -// understood by the spec. Implementations or sub modules can pass -// other keys to the AssertionError's constructor - they will be -// ignored. - -// 3. All of the following functions must throw an AssertionError -// when a corresponding condition is not met, with a message that -// may be undefined if not provided. All assertion methods provide -// both the actual and expected values to the assertion error for -// display purposes. - -function fail(actual, expected, message, operator, stackStartFunction) { - throw new assert.AssertionError({ - message: message, - actual: actual, - expected: expected, - operator: operator, - stackStartFunction: stackStartFunction - }); -} - -// EXTENSION! allows for well behaved errors defined elsewhere. -assert.fail = fail; - -// 4. Pure assertion tests whether a value is truthy, as determined -// by !!guard. -// assert.ok(guard, message_opt); -// This statement is equivalent to assert.equal(true, !!guard, -// message_opt);. To test strictly for the value true, use -// assert.strictEqual(true, guard, message_opt);. - -function ok(value, message) { - if (!value) fail(value, true, message, '==', assert.ok); -} -assert.ok = ok; - -// 5. The equality assertion tests shallow, coercive equality with -// ==. -// assert.equal(actual, expected, message_opt); - -assert.equal = function equal(actual, expected, message) { - if (actual != expected) fail(actual, expected, message, '==', assert.equal); -}; - -// 6. The non-equality assertion tests for whether two objects are not equal -// with != assert.notEqual(actual, expected, message_opt); - -assert.notEqual = function notEqual(actual, expected, message) { - if (actual == expected) { - fail(actual, expected, message, '!=', assert.notEqual); - } -}; - -// 7. The equivalence assertion tests a deep equality relation. -// assert.deepEqual(actual, expected, message_opt); - -assert.deepEqual = function deepEqual(actual, expected, message) { - if (!_deepEqual(actual, expected)) { - fail(actual, expected, message, 'deepEqual', assert.deepEqual); - } -}; - -function _deepEqual(actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - - } else if (util.isBuffer(actual) && util.isBuffer(expected)) { - if (actual.length != expected.length) return false; - - for (var i = 0; i < actual.length; i++) { - if (actual[i] !== expected[i]) return false; - } - - return true; - - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (util.isDate(actual) && util.isDate(expected)) { - return actual.getTime() === expected.getTime(); - - // 7.3 If the expected value is a RegExp object, the actual value is - // equivalent if it is also a RegExp object with the same source and - // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). - } else if (util.isRegExp(actual) && util.isRegExp(expected)) { - return actual.source === expected.source && - actual.global === expected.global && - actual.multiline === expected.multiline && - actual.lastIndex === expected.lastIndex && - actual.ignoreCase === expected.ignoreCase; - - // 7.4. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (!util.isObject(actual) && !util.isObject(expected)) { - return actual == expected; - - // 7.5 For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } -} - -function isArguments(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -} - -function objEquiv(a, b) { - if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b)) - return false; - // an identical 'prototype' property. - if (a.prototype !== b.prototype) return false; - // if one is a primitive, the other must be same - if (util.isPrimitive(a) || util.isPrimitive(b)) { - return a === b; - } - var aIsArgs = isArguments(a), - bIsArgs = isArguments(b); - if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs)) - return false; - if (aIsArgs) { - a = pSlice.call(a); - b = pSlice.call(b); - return _deepEqual(a, b); - } - var ka = objectKeys(a), - kb = objectKeys(b), - key, i; - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!_deepEqual(a[key], b[key])) return false; - } - return true; -} - -// 8. The non-equivalence assertion tests for any deep inequality. -// assert.notDeepEqual(actual, expected, message_opt); - -assert.notDeepEqual = function notDeepEqual(actual, expected, message) { - if (_deepEqual(actual, expected)) { - fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); - } -}; - -// 9. The strict equality assertion tests strict equality, as determined by ===. -// assert.strictEqual(actual, expected, message_opt); - -assert.strictEqual = function strictEqual(actual, expected, message) { - if (actual !== expected) { - fail(actual, expected, message, '===', assert.strictEqual); - } -}; - -// 10. The strict non-equality assertion tests for strict inequality, as -// determined by !==. assert.notStrictEqual(actual, expected, message_opt); - -assert.notStrictEqual = function notStrictEqual(actual, expected, message) { - if (actual === expected) { - fail(actual, expected, message, '!==', assert.notStrictEqual); - } -}; - -function expectedException(actual, expected) { - if (!actual || !expected) { - return false; - } - - if (Object.prototype.toString.call(expected) == '[object RegExp]') { - return expected.test(actual); - } else if (actual instanceof expected) { - return true; - } else if (expected.call({}, actual) === true) { - return true; - } - - return false; -} - -function _throws(shouldThrow, block, expected, message) { - var actual; - - if (util.isString(expected)) { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + - (message ? ' ' + message : '.'); - - if (shouldThrow && !actual) { - fail(actual, expected, 'Missing expected exception' + message); - } - - if (!shouldThrow && expectedException(actual, expected)) { - fail(actual, expected, 'Got unwanted exception' + message); - } - - if ((shouldThrow && actual && expected && - !expectedException(actual, expected)) || (!shouldThrow && actual)) { - throw actual; - } -} - -// 11. Expected to throw an error: -// assert.throws(block, Error_opt, message_opt); - -assert.throws = function(block, /*optional*/error, /*optional*/message) { - _throws.apply(this, [true].concat(pSlice.call(arguments))); -}; - -// EXTENSION! This is annoying to write outside this module. -assert.doesNotThrow = function(block, /*optional*/message) { - _throws.apply(this, [false].concat(pSlice.call(arguments))); -}; - -assert.ifError = function(err) { if (err) {throw err;}}; - -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - if (hasOwn.call(obj, key)) keys.push(key); - } - return keys; -}; - -},{"util/":28}],10:[function(require,module,exports){ -'use strict'; -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} - -},{}],11:[function(require,module,exports){ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - - -},{"balanced-match":10,"concat-map":13}],12:[function(require,module,exports){ - -},{}],13:[function(require,module,exports){ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - -},{}],14:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } - throw TypeError('Uncaught, unspecified "error" event.'); - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - handler.apply(this, args); - } - } else if (isObject(handler)) { - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - var m; - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.listenerCount = function(emitter, type) { - var ret; - if (!emitter._events || !emitter._events[type]) - ret = 0; - else if (isFunction(emitter._events[type])) - ret = 1; - else - ret = emitter._events[type].length; - return ret; -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - -},{}],15:[function(require,module,exports){ -(function (process){ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern) - } - - return { - matcher: new Minimatch(pattern), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = options.cwd - self.changedCwd = path.resolve(options.cwd) !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - self.nomount = !!options.nomount - - // disable comments and negation unless the user explicitly - // passes in false as the option. - options.nonegate = options.nonegate === false ? false : true - options.nocomment = options.nocomment === false ? false : true - deprecationWarning(options) - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -// TODO(isaacs): remove entirely in v6 -// exported to reset in tests -exports.deprecationWarned -function deprecationWarning(options) { - if (!options.nonegate || !options.nocomment) { - if (process.noDeprecation !== true && !exports.deprecationWarned) { - var msg = 'glob WARNING: comments and negation will be disabled in v6' - if (process.throwDeprecation) - throw new Error(msg) - else if (process.traceDeprecation) - console.trace(msg) - else - console.error(msg) - - exports.deprecationWarned = true - } - } -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - return !(/\/$/.test(e)) - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -}).call(this,require('_process')) -},{"_process":24,"minimatch":20,"path":22,"path-is-absolute":23}],16:[function(require,module,exports){ -(function (process){ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -glob.hasMagic = function (pattern, options_) { - var options = util._extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - - function done () { - --self._processing - if (self._processing <= 0) - self._finish() - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - fs.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (this.matches[index][e]) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = this._makeAbs(e) - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - if (this.mark) - e = this._mark(e) - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er) - return cb() - - var isSym = lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && !stat.isDirectory()) - return cb(null, false, stat) - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return cb() - - return cb(null, c, stat) -} - -}).call(this,require('_process')) -},{"./common.js":15,"./sync.js":17,"_process":24,"assert":9,"events":14,"fs":12,"inflight":18,"inherits":19,"minimatch":20,"once":21,"path":22,"path-is-absolute":23,"util":28}],17:[function(require,module,exports){ -(function (process){ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = fs.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this.matches[index][e] = true - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - var abs = this._makeAbs(e) - if (this.mark) - e = this._mark(e) - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[this._makeAbs(e)] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - // lstat failed, doesn't exist - return null - } - - var isSym = lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this.matches[index][prefix] = true -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - return false - } - - if (lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -}).call(this,require('_process')) -},{"./common.js":15,"./glob.js":16,"_process":24,"assert":9,"fs":12,"minimatch":20,"path":22,"path-is-absolute":23,"util":28}],18:[function(require,module,exports){ -(function (process){ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} - -}).call(this,require('_process')) -},{"_process":24,"once":21,"wrappy":29}],19:[function(require,module,exports){ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - -},{}],20:[function(require,module,exports){ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -var plTypes = { - '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, - '?': { open: '(?:', close: ')?' }, - '+': { open: '(?:', close: ')+' }, - '*': { open: '(?:', close: ')*' }, - '@': { open: '(?:', close: ')' } -} - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } - - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - var pl = patternListStack.pop() - // negation is (?:(?!js)[^/]*) - // The others are (?:) - re += pl.close - if (pl.type === '!') { - negativeLists.push(pl) - } - pl.reEnd = re.length - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length) - this.debug('setting tail', re, pl) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail, pl, re) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - try { - var regExp = new RegExp('^' + re + '$', flags) - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.') - } - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} - -},{"brace-expansion":11,"path":22}],21:[function(require,module,exports){ -var wrappy = require('wrappy') -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - -},{"wrappy":29}],22:[function(require,module,exports){ -(function (process){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -}; - - -exports.basename = function(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPath(path)[3]; -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -}).call(this,require('_process')) -},{"_process":24}],23:[function(require,module,exports){ -(function (process){ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -} - -function win32(path) { - // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = Boolean(device && device.charAt(1) !== ':'); - - // UNC paths are always absolute - return Boolean(result[2] || isUnc); -} - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; - -}).call(this,require('_process')) -},{"_process":24}],24:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],25:[function(require,module,exports){ -// Underscore.js 1.8.3 -// http://underscorejs.org -// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. - -(function() { - - // Baseline setup - // -------------- - - // Establish the root object, `window` in the browser, or `exports` on the server. - var root = this; - - // Save the previous value of the `_` variable. - var previousUnderscore = root._; - - // Save bytes in the minified (but not gzipped) version: - var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; - - // Create quick reference variables for speed access to core prototypes. - var - push = ArrayProto.push, - slice = ArrayProto.slice, - toString = ObjProto.toString, - hasOwnProperty = ObjProto.hasOwnProperty; - - // All **ECMAScript 5** native function implementations that we hope to use - // are declared here. - var - nativeIsArray = Array.isArray, - nativeKeys = Object.keys, - nativeBind = FuncProto.bind, - nativeCreate = Object.create; - - // Naked function reference for surrogate-prototype-swapping. - var Ctor = function(){}; - - // Create a safe reference to the Underscore object for use below. - var _ = function(obj) { - if (obj instanceof _) return obj; - if (!(this instanceof _)) return new _(obj); - this._wrapped = obj; - }; - - // Export the Underscore object for **Node.js**, with - // backwards-compatibility for the old `require()` API. If we're in - // the browser, add `_` as a global object. - if (typeof exports !== 'undefined') { - if (typeof module !== 'undefined' && module.exports) { - exports = module.exports = _; - } - exports._ = _; - } else { - root._ = _; - } - - // Current version. - _.VERSION = '1.8.3'; - - // Internal function that returns an efficient (for current engines) version - // of the passed-in callback, to be repeatedly applied in other Underscore - // functions. - var optimizeCb = function(func, context, argCount) { - if (context === void 0) return func; - switch (argCount == null ? 3 : argCount) { - case 1: return function(value) { - return func.call(context, value); - }; - case 2: return function(value, other) { - return func.call(context, value, other); - }; - case 3: return function(value, index, collection) { - return func.call(context, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(context, accumulator, value, index, collection); - }; - } - return function() { - return func.apply(context, arguments); - }; - }; - - // A mostly-internal function to generate callbacks that can be applied - // to each element in a collection, returning the desired result — either - // identity, an arbitrary callback, a property matcher, or a property accessor. - var cb = function(value, context, argCount) { - if (value == null) return _.identity; - if (_.isFunction(value)) return optimizeCb(value, context, argCount); - if (_.isObject(value)) return _.matcher(value); - return _.property(value); - }; - _.iteratee = function(value, context) { - return cb(value, context, Infinity); - }; - - // An internal function for creating assigner functions. - var createAssigner = function(keysFunc, undefinedOnly) { - return function(obj) { - var length = arguments.length; - if (length < 2 || obj == null) return obj; - for (var index = 1; index < length; index++) { - var source = arguments[index], - keys = keysFunc(source), - l = keys.length; - for (var i = 0; i < l; i++) { - var key = keys[i]; - if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key]; - } - } - return obj; - }; - }; - - // An internal function for creating a new object that inherits from another. - var baseCreate = function(prototype) { - if (!_.isObject(prototype)) return {}; - if (nativeCreate) return nativeCreate(prototype); - Ctor.prototype = prototype; - var result = new Ctor; - Ctor.prototype = null; - return result; - }; - - var property = function(key) { - return function(obj) { - return obj == null ? void 0 : obj[key]; - }; - }; - - // Helper for collection methods to determine whether a collection - // should be iterated as an array or as an object - // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength - // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 - var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; - var getLength = property('length'); - var isArrayLike = function(collection) { - var length = getLength(collection); - return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX; - }; - - // Collection Functions - // -------------------- - - // The cornerstone, an `each` implementation, aka `forEach`. - // Handles raw objects in addition to array-likes. Treats all - // sparse array-likes as if they were dense. - _.each = _.forEach = function(obj, iteratee, context) { - iteratee = optimizeCb(iteratee, context); - var i, length; - if (isArrayLike(obj)) { - for (i = 0, length = obj.length; i < length; i++) { - iteratee(obj[i], i, obj); - } - } else { - var keys = _.keys(obj); - for (i = 0, length = keys.length; i < length; i++) { - iteratee(obj[keys[i]], keys[i], obj); - } - } - return obj; - }; - - // Return the results of applying the iteratee to each element. - _.map = _.collect = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length, - results = Array(length); - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - results[index] = iteratee(obj[currentKey], currentKey, obj); - } - return results; - }; - - // Create a reducing function iterating left or right. - function createReduce(dir) { - // Optimized iterator function as using arguments.length - // in the main function will deoptimize the, see #1991. - function iterator(obj, iteratee, memo, keys, index, length) { - for (; index >= 0 && index < length; index += dir) { - var currentKey = keys ? keys[index] : index; - memo = iteratee(memo, obj[currentKey], currentKey, obj); - } - return memo; - } - - return function(obj, iteratee, memo, context) { - iteratee = optimizeCb(iteratee, context, 4); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length, - index = dir > 0 ? 0 : length - 1; - // Determine the initial value if none is provided. - if (arguments.length < 3) { - memo = obj[keys ? keys[index] : index]; - index += dir; - } - return iterator(obj, iteratee, memo, keys, index, length); - }; - } - - // **Reduce** builds up a single result from a list of values, aka `inject`, - // or `foldl`. - _.reduce = _.foldl = _.inject = createReduce(1); - - // The right-associative version of reduce, also known as `foldr`. - _.reduceRight = _.foldr = createReduce(-1); - - // Return the first value which passes a truth test. Aliased as `detect`. - _.find = _.detect = function(obj, predicate, context) { - var key; - if (isArrayLike(obj)) { - key = _.findIndex(obj, predicate, context); - } else { - key = _.findKey(obj, predicate, context); - } - if (key !== void 0 && key !== -1) return obj[key]; - }; - - // Return all the elements that pass a truth test. - // Aliased as `select`. - _.filter = _.select = function(obj, predicate, context) { - var results = []; - predicate = cb(predicate, context); - _.each(obj, function(value, index, list) { - if (predicate(value, index, list)) results.push(value); - }); - return results; - }; - - // Return all the elements for which a truth test fails. - _.reject = function(obj, predicate, context) { - return _.filter(obj, _.negate(cb(predicate)), context); - }; - - // Determine whether all of the elements match a truth test. - // Aliased as `all`. - _.every = _.all = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - if (!predicate(obj[currentKey], currentKey, obj)) return false; - } - return true; - }; - - // Determine if at least one element in the object matches a truth test. - // Aliased as `any`. - _.some = _.any = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - if (predicate(obj[currentKey], currentKey, obj)) return true; - } - return false; - }; - - // Determine if the array or object contains a given item (using `===`). - // Aliased as `includes` and `include`. - _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) { - if (!isArrayLike(obj)) obj = _.values(obj); - if (typeof fromIndex != 'number' || guard) fromIndex = 0; - return _.indexOf(obj, item, fromIndex) >= 0; - }; - - // Invoke a method (with arguments) on every item in a collection. - _.invoke = function(obj, method) { - var args = slice.call(arguments, 2); - var isFunc = _.isFunction(method); - return _.map(obj, function(value) { - var func = isFunc ? method : value[method]; - return func == null ? func : func.apply(value, args); - }); - }; - - // Convenience version of a common use case of `map`: fetching a property. - _.pluck = function(obj, key) { - return _.map(obj, _.property(key)); - }; - - // Convenience version of a common use case of `filter`: selecting only objects - // containing specific `key:value` pairs. - _.where = function(obj, attrs) { - return _.filter(obj, _.matcher(attrs)); - }; - - // Convenience version of a common use case of `find`: getting the first object - // containing specific `key:value` pairs. - _.findWhere = function(obj, attrs) { - return _.find(obj, _.matcher(attrs)); - }; - - // Return the maximum element (or element-based computation). - _.max = function(obj, iteratee, context) { - var result = -Infinity, lastComputed = -Infinity, - value, computed; - if (iteratee == null && obj != null) { - obj = isArrayLike(obj) ? obj : _.values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value > result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - _.each(obj, function(value, index, list) { - computed = iteratee(value, index, list); - if (computed > lastComputed || computed === -Infinity && result === -Infinity) { - result = value; - lastComputed = computed; - } - }); - } - return result; - }; - - // Return the minimum element (or element-based computation). - _.min = function(obj, iteratee, context) { - var result = Infinity, lastComputed = Infinity, - value, computed; - if (iteratee == null && obj != null) { - obj = isArrayLike(obj) ? obj : _.values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value < result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - _.each(obj, function(value, index, list) { - computed = iteratee(value, index, list); - if (computed < lastComputed || computed === Infinity && result === Infinity) { - result = value; - lastComputed = computed; - } - }); - } - return result; - }; - - // Shuffle a collection, using the modern version of the - // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle). - _.shuffle = function(obj) { - var set = isArrayLike(obj) ? obj : _.values(obj); - var length = set.length; - var shuffled = Array(length); - for (var index = 0, rand; index < length; index++) { - rand = _.random(0, index); - if (rand !== index) shuffled[index] = shuffled[rand]; - shuffled[rand] = set[index]; - } - return shuffled; - }; - - // Sample **n** random values from a collection. - // If **n** is not specified, returns a single random element. - // The internal `guard` argument allows it to work with `map`. - _.sample = function(obj, n, guard) { - if (n == null || guard) { - if (!isArrayLike(obj)) obj = _.values(obj); - return obj[_.random(obj.length - 1)]; - } - return _.shuffle(obj).slice(0, Math.max(0, n)); - }; - - // Sort the object's values by a criterion produced by an iteratee. - _.sortBy = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - return _.pluck(_.map(obj, function(value, index, list) { - return { - value: value, - index: index, - criteria: iteratee(value, index, list) - }; - }).sort(function(left, right) { - var a = left.criteria; - var b = right.criteria; - if (a !== b) { - if (a > b || a === void 0) return 1; - if (a < b || b === void 0) return -1; - } - return left.index - right.index; - }), 'value'); - }; - - // An internal function used for aggregate "group by" operations. - var group = function(behavior) { - return function(obj, iteratee, context) { - var result = {}; - iteratee = cb(iteratee, context); - _.each(obj, function(value, index) { - var key = iteratee(value, index, obj); - behavior(result, value, key); - }); - return result; - }; - }; - - // Groups the object's values by a criterion. Pass either a string attribute - // to group by, or a function that returns the criterion. - _.groupBy = group(function(result, value, key) { - if (_.has(result, key)) result[key].push(value); else result[key] = [value]; - }); - - // Indexes the object's values by a criterion, similar to `groupBy`, but for - // when you know that your index values will be unique. - _.indexBy = group(function(result, value, key) { - result[key] = value; - }); - - // Counts instances of an object that group by a certain criterion. Pass - // either a string attribute to count by, or a function that returns the - // criterion. - _.countBy = group(function(result, value, key) { - if (_.has(result, key)) result[key]++; else result[key] = 1; - }); - - // Safely create a real, live array from anything iterable. - _.toArray = function(obj) { - if (!obj) return []; - if (_.isArray(obj)) return slice.call(obj); - if (isArrayLike(obj)) return _.map(obj, _.identity); - return _.values(obj); - }; - - // Return the number of elements in an object. - _.size = function(obj) { - if (obj == null) return 0; - return isArrayLike(obj) ? obj.length : _.keys(obj).length; - }; - - // Split a collection into two arrays: one whose elements all satisfy the given - // predicate, and one whose elements all do not satisfy the predicate. - _.partition = function(obj, predicate, context) { - predicate = cb(predicate, context); - var pass = [], fail = []; - _.each(obj, function(value, key, obj) { - (predicate(value, key, obj) ? pass : fail).push(value); - }); - return [pass, fail]; - }; - - // Array Functions - // --------------- - - // Get the first element of an array. Passing **n** will return the first N - // values in the array. Aliased as `head` and `take`. The **guard** check - // allows it to work with `_.map`. - _.first = _.head = _.take = function(array, n, guard) { - if (array == null) return void 0; - if (n == null || guard) return array[0]; - return _.initial(array, array.length - n); - }; - - // Returns everything but the last entry of the array. Especially useful on - // the arguments object. Passing **n** will return all the values in - // the array, excluding the last N. - _.initial = function(array, n, guard) { - return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); - }; - - // Get the last element of an array. Passing **n** will return the last N - // values in the array. - _.last = function(array, n, guard) { - if (array == null) return void 0; - if (n == null || guard) return array[array.length - 1]; - return _.rest(array, Math.max(0, array.length - n)); - }; - - // Returns everything but the first entry of the array. Aliased as `tail` and `drop`. - // Especially useful on the arguments object. Passing an **n** will return - // the rest N values in the array. - _.rest = _.tail = _.drop = function(array, n, guard) { - return slice.call(array, n == null || guard ? 1 : n); - }; - - // Trim out all falsy values from an array. - _.compact = function(array) { - return _.filter(array, _.identity); - }; - - // Internal implementation of a recursive `flatten` function. - var flatten = function(input, shallow, strict, startIndex) { - var output = [], idx = 0; - for (var i = startIndex || 0, length = getLength(input); i < length; i++) { - var value = input[i]; - if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) { - //flatten current level of array or arguments object - if (!shallow) value = flatten(value, shallow, strict); - var j = 0, len = value.length; - output.length += len; - while (j < len) { - output[idx++] = value[j++]; - } - } else if (!strict) { - output[idx++] = value; - } - } - return output; - }; - - // Flatten out an array, either recursively (by default), or just one level. - _.flatten = function(array, shallow) { - return flatten(array, shallow, false); - }; - - // Return a version of the array that does not contain the specified value(s). - _.without = function(array) { - return _.difference(array, slice.call(arguments, 1)); - }; - - // Produce a duplicate-free version of the array. If the array has already - // been sorted, you have the option of using a faster algorithm. - // Aliased as `unique`. - _.uniq = _.unique = function(array, isSorted, iteratee, context) { - if (!_.isBoolean(isSorted)) { - context = iteratee; - iteratee = isSorted; - isSorted = false; - } - if (iteratee != null) iteratee = cb(iteratee, context); - var result = []; - var seen = []; - for (var i = 0, length = getLength(array); i < length; i++) { - var value = array[i], - computed = iteratee ? iteratee(value, i, array) : value; - if (isSorted) { - if (!i || seen !== computed) result.push(value); - seen = computed; - } else if (iteratee) { - if (!_.contains(seen, computed)) { - seen.push(computed); - result.push(value); - } - } else if (!_.contains(result, value)) { - result.push(value); - } - } - return result; - }; - - // Produce an array that contains the union: each distinct element from all of - // the passed-in arrays. - _.union = function() { - return _.uniq(flatten(arguments, true, true)); - }; - - // Produce an array that contains every item shared between all the - // passed-in arrays. - _.intersection = function(array) { - var result = []; - var argsLength = arguments.length; - for (var i = 0, length = getLength(array); i < length; i++) { - var item = array[i]; - if (_.contains(result, item)) continue; - for (var j = 1; j < argsLength; j++) { - if (!_.contains(arguments[j], item)) break; - } - if (j === argsLength) result.push(item); - } - return result; - }; - - // Take the difference between one array and a number of other arrays. - // Only the elements present in just the first array will remain. - _.difference = function(array) { - var rest = flatten(arguments, true, true, 1); - return _.filter(array, function(value){ - return !_.contains(rest, value); - }); - }; - - // Zip together multiple lists into a single array -- elements that share - // an index go together. - _.zip = function() { - return _.unzip(arguments); - }; - - // Complement of _.zip. Unzip accepts an array of arrays and groups - // each array's elements on shared indices - _.unzip = function(array) { - var length = array && _.max(array, getLength).length || 0; - var result = Array(length); - - for (var index = 0; index < length; index++) { - result[index] = _.pluck(array, index); - } - return result; - }; - - // Converts lists into objects. Pass either a single array of `[key, value]` - // pairs, or two parallel arrays of the same length -- one of keys, and one of - // the corresponding values. - _.object = function(list, values) { - var result = {}; - for (var i = 0, length = getLength(list); i < length; i++) { - if (values) { - result[list[i]] = values[i]; - } else { - result[list[i][0]] = list[i][1]; - } - } - return result; - }; - - // Generator function to create the findIndex and findLastIndex functions - function createPredicateIndexFinder(dir) { - return function(array, predicate, context) { - predicate = cb(predicate, context); - var length = getLength(array); - var index = dir > 0 ? 0 : length - 1; - for (; index >= 0 && index < length; index += dir) { - if (predicate(array[index], index, array)) return index; - } - return -1; - }; - } - - // Returns the first index on an array-like that passes a predicate test - _.findIndex = createPredicateIndexFinder(1); - _.findLastIndex = createPredicateIndexFinder(-1); - - // Use a comparator function to figure out the smallest index at which - // an object should be inserted so as to maintain order. Uses binary search. - _.sortedIndex = function(array, obj, iteratee, context) { - iteratee = cb(iteratee, context, 1); - var value = iteratee(obj); - var low = 0, high = getLength(array); - while (low < high) { - var mid = Math.floor((low + high) / 2); - if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; - } - return low; - }; - - // Generator function to create the indexOf and lastIndexOf functions - function createIndexFinder(dir, predicateFind, sortedIndex) { - return function(array, item, idx) { - var i = 0, length = getLength(array); - if (typeof idx == 'number') { - if (dir > 0) { - i = idx >= 0 ? idx : Math.max(idx + length, i); - } else { - length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; - } - } else if (sortedIndex && idx && length) { - idx = sortedIndex(array, item); - return array[idx] === item ? idx : -1; - } - if (item !== item) { - idx = predicateFind(slice.call(array, i, length), _.isNaN); - return idx >= 0 ? idx + i : -1; - } - for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { - if (array[idx] === item) return idx; - } - return -1; - }; - } - - // Return the position of the first occurrence of an item in an array, - // or -1 if the item is not included in the array. - // If the array is large and already in sort order, pass `true` - // for **isSorted** to use binary search. - _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex); - _.lastIndexOf = createIndexFinder(-1, _.findLastIndex); - - // Generate an integer Array containing an arithmetic progression. A port of - // the native Python `range()` function. See - // [the Python documentation](http://docs.python.org/library/functions.html#range). - _.range = function(start, stop, step) { - if (stop == null) { - stop = start || 0; - start = 0; - } - step = step || 1; - - var length = Math.max(Math.ceil((stop - start) / step), 0); - var range = Array(length); - - for (var idx = 0; idx < length; idx++, start += step) { - range[idx] = start; - } - - return range; - }; - - // Function (ahem) Functions - // ------------------ - - // Determines whether to execute a function as a constructor - // or a normal function with the provided arguments - var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) { - if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); - var self = baseCreate(sourceFunc.prototype); - var result = sourceFunc.apply(self, args); - if (_.isObject(result)) return result; - return self; - }; - - // Create a function bound to a given object (assigning `this`, and arguments, - // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if - // available. - _.bind = function(func, context) { - if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); - if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function'); - var args = slice.call(arguments, 2); - var bound = function() { - return executeBound(func, bound, context, this, args.concat(slice.call(arguments))); - }; - return bound; - }; - - // Partially apply a function by creating a version that has had some of its - // arguments pre-filled, without changing its dynamic `this` context. _ acts - // as a placeholder, allowing any combination of arguments to be pre-filled. - _.partial = function(func) { - var boundArgs = slice.call(arguments, 1); - var bound = function() { - var position = 0, length = boundArgs.length; - var args = Array(length); - for (var i = 0; i < length; i++) { - args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i]; - } - while (position < arguments.length) args.push(arguments[position++]); - return executeBound(func, bound, this, this, args); - }; - return bound; - }; - - // Bind a number of an object's methods to that object. Remaining arguments - // are the method names to be bound. Useful for ensuring that all callbacks - // defined on an object belong to it. - _.bindAll = function(obj) { - var i, length = arguments.length, key; - if (length <= 1) throw new Error('bindAll must be passed function names'); - for (i = 1; i < length; i++) { - key = arguments[i]; - obj[key] = _.bind(obj[key], obj); - } - return obj; - }; - - // Memoize an expensive function by storing its results. - _.memoize = function(func, hasher) { - var memoize = function(key) { - var cache = memoize.cache; - var address = '' + (hasher ? hasher.apply(this, arguments) : key); - if (!_.has(cache, address)) cache[address] = func.apply(this, arguments); - return cache[address]; - }; - memoize.cache = {}; - return memoize; - }; - - // Delays a function for the given number of milliseconds, and then calls - // it with the arguments supplied. - _.delay = function(func, wait) { - var args = slice.call(arguments, 2); - return setTimeout(function(){ - return func.apply(null, args); - }, wait); - }; - - // Defers a function, scheduling it to run after the current call stack has - // cleared. - _.defer = _.partial(_.delay, _, 1); - - // Returns a function, that, when invoked, will only be triggered at most once - // during a given window of time. Normally, the throttled function will run - // as much as it can, without ever going more than once per `wait` duration; - // but if you'd like to disable the execution on the leading edge, pass - // `{leading: false}`. To disable execution on the trailing edge, ditto. - _.throttle = function(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - if (!options) options = {}; - var later = function() { - previous = options.leading === false ? 0 : _.now(); - timeout = null; - result = func.apply(context, args); - if (!timeout) context = args = null; - }; - return function() { - var now = _.now(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - previous = now; - result = func.apply(context, args); - if (!timeout) context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }; - - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - _.debounce = function(func, wait, immediate) { - var timeout, args, context, timestamp, result; - - var later = function() { - var last = _.now() - timestamp; - - if (last < wait && last >= 0) { - timeout = setTimeout(later, wait - last); - } else { - timeout = null; - if (!immediate) { - result = func.apply(context, args); - if (!timeout) context = args = null; - } - } - }; - - return function() { - context = this; - args = arguments; - timestamp = _.now(); - var callNow = immediate && !timeout; - if (!timeout) timeout = setTimeout(later, wait); - if (callNow) { - result = func.apply(context, args); - context = args = null; - } - - return result; - }; - }; - - // Returns the first function passed as an argument to the second, - // allowing you to adjust arguments, run code before and after, and - // conditionally execute the original function. - _.wrap = function(func, wrapper) { - return _.partial(wrapper, func); - }; - - // Returns a negated version of the passed-in predicate. - _.negate = function(predicate) { - return function() { - return !predicate.apply(this, arguments); - }; - }; - - // Returns a function that is the composition of a list of functions, each - // consuming the return value of the function that follows. - _.compose = function() { - var args = arguments; - var start = args.length - 1; - return function() { - var i = start; - var result = args[start].apply(this, arguments); - while (i--) result = args[i].call(this, result); - return result; - }; - }; - - // Returns a function that will only be executed on and after the Nth call. - _.after = function(times, func) { - return function() { - if (--times < 1) { - return func.apply(this, arguments); - } - }; - }; - - // Returns a function that will only be executed up to (but not including) the Nth call. - _.before = function(times, func) { - var memo; - return function() { - if (--times > 0) { - memo = func.apply(this, arguments); - } - if (times <= 1) func = null; - return memo; - }; - }; - - // Returns a function that will be executed at most one time, no matter how - // often you call it. Useful for lazy initialization. - _.once = _.partial(_.before, 2); - - // Object Functions - // ---------------- - - // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. - var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); - var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', - 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; - - function collectNonEnumProps(obj, keys) { - var nonEnumIdx = nonEnumerableProps.length; - var constructor = obj.constructor; - var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto; - - // Constructor is a special case. - var prop = 'constructor'; - if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop); - - while (nonEnumIdx--) { - prop = nonEnumerableProps[nonEnumIdx]; - if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) { - keys.push(prop); - } - } - } - - // Retrieve the names of an object's own properties. - // Delegates to **ECMAScript 5**'s native `Object.keys` - _.keys = function(obj) { - if (!_.isObject(obj)) return []; - if (nativeKeys) return nativeKeys(obj); - var keys = []; - for (var key in obj) if (_.has(obj, key)) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; - }; - - // Retrieve all the property names of an object. - _.allKeys = function(obj) { - if (!_.isObject(obj)) return []; - var keys = []; - for (var key in obj) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; - }; - - // Retrieve the values of an object's properties. - _.values = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var values = Array(length); - for (var i = 0; i < length; i++) { - values[i] = obj[keys[i]]; - } - return values; - }; - - // Returns the results of applying the iteratee to each element of the object - // In contrast to _.map it returns an object - _.mapObject = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var keys = _.keys(obj), - length = keys.length, - results = {}, - currentKey; - for (var index = 0; index < length; index++) { - currentKey = keys[index]; - results[currentKey] = iteratee(obj[currentKey], currentKey, obj); - } - return results; - }; - - // Convert an object into a list of `[key, value]` pairs. - _.pairs = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var pairs = Array(length); - for (var i = 0; i < length; i++) { - pairs[i] = [keys[i], obj[keys[i]]]; - } - return pairs; - }; - - // Invert the keys and values of an object. The values must be serializable. - _.invert = function(obj) { - var result = {}; - var keys = _.keys(obj); - for (var i = 0, length = keys.length; i < length; i++) { - result[obj[keys[i]]] = keys[i]; - } - return result; - }; - - // Return a sorted list of the function names available on the object. - // Aliased as `methods` - _.functions = _.methods = function(obj) { - var names = []; - for (var key in obj) { - if (_.isFunction(obj[key])) names.push(key); - } - return names.sort(); - }; - - // Extend a given object with all the properties in passed-in object(s). - _.extend = createAssigner(_.allKeys); - - // Assigns a given object with all the own properties in the passed-in object(s) - // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) - _.extendOwn = _.assign = createAssigner(_.keys); - - // Returns the first key on an object that passes a predicate test - _.findKey = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = _.keys(obj), key; - for (var i = 0, length = keys.length; i < length; i++) { - key = keys[i]; - if (predicate(obj[key], key, obj)) return key; - } - }; - - // Return a copy of the object only containing the whitelisted properties. - _.pick = function(object, oiteratee, context) { - var result = {}, obj = object, iteratee, keys; - if (obj == null) return result; - if (_.isFunction(oiteratee)) { - keys = _.allKeys(obj); - iteratee = optimizeCb(oiteratee, context); - } else { - keys = flatten(arguments, false, false, 1); - iteratee = function(value, key, obj) { return key in obj; }; - obj = Object(obj); - } - for (var i = 0, length = keys.length; i < length; i++) { - var key = keys[i]; - var value = obj[key]; - if (iteratee(value, key, obj)) result[key] = value; - } - return result; - }; - - // Return a copy of the object without the blacklisted properties. - _.omit = function(obj, iteratee, context) { - if (_.isFunction(iteratee)) { - iteratee = _.negate(iteratee); - } else { - var keys = _.map(flatten(arguments, false, false, 1), String); - iteratee = function(value, key) { - return !_.contains(keys, key); - }; - } - return _.pick(obj, iteratee, context); - }; - - // Fill in a given object with default properties. - _.defaults = createAssigner(_.allKeys, true); - - // Creates an object that inherits from the given prototype object. - // If additional properties are provided then they will be added to the - // created object. - _.create = function(prototype, props) { - var result = baseCreate(prototype); - if (props) _.extendOwn(result, props); - return result; - }; - - // Create a (shallow-cloned) duplicate of an object. - _.clone = function(obj) { - if (!_.isObject(obj)) return obj; - return _.isArray(obj) ? obj.slice() : _.extend({}, obj); - }; - - // Invokes interceptor with the obj, and then returns obj. - // The primary purpose of this method is to "tap into" a method chain, in - // order to perform operations on intermediate results within the chain. - _.tap = function(obj, interceptor) { - interceptor(obj); - return obj; - }; - - // Returns whether an object has a given set of `key:value` pairs. - _.isMatch = function(object, attrs) { - var keys = _.keys(attrs), length = keys.length; - if (object == null) return !length; - var obj = Object(object); - for (var i = 0; i < length; i++) { - var key = keys[i]; - if (attrs[key] !== obj[key] || !(key in obj)) return false; - } - return true; - }; - - - // Internal recursive comparison function for `isEqual`. - var eq = function(a, b, aStack, bStack) { - // Identical objects are equal. `0 === -0`, but they aren't identical. - // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). - if (a === b) return a !== 0 || 1 / a === 1 / b; - // A strict comparison is necessary because `null == undefined`. - if (a == null || b == null) return a === b; - // Unwrap any wrapped objects. - if (a instanceof _) a = a._wrapped; - if (b instanceof _) b = b._wrapped; - // Compare `[[Class]]` names. - var className = toString.call(a); - if (className !== toString.call(b)) return false; - switch (className) { - // Strings, numbers, regular expressions, dates, and booleans are compared by value. - case '[object RegExp]': - // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') - case '[object String]': - // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is - // equivalent to `new String("5")`. - return '' + a === '' + b; - case '[object Number]': - // `NaN`s are equivalent, but non-reflexive. - // Object(NaN) is equivalent to NaN - if (+a !== +a) return +b !== +b; - // An `egal` comparison is performed for other numeric values. - return +a === 0 ? 1 / +a === 1 / b : +a === +b; - case '[object Date]': - case '[object Boolean]': - // Coerce dates and booleans to numeric primitive values. Dates are compared by their - // millisecond representations. Note that invalid dates with millisecond representations - // of `NaN` are not equivalent. - return +a === +b; - } - - var areArrays = className === '[object Array]'; - if (!areArrays) { - if (typeof a != 'object' || typeof b != 'object') return false; - - // Objects with different constructors are not equivalent, but `Object`s or `Array`s - // from different frames are. - var aCtor = a.constructor, bCtor = b.constructor; - if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor && - _.isFunction(bCtor) && bCtor instanceof bCtor) - && ('constructor' in a && 'constructor' in b)) { - return false; - } - } - // Assume equality for cyclic structures. The algorithm for detecting cyclic - // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. - - // Initializing stack of traversed objects. - // It's done here since we only need them for objects and arrays comparison. - aStack = aStack || []; - bStack = bStack || []; - var length = aStack.length; - while (length--) { - // Linear search. Performance is inversely proportional to the number of - // unique nested structures. - if (aStack[length] === a) return bStack[length] === b; - } - - // Add the first object to the stack of traversed objects. - aStack.push(a); - bStack.push(b); - - // Recursively compare objects and arrays. - if (areArrays) { - // Compare array lengths to determine if a deep comparison is necessary. - length = a.length; - if (length !== b.length) return false; - // Deep compare the contents, ignoring non-numeric properties. - while (length--) { - if (!eq(a[length], b[length], aStack, bStack)) return false; - } - } else { - // Deep compare objects. - var keys = _.keys(a), key; - length = keys.length; - // Ensure that both objects contain the same number of properties before comparing deep equality. - if (_.keys(b).length !== length) return false; - while (length--) { - // Deep compare each member - key = keys[length]; - if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false; - } - } - // Remove the first object from the stack of traversed objects. - aStack.pop(); - bStack.pop(); - return true; - }; - - // Perform a deep comparison to check if two objects are equal. - _.isEqual = function(a, b) { - return eq(a, b); - }; - - // Is a given array, string, or object empty? - // An "empty" object has no enumerable own-properties. - _.isEmpty = function(obj) { - if (obj == null) return true; - if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0; - return _.keys(obj).length === 0; - }; - - // Is a given value a DOM element? - _.isElement = function(obj) { - return !!(obj && obj.nodeType === 1); - }; - - // Is a given value an array? - // Delegates to ECMA5's native Array.isArray - _.isArray = nativeIsArray || function(obj) { - return toString.call(obj) === '[object Array]'; - }; - - // Is a given variable an object? - _.isObject = function(obj) { - var type = typeof obj; - return type === 'function' || type === 'object' && !!obj; - }; - - // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError. - _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) { - _['is' + name] = function(obj) { - return toString.call(obj) === '[object ' + name + ']'; - }; - }); - - // Define a fallback version of the method in browsers (ahem, IE < 9), where - // there isn't any inspectable "Arguments" type. - if (!_.isArguments(arguments)) { - _.isArguments = function(obj) { - return _.has(obj, 'callee'); - }; - } - - // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8, - // IE 11 (#1621), and in Safari 8 (#1929). - if (typeof /./ != 'function' && typeof Int8Array != 'object') { - _.isFunction = function(obj) { - return typeof obj == 'function' || false; - }; - } - - // Is a given object a finite number? - _.isFinite = function(obj) { - return isFinite(obj) && !isNaN(parseFloat(obj)); - }; - - // Is the given value `NaN`? (NaN is the only number which does not equal itself). - _.isNaN = function(obj) { - return _.isNumber(obj) && obj !== +obj; - }; - - // Is a given value a boolean? - _.isBoolean = function(obj) { - return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; - }; - - // Is a given value equal to null? - _.isNull = function(obj) { - return obj === null; - }; - - // Is a given variable undefined? - _.isUndefined = function(obj) { - return obj === void 0; - }; - - // Shortcut function for checking if an object has a given property directly - // on itself (in other words, not on a prototype). - _.has = function(obj, key) { - return obj != null && hasOwnProperty.call(obj, key); - }; - - // Utility Functions - // ----------------- - - // Run Underscore.js in *noConflict* mode, returning the `_` variable to its - // previous owner. Returns a reference to the Underscore object. - _.noConflict = function() { - root._ = previousUnderscore; - return this; - }; - - // Keep the identity function around for default iteratees. - _.identity = function(value) { - return value; - }; - - // Predicate-generating functions. Often useful outside of Underscore. - _.constant = function(value) { - return function() { - return value; - }; - }; - - _.noop = function(){}; - - _.property = property; - - // Generates a function for a given object that returns a given property. - _.propertyOf = function(obj) { - return obj == null ? function(){} : function(key) { - return obj[key]; - }; - }; - - // Returns a predicate for checking whether an object has a given set of - // `key:value` pairs. - _.matcher = _.matches = function(attrs) { - attrs = _.extendOwn({}, attrs); - return function(obj) { - return _.isMatch(obj, attrs); - }; - }; - - // Run a function **n** times. - _.times = function(n, iteratee, context) { - var accum = Array(Math.max(0, n)); - iteratee = optimizeCb(iteratee, context, 1); - for (var i = 0; i < n; i++) accum[i] = iteratee(i); - return accum; - }; - - // Return a random integer between min and max (inclusive). - _.random = function(min, max) { - if (max == null) { - max = min; - min = 0; - } - return min + Math.floor(Math.random() * (max - min + 1)); - }; - - // A (possibly faster) way to get the current timestamp as an integer. - _.now = Date.now || function() { - return new Date().getTime(); - }; - - // List of HTML entities for escaping. - var escapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' - }; - var unescapeMap = _.invert(escapeMap); - - // Functions for escaping and unescaping strings to/from HTML interpolation. - var createEscaper = function(map) { - var escaper = function(match) { - return map[match]; - }; - // Regexes for identifying a key that needs to be escaped - var source = '(?:' + _.keys(map).join('|') + ')'; - var testRegexp = RegExp(source); - var replaceRegexp = RegExp(source, 'g'); - return function(string) { - string = string == null ? '' : '' + string; - return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; - }; - }; - _.escape = createEscaper(escapeMap); - _.unescape = createEscaper(unescapeMap); - - // If the value of the named `property` is a function then invoke it with the - // `object` as context; otherwise, return it. - _.result = function(object, property, fallback) { - var value = object == null ? void 0 : object[property]; - if (value === void 0) { - value = fallback; - } - return _.isFunction(value) ? value.call(object) : value; - }; - - // Generate a unique integer id (unique within the entire client session). - // Useful for temporary DOM ids. - var idCounter = 0; - _.uniqueId = function(prefix) { - var id = ++idCounter + ''; - return prefix ? prefix + id : id; - }; - - // By default, Underscore uses ERB-style template delimiters, change the - // following template settings to use alternative delimiters. - _.templateSettings = { - evaluate : /<%([\s\S]+?)%>/g, - interpolate : /<%=([\s\S]+?)%>/g, - escape : /<%-([\s\S]+?)%>/g - }; - - // When customizing `templateSettings`, if you don't want to define an - // interpolation, evaluation or escaping regex, we need one that is - // guaranteed not to match. - var noMatch = /(.)^/; - - // Certain characters need to be escaped so that they can be put into a - // string literal. - var escapes = { - "'": "'", - '\\': '\\', - '\r': 'r', - '\n': 'n', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - var escaper = /\\|'|\r|\n|\u2028|\u2029/g; - - var escapeChar = function(match) { - return '\\' + escapes[match]; - }; - - // JavaScript micro-templating, similar to John Resig's implementation. - // Underscore templating handles arbitrary delimiters, preserves whitespace, - // and correctly escapes quotes within interpolated code. - // NB: `oldSettings` only exists for backwards compatibility. - _.template = function(text, settings, oldSettings) { - if (!settings && oldSettings) settings = oldSettings; - settings = _.defaults({}, settings, _.templateSettings); - - // Combine delimiters into one regular expression via alternation. - var matcher = RegExp([ - (settings.escape || noMatch).source, - (settings.interpolate || noMatch).source, - (settings.evaluate || noMatch).source - ].join('|') + '|$', 'g'); - - // Compile the template source, escaping string literals appropriately. - var index = 0; - var source = "__p+='"; - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset).replace(escaper, escapeChar); - index = offset + match.length; - - if (escape) { - source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; - } else if (interpolate) { - source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; - } else if (evaluate) { - source += "';\n" + evaluate + "\n__p+='"; - } - - // Adobe VMs need the match returned to produce the correct offest. - return match; - }); - source += "';\n"; - - // If a variable is not specified, place data values in local scope. - if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; - - source = "var __t,__p='',__j=Array.prototype.join," + - "print=function(){__p+=__j.call(arguments,'');};\n" + - source + 'return __p;\n'; - - try { - var render = new Function(settings.variable || 'obj', '_', source); - } catch (e) { - e.source = source; - throw e; - } - - var template = function(data) { - return render.call(this, data, _); - }; - - // Provide the compiled source as a convenience for precompilation. - var argument = settings.variable || 'obj'; - template.source = 'function(' + argument + '){\n' + source + '}'; - - return template; - }; - - // Add a "chain" function. Start chaining a wrapped Underscore object. - _.chain = function(obj) { - var instance = _(obj); - instance._chain = true; - return instance; - }; - - // OOP - // --------------- - // If Underscore is called as a function, it returns a wrapped object that - // can be used OO-style. This wrapper holds altered versions of all the - // underscore functions. Wrapped objects may be chained. - - // Helper function to continue chaining intermediate results. - var result = function(instance, obj) { - return instance._chain ? _(obj).chain() : obj; - }; - - // Add your own custom functions to the Underscore object. - _.mixin = function(obj) { - _.each(_.functions(obj), function(name) { - var func = _[name] = obj[name]; - _.prototype[name] = function() { - var args = [this._wrapped]; - push.apply(args, arguments); - return result(this, func.apply(_, args)); - }; - }); - }; - - // Add all of the Underscore functions to the wrapper object. - _.mixin(_); - - // Add all mutator Array functions to the wrapper. - _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - var obj = this._wrapped; - method.apply(obj, arguments); - if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0]; - return result(this, obj); - }; - }); - - // Add all accessor Array functions to the wrapper. - _.each(['concat', 'join', 'slice'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - return result(this, method.apply(this._wrapped, arguments)); - }; - }); - - // Extracts the result from a wrapped and chained object. - _.prototype.value = function() { - return this._wrapped; - }; - - // Provide unwrapping proxy for some methods used in engine operations - // such as arithmetic and JSON stringification. - _.prototype.valueOf = _.prototype.toJSON = _.prototype.value; - - _.prototype.toString = function() { - return '' + this._wrapped; - }; - - // AMD registration happens at the end for compatibility with AMD loaders - // that may not enforce next-turn semantics on modules. Even though general - // practice for AMD registration is to be anonymous, underscore registers - // as a named module because, like jQuery, it is a base library that is - // popular enough to be bundled in a third party lib, but not be part of - // an AMD load request. Those cases could generate an error when an - // anonymous define() is called outside of a loader request. - if (typeof define === 'function' && define.amd) { - define('underscore', [], function() { - return _; - }); - } -}.call(this)); - -},{}],26:[function(require,module,exports){ -arguments[4][19][0].apply(exports,arguments) -},{"dup":19}],27:[function(require,module,exports){ -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} -},{}],28:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = require('./support/isBuffer'); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = require('inherits'); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":27,"_process":24,"inherits":26}],29:[function(require,module,exports){ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} - -},{}]},{},[7])(7) -}); \ No newline at end of file diff --git a/ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js b/ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js deleted file mode 100644 index 8201c5e..0000000 --- a/ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js +++ /dev/null @@ -1,48 +0,0 @@ -"use strict";(()=>{var ge=Object.create;var W=Object.defineProperty,ye=Object.defineProperties,me=Object.getOwnPropertyDescriptor,ve=Object.getOwnPropertyDescriptors,xe=Object.getOwnPropertyNames,G=Object.getOwnPropertySymbols,Se=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var J=(t,e,r)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,M=(t,e)=>{for(var r in e||(e={}))X.call(e,r)&&J(t,r,e[r]);if(G)for(var r of G(e))Qe.call(e,r)&&J(t,r,e[r]);return t},Z=(t,e)=>ye(t,ve(e));var K=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var be=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of xe(e))!X.call(t,i)&&i!==r&&W(t,i,{get:()=>e[i],enumerable:!(n=me(e,i))||n.enumerable});return t};var H=(t,e,r)=>(r=t!=null?ge(Se(t)):{},be(e||!t||!t.__esModule?W(r,"default",{value:t,enumerable:!0}):r,t));var z=(t,e,r)=>new Promise((n,i)=>{var s=u=>{try{a(r.next(u))}catch(c){i(c)}},o=u=>{try{a(r.throw(u))}catch(c){i(c)}},a=u=>u.done?n(u.value):Promise.resolve(u.value).then(s,o);a((r=r.apply(t,e)).next())});var re=K((ee,te)=>{/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";/*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - */t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var h=t.utils.clone(r)||{};h.position=[a,c],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;/*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - */t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(r+=n[c+1]*i[h+1],c+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),y=s.str.charAt(1),g;y in s.node.edges?g=s.node.edges[y]:(g=new t.TokenSet,s.node.edges[y]=g),s.str.length==1&&(g.final=!0),i.push({node:g,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};/*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - */t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof ee=="object"?te.exports=r():e.lunr=r()}(this,function(){return t})})()});var q=K((Re,ne)=>{"use strict";/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var Le=/["'&<>]/;ne.exports=we;function we(t){var e=""+t,r=Le.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s=0;r--){let n=t[r];typeof n!="object"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?e.insertBefore(this.previousSibling,n):e.replaceChild(n,this)}}}));var ie=H(q());function se(t){let e=new Map,r=new Set;for(let n of t){let[i,s]=n.location.split("#"),o=n.location,a=n.title,u=n.tags,c=(0,ie.default)(n.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){let h=e.get(i);r.has(h)?e.set(o,{location:o,title:a,text:c,parent:h}):(h.title=n.title,h.text=c,r.add(h))}else e.set(o,M({location:o,title:a,text:c},u&&{tags:u}))}return e}var oe=H(q());function ae(t,e){let r=new RegExp(t.separator,"img"),n=(i,s,o)=>`${s}${o}`;return i=>{i=i.replace(/[\s*+\-:~^]+/g," ").trim();let s=new RegExp(`(^|${t.separator})(${i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return o=>(e?(0,oe.default)(o):o).replace(s,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function ue(t){let e=new lunr.Query(["title","text"]);return new lunr.QueryParser(t,e).parse(),e.clauses}function ce(t,e){var i;let r=new Set(t),n={};for(let s=0;s!n.has(i)))]}var U=class{constructor({config:e,docs:r,options:n}){this.options=n,this.documents=se(r),this.highlight=ae(e,!1),lunr.tokenizer.separator=new RegExp(e.separator),this.index=lunr(function(){e.lang.length===1&&e.lang[0]!=="en"?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use(lunr.multiLanguage(...e.lang));let i=Ee(["trimmer","stopWordFilter","stemmer"],n.pipeline);for(let s of e.lang.map(o=>o==="en"?lunr:lunr[o]))for(let o of i)this.pipeline.remove(s[o]),this.searchPipeline.remove(s[o]);this.ref("location"),this.field("title",{boost:1e3}),this.field("text"),this.field("tags",{boost:1e6,extractor:s=>{let{tags:o=[]}=s;return o.reduce((a,u)=>[...a,...lunr.tokenizer(u)],[])}});for(let s of r)this.add(s,{boost:s.boost})})}search(e){if(e)try{let r=this.highlight(e),n=ue(e).filter(o=>o.presence!==lunr.Query.presence.PROHIBITED),i=this.index.search(`${e}*`).reduce((o,{ref:a,score:u,matchData:c})=>{let h=this.documents.get(a);if(typeof h!="undefined"){let{location:y,title:g,text:b,tags:m,parent:Q}=h,p=ce(n,Object.keys(c.metadata)),d=+!Q+ +Object.values(p).every(w=>w);o.push(Z(M({location:y,title:r(g),text:r(b)},m&&{tags:m.map(r)}),{score:u*(1+d),terms:p}))}return o},[]).sort((o,a)=>a.score-o.score).reduce((o,a)=>{let u=this.documents.get(a.location);if(typeof u!="undefined"){let c="parent"in u?u.parent.location:u.location;o.set(c,[...o.get(c)||[],a])}return o},new Map),s;if(this.options.suggestions){let o=this.index.query(a=>{for(let u of n)a.term(u.term,{fields:["title"],presence:lunr.Query.presence.REQUIRED,wildcard:lunr.Query.wildcard.TRAILING})});s=o.length?Object.keys(o[0].matchData.metadata):[]}return M({items:[...i.values()]},typeof s!="undefined"&&{suggestions:s})}catch(r){console.warn(`Invalid query: ${e} \u2013 see https://bit.ly/2s3ChXG`)}return{items:[]}}};var Y;function ke(t){return z(this,null,function*(){let e="../lunr";if(typeof parent!="undefined"&&"IFrameWorker"in parent){let n=document.querySelector("script[src]"),[i]=n.src.split("/worker");e=e.replace("..",i)}let r=[];for(let n of t.lang){switch(n){case"ja":r.push(`${e}/tinyseg.js`);break;case"hi":case"th":r.push(`${e}/wordcut.js`);break}n!=="en"&&r.push(`${e}/min/lunr.${n}.min.js`)}t.lang.length>1&&r.push(`${e}/min/lunr.multi.min.js`),r.length&&(yield importScripts(`${e}/min/lunr.stemmer.support.min.js`,...r))})}function Te(t){return z(this,null,function*(){switch(t.type){case 0:return yield ke(t.data.config),Y=new U(t.data),{type:1};case 2:return{type:3,data:Y?Y.search(t.data):{items:[]}};default:throw new TypeError("Invalid message type")}})}self.lunr=le.default;addEventListener("message",t=>z(void 0,null,function*(){postMessage(yield Te(t.data))}));})(); -//# sourceMappingURL=search.b97dbffb.min.js.map - diff --git a/ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js.map b/ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js.map deleted file mode 100644 index 5764b1b..0000000 --- a/ghpages08/site/assets/javascripts/workers/search.b97dbffb.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 3, - "sources": ["node_modules/lunr/lunr.js", "node_modules/escape-html/index.js", "src/assets/javascripts/integrations/search/worker/main/index.ts", "src/assets/javascripts/polyfills/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/_/index.ts", "src/assets/javascripts/integrations/search/_/index.ts"], - "sourceRoot": "../../../..", - "sourcesContent": ["/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9\n * Copyright (C) 2020 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.9\"\n/*!\n * lunr.utils\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function () {\n return this\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2020 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example
    \n * hello\n * @example \n * hello world\n * @example \n * title:hello\n * @example \n * hello^10\n * @example \n * hello~2\n * @example \n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.empty\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example \n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example \n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example \n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example \n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example \n * query.term(\"foo\")\n * @example \n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example \n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport lunr from \"lunr\"\n\nimport \"~/polyfills\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Add support for usage with `iframe-worker` polyfill\n *\n * While `importScripts` is synchronous when executed inside of a web worker,\n * it's not possible to provide a synchronous polyfilled implementation. The\n * cool thing is that awaiting a non-Promise is a noop, so extending the type\n * definition to return a `Promise` shouldn't break anything.\n *\n * @see https://bit.ly/2PjDnXi - GitHub comment\n */\ndeclare global {\n function importScripts(...urls: string[]): Promise | void\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nlet index: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch (= import) multi-language support through `lunr-languages`\n *\n * This function automatically imports the stemmers necessary to process the\n * languages, which are defined through the search index configuration.\n *\n * If the worker runs inside of an `iframe` (when using `iframe-worker` as\n * a shim), the base URL for the stemmers to be loaded must be determined by\n * searching for the first `script` element with a `src` attribute, which will\n * contain the contents of this script.\n *\n * @param config - Search index configuration\n *\n * @returns Promise resolving with no result\n */\nasync function setupSearchLanguages(\n config: SearchIndexConfig\n): Promise {\n let base = \"../lunr\"\n\n /* Detect `iframe-worker` and fix base URL */\n if (typeof parent !== \"undefined\" && \"IFrameWorker\" in parent) {\n const worker = document.querySelector(\"script[src]\")!\n const [path] = worker.src.split(\"/worker\")\n\n /* Prefix base with path */\n base = base.replace(\"..\", path)\n }\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n switch (lang) {\n\n /* Add segmenter for Japanese */\n case \"ja\":\n scripts.push(`${base}/tinyseg.js`)\n break\n\n /* Add segmenter for Hindi and Thai */\n case \"hi\":\n case \"th\":\n scripts.push(`${base}/wordcut.js`)\n break\n }\n\n /* Add language support */\n if (lang !== \"en\")\n scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n await importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @returns Target message\n */\nexport async function handler(\n message: SearchMessage\n): Promise {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n await setupSearchLanguages(message.data.config)\n index = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: index ? index.search(message.data) : { items: [] }\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\n/* @ts-expect-error - expose Lunr.js in global scope, or stemmers won't work */\nself.lunr = lunr\n\n/* Handle messages */\naddEventListener(\"message\", async ev => {\n postMessage(await handler(ev.data))\n})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node !== \"object\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location, title and tags */\n const location = doc.location\n const title = doc.title\n const tags = doc.tags\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n ...tags && { tags }\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query clause\n */\nexport interface SearchQueryClause {\n presence: lunr.Query.presence /* Clause presence */\n term: string /* Clause term */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search query terms\n */\nexport type SearchQueryTerms = Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Parse a search query for analysis\n *\n * @param value - Query value\n *\n * @returns Search query clauses\n */\nexport function parseSearchQuery(\n value: string\n): SearchQueryClause[] {\n const query = new (lunr as any).Query([\"title\", \"text\"])\n const parser = new (lunr as any).QueryParser(value, query)\n\n /* Parse and return query clauses */\n parser.parse()\n return query.clauses\n}\n\n/**\n * Analyze the search query clauses in regard to the search terms found\n *\n * @param query - Search query clauses\n * @param terms - Search terms\n *\n * @returns Search query terms\n */\nexport function getSearchQueryTerms(\n query: SearchQueryClause[], terms: string[]\n): SearchQueryTerms {\n const clauses = new Set(query)\n\n /* Match query clauses against terms */\n const result: SearchQueryTerms = {}\n for (let t = 0; t < terms.length; t++)\n for (const clause of clauses)\n if (terms[t].startsWith(clause.term)) {\n result[clause.term] = true\n clauses.delete(clause)\n }\n\n /* Annotate unmatched non-stopword query clauses */\n for (const clause of clauses)\n if (lunr.stopWordFilter?.(clause.term as any))\n result[clause.term] = false\n\n /* Return query terms */\n return result\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n SearchDocument,\n SearchDocumentMap,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\nimport { SearchOptions } from \"../options\"\nimport {\n SearchQueryTerms,\n getSearchQueryTerms,\n parseSearchQuery\n} from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n tags?: string[] /* Document tags */\n boost?: number /* Document boost */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n options: SearchOptions /* Search options */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search metadata\n */\nexport interface SearchMetadata {\n score: number /* Score (relevance) */\n terms: SearchQueryTerms /* Search query terms */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result document\n */\nexport type SearchResultDocument = SearchDocument & SearchMetadata\n\n/**\n * Search result item\n */\nexport type SearchResultItem = SearchResultDocument[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n items: SearchResultItem[] /* Search result items */\n suggestions?: string[] /* Search suggestions */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute the difference of two lists of strings\n *\n * @param a - 1st list of strings\n * @param b - 2nd list of strings\n *\n * @returns Difference\n */\nfunction difference(a: string[], b: string[]): string[] {\n const [x, y] = [new Set(a), new Set(b)]\n return [\n ...new Set([...x].filter(value => !y.has(value)))\n ]\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as Lunr.js itself\n * only stores the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The underlying Lunr.js search index\n */\n protected index: lunr.Index\n\n /**\n * Search options\n */\n protected options: SearchOptions\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, options }: SearchIndex) {\n this.options = options\n\n /* Set up document map and highlighter factory */\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config, false)\n\n /* Set separator for tokenizer */\n lunr.tokenizer.separator = new RegExp(config.separator)\n\n /* Create search index */\n this.index = lunr(function () {\n\n /* Set up multi-language support */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Compute functions to be removed from the pipeline */\n const fns = difference([\n \"trimmer\", \"stopWordFilter\", \"stemmer\"\n ], options.pipeline)\n\n /* Remove functions from the pipeline for registered languages */\n for (const lang of config.lang.map(language => (\n language === \"en\" ? lunr : (lunr as any)[language]\n ))) {\n for (const fn of fns) {\n this.pipeline.remove(lang[fn])\n this.searchPipeline.remove(lang[fn])\n }\n }\n\n /* Set up reference */\n this.ref(\"location\")\n\n /* Set up fields */\n this.field(\"title\", { boost: 1e3 })\n this.field(\"text\")\n this.field(\"tags\", { boost: 1e6, extractor: doc => {\n const { tags = [] } = doc as SearchDocument\n return tags.reduce((list, tag) => [\n ...list,\n ...lunr.tokenizer(tag)\n ], [] as lunr.Token[])\n } })\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc, { boost: doc.boost })\n })\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param query - Query value\n *\n * @returns Search results\n */\n public search(query: string): SearchResult {\n if (query) {\n try {\n const highlight = this.highlight(query)\n\n /* Parse query to extract clauses for analysis */\n const clauses = parseSearchQuery(query)\n .filter(clause => (\n clause.presence !== lunr.Query.presence.PROHIBITED\n ))\n\n /* Perform search and post-process results */\n const groups = this.index.search(`${query}*`)\n\n /* Apply post-query boosts based on title and search query terms */\n .reduce((item, { ref, score, matchData }) => {\n const document = this.documents.get(ref)\n if (typeof document !== \"undefined\") {\n const { location, title, text, tags, parent } = document\n\n /* Compute and analyze search query terms */\n const terms = getSearchQueryTerms(\n clauses,\n Object.keys(matchData.metadata)\n )\n\n /* Highlight title and text and apply post-query boosts */\n const boost = +!parent + +Object.values(terms).every(t => t)\n item.push({\n location,\n title: highlight(title),\n text: highlight(text),\n ...tags && { tags: tags.map(highlight) },\n score: score * (1 + boost),\n terms\n })\n }\n return item\n }, [])\n\n /* Sort search results again after applying boosts */\n .sort((a, b) => b.score - a.score)\n\n /* Group search results by page */\n .reduce((items, result) => {\n const document = this.documents.get(result.location)\n if (typeof document !== \"undefined\") {\n const ref = \"parent\" in document\n ? document.parent!.location\n : document.location\n items.set(ref, [...items.get(ref) || [], result])\n }\n return items\n }, new Map())\n\n /* Generate search suggestions, if desired */\n let suggestions: string[] | undefined\n if (this.options.suggestions) {\n const titles = this.index.query(builder => {\n for (const clause of clauses)\n builder.term(clause.term, {\n fields: [\"title\"],\n presence: lunr.Query.presence.REQUIRED,\n wildcard: lunr.Query.wildcard.TRAILING\n })\n })\n\n /* Retrieve suggestions for best match */\n suggestions = titles.length\n ? Object.keys(titles[0].matchData.metadata)\n : []\n }\n\n /* Return items and suggestions */\n return {\n items: [...groups.values()],\n ...typeof suggestions !== \"undefined\" && { suggestions }\n }\n\n /* Log errors to console (for now) */\n } catch {\n console.warn(`Invalid query: ${query} \u2013 see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return { items: [] }\n }\n}\n"], - "mappings": "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", - "names": [] -} diff --git a/ghpages08/site/assets/logo.png b/ghpages08/site/assets/logo.png deleted file mode 100644 index 937540f13c434198b3a64a500c0a985f13b0f406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23376 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 XV*(ZDr@9XwY`$oG*{I;WbM*fJ1%)+h diff --git a/ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css b/ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css deleted file mode 100644 index 2730c64..0000000 --- a/ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:transparent;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root,[data-md-color-scheme=default]{--md-default-fg-color:rgba(0,0,0,.87);--md-default-fg-color--light:rgba(0,0,0,.54);--md-default-fg-color--lighter:rgba(0,0,0,.32);--md-default-fg-color--lightest:rgba(0,0,0,.07);--md-default-bg-color:#fff;--md-default-bg-color--light:hsla(0,0%,100%,.7);--md-default-bg-color--lighter:hsla(0,0%,100%,.3);--md-default-bg-color--lightest:hsla(0,0%,100%,.12);--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7);--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:rgba(255,255,0,.5);--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(255,255,0,.5);--md-typeset-del-color:rgba(245,80,61,.15);--md-typeset-ins-color:rgba(11,213,112,.15);--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:rgba(0,0,0,.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-fg-color:#fff;--md-footer-fg-color--light:hsla(0,0%,100%,.7);--md-footer-fg-color--lighter:hsla(0,0%,100%,.3);--md-footer-bg-color:rgba(0,0,0,.87);--md-footer-bg-color--dark:rgba(0,0,0,.32);--md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.05),0 0 0.05rem rgba(0,0,0,.1);--md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.1),0 0 0.05rem rgba(0,0,0,.25);--md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.35)}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}body,input{font-feature-settings:"kern","liga";font-family:var(--md-text-font-family)}body,code,input,kbd,pre{color:var(--md-typeset-color)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr{position:relative}.md-typeset abbr[title]:-webkit-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}.md-typeset abbr[title]:-moz-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}[dir=ltr] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:is(:focus,:hover):after{left:0}[dir=rtl] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:is(:focus,:hover):after{right:0}.md-typeset abbr[title]:is(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li :-webkit-any(ul,ol),.md-typeset ul li :-webkit-any(ul,ol){margin-bottom:.5em;margin-top:.5em}.md-typeset ol li :-moz-any(ul,ol),.md-typeset ul li :-moz-any(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset ol li :-webkit-any(ul,ol),[dir=ltr] .md-typeset ul li :-webkit-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :-moz-any(ul,ol),[dir=ltr] .md-typeset ul li :-moz-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :is(ul,ol),[dir=ltr] .md-typeset ul li :is(ul,ol){margin-left:.625em}[dir=rtl] .md-typeset ol li :-webkit-any(ul,ol),[dir=rtl] .md-typeset ul li :-webkit-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :-moz-any(ul,ol),[dir=rtl] .md-typeset ul li :-moz-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :is(ul,ol),[dir=rtl] .md-typeset ul li :is(ul,ol){margin-right:.625em}.md-typeset ol li :is(ul,ol),.md-typeset ul li :is(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) :-webkit-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-moz-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :is(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-webkit-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-moz-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :is(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :is(th,td):not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :is(th,td):not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) th a{color:inherit}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background:var(--md-typeset-mark-color);color:var(--md-default-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:-webkit-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:-moz-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:is(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{float:right;margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}[dir=rtl] .md-content__button{float:left}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:-webkit-any(:focus,:hover){opacity:.7}.md-footer__link:-moz-any(:focus,:hover){opacity:.7}.md-footer__link:is(:focus,:hover){opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:-webkit-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:-moz-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:is(:focus,:hover){color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:is(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:-webkit-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:-moz-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:is(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem transparent,0 .2rem .4rem transparent;color:var(--md-primary-bg-color);display:block;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary :-webkit-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :-moz-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :is(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:-webkit-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:-moz-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:is(:checked,:indeterminate)~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;float:right;height:.9rem;transition:background-color .25s,transform .25s;width:.9rem}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.1rem;width:100%}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{font-weight:700;margin-top:0;padding:0 .6rem;pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link--index [href]{pointer-events:auto}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:rgba(0,0,0,.54);cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){.md-search__inner{float:right;padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem transparent;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:rgba(0,0,0,.26);border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:hsla(0,0%,100%,.12)}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem rgba(0,0,0,.07);color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:transparent;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::-ms-input-placeholder{-ms-transition:color .25s;transition:color .25s}.md-search__input::placeholder{transition:color .25s}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>*{margin-left:.2rem}[dir=rtl] .md-search__options>*{margin-right:.2rem}.md-search__options>*{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>*{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more summary{color:var(--md-typeset-a-color);cursor:pointer;display:block;font-size:.64rem;outline:none;padding:.75em .8rem;scroll-snap-align:start;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more summary{padding-left:2.2rem}[dir=rtl] .md-search-result__more summary{padding-right:2.2rem}}.md-search-result__more summary:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary::marker{display:none}.md-search-result__more summary::-webkit-details-marker{display:none}.md-search-result__more summary~*>*{opacity:.65}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}.md-search-result__article--document .md-search-result__title{font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result__title{font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result__teaser{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--md-default-fg-color--light);display:-webkit-box;font-size:.64rem;line-height:1.6;margin:.5em 0;max-height:2rem;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:44.9375em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}.md-search-result__teaser mark{background-color:initial;text-decoration:underline}.md-search-result__terms{font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color)}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:-webkit-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-webkit-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:-moz-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-moz-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:is(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid transparent;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid transparent;border-right:.2rem solid transparent;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;-ms-scroll-snap-type:none;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width:76.1875em){.md-overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@-webkit-keyframes facts{0%{height:0}to{height:.65rem}}@keyframes facts{0%{height:0}to{height:.65rem}}@-webkit-keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{font-size:.55rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0}.md-source__repository--active .md-source__facts{-webkit-animation:facts .25s ease-in;animation:facts .25s ease-in}.md-source__fact{display:inline-block}.md-source__repository--active .md-source__fact{-webkit-animation:fact .4s ease-out;animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}[dir=ltr] .md-source__fact:nth-child(1n+2):before{margin-left:.4rem}[dir=rtl] .md-source__fact:nth-child(1n+2):before{margin-right:.4rem}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;padding:0;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:-webkit-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:-moz-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:is(:focus,:hover){color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}.md-tags{margin-bottom:.75em}[dir=ltr] .md-tag{margin-right:.5em}[dir=rtl] .md-tag{margin-left:.5em}.md-tag{background:var(--md-default-fg-color--lightest);border-radius:.4rem;display:inline-block;font-size:.64rem;font-weight:700;line-height:1.6;margin-bottom:.5em;padding:.3125em .9375em}.md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-tag[href]:focus,.md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-tag{vertical-align:text-top}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em transparent;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;transform:scale(.95)}}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em transparent;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;transform:scale(.95)}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-height:0;max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,max-height 0ms .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}:focus-within>.md-tooltip{max-height:1000%;opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height .25s,z-index 0ms}.focus-visible>.md-tooltip{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation:focus-within>*{z-index:2}.md-annotation__inner{font-family:var(--md-text-font-family);top:calc(var(--md-tooltip-y) + 1.2ch)}:not(:focus-within)>.md-annotation__inner{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-annotation__index{color:#fff;cursor:pointer;margin:0 1ch;position:relative;transition:z-index .25s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.126em;margin:0 -.4ch;padding:0 .4ch;position:absolute;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media not all and (prefers-reduced-motion){[data-md-visible]>.md-annotation__index:after{-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite}}:-webkit-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:is(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:focus-within>.md-annotation__index:after{-webkit-animation:none;animation:none;transition:color .25s,background-color .25s}.md-annotation__index [data-md-annotation-id]{display:inline-block;line-height:90%}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;padding-bottom:.1em;transform:scale(1.15);transition:transform .4s cubic-bezier(.1,.7,.1,1);vertical-align:.065em}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:scale(1.25) rotate(45deg)}}:-webkit-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:is(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:focus-within>.md-annotation__index{-webkit-animation:none;animation:none;transition:none}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:is(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@-webkit-keyframes hoverfix{0%{pointer-events:none}}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:-webkit-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-webkit-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:-moz-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-moz-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:is(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{-webkit-animation:hoverfix .25s forwards;animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{-webkit-animation:none;animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset :-webkit-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}.md-typeset :-moz-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}[dir=ltr] .md-typeset :-webkit-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition,details){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition,details){border-right-width:.2rem}.md-typeset :is(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset :-webkit-any(.admonition,details){box-shadow:none}.md-typeset :-moz-any(.admonition,details){box-shadow:none}.md-typeset :is(.admonition,details){box-shadow:none}}.md-typeset :-webkit-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :-moz-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :is(.admonition,details)>*{box-sizing:border-box}.md-typeset :-webkit-any(.admonition,details) :-webkit-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-moz-any(.admonition,details) :-moz-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :is(.admonition,details) :is(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-webkit-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :is(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-webkit-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :is(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-webkit-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :-moz-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :is(.admonition,details)>.tabbed-set:only-child{margin-top:0}html .md-typeset :-webkit-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :-moz-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :is(.admonition,details)>:last-child{margin-bottom:.6rem}.md-typeset :-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}.md-typeset :-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-right-width:.2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-top-left-radius:.1rem}.md-typeset :is(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset :-webkit-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :-moz-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :is(.admonition-title,summary):last-child{margin-bottom:0}.md-typeset :-webkit-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-moz-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain;position:absolute;top:.625em;width:1rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary):before{left:.8rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary):before{left:.8rem}[dir=ltr] .md-typeset :is(.admonition-title,summary):before{left:.8rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary):before{right:.8rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary):before{right:.8rem}[dir=rtl] .md-typeset :is(.admonition-title,summary):before{right:.8rem}.md-typeset :is(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.note){border-color:#448aff}.md-typeset :-moz-any(.admonition,details):-moz-any(.note){border-color:#448aff}.md-typeset :is(.admonition,details):is(.note){border-color:#448aff}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :is(.note)>:is(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):before{background-color:#448aff;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.note)>:is(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-moz-any(.admonition,details):-moz-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :is(.admonition,details):is(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.info,.todo){border-color:#00b8d4}.md-typeset :-moz-any(.admonition,details):-moz-any(.info,.todo){border-color:#00b8d4}.md-typeset :is(.admonition,details):is(.info,.todo){border-color:#00b8d4}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-moz-any(.admonition,details):-moz-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :is(.admonition,details):is(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.success,.check,.done){border-color:#00c853}.md-typeset :-moz-any(.admonition,details):-moz-any(.success,.check,.done){border-color:#00c853}.md-typeset :is(.admonition,details):is(.success,.check,.done){border-color:#00c853}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):before{background-color:#00c853;mask-image:var(--md-admonition-icon--success);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :-moz-any(.admonition,details):-moz-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :is(.admonition,details):is(.question,.help,.faq){border-color:#64dd17}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-moz-any(.admonition,details):-moz-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :is(.admonition,details):is(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-moz-any(.admonition,details):-moz-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :is(.admonition,details):is(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.danger,.error){border-color:#ff1744}.md-typeset :-moz-any(.admonition,details):-moz-any(.danger,.error){border-color:#ff1744}.md-typeset :is(.admonition,details):is(.danger,.error){border-color:#ff1744}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.bug){border-color:#f50057}.md-typeset :-moz-any(.admonition,details):-moz-any(.bug){border-color:#f50057}.md-typeset :is(.admonition,details):is(.bug){border-color:#f50057}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :is(.bug)>:is(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.bug)>:is(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.example){border-color:#7c4dff}.md-typeset :-moz-any(.admonition,details):-moz-any(.example){border-color:#7c4dff}.md-typeset :is(.admonition,details):is(.example){border-color:#7c4dff}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :is(.example)>:is(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):before{background-color:#7c4dff;mask-image:var(--md-admonition-icon--example);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.example)>:is(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :-moz-any(.admonition,details):-moz-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :is(.admonition,details):is(.quote,.cite){border-color:#9e9e9e}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:-webkit-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:-moz-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:is(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :-webkit-any(:hover,:target)>.headerlink{opacity:1;-webkit-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :-moz-any(:hover,:target)>.headerlink{opacity:1;-moz-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :is(:hover,:target)>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:-webkit-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:-moz-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:is(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset :-webkit-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :-moz-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :is(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:-moz-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset :-webkit-any(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset :-moz-any(del,ins,.comment).critic{box-decoration-break:clone}.md-typeset :is(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :is(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :is(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight :-webkit-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :-moz-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :is(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight :-webkit-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-moz-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :is(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-webkit-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-moz-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :is(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-webkit-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-moz-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :is(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-webkit-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :is(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-moz-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :is(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-webkit-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-moz-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :is(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-webkit-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-moz-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :is(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-webkit-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :is(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-moz-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :is(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-webkit-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-moz-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :is(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-webkit-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-moz-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :is(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-webkit-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :-moz-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :is(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable :-webkit-any(tbody,td){display:block;padding:0}.highlighttable :-moz-any(tbody,td){display:block;padding:0}.highlighttable :is(tbody,td){display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:-webkit-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:-moz-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:is(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid transparent;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,transparent);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,transparent);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color)}.mermaid{line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{float:left;margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}.md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}} \ No newline at end of file diff --git a/ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css.map b/ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css.map deleted file mode 100644 index cddba76..0000000 --- a/ghpages08/site/assets/stylesheets/main.1d29e8d0.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/assets/stylesheets/main/extensions/pymdownx/_keys.scss","../../../src/assets/stylesheets/main.scss","src/assets/stylesheets/main/_resets.scss","src/assets/stylesheets/main/_colors.scss","src/assets/stylesheets/main/_icons.scss","src/assets/stylesheets/main/_typeset.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/main/layout/_banner.scss","src/assets/stylesheets/main/layout/_base.scss","src/assets/stylesheets/main/layout/_clipboard.scss","src/assets/stylesheets/main/layout/_content.scss","src/assets/stylesheets/main/layout/_dialog.scss","src/assets/stylesheets/main/layout/_footer.scss","src/assets/stylesheets/main/layout/_form.scss","src/assets/stylesheets/main/layout/_header.scss","src/assets/stylesheets/main/layout/_nav.scss","src/assets/stylesheets/main/layout/_search.scss","src/assets/stylesheets/main/layout/_select.scss","src/assets/stylesheets/main/layout/_sidebar.scss","src/assets/stylesheets/main/layout/_source.scss","src/assets/stylesheets/main/layout/_tabs.scss","src/assets/stylesheets/main/layout/_tag.scss","src/assets/stylesheets/main/layout/_tooltip.scss","src/assets/stylesheets/main/layout/_top.scss","src/assets/stylesheets/main/layout/_version.scss","src/assets/stylesheets/main/extensions/markdown/_admonition.scss","node_modules/material-design-color/material-color.scss","src/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/assets/stylesheets/main/extensions/markdown/_toc.scss","src/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/assets/stylesheets/main/integrations/_mermaid.scss","src/assets/stylesheets/main/_modifiers.scss"],"names":[],"mappings":"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mGJ,C+B/mGE,4CACE,mBAAA,CACA,cAAA,CACA,uB/B4mGJ,C+BzmGI,yDAGE,iBAAA,CADA,eAAA,CADA,a/B6mGN,C+B9mGI,sDAGE,iBAAA,CADA,eAAA,CADA,a/B6mGN,C+B9mGI,gDAGE,iBAAA,CADA,eAAA,CADA,a/B6mGN,CgCnnGE,gCACE,sChCsnGJ,CgCvnGE,6BACE,sChCsnGJ,CgCvnGE,uBACE,sChCsnGJ,CgCnnGE,cACE,yChCqnGJ,CgCzmGE,4DACE,oChC2mGJ,CgC5mGE,yDACE,oChC2mGJ,CgC5mGE,mDACE,oChC2mGJ,CgCnmGE,6CACE,qChCqmGJ,CgCtmGE,0CACE,qChCqmGJ,CgCtmGE,oCACE,qChCqmGJ,CgC3lGE,oDACE,oChC6lGJ,CgC9lGE,iDACE,oChC6lGJ,CgC9lGE,2CACE,oChC6lGJ,CgCplGE,gDACE,qChCslGJ,CgCvlGE,6CACE,qChCslGJ,CgCvlGE,uCACE,qChCslGJ,CgCjlGE,gCACE,kChCmlGJ,CgCplGE,6BACE,kChCmlGJ,CgCplGE,uBACE,kChCmlGJ,CgC7kGE,qCACE,sChC+kGJ,CgChlGE,kCACE,sChC+kGJ,CgChlGE,4BACE,sChC+kGJ,CgCxkGE,yCACE,sChC0kGJ,CgC3kGE,sCACE,sChC0kGJ,CgC3kGE,gCACE,sChC0kGJ,CgCnkGE,yCACE,qChCqkGJ,CgCtkGE,sCACE,qChCqkGJ,CgCtkGE,gCACE,qChCqkGJ,CgC5jGE,gDACE,qChC8jGJ,CgC/jGE,6CACE,qChC8jGJ,CgC/jGE,uCACE,qChC8jGJ,CgCtjGE,6CACE,sChCwjGJ,CgCzjGE,0CACE,sChCwjGJ,CgCzjGE,oCACE,sChCwjGJ,CgC7iGE,yDACE,qChC+iGJ,CgChjGE,sDACE,qChC+iGJ,CgChjGE,gDACE,qChC+iGJ,CgC1iGE,iCAGE,mBAAA,CAFA,gBAAA,CACA,gBhC6iGJ,CgC/iGE,8BAGE,mBAAA,CAFA,gBAAA,CACA,gBhC6iGJ,CgC/iGE,wBAGE,mBAAA,CAFA,gBAAA,CACA,gBhC6iGJ,CgCziGE,eACE,4ChC2iGJ,CgCxiGE,eACE,4Ch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","file":"main.css"} \ No newline at end of file diff --git a/ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css b/ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css deleted file mode 100644 index 30f9264..0000000 --- a/ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css +++ /dev/null @@ -1 +0,0 @@ -@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:rgba(66,135,255,.15);--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(66,135,255,.3);--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-table-color:hsla(var(--md-hue),75%,95%,0.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1);--md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.1);--md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.3),0 0 0.05rem rgba(0,0,0,.25);--md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.4),0 0 0.05rem rgba(0,0,0,.35)}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=slate] img[src$="#only-dark"]{display:initial}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#bd78c9}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a682e3}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#6c91d5}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff9575}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c7846b}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#6c91d5}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:rgba(255,25,71,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:rgba(245,0,86,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:rgba(223,65,251,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:rgba(124,77,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:rgba(66,135,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:rgba(0,145,235,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:rgba(0,186,214,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:rgba(0,189,164,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:rgba(0,199,83,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:rgba(99,222,23,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:rgba(176,235,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:rgba(255,213,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:rgba(255,170,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:rgba(255,145,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:rgba(255,110,66,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:hsla(0,0%,100%,.7);--md-primary-fg-color--dark:rgba(0,0,0,.07);--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54);--md-typeset-a-color:#4051b5}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:rgba(0,0,0,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:rgba(0,0,0,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:rgba(0,0,0,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid rgba(0,0,0,.07)}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:rgba(0,0,0,.54);--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:rgba(0,0,0,.87)}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:hsla(0,0%,100%,.12)}[data-md-color-primary=black] .md-search__form:hover{background-color:hsla(0,0%,100%,.3)}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}} \ No newline at end of file diff --git a/ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css.map b/ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css.map deleted file mode 100644 index 96e380c..0000000 --- a/ghpages08/site/assets/stylesheets/palette.cbb835fc.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"palette.css"} \ No newline at end of file diff --git a/ghpages08/site/index.html b/ghpages08/site/index.html deleted file mode 100644 index c8b6194..0000000 --- a/ghpages08/site/index.html +++ /dev/null @@ -1,1052 +0,0 @@ - - - - - - - - - - - - - - - - Agência Virtual Neoenergia Brasília - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - - - -
    -
    -
    - - -
    -
    - - - - -

    Home

    -

    Logo

    - - -

    Sobre o Projeto

    -
    -Este projeto, desenvolvido pelo Grupo 8 da disciplina Interação Humano-Computador (2022.1), possui o objetivo -de avaliar a qualidade de uso do site Agência Virtual Neoenergia Brasília. Toda a interface será analisada -e todos os problemas encontrados serão documentados nessa wiki com sugestões de correções a fim de que o -usuário consiga atingir o seu objetivo com o máximo de eficiência. -
    - -

    Desenvolvedores.🤝

    -
    Simple single term queryMultiple term queryterm scoped to a fieldterm with a boost of 10term with an edit distance of 2terms with presence modifiersExtracting a nested fieldquery term with trailing wildcardquery term with leading and trailing wildcardquery term with required presenceadding a single term to a queryadding a single term to a query and specifying search fields, term boost and automatic trailing wildcardusing lunr.tokenizer to convert a string to tokens before using them as terms
    - - - - - - - - -

    Clara Ribeiro


    Matheus Perillo


    Luíza Esteves


    Natan Tavares


    Rafael Xavier


    Daniel Coimbra

    - -

    Tabela de Versionamento

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    DataVersãoDescriçãoAutorRevisor
    01/07/20220.1Criação e configuração do github pagesMatheus PerilloNatan Santana
    01/07/20220.2Criação da página Home e páginas base do documentoNatan SantanaClara Ribeiro
    06/07/20220.3Adição da equipe de desenvolvedoresMatheus PerilloLuíza Esteves
    - - - - - - - - - - - - -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/ghpages08/site/search/search_index.json b/ghpages08/site/search/search_index.json deleted file mode 100644 index 075fefc..0000000 --- a/ghpages08/site/search/search_index.json +++ /dev/null @@ -1 +0,0 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Home Fonte: NEOENERGIA BRAS\u00cdLIA Sobre o Projeto Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia. Desenvolvedores.\ud83e\udd1d Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Home"},{"location":"#home","text":"Fonte: NEOENERGIA BRAS\u00cdLIA","title":"Home"},{"location":"#sobre-o-projeto","text":"Este projeto, desenvolvido pelo Grupo 8 da disciplina Intera\u00e7\u00e3o Humano-Computador (2022.1), possui o objetivo de avaliar a qualidade de uso do site Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Toda a interface ser\u00e1 analisada e todos os problemas encontrados ser\u00e3o documentados nessa wiki com sugest\u00f5es de corre\u00e7\u00f5es a fim de que o usu\u00e1rio consiga atingir o seu objetivo com o m\u00e1ximo de efici\u00eancia.","title":"Sobre o Projeto"},{"location":"#desenvolvedores","text":"Clara Ribeiro Matheus Perillo Lu\u00edza Esteves Natan Tavares Rafael Xavier Daniel Coimbra","title":"Desenvolvedores.\ud83e\udd1d"},{"location":"#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 01/07/2022 0.1 Cria\u00e7\u00e3o e configura\u00e7\u00e3o do github pages Matheus Perillo Natan Santana 01/07/2022 0.2 Cria\u00e7\u00e3o da p\u00e1gina Home e p\u00e1ginas base do documento Natan Santana Clara Ribeiro 06/07/2022 0.3 Adi\u00e7\u00e3o da equipe de desenvolvedores Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"apresentacoes/","text":"Apresenta\u00e7\u00f5es Etapa 1 V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1 Etapa 2 V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2 Etapa 3 V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#apresentacoes","text":"","title":"Apresenta\u00e7\u00f5es"},{"location":"apresentacoes/#etapa-1","text":"V\u00eddeo 1: Apresenta\u00e7\u00e3o da etapa 1","title":"Etapa 1"},{"location":"apresentacoes/#etapa-2","text":"V\u00eddeo 2: Apresenta\u00e7\u00e3o da etapa 2","title":"Etapa 2"},{"location":"apresentacoes/#etapa-3","text":"V\u00eddeo 3: Apresenta\u00e7\u00e3o da etapa 3","title":"Etapa 3"},{"location":"apresentacoes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de apresenta\u00e7\u00f5es, adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 1 e 2 Natan Santana Clara Ribeiro 02/08/2022 0.2 Adi\u00e7\u00e3o da apresenta\u00e7\u00e3o da etapa 3 Matheus Perillo Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/caract-plataforma/","text":"Metas de usabilidade Introdu\u00e7\u00e3o \u2003 Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas. Objetivo \u2003 Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo. Metas de usabilidade \u2003 A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. 1. Efic\u00e1cia \u2003 \u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele. Aplica\u00e7\u00e3o \u2003 O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando. 2. Efici\u00eancia \u2003 \u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la. Aplica\u00e7\u00e3o \u2003 Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui . 3. Seguran\u00e7a \u2003 \u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso. Aplica\u00e7\u00e3o \u2003 A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login. 4. Utilidade \u2003 Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente. Aplica\u00e7\u00e3o \u2003 O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes. 5. Aprendizagem \u2003 \u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto. Aplica\u00e7\u00e3o \u2003 Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos. 6. Memoriza\u00e7\u00e3o \u2003 Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas. Aplica\u00e7\u00e3o \u2003 O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013. Tabela de versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade","text":"","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#introducao","text":"Para obter-se que os produtos interativos sejam f\u00e1ceis de aprender, agrad\u00e1veis e eficazes na vis\u00e3o do usu\u00e1rio a usabilidade geralmente \u00e9 considerada como um garantia para tal. \u00c9 utilizada para otimizar as intera\u00e7\u00f5es que as pessoas t\u00eam com produtos interativos para permitir que realizem suas atividades em suas rotinas.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#objetivo","text":"Este documento tem como objetivo identificar e detalhar as caracter\u00edsticas da plataforma de acordo com as metas de usabilidade, que por sua vez, tem como objetivo fornecer ao designer de intera\u00e7\u00e3o um meio de avaliar os aspectos da experi\u00eancia do usu\u00e1rio e de um produto interativo.","title":"Objetivo"},{"location":"analise_de_requisitos/caract-plataforma/#metas-de-usabilidade_1","text":"A seguir ser\u00e1 explicado como as metas de usabilidade se dividem e como elas se aplicam, ou n\u00e3o, ao site da Ag\u00eancia Virtual Neoenergia Bras\u00edlia.","title":"Metas de usabilidade"},{"location":"analise_de_requisitos/caract-plataforma/#1-eficacia","text":"\u00c9 descrita como \"ser eficaz no uso\", e no geral se refere a quanto um produto \u00e9 bom em fazer o que se espera dele.","title":"1. Efic\u00e1cia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao","text":"O site tem uma premissa de ser algo mais objetivo. Dessa forma, os usu\u00e1rios conseguem, na maioria das vezes com ajuda de terceiros, encontrar o que estavam procurando.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#2-eficiencia","text":"\u00c9 descrita como \"ser eficiente no uso\", e no geral se refere \u00e0 maneira como um produto ajuda os usu\u00e1rios na realiza\u00e7\u00e3o de suas tarefas, buscando combater situa\u00e7\u00f5es em que o sistema exija um n\u00famero exagerado de passos para exercer uma tarefa, ou que o usu\u00e1rio tenha que aprender arbitrariamente passos complexos para exerc\u00ea-la.","title":"2. Efici\u00eancia"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_1","text":"Apesar do site oferecer diversos conte\u00fados sobre o uso do sistema, ele apresenta problemas ferindo uma das heur\u00edsticas (Flexibilidade e efici\u00eancia de uso) causando efeitos negativos sobre o usu\u00e1rio ao utilizar o site. Esses problemas est\u00e3o melhores descritos aqui .","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#3-seguranca","text":"\u00c9 descrita como \"ser segura no uso\", e no geral se refere a proteger o usu\u00e1rio de condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis, envolvendo aspectos como prevenir que o usu\u00e1rio cometa erros graves, reduzindo o risco de que ele realize tarefas erradas por engano, ou oferecendo maneiras de recupera\u00e7\u00e3o ao usu\u00e1rio, a partir do cometimento de poss\u00edveis erros no uso.","title":"3. Seguran\u00e7a"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_2","text":"A aplica\u00e7\u00e3o n\u00e3o apresenta uma prote\u00e7\u00e3o para o usu\u00e1rio quanto a condi\u00e7\u00f5es perigosas e situa\u00e7\u00f5es indesej\u00e1veis. Por exemplo, n\u00e3o h\u00e1 a op\u00e7\u00e3o de manter o usu\u00e1rio conectado ou de salvar a senha para facilitar o acesso na pr\u00f3xima vez que for realizar o login.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#4-utilidade","text":"Esta meta \u00e9 descrita como \"ter boa utilidade\", e no geral se refere \u00e0 medida na qual o produto oferece o tipo certo de funcionalidade, de modo que os usu\u00e1rios possam fazer aquilo que precisam ou desejam de uma maneira mais eficiente.","title":"4. Utilidade"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_3","text":"O site oferece ao usu\u00e1rio a possibilidade de realizar o que desejam de maneira eficiente na maioria das vezes.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#5-aprendizagem","text":"\u00c9 descrita como \"ser f\u00e1cil de aprender\", e no geral se refere \u00e0 facilidade de aprender a usar um sistema, permitindo que o usu\u00e1rio consiga utiliz\u00e1-lo rapidamente e se tornarem competentes realizando tarefas sem muito esfor\u00e7o, correspondendo ao tempo a que os usu\u00e1rios est\u00e3o dispostos a gastar para aprenderem a usar o produto.","title":"5. Aprendizagem"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_4","text":"Em rela\u00e7\u00e3o a essa meta foi observado que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os, apesar da maioria dos usu\u00e1rios serem jovens adultos.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#6-memorizacao","text":"Esta meta \u00e9 descrita como \"ser f\u00e1cil de lembrar como usar\", e no geral se refere e \u00e0 facilidade de o usu\u00e1rio lembrar como utilizar um sistema depois de j\u00e1 t\u00ea-lo aprendido, em que os usu\u00e1rios n\u00e3o devam ter de reaprender a realizar as tarefas, ou que ao menos sejam lembrados de como realiz\u00e1-las. Assim, esta meta busca combater tarefas que para serem aprendidas s\u00e3o obscuras, il\u00f3gicas ou mal sequenciadas.","title":"6. Memoriza\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#aplicacao_5","text":"O site por ter funcionalidades muito objetivas deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os. O que permite aos usu\u00e1rios lembrarem com facilidade onde precisam clicar para realizar as tarefas.","title":"Aplica\u00e7\u00e3o"},{"location":"analise_de_requisitos/caract-plataforma/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Preece; Rogers; Sharp. Design de Intera\u00e7\u00e3o. Editora Bookman, 2013.","title":"Bibliografia"},{"location":"analise_de_requisitos/caract-plataforma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Abertura do documento Matheus Perillo Natan Santana 19/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Natan Santana 19/07/2022 0.3 Explica\u00e7\u00e3o dos objetivos Matheus Perillo Natan Santana 19/07/2022 0.4 Explica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana 29/07/2022 0.5 Aplica\u00e7\u00e3o das metas de usabilidade Matheus Perillo Natan Santana","title":"Tabela de versionamento"},{"location":"analise_de_requisitos/guia/","text":"Guia de Estilo Introdu\u00e7\u00e3o Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign. Identidade Visual da NeoEnergia Logo O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br Cores H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos Tipografia A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek Bot\u00f5es e \u00edcones Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia An\u00e1lise de estilo Logo Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos Cores Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia Tipografia Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia Bot\u00f5es e \u00edcones Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam. Bibliografia ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#guia-de-estilo","text":"","title":"Guia de Estilo"},{"location":"analise_de_requisitos/guia/#introducao","text":"Este Guia de Estilo visa reunir os princ\u00edpios e diretrizes de design que guiar\u00e3o o time durante o desenvolvimento de todo o projeto. Aqui ser\u00e3o reunidos todos os elementos essenciais que dever\u00e3o estar presentes na vers\u00e3o final do projeto, al\u00e9m de fornecer embasamento para tomadas de decis\u00f5es sobre o design durante as pr\u00f3ximas etapa do Processo de Design. Grande parte dos t\u00f3picos aqui presentes s\u00e3o baseados no documento Elementos B\u00e1sicos da NeoEnergia Elektro (distribuidora do Mato Grosso do Sul) a qual, junto com a NeoEnergia Brasilia, faz parte do grupo espanhol Iberdrola. J\u00e1 os elementos que n\u00e3o s\u00e3o abordados neste documento da NeoEnergia Elektro, como os Bot\u00f5es e \u00cdcones, foram extra\u00eddos do site da NeoEnergia Bras\u00edlia. No final deste documento, \u00e9 comparado o site Ag\u00eancia Virtual da NeoEnergia Brasilia com os princ\u00edpios e diretrizes aqui descritos, identificando quais elementos est\u00e3o em viola\u00e7\u00e3o e precisar\u00e3o de maior aten\u00e7\u00e3o na fase de redesign.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/guia/#identidade-visual-da-neoenergia","text":"","title":"Identidade Visual da NeoEnergia"},{"location":"analise_de_requisitos/guia/#logo","text":"O logotipo \u00e9 composto pelo s\u00edmbolo e pela tipografia, havendo apenas duas varia\u00e7\u00f5es: horizontal e vertical, como pode-se observar na figura 1. Segundo o documento da marca, a prioridade deve ser sempre para o logotipo vertical, enquanto a vers\u00e3o horizontal deve ser utilizada em \u00faltimo caso. Figura 1: logotipos da Neoenergia Fonte: https://www.neoenergia.com Tamb\u00e9m h\u00e1 varia\u00e7\u00f5es dos logotipos em negativo, caso seja necess\u00e1rio posiciona-los sobre um fundo mais escuro, conforme pode-se ver na figura 2. Figura 2: logotipo negativo da Neoenergia Fonte: https://www.neoenergia.com H\u00e1 uma regra de aplica\u00e7\u00e3o do logotipo a respeito da \u00e1rea de prote\u00e7\u00e3o em torno do mesmo. A marca deve estar rodeada por uma \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso \u00e9 necess\u00e1rio para que a presen\u00e7a do logo n\u00e3o seja diminu\u00edda por outros elementos. Essa \u00e1rea de prote\u00e7\u00e3o m\u00ednima pode ser observada na figura 3. Figura 3: logotipos da Neoenergia Fonte: https://www.neoenergiaelektro.com.br","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores","text":"H\u00e1 3 paletas de cores na identidade visual da marca: as cores corporativas prim\u00e1rias, as cores corporativas secund\u00e1rias e as cores verdes corporativas. As cores corporativas prim\u00e1rias s\u00e3o: verde, azul, amarelo e laranja, conforme mostrado na figura 4. \u00c9 de extrema import\u00e2ncia que os tons usados sejam iguais ao equivalente no sistema Pantone. Figura 4: Cores Prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se primeiro dar prefer\u00eancia ao verde, mas caso n\u00e3o seja poss\u00edvel, pode-se recorrer ao laranja, amarelo e azul, nessa ordem, conforme descrito no gr\u00e1fico 1. Gr\u00e1fico 1: Propor\u00e7\u00e3o de import\u00e2ncia das cores prim\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos As cores corporativas prim\u00e1rias tamb\u00e9m s\u00e3o: verde, azul, amarelo e laranja, por\u00e9m em um diferente tom, conforme mostrado na figura 5. As cores secund\u00e1rias podem ser usadas para complementar as cores prim\u00e1rias. Figura 5: Cores Secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Ao utilizar as cores, deve-se seguir a mesma ordem de prioridade que as cores prim\u00e1rias: verde, laranja, amarelo e azul, nessa ordem. Podemos observar isso no gr\u00e1fico 2. Gr\u00e1fico 2: Propor\u00e7\u00e3o de import\u00e2ncia das cores secund\u00e1rias Fonte: Manual de Identidade - Elementos B\u00e1sicos Pode-se observar na figura 6 as seis cores verdes coorporativas, que podem ser utilizadas para complementar as cores prim\u00e1rias e secund\u00e1rias. A ordem de prioridade deve ser obedecida conforme descrito no gr\u00e1fico 3. Figura 6: Paleta de Verdes Fonte: Manual de Identidade - Elementos B\u00e1sicos Gr\u00e1fico 3: Propor\u00e7\u00e3o de import\u00e2ncia das cores verde Fonte: Manual de Identidade - Elementos B\u00e1sicos","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia","text":"A defini\u00e7\u00e3o de uma tipografia \u00e9 uma parte essencial do design de um produto pois a escolha de uma fonte influencia diretamente na interpreta\u00e7\u00e3o da mensagem sendo comunicada pelo produto e marca. Como a interpreta\u00e7\u00e3o de uma fonte \u00e9 subjetiva e pode transmitir diferentes emo\u00e7\u00f5es, \u00e9 necess\u00e1rio que ela se relacione diretamente com o teor das mensagens e outros elementos gr\u00e1ficos do design. Sendo assim, a tipografia Trebuchet Regular (figura 7) ser\u00e1 utilizada em todos os textos do site e a fonte Trebuchet Bold (figura 8) ser\u00e1 utilizada em t\u00edtulos. Essas fontes foram escolhidas pois s\u00e3o as recomendadas para utiliza\u00e7\u00e3o em sites na web de acordo com o documento de Elementos B\u00e1sicos (P\u00e1gina 66). Figura 7: fonte Trebuchet Regular Fonte: Fontsgeek Figura 8: fonte Trebuchet Bold Fonte: Fontsgeek","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones","text":"Ao criar bot\u00f5es ou inserir \u00edcones durante o processo de design, \u00e9 importante que o usu\u00e1rio saiba exatamente o que ir\u00e1 acontecer caso interaja com os mesmos. Se o contexto em que esses elementos est\u00e3o inseridos n\u00e3o \u00e9 consistente, \u00e9 poss\u00edvel que isso cause confus\u00e3o no usu\u00e1rio e leve o usu\u00e1rio ao erro. Analisando o site da NeoEnergia Bras\u00edlia, podemos observar tr\u00eas formas de intera\u00e7\u00e3o nas p\u00e1ginas, a primeira s\u00e3o bot\u00f5es com linhas retas (figuras 13 e 14), a segunda s\u00e3o bot\u00f5es mais arredondados com texto ou \u00edcones em sua composi\u00e7\u00e3o (figuras 9, 10, 11 e 12), e a terceira s\u00e3o textos com links acompanhados de \u00edcones, indicando redirecionamento para uma outra p\u00e1gina (figuras 15 e 16). Figura 9: bot\u00e3o de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 10: bot\u00e3o \"Saiba mais\" Fonte: NeoEnegergia Bras\u00edlia Figura 11: bot\u00e3o \"Conhe\u00e7a outros canais\" Fonte: NeoEnegergia Bras\u00edlia Figura 12: bot\u00f5es de acesso \u00e0s redes sociais Fonte: NeoEnegergia Bras\u00edlia Figura 13: bot\u00e3o de atualiza\u00e7\u00e3o de cadastro Fonte: NeoEnegergia Bras\u00edlia Figura 14: bot\u00e3o retangular de acesso \u00e0 Ag\u00eancia Virtual Fonte: NeoEnegergia Bras\u00edlia Figura 15: link de acesso ao cart\u00e3o CNPJ Fonte: NeoEnegergia Bras\u00edlia Figura 16: links de acesso \u00e0s tarifas de energia Fonte: NeoEnegergia Bras\u00edlia","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#analise-de-estilo","text":"","title":"An\u00e1lise de estilo"},{"location":"analise_de_requisitos/guia/#logo_1","text":"Ao analisar o site da Ag\u00eancia Virtual da NeoEnergia, considerando as boas pr\u00e1ticas de aplica\u00e7\u00e3o do logotipo conforme o Manual da Marca citado anteriormente, pode-se perceber uma viola\u00e7\u00e3o na \u00e1rea de prote\u00e7\u00e3o m\u00ednima. Isso acontece na p\u00e1gina inicial, conforme a figura 17, em que pode-se observar que o logotipo ultrapassa a \u00e1rea do menu. Figura 17: P\u00e1gina Inicial da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br Tamb\u00e9m podemos observar o mesmo comportamento nas p\u00e1ginas de servi\u00e7o: o logotipo ultrapassa o menu, se sobrepondo a outros elementos da p\u00e1gina, conforme mostra a figura 18. Figura 18: P\u00e1gina de Servi\u00e7os da Ag\u00eancia Virtual Neoenergia Fonte: https://agenciavirtual.neoenergiabrasilia.com.br/Servicos","title":"Logo"},{"location":"analise_de_requisitos/guia/#cores_1","text":"Ao analisar as cores, pode-se perceber v\u00e1rias viola\u00e7\u00f5es ao manual de cores descrito anteriormente. Na p\u00e1gina inicial as cores predominantes s\u00e3o Azul e Laranja. O azul utilizado n\u00e3o \u00e9 o que foi especificado na paleta de cores da marca. Apesar do laranja estar no tom correto, ele deveria aparecer na tela apenas quando n\u00e3o fosse poss\u00edvel utilizar o verde, regra a qual n\u00e3o \u00e9 seguida, pois o verde n\u00e3o aparece em nenhum momento na p\u00e1gina inicial, a n\u00e3o ser na logo. Pode-se perceber isso nas figuras 19, 20 e 21. Tamb\u00e9m podemos observar nas imagens 20 e 21 que foi utilizado a cor cinza, por\u00e9m ela n\u00e3o foi especificada nas paletas de cores da marca. Figura 19: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 20: print da home do site Ag\u00eancia Virtual da Neoenergia Figura 21: print da home do site Ag\u00eancia Virtual da Neoenergia Nas p\u00e1ginas de servi\u00e7os pode-se perceber os mesmos problemas de predomin\u00e2ncia da cor azul e aus\u00eancia do verde principal, conforme ilustra a figura 22. Figura 22: print da p\u00e1gina de servi\u00e7os do site Ag\u00eancia Virtual da Neoenergia","title":"Cores"},{"location":"analise_de_requisitos/guia/#tipografia_1","text":"Como pode ser verificado na figura 23, a tipografia que est\u00e1 sendo utilizada no site da Ag\u00eancia Virtual da NeoEnergia Bras\u00edlia \u00e9 a Roboto, tanto nos textos do site quanto nos t\u00edtulos. Dessa forma, ser\u00e1 necess\u00e1rio mudar a fonte dos textos para Trebuchet Regular e a dos t\u00edtulos para Trebuchet Bold a fim de seguir o guia de estilo definido anteriormente. Figura 23: print do site Ag\u00eancia Virtual da Neoenergia","title":"Tipografia"},{"location":"analise_de_requisitos/guia/#botoes-e-icones_1","text":"Podemos obervar algumas diferen\u00e7as entre os bot\u00f5es do site da NeoEnergia Brasilia com o site Agencia Virtual NeoEnergia. Al\u00e9m das cores, como foi citado anteriormente, percebe-se que os bot\u00f5es da Ag\u00eancia Virtual (figuras 24, 25 e 26) s\u00e3o quase todos retangulares, retos e sem \u00edcones em sua composi\u00e7\u00e3o. Figura 24: bot\u00f5es de acesso \u00e0 conta da ag\u00eancia Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 25: bot\u00e3o \"Servi\u00e7os expressos\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 26: bot\u00e3o \"fechar\" Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia J\u00e1 nos \u00edcones a diferen\u00e7a \u00e9 maior, como vemos na figura 27, os \u00edcones s\u00e3o bem maiores e s\u00e3o acompanhados de um texto com um link para o servi\u00e7o desejado. No site da Ag\u00eancia o acesso \u00e0s redes sociais da empresa se apresenta por \u00edcones interativos (figura 28), j\u00e1 no site da NeoEnergia esse mesmo acesso se d\u00e1 por bot\u00f5es circulares com \u00edcones dentro. Figura 27: \u00edcones e links de servi\u00e7os Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Figura 28: \u00edcones/bot\u00f5es de acesso \u00e0s redes sociais da Ag\u00eancia Virtual Fonte: Ag\u00eancia Virtual NeoEnegergia Bras\u00edlia Apesar de claramente n\u00e3o haver um padr\u00e3o entre os sites, os bot\u00f5es e \u00edcones conseguem prover uma interpreta\u00e7\u00e3o clara ao usu\u00e1rio devido ao apoio textual que esses elementos t\u00eam.","title":"Bot\u00f5es e \u00edcones"},{"location":"analise_de_requisitos/guia/#bibliografia","text":"ELEMENTOS B\u00c1SICOS. Dispon\u00edvel em: https://www.neoenergiaelektro.com.br/Media/Default/DocGalleries/Manual%20de%20Identidade/Novo_manual_Elektro_completo_V2.pdf - Acesso em 26/07/2022 Quem Somos. DIspon\u00edvel em: https://www.neoenergiabrasilia.com.br/sobre-nos/sobre/Paginas/default.aspx - Acesso em 26/07/2022 Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. A import\u00e2ncia da tipografia no universo do design gr\u00e1fico. Dispon\u00edvel em: https://www.escola-panamericana.com.br/acontece/a-importancia-da-tipografia-no-universo-do-design-grafico#:~:text=O%20tipo%20da%20fonte%20pode,marca%20e%20engajar%20o%20p%C3%BAblico. - Acesso em 28/07/2022 A Import\u00e2ncia das Decis\u00f5es de Design em Uma Interface. Dispon\u00edvel em: https://catarinag.medium.com/a-import%C3%A2ncia-das-decis%C3%B5es-de-design-em-uma-interface-7a2171ddff7a - Acesso em 29/07/2022","title":"Bibliografia"},{"location":"analise_de_requisitos/guia/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 25/07/2022 0.1 Cria\u00e7\u00e3o de t\u00f3picos Natan Santana Clara Ribeiro 26/07/2022 0.2 T\u00f3pico de introdu\u00e7\u00e3o Natan Santana Lu\u00edza Esteves 28/07/2022 0.3 T\u00f3pico de tipografia e an\u00e1lise da tipografia Natan Santana Lu\u00edza Esteves 28/07/2022 0.4 T\u00f3pico de logo e cores Clara Ribeiro Lu\u00edza Esteves 28/07/2022 0.5 T\u00f3pico de bot\u00f5es e \u00edcones Rafael Xavier Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/","text":"Perfil do Usu\u00e1rio Introdu\u00e7\u00e3o O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo. Metodologia Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento) Question\u00e1rio Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18 Observa\u00e7\u00f5es Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#perfil-do-usuario","text":"","title":"Perfil do Usu\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#introducao","text":"O perfil de usu\u00e1rio \u00e9 uma forma de entendermos quem s\u00e3o as pessoas que fazem uso do produto, e este documento tem como objetivo descrever as caracter\u00edsticas dos usu\u00e1rios da Ag\u00eancia Virtual Neoenergia Bras\u00edlia. Para entender quem s\u00e3o essas pessoas, perguntas como \"Quem s\u00e3o?\" ou \"Quais seus objetivos?\" devem ser respondidas de alguma forma. Isso pode ser feito por meio de entrevistas ou question\u00e1rios, por exemplo.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#metodologia","text":"Para entender quem s\u00e3o os usu\u00e1rios, nossa equipe elaborou um question\u00e1rio atrav\u00e9s do Google Forms com perguntas que possibilitassem o agrupamento de pessoas com caracter\u00edsticas semelhantes para assim montarmos seus perfis e personas. Vale ressaltar que antes que o question\u00e1rio iniciasse de fato, era necess\u00e1rio aceitar o seguinte termo de consentimento: Figura 1: Quest\u00e3o 1 (Termo de consentimento)","title":"Metodologia"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#questionario","text":"Perguntas e percentuais de respostas Figura 2: Quest\u00e3o 2 Figura 3: Quest\u00e3o 3 Figura 4: Quest\u00e3o 4 Figura 5: Quest\u00e3o 5 Figura 6: Quest\u00e3o 6 Figura 7: Quest\u00e3o 7 Figura 8: Quest\u00e3o 8 Figura 9: Quest\u00e3o 9 Figura 10: Quest\u00e3o 10 As quest\u00f5es a seguir s\u00e3o definidas pelos n\u00edveis de satisfa\u00e7\u00e3o abaixo: Figura 11: Quest\u00e3o 11 Figura 12: Quest\u00e3o 12 Figura 13: Quest\u00e3o 13 Figura 14: Quest\u00e3o 14 Figura 15: Quest\u00e3o 15 Figura 16: Quest\u00e3o 16 Figura 17: Quest\u00e3o 17 Figura 18: Quest\u00e3o 18","title":"Question\u00e1rio"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#observacoes","text":"Em posse dos dados obtidos com a aplica\u00e7\u00e3o do question\u00e1rio, podemos perceber que a maioria do p\u00fablico s\u00e3o jovens adultos (entre 21 e 30) embora a diferen\u00e7a entre as porcentagens das respectivas faixas et\u00e1rias n\u00e3o seja t\u00e3o grande. Percebe-se tamb\u00e9m que muitas pessoas pediram ajuda para realizar alguma tarefa dentro do site, o que indica dificuldade no acesso aos servi\u00e7os. Outro indicativo de dificuldade \u00e9 o fato de que o percentual de pessoas que preferem utilizar o site \u00e9 menor comparado ao percentual das outras alternativas, visto que o site tem uma premissa de ser algo mais objetivo, ao contr\u00e1rio da ceantral de atendimento ao cliente, por exemplo.","title":"Observa\u00e7\u00f5es"},{"location":"analise_de_requisitos/perfil_do_usu%C3%A1rio/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 19/07/2022 0.1 Cria\u00e7\u00e3o do artefato Perfil do Usu\u00e1rio Rafael Xavier Clara Ribeiro","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/","text":"Personas Introdu\u00e7\u00e3o \u2003 Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006) Metodologia \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa. Personas Persona prim\u00e1ria Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Personas"},{"location":"analise_de_requisitos/personas/#personas","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#introducao","text":"Uma persona \u00e9 uma personagem fict\u00edcia, um arqu\u00e9tipo, baseado em dados reais de usu\u00e1rios, criada para descrever um usu\u00e1rio m\u00e9dio. As personas s\u00e3o definidas principalmente por suas vontades, objetivos e interesses que s\u00e3o captados devido a um processo de investiga\u00e7\u00e3o inicial de atividades de usu\u00e1rios. Essa abordagem \u00e9 \u00fatil para conduzir as decis\u00f5es de projeto, para que os designers do produto mantenham o foco nos usu\u00e1rios, um dos pontos mais importante em um sistema de intera\u00e7\u00e3o humano-computador. (Cooper et al. 2007; Pruitt e Adlin, 2006)","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/personas/#metodologia","text":"Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m, uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. \u2003 Este \u00e9 um m\u00e9todo de elicita\u00e7\u00e3o muito utilizado, inclusive existem metodologias de projeto guiadas por personas. \u00c9 tamb\u00e9m uma importante ferramenta de s\u00edntese de ideias, de forma que o nome de uma persona j\u00e1 evoca, na mente dos desenvolvedores, todas as necessidades e objetivos ligados \u00e0quela persona. Determinamos de in\u00edcio, a persona prim\u00e1ria, as secund\u00e1rias e a anti-persona. A partir do Brainstorm realizado em uma reuni\u00e3o com todos os membros do grupo, conseguimos levantar alguns requisitos b\u00e1sicos. A partir desses requisitos, buscamos as personas b\u00e1sicas que mais utilizariam esses requisitos. As personas foram detalhadas, com suas hist\u00f3rias, necessidades e objetivos. \u00c9 importante criar essa imagem v\u00edvida da persona para os designers estabelecerem os requisitos de forma precisa.","title":"Metodologia"},{"location":"analise_de_requisitos/personas/#personas_1","text":"","title":"Personas"},{"location":"analise_de_requisitos/personas/#persona-primaria","text":"Nome Ana Gabriela Foto Imagem 1: Ana Gabriela Persona Descri\u00e7\u00e3o Ana Gabriela, idade de 30 anos, moradora de Brasilia. Professora do Ensino Fundamental e M\u00e9dio, especializada em hist\u00f3ria. Mulher. Casada Mora na Asa Sul, Brasilia. Status Persona prim\u00e1ria. Objetivos N\u00e3o cometer erros, n\u00e3o perder muito tempo no site, n\u00e3o se estressar, ter uma experi\u00eancia mais pr\u00e1tica em rela\u00e7\u00e3o aos outros meios de comunica\u00e7\u00e3o. Habilidades Experi\u00eancia intermedi\u00e1ria de inform\u00e1tica, curso superior em Letras, teve que se adaptar mais \u00e0 tecnologia por causa das aulas remotas, boa em interpreta\u00e7\u00e3o e boa com pessoas. Tarefas Ao acessar, Ana gostaria de visualizar a segunda via, verificar hist\u00f3rico de consumo, atualizar cadastro, acessar o sistema e verificar falta de energia. Relacionamentos \u00c0s vezes pede ao marido para acessar o sistema e realizar algum servi\u00e7o. Requisitos Ela precisa de um sistema que realize as opera\u00e7\u00f5es o mais r\u00e1pido poss\u00edvel, de forma segura, que informe o que est\u00e1 acontecendo e que seja poss\u00edvel acompanhar a solicita\u00e7\u00e3o. Expectivativas Ana Gabriela que o sistema seja t\u00e3o eficiente que n\u00e3o seja necess\u00e1rio outra pessoa para ajud\u00e1-la (seja o marido ou algum atendente). Tabela 1: Persona prim\u00e1ria Nome Matheus Santos Foto Imagem 2: Matheus Santos Persona Descri\u00e7\u00e3o Matheus Santos, 19 anos, morador de Brasilia. Estudante de Engenharia de Software. Homem Solteiro Mora no Taquari, Brasilia. Status Persona secund\u00e1ria. Objetivos Fazer a tarefa o mais r\u00e1pido poss\u00edvel, n\u00e3o ficar perdido, entender bem a tarefa para ensinar, relembrar rapidamente. Habilidades Bastante experi\u00eancia com inform\u00e1tica, bom em jogos virtuais, fazendo engenharia de software. Tarefas Segunda via, atualizar cadastro, acessar a plataforma. Relacionamentos Ajuda os pais e av\u00f3s a acessar o sistema de tempos em tempos, quando precisam realizar algum servi\u00e7o mais urgente ou complexo. Requisitos Sistema f\u00e1cil de reconhecer e eficiente, recupera\u00e7\u00e3o de senha f\u00e1cil. Expectivativas Que o sistema seja f\u00e1cil de usar, intuitivo, f\u00e1cil relembrar. Tabela 2: Persona secund\u00e1ria Nome Wellington Foto Imagem 3: Wellignton Persona Descri\u00e7\u00e3o Wellington, 55 anos, morador de Brasilia. Servidor P\u00fablico. Homem Casado Mora em Sobradinho, Brasilia. Status Persona secund\u00e1ria. Objetivos Quer que o servi\u00e7o seja realizado o mais r\u00e1pido poss\u00edvel e sem complica\u00e7\u00f5es, evitar fazer a\u00e7\u00f5es fora do sistema. Habilidades Experi\u00eancia b\u00e1sica com inform\u00e1tica, mais acostumado com telefone do que computador, acostumados com opera\u00e7\u00f5es mais mec\u00e2nicas. Tarefas Segunda via, atualizar cadastro, acessar a plataforma (Realiza esses servi\u00e7os por outros meios e quando precisa do site pede ajuda para o Matheus). Relacionamentos Sempre realiza os servi\u00e7os por meio da central de atendimento e pede ajuda para realizar algo no sistema somente quando precisa de urg\u00eancia ou quando a central n\u00e3o consegue ajudar. Requisitos Um sistema r\u00e1pido e pr\u00e1tico, sem muitos passos e bem direta. Expectivativas Ele espera que quem estiver ajudando consiga resolver o problema mais r\u00e1pido poss\u00edvel. Tabela 3: Persona secund\u00e1ria Nome Jo\u00e3o Foto Imagem 4: Antipersona Descri\u00e7\u00e3o Jo\u00e3o, 48 anos, morador de Brasilia. Vendedor. Homem Casado Mora no Gama, Brasilia. Contexto Queria ter tirado a segunda via da conta de energia, mas entrou no website da Neoenergia sem saber que n\u00e3o se aplica \u00e0 sua resid\u00eancia. Jo\u00e3o n\u00e3o precisar\u00e1 usar o sitema. Tabela 4: Anti-persona","title":"Persona prim\u00e1ria"},{"location":"analise_de_requisitos/personas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/personas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 20/07/2022 0.1 Abertura do documento Matheus Perillo Clara Ribeiro 20/07/2022 0.2 Introdu\u00e7\u00e3o ao documento Matheus Perillo Clara Ribeiro 20/07/2022 0.3 Metodologia utilizada Matheus Perillo Clara Ribeiro 20/07/2022 0.4 Adi\u00e7\u00e3o das Personas Matheus Perillo Clara Ribeiro 20/07/2022 0.5 Adi\u00e7\u00e3o de Personas e Anti-persona Daniel Coimbra Matheus Perillo 20/07/2022 0.6 Mudan\u00e7as na introdu\u00e7\u00e3o e metodologia Daniel Coimbra Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/","text":"Princ\u00edpios Gerais do Projeto Introdu\u00e7\u00e3o Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o. Diretrizes A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro. Conclus\u00e3o Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#principios-gerais-do-projeto","text":"","title":"Princ\u00edpios Gerais do Projeto"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#introducao","text":"Os princ\u00edpios gerais de um projeto voltados para o Design e IHC servem de base para apontar objetivos, regras e boas pr\u00e1ticas que devem ser seguidas dentro de um escopo espec\u00edfico. No entanto, a elabora\u00e7\u00e3o de tais regras n\u00e3o substituem outras fases, como an\u00e1lise, design e avalia\u00e7\u00e3o de IHC, que descrevem detalhadamente pontos importantes dentro dessa constru\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#diretrizes","text":"A constru\u00e7\u00e3o dessas diretrizes se baseiam em nove pontos: correspond\u00eancia com as expectativas dos usu\u00e1rios : o usu\u00e1rio deve ser capaz de identificar relacionamentos entre a\u00e7\u00f5es e suas consequ\u00eancias dentro do sistema; simplicidade nas estruturas das tarefas : fazer com que as tarefas tenham um ciclo de realiza\u00e7\u00e3o o mais simples poss\u00edvel para o usu\u00e1rio; equil\u00edbrio entre controle e liberdade do usu\u00e1rio : trazer o usu\u00e1rio para dentro do controle das a\u00e7\u00f5es, mas reduzindo ao m\u00e1ximo a necessidade do mesmo realizar decis\u00f5es. Com op\u00e7\u00f5es de sa\u00edda a todo momento de uma tarefa em execu\u00e7\u00e3o; consist\u00eancia e padroniza\u00e7\u00e3o : trazer a\u00e7\u00f5es, resultados, layouts e di\u00e1logos de forma padronizada dentro de todo o sistema, para trazer uma maior consist\u00eancia no entendimento do usu\u00e1rio; promo\u00e7\u00e3o da efici\u00eancia do usu\u00e1rio : evitar que processamentos que demandem mais tempo impe\u00e7am o usu\u00e1rio de realizar outras atividades, agilizando suas atividades dentro do sistema. \u00c9 importante tamb\u00e9m n\u00e3o interromp\u00ea-lo dentro de suas a\u00e7\u00f5es sem necessidade e sempre proteg\u00ea-las; antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio : o sistema deve prever o que o usu\u00e1rio ir\u00e1 precisar, de acordo com o andamento de uma a\u00e7\u00e3o. Para isso, pode fornecer informa\u00e7\u00f5es extras antecipadamente, definir valores padr\u00e3o em um formul\u00e1rio, entre outras atividades; visibilidade e reconhecimento : deve-se mostrar ao usu\u00e1rio quais atividades s\u00e3o poss\u00edveis de realizar e como que elas devem ser feitas. Al\u00e9m disso, ao finaliz\u00e1-las, deve-se dar algum indicativo de que a opera\u00e7\u00e3o se encerrou, seja visual ou sonora para se entender o estado do sistema; conte\u00fado relevante e express\u00e3o adequada : trazer quatro princ\u00edpios dentro de uma intera\u00e7\u00e3o: qualidade, quantidade, rela\u00e7\u00e3o e modo; projeto para erros : planejar o sistema pensando sempre que um erro pode ser cometido em qualquer parte de uma a\u00e7\u00e3o, trazendo op\u00e7\u00f5es para desfazer o erro.","title":"Diretrizes"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#conclusao","text":"Fazendo uma an\u00e1lise do sistema da NeoEnergia em rela\u00e7\u00e3o \u00e0s diretrizes apresentadas, podemos identificar necessidades de melhorias de acordo com as mesmas. Os principais pontos a serem corrigidos s\u00e3o: correspond\u00eancia com as expectativas dos usu\u00e1rios informando o resultado de uma a\u00e7\u00e3o de forma mais clara, antecipa\u00e7\u00e3o das necessidades do usu\u00e1rio, conte\u00fado relevante e express\u00e3o adequada melhorando a qualidade das a\u00e7\u00f5es.","title":"Conclus\u00e3o"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/principios_gerais_do_projeto/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 26/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Princ\u00edpios Gerais do Projeto Lu\u00edza Esteves Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/","text":"An\u00e1lise Hier\u00e1rquica de Tarefas Introdu\u00e7\u00e3o A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link). Diagramas e tabelas Acessar a conta no site A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA Relat\u00f3rio Nada Consta A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#analise-hierarquica-de-tarefas","text":"","title":"An\u00e1lise Hier\u00e1rquica de Tarefas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#introducao","text":"A an\u00e1lise de tarefas consiste em observar os objetivos que os usu\u00e1rio desejam alcan\u00e7ar e estudar como eles o realizam e porqu\u00ea com a finalidade de identificar problemas e melhorias \u00e0s tarefas existentes em certo sistema. Para realizar tal an\u00e1lise, existe alguns m\u00e9todos diferentes. Nesta p\u00e1gina sera discutida e mostrada a an\u00e1lise hier\u00e1rquica de tarefas realizada sobre algumas tarefas cr\u00edticas do site Ag\u00eancia Virtual NeoEnergia. A An\u00e1lise Hier\u00e1rquica de Tarefas (HTA \u2013 Hierarchical Task Analysis) possui a finalidade de identificar problemas de desempenho de tarefas complexas e n\u00e3o repetitivas, al\u00e9m de buscar entender as compet\u00eancias e habilidades exibidas nas mesmas (Annett, 2003; Annett e Duncan, 1967). A HTA busca pegar objetivos maiores que podem ser decompostos em subobjetivos e/ou opera\u00e7\u00f5es at\u00e9 que o objetivo maior seja atingido. Assim cada objetivo e opera\u00e7\u00e3o dentro dessa hierarquia \u00e9 examinado atr\u00e1s de poss\u00edveis erros e solu\u00e7\u00f5es. As tarefas selecionadas para essa avalia\u00e7\u00e3o foram a de \"Acessar a conta no site\" e \"Relat\u00f3rio Nada Consta\" pois foram as tarefas que tiveram problemas de interface identificados na avalia\u00e7\u00e3o heur\u00edstica realizada anteriormente (A avalia\u00e7\u00e3o heur\u00edstica pode ser encontrada neste link).","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#diagramas-e-tabelas","text":"","title":"Diagramas e tabelas"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#acessar-a-conta-no-site","text":"A tarefa \"Acessar a conta no site\" \u00e9 uma das principais tarefas do sistema, j\u00e1 que a sua execu\u00e7\u00e3o \u00e9 a que permite o usu\u00e1rio a navegar pelo sistema e realizar outras a\u00e7\u00f5es. Nesta tarefa foram identificadas alguns problemas dentro de alguns subobjetivos e opera\u00e7\u00f5es. Assim, abaixo ser\u00e1 apresentado a an\u00e1lise HTA da mesma idenficando onde est\u00e3o os problemas e levantando recomenda\u00e7\u00f5es de melhoria. A Figura 1 apresenta o diagrama da an\u00e1lise da tarefa \"Acessar a conta no site\" e na Figura 2 e 3 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 1: Diagrama HTA da primeira tarefa Figura 2: Parte 1 da Tabela HTA Figura 3: Parte 2 da Tabela HTA","title":"Acessar a conta no site"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#relatorio-nada-consta","text":"A tarefa de \"Relat\u00f3rio Nada Consta\" consiste em gerar um documento que informa ao usu\u00e1rio que n\u00e3o h\u00e1 contas com o pagamento pendente. A Figura 4 apresenta o diagrama da an\u00e1lise da tarefa \"Relat\u00f3rio Nada Consta\" e na Figura 5 e 6 \u00e9 apresentado a representa\u00e7\u00e3o da HTA em tabela desta mesma tarefa. Figura 4: Diagrama HTA da segunda tarefa Figura 5: Parte 1 da Tabela HTA Figura 6: Parte 2 da Tabela HTA","title":"Relat\u00f3rio Nada Consta"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/analise_hierarquica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de an\u00e1lise hier\u00e1rquica Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/","text":"\u00c1rvores de Tarefas Concorrentes Introdu\u00e7\u00e3o Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT Diagrama de An\u00e1lise de Tarefas Concorrentes Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#arvores-de-tarefas-concorrentes","text":"","title":"\u00c1rvores de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#introducao","text":"Dentro do processo de an\u00e1lise de tarefas, um dos m\u00e9todos utilizados \u00e9 o de An\u00e1lise de Tarefas Concorrentes (CTT), em que, separa-se as tarefas entre: usu\u00e1rios, sistema, interativas e abstratas. Com a elabora\u00e7\u00e3o do CTT, \u00e9 poss\u00edvel identificar tanto a hierarquia entre as atividades quanto as rela\u00e7\u00f5es entre elas. As tarefas se subdividem em 4 tipos: tarefas do usu\u00e1rio, que s\u00e3o feitas a parte do sistema tarefas do sistema, em que o usu\u00e1rio n\u00e3o participa da a\u00e7\u00e3o tarefas interativas, em que tanto o usu\u00e1io como o sistema fazem di\u00e1logo para sua realiza\u00e7\u00e3o tarefas abstratas, que representam um conjunto de tarefas Figura 1: Legenda das tarefas inseridas no CTT","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#diagrama-de-analise-de-tarefas-concorrentes","text":"Dentro do site da NeoEnergia, foram escolhidas algumas tarefas para serem analisadas como mostra as Figuras 2 e 3. Figura 2: \u00c1rvore de tarefas concorrentes referente ao acesso da conta no site Figura 3: \u00c1rvore de tarefas concorrentes referente \u00e0 gera\u00e7\u00e3o do relat\u00f3rio de nada consta","title":"Diagrama de An\u00e1lise de Tarefas Concorrentes"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/arvore_tarefas_concorrentes/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de tarefas concorrentes Lu\u00edza Esteves Matheus Perillo","title":"Tabela de Versionamento"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/","text":"GOMS Introdu\u00e7\u00e3o Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM. KLM-GOMS KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios. Objetivo: Cadastro na plataforma O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM Objetivo: Entrar na plataforma O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s Objetivo: Recuperar a senha O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s Objetivo: Gerar o relat\u00f3rio de nada consta mensal O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro Objetivo: Gerar o relat\u00f3rio de nada consta anual O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#goms","text":"","title":"GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#introducao","text":"Card et al. (1983) propuseram um conjunto de modelos chamado de fam\u00edlia GOMS (Goals, Operators, Methods, and Selection Rules \u2014 Objetivos, Operadores, M\u00e9todos e Regras de Sele\u00e7\u00e3o) para analisar o desempenho de usu\u00e1rios competentes de sistemas computacionais, realizando tarefas dentro da sua compet\u00eancia e sem cometer erros. Muitos sistemas s\u00e3o projetados considerando que as pessoas se tornam habilidosas no seu uso e, portanto, v\u00e3o querer formas eficientes de realizar tarefas rotineiras. Os modelos GOMS t\u00eam se mostrado \u00fateis para prever o desempenho, ou seja, predizer o impacto de decis\u00f5es de design no desempenho competente (John, 2003). A an\u00e1lise GOMS \u00e9 adequada para situa\u00e7\u00f5es onde os usu\u00e1rios est\u00e3o realizando tarefas que j\u00e1 dominam, e n\u00e3o situa\u00e7\u00f5es onde \u00e9 preciso resolver um problema ou identificar qual o pr\u00f3ximo passo a dar. O GOMS pode ser utilizado tanto quantitativamente, fornecendo previs\u00f5es sobre o tempo necess\u00e1rio para realizar tarefas, como qualitativamente, no sentido de auxiliar na elabora\u00e7\u00e3o de programas de treinamento, sistemas de ajuda e sistemas tutores inteligentes, pois um modelo GOMS cont\u00e9m uma descri\u00e7\u00e3o detalhada do conhecimento necess\u00e1rio para realizar cada tarefa (John, 2003). Tamb\u00e9m pode ser utilizado para reprojetar um sistema: pode revelar um objetivo frequente apoiado por um m\u00e9todo muito ineficiente; pode mostrar que alguns objetivos n\u00e3o s\u00e3o apoiados por nenhum m\u00e9todo; e pode revelar onde objetivos semelhantes s\u00e3o apoiados por m\u00e9todos inconsistentes, uma situa\u00e7\u00e3o em que os usu\u00e1rios podem ter problemas para lembrar o que fazer. A fam\u00edlia GOMS possui diversos modelos, mas dentre eles, tr\u00eas se sobressaem: KLM (Card et al., 1983), CMN-GOMS (Card et al., 1983) e CPM-GOMS (John e Gray, 1995). Na nossa an\u00e1lise GOMS adotaremos o modelo KLM.","title":"Introdu\u00e7\u00e3o"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#klm-goms","text":"KLM (Keystroke-level model) \u00e9 uma das t\u00e9cnicas de GOMS e tem o objetivo de prever quanto tempo um usu\u00e1rio levaria para desenvolver uma tarefa em uma rotina sem erros. Essa t\u00e9cnica tem um conjunto predefinido de operadores primitivos, sendo eles: Pressionar uma tecla ou bot\u00e3o; Apontar com o mouse um alvo num dispositivo visual; Mover as m\u00e3os para o teclado ou outro dispositivo; Desenhar um segmento de reta; Se preparar mentalmente para realizar uma a\u00e7\u00e3o ou uma s\u00e9rie de a\u00e7\u00f5es primitivas; Tempo de resposta do sistema. Essa t\u00e9cnica foi utilizada em nosso projeto a fim de analisar tarefas simples e recorrentes, buscando identificar se h\u00e1 espa\u00e7o de melhora em rela\u00e7\u00e3o ao tempo gasto pelos usu\u00e1rios.","title":"KLM-GOMS"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-cadastro-na-plataforma","text":"O primeiro objetivo a ser analisado \u00e9 o de cadastro na plataforma. Como observado na Tabela 1, o tempo levado foi de 1 minuto e 4 segundos. M\u00e9todo: Primeiro acesso > Inser\u00e7\u00e3o de dados > Cadastro conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Primeiro acesso 1,10s B - Clicar no bot\u00e3o Primeiro acesso 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 4s Tabela 1: An\u00e1lise do desempenho do cadastro com o KLM","title":"Objetivo: Cadastro na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-entrar-na-plataforma","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de login na plataforma. Como observado na Tabela 2, o tempo levado foi de 47 segundos. Pode ser observado que o tempo de espera do sistema foi de 24s, elevando bastante o tempo total de execu\u00e7\u00e3o da tarefa. \u00c9 importante ressaltar que mesmo tendo um tempo de espera bastante alto, o usu\u00e1rio n\u00e3o recebe nenhum feedback a respeito dessa demora al\u00e9m de um \u00edcone de loading, o que n\u00e3o esclarece a raz\u00e3o do processo demorar tanto tempo. M\u00e9todo: Login > Inser\u00e7\u00e3o de CPF e Senha > Login conclu\u00eddo Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s W - Espera do sistema 1,07s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input da senha 1,10s B - Clicar na caixa de input da senha 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 3,7s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao checkbox \"n\u00e3o sou um rob\u00f4\" 1,10s B - Clicar no checkbox \"n\u00e3o sou um rob\u00f4\" 0,10s P - Levar o cursor ao bot\u00e3o Entrar 1,10s P - Clicar em Entrar 0,10s W - Espera do sistema 24s Tempo total 47s","title":"Objetivo: Entrar na plataforma"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-recuperar-a-senha","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de recupera\u00e7\u00e3o de senha. Como observado na Tabela 3, o tempo levado foi de 1 minuto e 5 segundos. Pode-se perceber que o tempo de execu\u00e7\u00e3o dessa tarefa se assemelha muito ao tempo de execu\u00e7\u00e3o de cadastro na plataforma, isso acontece porque o fluxo de recupera\u00e7\u00e3o de senha \u00e9 igual ao de cadastro. Informa\u00e7\u00f5es como CPF, data de nascimento, RG e e-mail s\u00e3o necess\u00e1rios para fazer essa recupera\u00e7\u00e3o, fazendo com que o usu\u00e1rio gaste um tempo desnecess\u00e1rio para a realiza\u00e7\u00e3o da tarefa. M\u00e9todo: Login > Esqueci minha senha > Recupera\u00e7\u00e3o de senha Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Login 1,10s B - Clicar no bot\u00e3o Login 0,10s P - Levar o cursor ao bot\u00e3o Esqueci e-mail ou senha 1,10s B - Clicar no bot\u00e3o Esqueci e-mail ou senha 0,10s P - Levar o cursor a caixa de input do CPF 1,10s B - Clicar na caixa de input do CPF 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 11 caracteres 5,1s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar no bot\u00e3o Avan\u00e7ar 0,10s W - Espera do sistema 2,12s P - Levar o cursor a caixa de input da data de nascimento 1,10s B - Clicar na caixa de input da data de nascimento 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 8 caracteres 4,10s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor a caixa de input do RG 1,10s B - Clicar na caixa de input do RG 0,10s H - Levar a m\u00e3o do mouse ao teclado 0,40s T - Digita\u00e7\u00e3o de 7 caracteres 3,20s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Avan\u00e7ar 1,10s B - Clicar em Avan\u00e7ar 0,10s W - Espera do sistema 2,10s P - Levar o cursor a caixa de input de e-mail 1,10s B - Clicar na caixa de input de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s P - Levar o cursor a caixa de input de confirma\u00e7\u00e3o de e-mail 1,10s B - Clicar na caixa de input de confirma\u00e7\u00e3o de e-mail 0,10s T - Digita\u00e7\u00e3o de 30 caracteres 14s H - Levar a m\u00e3o do teclado ao mouse 0,40s P - Levar o cursor ao bot\u00e3o Enviar Dados 1,10s B - Clicar em Enviar Dados 0,10s Tempo total 1min 5s","title":"Objetivo: Recuperar a senha"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-mensal","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta mensal. Como observado na Tabela 4, o tempo levado foi de 13 segundos. Essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o, fazendo com a sua realiza\u00e7\u00e3o seja mais r\u00e1pida. Por\u00e9m, essa a\u00e7\u00e3o est\u00e1 gerando um erro ao ser conclu\u00edda e o relat\u00f3rio n\u00e3o \u00e9 gerado, como pode-se observar na Figura 1. Devido a esse erro, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema para a gera\u00e7\u00e3o do relat\u00f3rio. M\u00e9todo: Gerar relat\u00f3rio mensal > Selecionar o m\u00eas > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Mensal 1,10s B - Clicar no bot\u00e3o Mensal 0,10s P - Levar o cursor ao bot\u00e3o de Selecionar Fatura 1,10s B - Clicar em Selecionar Fatura 0,10s P - Levar o cursor at\u00e9 o m\u00eas escolhido 1,10s B - Clicar no m\u00eas escolhido 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 13s Figura 1 - Mensagem de erro","title":"Objetivo: Gerar o relat\u00f3rio de nada consta mensal"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#objetivo-gerar-o-relatorio-de-nada-consta-anual","text":"O pr\u00f3ximo objetivo a ser analisado \u00e9 o de gera\u00e7\u00e3o de um relat\u00f3rio de nada consta anual. Como observado na Tabela 5, o tempo levado foi de 10 segundos. Assim como o relat\u00f3rio mensal, essa tarefa n\u00e3o necessita de nenhuma digita\u00e7\u00e3o. A gera\u00e7\u00e3o do relat\u00f3rio est\u00e1 com o mesmo erro do relat\u00f3rio mensal e por essa raz\u00e3o, n\u00e3o foi poss\u00edvel registrar o tempo de espera do sistema. M\u00e9todo: Gerar relat\u00f3rio anual > Gera\u00e7\u00e3o conclu\u00edda Opera\u00e7\u00e3o Tempo M\u00e9dio M - Prepara\u00e7\u00e3o 1,20s H - Levar a m\u00e3o ao mouse 0,40s P - Levar o cursor ao bot\u00e3o correspondente ao endere\u00e7o correto 1,10s B - Clicar no bot\u00e3o correspondente ao endere\u00e7o correto 0,10s P - Levar o cursor ao bot\u00e3o Relat\u00f3rio Nada Consta 1,10s B - Clicar no bot\u00e3o Relat\u00f3rio Nada Consta 0,10s W - Espera do sistema 2,58s P - Levar o cursor ao bot\u00e3o Anual 1,10s B - Clicar no bot\u00e3o Anual 0,10s P - Levar o cursor at\u00e9 o bot\u00e3o Gerar Relat\u00f3rio 1,10s B - Clicar em Gerar Relat\u00f3rio 0,10s W - Espera do sistema Tempo total 10s","title":"Objetivo: Gerar o relat\u00f3rio de nada consta anual"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Card, Stuart K., Newell, Allen, e Moran, Thomas P. (1983). The Psychology of Human-Computer Interaction. L. Erlbaum Associates Inc., USA. John, Bonnie E. (2003). Information processing and skilled behavior. In HCI models, theories, and frameworks: Toward a multidisciplinary science, pages 55\u2013101. Morgan Kaufman","title":"Bibliografia"},{"location":"analise_de_requisitos/analise_de_tarefas/goms/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina Natan Santana Lu\u00edza Esteves 19/07/2022 0.2 Adi\u00e7\u00e3o das tabelas de Opera\u00e7\u00e3o e Tempo M\u00e9dio Clara Ribeiro Natan Santana 19/07/2022 0.3 Adi\u00e7\u00e3o de introdu\u00e7\u00e3o e divs Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/","text":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Introdu\u00e7\u00e3o Na etapa de requisitos foi realizada pela equipe a an\u00e1lise de tarefas de algumas fun\u00e7\u00f5es do site, com o objetivo de identificar poss\u00edveis melhorias de tarefas existentes no site da Ag\u00eancia Virtual da Neoenergia. O pr\u00f3ximo passo \u00e9 realizar uma avalia\u00e7\u00e3o com a perspectiva de usu\u00e1rios reais do sistema, pois s\u00f3 assim \u00e9 poss\u00edvel ter uma vis\u00e3o mais ampla sobre as tecnologias que os usu\u00e1rios possuem facilidades, al\u00e9m de entender se h\u00e1 alguma tarefa que necessita uma interven\u00e7\u00e3o mais urgente e se h\u00e1 alguma outra fun\u00e7\u00e3o que poderia ser inclu\u00edda no sistema. Coletar essas informa\u00e7\u00f5es \u00e9 essencial para entender os requisitos que o sistema deve ter para realmente ajudar os usu\u00e1rios a atingirem seus objetivos. Metodologia de avalia\u00e7\u00e3o da An\u00e1lise de tarefas A metodologia escolhida foi a de entrevistas com usu\u00e1rios da Ag\u00eancia Virtual. A entrevista \u00e9 um m\u00e9todo investigativo e consegue coletar as informa\u00e7\u00f5es buscadas por meio de uma pesquisa qualitativa. Com a entrevista \u00e9 poss\u00edvel entender com maiores detalhes as dores dos usu\u00e1rios e seus objetivos. Termo de consentimento O termo de consentimento ser\u00e1 entregue ao usu\u00e1rio antes do in\u00edcio Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o. Ferramentas utilizadas na entrevista A entrevista ser\u00e1 realizada e gravada no Microsoft Teams. Perfis dos entrevistados Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia. Roteiro de perguntas N\u00famero Pergunta Poss\u00edvel Resposta 1 Como voc\u00ea se chama? Pergunta discursiva 2 Qual \u00e9 a sua idade? Pergunta discursiva 3 Com o que voc\u00ea trabalha? Pergunta discursiva 4 \u00c9 voc\u00ea quem paga a conta de energia na sua casa? Sim N\u00e3o 5 Caso a resposta anterior tenha sido \"N\u00e3o\" Voc\u00ea j\u00e1 entrou no site a pedido de algu\u00e9m? Porque? Pergunta discursiva 6 Porque voc\u00ea faz o uso do site? Pergunta discursiva 7 Como foi realizar o primeiro acesso a plataforma? Pergunta discursiva 8 Como \u00e9 fazer login na plataforma? Pergunta discursiva 9 Voc\u00ea j\u00e1 esqueceu a sua senha ao tentar realizar o login? Sim N\u00e3o Inconclusivo 9.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Sim\": O que voc\u00ea achou do processo de recuperar a sua senha? Pergunta discursiva 9.2 Caso tenha sido respondida a op\u00e7\u00e3o \"N\u00e3o\": Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 10 Quais s\u00e3o as atividades que voc\u00ea mais realiza no site? Segunda Via de Conta Religa\u00e7\u00e3o Falta de Energia Atualizar Cadastro Alterar Data de Vencimento Gerar Hist\u00f3rico de Consumo Relat\u00f3rio Nada Consta Data da Pr\u00f3xima Leitura 10.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\": Porque voc\u00ea precisou usar a fun\u00e7\u00e3o de gera\u00e7\u00e3o do relat\u00f3rio nada consta? Pergunta discursiva 10.2 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" na quest\u00e3o 10: Voc\u00ea fez o geramento de qual relat\u00f3rio? Anual Mensal Os dois 10.2 Caso n\u00e3o tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 11 Qual \u00e9 a sua maior dificuldade ao utilizar o site? Pergunta discursiva 12 H\u00e1 alguma funcionalidade que voc\u00ea gostaria muito que tivesse no site? Pergunta discursiva Conclus\u00e3o Os dados coletados durante a entrevista ser\u00e3o registrados e utilizados como insumo para o desenvolvimento do projeto. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento da an\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves","title":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#planejamento-da-avaliacao-da-analise-de-tarefas","text":"","title":"Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#introducao","text":"Na etapa de requisitos foi realizada pela equipe a an\u00e1lise de tarefas de algumas fun\u00e7\u00f5es do site, com o objetivo de identificar poss\u00edveis melhorias de tarefas existentes no site da Ag\u00eancia Virtual da Neoenergia. O pr\u00f3ximo passo \u00e9 realizar uma avalia\u00e7\u00e3o com a perspectiva de usu\u00e1rios reais do sistema, pois s\u00f3 assim \u00e9 poss\u00edvel ter uma vis\u00e3o mais ampla sobre as tecnologias que os usu\u00e1rios possuem facilidades, al\u00e9m de entender se h\u00e1 alguma tarefa que necessita uma interven\u00e7\u00e3o mais urgente e se h\u00e1 alguma outra fun\u00e7\u00e3o que poderia ser inclu\u00edda no sistema. Coletar essas informa\u00e7\u00f5es \u00e9 essencial para entender os requisitos que o sistema deve ter para realmente ajudar os usu\u00e1rios a atingirem seus objetivos.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#metodologia-de-avaliacao-da-analise-de-tarefas","text":"A metodologia escolhida foi a de entrevistas com usu\u00e1rios da Ag\u00eancia Virtual. A entrevista \u00e9 um m\u00e9todo investigativo e consegue coletar as informa\u00e7\u00f5es buscadas por meio de uma pesquisa qualitativa. Com a entrevista \u00e9 poss\u00edvel entender com maiores detalhes as dores dos usu\u00e1rios e seus objetivos.","title":"Metodologia de avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#termo-de-consentimento","text":"O termo de consentimento ser\u00e1 entregue ao usu\u00e1rio antes do in\u00edcio Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o.","title":"Termo de consentimento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#ferramentas-utilizadas-na-entrevista","text":"A entrevista ser\u00e1 realizada e gravada no Microsoft Teams.","title":"Ferramentas utilizadas na entrevista"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#perfis-dos-entrevistados","text":"Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia.","title":"Perfis dos entrevistados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#roteiro-de-perguntas","text":"N\u00famero Pergunta Poss\u00edvel Resposta 1 Como voc\u00ea se chama? Pergunta discursiva 2 Qual \u00e9 a sua idade? Pergunta discursiva 3 Com o que voc\u00ea trabalha? Pergunta discursiva 4 \u00c9 voc\u00ea quem paga a conta de energia na sua casa? Sim N\u00e3o 5 Caso a resposta anterior tenha sido \"N\u00e3o\" Voc\u00ea j\u00e1 entrou no site a pedido de algu\u00e9m? Porque? Pergunta discursiva 6 Porque voc\u00ea faz o uso do site? Pergunta discursiva 7 Como foi realizar o primeiro acesso a plataforma? Pergunta discursiva 8 Como \u00e9 fazer login na plataforma? Pergunta discursiva 9 Voc\u00ea j\u00e1 esqueceu a sua senha ao tentar realizar o login? Sim N\u00e3o Inconclusivo 9.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Sim\": O que voc\u00ea achou do processo de recuperar a sua senha? Pergunta discursiva 9.2 Caso tenha sido respondida a op\u00e7\u00e3o \"N\u00e3o\": Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 10 Quais s\u00e3o as atividades que voc\u00ea mais realiza no site? Segunda Via de Conta Religa\u00e7\u00e3o Falta de Energia Atualizar Cadastro Alterar Data de Vencimento Gerar Hist\u00f3rico de Consumo Relat\u00f3rio Nada Consta Data da Pr\u00f3xima Leitura 10.1 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\": Porque voc\u00ea precisou usar a fun\u00e7\u00e3o de gera\u00e7\u00e3o do relat\u00f3rio nada consta? Pergunta discursiva 10.2 Caso tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" na quest\u00e3o 10: Voc\u00ea fez o geramento de qual relat\u00f3rio? Anual Mensal Os dois 10.2 Caso n\u00e3o tenha sido respondida a op\u00e7\u00e3o \"Relat\u00f3rio Nada Consta\" Pedir para o usu\u00e1rio realizar essa a\u00e7\u00e3o na hora e relatar a experi\u00eancia Pergunta discursiva 11 Qual \u00e9 a sua maior dificuldade ao utilizar o site? Pergunta discursiva 12 H\u00e1 alguma funcionalidade que voc\u00ea gostaria muito que tivesse no site? Pergunta discursiva","title":"Roteiro de perguntas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#conclusao","text":"Os dados coletados durante a entrevista ser\u00e3o registrados e utilizados como insumo para o desenvolvimento do projeto.","title":"Conclus\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/planejamento_tarefas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento da an\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/","text":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Introdu\u00e7\u00e3o Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o das an\u00e1lises de tarefas, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da avalia\u00e7\u00e3o ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo. T\u00f3picos A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos: Objetivo e escopo da avalia\u00e7\u00e3o Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la. M\u00e9todo Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu. Avaliadores e Participantes Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes. Sum\u00e1rio dos dados \u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios. Problemas encontrados De acordo com as tarefas apresentadas aos participantes, ser\u00e1 feita a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas encontrados. Sugest\u00f5es de corre\u00e7\u00f5es Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 05/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o da an\u00e1lise de tarefas Rafael Xavier Clara Ribeiro","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#planejamento-do-relato-dos-resultados-da-avaliacao-da-analise-de-tarefas","text":"","title":"Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#introducao","text":"Este documento tem o papel de descrever como ser\u00e1 feito o relato dos resultados da avalia\u00e7\u00e3o das an\u00e1lises de tarefas, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da avalia\u00e7\u00e3o ser\u00e1 documentada em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o da An\u00e1lise de tarefas\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#topicos","text":"A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos:","title":"T\u00f3picos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#objetivo-e-escopo-da-avaliacao","text":"Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feita e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la.","title":"Objetivo e escopo da avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#metodo","text":"Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu.","title":"M\u00e9todo"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#avaliadores-e-participantes","text":"Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes.","title":"Avaliadores e Participantes"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#sumario-dos-dados","text":"\u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios.","title":"Sum\u00e1rio dos dados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#problemas-encontrados","text":"De acordo com as tarefas apresentadas aos participantes, ser\u00e1 feita a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas encontrados.","title":"Problemas encontrados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#sugestoes-de-correcoes","text":"Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es.","title":"Sugest\u00f5es de corre\u00e7\u00f5es"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/an%C3%A1lise_de_tarefas/resultados_tarefas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 05/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o da an\u00e1lise de tarefas Rafael Xavier Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/","text":"Planejamento da avalia\u00e7\u00e3o do Storyboard Introdu\u00e7\u00e3o O Storyboard \u00e9 uma forma de prototipa\u00e7\u00e3o de baixa fidelidade, em que s\u00e3o utilizados desenhos que mostram a evolu\u00e7\u00e3o de um usu\u00e1rio na realiza\u00e7\u00e3o de uma tarefa, indicando um caminho ideal para conclu\u00ed-la com sucesso. Ao ser colocado junto com os cen\u00e1rios, traz uma riqueza de detalhes e informa\u00e7\u00f5es muito maior para o projeto. Suas principais vatangens ao ser executado s\u00e3o: baixo custo para ser desenvolvido, identifica requisitos, f\u00e1cil comunica\u00e7\u00e3o e avalia v\u00e1rios conceitos do design. Nesse documento, ser\u00e1 feita a descri\u00e7\u00e3o de como ser\u00e1 feita a an\u00e1lise e avalia\u00e7\u00e3o dos storyboards desenvolvidos pela equipe. Metodologias de avalia\u00e7\u00e3o dos Storyboards Dentro do nosso escopo de formas de avalia\u00e7\u00f5es, chegamos a um entendimento de que a forma mais adequada para o nosso projeto de se avaliar o storyboard s\u00e3o com entrevistas com os usu\u00e1rios, fazendo uma investiga\u00e7\u00e3o t\u00e9cnica. Assim, come\u00e7amos o processo de estrutura\u00e7\u00e3o montando um termo de consentimento espec\u00edfico para a entrevista, fizemos a an\u00e1lise de ferramentas necess\u00e1rias, definimos um roteiro de perguntas a serem utilizadas para a avalia\u00e7\u00e3o, podendo serem acrescidas mais caso seja de valia para a avalia\u00e7\u00e3o e fizemos a escolha de perfis para a entrevista. Termo de consentimento Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o. Ferramentas utilizadas na avalia\u00e7\u00e3o Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunica\u00e7\u00e3o quanto a grava\u00e7\u00e3o do encontro. Al\u00e9m disso, solicitaremos que o candidato esteja com l\u00e1pis e papel caso deseje fazer algum esbo\u00e7o de seu racioc\u00ednio. Perfis dos entrevistados Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia. Roteiro de perguntas N\u00famero Pergunta Poss\u00edvel Resposta 1 Observando os dois storyboards dessa tarefa como usu\u00e1rio, voc\u00ea identifica que a sequ\u00eancia das atividades seja coerente? SIM N\u00c3O INCONCLUSIVO 1.1 Se a resposta \u00e0 pergunta 1 foi N\u00c3O ou INCONCLUSIVO, pode explicar o motivo da resposta? Pergunta discursiva 2 Voc\u00ea realmente acha que a Ag\u00eancia Virtual NeoEnergia facilita o usu\u00e1rio a realizar a tarefa indicada? SIM N\u00c3O INCONCLUSIVO 2.1 Explique o porque da sua resposta Pergunta discursiva 3 Qual dos storyboards voc\u00ea acha que mais faz sentido com a tarefa a qual eles est\u00e3o indicados? Pergunta discursiva 4 O que voc\u00ea pensa sobre a solu\u00e7\u00e3o da tarefa do sistema da NeoEnergia no Storyboard? Ela est\u00e1 atendendo ou faltam elementos? Pergunta discursiva 5 Voc\u00ea imagina alguma outra forma de solu\u00e7\u00e3o que poderia ser representado pelos Storyboards? Pergunta discursiva Storyboards desenvolvidos Para a realiza\u00e7\u00e3o da avalia\u00e7\u00e3o de storyboard, os membros do grupo desenvolveram storyboards das seguintes atividades do sistema: recupera\u00e7\u00e3o de senha, recupera\u00e7\u00e3o de email e relat\u00f3rio nada consta. Na Figura 1, \u00e9 colocado a recupera\u00e7\u00e3o de senha no contexto em que o usu\u00e1rio entra no site do sistema para realizar uma atividade mas acaba se esquecendo sua senha e precisa iniciar o processo de recupera\u00e7\u00e3o. Figura 1- Storyboard de recupera\u00e7\u00e3o de senha (Lu\u00edza Esteves) Na Figura 2, \u00e9 contada uma hist\u00f3ria de uma pessoa emitindo um relat\u00f3rio nada consta para o aluguel de uma casa. Figura 2- Storyboard de relat\u00f3rio nada consta (Natan Santana) Na Figura 3, \u00e9 colocado a recupera\u00e7\u00e3o de email para que o usu\u00e1rio consiga ter acesso a atividades do sistema Figura 3- Storyboard de recupera\u00e7\u00e3o de email (Rafael Xavier) Na Figura 4, \u00e9 colocado o relat\u00f3rio nada consta para verificar se as contas realmente est\u00e3o pagas Figura 3- Storyboard de relat\u00f3rio nada consta (Clara Ribeiro) Conclus\u00e3o Com todos esse planejamento, esperamos conseguir identificar todos os pontos a serem melhorados e os que est\u00e3o em um bom n\u00edvel para passar para as pr\u00f3ximas etapas do design. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento de storyboard Lu\u00edza Esteves Natan Santana","title":"Planejamento da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#planejamento-da-avaliacao-do-storyboard","text":"","title":"Planejamento da avalia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#introducao","text":"O Storyboard \u00e9 uma forma de prototipa\u00e7\u00e3o de baixa fidelidade, em que s\u00e3o utilizados desenhos que mostram a evolu\u00e7\u00e3o de um usu\u00e1rio na realiza\u00e7\u00e3o de uma tarefa, indicando um caminho ideal para conclu\u00ed-la com sucesso. Ao ser colocado junto com os cen\u00e1rios, traz uma riqueza de detalhes e informa\u00e7\u00f5es muito maior para o projeto. Suas principais vatangens ao ser executado s\u00e3o: baixo custo para ser desenvolvido, identifica requisitos, f\u00e1cil comunica\u00e7\u00e3o e avalia v\u00e1rios conceitos do design. Nesse documento, ser\u00e1 feita a descri\u00e7\u00e3o de como ser\u00e1 feita a an\u00e1lise e avalia\u00e7\u00e3o dos storyboards desenvolvidos pela equipe.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#metodologias-de-avaliacao-dos-storyboards","text":"Dentro do nosso escopo de formas de avalia\u00e7\u00f5es, chegamos a um entendimento de que a forma mais adequada para o nosso projeto de se avaliar o storyboard s\u00e3o com entrevistas com os usu\u00e1rios, fazendo uma investiga\u00e7\u00e3o t\u00e9cnica. Assim, come\u00e7amos o processo de estrutura\u00e7\u00e3o montando um termo de consentimento espec\u00edfico para a entrevista, fizemos a an\u00e1lise de ferramentas necess\u00e1rias, definimos um roteiro de perguntas a serem utilizadas para a avalia\u00e7\u00e3o, podendo serem acrescidas mais caso seja de valia para a avalia\u00e7\u00e3o e fizemos a escolha de perfis para a entrevista.","title":"Metodologias de avalia\u00e7\u00e3o dos Storyboards"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#termo-de-consentimento","text":"Dentro do termo, buscamos informar tanto sobre a pesquisa quanto a grava\u00e7\u00e3o das entrevistas, deixando claro que tudo ocorrer\u00e1 garantindo o sigilo das informa\u00e7\u00f5es e somente com a devida autoriza\u00e7\u00e3o.","title":"Termo de consentimento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#ferramentas-utilizadas-na-avaliacao","text":"Para realizar a entrevista utilizaremos como ferramenta o Microsoft Teams, que permite tanto a comunica\u00e7\u00e3o quanto a grava\u00e7\u00e3o do encontro. Al\u00e9m disso, solicitaremos que o candidato esteja com l\u00e1pis e papel caso deseje fazer algum esbo\u00e7o de seu racioc\u00ednio.","title":"Ferramentas utilizadas na avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#perfis-dos-entrevistados","text":"Dentro da atividade de Perfil do Usu\u00e1rio e das Personas, conseguimos identificar caracter\u00edsticas necess\u00e1rias para realizar uma entrevista com um usu\u00e1rio. Sendo assim buscaremos dois perfis maiores de 18 anos, que residam no Distrito Federal e que fa\u00e7a utiliza\u00e7\u00e3o do site da Ag\u00eancia Virtual NeoEnergia.","title":"Perfis dos entrevistados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#roteiro-de-perguntas","text":"N\u00famero Pergunta Poss\u00edvel Resposta 1 Observando os dois storyboards dessa tarefa como usu\u00e1rio, voc\u00ea identifica que a sequ\u00eancia das atividades seja coerente? SIM N\u00c3O INCONCLUSIVO 1.1 Se a resposta \u00e0 pergunta 1 foi N\u00c3O ou INCONCLUSIVO, pode explicar o motivo da resposta? Pergunta discursiva 2 Voc\u00ea realmente acha que a Ag\u00eancia Virtual NeoEnergia facilita o usu\u00e1rio a realizar a tarefa indicada? SIM N\u00c3O INCONCLUSIVO 2.1 Explique o porque da sua resposta Pergunta discursiva 3 Qual dos storyboards voc\u00ea acha que mais faz sentido com a tarefa a qual eles est\u00e3o indicados? Pergunta discursiva 4 O que voc\u00ea pensa sobre a solu\u00e7\u00e3o da tarefa do sistema da NeoEnergia no Storyboard? Ela est\u00e1 atendendo ou faltam elementos? Pergunta discursiva 5 Voc\u00ea imagina alguma outra forma de solu\u00e7\u00e3o que poderia ser representado pelos Storyboards? Pergunta discursiva","title":"Roteiro de perguntas"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#storyboards-desenvolvidos","text":"Para a realiza\u00e7\u00e3o da avalia\u00e7\u00e3o de storyboard, os membros do grupo desenvolveram storyboards das seguintes atividades do sistema: recupera\u00e7\u00e3o de senha, recupera\u00e7\u00e3o de email e relat\u00f3rio nada consta. Na Figura 1, \u00e9 colocado a recupera\u00e7\u00e3o de senha no contexto em que o usu\u00e1rio entra no site do sistema para realizar uma atividade mas acaba se esquecendo sua senha e precisa iniciar o processo de recupera\u00e7\u00e3o. Figura 1- Storyboard de recupera\u00e7\u00e3o de senha (Lu\u00edza Esteves) Na Figura 2, \u00e9 contada uma hist\u00f3ria de uma pessoa emitindo um relat\u00f3rio nada consta para o aluguel de uma casa. Figura 2- Storyboard de relat\u00f3rio nada consta (Natan Santana) Na Figura 3, \u00e9 colocado a recupera\u00e7\u00e3o de email para que o usu\u00e1rio consiga ter acesso a atividades do sistema Figura 3- Storyboard de recupera\u00e7\u00e3o de email (Rafael Xavier) Na Figura 4, \u00e9 colocado o relat\u00f3rio nada consta para verificar se as contas realmente est\u00e3o pagas Figura 3- Storyboard de relat\u00f3rio nada consta (Clara Ribeiro)","title":"Storyboards desenvolvidos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#conclusao","text":"Com todos esse planejamento, esperamos conseguir identificar todos os pontos a serem melhorados e os que est\u00e3o em um bom n\u00edvel para passar para as pr\u00f3ximas etapas do design.","title":"Conclus\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/planejamento_storyboard/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de planejamento de storyboard Lu\u00edza Esteves Natan Santana","title":"Tabela de Versionamento"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/","text":"Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Introdu\u00e7\u00e3o Nesta p\u00e1gina ser\u00e1 descrita como ser\u00e1 feito o relato dos resultados da valida\u00e7\u00e3o do Storyboard, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da valida\u00e7\u00e3o ser\u00e3o documentadas em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Storyboard\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo. T\u00f3picos A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos: Objetivos da avalia\u00e7\u00e3o Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feito e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la. M\u00e9todo Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu. Avaliadores e Participantes Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes. Sum\u00e1rio dos dados \u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios. Problemas encontrados De acordo com o Storyboard apresentado aos participantes, ser\u00e1 feito a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas de usabilidade encontrados na interface. Sugest\u00f5es de corre\u00e7\u00f5es Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o Natan Santana Matheus Perillo","title":"Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#planejamento-do-relato-dos-resultados-da-valiacao-do-storyboard","text":"","title":"Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#introducao","text":"Nesta p\u00e1gina ser\u00e1 descrita como ser\u00e1 feito o relato dos resultados da valida\u00e7\u00e3o do Storyboard, descrevendo os itens que ser\u00e3o aborados e apresentados dentro do relat\u00f3rio. A an\u00e1lise dos resultados da valida\u00e7\u00e3o ser\u00e3o documentadas em um p\u00e1gina separada chamada \"Avalia\u00e7\u00e3o do Storyboard\" e partir desse relato, ser\u00e3o levantados pontos de melhoria para o sistema que est\u00e1 sendo avaliado e reprojetado pelo grupo.","title":"Introdu\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#topicos","text":"A fim de relatar os resultados obtidos, ser\u00e1 feito uma documenta\u00e7\u00e3o com os seguintes t\u00f3picos:","title":"T\u00f3picos"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#objetivos-da-avaliacao","text":"Aqui deve ser descrito o porqu\u00ea que esta avalia\u00e7\u00e3o est\u00e1 sendo feito e qual objetivo o grupo pretende alcan\u00e7ar ao realiz\u00e1-la.","title":"Objetivos da avalia\u00e7\u00e3o"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#metodo","text":"Neste t\u00f3pico deve ser descrito o m\u00e9todo que foi utilizado para recolher os dados e de que forma a avalia\u00e7\u00e3o ocorreu.","title":"M\u00e9todo"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#avaliadores-e-participantes","text":"Deve-se listar quais avaliadores participaram e qual papel realizaram durante a execu\u00e7\u00e3o da avalia\u00e7\u00e3o. Tamb\u00e9m deve ser documentado o n\u00famero e o perfil dos participantes.","title":"Avaliadores e Participantes"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#sumario-dos-dados","text":"\u00c9 de extrema import\u00e2ncia listar os dados obtidos durante a avalia\u00e7\u00e3o de uma forma resumida e objetiva, detalhando as respostas para as perguntas e a descri\u00e7\u00e3o das atividades realizadas pelos usu\u00e1rios.","title":"Sum\u00e1rio dos dados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#problemas-encontrados","text":"De acordo com o Storyboard apresentado aos participantes, ser\u00e1 feito a compara\u00e7\u00e3o com o sistema atual a fim de identificar os problemas de usabilidade encontrados na interface.","title":"Problemas encontrados"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#sugestoes-de-correcoes","text":"Por fim, ser\u00e1 feita sugest\u00f5es de corre\u00e7\u00f5es para cada um dos problemas identificados, indicando a prioridade de cada uma das corre\u00e7\u00f5es.","title":"Sugest\u00f5es de corre\u00e7\u00f5es"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio.","title":"Bibliografia"},{"location":"design%2C_avalia%C3%A7%C3%A3o%2C_desenvolvimento/n%C3%ADvel%201/storyboard/resultados_storyboard/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/08/2022 0.1 Adi\u00e7\u00e3o do planejamento do relato dos resultados da avalia\u00e7\u00e3o Natan Santana Matheus Perillo","title":"Tabela de Versionamento"},{"location":"planejamento/cronograma/","text":"Cronograma de atividades Introdu\u00e7\u00e3o Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es. Etapa 1 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design Etapa 2 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas Etapa 3 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo Etapa 4 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard Lu\u00edza Esteves Natan Santana 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Natan Santana Matheus Perillo 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Rafael Xavier Clara Ribeiro 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas Etapa 5 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel Etapa 6 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos Etapa 7 Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade Bibliografia 1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#cronograma-de-atividades","text":"","title":"Cronograma de atividades"},{"location":"planejamento/cronograma/#introducao","text":"Este \u00e9 o cronograma de atividades e entregas da equipe, que est\u00e1 sendo elaborado com base no cronograma de atividades da disciplina Intera\u00e7\u00e3o Humano Computador. Possui o objetivo de documentar quando cada entrega \u00e9 feita, por quem \u00e9 feita e quem faz a revis\u00e3o. Est\u00e1 dividido por etapas, onde cada etapa corresponde a uma apresenta\u00e7\u00e3o que o grupo far\u00e1. As datas limite de entrega s\u00e3o definidas para dois dias antes da apresenta\u00e7\u00e3o para assegurar que haja tempo para as \u00faltimas revis\u00f5es.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/cronograma/#etapa-1","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 07/07/2022 Cria\u00e7\u00e3o e costumiza\u00e7\u00e3o do Github pages e p\u00e1gina inicial do projeto Natan Santana Matheus Perillo 08/07/2022 07/07/2022 Adi\u00e7\u00e3o da equipe no Github pages Matheus Perillo Lu\u00edza Esteves 08/07/2022 07/07/2022 Lista de sites avaliados e site escolhido para a disciplina Lu\u00edza Esteves Rafael Xavier 08/07/2022 07/07/2022 Ferramentas do projeto Daniel Coimbra Natan Santana 08/07/2022 07/07/2022 Processo de Design Clara Ribeiro Matheus Perillo 08/07/2022 07/07/2022 Cronograma de atividades Rafael Xavier Natan Santana 08/07/2022 09/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 10/07/2022 10/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Daniel Coimbra 11/07/2022 Tabela 1: planejamento do projeto e do Processo de Design","title":"Etapa 1"},{"location":"planejamento/cronograma/#etapa-2","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite de revis\u00e3o 18/07/2022 Personas Daniel Coimbra Natan Santana 19/07/2022 18/07/2022 Perfil de Usu\u00e1rios Rafael Xavier Clara Ribeiro 19/07/2022 18/07/2022 \u00c1rvore de Tarefas Concorrentes Lu\u00edza Esteves e Daniel Coimbra Rafael Xavier 19/07/2022 18/07/2022 GOMS Rafael Xavier e Clara Ribeiro Natan Santana 19/07/2022 18/07/2022 An\u00e1lise Hier\u00e1rquica de Tarefas Natan Santana Lu\u00edza Esteves 19/07/2022 19/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Natan Santana 20/07/2022 19/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro e Natan Santana Daniel Coimbra 20/07/2022 Tabela 2: Perfil do usu\u00e1rio, Personas e An\u00e1lise de tarefas","title":"Etapa 2"},{"location":"planejamento/cronograma/#etapa-3","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 29/07/2022 Ajustes no cronograma Rafael Xavier Natan Santana 30/07/2022 29/07/2022 Cen\u00e1rios Daniel Coimbra Clara Ribeiro 30/07/2022 29/07/2022 Ajustes nas personas Daniel Coimbra Natan Santana 30/07/2022 29/07/2022 Ajustes no perfil do usu\u00e1rio Matheus Perillo Rafael Xavier 30/07/2022 29/07/2022 Ajustes nas ferramentas Natan Santana Clara Ribeiro 30/07/2022 29/07/2022 Princ\u00edpios Gerais de Projeto Lu\u00edza Esteves Clara Ribeiro 30/07/2022 29/07/2022 Metas de usabilidade Matheus Perillo Natan Santana 30/07/2022 29/07/2022 Guia de Estilo Clara Ribeiro , Natan Santana e Rafael Xavier Lu\u00edza Esteves 30/07/2022 30/07/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 31/07/2022 31/07/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 01/08/2022 Tabela 3: Princ\u00edpios Gerais de Projeto, Metas de usabilidade, Guia de Estilo","title":"Etapa 3"},{"location":"planejamento/cronograma/#etapa-4","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 05/08/2022 Planejamento da avalia\u00e7\u00e3o do Storyboard Lu\u00edza Esteves Natan Santana 06/08/2022 05/08/2022 Planejamento da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Clara Ribeiro Lu\u00edza Esteves 06/08/2022 05/08/2022 Planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard Natan Santana Matheus Perillo 06/08/2022 05/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o da An\u00e1lise de tarefas Rafael Xavier Clara Ribeiro 06/08/2022 06/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Todos Clara Ribeiro 07/08/2022 07/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o Clara Ribeiro Natan Santana 08/08/2022 Tabela 4: Planejamento da Avalia\u00e7\u00e3o do Storyboard e An\u00e1lise de tarefas, planejamento do relato dos resultados da valia\u00e7\u00e3o do Storyboard e o planejamento do relato dos resultados da avalia\u00e7\u00e3o do An\u00e1lise de tarefas","title":"Etapa 4"},{"location":"planejamento/cronograma/#etapa-5","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 13/08/2022 Relato dos resultados do Story Board 14/08/2022 13/08/2022 Relato dos resultados da An\u00e1lise de tarefas 14/08/2022 13/08/2022 Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 13/08/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel 14/08/2022 15/08/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 16/08/2022 16/08/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 17/08/2022 Tabela 5: Relato dos resultados do Story Board e da An\u00e1lise de tarefas, o Planejamento da Avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel e do planejamento do relato dos resultados da avalia\u00e7\u00e3o do Prot\u00f3tipo de Papel","title":"Etapa 5"},{"location":"planejamento/cronograma/#etapa-6","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 21/08/2022 Verifica\u00e7\u00e3o dos artefatos Tabela 6: Verifica\u00e7\u00e3o dos artefatos","title":"Etapa 6"},{"location":"planejamento/cronograma/#etapa-7","text":"Data limite para entrega Atividade/entrega Autor(es) Revisor Data limite para revis\u00e3o 02/09/2022 Relato dos resultados do Prot\u00f3tipo de Papel 03/09/2022 02/09/2022 Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 02/09/2022 Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade 03/09/2022 03/09/2022 Slides e grava\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 04/09/2022 04/09/2022 Edi\u00e7\u00e3o do v\u00eddeo de apresenta\u00e7\u00e3o 05/09/2022 Tabela 7: Relato dos resultados do Prot\u00f3tipo de Papel, o Planejamento da Avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade e o Planejamento do relato dos resultados da avalia\u00e7\u00e3o do prot\u00f3tipo de alta fidelidade","title":"Etapa 7"},{"location":"planejamento/cronograma/#bibliografia","text":"1. SALES, Andr\u00e9 Barros. Plano de ensino da disciplina. Dispon\u00edvel em: https://aprender3.unb.br . Acesso em: 03 de julho de 2022.","title":"Bibliografia"},{"location":"planejamento/cronograma/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cronograma de atividades Rafael Xavier Natan Santana 06/07/2022 0.2 Adi\u00e7\u00e3o de legendas nas tabelas Rafael Xavier Natan Santana 17/07/2022 0.3 Detalhando etapas do projeto Rafael Xavier Natan Santana 29/07/2022 0.4 Altera\u00e7\u00f5es na etapa 3 e adi\u00e7\u00e3o de data para revis\u00e3o Rafael Xavier Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/ferramentas/","text":"Ferramentas Introdu\u00e7\u00e3o As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o. Ferramentas do Projeto Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto Refer\u00eancias FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022 Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Ferramentas"},{"location":"planejamento/ferramentas/#ferramentas","text":"","title":"Ferramentas"},{"location":"planejamento/ferramentas/#introducao","text":"As ferramentas utilizadas pela equipe ser\u00e3o softwares que facilitar\u00e3o o gerenciamento, comunica\u00e7\u00e3o da equipe e desenvolvimento da documenta\u00e7\u00e3o necess\u00e1ria para a realiza\u00e7\u00e3o do projeto de an\u00e1lise do site da Neoenergia. A Tabela 1 a seguir apresenta as ferramentas utilizadas pelo grupo e vale notar que pode ter modifica\u00e7\u00f5es nessa tabela de acordo com o que o Time achar que poder\u00e1 ajudar no desenvolvimento do projeto durante a execu\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/ferramentas/#ferramentas-do-projeto","text":"Nome Descri\u00e7\u00e3o \u00cdcone Telegram Aplicativo de mensagem instant\u00e2nea. \u00c9 o canal prim\u00e1rio de comunica\u00e7\u00e3o da equipe. Discord Plataforma para comunica\u00e7\u00e3o que usa o Protocolo de Voz Atrav\u00e9s da Internet (VoIP). Usado para reuni\u00f5es s\u00edncronas \u00e0 dist\u00e2ncia. Miro Plataforma de colabora\u00e7\u00e3o visual. Importante para diagrama\u00e7\u00e3o e apresenta\u00e7\u00e3o visual Figma Ferramenta de design gr\u00e1fico com vetores e prototipa\u00e7\u00e3o colaborativa Github Plataforma usada para gerenciamento de configura\u00e7\u00e3o e evolu\u00e7\u00e3o de software MkDocs Gerador de sites est\u00e1ticos MkDocs-Material Temas/Templates para o MkDocs LucidChart Elabora\u00e7\u00e3o de modelo de \u00c1rvore de Tarefas Concorrentes Google Forms Criador de question\u00e1rios e an\u00e1lise de respostas com gr\u00e1ficos Visual Studio Code IDE utilizada para a constru\u00e7\u00e3o do c\u00f3digo da documenta\u00e7\u00e3o Tabela 1: Tabela contendo as ferramentas utilizadas no projeto","title":"Ferramentas do Projeto"},{"location":"planejamento/ferramentas/#referencias","text":"FAQ Telegram. Dispon\u00edvel em: https://telegram.org/faq Telegram - Acesso em 04/07/2022 Discord About page. Dispon\u00edvel em: https://discord.com/company Discord - Acesso em 04/07/2022 Github About page. Dispon\u00edvel em: https://github.com/about Github - Acesso em 04/07/2022 MkDocs landing page introduction. Dispon\u00edvel em: https://www.mkdocs.org/ MkDocs - Acesso em 04/07/2022 MkDocs-Material Github README file. Dispon\u00edvel em: https://github.com/squidfunk/mkdocs-material#readme MkDocs-Material - Acesso em 04/07/2022 Figma. Dispon\u00edvel em: https://www.figma.com/about/ Figma about page - Acesso em 04/07/2022 Miro. Dispon\u00edvel em: https://miro.com/about/ Miro about page - Acesso em 04/07/2022","title":"Refer\u00eancias"},{"location":"planejamento/ferramentas/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o e esbo\u00e7o da p\u00e1gina de ferramentas Daniel Coimbra Natan Santana 04/07/2022 0.2 Mudan\u00e7a de lista para tabela. Adi\u00e7\u00e3o de uma descri\u00e7\u00e3o e um \u00edcone para cada ferramenta Daniel Coimbra Natan Santana 09/07/2022 0.3 Adi\u00e7\u00e3o da introdu\u00e7\u00e3o e legenda da tabela Daniel Coimbra Natan Santana 18/07/2022 0.4 Adi\u00e7\u00e3o de nova feramenta Lu\u00edza Esteves Rafael Xavier 31/07/2022 0.5 Adi\u00e7\u00e3o da ferramenta google forms e vsCode Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/metodologias/","text":"Metodologias Introdu\u00e7\u00e3o A defini\u00e7\u00e3o de metodologias a serem seguidas durante a execu\u00e7\u00e3o de um projeto \u00e9 de extrema import\u00e2ncia, pois isso que permite entregas r\u00e1pidas, sistem\u00e1ticas e de boa qualidade. Assim, nesta p\u00e1gina ser\u00e3o apresentadas as metodologias utilizadas a fim de organizar o grupo e gerenciar o versionamento do c\u00f3digo de documenta\u00e7\u00e3o a ser desenvolvido ao longo do semestre. Scrum Com a finalidade de assegurar que o grupo fa\u00e7a entregas de forma r\u00e1pida, consistente e sem arriscar a qualidade, foi escolhido a metodologia \u00e1gil Scrum seguindo os seguintes princ\u00edpios: Estabelecimento de prazos: todas as entregas possuem um cronograma detalhado onde pode ser consultado o dia m\u00e1ximo para entrega e revis\u00e3o, o autor da entrega e o revisor. Esse cronograma pode ser consultado aqui . Desenvolvimento iterativo: esta wiki \u00e9 a documenta\u00e7\u00e3o do projeto realizado durante este semestre e ela \u00e9 icrementada a cada etapa (sprint) que possue a dura\u00e7\u00e3o de aproximadamente duas semanas. Reuni\u00f5es de planejamento: no come\u00e7o de cada etapa \u00e9 realizada um reuni\u00e3o de planejamento onde \u00e9 dividido cada tarefa e criada as issues no github. Vale notar que o grupo realizou algumas modifica\u00e7\u00f5es \u00e0 metodologia original a fim de encaixar com o contexto da mat\u00e9ria e disponibilidade dos integrantes do membro: No cronograma, chamamos as sprints do Scrum de Etapas. N\u00e3o fazemos dailys, mas fazemos weeklys que s\u00e3o reuni\u00f5es semanais a fim de verificar como est\u00e1 o andamento das atividades passadas no planejamento. Pol\u00edticas Pol\u00edticas de Branchs As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue. Pol\u00edticas de Commits Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit. Bibliografia COHN, Mike. Desenvolvimento de Software com Scrum: Aplicando M\u00e9todos \u00c1geis com Sucesso. 2021. Dispon\u00edvel em: https://books.google.com.br/books. Acesso em: 31 de jul. de 2022. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 31/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de metodologias Natan Santana Lu\u00edza Esteves 04/08/2022 0.2 Corre\u00e7\u00e3o da p\u00e1gina movendo para a pasta de planejamento Natan Santana Lu\u00edza Esteves","title":"Metodologias"},{"location":"planejamento/metodologias/#metodologias","text":"","title":"Metodologias"},{"location":"planejamento/metodologias/#introducao","text":"A defini\u00e7\u00e3o de metodologias a serem seguidas durante a execu\u00e7\u00e3o de um projeto \u00e9 de extrema import\u00e2ncia, pois isso que permite entregas r\u00e1pidas, sistem\u00e1ticas e de boa qualidade. Assim, nesta p\u00e1gina ser\u00e3o apresentadas as metodologias utilizadas a fim de organizar o grupo e gerenciar o versionamento do c\u00f3digo de documenta\u00e7\u00e3o a ser desenvolvido ao longo do semestre.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/metodologias/#scrum","text":"Com a finalidade de assegurar que o grupo fa\u00e7a entregas de forma r\u00e1pida, consistente e sem arriscar a qualidade, foi escolhido a metodologia \u00e1gil Scrum seguindo os seguintes princ\u00edpios: Estabelecimento de prazos: todas as entregas possuem um cronograma detalhado onde pode ser consultado o dia m\u00e1ximo para entrega e revis\u00e3o, o autor da entrega e o revisor. Esse cronograma pode ser consultado aqui . Desenvolvimento iterativo: esta wiki \u00e9 a documenta\u00e7\u00e3o do projeto realizado durante este semestre e ela \u00e9 icrementada a cada etapa (sprint) que possue a dura\u00e7\u00e3o de aproximadamente duas semanas. Reuni\u00f5es de planejamento: no come\u00e7o de cada etapa \u00e9 realizada um reuni\u00e3o de planejamento onde \u00e9 dividido cada tarefa e criada as issues no github. Vale notar que o grupo realizou algumas modifica\u00e7\u00f5es \u00e0 metodologia original a fim de encaixar com o contexto da mat\u00e9ria e disponibilidade dos integrantes do membro: No cronograma, chamamos as sprints do Scrum de Etapas. N\u00e3o fazemos dailys, mas fazemos weeklys que s\u00e3o reuni\u00f5es semanais a fim de verificar como est\u00e1 o andamento das atividades passadas no planejamento.","title":"Scrum"},{"location":"planejamento/metodologias/#politicas","text":"","title":"Pol\u00edticas"},{"location":"planejamento/metodologias/#politicas-de-branchs","text":"As branchs devem ser nomeadas de acordo com a issue correspondente de acordo com o seguinte exemplo: git checkout -b \"#X - Nome\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Nome' deve ser um breve t\u00edtulo que resuma a issue.","title":"Pol\u00edticas de Branchs"},{"location":"planejamento/metodologias/#politicas-de-commits","text":"Os commits devem ser feitos de acordo com a issue correspondente de acordo com o seguinte exemplo: git commit -m \"#X - Coment\u00e1rio\" Onde 'X' \u00e9 o n\u00famero da issue e o 'Coment\u00e1rio' deve ser um resumo do que foi feito no commit.","title":"Pol\u00edticas de Commits"},{"location":"planejamento/metodologias/#bibliografia","text":"COHN, Mike. Desenvolvimento de Software com Scrum: Aplicando M\u00e9todos \u00c1geis com Sucesso. 2021. Dispon\u00edvel em: https://books.google.com.br/books. Acesso em: 31 de jul. de 2022.","title":"Bibliografia"},{"location":"planejamento/metodologias/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 31/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de metodologias Natan Santana Lu\u00edza Esteves 04/08/2022 0.2 Corre\u00e7\u00e3o da p\u00e1gina movendo para a pasta de planejamento Natan Santana Lu\u00edza Esteves","title":"Tabela de Versionamento"},{"location":"planejamento/processoDesign/","text":"Processo de Design Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel. Engenharia de Usabilidade de Mayhew Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos. Por que usar o ciclo de vida de Mayhew? O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas. Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento. Bibliografia Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Processo de Design"},{"location":"planejamento/processoDesign/#processo-de-design","text":"Existem diversas propostas de processos de design dentro da literatura de IHC, em que todas elas possuem as seguintes etapas em comum: an\u00e1lise da situa\u00e7\u00e3o/identifica\u00e7\u00e3o do problema, proposta de interven\u00e7\u00e3o para os problemas identificados e avalia\u00e7\u00e3o dessa interven\u00e7\u00e3o. A diferen\u00e7a entre cada processo de design est\u00e1 na forma que essas atividades b\u00e1sicas ser\u00e3o realizadas. Um fator inerente aos processos de design \u00e9 a iteratividade na execu\u00e7\u00e3o das atividades: sempre que necess\u00e1rio, o designer pode recorrer \u00e0s etapas anteriores do processo. Exemplificando, quando o designer est\u00e1 projetando uma interven\u00e7\u00e3o para um problema identificado, ele \u00e9 livre para retornar \u00e0 etapa de an\u00e1lise de situa\u00e7\u00e3o para refinar a sua proposta. Essa revis\u00e3o da an\u00e1lise \u00e9 muito importante para a elabora\u00e7\u00e3o de uma proposta de interven\u00e7\u00e3o coerente. Tamb\u00e9m \u00e9 dado destaque \u00e0 import\u00e2ncia de ter os usu\u00e1rios envolvidos nas atividades de design, pois quanto mais a opini\u00e3o de usu\u00e1rios for ouvida, mais ser\u00e1 poss\u00edvel entender sobre as suas necessidades reais, ajudando na identifica\u00e7\u00e3o e corre\u00e7\u00e3o de problemas. (BARBOSA, 2021) Algumas das propostas de processo de design s\u00e3o o ciclo de vida em estrela, o ciclo de vida para engenharia de usabilidade de Mayhew, o design contextual, o design baseado em cen\u00e1rios e o design dirigido por objetivos. Ciclo de vida em estrela: His e Hartson desenvolveram o ciclo de vida em estrela em 1993, tendo sido um dos primeiros ciclos de vida de IHC. Esse processo de design possu\u00ed 6 atividades: implementa\u00e7\u00e3o; prototipa\u00e7\u00e3o; projeto conceitual e especifica\u00e7\u00e3o do design; an\u00e1lise de tarefas, usu\u00e1rios e fun\u00e7\u00f5es, especifica\u00e7\u00e3o de requisitos; e, por fim, a avalia\u00e7\u00e3o. Nesse ciclo de vida o designer tem liberdade de decidir qual a atividade a ser realizada primeiro. Ciclo de vida para engenharia de usabilidade de Mayhew: esse ciclo de vida foi desenvolvido por Deborah Mayhew em 1999 e possui 3 fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o e \u00e9 conhecido por sua vis\u00e3o panor\u00e2mica do processo. Design contextual: o design contextual foi elaborado por Beyer e Holtzblatt em 1997 e busca o entendimento das necessidades dos usu\u00e1rios atrav\u00e9s de uma inverstiga\u00e7\u00e3o do contexto de uso. Design baseado em cen\u00e1rios: esse design usa cen\u00e1rios que representam as atividades envolvidas em uma solu\u00e7\u00e3o de IHC e foi desenvolvido por Rosson e Carroll em 2002. Geralmente os cen\u00e1rios contam com a contribui\u00e7\u00e3o de todos os interessados no sistema. Design dirigido por objetivos: esse processo de design incentiva o designer a utilizar as tecnologias da melhor forma poss\u00edvel, com o objetivo de chegar em solu\u00e7\u00f5es criativas, inovadoras e eficientes. Esse design foi desenvolvido por Alan Cooper, Robert Reimann, David Cronin, e Christopher Noessel.","title":"Processo de Design"},{"location":"planejamento/processoDesign/#engenharia-de-usabilidade-de-mayhew","text":"Foi proposto por Deborah Mayhew um ciclo de vida para a engenharia de usabilidade que conta com tr\u00eas fases: an\u00e1lise de requisitos, design/avalia\u00e7\u00e3o/desenvolvimento e instala\u00e7\u00e3o, como podemos ver na Figura 1. Esse processo de design possui uma vis\u00e3o hol\u00edstica e agrupa importantes atividades de design, guiando o designer a uma boa proposta de interven\u00e7\u00e3o (BARBOSA, 2021). Figura 1 - Ciclo de vida para a engenharia de usabilidade (BARBOSA, 2021). An\u00e1lise de requisitos: defini\u00e7\u00e3o das metas de usabilidade, levando em conta o perfil dos usu\u00e1rios, an\u00e1lise das tarefas, possibilidades e limita\u00e7\u00f5es da plataforma em que o sistema ser\u00e1 executado e princ\u00edpios gerais de design de IHC. Design, avalia\u00e7\u00e3o e desenvolvimento: busca chegar em uma solu\u00e7\u00e3o de IHC que atenda \u00e0s metas de usabilidade que foram definidas na fase de an\u00e1lise de requisitos. Instala\u00e7\u00e3o: coleta de opini\u00f5es dos usu\u00e1rios ap\u00f3s um certo tempo de uso. As informa\u00e7\u00f5es coletadas ser\u00e3o utilizadas para melhorar o sistema ou at\u00e9 mesmo desenvolver novos sistemas interativos.","title":"Engenharia de Usabilidade de Mayhew"},{"location":"planejamento/processoDesign/#por-que-usar-o-ciclo-de-vida-de-mayhew","text":"O ciclo de vida de Mayhew foi escolhido porque tem etapas bem definidas e detalhadas, guiando o designer de forma clara e objetiva sobre qual passo precisa dar, ao contr\u00e1rio do Ciclo de Vida em Estrela, por exemplo. Usar um ciclo de vida detalhado assim \u00e9 vantajoso para nossa equipe pois n\u00e3o possu\u00edmos a experi\u00eancia necess\u00e1ria para seguir ciclos de vida onde as etapas s\u00e3o mais subjetivas.","title":"Por que usar o ciclo de vida de Mayhew?"},{"location":"planejamento/processoDesign/#aplicando-a-usabilidade-de-mayhew-na-avaliacao-do-site","text":"O sistema avaliado j\u00e1 est\u00e1 em produ\u00e7\u00e3o e, portanto, a an\u00e1lise ser\u00e1 iniciada na fase da instala\u00e7\u00e3o, em que ser\u00e3o identificados erros e possibilidades de melhorias. Para conseguir executar tais melhorias, ser\u00e1 necess\u00e1rio voltar a an\u00e1lise para a primeira fase de an\u00e1lise de requisitos, passando por todas as etapas previstas. Ap\u00f3s a an\u00e1lise de requisitos, o ciclo de vida ser\u00e1 seguido normalmente, dando in\u00edcio \u00e0 fase de design, avalia\u00e7\u00e3o e desenvolvimento.","title":"Aplicando a Usabilidade de Mayhew na avalia\u00e7\u00e3o do site"},{"location":"planejamento/processoDesign/#bibliografia","text":"Barbosa, S. D. J.; Silva, B. S. da; Silveira, M. S.; Gasparini, I.; Darin, T.; Barbosa, G. D. J. (2021);Intera\u00e7\u00e3o Humano-Computador e Experi\u00eancia do usu\u00e1rio. Beyer, Hugh e Holtzblatt, Karen (1997). Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Mayhew, D. Th e Usability Engineering Lifecycle: a practitioner\u2019s handbook for user interface design. San Francisco, CA: Morgan Kaufmann, 1999.","title":"Bibliografia"},{"location":"planejamento/processoDesign/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 04/07/2022 0.1 Cria\u00e7\u00e3o do t\u00f3pico Processo de Design Clara Ribeiro Matheus Perillo 04/07/2022 0.2 Adi\u00e7\u00e3o da legenda na imagem Clara Ribeiro Matheus Perillo 07/07/2022 0.3 Corre\u00e7\u00e3o de bugs na documenta\u00e7\u00e3o Matheus Perillo Clara Ribeiro 07/07/2022 0.4 Adi\u00e7\u00e3o de justificativa para processo escolhido Rafael Xavier Natan Santana 19/07/2022 0.5 Adi\u00e7\u00e3o do resumo de outros processos de Design Clara Ribeiro Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/sitesAvaliados/","text":"Sites Avaliados Introdu\u00e7\u00e3o Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Sites escolhidos pelos integrantes Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro Caixa Econ\u00f4mica A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Governo de Pernambuco O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Central Expresso O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Rastreamento Correios O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Bras\u00edlia Laser Show O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Ag\u00eancia Virtual NeoEnergia A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui Site escolhido Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal. Bibliografia BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#sites-avaliados","text":"","title":"Sites Avaliados"},{"location":"planejamento/sitesAvaliados/#introducao","text":"Para realizar a escolha de um site a ser utilizado no decorrer da disciplina, foram feitas an\u00e1lises de 6 sites diferentes a fim de selecionar o que mais poderia ter mais melhorias indicadas dentro do contexto da disciplina. As avalia\u00e7\u00f5es foram feitas baseadas nas 10 heur\u00edsticas de Nielsen: Status do sistema: o usu\u00e1rio deve ser informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo. Correspond\u00eancia entre o sistema e o mundo real: os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: o usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: o sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento ao inv\u00e9s de relembran\u00e7a: as instru\u00e7\u00f5es para o bom funcionamento do sistema evem estar vis\u00edveis no contexto em que o usu\u00e1rio se encontra. Flexibilidade e e\ufb01ci\u00eancia de uso: a utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Est\u00e9tica e design minimalista: os di\u00e1logos do sistema devem conter somente informa\u00e7\u00f5es relevantes ao funcionamento. Preven\u00e7\u00e3o de erros: o sistema deve ter um design que se preocupe com as possibilidades de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/sitesAvaliados/#sites-escolhidos-pelos-integrantes","text":"Site avaliado por cada membro individualmente Membro que fez a avalia\u00e7\u00e3o Caixa Econ\u00f4mica Natan Tavares Governo de Pernambuco Lu\u00edza Esteves Central Expresso Rafael Xavier Rastreamento Correios Daniel Coimbra Bras\u00edlia Laser Show Matheus Perillo Ag\u00eancia Virtual NeoEnergia Clara Ribeiro","title":"Sites escolhidos pelos integrantes"},{"location":"planejamento/sitesAvaliados/#caixa-economica","text":"A Caixa Econ\u00f4mica \u00e9 uma institui\u00e7\u00e3o finaceira nacional que atende a pessoas de todos os cantos do Brasil. O site da empresa \u00e9 destinado a um p\u00fablico muito grande e diverso, com realidades diferentes. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o [Natan Santana](https://github.com/Neitan2001) e para a an\u00e1lise do sistema, foi realizada uma avalia\u00e7\u00e3o heur\u00edstica, a fim de identificar e documentar problemas de usabilidade e design. Os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Consist\u00eancia e padr\u00f5es Preven\u00e7\u00e3o de erros Reconhecimento ao inv\u00e9s de relembran\u00e7a Flexibilidade e efici\u00eancia de uso Est\u00e9tica e design minimalista Os principais problemas referem-se a grande quantidade de informa\u00e7\u00f5es dispostas de forma a dificultar a identifica\u00e7\u00e3o das informa\u00e7\u00f5es, menu com sobreposi\u00e7\u00f5es que podem levar usu\u00e1rios a cometer erro e dificuldade de identificar onde o usu\u00e1rio se encontra no sistema. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/sitesAvaliados/#governo-de-pernambuco","text":"O site do Governo de Pernambuco oferece informa\u00e7\u00f5es e servi\u00e7os do Estado, para que tanto turistas quanto moradores possam ter acesso facilitado a atividades e not\u00edcias que o governo entrega. A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Lu\u00edza Esteves e os problemas identificados afetaram as seguintes heur\u00edsticas: Status do sistema Compatibilidade com o mundo real Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se \u00e0 n\u00e3o atualiza\u00e7\u00e3o do sistema quando para de carregar, v\u00e1rios menus espalhados pela tela e com designs diferentes, funcionalidades em teste e est\u00e9tica sobrecarregada. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Governo de Pernambuco"},{"location":"planejamento/sitesAvaliados/#central-expresso","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. Ela atua fazendo linhas entre o DF e os munic\u00edpios do entorno e da regi\u00e3o de Goi\u00e1s. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Rafael Xavier e os problemas identificados afetaram as seguintes heur\u00edsticas: Consist\u00eancia e padr\u00f5es Est\u00e9tica e design minimalista Os principais problemas referem-se ao mal posicionamento das informa\u00e7\u00f5es, deixando-as incompletas e de dif\u00edcil entendimento. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Central Expresso"},{"location":"planejamento/sitesAvaliados/#rastreamento-correios","text":"O site do Rastreamento Correios permite que pessoas que aguardam por entregas realizadas pelos correios do Brasil possam ser rastreadas e identificadas ao longo de seu trajeto. Para a an\u00e1lise do site, foi feito um estudo observat\u00f3rio, identificando as principais dificuldades que os usu\u00e1rios possam passar, como est\u00e9tica confusa, problemas com realiza\u00e7\u00e3o de login e cadastro. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Daniel Coimbra e os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Est\u00e9tica e design minimalista Flexibilidade e efici\u00eancia de uso Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Rastreamento Correios"},{"location":"planejamento/sitesAvaliados/#brasilia-laser-show","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. O respons\u00e1vel pela avalia\u00e7\u00e3o foi o Matheus Perillo e os problemas identificados afetaram as seguintes heur\u00edsticas: Est\u00e9tica e design minimalista Ajuda e documenta\u00e7\u00e3o Preven\u00e7\u00e3o de erros Consist\u00eancia e padroniza\u00e7\u00e3o Status do sistema A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Bras\u00edlia Laser Show"},{"location":"planejamento/sitesAvaliados/#agencia-virtual-neoenergia","text":"A NeoEnergia \u00e9 uma empresa privada que fornece o abastecimento de energia el\u00e9trica a mais de 18 estados brasileiros. O site \u00e9 destinado aos consumidores que desejam solicitar algum servi\u00e7o ou buscar informa\u00e7\u00f5es pela p\u00e1gina. Os problemas identificados afetaram as seguintes heur\u00edsticas: Visibilidade e status do sistema Preven\u00e7\u00e3o de erros Flexibilidade e efici\u00eancia de uso A respons\u00e1vel pela avalia\u00e7\u00e3o foi a Clara Macedo e os principais problemas referem-se \u00e0 n\u00e3o identifica\u00e7\u00e3o de um erro cometido pelo usu\u00e1rio e falta de recursos que facilitem o acesso pelo usu\u00e1rio em fun\u00e7\u00f5es como gerar relat\u00f3rio ou manter salvo senhas e evitar processo de recupera\u00e7\u00e3o de senha. A avalia\u00e7\u00e3o completa pode ser encontrada Aqui","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/sitesAvaliados/#site-escolhido","text":"Diante dos sites analisados individualmente por cada integrante da equipe, fizemos uma reuni\u00e3o e entramos em consenso, optando pelo site da NeoEnergia , que possui uma s\u00e9rie de problemas identificados que ser\u00e3o v\u00e1lidos para a realiza\u00e7\u00e3o de uma an\u00e1lise de IHC, al\u00e9m do p\u00fablico alvo para realiza\u00e7\u00e3o de pesquisas ser mais f\u00e1cil, j\u00e1 que o site avaliado da empresa, ser\u00e1 espec\u00edfico para usu\u00e1rios do Distrito Federal.","title":"Site escolhido"},{"location":"planejamento/sitesAvaliados/#bibliografia","text":"BARBOSA, Simone; DINIZ, Bruno. Intera\u00e7\u00e3o Humano-Computador. Editora Elsevier, Rio de Janeiro, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.","title":"Bibliografia"},{"location":"planejamento/sitesAvaliados/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 03/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Sites Avaliados Lu\u00edza Esteves Rafael Xavier 04/07/2022 0.2 Adi\u00e7\u00e3o de tabela de versionamento Lu\u00edza Esteves Rafael Xavier 07/07/2022 0.3 Inser\u00e7\u00e3o do restante dos sites avaliados Lu\u00edza Esteves Rafael Xavier 18/07/2022 0.4 Adi\u00e7\u00e3o dos links para avalia\u00e7\u00f5es individuais dos sites Natan Santana","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/","text":"Ag\u00eancia Virtual NeoEnergia Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa. Dados Coletados 1. Visibilidade do status do sistema A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1 2. Compatibilidade do sistema com o mundo real Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento 3. Controle do usu\u00e1rio e liberdade Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2 4. Consist\u00eancia e padr\u00f5es Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o. 5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha. 6. Preven\u00e7\u00e3o de erros A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2 7. Reconhecimento em vez de memoriza\u00e7\u00e3o Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5 8. Flexibilidade e efici\u00eancia de uso Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8 9. Est\u00e9tica e design minimalista Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas. 10. Ajuda e documenta\u00e7\u00e3o Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#agencia-virtual-neoenergia","text":"","title":"Ag\u00eancia Virtual NeoEnergia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#introducao","text":"Para a avalia\u00e7\u00e3o do site da Ag\u00eancia Virtual foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Clara Marcelino Ribeiro de Sousa.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#1-visibilidade-do-status-do-sistema","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Figura 1 Verifica\u00e7\u00e3o: o usu\u00e1rio \u00e9 informado pelo sistema em tempo razo\u00e1vel sobre o que est\u00e1 acontecendo? Tabela 1: Formul\u00e1rio do problema 1","title":"1. Visibilidade do status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#2-compatibilidade-do-sistema-com-o-mundo-real","text":"Verifica\u00e7\u00e3o: o sistema fala a linguagem do usu\u00e1rio utilizando palavras, frases, conceitos familiares a ele, em vez de termos orientados ao sistema? Sim, o sistema utiliza linguagem compat\u00edvel com o mundo real e de f\u00e1cil entendimento","title":"2. Compatibilidade do sistema com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#3-controle-do-usuario-e-liberdade","text":"Verifica\u00e7\u00e3o: fornece maneiras de permitir que o usu\u00e1rio saia facilmente de lugares inesperados em que se encontram, utilizando \"sa\u00eddas de emerg\u00eancia\" claramente identificadas? Sim, em todas as p\u00e1ginas de um servi\u00e7o espec\u00edfico, h\u00e1 a op\u00e7\u00e3o de retornar ao menu, como \u00e9 poss\u00edvel observar na Figura 2 abaixo. Figura 2","title":"3. Controle do usu\u00e1rio e liberdade"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#4-consistencia-e-padroes","text":"Verifica\u00e7\u00e3o: evita fazer com que o usu\u00e1rio tenha que pensar se palavras, situa\u00e7\u00f5es ou a\u00e7\u00f5es diferentes significam a mesma coisa? Sim, o site segue um mesmo padr\u00e3o em todas as p\u00e1ginas, o que facilita a navega\u00e7\u00e3o.","title":"4. Consist\u00eancia e padr\u00f5es"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#5-ajuda-o-usuario-a-reconhecer-diagnosticar-e-recuperar-se-de-erros","text":"Verifica\u00e7\u00e3o: utiliza linguagem simples para descrever a natureza do problema e sugere uma maneira de resolv\u00ea-lo? Sim. Um bom exemplo \u00e9 na tela de login, em que \u00e9 informado caso o CPF inserido seja inv\u00e1lido. Tamb\u00e9m h\u00e1 a op\u00e7\u00e3o de recupera\u00e7\u00e3o de senha.","title":"5. Ajuda o usu\u00e1rio a reconhecer, diagnosticar e recuperar-se de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#6-prevencao-de-erros","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Figura 3 Verifica\u00e7\u00e3o: onde poss\u00edvel, impede a ocorr\u00eancia de erros? Tabela 2: Formul\u00e1rio do problema 2","title":"6. Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#7-reconhecimento-em-vez-de-memorizacao","text":"Verifica\u00e7\u00e3o: tornar objetos, a\u00e7\u00f5es e op\u00e7\u00f5es vis\u00edveis? Sim, o site deixa os seus servi\u00e7os bem vis\u00edveis em diversos espa\u00e7os como pode ser notado na Figura 4 e 5 abaixo. Figura 4 Figura 5","title":"7. Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#8-flexibilidade-e-eficiencia-de-uso","text":"Verifica\u00e7\u00e3o: fornece aceleradores invis\u00edveis aos usu\u00e1rios inexperientes, os quais, no entanto, permitem aos mais experientes realizar tarefas com mais rapidez? A seguir pode ser verificado o problema 1 desta heur\u00edstica encontrado na tela apresentada na Figura 6. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Figura 6 Tabela 3: Formul\u00e1rio do problema 1 da heur\u00edsitica 8 A seguir pode ser verificado o problema 2 desta heur\u00edstica encontrado na tela apresentada na Figura 7 e 8. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Figura 7 Figura 8 Tabela 4: Formul\u00e1rio do problema 2 da heur\u00edsitica 8","title":"8. Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#9-estetica-e-design-minimalista","text":"Verifica\u00e7\u00e3o: evita o uso de informa\u00e7\u00f5es irrelevantes ou raramente necess\u00e1rias. Sim, n\u00e3o h\u00e1 excesso de informa\u00e7\u00f5es nas p\u00e1ginas.","title":"9. Est\u00e9tica e design minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#10-ajuda-e-documentacao","text":"Verifica\u00e7\u00e3o: fornece informa\u00e7\u00f5es que podem ser facilmente encontradas e ajuda mediante passos que podem ser facilmente seguidos? Sim, h\u00e1 diversos conte\u00fados sobre o uso do sistema como pode notado na Figura 9 abaixo. Figura 9","title":"10. Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/agencia_virtual/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Ag\u00eancia Virtual Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/","text":"Bras\u00edlia Lazer Show Introdu\u00e7\u00e3o O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo. Problemas Identificados Problema 1 A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Problema 2 A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Problema 3 A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Problema 4 A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Problema 5 A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#brasilia-lazer-show","text":"","title":"Bras\u00edlia Lazer Show"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#introducao","text":"O Bras\u00edlia Laser Show \u00e9 uma empresa prestadora de servi\u00e7os especializada em ilumina\u00e7\u00e3o a laser para eventos especiais. O site da empresa mostra os eventos que j\u00e1 cobriu em fotos e v\u00eddeos, e tamb\u00e9m, diversas redes para entrar em contato com a mesma. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Matheus Moreira Lopes Perillo.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problemas-identificados","text":"","title":"Problemas Identificados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-1","text":"A seguir pode ser verificado o problema 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1:","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-2","text":"A seguir pode ser verificado o problema 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2:","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-3","text":"A seguir pode ser verificado o problema 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3:","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-4","text":"A seguir pode ser verificado o problema 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4:","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#problema-5","text":"A seguir pode ser verificado o problema 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5:","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/brasilia_lazer/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 18/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Brasilia Laser Show Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/","text":"Caixa Econ\u00f4mica Introdu\u00e7\u00e3o Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana. Avalia\u00e7\u00e3o Heur\u00edstica A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2 Problema 3 A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3 Problema 4 A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4 Problema 5 A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5 Problema 6 A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6 Problema 7 A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7 Problema 8 A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8 Problema 9 A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#caixa-economica","text":"","title":"Caixa Econ\u00f4mica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#introducao","text":"Neste relat\u00f3rio ser\u00e1 apresentado os resultados da avalia\u00e7\u00e3o do site da Caixa Econ\u00f4mica com o objetivo de identificar problemas na intera\u00e7\u00e3o e interface, detalhando onde ocorrem e uma poss\u00edvel solu\u00e7\u00e3o para melhorar a intera\u00e7\u00e3o do usu\u00e1rio com a plataforma. O escopo desta an\u00e1lise ser\u00e1 as telas do site principal que podem ser acessadas sem ter uma conta criada. A seguinte avalia\u00e7\u00e3o foi feita analisando as heur\u00edsticas propostas por Nielsen e identificando quais elementos estariam em viola\u00e7\u00e3o. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Natan Tavares Santana.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#avaliacao-heuristica","text":"A Avalia\u00e7\u00e3o Heur\u00edstica \u00e9 um m\u00e9todo de inspe\u00e7\u00e3o onde um avaliador se coloca no lugar do usu\u00e1rio e procura problemas na interface que podem impedir que o usu\u00e1rio realize o seu objetivo ou que simplesmente cause alguma emo\u00e7\u00e3o negativa. Assim que um problema \u00e9 encontrado, \u00e9 preenchido o seguinte formul\u00e1rio apresentando na Tabela 1: Tabela 1: Formul\u00e1rio base Onde cada um dos campos significa: x. Heur\u00edstica: N\u00famero e diretriz que o problema est\u00e1 violando. Verifica\u00e7\u00e3o: Perguntas que verificam a validade da heur\u00edstica. Grau de Severidade: Uma escala de 0 a 4 para classificar o problema de usabilidade, onde 0 - Sem Import\u00e2ncia: n\u00e3o afeta a opera\u00e7\u00e3o da interface para todos usu\u00e1rios, n\u00e3o sendo encarado necessariamente como um problema de usabilidade. 1 - Cosm\u00e9tico: n\u00e3o necessita ser reparado, a menos que haja tempo dispon\u00edvel. 2 - Simples: pode ser reparado, com baixa prioridade de corre\u00e7\u00e3o. 3 - Grave: deve ser reparado, com alta prioridade de corre\u00e7\u00e3o. 4 - Catastr\u00f3fico: deve ser reparado de qualquer forma antes do produto ser disponibilizado. Natureza do Problema: Barreira: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra sucessivas vezes e n\u00e3o aprende a suplant\u00e1-lo. Uma barreira voltar\u00e1 a se apresentar ao usu\u00e1rio na pr\u00f3xima realiza\u00e7\u00e3o da tarefa. Obst\u00e1culo: refere-se a um aspecto da interface no qual o usu\u00e1rio esbarra e aprende a suplant\u00e1-lo. Ru\u00eddo: refere-se a um aspecto da interface que causa uma diminui\u00e7\u00e3o de seu desempenho na tarefa. O usu\u00e1rio pode desenvolver uma m\u00e1 impress\u00e3o do sistema. Perspectiva do Usu\u00e1rio: Quais tipos de usu\u00e1rio s\u00e3o afetados pelo problema Problema Geral: qualquer tipo de usu\u00e1rio durante a realiza\u00e7\u00e3o de sua tarefa. Problema Preliminar: usu\u00e1rios novatos ou intermedi\u00e1rios durante a realiza\u00e7\u00e3o de sua tarefa. Problema Especial: tipos de usu\u00e1rios especiais (portadores de defici\u00eancia) durante a realiza\u00e7\u00e3o de sua tarefa. Perspectiva do Projeto: \u00c9 importante citar a exist\u00eancia de duas categorias de problemas que salientam os poss\u00edveis efeitos de uma revis\u00e3o de projeto. Ao realizar a Avalia\u00e7\u00e3o Heur\u00edstica pela primeira vez, esta categoria de problema n\u00e3o deve ser preenchida. Falso Problema: refere-se a um aspecto da interface que, apesar de classificado como problema, na realidade n\u00e3o traz qualquer preju\u00edzo ao usu\u00e1rio, nem \u00e0 sua tarefa. Novo: refere-se a um novo problema de usabilidade que surgiu como consequ\u00eancia da corre\u00e7\u00e3o de um problema anterior. Perspectiva da Tarefa: Corresponde a um aspecto da interface que compromete a realiza\u00e7\u00e3o de tarefas Principal: frequentes ou importantes. Secund\u00e1rio: pouco frequentes ou pouco importantes. Contexto: \u00e9 a situa\u00e7\u00e3o de uso em que o problema pode ser verificado ou diagnosticado. Causa: refere-se ao aspecto do sistema que propicia o problema. Efeito sobre o usu\u00e1rio: corresponde \u00e0 consequ\u00eancia da intera\u00e7\u00e3o com o usu\u00e1rio, podendo haver, entre outros, sobrecarga cognitiva, desorienta\u00e7\u00e3o ou hesita\u00e7\u00e3o. Efeito sobre a tarefa: refere-se \u00e0 decorr\u00eancia da a\u00e7\u00e3o sobre a tarefa executada, podendo ocasionar trabalho adicional, perda de dados ou perda de tempo. Corre\u00e7\u00e3o poss\u00edvel: indica ao projetista poss\u00edveis altera\u00e7\u00f5es no sistema.","title":"Avalia\u00e7\u00e3o Heur\u00edstica"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 3: Tabela 3: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-3","text":"A seguir pode ser verificado o problema 3 encontrado na tela apresentada na Figura 3. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 4: Tabela 4: Formul\u00e1rio do problema 3","title":"Problema 3"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-4","text":"A seguir pode ser verificado o problema 4 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 5: Tabela 5: Formul\u00e1rio do problema 4","title":"Problema 4"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-5","text":"A seguir pode ser verificado o problema 5 encontrado na tela apresentada na Figura 3 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 6: Tabela 6: Formul\u00e1rio do problema 5","title":"Problema 5"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-6","text":"A seguir pode ser verificado o problema 6 encontrado na tela apresentada na Figura 4. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 7: Tabela 7: Formul\u00e1rio do problema 6","title":"Problema 6"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-7","text":"A seguir pode ser verificado o problema 7 encontrado na tela apresentada na Figura 4 acima. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 8: Tabela 8: Formul\u00e1rio do problema 7","title":"Problema 7"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-8","text":"A seguir pode ser verificado o problema 8 encontrado na tela apresentada na Figura 5. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 9: Tabela 9: Formul\u00e1rio do problema 8","title":"Problema 8"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#problema-9","text":"A seguir pode ser verificado o problema 9 encontrado na tela apresentada na Figura 6 e Figura 7. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 10: Tabela 10: Formul\u00e1rio do problema 9","title":"Problema 9"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/caixa_economica/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Caixa Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/","text":"Central Expresso Introdu\u00e7\u00e3o O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava. Objetivo O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o. Avalia\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. Dados Coletados Problema 1 A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1 Problema 2 A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2 Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#central-expresso","text":"","title":"Central Expresso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#introducao","text":"O site da CT Expresso tem o prop\u00f3sito de informar a popula\u00e7\u00e3o que faz o uso do transporte p\u00fablico sobre as linhas de \u00f4nibus e seus respectivos hor\u00e1rios, \u00e9 poss\u00edvel tamb\u00e9m visualizar as redes sociais da empresa e seu n\u00famero de contato, al\u00e9m de informa\u00e7\u00f5es sobre vale transporte. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Rafael Xavier Canabrava.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#objetivo","text":"O objetivo mais importante levantado durante a fase de planejamento \u00e9 verificar se o site \u00e9 \u00fatil e intuitivo, pelo fato de que sua fun\u00e7\u00e3o \u00e9 informar a popula\u00e7\u00e3o.","title":"Objetivo"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#avaliacao","text":"Para a avalia\u00e7\u00e3o do site da Central Expresso foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade.","title":"Avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-1","text":"A seguir pode ser verificado o problema 1 encontrado na tela apresentada na Figura 1. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 1: Tabela 1: Formul\u00e1rio do problema 1","title":"Problema 1"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#problema-2","text":"A seguir pode ser verificado o problema 2 encontrado na tela apresentada na Figura 2. A an\u00e1lise detalhada do problema est\u00e1 documentada na Tabela 2: Tabela 2: Formul\u00e1rio do problema 2","title":"Problema 2"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/central_expresso/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o da Central Expresso Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/","text":"Governo Pernambuco Introdu\u00e7\u00e3o Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves. Heur\u00edsticas de Nielsen As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o. Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema 1 - Visibilidade e status do sistema Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema. 2 - Compatibilidade com o mundo real Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es. 3 - Consist\u00eancia e padroniza\u00e7\u00e3o Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto. 4 - Projeto est\u00e9tico e minimalista Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos. Objetivos e escopo da avalia\u00e7\u00e3o A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.] Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#governo-pernambuco","text":"","title":"Governo Pernambuco"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#introducao","text":"Ao analisar o site do Governo de Pernambuco, cujo processo de desenvolvimento j\u00e1 foi feito, o melhor m\u00e9todo encontrado para fazer uma avalia\u00e7\u00e3o inicial neste relat\u00f3rio ser\u00e1 por meio de uma Avalia\u00e7\u00e3o Heur\u00edstica, uma vez que ela se baseia em identificar problemas na interface que possam atrapalhar a usabilidade do sistema. A seguir ser\u00e1 explicado brevemente o m\u00e9todo de avalia\u00e7\u00e3o escolhido e apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pela avaliadora Lu\u00edza Esteves.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#heuristicas-de-nielsen","text":"As heur\u00edsticas de Nielsen permitem uma an\u00e1lise de um sistema que j\u00e1 est\u00e1 em desenvolvimento ou foi finalizado. Com isso, \u00e9 poss\u00edvel buscar solu\u00e7\u00f5es de forma r\u00e1pida que melhorem a usabilidade do sistema. Existem 10 heur\u00edsticas que foram constru\u00eddas para serem utilizadas como base de identifica\u00e7\u00e3o de problemas no sistema: Visibilidade do estado do sistema: Permitir que o usu\u00e1rio entenda qual o status do sistema. Correspond\u00eancia entre o sistema e o mundo real: Os termos e textos que se encontram no site devem estar de acordo com a sua finalidade. Controle e liberdade do usu\u00e1rio: O usu\u00e1rio consegue sair de uma a\u00e7\u00e3o caso deseje ou volte em uma a\u00e7\u00e3o. Consist\u00eancia e padroniza\u00e7\u00e3o: O sistema segue padr\u00f5es definidos de acordo com as conven\u00e7\u00f5es da plataforma. Reconhecimento em vez de memoriza\u00e7\u00e3o: O usu\u00e1rio consegue identificar o que cada parte do sistema significa e realizar suas a\u00e7\u00f5es sem a necessidade de consulta ou ajuda. Flexibilidade e efici\u00eancia de uso: A utiliza\u00e7\u00e3o de \u00edcones intuitivos que facilitem o reconhecimento de fun\u00e7\u00f5es no sistema e aumente a efici\u00eancia de realiza\u00e7\u00e3o de um objetivo. Projeto est\u00e9tico e minimalista: Interface simples e f\u00e1cil de se entender, sem uma sobrecarga de informa\u00e7\u00f5es no usu\u00e1rio. Preven\u00e7\u00e3o de erros: Colocar obst\u00e1culos que impe\u00e7am o usu\u00e1rio de cometer erros durante o uso do sistema. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros: Mostrar mensagens de erros de forma clara e atenciosa, para que o usu\u00e1rio consiga reconhecer e corrigir seus erros. Ajuda e documenta\u00e7\u00e3o: Ter uma documenta\u00e7\u00e3o do sistema que possa ser utilizada caso o usu\u00e1rio sinta dificuldade de realizar alguma opera\u00e7\u00e3o.","title":"Heur\u00edsticas de Nielsen"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#interpretacao-e-identificacao-de-problemas-no-sistema","text":"","title":"Interpreta\u00e7\u00e3o e identifica\u00e7\u00e3o de problemas no sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#1-visibilidade-e-status-do-sistema","text":"Verifica\u00e7\u00e3o O sistema mant\u00e9m feedback? Os feedbacks s\u00e3o adequados e no tempo certo? Os usu\u00e1rios conseguem identificar e compreender o feedback? Descri\u00e7\u00e3o do problema: Ao iniciar o processo de carregamento de uma p\u00e1gina, o sistema coloca uma mensagem de que a p\u00e1gina est\u00e1 sendo carregada mas n\u00e3o \u00e9 removida ao fim do carregamento. Isso pode levar o usu\u00e1rio a esperar demasiadamente por um carregamento que j\u00e1 foi feito e desistir de utilizar o site. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Remover a indica\u00e7\u00e3o de carregando quando finalizar o carregamento do sistema.","title":"1 - Visibilidade e status do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#2-compatibilidade-com-o-mundo-real","text":"Verifica\u00e7\u00e3o Os padr\u00f5es identificados em um sistema comum est\u00e3o sendo seguidos? As express\u00f5es utilizadas condizem com o padr\u00e3o governamental? Descri\u00e7\u00e3o do problema: Existem 3 menus diferentes em partes diferenciadas e com layouts diferentes na p\u00e1gina inicial, o que pode dificultar o entendimento do funcionamento, j\u00e1 que o comum \u00e9 existir um menu superior ou lateral, com seus subtipos abertos ao selecionar um t\u00edtulo principal. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Criar um menu superior \u00fanico, com t\u00edtulos gerais e seus subtemas devem aparecer ao passar o mouse por cima, evitando uma grande quantidade de t\u00edtulos que geram sobrecarga de informa\u00e7\u00f5es.","title":"2 - Compatibilidade com o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#3-consistencia-e-padronizacao","text":"Verifica\u00e7\u00e3o Todos os t\u00edtulos condizem com o seu conte\u00fado? Existem a\u00e7\u00f5es diferentes que significam a mesma coisa? Descri\u00e7\u00e3o do problema: Dentro da p\u00e1gina de servi\u00e7os onlines, tanto na parte de cidad\u00e3os quanto de empresas est\u00e3o apenas faixas escritas \u201ctestes\u201d e um link que redireciona ao site do Google, trazendo inconsist\u00eancia e fugindo do padr\u00e3o de conte\u00fado que deveria estar. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Adicionar os servi\u00e7os dispon\u00edveis para os cidad\u00e3os e as empresas e retirar a sess\u00e3o de teste. Caso ainda n\u00e3o haja esse servi\u00e7o dispon\u00edvel, excluir essa op\u00e7\u00e3o do menu e remover a p\u00e1gina temporariamente at\u00e9 que esteja tudo pronto.","title":"3 - Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#4-projeto-estetico-e-minimalista","text":"Verifica\u00e7\u00e3o A interface cont\u00e9m apenas informa\u00e7\u00f5es necess\u00e1rias? O design elaborado \u00e9 simples? O usu\u00e1rio consegue visualizar apenas o importante para sua a\u00e7\u00e3o? Descri\u00e7\u00e3o do problema: A est\u00e9tica produzida para o sistema possui uma carga de informa\u00e7\u00f5es muito grande e mal posicionada. Tanto a p\u00e1gina inicial quanto as demais possuem background com imagens que dificultam a leitura, menus mal posicionados e textos com cores fortes. Grau de Severidade: 1 - Cosm\u00e9tico 2 - Pequeno 3 - grande 4 - Catastr\u00f3fico Natureza do problema: Barreira Obst\u00e1culo Ru\u00eddo Perspectiva da Tarefa: Problema Principal Problema Secund\u00e1rio Corre\u00e7\u00e3o poss\u00edvel: Refazer o design e as cores padr\u00f5es dos textos do sistema, para que tanto os textos quanto os menus fiquem mais limpos e f\u00e1ceis de ser entendidos.","title":"4 - Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#objetivos-e-escopo-da-avaliacao","text":"A avalia\u00e7\u00e3o realizada busca identificar, em um sistema j\u00e1 existente, problemas na interface que dificultem sua usabilidade e acessibilidade. Se tratando de um site que atende uma grande popula\u00e7\u00e3o de diversificadas caracter\u00edsticas, ele deve ser claro e de f\u00e1cil identifica\u00e7\u00e3o nas atividades do site.","title":"Objetivos e escopo da avalia\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone; SILVA, Bruno. \"Intera\u00e7\u00e3o Humano-Computador\". Elsevier Editora Ltda, 2010. MACIEL, Cristiano; NOGUEIRA, Jos\u00e9 Luis; CIUFFO, Leandro; GARCIA, Ana Cristina. Avalia\u00e7\u00e3o Heur\u00edstica de S\u00edtios na Web. [S. l.]","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/governo_pernambuco/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 15/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Governo de Pernambuco Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/","text":"Rastreamento Correios Introdu\u00e7\u00e3o Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos. Dados Coletados Visibilidade do estado do sistema Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d. Correspond\u00eancia entre o sistema e o mundo real \u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema. Controle e liberdade do usu\u00e1rio N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido. Consist\u00eancia e padroniza\u00e7\u00e3o A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios. Reconhecimento em vez de memoriza\u00e7\u00e3o O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez. Flexibilidade e efici\u00eancia de uso N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input. Projeto est\u00e9tico e minimalista O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9. Preven\u00e7\u00e3o de erros Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro. Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio. Ajuda e documenta\u00e7\u00e3o Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs. Bibliografia Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282. Tabela de Versionamento Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#rastreamento-correios","text":"","title":"Rastreamento Correios"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#introducao","text":"Para a avalia\u00e7\u00e3o do site do Rastreamento Correios foi escolhido o m\u00e9todo da avalia\u00e7\u00e3o heur\u00edstica, justamente por ser um m\u00e9todo que orienta o avaliador a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. A seguir ser\u00e1 apresentado todos os dados coletados por meio da inspe\u00e7\u00e3o realizada pelo avaliador Daniel Coimbra dos Santos.","title":"Introdu\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#dados-coletados","text":"","title":"Dados Coletados"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#visibilidade-do-estado-do-sistema","text":"Ao requisitar os dados de um rastreio, enquanto o website carrega as mudan\u00e7as, \u00e9 poss\u00edvel ver uma mensagem dizendo \u201cBuscando\u201d, dando feedback ao usu\u00e1rio; tamb\u00e9m h\u00e1 mensagem de erro ao falhar o captcha no momento da requisi\u00e7\u00e3o. O campo fica em vermelho e \u00e9 exibida a mensagem \u201cCaptcha inv\u00e1lido\u201d.","title":"Visibilidade do estado do sistema"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#correspondencia-entre-o-sistema-e-o-mundo-real","text":"\u00c9 poss\u00edvel argumentar que o termo \u201cCaptcha\u201d, apesar de reconhecido por programadores, n\u00e3o \u00e9 necessariamente sem\u00e2ntico a toda a popula\u00e7\u00e3o que ir\u00e1 utilizar o sistema online para rastreio de encomenda dos Correios, podendo assim criar uma dist\u00e2ncia lingu\u00edstica entre o p\u00fablico que interage com o software e o pr\u00f3prio sistema.","title":"Correspond\u00eancia entre o sistema e o mundo real"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#controle-e-liberdade-do-usuario","text":"N\u00e3o h\u00e1 muito o que errar no sistema, o usu\u00e1rio preenche apenas dois campos, o cpf e o captcha. Quando h\u00e1 de fato um erro, o usu\u00e1rio precisa corrigir o campo em que existe o erro, seja por cpf inv\u00e1lido ou por captcha inv\u00e1lido.","title":"Controle e liberdade do usu\u00e1rio"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#consistencia-e-padronizacao","text":"A linguagem \u00e9 bem padronizada, o \u00fanico ponto delicado \u00e9 quanto ao uso da palavra \u201ccaptcha\u201d, j\u00e1 citada acima, que pode ser desconhecida pelos usu\u00e1rios.","title":"Consist\u00eancia e padroniza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#reconhecimento-em-vez-de-memorizacao","text":"O sistema \u00e9 bem direto e simples de ser operado, mas poderia ser mais informativo, j\u00e1 que pessoas n\u00e3o versadas em tecnologia podem ter dificuldades ao lidar com ele pela primeira vez.","title":"Reconhecimento em vez de memoriza\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#flexibilidade-e-eficiencia-de-uso","text":"N\u00e3o existe bot\u00e3o de ajuda, mas o usu\u00e1rio recebe instru\u00e7\u00f5es para preencher os campos de input.","title":"Flexibilidade e efici\u00eancia de uso"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#projeto-estetico-e-minimalista","text":"O site \u00e9 bem enxuto, conta com o conte\u00fado do servi\u00e7o no corpo, um menu na barra do topo e diversos links para outros servi\u00e7os no rodap\u00e9.","title":"Projeto est\u00e9tico e minimalista"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#prevencao-de-erros","text":"Direciona o usu\u00e1rio para a tela de login diretamente ao tentar acessar um rastreio sem ter entrado na conta, al\u00e9m disso, somente as mensagens de erro.","title":"Preven\u00e7\u00e3o de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajude-os-usuarios-a-reconhecerem-diagnosticarem-e-se-recuperarem-de-erros","text":"Existe um contexto em que um usu\u00e1rio pode se ver sem solu\u00e7\u00e3o, caso n\u00e3o verifique com calma a situa\u00e7\u00e3o. No caso de um usu\u00e1rio com um n\u00famero X de encomendas, suficiente para o campo de input sair do campo de vis\u00e3o do usu\u00e1rio, ao clicar em um objeto, solicitando mais dados de um determinado rastreio, se o captcha estiver errado, a mensagem somente ir\u00e1 aparecer l\u00e1 em cima no input, ou seja, fora do campo de vis\u00e3o de quem opera o sistema, fazendo assim com que o usu\u00e1rio pense que o site est\u00e1 quebrado. Vale salientar que o captcha reseta a cada clique em um objeto, ent\u00e3o ao requisitar dados a partir de um segundo rastreio na mesma sess\u00e3o, \u00e9 necess\u00e1rio sobrescrever o campo de escrita para combinar com o novo captcha gerado, e isso n\u00e3o \u00e9 informado ao usu\u00e1rio.","title":"Ajude os usu\u00e1rios a reconhecerem, diagnosticarem e se recuperarem de erros"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#ajuda-e-documentacao","text":"Existem as instru\u00e7\u00f5es para preenchimento dos campos e um bot\u00e3o que direciona o usu\u00e1rio para as perguntas frequentes, al\u00e9m de as mensagens de erro dos inputs.","title":"Ajuda e documenta\u00e7\u00e3o"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#bibliografia","text":"Nielsen, Jakob (1994). Usability Engineering. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. BARBOSA, Simone. Avalia\u00e7\u00e3o Heur\u00edstica. In: INTERA\u00c7\u00c3O Humano-Computador e Experi\u00eancia do Usu\u00e1rio. [S. l.: s. n.], 2021. cap. 12, p. 282.","title":"Bibliografia"},{"location":"planejamento/avalia%C3%A7%C3%B5es_dos_sites/rastreamento_correios/#tabela-de-versionamento","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor Revisor 16/07/2022 0.1 Cria\u00e7\u00e3o da p\u00e1gina de Avalia\u00e7\u00e3o do Rastreamento Correios Natan Santana Clara Ribeiro","title":"Tabela de Versionamento"}]} \ No newline at end of file diff --git a/ghpages08/site/sitemap.xml b/ghpages08/site/sitemap.xml deleted file mode 100644 index 6a10ab2..0000000 --- a/ghpages08/site/sitemap.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - - None - 2022-08-07 - daily - - \ No newline at end of file diff --git a/ghpages08/site/sitemap.xml.gz b/ghpages08/site/sitemap.xml.gz deleted file mode 100644 index 3eb1c82f3095016806262c44f78619375d50c6cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmV;`04o0*#^FTiIF2NksCzjC;(SAcYSSgqHKdFjvDl$h(}Ja&i+4_mi?f>3soOrt z5PMgPoaK4Oii{o7$eL}&R4Z+x?_NJdElu~~bdxM1{gHqJ4mjX|0}eRgfCCQrf8+C! Pz8vBU!9hKYq6`24<-%(7 From c9b4b2a2199c0ed292d4ce2ff15b2e86028f3878 Mon Sep 17 00:00:00 2001 From: MatheusPerillo Date: Tue, 23 Aug 2022 09:08:23 -0300 Subject: [PATCH 18/23] =?UTF-8?q?Adi=C3=A7=C3=A3o=20da=20apresenta=C3=A7?= =?UTF-8?q?=C3=A3o=20da=204=C2=BA,=205=C2=BA=20e=206=C2=BA=20etapa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ghpages08/docs/apresentacoes.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/ghpages08/docs/apresentacoes.md b/ghpages08/docs/apresentacoes.md index c7e0d06..3b60ded 100644 --- a/ghpages08/docs/apresentacoes.md +++ b/ghpages08/docs/apresentacoes.md @@ -25,9 +25,37 @@
    +## Etapa 4 + + + +
    +

    Vídeo 4: Apresentação da etapa 4

    +
    +
    + +## Etapa 5 + + + +
    +

    Vídeo 5: Apresentação da etapa 5

    +
    +
    + +## Etapa 6 + + + +
    +

    Vídeo 6: Apresentação da etapa 6

    +
    +
    + ## Tabela de Versionamento | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | | 20/07/2022 | `0.1` | Criação da página de apresentações, adição da apresentação da etapa 1 e 2 | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 02/08/2022 | `0.2` | Adição da apresentação da etapa 3 | [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) +| 23/08/2022 | `0.3` | Adição da apresentação da 4º, 5º e 6º etapa | [Matheus Perillo](https://github.com/MatheusPerillo) | [Natan Santana](https://github.com/Neitan2001) From a5dd7979938389e38c87d2ab63ba8536b2cbe089 Mon Sep 17 00:00:00 2001 From: MatheusPerillo Date: Tue, 23 Aug 2022 09:50:17 -0300 Subject: [PATCH 19/23] =?UTF-8?q?#87=20-=20Sugest=C3=B5es=20acrescidas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_1/planejamento.md" | 27 ++++++++++++++++--- .../etapa_1/relato.md" | 20 +++++++++++++- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" index cfb2423..66f40ec 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/planejamento.md" @@ -11,10 +11,28 @@ Através dessa checklist, verificaremos se é necessário realizar a correção ## Avaliador e Cronograma -O avaliador responsável pela revisão dos artefatos da etapa 1 será o membro Matheus Perillo e a revisão será executada no dia 22/08/2022. +O avaliador responsável pela revisão dos artefatos da etapa 1 será o membro Matheus Perillo e a revisão será executada no dia 22/08/2022. Na Tabela 1 abaixo, é possível visualizar os responsáveis pelos artefatos dessa etapa. +

    + +| Atividade/entrega | Autor(es) | Revisor | +| :-----------------: | :--------------: | :----------: | +Criação e costumização do Github pages e página inicial do projeto | [Natan Santana](https://github.com/Neitan2001) | [Matheus Perillo](https://github.com/MatheusPerillo) | +| Adição da equipe no Github pages | [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) | +| Lista de sites avaliados e site escolhido para a disciplina | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | +| Ferramentas do projeto | [Daniel Coimbra](https://github.com/DanielCoimbra) | [Natan Santana](https://github.com/Neitan2001) | +| Processo de Design | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Matheus Perillo](https://github.com/MatheusPerillo) | +| Cronograma de atividades | [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | +| Slides e gravação do vídeo de apresentação | Todos | [Clara Ribeiro](https://github.com/clara-ribeiro) | +| Edição do vídeo de apresentação | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Daniel Coimbra](https://github.com/DanielCoimbra) | 11/07/2022 + +
    +

    Tabela 1: planejamento do projeto e do Processo de Design

    +
    + + ## Checklist -A tabela 1 especifica todos os pontos que serão avaliados durante a execução da revisão, a fim de garantir que todos os pontos estão dentro do artefato. +A tabela 2 especifica todos os pontos que serão avaliados durante a execução da revisão, a fim de garantir que todos os pontos estão dentro do artefato. As perguntas foram baseadas na avaliação disponibilizada pelo professor André Barros no dia da apresentação dessa etapa. | Checklist | | ---- | @@ -33,7 +51,7 @@ A tabela 1 especifica todos os pontos que serão avaliados durante a execução
    -

    Tabela 1: Pontos a serem avaliados

    +

    Tabela 2: Pontos a serem avaliados

    ## Bibliografia @@ -43,4 +61,5 @@ A tabela 1 especifica todos os pontos que serão avaliados durante a execução | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | -| 22/08/2022 | `0.1` | Criação do planejamento da verificação | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) \ No newline at end of file +| 22/08/2022 | `0.1` | Criação do planejamento da verificação | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) +| 23/08/2022 | `0.2` | Adição das sugestões feitas pelo professor André Barros | [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) \ No newline at end of file diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" index 280113a..3e5bba7 100644 --- "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_1/relato.md" @@ -22,6 +22,23 @@ Este documento possui o objetivo de relatar os resultados da verificação feita

    Tabela 1: Checklist dos pontos avaliados

    +

    + +No Gráfico 1 abaixo, é possível visualizar o percentual de erros e acertos segundo o checklist realizado para essa etapa. + +
    + + + +
    + +
    +

    Gráfico 1: Ocorrência de erros

    +
    +
    +

    Fonte: Matheus Perillo

    +
    + ## Problemas encontrados @@ -43,4 +60,5 @@ Depois que foi levantado todos os problemas encontrados, o avaliador Matheus Per | Data | Versão | Descrição | Autor | Revisor | | ---- | ------ | --------- | ----- | ------- | -| 22/08/2022 | `0.1` | Criação de relato da verificação da etapa 1 | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) \ No newline at end of file +| 22/08/2022 | `0.1` | Criação de relato da verificação da etapa 1 | [Matheus Perillo](https://github.com/MatheusPerillo) | [Rafael Xavier](https://github.com/rafaelxavierr) +| 23/08/2022 | `0.2` | Adição das sugestões feitas pelo professor André Barros | [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) \ No newline at end of file From a3f0c11733bd84f2dd0ef1e115c67f8d0cfd080f Mon Sep 17 00:00:00 2001 From: Natan Santana Date: Thu, 25 Aug 2022 08:53:00 -0300 Subject: [PATCH 20/23] AJuste do crongroama --- ghpages08/docs/planejamento/cronograma.md | 34 +++++++++++++++++------ 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/ghpages08/docs/planejamento/cronograma.md b/ghpages08/docs/planejamento/cronograma.md index e8e0713..99a6494 100644 --- a/ghpages08/docs/planejamento/cronograma.md +++ b/ghpages08/docs/planejamento/cronograma.md @@ -122,19 +122,37 @@ Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limite Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limite para revisão --------- | ----------------- | -------------- | ---------- | --------- -26/08/2022 | Construção do protótipo de papel | | | 27/08/2022 -29/08/2022 | Teste Piloto da Validação do Protótipo de papel | | | 30/08/2022 -31/08/2022 | Entrevistas de Validação do Protótipo de papel | | | 01/08/2022 -02/09/2022 | Relato dos resultados do Protótipo de Papel | | | 03/09/2022 -02/09/2022 | Planejamento da Avaliação do protótipo de alta fidelidade | | | 03/09/2022 -02/09/2022 | Planejamento do relato dos resultados da avaliação do protótipo de alta fidelidade | | | 03/09/2022 -03/09/2022 | Slides e gravação do vídeo de apresentação | | | 04/09/2022 -04/09/2022 | Edição do vídeo de apresentação | | | 05/09/2022 +26/08/2022 | Planejamento da verificação dos artefatos | [Natan Santana](https://github.com/Neitan2001) | [Matheus Perillo](https://github.com/MatheusPerillo) | 28/08/2022 | +28/08/2022 | Construção do protótipo de papel | [Clara Ribeiro](https://github.com/clara-ribeiro), [Matheus Perillo](https://github.com/MatheusPerillo) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | 29/08/2022 +02/09/2022 | Construção do protótipo de alta fidelidade | [Clara Ribeiro](https://github.com/clara-ribeiro), [Natan Santana](https://github.com/Neitan2001), [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) | 03/09/2022 +30/08/2022 | Teste Piloto da Validação do Protótipo de papel | [Natan Santana](https://github.com/Neitan2001), [Rafael Xavier](https://github.com/rafaelxavierr) e [Luíza Esteves](https://github.com/luiza-esteves) | [Matheus Perillo](https://github.com/MatheusPerillo) | 30/08/2022 +31/08/2022 | Entrevistas de Validação do Protótipo de papel | [Natan Santana](https://github.com/Neitan2001) e [Luíza Esteves](https://github.com/luiza-esteves) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 01/08/2022 +02/09/2022 | Relato dos resultados do Protótipo de Papel | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 03/09/2022 +05/09/2022 | Ajustes do protótipo de alta fidelidade | [Clara Ribeiro](https://github.com/clara-ribeiro), [Natan Santana](https://github.com/Neitan2001), [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) | 06/09/2022 +02/09/2022 | Planejamento da Avaliação do protótipo de alta fidelidade | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 03/09/2022 +02/09/2022 | Planejamento do relato dos resultados da avaliação do protótipo de alta fidelidade | [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | 03/09/2022 +03/09/2022 | Slides e gravação do vídeo de apresentação | Todos | [Clara Ribeiro](https://github.com/clara-ribeiro) | 04/09/2022 +04/09/2022 | Edição do vídeo de apresentação | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Natan Santana](https://github.com/Neitan2001) | 05/09/2022

    Tabela 7: Relato dos resultados do Protótipo de Papel, o Planejamento da Avaliação do protótipo de alta fidelidade e o Planejamento do relato dos resultados da avaliação do protótipo de alta fidelidade

    +## Etapa 8 +Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limite para revisão +--------- | ----------------- | -------------- | ---------- | --------- +05/09/2022 | Teste Piloto da validação do protótipo de Alta Fidelidade | [Natan Santana](https://github.com/Neitan2001), [Rafael Xavier](https://github.com/rafaelxavierr) e [Luíza Esteves](https://github.com/luiza-esteves) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 06/08/2022 +07/09/2022 | Entrevistas de validação do protótipo de Alta Fidelidade | [Natan Santana](https://github.com/Neitan2001) e [Luíza Esteves](https://github.com/luiza-esteves) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 08/09/2022 +10/09/2022 | Relato dos resultados da avaliação do protótipo de Alta Fidelidade | [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | 11/09/2022 +11/09/2022 | Slides e gravação do vídeo de apresentação | Todos | [Clara Ribeiro](https://github.com/clara-ribeiro) | 12/09/2022 +12/09/2022 | Edição do vídeo de apresentação | [Clara Ribeiro](https://github.com/clara-ribeiro) | [Natan Santana](https://github.com/Neitan2001) | 12/09/2022 + + + +
    +

    Tabela 8: Projeto Final - Construção do protótipo de alta fidelidade, Entrevistas de validação do protótipo de Alta Fidelidade, Relato dos resultados da avaliação do protótipo de alta fidelidade

    +
    + ## Bibliografia

      1. SALES, André Barros. Plano de ensino da disciplina. Disponível em: https://aprender3.unb.br. Acesso em: 03 de julho de 2022.

    From 5629f25105e2bb965970d40db6c0a1cb941b9d03 Mon Sep 17 00:00:00 2001 From: Natan Santana Date: Thu, 25 Aug 2022 13:48:32 -0300 Subject: [PATCH 21/23] Ajustes no cronograma --- ghpages08/docs/planejamento/cronograma.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ghpages08/docs/planejamento/cronograma.md b/ghpages08/docs/planejamento/cronograma.md index 99a6494..a24fe13 100644 --- a/ghpages08/docs/planejamento/cronograma.md +++ b/ghpages08/docs/planejamento/cronograma.md @@ -124,11 +124,11 @@ Data limite para entrega | Atividade/entrega | Autor(es) | Revisor | Data limite --------- | ----------------- | -------------- | ---------- | --------- 26/08/2022 | Planejamento da verificação dos artefatos | [Natan Santana](https://github.com/Neitan2001) | [Matheus Perillo](https://github.com/MatheusPerillo) | 28/08/2022 | 28/08/2022 | Construção do protótipo de papel | [Clara Ribeiro](https://github.com/clara-ribeiro), [Matheus Perillo](https://github.com/MatheusPerillo) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | 29/08/2022 -02/09/2022 | Construção do protótipo de alta fidelidade | [Clara Ribeiro](https://github.com/clara-ribeiro), [Natan Santana](https://github.com/Neitan2001), [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) | 03/09/2022 +02/09/2022 | Construção do protótipo de alta fidelidade | [Clara Ribeiro](https://github.com/clara-ribeiro), [Matheus Perillo](https://github.com/MatheusPerillo) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Luíza Esteves](https://github.com/luiza-esteves) | 03/09/2022 30/08/2022 | Teste Piloto da Validação do Protótipo de papel | [Natan Santana](https://github.com/Neitan2001), [Rafael Xavier](https://github.com/rafaelxavierr) e [Luíza Esteves](https://github.com/luiza-esteves) | [Matheus Perillo](https://github.com/MatheusPerillo) | 30/08/2022 31/08/2022 | Entrevistas de Validação do Protótipo de papel | [Natan Santana](https://github.com/Neitan2001) e [Luíza Esteves](https://github.com/luiza-esteves) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 01/08/2022 -02/09/2022 | Relato dos resultados do Protótipo de Papel | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 03/09/2022 -05/09/2022 | Ajustes do protótipo de alta fidelidade | [Clara Ribeiro](https://github.com/clara-ribeiro), [Natan Santana](https://github.com/Neitan2001), [Matheus Perillo](https://github.com/MatheusPerillo) | [Luíza Esteves](https://github.com/luiza-esteves) | 06/09/2022 +02/09/2022 | Relato dos resultados da validação do Protótipo de Papel | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 03/09/2022 +05/09/2022 | Ajustes do protótipo de alta fidelidade | [Clara Ribeiro](https://github.com/clara-ribeiro), [Matheus Perillo](https://github.com/MatheusPerillo) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Luíza Esteves](https://github.com/luiza-esteves) | 06/09/2022 02/09/2022 | Planejamento da Avaliação do protótipo de alta fidelidade | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 03/09/2022 02/09/2022 | Planejamento do relato dos resultados da avaliação do protótipo de alta fidelidade | [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | 03/09/2022 03/09/2022 | Slides e gravação do vídeo de apresentação | Todos | [Clara Ribeiro](https://github.com/clara-ribeiro) | 04/09/2022 From 78b2744be666f186800e44ae1ddd017eb980c4b1 Mon Sep 17 00:00:00 2001 From: Natan Santana Date: Thu, 25 Aug 2022 14:36:42 -0300 Subject: [PATCH 22/23] =?UTF-8?q?#47=20-=20Cria=C3=A7=C3=A3o=20do=20planej?= =?UTF-8?q?amento=20de=20verifica=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../etapa_7/planejamento.md" | 157 ++++++++++++++++++ .../etapa_7/relato.md" | 1 + 2 files changed, 158 insertions(+) create mode 100644 "ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/planejamento.md" create mode 100644 "ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/relato.md" diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/planejamento.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/planejamento.md" new file mode 100644 index 0000000..64710b3 --- /dev/null +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/planejamento.md" @@ -0,0 +1,157 @@ +# Planejamento da Verificação da Etapa 7 + +## Introdução e Objetivo + +A fim de garantirmos que todos os artefatos de todas as entregas estão de acordo com os requisitos e critérios de aceitação definidos pelo professor André Barros além das alterações solicitadas pelos monitores, é necessário a realização de uma verificação. Assim, todos os erros encontrados e qualquer coisa que estiver faltando, será ajustado e documentado. Nesta página será feita o planejamento da verificação dos artefatos da Etapa 1. + +## Método + +O método escolhido pelo grupo para realizar a verificação será a Inspeção, método desenvolvido na IBM por Fagan (1976). A Inspeção consiste de uma revisão seguindo uma checklist que deve ser levantada no planejamento a qual terá todos os erros mais comuns e os critérios de aceitação. Esse método foi originalmente criado para revisão de código, mas pode ser usada também para outros escopos e artefatos. +Através dessa checklist, verificaremos se é necessário realizar a correção ou adição de pontos dentro desse artefato. + +## Avaliador e Cronograma + +Os avaliadores e cronogramas das revisões podem ser observadas na tabela 1 a seguir que foi extraída do cronograma do projeto. Todos os revisores irão utlizar o checklist e planejamento definidos neste documento a fim de realizar as revisões. +

    + +Atividade/entrega | Autor(es) | Revisor | Data limite para revisão +----------------- | -------------- | ---------- | --------- +Planejamento da verificação dos artefatos | [Natan Santana](https://github.com/Neitan2001) | [Matheus Perillo](https://github.com/MatheusPerillo) | 28/08/2022 | +Construção do protótipo de papel | [Clara Ribeiro](https://github.com/clara-ribeiro), [Matheus Perillo](https://github.com/MatheusPerillo) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | 29/08/2022 +Construção do protótipo de alta fidelidade | [Clara Ribeiro](https://github.com/clara-ribeiro), [Matheus Perillo](https://github.com/MatheusPerillo) e [Rafael Xavier](https://github.com/rafaelxavierr) | [Luíza Esteves](https://github.com/luiza-esteves) | 03/09/2022 +Teste Piloto da Validação do Protótipo de papel | [Natan Santana](https://github.com/Neitan2001), [Rafael Xavier](https://github.com/rafaelxavierr) e [Luíza Esteves](https://github.com/luiza-esteves) | [Matheus Perillo](https://github.com/MatheusPerillo) | 30/08/2022 +Relato dos resultados da validação do Protótipo de Papel | [Natan Santana](https://github.com/Neitan2001) | [Clara Ribeiro](https://github.com/clara-ribeiro) | 03/09/2022 +Planejamento da Avaliação do protótipo de alta fidelidade | [Luíza Esteves](https://github.com/luiza-esteves) | [Rafael Xavier](https://github.com/rafaelxavierr) | 03/09/2022 +Planejamento do relato dos resultados da avaliação do protótipo de alta fidelidade | [Rafael Xavier](https://github.com/rafaelxavierr) | [Natan Santana](https://github.com/Neitan2001) | 03/09/2022 + +
    +

    Tabela 1: planejamento da etapa 7

    +
    + + +## Checklist + +As tabelas 2, 3, 4, 5, 6, 7 e 8 especifica todos os pontos que serão avaliados durante a execução da revisão, a fim de garantir que todos os pontos estão dentro do artefato. As perguntas foram baseadas na avaliação disponibilizada pelo professor André Barros no dia da apresentação dessa etapa. + +### Planejamento da verificação dos artefatos + +| Checklist | +| ---- | +| O docuemnto possui um texto de introdução? | +| O docuemnto possui uma tabela de versionamento? | +| O documento possui as referências bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| O checklist de cada artefato possui todas as perguntas necessárias para sua revisão? | + +
    +

    Tabela 2: Pontos a serem avaliados do artefato de planejamento da verificação

    +
    + +### Construção do protótipo de papel + +| Checklist | +| ---- | +| O documento possui um texto de introdução? | +| O documento possui uma tabela de versionamento? | +| O documento possui as referências bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| A documentação possui todas as telas do protótipo? | +| O protótipo foi feito de acordo com o que foi definido no guia de estilo? | +| As funcionalidades representadas no protótipo segue o que foi definido no storyboard? | +| As recomendações para os problemas levantadas na análise hierárquica de tarefas foram atendidas? | + +
    +

    Tabela 3: Pontos a serem avaliados do artefato protótipo de papel

    +
    + +### Construção do protótipo de alta fidelidade + +| Checklist | +| ---- | +| O documento possui um texto de introdução? | +| O documento possui uma tabela de versionamento? | +| O documento possui as referências bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| A documentação possui todas as telas do protótipo? | +| O protótipo foi feito de acordo com o que foi definido no guia de estilo? | +| Foi realizado os ajustes de acordo com os relatos da validação do protótipo de baixa fidelidade? | + +
    +

    Tabela 4: Pontos a serem avaliados do artefato protótipo de alta fidelidade

    +
    + +### Teste Piloto da Validação do Protótipo de Papel + +| Checklist | +| ---- | +| O teste piloto foi executado e documentado? | +| O documento possui um texto de introdução? | +| O documento possui uma tabela de versionamento? | +| O documento possui as referências bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| Foi feito os ajustes no planejamento da entrevista de acordo com o que foi levantado no teste piloto? | + +
    +

    Tabela 5: Pontos a serem avaliados do Teste Piloto da Validação do Protótipo de Papel

    +
    + +### Relato dos resultados da validação do protótipo de papel + +| Checklist | +| ---- | +| O teste piloto foi executado e documentado? | +| O documento possui um texto de introdução? | +| O documento possui uma tabela de versionamento? | +| O documento possui as referências bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| O relato possui todos os tópicos levantado no planejamento do relato? | + +
    +

    Tabela 6: Pontos a serem avaliados do Relato dos resultados da validação do protótipo de papel

    +
    + +### Planejamento da avaliação do protótipo de alta fidelidade + +| Checklist | +| ---- | +| O teste piloto foi executado e documentado? | +| O documento possui um texto de introdução? | +| O documento possui uma tabela de versionamento? | +| O documento possui as referências bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| É apresentado os objetivos da avaliação de IHC? | +| Apresenta os métodos de avaliação a serem utilizados? | +| Apresenta as questões práticas da avaliação? | +| Apresenta sobre as questões éticas? | +| Apresenta a estrutura do relatório da avaliação? | +| Apresenta um cronograma para realização da avaliação? | +| Está previsto a realização de um teste piloto antes da avaliação? | +| Está previsto o que o avaliador deve realizar durante a avaliação? | + +
    +

    Tabela 7: Pontos a serem avaliados do Planejamento da avaliação do protótipo de alta fidelidade

    +
    + +### Planejamento do relato dos resultados da avaliação do protótipo de alta fidelidade + +| Checklist | +| ---- | +| O teste piloto foi executado e documentado? | +| O documento possui um texto de introdução? | +| O documento possui uma tabela de versionamento? | +| O documento possui as referências bibliográficas? | +| Todas as imagens e tabelas dos artefatos possuem legenda e são chamadas em texto? | +| Apresenta a estrutura do relatório da avaliação? | + +
    +

    Tabela 8: Pontos a serem avaliados do Planejamento do relato dos resultados da avaliação do protótipo de alta fidelidade

    +
    + +## Bibliografia +> Gerência e Qualidade de Software - Aula 06 - Técnica de revisão, Fábio Levy Siqueira. Disponível em: - Acesso em 18/08/2022 + +## Tabela de Versionamento + +| Data | Versão | Descrição | Autor | Revisor | +| ---- | ------ | --------- | ----- | ------- | +| 25/08/2022 | `0.1` | Criação do planejamento da verificação | [Natan Santana](https://github.com/Neitan2001) | \ No newline at end of file diff --git "a/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/relato.md" "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/relato.md" new file mode 100644 index 0000000..ea8e6e5 --- /dev/null +++ "b/ghpages08/docs/verifica\303\247\303\243o_dos_artefatos/etapa_7/relato.md" @@ -0,0 +1 @@ +# Relato da Verificação da Etapa 7 \ No newline at end of file From b6f1c4514f51e1886aba483342ea0bc6c8f2392b Mon Sep 17 00:00:00 2001 From: luiza Date: Sat, 27 Aug 2022 14:16:24 -0300 Subject: [PATCH 23/23] adicao de grafico e correcoes --- ghpages08/docs/assets/grafEtapa5.png | Bin 0 -> 158183 bytes .../etapa_5/relato.md" | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 ghpages08/docs/assets/grafEtapa5.png diff --git a/ghpages08/docs/assets/grafEtapa5.png b/ghpages08/docs/assets/grafEtapa5.png new file mode 100644 index 0000000000000000000000000000000000000000..469fec0f80fe3862758217d841c0661afa5cc988 GIT binary patch literal 158183 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

    BL za?Li_Sxuj>T@v}DN@X6Vk5=wd*0r@eY+!O$Z6-6S8xKRd0ZlO{-_?dz(PT<4=R&r~e^e_nB&;y6zri~Z*uEt;oqw)?ZJiSqg3{09jM z3j~L&GU9KC)O>lfVf%SzO6$P0ntDa;j>^)+j_&!HlWgLS+~kUvZ%#3W*rjIX#;iww z`9w*kcl0PpaeE@0SpA0LsaK=JuXk*&d2?kyi4dRpTI{+bCz^}HSy!%J^pAdd>~uihB7BlIT4n51O4(n7J0y!nRQ$ zpTZT>BB=qtf-ivInQt)HO5wl(wgqf+IL`Q@^-Rwyk&>3aoz!JrOHFK%weM`j-De}Z zQI~4UD88s9mK&H!R+e5k-89jpSxhO5Xrk2Uc}3$@(XrtdE-`+*F**wpg!B`sPiJyQ z&)T&6Tj_3|oRpvdV`++3gI3`rW?x@c?J;b-S1)V9evC5;3I>NWn~OKmbNg=hwB~PL zs=#U76q~0tU24h@av%4J@2G2NTX_}z(I4$| zpHfjNyZie@Lxs9UstrHoKj1BpX%8ANwZ_V^)a{EIQxP|q*8CBbalJb?6YJ+%a+fS ztoHgL1&({Fe8O&&xD~te_x3H2FVfdoB@(#j=B^p|v(%PT&CZw7@}gB8Ra3JOFL=bo z;doJ-O`<81WD=bC@@!Svx?+!Gx-MhCQLY(CnP;FqF?s#^@&OK4M{V(`cZ$EG>05E) z*KfwWi>C(*a!misp#EMEB^5sDUidxdyIfoNbo zF89wYF$zfaUB#K=_3NqtQh#q>6?$`1xx-+Q@RpWC2PqJ@a}y7{j2PIRXQzT2ph;y;bwvma<9yqM?S9}P<; zhgvpw-pu;067FvEtA__~GRT4i{>-0u`JyXBtfB0nrV6Egq^fdh zJ+>ODPQ2vz(vTL2i5YvU#+_)lDz?#k8Lmg+D`*q{r99(ng~G{tf5*=s&JVZ0SwKRs zzjZV1Dz)xrw`oV>q-+T-hEmMaY_GU5I2P6vA!}oKK=#7ArmY-}FKu+M8_F}% z<|v2W(E@+i#u`v+6j01YBJDWmA>v$~YtNi{D`c7f@%ltrLyE8atn)%S`giz|q=uis zpTU&WIez}*`aAth5wd&Trz&5!Pjrc-T*vigk$Nd6|3sTYvd~yA)%Cs_esb(ZduHZY z61iUc^K*!Z4;C2N>)I^y=_e)>z(`AfQg7kX{`0D^QX$29@?`IACf>aC>8KLxDmlMV zj{2;Ul(Au2plomNwssPOif86-T)ZS2O`cWd)BTmT?I~8T{=H63-b+j;t>UPBfN=Rn zAIDZ(OJ1ry*C$2#$h1Nu6Xg#Yr4JYdm#D`&QT zPy2HLyd66de0Zl@e{KzqWnY8{6+T`E_UV}AC9 z>e=Q%Y|-`|Ygk$YEDO)ewH)wpMnt_u62L$AOs!yOF&DLE&x?;wJa@DhxJf)O>P^N& zqxSLU3uQNiiYZbITF-BkP)PHrsfw~oyIgbKaVj8H7U_m8)m>)>zt^Ne__l1iu+Ry` z>(m{JqL%&d)ehSy@kG0KWjgi`hZ(ulwGo?VH+$LhhODySP@Z>CSc3#5^#@W;a-`8r zEM|YVSO}@5_pC@K=#Yu?m!2&)sZm=+=m#YD3p-a+K(^-^3e=%ZyhJec=VeayFZIyc z=rYcB65I5epEwdREb!i?gc!!%O~2On&W?jDD?^! zTqpF#_axZ<^JPpqWsfGEFY26eINIafG4aW_iK>$q?8w3uUo6W=6Pz!5XgwA=OaXV;B&mC8kVu2nanZ&HyO)e)b(c2HGa zom`~iic$F*pOqrYen<*(sroCaYtBZ6PRF|jl*EjN)y&%)yX)ou%AV3UckS+FX{e5Z z%H`G;X1zlTdGYT>3#3XVX_dsWUhEbwYmculX|g*@?24s#gf9;Ba}Oag{HxLW_ped| zrY--$>9wW7CJp6}tCItgo5x9<7tLKQzt+32TgjibOX>R0E2b%=Hti4@k4D(c>#@&kl-muarCzl@;DB`%b_TYVT zc`X8tovS8pi8!1-8Evad{qRoyp$1OR?c9axAkm`g5U*PQ|go3Q=P2BEZ@G4B&$-N7j0e%3AYg*0!InJ zv$+sf9;y9N@chUFN}8l~Q`wd6CjBki%!+%2R0S|qbNr;0P2ZpNE~N08`f{$v)c$!vLMTzl>QZ>%>HZ}9-G`K?@#3S15BZ=f-RMv zl&%tUow!)=Wu#d(tzf@KY8zX5gvwpzuRVQjE13nnv^8&(M>c*GOtO`xF2r4Gn01xG zHfm)$+nm{(>brRl{rV1h|9kiZWs8x!K8E8-^)=mJmC925jwVVuFdajIf0~bDC2L@Q(fid>Xr`{Zl~5-+qgR9R51 z!Gt~6);>1T*A;ZreHpFCA!MSG3!kFl)GkQQ^9^-B=?_4SaYlN18>j5Y~4+RRZdezs5sjzGox*yY>a3l$aYHt-04 z#E<*=WA=;QKgqHAW0?PO%05U_<4I4bKfAei1N|LGU%i!IW?xoWbA&xs;m*cf$Cl5x z_B)+987{uNEG$e`9{`qOO*2$+25rAIpu#0bx3ful#b~-WZyPGe7qidD)Oc7L~el=>*2HK{jKA&m;ooc%ZbYr`@@eQW&!6yHEIIVWwcdNSG-|2wdotjh0e z2E#S>n5>CPP)!p(=PTIZ#oJ<`8`+QJ! zW1SX1V;Rb&ReUw}z0z#UezM_IjUkKc{DG(=!*g!Ug+F;B^_4}aWY=<1{$ zY9Pvm+g$uwhCxBMkM|$m%DN}9!|yphW&y0GYg@ti;o1Bf*3nsfxNtO1v}+)0_<1KVGG56oWXYs%`vp|{PbY>f}$PpO}? zg8DguFUJ!KE#h7eWk+ZC`;)9t_4WR@E1#{(^b-#&dzV$y9UB|HY)w?DF}dfAnK^6h zRN-w1>zLK+favr#g4Oalc5Rzl{8v#Wcm^YQu*5)|_az@UaPI>{nCp*}z}-lvh**NwGL{2p)Paw^nfRg~=e^@ba;LUc*HG zCWfLQA<;ZG!D4-0LY^JBb9YtVThk};2W&6SX9act@cZJs8_`ABMtzL`rm1@=G)hoR_WQLnKS0zng-TPjqme)6a1Cx>CmiTWn$DQ;0}|A;Od z&#|-e(bv9b-Ab})_mTlg$5WF5P4XUt!R7_hDK0BZay*kgGjmM!ajK*lqpo~z#WgkF zr``1+-kNhpF@iN)@!F=+bL;+`W%pJ=6?oC^un)Ale13W8OVG3OSWAy%Z|m#jTj!ox zbpL+w;-TB3A#88sRjRk1YT^B6%`Twj>xS>2NUG}UzO|>1yZ#hYQQa3Uy7(Sa8ZDhl zU(t@gpOsh@o09T_S>HDDpYb6nwrR6Isqy}a;hS&6jXl4z*in@%AG7t)ot_=lI@hAE zk$}5#(RXN9C~77w>RoUzvU;r_4qg6ynN9rd*0C`^Rn#S8V@lRNFYTIh|KPh#5LTB> zFTm~8*goGPx7Bf0bp7ORNzUlAF^s;3JyT!!eBCXEmX_DEiW<~u#zBP#uf-M>2@-2w zwN6;>*s*3U+hcu~ZI2yOV>4q7Non>tWM`?ddsh$B%9T#4f%F~D<1c-lKAqXsAMSAB zb#C>wV^wZ0nSO^ExVp2fwe`^3PfHIZEk+G*w8JTBpBxWxN--hkw>yq{Uo<_;^6J&T znikjnc#;f`eY~-gj?K9PLgmfwT^&PbJ+kh7G{!4%_A5tD+!;I6=^P8p?C5nRFJVQ?l$Qud9~bD&=PxLR2rO{D3w<5x-NvPm>m-lDO0#{qJS| ze=SgecDajY@rgvQ{>v#kPLh6+X8r<>_Zua5k8dZ1OP`Y;RlqiZh2 z$ZomvBD{}5_mG;KD3`L=dXZ<>C))3@v>3LOxBro)iyO@CjuvWgn;!Rznfnr7li621 zm-wd}qqX7OK1%NOytGK6y`O(<6Ms&l;XLP)A(n4`*ZZc7CVQlD)8!+4vYQ-Mw47GG zygFz=;nmC2HhcJ!dulEo3}HF5-KO-;ivwdvvQFy?{`vNty6<_dNN@HFF8a1kBmdp~ zaM;pWmc;Xg`-nmq;nkoDP88p@}3+OF7rw%v2ZTCa`(DM`EWFSRP= zc>j+1dCsq1FRtm6Ho2uq0DRZ=+s#|H$f>KVCrCn%$Hj$=`}4!c*RNl9{QT!CbJwth zgoIlXF7|%aON;YB>1(v=7Qfyr-cL%}yYF4D_TvlIk27}a^xqi3w$FtmvpXS*b<1w)KH{6@Sexov9g~V0gZwu8}$FiS0 znM2I}lHcGC+U+QH_?BMbl1aP%5vfyX{1?iNh&m6erEa~y6bpLXfpqaSwf-pwT-AaGm6 zieul|EMKDl3E`2^QHM{_5h7Op9y1-BX+Qn>i&mbkX_7&)f{Nm^;Igm|ND->hZ4c=bw&TRJZ`mMhwQ>eE&cOWlIcPgg?{ z)Fcq;@|-WehJIOb(nakZ4$Nl-o1NFOv8x=v%A5xytX1heL5zpH?^Z#srVP`^ucpU<+q~7Yhnvh(OJ^B$P8Er@&dBpUaS9tYW(?y@{DwzQp6G zZ5X2AB;H6UK0V%SRetUo`^|)W`+;p%#k2NuqpQ|zUB8i6+4uSL=e|>}r!6flFSQjM zj^iNTJ8M;V5Syi$Jgt{!>+Ld_%d0Fo+37nzq2=!GPLd24TJ7(D-YV{RxoH{!(f_Pv zE>9a`ky-V{*LRMP2bA;Mwt1|tq52}d`ZR6}Cg-0&R3s)j)e~nn_CPIOS=Vi>&bpl4 zp+s`JKSVUxbanlNWfZl zQ5h_FtZD82=I^(+WtghX^lBDg->4!kcvHY2x~GbXX{eB)?>d%f;1^+4G>Kn@i*X>O zTxPpc@dLT+#dnWB2v?subEbskoI@iOJB$WfavzR5kM;5t*~rM8KY!kr?eKp8!(F!q zewQ*ie;$E&U;FE0>-?f6T;zybT6dH+i)Z8C=kz8d#u^m66T9EmxLCt@wi;BW=u_A3 z0sG38D^15<|8Y!;G5P1OtIGRQi=z|pS*#K+<4NN)L$2LoreD3~%tt2ec(zXJWS!Jx zr3#mrn9DWiuFf+<@k~$$x_=pH7HLCH%os(~DKBL9?u~ei@8Cd-ik; zdCa?i9b9BliRmbY@%!P0(0S~-2;Ef(nIT5T z-hH@~xugFvIeQ~GW3-^4Am_^)#W*aCb$?p9oW6dWu!Clj7E@~BxQ_Vz%;@k$M*wE2 z_o&4@gSj$SOU=7}>2I{jKhhEoCsxzFQpqFeG}4(d`px&-N<6<>L6+FMjK$;>dbK9a zsC;6=AH*VZ`IQrF!Z%PoqbOxfNgiWd<2|V1rRg5cEztGuw^p!~Y_aZIpaobHF z^v`Bp^8V$QUvg&0o7HAVMn>ALJf_dSO+G6k>M$7TJpOk$&~O>T&kl7*+O(&7%$oP^ z6%!NVFP<5h7!L4Y!(ujmh$5M(T+g9(GZK+f6r;aU=)Ot}2MMv`{)*}MPMty9n$v_KzT%r2>kHd5*8;C} z9IMmpKuo27_}uN~MeMu8dt-;Z)Rbz|q=5Ud&nnXo|-*)CE% zsf0*&KK@zE4z6v&m$qip-CbrTt3CVy{q9$BBE>smRrfd9VV|vm_U>Pmf~Sb;JAb;j z_3)KWWpb09IKVEucy{2Hkcl#z`@{#P;h0k+bFwy2i#v zLC4SU+4H79b$_>d^~ToZEH_3z-7mY%d5^lor#C!Ey_>IbIA6?k@kb~kc6BdG&#q1# zLh3v-#>~6xoA(&vMwpmXQ}qiSr#{6m7+aZJwP;@w9?ZC@5nI~l>#Xn4YBxMLJrv(N zGc$ARu+0TFw=Xp;V-laAtT2MBSy%jU4JYRyq%dn5xY@}`NPVi2=Tw^3huXn zv+m_1nJ&?AKH{_T_TwHNd7}~ZnVtGB1DU?|i^uQ$RL!*{&4dYzUm+>%#vaZ4y(kN0 zB7`mMdj?rdBAKR#iaiqCXU7_9zYb+^3z<~;3L2H&?L~Yl4N;L~K|ZOi56OwF>w>cicU zTLlee5>k?qe95<27?el*;a`syvqr+-YpbYj&szGcsw)2%0>$D3Nsk`=7*uGc227)i zr7<-ro^Bm#4?MP3;jV|WvT}<9-7N@SESe9O$DH-|-e2aM8j7~ir|Pped>TswO4=&v z>e$q1FhA8`Hnt60ct&0QUhjuz*UI_gBZF()W8f0mIbFBSHw?gVE3^uo?GlRGukUG3 zf5ESqG_T?@RZE~!LNqqHU}ofn_t>Id<0r<>4Y~3L6~)x2=;af8PT=R`^A>4yjFY>tSkOIkVOmy}xjY2= zEhRa4>|5T*^$4a38mY)IGO$gxv6taOMo6VBLt3mmRifEQ`pH8MR*hGV+7@2-KsBxh z)|j9VQm_CyhGncDx#+&RTMEqSzP=`q6~eFm#31&yopXKy@bI~2(S~w1o0GBAZa9A| z>ZWx7sR~tbMpJ^AZO{5^Y*&uM#b3lrg`gaHSVp<;>Gl7*ZxS!+j$K=uY@d2xDWYt$ zJ0`|n*uMXr86#0i?fyxH#OW`e)Z#|-9EPGbs-wh2YTOmfvE(`clzGn_3=sLD7e7&l zX+tyP^XGZ8n#b9IyVHh>rZ2oTQkhp?%xjNK{&nd;R<7Psl3`kV`j3s=2mjFmi~(zJ z1XFTOP69HjNR0qaDM`fn{k__(`mV#J8B?KZ$`5OtP!l@p6kh)D)Qs^QF~gr->_Xm~ z?kQW^7oG3EO8QdYaGdR5&T!^$XP63B2goUhvu#n01x}+G&XXe_S;i7HQ}yrf zaZBm%{}K~+Mnhxpb1U$tK(Zua?}o-tK5VwHkFd1HATR2)B3$@Rxdm|-FH!6LhyNqJ z)XJef(Z7IUTBwn8G9LeN?AnDE5#UkWS*X2+mewt6`t2{DJlheK-%h-A8*k)IhLt|F zPep|zQfp`S7GrF0dYdL(caSfPPl@hguu zgd%P~K+5oXS@b_F%l$idwkPYOxc|~qvm_5=ffduV)%> zJQB5NxIb0@D`Ro3-m=#V5dL0NGC)5bO4~??6T>AFAJ%zn1r|9d9G6$0YEYc03874a zUg1%{Mu5*=yN)tHa|_Fzf4-wU-P@b3Lk1d)`+$qqAugZl`;e}9bFVkDTZ)Fs-~%je zfA8jTosSL=U703#nX)SbNOw`8Ao!Rjigy+>m0~xia$KXDj!3ou*pMS9}TvHEa zw@MP?$A$q+h`oiVRG{%k-qJNL20EK$|k?mLlnv!8U$lO0CPgvUhNI=afPHs zphYuXzC#?Ai{S(?s9~ao6b0~)@P%-{Ehb+m&wk*xM)6c{qUn)Faa#~z(~W@ceeFLH}hiV%M2j1L?J#ZcEY!*2aXf%jgW2WW5D zvr7!2tdgU_<@i;%q@PzT03pIM_Ib(M?+E`FudP}9@|1W-He~9{r-ylnV%C!%!y1}q z0F($LS6fx)&z`R)0gU{nm#|cfsk^}Eck9+kPW%)*Tl`Y_(1+hDsxUQ#Od3x1=b-55 z$1nqQ@6&yqBT)vJ((_@UvZkh{_Y)U=OM2TfmhsW5J-c=tPn>29aiWCE%zH+R@Te!< zxi8sqAhW@K!u{88zJJpTpW@9rD^mje$*y$!fI^)>;g{1u9=tUy1{#RPKA>Cf_u|Z* z5+HqZ+pby_sVM6JVgw4jQK1Qhn%KDWWJQj^;3p~fR0MWsR0Ksz59_sSbJfRlQJf*;ooolaeHzRV1d~s4Y0X0 zfW{~9Hh{sY?IrA8mSyYh<5r88_WBoANaBrgg`_oe7gU!clG4{Jb-w@G(B`ipu)vx0Ous&yJ?pi z(`B5=-Jt>rOn||2O3i#&xAD`G41#GnRtQi(bt+K9L-e;?;V9ht@QqYg9`)3-+58*; z#_V}60KoU_tO|zZV)JEXGOXy5zpvwrwih<82%G?kw;^Wid@TsdjOr{9NkwDHR#*+$ zSQ{+qdQxs1&Z57wQEK*+N^R93+DeY#f;L7h+QyTxh~=BI0`-LeXoTp5zPdzaSVGhJ zX~InuO}?_aABDEX;Oo{nf6?8^(Wv+hUEJOPZW^NDpi=kZ<~|>rs>8gv@~Iu8MJFxu z2eK-vt5xa*if694&QH@-k~|ReNY9M)#F&D%2uFLb7AW|!3K%WpFsWrXZQjiD2Jd(J z>&sI>%CcWm=B-BQJ$+fY`rf?+wauvjOfL=O(n-WIml zrXoHpgA;=V?8e)D1muR=3OjyXCwbhpt;~-#4uO5RC_j!+Vt`h)Rqh}rOF{AkTNCny z&}0~wt@{0Y)-0c_$<(SSF?rnAg8NTjW#EuBHfB9r)uu)-rX8_p&D6|t zaSqavh^nFmyALant;N?|;Q2g}iQ&Kb7_P*uoh}yx06OZv8o)-p& zbT@`lRI+}dsIu5V2BA|oOtQj=@`s;s&i%MnwCB#mXv}=1wbVabMjKzV+_={f*ju&` zyQjwoI)Jttud>em<)_3i($2rQDNw*buS5#HC$+I(R<4c(>>WlpcmL3e=+ghzpV`3G zT72g7Gt$6$+lbnweX1`t0Gw{ApGeyR|B3h~(66ql$^Fm6_q4nRF@Lk)1rh_PL7WxjoNmzGx*tR@aZ&HMlx_am{Jp;QI z?bH>HqM8*-i4-U$!g7!rj4Fe9yayJG=qG~$CYnnD606uB`A-4m2f|-3Ln#jhXgM~F zm9%GuV=i}*!tlw@E2J20@DwQ36pbL>gvHOnnWh0f^y*$b}q^ z?g#Fd{X6ryyFUDRyF~5#x2{;V))x)4dsP6<9mx9&%?cdLz=_!FyJDUAkGBt)ZU83q zLjo+t^BO{MIsD-oXBldxoZ82X3&2-oX-QwJ*)o6M=J5jjYt(A1Fo(q9MJOXCc{Zk1 z?6#*4nAh(G7BNKDNCRZnDspvtiP8^sc}Ly4+S=s{Sn5qu*J;h2D#z4`@*@UgdgEEmnP zKm1=={w_j0{3R&C=E@b&G%4?{vfeYt{^{B`p0}=+VBD<&@mKsKO_ZzscUDU;;<5wT zbPm#+8wGV|FbtZ-wW|=`c*eY8urQvEIP9mIRY#8Xk4h-K1wKVqfP zaNR}<3Ht1y0||Se9INJAxI{!ml*NZja?q`c#ln)xnz&YHXXhE0Y>8HcP!_z6!;r*e zB=M~aGst^12jR4y06p6pS#S@VK<-~3t(KD7cHrWpS^|o2 z2Pb8xiJXa=siYHv z{+1sCKWR$X_PqW9hPlxG$~+n&r3e5;SUN!v`C0{z)@U!5BUr~46o}(y2#tRo*+U+@ zX*)U${-~Nuzy+x%2fh~wL8(!KZo@)1Wv_0|k04#P5MM+-xri`)z^Y9gJU<(vlyM~F zAo+FOxrl+p-V5fY`qI$Y`KQrLS{=E$xi!F|UOWinMN0ZN^OVQBoL(25;d1- zMCRprW^qMmfsg)GzH{b#}RP8$;>wyG{8GU?Y zW@j0I7>7?qVAqZi+()P@Eo6oyy?kLHhOMY`y^#_sUcB((*UOWsj+P)AA0UoGMTXK* z)KxE|CB*bSX2-O0E}tXac2Z>#MhCQHx%>10v%z#zLoBpLH96KDI`kp5Oaj2n%0YBN zE{9 zSeP8t@9iiMlrQF6;5{&9><%qVsKcyKL-WMx$H%xk`?3h_Bz4AbS&4_quIZvg3&ki^}IPXex4 zkf=dILmmkr;c~tMDf)2`jAGa{1Z!-c|ps4~@304u4_~=Be~yeDpSGR+Pl7@K|d&CB>^G z7%imhi?)pgV-6KVd!43%9}$8;7?!2swGAvDH_ zh)P*%_RGb(ggTQp1GG><#q9tN?;xE4mHE#0GFB_!`C0nBl5qp~EJURK%~r({14*y| z(yu>+=V-qhqI?}{yn(iTyLVqF6{a=OtYW9$wDp021xnpWoYU7KQp8H14O)jZz}vTt zL=Q*Q3>g;9!gg7xEw&0>IN4&~Y+>qA4y3$Q_>xwci);T&p=w|7|4@UGpaQW=n~A&J z;xe7mTUPvfT96RoFWUQH0!aUcC~?UaL>xhEYV{hoxxF|m(%U?>P?!U2pD{|f6SVUR zYG)-ai19!fAqRr4H_52nUy#u2t@#XPMueDyCDCmRqXv$T3P81yQam^1Yp?W%wB>Uq zyCQ0<_;cR>k^`Jfz-ikDNrFCAWCE5`) z6zhn(i$MRTEQ<(LI*K$xdy}57-8eKj!YR33x6K%P(G*3@Ex}HmHZh5^(-5DV=%_(c z*Nl<;;DMKwTi;n!o3}(0VJ-z|W0Ux4#!z|=(ObvNXmxMM06=2q9M^0;3MvmA^Lo{d{9CVn$PcNK7yYDnIwprS;ocRgN`@fV(YrKOJ~QYmq{u$lZQUJx;wZQdwBGBPY$Se&bp5| zHwZWM8B{lSOuCA5FnVWAhFGBowcE5TL-G+>M-GIXA-Z_w1!4cVpxfKgErtCX_A!{@ zszhtiA9^X-((9XRMTfc~to+gH+c}x^xavA|fbtJd-&^Zk53LC)MLWpm)Hh{Yadwmk zNcB8kR|cwps4fYCWjsJc8Q{}7zBCePEn!>GFAmNG<01kGZ6QRfJkyf`rh^X9GfQRC(=8e33 z^k;n9+!(YgXS2D{e3OJ?FR*?M6B8;jBI4wp1iN-->18+4L8q6|eB4|1YOROLMtOvU zJ;J{VxmOqQ)DlfaUnJV-d|6iX=uRxPEab}T%(C3nle7fU7YIqeIam<>BVxk>x7LZ< zE`{VUvPO)^Fma-aL2wwPl=bX3-Bo^Qd2>(3`ta|5JEt5aDvK->Yyfz2wEFW6c-@cC zTq3-e`Y;E843ipI8lb$heYs_M6S9GC63uG9U>Cyvp*U9=0jG)5KKpeyTLO;p>c16C z_n4pM%8lPn0v14$;uV4fTqj3ZisM1r)qo1-o<~aF_ocW7mk$hvuj)ORMbp;@)t+i40iN6zH+ zCUE5@LiSyQ{p5x+i-`BM9|%c8^BC$1RrDrje{?Y_N+~DwLJy0-#Q3{T zC%{rZlPx7CF>YHx_o|E#VhU@#=gZRJm#4J8qfQHW%0R+$BIV4((?PB3X@;et1;{B! zW6~G}vWLxOE_6v~p;dFd68)EbXv%NivxP8DBShinBT%&K^Bgg=Y77D>nEwuQyw?dy zXu+vzLKEFh5<>_=PbR4T|9H-IlW0f|LHrD19Yb5LNIe~m%*(L_K8|sAV z{jEf}tYfpd8PezYs9iVO1~ADdD-p=}((}P_-3kULt4Hp^0pTeP&;4t3UtcHqwf0h< zkjSc}@E@((3OaM4&LGlVuHw>tQvW^cz6{q40NlGPfIP$StkIi^AqznQ?M(q1C zJ5@z;lAE-tIuS6pR7$K04hv%@-Hs65dnaxjyJCgCj77v=2*E!y2K8ue!1{OXJU+d- zr*`GY>N^V{3m7_B9PJ_y{U^+qdXdMkeNAm5ZztW;U8=D%!5F>Qe*d)fsUviNMgX%4 zbLekH)*l7}Jzg1r0_(`DF(txohei$-tTI9ym>4wix5>a(H?V@d)iEA(PCvWv1UF}d z=?evZ^@KAz4nt?z3bE8yt&agO2v->F`sYgK66g+t>X#a_f&43%24|pFjfDt+$bq?2 zQ9+RomTy~{Np*A%v<$(KP@hORe>vWl1a4gbjjoVRqE~No?C|?F+L~;Q&$(y6^W zdS3S**Ep_&zn7Dd!N2POxqZBEiCI3hb-AZ)!pMX-tcZ7#{2EN*uu(T=L`o!c2LQU8R!{$N1OE>84b&ajl zHTvTENGoVmb_c zK?b;jXgE1M8P}Ng!cxXcF_FS3Ch=g0fK?lF@C}pO{9Ik+O;12gIM5fQneZHLr5hN z;1D3N(0(gOA&H3A54X*0ZgAs}0pNccvhLS0V|X6C+enF2p$hd?;-fD~*%G=(lYhtP z{k~g9{tD5g4^OO%n^6Sd#pl$VWwElU0l2!;iN4{}FFNVQ3MZ;6D<{jW;KS@>_|nUZ z$Ptu8TEFZr5Nj&gJUr|P_Lcf^Bn~LK#D!mMewac-@CjF;G-Sw31w{$3^Bx^ zeyPFDO^l%5Ydv4i>A^-6NHd+hQr_q+aA^-AlKQfW@b5nJAh5=%mK6A*Gw4=rnT*2v zG^Jh?1(1<;Ven71L8XB)uAJDoJb`Exsi zfokMP_s<$vT$qC-ixG>`m*Aa?NarMt@B5Op81Ns7EQ?@IM0R5|s|C<$7$pW_pw!w5 z(OD)!l2TN*oMa*7aoCpaJ3;u!~;^Xg(7JfC;tnRvT+ivxQl3RjC zhG>7Qrs(DxOQ8D#*JVR;^f8zl3B&t|Vt9tgfC*`wMnVuPh?35@5RWkot6C_&0D@%q zTb+x7WQ5OY$jRq9I*N?5&1pvRKaZ1+98dKv!MN9qAw3TL+$$ds;dU6)I}tGmhVI0i zUJ00%Ou7RZ4I#}veQ0xm2dB%#c%ern)f?fa5dBw6EagEN8RL)B2Go=z{naHP4oJn; zL(Sud)G)x9Lto7og+>{+A>#Dyvk)sSbjS#GwC$i7Te?#i`YB|*g*;sG20FT=Scqe= zQD#ASZKwk&f#CC`i@yPWDr!8sr3A%#95nk15A6}bjnFP7QdzFtp&Od|-at5x#bXF0 zWvEJv?B+?RK)z5Iq!)X%0O_wRlEMOG3vbOh5$VBJBpi1-xDFfZ(#@LOli&b+IA`9k z;-ixhyBgHUq3zuWJ{6Uf-nec#WLAc_YNeh*E=H&pW+HwzSfBLr2JcEVP~B52Qovkw1dz4ct+gEVEu{Cw!A|K&QAJ_MuS)vD8TBkpH1} zudkzkMK+>at2lzWIQ0iCZRj?J9_>P(tDo@-QJBQs1yoRAFgZFiIog4|ro`ugfVj}| zB!iq}s1Bvp0!M~H!RsU?(jmC!Cc_;^Us2RB%k$?^9f0q>21VlcZZRT!*~NrGY|%@x zDeL|;o^A$QB0W`TBqx*U7{e@uez}~?kQgG@U;8QVOAAtMP}J1I7G~Yhu?G|5K}hFLJtB}GR0dGzz5Yhz$2IJt2MA{jQc;f#Nd~^W4V>vQ z@r*MTu*Uk+y)Y6bgB>86^^KYBHz9J!+3|e{YnHGzB1c^V9n!r66LeYR?vA{^6vZnT zXVk@{3b7WG&KW+n`z4?_XSE*vbVOz*aV7_493OqtecBZ1dSjM$=OjYLzSl*B#v?A- zNs4fyD=gB^x3^e>k>N^mcchs97!fXHa(|O?4A$CudLWzg^B|d4tts}H=T6m1<3a;f z<4*3Pt-s&1eB)Q>pmnbcpR&fh44Ezp86$-c29L=eOBv2g3?pCQxH=xib|P0mG`Jf{ zf+X4gSOm8P?iIKw=#>~s6`~Vu?@df4bO=u$;J+^tstB2uCqawknhRBtEKmqGroMJW z5GOS~QP-1k+I{KTwPWDU?r&lzI;^7k*`ad8`Ztm`$ett($l<>sv4fbj!vRt(8-Rcn zC$li=v{I4*QpO)V7WX7jjSo4;z|#fRN-pFL-o-c>o-^&{K+FXtF{b}?bFUbj<)59V z&r9;mcZn49y>21B3h0fvCkfOHUuqE)`7HzN?^z4M_7OhX5fCak6CSoOWJVg}Fpp9Y zIJXKCF|6ByVFWV0OH7uG;_-D`(2FE+)*dI+OhkBm-j;AeTcI6=IpGNLsM|@J4^Q(D zT`DmQa!Pcctf+ysXK~!k7mlto`O|z_!q+% z7bA3Za3&&q>G?3dEkw2fLt>st0^3^-41$-Oe`8H|W0V56a&eKy2{~Dz0t$R=*xmkz zD5d}CDkQ3c)Avp&6!oXSz*)5%3WH6}5R=D3ZbF8*Lx-9(&BI1op{s0%RjZ6xWVhZN zv0`N+Wr8DaESS{xGH|uk2W;%^?MXwU@3IY>yJU!z6T02!EwBo1vVn_>r& z`Ns#EiQ*s@${JPteHZF2GQUi$i=+o~u)J-@2_$NZd&HYgza+8XOJnYv)i{|@2Uujt>@+gLk zP;)?E&5c4~KhcE{!$&?p8j}sTCfyH0xDYw=h$UuxYS8J(FoCO@M-rJNCiS?@$*M8! zkSoD}SV(<1;nNAVi{{VidL#r^(ohkqI<#ZJNyq|qC<#T-rBt|kWM9R&*Je_vqc5{U z6>Ms#!}Odup^M4XMUNQ4xIIYUCq8`nnY8N`j2YKft0$Uc7_`y|5$Az}n;w`Su<~Ff zQ`^D3CvTnV@yG{IF9!g{NCSFX{#Y4ivn7QbU9a()3&p}{@98gqzSN$(7w?uR0z`PT z+r!_B6yikVGYs~S%*d&=wUWQV+V0v}B8J=czZ1MSlM6pz7{z@7<`Zdsi;C2&ZNXUm zSyj{w#%_p9)}+FQsP2uVSS^ZM7BaI9K1-GmcQB-@O$J4-lQ|Hc7=fA@j+dG>EhZ4* z>T2fuEe;scxOcFRh|h@JnM{_6zh6i;MDT>OFUI%aPD7u54pA26bH~7t$H3tj_bJm8 zb8Ux-CK;8eK_ya;|}evId{$BSh`YBC+O#N${G`WEz4%vIAPW z>UZq;7(XIfL%a-2Qb$}ObcCzLz?|`;B z>=X923Ju(-G?)E60I)>3N1A&;#k?dYlHnTyLP?U}y!#9(eMplq7CT%6E!8gV^vNwXlipP8J&zqHh;GN1p$3{Vg;5lhO)&7v zZ>zhZQrSot#|eLr0&YFY(8eb7#Re8z@lFgJYZ3dzgmkwR0C!8E`PAb6h+__L(#2^~ zRZX|ftMiR`JVqkBH*;9!@W;?+!Y@ca^zIBHa7bqm3<=e)@(Jc&WYd}WKLEZ^2Ku7}cnmcu;5R!3U(x%OY{nR`*srIeT$wmT` zLy8O*$0m?j=%BXAq4y{a6f3VK(wq@E1b=$s$!&oC4c-wOVm0Fq5|?OSxq(GRlU>ll z2nl9L{@-tk9JhlhfbEr-dJlj%Jg68N06aQDBfUZ3hV@rB5P?mm^~<_J1T7YhMOlU}LKyI{ZwaMv92EiSQo2gtGJ|;y(+`$Wl7|O$SlWRanEYO0LBou=(bL}g_ zPRW2D3NFCPWDL@?0}Jp0rb`F4K5+=3YzW#J_Csw^!F$d;xLh&VmVYYu&f4w*m$2{V zMObm%&J2Bi)*u*=h#4SDs?+96Z`~dzOGI~DlxI&|UfkFdCO&kwQ}@*LU?SY(e|kWa z6Ziin^Z+)(gIAyKa?R-i(6S+6qjLV$`6n0!2vT&j!~X z;yFeNu&@~y-Z8o#pSZF6e|jpjh7>G4WS7V68JH{&=?2rW=>cu(@~eDC5)%{n4KZ#8 zhgoXzob$e@DN9=yRhxiMf$^f}>GHHreTfnQPNmB+!TIqU8Ud z42et*RKmC=xEb!?u*vKhHyYpt($i}j3W&Ps1b9OY9@4 z@nNI~Su`!yeqtl$kE|stBZEDP!%;M*QMHJop))X{&1UoH$Qq9KH!4^nNm3d+pIh%P zcS0{OQibuXL!k?IRW)XeVTzNezdOlj2{|g|>j84KP-05n?(+knQ`8~BId5B*iiE>s zSuk7{nu+1w!)O~{?<{)uLBL~Dk%(*0lR~Wq!T*>jIme^}H>Gq1EyGyk5!0wT#PHCV zhv*eEo6SSPu?38a0^u;1-D&8JV#fT@#q5U&R#dBu^hBi9!NoW*hTgFMA}Q z%(5ZnekCZY>*#79f*wfsy-*Rn;Q`PGfhgL2z@tPJ!LsiHAu$OG7PM|JF-`^wBojzG z;9u$w9wRug6OMo^AK`Jx%tIXNCzgnVdgvz^+k)4}k3y2{fFa39CF(87yN?OQIZP&G zWMp6+WWJnqD@uz;rO>j4Yw3lVj2&8dqPVJ#n^&}@4APnf2CZoP7G zeib#>f3_MRwHx0|6dr%3M_vk$OT)NxhDiGXF(Xdnz#@_)kKRCY{!FUA1QDu*W|B&l zsL{}NUnOBKL$GWt*h0RK)o9#%1?`aEl1KCb@ji#>$TtKk|lOJ%-_Q*e9 za@}26 zerYr)Unnzg!G|5dJ_|)B#5MF`hNaxCa2xZaWu#_K$4$6)+!NB!#;^+^VEI&WP z9o4fm3LG)~(OzTtn+cg;JA$5aq&!TztJ02PgE8mEL9hXLtU!$i-*WNd=ig$iVJ-M0 z_8h%b$L0Z=wsv&{yClSSV(SHu-y4fV{|fV`sq}q z^`-1rV~bjXwR%VQ1)_kZh|qJ8Hd`l1o%s?8IgJ5dy=nQRBW03dh6cV6C&5q%4Ht}d z$Z3f_Nzdg`KSX=%vWI8S%Z3SKd(7F_&D+|t$@l1^$jm#s8EzbF6^f-T2#d>piJ~L3 zX6MDX>+jGqlZu-9^}#bMGJ;$=MG6D&yy3Dt2BS^q%cZ-0@pq*ck+~tAM!rwa9!fe1 zqh(OFf?maxljAwf74p-~_VjyZZfE+N z@$*nv6)I2++=x08{=9eU(RW(CIv{0uqC~&-(_~0boIp7QAte?8U`s8O*W5V^RxBU< zv$wYqvr15FsL4hE?bPA}xg!_Qf6r1Xge*?o3dIBdIVcg7$oXTCwL%#Bvl77Mhfyp% zZ!S29@^Bi30EKc|e6gOhnjEa!GR9uTK`dr&&36!6btO!1L+sjqSAYP}S8jVl@RHVIFZaiwspP|uAECckizAQ@NIe<(dM#+7DYu^f#H zriJoJ8du!UP5DKSh^W?hi+&k>GPcehV`bQbN-s0jr0c(Pjx%Cr&?B@l^+#ncxYi);-Lg0@lXP>!$S!~0-^*W@lXPhcqoC`;h_W~0huWRIZ+zm%saXE zCI%iTePq7PUA0hR0|s8sn9f +

    Gráfico 1: Ocorrência de erros

    + +
    +

    Fonte: Luíza Esteves

    +
    + + ## Problemas encontrados De acordo com as respostas do checklist acima, os seguintes problemas foram encontrados durante a revisão: