Escolar Documentos
Profissional Documentos
Cultura Documentos
Natal-RN
Janeiro de 2019
Cesimar Xavier de Souza Dias
Natal/RN
2019
Universidade Federal do Rio Grande do Norte - UFRN
Sistema de Bibliotecas - SISBI
Catalogação de Publicação na Fonte. UFRN - Biblioteca Central Zila Mamede
Natal/RN
2019
Dedico este trabalho às três mulheres que mais amo nesse mundo, esposa, filha e mãe.
Agradecimentos
Nowadays several cities have been involved in research in order to provide the city’s
data and information to the population through dashboards (so-called City Dashboards).
These solutions enable citizens to follow the events of the city in real time, enabling
these people to plan their routines based on the knowledge generated about their local
context. Even with the growing number of projects being developed for this purpose,
there are no jobs that are aimed at creating reusable structures or methodologies that
use other open source software products to standardize the production of dashboards.
Therefore, this work was proposed in creating a framework based on Bootstrap. The
framework was intended to implement standards projects and web interface, focused on
content with reusable structures, using Node-RED as an execution platform. As a result
of this work, it was possible to design SmartNode Dashboard, a framework for creating
standardized and customizable interfaces. In addition to offering dashboard developers
a methodology for using SmartNode Dashboard with Node-RED to facilitate and extend
teams’ ability to perform, time and quality in the development of dashboards.
Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.1 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2 CONCEITOS BÁSICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1 Smart City . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Tipos de Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Projetos de Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.2.1 Londres e outras cidades do Reino Unido . . . . . . . . . . . . . . . . . . . 24
2.2.2.2 Sydney . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2.3 Amsterdã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Padrões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 Padrões de Projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 Padrões de Interface Web . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2.1 Consistência de Padrões . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.2.2 Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 BASE TECNOLÓGICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1 CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.0.1 Frameworks Front-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Templates de Interface Web . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.1 Nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.1.1 Tipos de nós existentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.1.2 Criação de novos nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.2 Fluxos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 SMARTNODE DASHBOARD . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1 Desenvolvimento do Framework CSS . . . . . . . . . . . . . . . . . . . . 40
4.1.1 Customização do Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.2 Arquitetura de Código CSS . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Metodologia de utilização . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2.1 Template de Interface Web . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.2 Processo de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.3 Processo de Implantação . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.4 Integração ao Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.4.1 Fluxo do template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 VALIDAÇÃO DE USO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1 Abordagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.1 Experimentos executados . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.2 Critérios avaliados . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.3 Metodologia utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.3.1 Orientação sobre Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.3.2 Preparação do Ambiente de Testes . . . . . . . . . . . . . . . . . . . . . . 55
5.1.3.3 Processo de Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Caracterização dos Participantes . . . . . . . . . . . . . . . . . . . . . . 56
5.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.1 Critério de Eficiência . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.2 Critério de Eficácia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.4 Discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.5 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.1 Principais contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.2 Limitações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.3 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
APÊNDICES 67
APÊNDICE C – TAREFAS . . . . . . . . . . . . . . . . . . . . . . . . . 70
13
1 INTRODUÇÃO
Segundo estimativas da União das Nações Unidas (ONU), até 2050 a população
mundial terá alcançado o patamar de 9 bilhões de habitantes. Um número alarmante se
for considerada a grande demanda de insumos que uma população tão grande expende
para se manter. Acrescendo a esse fator, estima-se que mais de 50% da população
mundial viva nas áreas urbanas (LOPES; OLIVEIRA, 2017). Vale ressaltar que até os anos
60, apenas 34% da população vivia nas áreas urbanas. Lopes e Oliveira (2017) destaca
que já se sabe que cerca de 80% da população do leste da Europa viverá nas grandes
cidades até o ano de 2020. Esse panorama traz novas responsabilidades às cidades. Traz
consigo a necessidade delas se reinventarem e desafios de como elas vão transformar
espaços urbanos em lugares mais inovadores, participativos, conectados e sustentáveis,
sem negligenciar a qualidade de vida de suas populações, nunca foram tão latentes.
O panorama defronte a dramática massa urbana representa desafios cruciais para
a logística da gestão pública. Estes, decorrentes principalmente da pressão por eficácia
no suprimento às demandas sociais, precisam adotar novas abordagens no tocante a
sistematização de soluções efetivas para os desafios enfrentados. Para Weiss, Bernardes
e Consoni (2015), esse cenário pode ser ainda mais desafiador do que parece. Para
estes autores as restrições no campo legal-institucional e econômico, em referência a
destinação de recursos públicos e na concorrência acirrada entre as cidades para angariar
investimentos, visto que as receitas governamentais demoram demais para chegar ou
são usadas de forma equivocada, é um fator preocupante quando se pensa em soluções
efetivas para estas cidades. Muitas vezes, demorar demais na entrega de projetos já em
curso, pode significar criar novos problemas.
Aliadas a isso, com o avanço das tecnologias e a urgência de refletir sobre como
estão sendo usados os espaços urbanos, respeitando a sustentabilidade, várias cidades ao
redor do mundo estão trabalhando continuamente em pesquisas com foco na criação de
soluções eficientes. Como reflexo disso, o conceito de cidade inteligente tem ganhando
cada vez mais notoriedade. De acordo com Macke et al. (2018), até o ano de 2020,
40 cidades serão consideradas inteligentes, e num intervalo de 5 anos esse número
aumentará para 88. Dentre estas cidades, duas capitais brasileiras - Rio de Janeiro e
Curitiba, deverão compor o grupo das 8 cidades mais inteligentes da América Latina.
Muitos são os exemplos de projetos que estão sendo desenvolvidos para tornar as cidades
inteligentes. Para se ter uma ideia, em 2010, a cidade de Curitiba se tornou a primeira
cidade do mundo a conectar ônibus públicos a uma rede de banda larga móvel 3G. Isso
abriu possibilidade para novas oportunidades na oferta de serviços aos turistas, por
exemplo, que podem planejar suas rotas, comprar ingressos, dentre outras conveniências
Capítulo 1. INTRODUÇÃO 14
ofertadas pelo mercado turístico local (MACKE et al., 2018). Outro exemplo ainda mais
arrojado, vem das duas cidades que foram planejadas do zero para se tornar exemplos
de cidades inteligentes. Songdo, na Coréia do Sul e Masdar, em Dubai. Estas cidades
utilizam todos os conceitos modernos do que deve existir num espaço urbano para serem
consideradas inteligentes.
Atualmente, nas cidades, é possível gerar dados por meio de sensores, sinais de
trânsito, câmeras espalhadas pelas ruas e até mesmo através dos próprios aparelhos
inteligentes dos cidadãos, e disponibilizar esses dados às massas de pessoas conectadas.
Esses dados, quando transformados em informação, são utilizados pelas pessoas de
diversas formas, desde a geração de novos negócios ou até mesmo no modo como os
cidadãos passam a utilizá-los como ferramentas auxiliares em tomadas de decisões nas
tarefas cotidianas. Os cities dashboards ou painel de dados das cidades, são ferramentas
disponibilizadas aos cidadãos com intuito de mostrar informações que sejam relevan-
tes. Um exemplo da importância dessas ferramentas é a influência que elas podem
desempenhar na escolha, dos cidadãos, de uma rota de trânsito na volta do trabalho
até sua residência. Eles podem até mesmo adiar o retorno em alguns minutos para
poder trafegar em vias menos movimentadas. Ou desistir de ir em algum local público,
por haver aglomeração de pessoas. Essa é a rede da internet das coisas, que interliga
mais que computadores, ela se tornou uma rede que interliga pessoas e comunidades.
Tornando os computadores invisíveis ao ponto das pessoas utilizarem seus aparelhos
de forma transparente, conforme afirmou o cientista da computação Mark Weiser, na
década de 90. Ele afirmou que essa seria conhecida como computação ubíqua, a era da
tecnologia calma, quando a tecnologia seria o plano de fundo das nossas vidas (DREY,
2015).
Weiser apontou que as tecnologias mais importantes são aquelas que desaparecem,
se integrando ao cotidiano das pessoas, até se tornarem indistinguíveis dele. Atualmente
as pessoas estão vivendo essa era e a informação nunca esteve tão presente. A internet
como meio de acesso à informação e as cidades como forma de geração de dados, tornou
a vida mais conectada e com isso impactando diretamente na maneira de como os
cidadãos utilizam seus espaços urbanos conectados. Os aparelhos móveis se tornaram
tão presentes no dia a dia a ponto de influenciar na maneira de como se utiliza um
determinado espaço urbano ou na escolha produtos de vestuário, na maneira como as
pessoas se vestem ou se integram à sociedade. Esse ambiente se tornou tão rico ao ponto
de ser possível ter informações em tempo real de um determinado espaço, orientando as
informações pelo perfil que cada pessoa e ambientes têm, reunindo a melhor forma de
apresentar os dados para essas pessoas, de maneira a mostrar apenas o que é útil.
É possível, por exemplo, ter acesso a detalhes destes locais, tais como: eventos,
promoções, características físicas e possibilidades extras que são inerentes a eles. Essas
Capítulo 1. INTRODUÇÃO 15
informações podem ser fornecidas por seres humanos como também de forma automati-
zadas por sensores que geram dados em tempo real. Exemplo disso é a disponibilização
de dados sobre o tempo, temperatura ou até mesmo poluição do ar num dado local.
Sensores podem facilmente medir esse tipo de informação e informar com exata precisão,
e em tempo real. Pessoas podem informar do que se trata o espaço, para que serve, se é
cobrado ingresso para ter acesso, dentre outras referências. Os usuários podem acessar
essas informações através de interfaces que conversam com os ambientes. As informa-
ções dos locais podem se adequar aos usuários de forma dinâmica, podem até mostrar
informações que são úteis apenas a um público específico. As interfaces se adaptam aos
diferentes perfis e os ambientes mostram o que está acontecendo no momento em que
ocorre, se adequando num formato mais pertinente e útil a cada situação.
1.1 PROBLEMA
A interação da sociedade a toda essa inovação e a percepção sobre as melhorias
trazidas são de suma importância para que as ações realizadas sejam de fato relevantes.
Oferecer à população diferentes formas de interagir, para que dessa forma se consiga
extrair e usufruir da inovação gerada, é a essência de toda essa mudança. Neste contexto,
se revelam demandas no desenvolvimento de interfaces, onde estas se objetivam em
fornecer aos cidadãos uma maneira de interagir com a cidade, fornecendo informações
em tempo real e assim auxiliando a sociedade nas suas tomadas de decisões.
Atualmente, há um grande número de cidades ao redor do mundo que desen-
volvem e mantém projetos, com ferramentas próprias ou compartilhadas, na tentativa
de minimizar os esforços despendidos com esse problema. O governo de Amsterdã,
por exemplo, se empenhou em contribuir no desenvolvimento do que chama de City
Service Development Kit (CitySDK). O CitySDK é um sistema que coleta dados abertos
de governos, para disponibilizar de forma padronizada e em tempo real. Dentro deste
projeto, a Waag Society1 é responsável pelo domínio mobilidade. Contudo, apesar de
contar com pesquisas neste tocante, Amsterdã ainda não disponibilizou, para seus cida-
dãos, o seu city dashboard. Uma ferramenta que promete informar o que acontece na
cidade, em tempo real, mas que ainda se encontra em desenvolvimento. Paralelamente
a isso, A University of New South Wales (Universidade de Nova Gales do Sul) - UNSW,
na Faculdade de Ambientes Construídos, foi desenvolvido o City Futures Research Centre
(Centro de Pesquisa para Cidades do Futuro). Este centro acabou por se tornar referência
nacional pelas suas contribuições acerca das pesquisas urbanas aplicadas. Dentre diversas
contribuições por meio da pesquisa aplicada, destaca-se o seu city dashboard. Tratado
1
É uma organização composta de grupos de pesquisa que trabalham em conjunto com parceiros de base
e institucionais em toda a Europa.
Capítulo 1. INTRODUÇÃO 16
1.2 Objetivos
Nesse contexto, o presente trabalho apresenta uma metodologia de trabalho que
alia o uso do SmartNode Dashboard, um framework para auxiliar na criação de dashboards
de informações para cidades inteligentes, a partir da junção de tecnologias front-end com
a ferramenta de programação por fluxo Node-RED. Seu objetivo é oferecer às equipes de
desenvolvimento de software, mais eficiência, padronização, flexibilidade, agilidade e
reutilização de códigos, para construção de novos projetos de city dashboards.
1.3 Justificativa
O desenvolvimento de novas tecnologias e métodos que facilitem o aumento de
produtividade de equipes de desenvolvimento de software, sempre foi uma temática
latente. Desenvolver software é uma tarefa complexa por si só, e isso foi estímulo para
muitas iniciativas que foram criadas durante a história da computação. Diante disso,
utilizar novas tecnologias no desenvolvimento de novos projetos vem sendo uma prática
cada vez mais difundida e sua aceitação cresce desde o momento mais incipiente desse
movimento. Os padrões de projetos 3 , por exemplo, foram meios de se elevar ganhos
na produção de software por utilizar soluções que resolviam problemas em contextos
semelhantes. Atualmente, utilizar esses padrões é algo comum no meio da comunidade
de desenvolvimento de software.
Diversas tecnologias surgiram com a visão de ajudar em como se cria produtos
digitais. Elas nascem na busca constante por melhorar processos, produtos, métodos e a
3
Um padrão descreve um problema que se repete constantemente. Eles foram postulados pelo arquiteto
Christopher Alexander.
Capítulo 1. INTRODUÇÃO 19
2 CONCEITOS BÁSICOS
Este capítulo descreve conceitos centrais relacionados aos temas abordados neste
trabalho, como (i) cidades inteligentes; (ii) padrões de interfaces; e (iii) node-RED, dos
quais foram utilizados para dar suporte ao desenvolvimento deste trabalho.
são os fatores preponderantes que orientam essas estratégias. Dessa forma, os projetos
das cidades integram três principais áreas: Internet das Coisas (IoT); Big Data e a
governança por algoritmos, onde o planejamento está baseado em ações apoiadas por
algoritmos. O intuito maior é a geração de condições que enfoquem sustentabilidade,
melhoria das condições para as populações e incentivo a geração de uma economia
criativa pela gestão baseada em análise de dados.
Leem e Kim (2013) esclarecem que as cidades podem ser classificadas conforme
o nível de tecnologias que são empregadas em seus espaços, e assim poderiam ser
categorizadas em quatro diferentes nomenclaturas:
• Intelligent City: são definidas como territórios que trazem sistemas de inovação
e TICs dentro da mesma localidade, combinando a criatividade de indivíduos
talentosos que compõem a população da cidade, instituições que melhoram a
aprendizagem e inovação e espaços de inovação virtual facilitando a inovação e
gestão do conhecimento.
• Ubiquitous City: caracteriza a cidade totalmente equipada com redes através das
quais as autoridades municipais do governo, central e local, podem monitorar quase
tudo o que está acontecendo na cidade. Um exemplo disso é o monitoramento do
trânsito, prevenção de crimes e incêndio. Além disso, os usuários tem a capacidade
de acessar os serviços da rede de qualquer lugar.
tempo para determinada região, são exemplos de como a população está ligando suas
vidas aos dados gerados pelas cidades.
2.2 Dashboard
O atual volume de dados e informações coletadas, armazenadas, compartilhadas
e usadas nos centros urbanos, são quase ilimitados (KOURTIT; NIJKAMP, 2018). Os
dados oriundos do monitoramento das cidades podem ser sumarizados numa estrutura e
disponibilizados para a visualização, servindo como ferramenta de tomada de decisões.
Esses dados podem ser alimentados em diversas formas de fontes, espalhadas por uma
cidade, que podem registrar informação e enviar para uma base concentradora de
dados. A informação sobre previsão do tempo, poluição do ar, o nível das águas dos
rios, indicador econômico, até mesmo as condições do tráfego, podem ser exibidas num
único painel (SUAKANTO et al., 2013). Kourtit e Nijkamp (2018) explicam que um
dashboard é uma ferramenta de gerenciamento estratégico que usa fatores críticos de
sucesso e indicadores-chave de desempenho para traduzir a missão e a estratégia de uma
organização em um conjunto equilibrado de medidas de desempenho integradas à ações
concretas relacionadas. A Figura 1 ilustra um dashboard com informações resumidas a
partir de dados gerados e tratados anteriormente.
ards, ainda há muitas incertezas sobre como criar essas interfaces interativas para tomada
de decisões. Na maioria dos casos, as decisões sobre a concepção do design do painel é
baseado em circunstâncias específicas ou julgamento pessoal dos tomadores de decisão,
culminando numa falta de consistência. Com a grande utilização dos aparelhos móveis,
que dispõe de capacidade de processamento análoga aos computadores pessoais, os
indivíduos estão gradualmente mais habituadas a estes dispositivos, empregando-os nas
atividades mais triviais do dia a dia. A forma como esses sujeitos acessam informações
está extremamente diversificada, o que obriga a criação de novas facetas nas tecnologias
de disponibilização de informações. Isso mostra que os dashboards digitais se tornaram
uma constante nas nossas vidas digitais (BARNS, 2018).
A utilização dos dashboards deve ocorrer quando é necessário fornecer uma visão
geral de alto nível dos dados que permita descobrir tendências viáveis. Eles fornecem
informações em tempo real sobre o estado das métricas mais importantes de um deter-
minado sistema. Assim, a disponibilização desse tipo de ferramenta, para orientar os
cidadãos, de forma simples, é uma decisão que requer planejamento prévio sobre que
tipo de interface é mais adequada num determinado contexto.
2.2.2.2 Sydney
Este projeto se destaca dos outros city dashboards por oferecer uma característica
de layout fluído e que se adapta a diferentes telas, sobretudo em aparelhos celulares.
4
http://citydashboard.be.unsw.edu.au/
5
https://www.unsw.edu.au/
Capítulo 2. CONCEITOS BÁSICOS 26
Apesar de contar com esse aspecto de adaptabilidade, vários de seus elementos não
se ajustam adequadamente em telas menores. Os elementos são ajustados de forma a
esticar o item para encaixar em espaços projetados. O mesmo acontece com as tabelas,
que precisam ficar exageradamente comprimidas nas telas menores, fazendo com que
seja necessário suprimir alguns dados, por não caber no espaço da tela.
2.2.2.3 Amsterdã
Essa seção mostrou alguns projetos de City Dasboards criados para as cidades do
Reino Unido, Sydney e Amsterdã. Há ainda diversos outros projetos espalhados ao redor
6
http://citydashboard.waag.org/
7
Uma API para a distribuição e anotação de dados abertos, para pequenas cidades ou até grandes áreas
metropolitanas. Ela faz parte do projeto CitySDK. (http://citysdk.waag.org/)
Capítulo 2. CONCEITOS BÁSICOS 27
do globo que revelam inúmeras diferenças entre si, mas que seguem na mesma direção.
Alguns apenas mostram dados de forma sintética, sem o ideal de envolver o usuário no
processo ou de oferecer informação relevante. Nessa perspectiva, a escolha dos projetos
supracitados foi embasada na oferta de informações que sejam relevantes aos cidadãos.
Os projetos apresentados nessa seção se assemelham em diversos aspectos. In-
formações de dados como: saúde, transporte, recursos naturais, dentre outros; são
recorrentes nessas interfaces. Isso é comum pelo fato de que os cidadãos necessitam
basicamente dos mesmos tipos de serviços. Desse modo, é natural apresentar esses
parâmetros em tela. Contudo, mesmo mantendo os elementos comuns, cada cidade se
difere uma da outra, por diversas questões, e por isso um projeto que foi pensado para
um tipo de urbe pode não servir a muitas outras ou até mesmo nenhuma outra. Esse
é um fator que norteou o presente trabalho durante todo o percurso de análise. Cada
projeto tem como característica ou objetivo, sanar problemas de um determinado con-
texto. O SmartNode Dashboard, proposto na Seção 4, tem como principal característica
a adaptação a diversos tipos de situações diferentes. Por se tratar de um projeto de
código aberto, a própria comunidade de desenvolvimento de software pode contribuir e
se engajar na evolução dele.
2.3 Padrões
Para Cybis, Betiol e Faust (2015), "padrões se referem aos problemas mais comuns
e às boas soluções para esses problemas, que são capturadas, compartilhadas e reuti-
lizadas por profissionais atuando no projeto de diversos tipos de produtos e serviços".
Seu uso aumenta a eficiência não somente na etapa de programação, mas também na
utilização, onde oferece aos usuários usabilidade na interação com o sistema. O arquiteto
Christopher Alexander afirmou que um padrão descreve um problema e norteia a solução
de modo que se possa utilizar esta solução inumeráveis vezes sem nunca fazê-la da
mesma forma (GAMMA et al., 2000). Gamma et al. (2000) corrobora a asserção do
arquiteto e explica que, apesar de Alexander relacionar suas proposições ao contexto da
arquitetura, o cerne para ambos os tipos de padrões está a solução para um problema
num determinado contexto.
"Uma coisa que os projetistas avançados sabem que não devem fazer é
resolver cada problema a partir de princípios elementares do zero. Ao
Capítulo 2. CONCEITOS BÁSICOS 28
Dessa forma, os problemas recorrentes, que já contam com soluções testadas, são
reaproveitados num momento futuro, resolvendo um outro problema num contexto
semelhante. O foco por trás disso é não necessariamente reaproveitar o código criado para
um problema e utilizá-lo em uma nova situação, mas o aproveitamento de soluções de
projetos de uma maneira geral.
Para a equipe que deve desenvolver novos produtos, os padrões são uma forma
de reduzir tempo no processo de desenvolvimento. Além de terem maior consistência e
menor risco em violar os padrões de interface, a cultura de padronizar eleva a qualidade
dos artefatos construídos. A adoção dos padrões de interface permitem:
enganos. Ao manusear uma interface que já foi utilizada antes, um usuário irá reco-
nhecer padrões, essa é a parte que nos permite executar processos complicados sem
esforço consciente à medida em que praticamos esse processo. A reprise de uma ação -
idealmente do mesmo modo a cada vez - é como aprendemos e guardamos essa ação
em nossa memória processual. As variadas formas como os usuários têm para interagir
com uma interface, tomar uma ação específica (ou conjunto de ações) e obter o mesmo
resultado, servem para reforçar o padrão e consolidá-lo em nossa memória (HARLEY,
2015). A mudança dos padrões quebram as expectativas dos usuários, fazendo com que
seja necessário reaprender uma interface que já havia sido desmistificada anteriormente,
gerando uma maior esforço cognitivo. Segundo uma lei de usabilidade criada por Jakob
Nielsen, intitulada Lei de Jakob sobre a experiência do usuário na Web (Jakob’s Law of
the Web User Experience), os usuários passam a maior parte do tempo navegando em
diferentes sites. Dessa forma, qualquer coisa que seja uma convenção e usada na maioria
dos outros sites, será gravada na memória destes usuários e o custo para desviar-se delas
é ser penalizado com grandes problemas de usabilidade para seu site (NIELSEN, 1999).
Nielsen (2004) explica que é preciso eliminar elementos de design que causam
confusão e procurar mover-se o máximo possível para o campo das convenções de design.
Não só isso, é preciso estabelecer padrões de projeto para todas as tarefas importantes
da interface. Os padrões podem garantir aos usuários:
• não terem surpresas desagradáveis quando algo não funciona como esperado.
Esses benefícios aumentam o senso de domínio dos usuários sobre o site, au-
mentam sua capacidade de realizar tarefas e aumentam sua satisfação geral com a
experiência.
2.3.2.2 Cards
3 BASE TECNOLÓGICA
3.1 CSS
A finalidade das CSS é oferecer um mecanismo de estilizar o conteúdo das
linguagens de marcação. No presente contexto, a linguagem de marcação, HTML, será o
responsável por estruturar o documento de conteúdos e o CSS irá realizar a tarefa de
configurar a aparência do documento.
3.1.1 Características
CSS é capaz de estilizar uma página web de forma padronizada, fornecendo mais
funcionalidades com um número reduzido de instruções. Entre as principais vantagens,
é possível destacar:
3.2 Frameworks
Um framework pode ser definido como um conjunto de conceitos para resolver
problemas de um determinado contexto (CAY, 2007). No desenvolvimento de software, o
framework consiste de uma abstração que é constituída de vários códigos pré-formatados
que tem por filosofia promover uma funcionalidade padronizada. Eles capturam as
funcionalidades comuns a várias aplicações e fornecem a reutilização de código e
padrões de design. Monteiro (2002) faz uma definição de framework dentro do contexto
Capítulo 3. BASE TECNOLÓGICA 32
de padrões de projetos. Para ele, podemos ver um mecanismo como um padrão de projeto
de forma aplicada a um conjunto de classes e um framework é um padrão de arquitetura
que fornece um modelo extensível a qualquer aplicação dentro de um domínio específico.
Essa visão pode ser útil quanto a utilização e reutilização de um framework, onde é
possível a evolução de padrões já implementados, na forma de especialização, por
conta de uma necessidade específica dentro de um projeto. Cay (2007) explica que isso
acontece devido a necessidade que cada projeto pode apresentar, e dessa forma um
programador pode criar uma funcionalidade nova no domínio do problema, bastando
para isso estender as classes do framework. Essa abordagem pode ser aplicada a diversos
domínios de problemas e em outras tecnologias. Esse mesmo tipo de abstração, de
orientação a objetos, pode ser aplicada no contexto das linguagens de marcação, como é
o caso de projetos escritos em CSS.
3.3 Node-RED
O Node-RED é uma ferramenta para conectar virtualmente os dispositivos, APIs e
serviços online. Ele fornece um editor baseado em fluxo, com interface em navegador
web, que facilita a tarefa de conectar os fluxos apenas arrastando e soltando os nós
(KIRAN et al., 2017). Kiran et al. (2017) destaca que o ponto mais interessante dessa
ferramenta se concentra no tempo de execução leve, pois é construído sobre o Node.js, e
por isso aproveita ao máximo o modelo não bloqueante e orientado a eventos que esta
tecnologia oferece. Originalmente desenvolvida pela equipe de Serviços de Tecnologia
Emergentes da IBM e, posteriormente, tornou-se tecnologia de código aberto, atualmente
mantida pela Fundação JS (KODALI; MANDAL; HAIDER, 2017).
3.3.1 Nós
No Node-RED cada nó é desenvolvido com uma finalidade. Eles podem ser subdi-
vididos em três tipos distintos: entrada, processamento e saída.
9
NPM é a abreviatura para Node Package Manager. Ele pode ser utilizado para representar o repositório
online para publicação de projetos de código aberto para o Node.js, além de ser um utilitário de linha
de comando responsável por interagir com o repositório e instalar dependências.
Capítulo 3. BASE TECNOLÓGICA 36
Nó de saída (outputs): são responsáveis pela saída dos dados, ou seja, externaliza os
dados tratados para um outro meio.
• package.json: este é um arquivo padrão usado pelos módulos Node.js para descre-
ver seu conteúdo e o Node-RED segue esse mesmo padrão. Para gerar esse arquivo,
a documentação oficial indica a utilização do prompt, usando o seguinte comando:
npm init. Na sequência é necessário responder uma série de perguntas para ajudar
na criação do conteúdo inicial deste arquivo de configuração. O resultado final
deverá se parecer com a Figura 9.
Ele informa, em tempo de execução, quais arquivos o módulo contém. Essa es-
trutura de documento é uma estrutura básica que um package.json deve conter,
contudo é possível obter mais informações sobre configurações extras e outras
propriedades que podem ser definidas antes de publicar o nó. Para isso basta
consultar o guia de pacotes, disponível no site oficial.
Para ilustrar a descrição realizada nessa seção, a Figura 11 mostra o código para
editar a propriedade nome, do nó.
Essa seção mostrou, ainda que de forma sucinta, a sequência para criação de
um nó. Ainda que de forma simples, é o processo que deve ser seguido para construir
um nó em Node-RED. Para mais informações sobre o funcionamento e a documentação
Capítulo 3. BASE TECNOLÓGICA 39
3.3.2 Fluxos
4 SMARTNODE DASHBOARD
Para que a estrutura do código11 CSS fosse de fácil compreensão e reutilizável, foi
escolhida a metodologia de arquitetura de formatação BEM 12 . Essa arquitetura organiza
o código em três níveis: (i) bloco, (ii) elemento e (iii) modificador. Essa estrutura
é utilizada para organizar os componentes do framework. O componente básico do
SmartNode Dashboard é o card e dessa forma ele segue a estrutura mostrada na Figura
13.
Como mostrado na Figura 13, a nomenclatura básica das classes define como o
elemento do bloco é formatado.
.card: classe básica do componente card. Ele é o nível mais alto do bloco. É responsável
pela formatação do bloco principal;
Para que seja possível estender as funcionalidades, o bloco principal recebe uma
classe adicional. Essa classe deve manter a padronização nos nomes e adicionar um
modificador. Assim, ao invés de seguir a padronização dos nomes de blocos, deve receber
o nome do elemento pai e (14), adicionalmente, dois traços com o nome do modificador.
11
Para ter acesso ao repositório do código desse trabalho, acesse: https://github.com/cesimar/smart-
node-dashboard.
12
BEM significa Bloco, Elemento, Modificador. Metodologia de nomenclarturas de classes em CSS, para
criar código reutilizável. Criado em 2005, por uma empresa russa, surgiu por conta necessidade de
padronizar o código.
Capítulo 4. SMARTNODE DASHBOARD 42
A Figura 14 mostra este padrão sendo utilizado com a nomenclatura da classe. Ela
está sendo modificada para receber uma especialização, a classe .card--tempo. Nesse
card de exemplo, os blocos estão sendo utilizados e cada um recebe uma formatação
diferente.
• o bloco de título recebe alguns dados extras, como um ícone que representa o card,
e seu respectivo título;
• no bloco do rodapé, um link foi inserido para dar mais funcionalidades ao card.
Nele é possível acessar o link e "Ver em todos os bairros".
Capítulo 4. SMARTNODE DASHBOARD 43
Figura 14 – Estrutura do Card utilizando a metodologia BEM, aplicada para o card de tempo.
Para alcançar o objetivo geral deste trabalho, outros projetos de city dashboards
foram consultados com intuito de levantar os parâmetros mais comuns e relevantes às
cidades. A escolha das cidades para este levantamento foi baseada nos seus respectivos
portes e características, em comparação com a cidade de Natal. A partir do resultado
dessa análise os parâmetros foram agrupados considerando os que mais vezes se re-
petiram. A Figura 16 apresenta um gráfico com o percentual das ocorrências de cada
parâmetro neste conjunto de cidades.
Essa análise orientou no desenvolvimento do primeiro template, norteando sobre
os elementos que deveriam constar nessa interface. Itens de interface (clima, qualidade
do ar, qualidade de água, mapas da cidade, mapa do trânsito, câmeras de tráfego,
notícias, turismo, eventos, dados sobre transporte público, etc.) que geralmente constam
e que são importantes para que os cidadãos tenham acesso, foram definidos nesta etapa,
a partir do resultado apresentado na Figura 16. Aliado a isso, foi necessário levar em
conta outro fator sobre a cidade de Natal: seu grande potencial turístico. Por isso, para
esse template, usando o SmartNode Dashboard, convencionou-se que o dashboard seria
voltado à cidades com características turísticas.
Para testar a funcionalidade do SmartNode Dashboard, foi criado um template
utilizando um primeiro cenário para a cidade de Natal. Assim, foi possível utilizar
componentes de interface capazes de ilustrar o funcionamento de um City Dashboard
Capítulo 4. SMARTNODE DASHBOARD 45
com parâmetros comuns a outros centros urbanos com os mesmos aspectos. A Figura 17
apresenta a proposta de template simples, com as regras de navegação, com função de
mostrar como os elementos serão dispostos em tela.
Esse layout funciona como um mapa de navegação. Com as regras que cada
elemento deve seguir e consequentemente como será a visualização na tela. A Figura
17 mostra uma layout simples para tela desktop e smartphone. Todos os elementos
possuem perfil similar, com variação nas dimensões de largura e altura, que representam
a categorização das informações. Ou seja, mostra que cada informação pertence a um
grupo de informação diferente. A proposta deste template está dividida em três áreas
diferentes:
Cards fixos (CF00) : correspondem aos elementos de dados que não devem mudar.
Após definido pela equipe de desenvolvimento, esses dados não devem variar seus
elementos. Devem ser utilizados para elementos que devem exibir dados constantes
e que sejam de extrema relevância para os cidadãos. Exemplos: níveis poluição do
ar, informações do tempo, locais e disponibilidade de bicicletas, estações de metrô,
Capítulo 4. SMARTNODE DASHBOARD 46
dentre outros;
Cards destacados (CP00) : esse espaço pode ser configurado para se tornar variável, ou
seja, modificar conforme programação. Sua principal função e exibir informações
com mais destaques. Pode ser configurada para exibir informações do trânsito em
tempo real. Pode ser interessante a programação para ser exibida em horários de
grandes fluxos de tráfego;
Node-RED, ou seja, é um fluxo utilizando os nós propostos. Para deixar essas diferenças
mais claras e realizar a implementação, os passos seguintes mostram como isso funciona:
Cada sub-fluxo representa uma saída no template. Cada saída é demarcada por um
par de nós (nó de dados e nó de renderização) que origina um card de saída, conforme a
Figura 17. Como é possível perceber, praticamente todos os nós de saída (identificados
Capítulo 4. SMARTNODE DASHBOARD 51
pela cor verde) são antecedidos de um nó que tem a função de ser a conexão com os
dados, ou seja, são responsáveis por fornecer um meio de comunicação com a fonte de
dados e tratá-los para que o nó de saída possa realizar a renderização.
CF01: fluxo sobre dados do clima e representar a saída na interface no card específico.
Ele utiliza dois nós: o primeiro é o nó de clima, que é fornecido por terceiros. Sua
função é abstrair a complexidade de criar um algoritmo específico para coletar
dados de clima. Ele se conecta com o site Open Weather Map e realiza a consulta
sobre as informações do clima da cidade, de acordo com a configuração realizada.
O segundo nó é responsável por renderizar a saída em HTML com os dados do
tempo. Basicamente ele organiza os dados vindos do nó de clima e ajusta no código
HTML;
CF02: fluxo sobre bicicletas de aluguel da cidade do Recife. O primeiro nó acessa a API
de dados das bicicletas. O segundo nó recebe os dados do primeiro e organiza a
saída de dados para visualização em HTML;
CF03: fluxo da qualidade do ar. Responsável por mostrar dados sobre a qualidade do ar.
Utiliza dois nós. O primeiro faz a consulta a API de dados, utilizando um nó que
recupera dados de uma URL. O segundo recebe os dados e representa em código
HTML;
CF04: fluxo para mostrar dados sobre as linhas de ônibus. Utiliza dois nós, com o
primeiro sendo responsável por recuperar informações por requisição em uma URL,
na API de dados. O segundo nó é responsável pelo card de visualização, que retorna
uma listagem de linhas de ônibus;
CP01: fluxo para projetar o card de tráfego. Ele não precisa de um nó auxiliar para
consulta de dados pelo fato de apenas rendizar um código gerado pela fonte de
dados;
CD01: fluxo com a função de consultar a API de dados sobre eventos na cidade e
lidar com a saída no card CD02. Utiliza dois nós: o primeiro recupera os dados
disponíveis numa determinada URL (API de dados). O segundo é o nó responsável
por gerar o card em HTML, que organiza os dados de saída de interface;
CD02 : fluxo para consulta API com imagens de câmeras de trânsito. Ele é responsável
por consultar a API de dados sobre imagens de tráfego e recuperá-las para serem
visualizadas na saída do card, onde o segundo nó será o responsável por essa
renderização;
Dashboard Natal: esse nó é responsável por configurar o layout de saída. Ou seja, nas
suas configurações é possível escolher dentre algumas possibilidades de visualiza-
Capítulo 4. SMARTNODE DASHBOARD 52
ção de layouts diferentes. Esse nó recebe os dados gerados pelos nós anteriores e
configura para ser renderizado no padrão de interface do dashboard;
response: Por fim, o último nó trata de uma resposta (HTTP response). Seu objetivo
é fornecer uma resposta à solicitação gerada pelo nó inicial de entrada (HTTP
request).
Para ilustrar a saída desse fluxo a Figura 20 exibe o resultado na interface web.
O fluxo CF01, CF02, CF03, CF04, CP01 e CD01, CD02 são responsáveis pelas
saídas nos cards CF01, CF02, CF03, CF04, CP01, CD01 e CD02, respectivamente.
Como resultado deste trabalho, foi criado alguns nós para contribuir com a
comunidade de desenvolvedores Node-RED. O resultado disso é a criação dos nós do
SmartNode Dashboard, com a função de lidar com a formatação de saída dos elementos
de interface. O seu código está disponível no repositório criado para este fim, no GitHub.
Assim é possível que outros desenvolvedores consigam ampliar o alcance deste projeto e
contribua em novas demandas, solucionando outros problemas.
53
5 VALIDAÇÃO DE USO
5.1 Abordagem
Para realizar essa validação foram utilizados os métodos de questionários e
observação. No Apêndice 1, Apêndice 2 e Apêndice 3, são mostrados, respectivamente, o
Termo de Livre Consentimento Esclarecido, o Roteiro de Avaliação e as Tarefas solicitadas
aos participantes. Esses instrumentos de pesquisa foram utilizados para conduzir a
avaliação junto aos participantes. Além desses documentos, foi utilizado um software de
captura de tela, para registrar os participantes realizando as tarefas solicitadas, assim
como um aplicativo instalado num smartphone para gravação de áudio, que serviu para
registrar as respostas dos questionários estruturados: um questionário que antecedia o
teste e outro que foi feito após a realização das tarefas.
Após a realização dos estudos deste projeto, verificou-se que as ferramentas exis-
tentes não atendem completamente aos problemas aqui apontados. Assim, as conclusões
sobre o que se tem disponível na comunidade de software atualmente, é ainda insufici-
ente para garantir que os desenvolvedores possam melhorar seus projetos, num modelo
Capítulo 5. VALIDAÇÃO DE USO 54
simplificado e que garanta maior automação na confecção de novos artefatos. Essa con-
clusão se delineou durante o percurso de estudos sobre as ferramentas e projetos voltados
aos dashboards. Isso acontece pelo fato de que é comum as equipes desenvolvedoras
criarem seus próprios projetos, baseando-se no seu contexto e assim não compartilham
seus códigos e métodos com a comunidade, ao ponto que os programadores possam
utilizar a base feita anteriormente para ampliar na construção de novos softwares.
Essa avaliação procurou analisar se a proposta apresentada no capítulo 4 atende
o objetivo deste trabalho. Ou seja, verificar se o SmartNode Dashboard e sua metodologia
que utiliza o Node-RED como plataforma de desenvolvimento é eficaz na busca por
melhoria no processo de criação de dashboards.
Alguns critérios foram tomados como base relevante de comparação para validar
esse estudo, afim de que sua aferição possa legitimar os objetivos desta pesquisa.
Eficiência: este critério foi utilizado para mensurar a duração em que cada participante
levou para concluir as atividades propostas. Ou seja, ele procura avaliar o esforço
empregado para realizar o trabalho;
Eficácia: esse critério procura mensurar se a execução das tarefas propostas foram
concluídas, sem que os participantes tenham deixado de realizar nenhuma das
Capítulo 5. VALIDAÇÃO DE USO 55
tarefas propostas. Quanto maior a quantidade de tarefas realizadas, mais eficaz foi
ele em realizar a tarefa;
Para realizar essa avaliação foi necessário subdividi-la em quatro etapas: (i) Ori-
entação sobre Node-RED, onde os participantes eram instruídos de suas funcionalidades;
(ii)Preparação do Ambiente de Testes, criação de um ambiente simples para realizar os
experimentos com os nós a serem utilizados; (iii) Processo de Avaliação, descrevendo
como foram realizadas as avaliações; e (iv) Resultados do estudo na seção 5.3.
Antes de iniciar cada avaliação, foi necessário apresentar a plataforma que seria
utilizada, o Node-RED. Essa etapa não era obrigatória, mas teve o intuito de instruir os
participantes sobre o funcionamento da plataforma. Cada avaliado poderia, a qualquer
tempo, pular esse estágio caso julgasse necessário. Isso pelo fato de quê, para aqueles
que já tinham alguma experiência com o Node-RED, poderia acreditar que não seria
necessário essa explanação.
5.3 Resultados
Com a realização desta avaliação foi possível obter informações contundentes
sobre as perspectivas que nortearam este trabalho. Elas mostraram que as proposições
iniciais foram ratificadas, dessa forma justificando o desenvolvimento da pesquisa. Os
dados recolhidos foram analisados em dois formatos: (i) transcrição dos questionários e
sua posterior análise; e (ii) análise dos vídeos com as tarefas. Essa operação proporcionou
uma base de informações capaz de direcionar as conclusões sobre a avaliação.
Com a finalização dos testes, foi possível realizar análises nos vídeos das tarefas e
mensurar os critérios avaliativos, citados anteriormente (eficiência e eficácia).
Apesar de haverem duas tarefas, o tempo avaliado foi o quantitativo total gasto, pelo
fato de ambas as atividades oferecerem o mesmo nível de dificuldade.
Para este critério, foi analisado o quanto das atividades propostas os avaliados
conseguiram concluir, de forma adequada (funcional). Dos cinco entrevistados apenas
40% não conseguiram concluir todas as tarefas. Particularmente, o Participante 5 pulou
uma tarefa, por alegar que não estava entendendo o que a tarefa queria dizer.
5.4 Discussão
De uma maneira geral, os participantes concordaram que a metodologia proposta
reduziu drasticamente a perspectiva de trabalho a ser despendida. O Node-RED oferece
recursos que maximizam a realização das tarefas, possibilita a reutilização e o comparti-
lhamento de código. O SmartNode Dashboard utilizou essa perspectiva da plataforma
para estender sua capacidade e criar uma estrutura de código capaz de ser melhorada
por equipes de softwares que trabalham nessa frente de desenvolvimento.
Após a conclusão das tarefas, os participantes foram questionados sobre sua
experiência com a utilização do SmartNode Dashboard na plataforma Node-RED. Esse
questionário foi utilizado para avaliar a experiência sobre a contribuição da proposta na
Capítulo 5. VALIDAÇÃO DE USO 60
criação de dashboards. Ao todo foram três perguntas abertas, com três sub-perguntas mais
detalhadas sobre as respostas das questões 2, 3 e 4, além de duas questões reflexivas.
A Questão 1 solicitou um relato sobre a experiência com o uso da metodologia.
Essas respostas estão disponíveis na Tabela 5.
5.5 Conclusão
Depois de analisar os experimentos, coletar as respostas e avaliar as opiniões dos
participantes, posterior a realização das tarefas, foi possível concluir que a metodologia
utilizando o Node-RED agregado ao uso SmartNode Dashboard foi capaz de melhorar
o processo de desenvolvimento de dashboards, alcançando, desta forma, os objetivos
desta proposta. Com as respostas dos participantes da validação, que elencaram diversas
características positivas durante o processo, o objetivo principal deste trabalho se com-
pleta e abre oportunidade para novas demandas. Uma das perguntas questiona sobre
a percepção do ponto de vista de quem é avaliado, se há como implantar melhorias.
Suas indicações são incluídas na seção de trabalhos futuros, por se tratar, desde já, do
engajamento de melhorias em potencial.
62
6 CONSIDERAÇÕES FINAIS
A discussão em torno dos dados vem sendo tracionada pela evolução das cidades
inteligentes e no crescimento de suas massas de dados, que agora são geradas por
uma gama diversificada de fontes (governo, cidadãos, sensores instalados em cidades,
etc.). Apresentar novas soluções para essa problemática é um fator crucial na incessante
busca por oferecer cidades mais inteligentes. Utilizar isso, apresentando informações
que auxiliem, de maneira significativa, aos cidadãos, considerando seu contexto de uso e
necessidades mais relevantes, é uma premissa que deve estar presente na criação de novos
projetos. Este trabalho trouxe a união de tecnologias mais atuais para criar o SmartNode
Dashboard e alinhando-se a isso, desenvolver uma metodologia que apoie na criação de
novos artefatos digitais relevantes no contexto de dashboards. O SmartNode Dashboard
é um framework focado no desenvolvimento de painéis para diversificados tipos de
aplicações. Esse trabalho teve seu foco voltado ao contexto das cidades inteligentes,
contudo, sua aplicação não se restringe apenas a isso.
Além dessa nova tecnologia criada, o trabalho mostrou também, a utilização do
Node-RED. Uma ferramenta de programação por fluxos que possibilita a redução da
complexidade de desenvolvimento de novos projetos. Ela reduziu o ferramental que os
programadores necessitam para realizar o desenvolvimento de novos dashboards. Os
testes realizados mostraram o quanto que ele facilitou a criação dos serviços e interfaces,
além de potencializar o desenvolvimento de novos projetos a partir destes. Vale ressaltar
que o uso de tecnologias como essas, não só ajudam a melhorar em como se desenvolve
projetos de softwares, conferindo agilidade, flexibilidade e dinamismo, mas também
contribui na difusão e crescimento de novas tecnologias.
6.2 Limitações
Após a validação, percebeu-se que os programadores antes de utilizar o SmartNode
Dashboard em conjunto com o Node-RED, necessitam antes se familiarizar com esta
última. Isso porque os conceitos que o Node-RED apresenta pode ser diferente dos que
os programadores estão acostumados, incorrendo em erro e um aumento na curva de
aprendizagem.
Por não se tratar do escopo dessa pesquisa, não foi tratado detalhes de design mais
aprofundados. Os elementos de interface criados são oriundos do Bootstrap Framework.
• Ampliar a capacidade dos nós criados e possibilitar que os usuários possam cus-
tomizar a interface de visualização dos seus dashboards, onde seja possível eles
escolherem ver apenas o que é de seu interesse.
64
Referências
KALBACH, J. Design de Navegação web. Porto Alegre: Bookman, 2009. Citado na página
33.
KOURTIT, K.; NIJKAMP, P. Big data dashboards as smart decision support tools for
i-cities–an experiment on stockholm. Land Use Policy, Elsevier, v. 71, p. 24–35, 2018.
Citado na página 22.
LEEM, C.; KIM, B. P. Taxonomy of ubiquitous computing service for city development.
Personal and Ubiquitous Computing, v. 17, p. 1475 – 1483, 2013. ISSN 1877-0509.
Disponível em: <https://link.springer.com/article/10.1007/s00779-012-0583-5>.
Citado 2 vezes nas páginas 20 e 21.
NIELSEN, J. 10 Usability Heuristics for User Interface Design. 1995. Disponível em:
<https://www.nngroup.com/articles/ten-usability-heuristics/>. Acesso em Abril 30,
2018. Citado na página 29.
NIELSEN, J. The Need for Web Design Standards. 2004. Disponível em: <https:
//www.nngroup.com/articles/the-need-for-web-design-standards/>. Acesso em Abril
30, 2018. Citado na página 29.
OTTO, M. Building Twitter Bootstrap. 2012. Jan., 2012. Disponível em: <https:
//alistapart.com/article/building-twitter-bootstrap>. Acesso em 01-Maio-2018. Citado
na página 32.
RIZZON, F.; BERTELLI, J.; MATTE, J.; GRAEBIN, R.; MACKE, J. Smart city: Um conceito
em construÇÃo. In: Revista Metropolitana de Sustentabilidade. [S.l.: s.n.], 2017. v. 7(3),
n. 3, p. 144–149. ISSN 23183233. Citado na página 20.
SILVA, M. S. Bootstrap 3.3.5: Aprenda a usar o framework Bootstrap para criar layouts
CSS complexos e responsivos. São Paulo: Novatec, 2015. Citado 3 vezes nas páginas 32,
33 e 40.
SUAKANTO, S.; SUPANGKAT, S. H.; SARAGIH, R. et al. Smart city dashboard for
integrating various data of sensor networks. In: IEEE. ICT for Smart Society (ICISS), 2013
International Conference on. [S.l.], 2013. p. 1–5. Citado 2 vezes nas páginas 21 e 22.
APÊNDICE C – Tarefas