Escolar Documentos
Profissional Documentos
Cultura Documentos
São Luís
2015
LEANDRO RIBEIRO RAMOS
São Luís
2015
RAMOS, LEANDRO RIBEIRO (SUBSTITUIR ESSE)
74.f.
BANCA EXAMINADORA
_______________________________________________
Profº Dr. Geraldo Braz Junior
Orientador - UFMA
_______________________________________________
Profª Msc. Vandecia Rejane Monteiro Fernandes
1º Examinador - UFMA
________________________________________________
Profº Dr. Carlos de Salles Soares Neto
2º Examinador - UFMA
São Luís
2015
AGRADECIMENTOS
Steve Jobs
RESUMO
One of the fundamental rights of the citizen is of go and come. To help in this
process, there is the public transport system in each city, that provides bus and other
means of transport to help people in this regard. However, the public transport service
in several cities leaves much to be desired. Few buses available, which together with the
chaotic city traffic causes people to wait indefinitely for their transportation. Moreover,
are provided little information on routes, schedules, the bus stops and other factors
which affect the population.
The need for information linked to new technologies, such as GPS, smartphones
with mobile internet and the ability to use multiple applications, makes it possible to
give the population a system that is portable, easy to use and that meets the user's needs
public transport to get information to optimize your time and make the best decisions on
the use of such transport.
This paper presents a system design for this purpose. Showing all stages of the
process from requirements analysis, use cases, through the system of internal structure,
database and finally the user interface prototypes.
1 INTRODUÇÃO ...................................................................................................... 12
1.1 Objetivos ......................................................................................................... 13
2 TRABALHOS RELACIONADOS ......................................................................... 14
2.1 Google Transit ................................................................................................ 14
2.2 Meu Busão (Palmas – TO) ............................................................................ 15
2.3 Moovit ............................................................................................................. 17
2.4 Cade o Onibus? (SP) ...................................................................................... 18
2.5 Comparação dos Relacionados com a Proposta deste Trabalho ............... 19
3 PROPOSTA ............................................................................................................ 20
3.1 Turismo X SIG ............................................................................................... 21
3.2 Requisitos ........................................................................................................ 22
3.2.1 Requisitos Funcionais .................................................................................. 23
3.2.1.1 Módulo do ônibus ..................................................................................... 23
3.2.1.2 Módulo de usuário .................................................................................... 24
3.2.1.3 Módulo gerencial ...................................................................................... 25
3.2.2 Requisitos Não Funcionais ........................................................................... 25
3.3 Casos de Uso ................................................................................................... 26
3.4 Arquitetura Básica ......................................................................................... 31
3.5 Diagrama de Pacotes ..................................................................................... 34
3.6 Modelagem Dinâmica .................................................................................... 40
3.7 Banco de Dados .............................................................................................. 44
4 PROTÓTIPO ........................................................................................................... 48
4.1 Prototipação de interfaces com o usuário .................................................... 49
4.1.1 Protótipos do Módulo Gerencial .................................................................. 50
4.1.2 Protótipos do Módulo do Ônibus ................................................................. 60
4.1.3 Protótipos do Módulo do Usuário ................................................................ 64
5 CONCLUSÃO ........................................................................................................ 71
6 REFERÊNCIAS ...................................................................................................... 73
1 INTRODUÇÃO
No mundo em que vivemos hoje, o tempo se torna cada vez mais um recurso
extremamente escasso para cada uma das pessoas. Dessa maneira, somos forçados a
procurar otimizar o tempo gasto em atividades, cotidianas ou não, para que esse recurso
escasso não seja desperdiçado de forma desnecessária.
Um dos momentos em que mais se perde tempo de forma inútil é quando
ficamos em uma parada esperando um ônibus, para ir ao trabalho, para casa ou um
passeio. Em alguns casos passa-se mais tempo esperando um ônibus, do que a próprio
percurso que se vai fazer dentro do ônibus.
Quem já precisou usar transporte público em uma cidade grande, a qual não
conhece, admite que é fácil errar o caminho e se perder ou gastar um tempo ainda maior
para chegar ao local desejado. Isso acontece, dentre outros fatores, em especial em São
Luís, devido à falta de informação sobre as linhas, rotas e dos horários de viagem dos
ônibus, que não são repassados, de forma efetiva, aos usuários de ônibus, a falta de uma
fiscalização mais rígida para obrigar o cumprimento correto das viagens nos horários
certos e principalmente, pelo usuário não dispor de uma ferramenta para saber qual a
localização do ônibus na cidade, obrigando-o a esperar indefinidamente pelo seu
transporte.
Por esses motivos o desenvolvimento de um software, que auxilie o usuário do
transporte público a organizar melhor seu tempo para fazer seus percursos de ônibus e
ter todas as informações referentes aos ônibus, bem como a sua localização em tempo
real, é de suma importância para a população.
O sistema proposto, uni a comodidade do uso do smartphone, que possui
diversos sensores e recursos como internet móvel, GPS, dentre outros, que é uma
presença constante em nosso dia-a-dia, com a necessidade das pessoas de mais
informação. Ajudando desde aqueles que querem apenas saber qual o horário dos
ônibus de uma linha qualquer, em um dia específico da semana, para programar a sua
saída de casa e dirigir-se à parada no tempo certo, como também aqueles precisam
chegar a algum lugar da cidade, mas não têm nem ideia qual ônibus pegar, tão pouco
como chegar ao local de destino.
12
1.1 Objetivos
13
2 TRABALHOS RELACIONADOS
Ao fazer uma busca por esse tipo de ferramenta é fácil encontrar na internet
iniciativas para melhorar a vida do cidadão na utilização do transporte público. No
período de levantamento de requisitos, foram analisados vários trabalhos similares e
selecionados alguns softwares para apresentação e comparação com o sistema proposto.
Sendo eles: Google Transit, Meu Busão (Palmas – TO), Moovit e Cadê o Onibus?.
1
http://maps.google.com.br/intl/pt-BR/help/maps/mapcontent/transit/faq.html
14
“O Google Transit no Google Maps é uma ferramenta de planejamento para
transporte público que combina os dados mais recentes da agência com o
alcance do Google Maps. Ele integra paradas, trajetos, grades de horários e
informações sobre tarifas de transporte público para facilitar e agilizar o
planejamento de viagens.” (GOOGLE, 2015)
2
http://www.meubusao.com.br/
15
Figura 2 - Exemplo de telas do Meu Busão no android. Fonte: site oficial do software
16
2.3 Moovit
3
http://moovitapp.com/pt-br/
17
2.4 Cade o Onibus? (SP)
Desenvolvido pela empresa Nano IT, o aplicativo “Cadê o Ônibus?” (ver Figura
4), segundo um site oficial4, está disponível para a plataforma Android desde 2012, para
IOS e Windows desde 2014, e possui as seguintes funcionalidades:
Posição geográfica dos ônibus em tempo real. Todos os ônibus possuem
um GPS que envia informações a SPTrans (São Paulo Transporte) de
tempos em tempos. O aplicativo acessa os dados da SPTrans e EMTU
(Empresa Metropolitana de Transportes Urbanos de São Paulo) e exibe o
resultado em seu celular.
Informa os pontos de ônibus próximos, itinerário das linhas e horário de
partida dos ônibus.
Monitora as condições do Trânsito, mostrando, nos dois sentidos, a
velocidade e o tempo percorrido em um determinado local.
Administração das suas linhas "favoritas", para ver mais rapidamente a
posição dos ônibus no mapa (além do trajeto da linha) ou o itinerário que
eles percorrem.
O aplicativo informa se o ônibus possui ou não suporte para cadeirantes.
Figura 4 - Exemplo de telas do aplicativo Cadê o Ônibus? Fonte: site oficial do software
4
http://www.cadeoonibus.com.br/
18
2.5 Comparação dos Relacionados com a Proposta deste Trabalho
19
3 PROPOSTA
20
3.1 Turismo X SIG
A cidade de São Luís com suas festas tradicionais, praias, centro histórico,
dentre outros lugares, todos os anos recebe diversos turistas dos mais diversos lugares
para conhecer ou visitar novamente a cidade. Sendo que muitos deles utilizam o
transporte público para se locomover pela cidade. Entretanto, a cidade não dispõe de
nenhum informativo sobre os horários dos ônibus, linhas disponíveis e rotas nos pontos
de ônibus em qualquer outra parte.
Visando proporcionar uma melhor experiência na utilização desse transporte e
facilitar a vida dos turistas e dos usuários da cidade, o sistema “Vou de Ônibus” visa
informatizar o processo de comunicação entre os usuários e os serviços prestados pelas
empresas de transporte público através de uma proposta de Sistema de Informação
Geográfica (SIG). Que, segundo Câmara & Queiroz (2001, p. 3-1), é o termo “aplicado
para sistemas que realizam o tratamento computacional de dados geográficos e
recuperam informações não apenas com base em suas características alfanuméricas, mas
também através de sua localização espacial”. O SIG é usado para identificar e coletar
informações sobre pontos específicos no mapa, realizando buscas de destinos para o
qual o usuário do sistema deseja ir, definir melhor rota entre dois pontos e até mesmo
calcular a distância e o tempo estimado de chegada de um ônibus a um ponto
selecionado. A Figura 5 apresenta exemplos de um sistema de informação geográfica.
21
Em resumo, com o uso do SIG é possível identificar e dar informações
detalhadas de uma infinidade de locais em um mapa digital que possa utilizar esses
recursos. Como é o caso do Google Maps, é um servidor de mapas que possui sua
própria API (Application Programming Interface) pública para manipulação dos
elementos que trabalham em conjunto com o mapa. A API do Google Maps possui uma
vasta documentação e pode ser utilizada em qualquer software ou site de forma gratuita,
de acordo com as regras que constam na documentação oficial em seu site5.
Com base nesses recursos, o turista tem a facilidade de, ao chegar à cidade,
poder visitar qualquer lugar dentre os pontos turísticos mapeados, visualizando os
horários das linhas e as melhores rotas para fazer de acordo com a sua localização atual
passada pelo GPS do usuário para o sistema.
3.2 Requisitos
5
https://developers.google.com/maps/
22
Ao tratar sobre requisitos de sistemas de softwares, os autores da área de
engenharia de software e afins, normalmente, classificam os requisitos em funcionais e
não funcionais. Tais requisitos são demonstrados a seguir com base no que foi analisado
para esse sistema.
Os requisitos funcionais estão divididos por módulos, para deixar bem claro o
que se deseja especificamente em cada um deles.
23
3.2.1.2 Módulo de usuário
Neste módulo, encarregado por disponibilizar o acesso aos dados dos outros
módulos do sistema ao usuário de ônibus, não há necessidade de login e senha para
acessa-lo. Ou seja, qualquer pessoa tem acesso direto às funcionalidades do sistema
presentes neste módulo.
O módulo deve permitir ao usuário a visualização das informações sobre as
linhas de ônibus com seus respectivos horários de saída de cada viagem de qualquer dia
da semana, quantidade de ônibus em circulação no momento, itinerário e rota no mapa
da linha selecionada, bem como a última data de atualização dessas informações.
Através dos filtros de pesquisa por linha ou destino, que por destino entende-se
como: um bairro, um ponto turístico ou outro ponto de interesse como, por exemplo,
CEUMA, Tropical Shopping, dentre outros, o aplicativo ou página web, com a ajuda do
GPS do usuário, informa qual a parada mais próxima dele para pegar o ônibus, as
opções de linhas para o destino selecionado, em qual parada ele deve descer e a
localização atual de cada ônibus das linhas que aparecer no resultado da pesquisa
exibindo cada um com a cor que foi informada em seu cadastro no módulo gerencial.
Limitando a pesquisa a um numero x de resultados para não sobrecarregar o sistema.
Ao escolher uma das linhas do resultado da busca, a sua rota é exibida no mapa e
o usuário também tem a opção de comparar duas rotas ao mesmo tempo, para ajudá-lo a
tomar a decisão de qual linha pegar.
Caso o usuário clique em uma parada do mapa o sistema exibe todas as linhas
que param naquela parada. Ao clicar em um ônibus no mapa o sistema exibe o número,
nome da linha, tempo estimado de chegada até o ponto selecionado no mapa e também a
ultima hora da atualização recebida no sistema daquele ônibus em circulação.
Caso o usuário tenha dúvidas de como utilizar o sistema, haverá um tutorial
explicando passo-a-passo todas as funcionalidades existentes neste módulo, de forma
simples e objetiva.
24
3.2.1.3 Módulo gerencial
Visando uma melhor usabilidade, o sistema deve prover uma interface amigável,
intuitiva e multiplataforma nos módulos de ônibus e de usuário, fator primordial para o
sucesso do sistema. Em especial no módulo de usuário, já que este não dispõe de
treinamento pessoal para uso do sistema. Entretanto, ele dispõe de um tutorial para tirar
as dúvidas do usuário.
Outro fator que deve ser observado é o desempenho do sistema que na maior
parte do tempo, será usado através de conexões móveis com a internet e justamente por
isso, o fator desempenho é essencial uma vez que o mesmo atuará com conexões de
baixa qualidade e um volume elevado de acesso ao sistema.
Com o intuito de dispor de um produto de alta flexibilidade e reusabilidade, será
adotada a linguagem Java, utilizando-se da orientação a objetos e do uso do framework
25
JSF para acesso via web e banco de dados SQL Server 2008 para prover maior
segurança no armazenamento das informações relativas ao sistema.
É primordial também que o sistema possua um layout responsivo, ou seja, uma
interface que se adapte de acordo com o dispositivo que está acessando o sistema. Para
garantir com isso o acesso de qualquer dispositivo que possua browser e acesso à
internet, maior flexibilidade e maior quantidade de pessoas com possibilidade de acessar
o sistema.
Com base no que foi relatado na análise de requisitos, foi concluído que os casos
de uso partiriam da seguinte estrutura, conforme demonstrado na Figura 6:
26
Figura 7 - Caso de uso do módulo gerencial
No módulo gerencial, apenas dois usuários têm acesso. Sendo que para acessar
qualquer recurso do sistema o usuário obrigatoriamente precisa realizar o login no
sistema, como apresentado na Figura 7. Outro fato importante é que o usuário
administrador pode acessar todas as funcionalidades acessíveis ao usuário funcionário e
mais três recursos extra, que são recursos de gerenciamento de acesso aos módulos do
sistema e outro de uso comum a todas as empresas. Isso ocorre para que seja mantida a
confiabilidade das informações contidas no sistema. Esses e todos os casos de uso serão
explicados de forma detalhada.
O caso de uso Gerenciar Linhas tem como finalidade gerenciar as linhas de cada
empresa, permitindo que o usuário visualize e pesquise as linhas cadastradas, insera,
atualize e exclua registros de uma linha. Cada linha possui um prefixo, composto por
uma letra, um número distinto e um nome único que a identifica. Além disso, deve ser
informada também no ato do cadastro uma cor que representa a linha, escolhida dentre
as disponíveis no sistema, e, opcionalmente, o tempo estimado de viagem.
O caso de uso Gerenciar Perfil permite que o usuário logado possa visualizar
suas informações de cadastro e alterar sua senha de acesso e também a senha de acesso
do usuário cobrador do módulo do ônibus vinculado a sua empresa.
27
No caso de uso Gerenciar Horário é possível visualizar, inserir, atualizar e
excluir os horários de saída dos ônibus das linhas de sua empresa em cada dia da
semana. Necessitando apenas que a linha já esteja cadastrada previamente no sistema.
No ato do cadastro é possível também definir um horário inicial e final com um
intervalo em minutos entre uma viagem e outra, para inserir vários horários ao mesmo
tempo em todos os dias da semana que forem selecionados pelo usuário.
No caso de uso Visualizar Relatórios, o objetivo é monitorar as viagens
realizadas pelos ônibus de sua empresa, exibindo todas as informações repassadas pelo
módulo do ônibus em cada viagem ocorrida.
O caso de uso Gerenciar Rotas permite que o usuário visualize e atualize a rota
de cada linha cadastrada para sua empresa. Com o auxílio do Google Maps o usuário,
com poucos cliques, informa cada parada que a linha selecionada possui ponto de
embarque adicionando de forma ordenada a lista de paradas que compõem essa rota e
em seguida, basta salvar as alterações realizadas.
No Caso de uso Gerenciar Paradas, apenas o usuário administrador tem acesso.
E este é responsável por cadastrar e gerenciar cada parada da cidade, que serão
utilizadas para compor as rotas das linhas. Outra função importante é a possibilidade de
inserir POI (pontos de interesse) para cada parada. POI são pontos de referencias
turísticos, lugares famosos da cidade, dentre outros pontos que são de interesse de todos
e conhecimento de todos. Esses POI serão cadastrados previamente em banco de dados
e apenas adicionados a uma ou mais paradas. Servindo como base para o caso de uso
Fazer Pesquisa do módulo do usuário que é explicado mais adiante.
No Caso de uso Gerenciar Usuários, que também é acessado somente pelo
usuário administrador é possível gerenciar todos os usuários do sistema, de todos os
módulos.
O Caso de uso Gerenciar Empresas tem a finalidade de inserir, atualizar e
excluir as empresas no sistema. O cadastro da empresa possui apenas os registros de
nome fantasia e razão social da empresa.
E por fim há o Caso de uso Realizar Login que é a operação para autenticar o
usuário no sistema e é requisito obrigatório para acessar qualquer outro caso de uso
desse módulo.
28
Figura 8 - Caso de uso módulo do ônibus
29
Figura 9 - Caso de uso módulo do usuário
Com o acesso direto ao sistema, sem a necessidade de fazer login, neste módulo o
usuário tem como opções iniciais: Obter informações, obter ajuda e fazer pesquisa. Elas
são explicadas a seguir, juntamente, com seus casos de uso secundários conforme
exibidos na Figura 9.
O caso de uso Obter Informações oferece ao usuário a possibilidade de se
informar sobre os horários de saída de cada linha em cada dia da semana, visualizar seus
itinerários e a quantidade de ônibus circulando no momento, da linha selecionada.
No caso de uso Exibir Rota, que pode ser acessado através do caso de uso Obter
Informações, o usuário tem a possibilidade de visualizar a rota no mapa da linha
selecionada. Tendo a opção de, na mesma tela, escolher outra linha para visualizar a
rota, sem a necessidade de retornar a tela anterior.
O caso de uso Obter Ajuda serve para auxiliar o usuário a entender o
funcionamento do sistema e como utiliza-lo de maneira correta, provendo um tutorial
passo-a-posso exemplificando os recursos e funcionalidades do sistema.
Já o caso de uso Fazer Pesquisa oferece ao usuário à possibilidade de optar entre
pesquisar por linhas específicas, onde o usuário digita o nome parcial ou número da
linha que deseja buscar, ou a opção de buscar um destino, que ao digitar uma palavra ou
frase qualquer, o sistema busca em seu banco de dados de Pontos de Interesse (POI) um
possível resultado e ao encontrar, exibe no mapa a parada em que o usuário deve descer
para chegar ao destino marcado.
Em ambos os casos é exibido também como resultado a localização atual do
usuário, a parada mais próxima dele as linhas que foram encontradas como resultado,
que no caso da busca por destino, são aquelas que tem rotas que passam entre as paradas
30
próximas ao usuário e nas paradas próximas ao destino selecionado, e cada um dos
ônibus que estão em circulação no momento que fazem parte do resultado da busca. O
sistema também exibe no mapa a rota da primeira linha mostrada como resultado da
pesquisa.
O caso de uso Comparar Rota é uma opção acessível no resultado da Pesquisa do
caso de uso Fazer Pesquisa, que permite comparar duas rotas ao mesmo tempo no mapa
para que o usuário possa tomar a decisão de qual rota seguir.
Outra opção acessada através do caso de uso Fazer Pesquisa é o caso de uso
Exibir Estatística que ao selecionar qualquer parada no mapa, permite visualizar todas
as linhas que param naquela parada. E ao selecionar um dos ônibus em circulação
marcados no mapa, exibe o nome, número da linha, hora da ultima atualização da
localização do ônibus e o tempo estimado de chegada até à parada selecionada no mapa,
conforme descrito nos requisitos funcionais desse módulo.
Com base na descrição dos diagramas de casos de uso do sistema o projeto
começa a tomar forma e já é possível visualizar e projetar a arquitetura básica do
sistema.
31
Figura 10 - Arquitetura de software
6
https://play.google.com/store
32
Figura 11 - Diagrama de classes
A entidade central do sistema é a entidade Linha que interage com a maioria das
entidades com diferentes tipos de relacionamentos entre elas. Onde as entidades
Relatório, Localização e Horário possuem a relação de composição com a entidade
Linha, o que significa que o objeto da entidade Linha compõe essas entidades e sem ele
esses objetos não existem.
Já no caso das entidades Empresa e Cor a relação com a entidade Linha é de
agregação, que é quando um objeto possui outros objetos e um não depende diretamente
do outro para existir.
Outro tipo de relacionamento é entre a entidade Parada e a entidade Linha que
ocorre a associação de muitos para muitos e gera a classe associativa Rota devido à
existência de atributos relacionados à associação que não podem ser representados em
nenhuma das outras classes envolvidas.
Diferente do relacionamento anterior, a entidade Parada e a entidade POI
possuem ocorrência de associação de multiplicidade muitos para muitos, porém não
exige a existência de outra classe associativa.
Dentre as outras associações simples presente no diagrama de estrutura que não
necessitam de explicação é necessário citar por fim o relacionamento de generalização
33
entre a entidade Usuário e seus filhos Admin, Funcionário e Cobrador, que existe na
ocorrência de herança entre classes. Essa situação é abordada por Guedes:
É importante esclarecer que esta visão arquitetural do sistema foi construída com
base nas notações da ISO/IEC/IEEE 42010 que é uma norma internacional que aborda
os requisitos para o desenvolvimento de descrição de arquitetura para software e
sistemas e que essa estrutura de entidades serve de apoio ao que será mostrado no
diagrama de pacotes que mostra de forma bem mais completa o funcionamento interno
do sistema.
34
Figura 12 - Diagrama de pacotes da visão geral do sistema
35
Figura 13 - Diagrama de pacotes do módulo gerencial
Existem diversos padrões e frameworks de projeto que são muito utilizados, para
as mais diversas finalidades. Segundo Gamma (2000, p.26), “Alguns padrões são
frequentemente utilizados em conjunto”. Como é o caso do framework de infraestrutura
MVC, que permite dividir o projeto em camadas bem definidas e Freeman & Freeman
(2007, p. 424) afirma que o MVC é “um conjunto de padrões trabalhando juntos numa
mesma estrutura”.
Dentre as principais vantagens na utilização do MVC estão à facilidade de
manter o código sempre limpo, um melhor reaproveitamento do código, a reutilização
36
da GUI para diversas aplicações com menos trabalho, a alternativa de reescrita da GUI
ou do Controlador sem modificar o modelo do sistema, facilidade na manutenção e
inclusão de recursos, etc.
37
web baseado em Java que tem como objetivo simplificar o desenvolvimento de
interfaces (telas) de sistemas para a web, através de um modelo de componentes
reutilizáveis”. Ainda segundo o autor, O JSF é baseado no padrão MVC, tornando o
desenvolvimento de sistemas menos complicado, e os principais componentes que o
framework fornece são: formulários, campos de entrada de texto, rótulos, links, botões,
mensagens, painéis, tabela de dados, etc.
Outros pacotes que fazem parte da estrutura do módulo gerencial são: a API
Google Maps, formado por um conjunto de classes que se comunicam com o servidor
de mapas e utilizam a sua API para apresentar e gerenciar os elementos que compõem
os mapas desse aplicativo, e o outro pacote, é o Driver JDBC, composto por um
conjunto de classes que permitem que uma aplicação interaja com o banco de dados.
38
A Figura 14 apresenta o diagrama de pacotes do módulo do ônibus, que se difere
do módulo gerencial apenas em alguns aspectos. A primeira diferença é o fato de não
possuir o pacote de API do Google Maps, pois este recurso não é utilizado dentro deste
módulo. A outra diferença é a utilização do pacote APP Android que representa neste
diagrama, um projeto de aplicativo da plataforma Android que utiliza o componente
Webview, dependendo diretamente da interface de usuário deste módulo. O uso dessa
estrutura exige uma interface responsiva muito bem elaborada, conforme citado nos
requisitos não funcionais do projeto proposto.
De acordo com o site oficial7 de suporte aos desenvolvedores de aplicativos da
plataforma Android, esse componente permite, com autorização prévia do usuário, que a
aplicação tenha acesso ao GPS e a vários outros sensores e recursos do dispositivo,
permitindo que aplicação possa, também, funcionar normalmente, através do aplicativo,
nos smartphones com plataforma Android.
Outra característica importante na utilização deste método é o fato de se poder
desenvolver apenas uma interface de usuário que possa trabalhar em múltiplas
plataformas. Garantindo assim, maior opção de escolha ao usuário final.
7
http://developer.android.com/guide/webapps/index.html
39
A figura 15 apresenta o diagrama de pacotes do módulo do usuário. Este módulo
depende diretamente dos outros dois módulos do sistema e possui todos os pacotes
vistos nos outros diagramas de pacotes anteriores. O que dispensa novas apresentações.
40
Figura 16 - Diagrama de sequência monitorar viagem
41
Figura 17 - Diagrama de sequência exibir rota
O segundo diagrama de sequência a ser mostrado é o Exibir Rota que faz parte
do módulo do usuário e, conforme detalhado na Figura 17, é iniciado quando o usuário,
já na tela resultado da pesquisa, seleciona uma linha para que a sua rota seja exibida.
Após selecionar a linha o controlador faz a busca da rota e retorna o resultado para a
interface do usuário.
42
recebe os dados e faz à busca do destino informado no cadastro de POI do sistema, em
seguida, o controlador, automaticamente, busca e seleciona a parada mais próxima do
usuário e a parada de destino. Com posse desses dados o sistema busca todas as linhas
que tem rota passando entre os dois pontos selecionados, retorna o resultado da pesquisa
para a tela do usuário, com a primeira linha do resultado já selecionada, e faz a chamada
do evento Exibir Rota, conforme mostrado no diagrama de sequencia correspondente.
Um diagrama de sequência expõe o modo como os grupos de objetos colaboram
em algum comportamento ao longo do tempo, diferente do diagrama de estados que se
deve criar um diagrama somente para cada classe de objeto que apresente
comportamento relevante e dinâmico.
O diagrama de Estados também tem como base o diagrama de classe para sua
construção e esse diagrama tem seu foco principal o objeto, diferente do diagrama de
sequência que foca no processo de negócio. O seu objetivo é descrever um
comportamento de um objeto, onde os seus estados representam situações estáveis
durante certo intervalo de tempo. Esse diagrama deve ser usado quando um objeto
dentro do sistema possui um comportamento dinâmico e seja relevante dentro projeto.
Segundo Guedes (2011, p. 242), “Um estado representa a situação em que um
elemento (muitas vezes um objeto) se encontra em determinado momento durante o
período em que participa de um processo. Um objeto pode passar por diversos estados
dentro de um mesmo processo”.
43
A Figura 19 apresenta o diagrama de estados para Localização. Esse diagrama
retrata os estados da instancia da classe Localização, no decorrer do tempo, de acordo
com os estímulos externos recebidos por esse objeto.
O Estado inicial, caracterizado por um círculo totalmente preenchido na cor
preta, tem a função somente de determinar o início da modelagem e gerar a transição
que inicia o processo. O Estado iniciando viagem representa o momento em que o
usuário Cobrador clica no botão iniciar viagem no módulo do ônibus, e o objeto
localização é criado e recebe os dados iniciais, fazendo a transição logo em seguida,
para o estado recebendo dados, onde as informações passadas ao iniciar viagem serão
validadas.
Seguindo para o próximo estado, o objeto persiste os dados que foram validados
no banco de dados para assim ficar disponível ao módulo do usuário. Ao término do
processo o objeto entra em estado de espera para uma das opções:
A contagem de tempo chegar ao horário estipulado e executar novamente
o recebimento de dados e atualização da sua localização. Formando
assim um loop entre esses três estados;
Ou mudar para finalizando viagem, que acontece quando o usuário clica
no botão finalizar viagem e objeto solicita ao sistema a remoção da sua
localização do banco de dados e assim chegar ao fim do processo e do
diagrama de estado.
O banco de dados nesse processo, em especial, é um fator essencial para a
comunicação entre os módulos do cobrador e do usuário. E para melhor entendimento
dessa comunicação entre os módulos, a estrutura de banco de dados desse sistema será
mostrada a seguir.
45
Cougo (1997, p.147), “[...] tem sido uma das notações mais utilizadas nos últimos
tempos”.
46
tabela TB_HORARIO e a uma linha específica. Montando assim uma grade de horários
diários de cada linha.
A tabela TB_ROTA tem seus registros obtidos pela junção das chaves primárias
das tabelas TB_LINHA e TB_PARADA, somados ao campo ordem, que é a sequencia
a seguir pela linha, dão origem às rotas de cada linha do sistema. A tabela
TB_PARADA possui o cadastro de cada ponto geográfico das paradas, utilizando o
mesmo padrão da tabela TB_LOCALIZACAO, e outras informações para sua melhor
identificação.
A tabela TB_PARADA também se relaciona de forma indireta com a tabela
TB_POI, dando origem a tabela TB_DESTINO, que serve para identificar qual a parada
de destino do cidadão no módulo do usuário ao fazer uma pesquisa por destino. No caso
deste tipo de busca, o sistema pesquisa na tabela TB_POI, onde existe um cadastro dos
pontos de interesses da cidade, e ao encontrar um resultado, verifica na tabela
TB_DESTINO qual a parada mais próxima do registro encontrado.
Já a tabela TB_USUARIO é responsável por armazenar os dados de acesso ao
sistema dos usuários, utilizando criptografia no campo senha para garantir maior
segurança dos dados. Essa tabela está relacionada com a tabela TB_EMPRESA, com
cardinalidade de muitos para um. Porém pode haver ou não um usuário associada a uma
empresa, que é o caso especifico do usuário do tipo Administrador que não possui
vínculo com uma empresa. Cada usuário está associado a um tipo de usuário na tabela
TB_USUARIO_TIPO que representa o perfil de acesso ao sistema ao qual o tipo está
vinculado. Conforme representado nos diagramas de casos de uso e que serão mais bem
visualizados nas telas de protótipos do sistema que serão mostrados do decorrer desse
trabalho.
47
4 PROTÓTIPO
Neste projeto foi utilizada para prototipação, uma ferramenta chamada Balsamiq
Mockups (ver Figura 21). Que de acordo com o site oficial8, É um software pago, com
versão de teste por sete dias, desenvolvido com a tecnologia Adobe AIR. Possui
compatibilidade com as plataformas Windows, Linux e Mac, e está disponível também
em versão online. Esse software é uma ferramenta de concepção de interfaces do
usuário do tipo wireframes (também conhecidos por moldes ou protótipos de baixa
qualidade), utilizados no estágio inicial do desenvolvimento de produtos, aplicativos,
páginas, etc. visando facilitar a comunicação e maior compreensão do projeto, em todas
as áreas envolvidas.
8
https://balsamiq.com/products/mockups/
48
Figura 21 - Interface do Balsamiq Mockups. Fonte: site oficial do software
49
2. Compatibilidade entre sistema e mundo real: O sistema deve usar uma
linguagem compreensiva e familiar ao usuário.
3. Controle do usuário e liberdade: O dispor ao usuário uma saída rápida
para possíveis erros inesperados. Como, por exemplo: Um botão voltar.
4. Consistência e padrões: Usar as mesmas palavras para situações ou ações
iguais no sistema.
5. Prevenção de erros: Prevenir situações passíveis de erros. Tais como:
Campo para confirmação de senha, máscara data, CPF, etc.
6. Reconhecimento ao invés de lembrança: As ações ou instruções para uso
do sistema devem estar visíveis ou facilmente acessadas.
7. Flexibilidade e eficiência de uso: Dar melhores alternativas de uso do
sistema, tanto para usuários iniciantes como para usuários experientes.
8. Estética e Design minimalista: Manter a simplicidade, sem poluição visual
e sem informações irrelevantes.
9. Ajudar os usuários a reconhecer, diagnosticar e recuperar-se de erros:
Indicar com precisão, usando linguagem simples e sem códigos, o problema
e sugerir uma solução construtiva.
10. Ajuda e documentação: Fornecer documentação de forma objetiva ao
usuário, de maneira fácil de pesquisar e focada nas tarefas do usuário.
50
Figura 22 - Tela de login do módulo gerencial
Após efetuar o login, o usuário é direcionado para a tela inicial do módulo, que
exibe uma mensagem de boas vindas ao usuário e o permite acessar diversas
funcionalidades através do menu, conforme apresentado na Figura 23. Sendo que
apenas o usuário do tipo Administrador tem acesso as funcionalidades contidas na aba
Admin do menu.
51
A tela de gerenciamento de linhas, apresentado na Figura 24, possui uma lista de
todas as linhas cadastradas no sistema, sendo exibidas apenas as linhas correspondentes
à empresa a qual o usuário logado está vinculado, com as opções de editar e apagar cada
registro. Essa tela possui também a opção de inserir uma nova linha, bastando o usuário
informar os dados solicitados na seção Cadastrar Linha e clicar no botão SALVAR.
Sendo que as validações dos campos solicitados seguem as regras impostas no caso de
uso Gerenciar Linhas.
É importante ressaltar que nesta tela e nas demais telas que possuem o campo
denominado ativo, o sistema faz o tratamento destes campos para exibir sim ou não em
vez de 0 ou 1 para falso ou verdadeiro, como é salvo no banco de dados, conforme visto
anteriormente na Figura 20 na sessão 2.7.
A tela gerenciamento de horários (ver Figura 25), que trata dos horários de
viagem das linhas, conforme descrito no caso de uso Gerenciar Horário, pode ser feita
nesta tela de duas maneiras: inserindo um horário por vez à lista de horários, ao dia da
semana que estiver selecionado no momento ou inserir vários horários por vez,
informando um horário inicial e o final, o intervalo entre os horários de viagem e
52
selecionar um ou vários dias da semana e concluir o processo, clicando no botão
INSERIR HORÁRIOS. Para excluir um horário é necessário apenas selecionar um
horário na lista de horários da linha selecionada e clicar no botão excluir.
53
usuário marca o checkbox “EXIBIR ROTA NO MAPA” no canto inferior esquerdo da
tela.
54
Figura 27 - Tela de relatórios de viagens do módulo gerencial
55
Figura 28 - Tela de gerenciamento de perfil de usuário do módulo gerencial
56
Figura 29 - Tela de gerenciamento de usuários do módulo gerencial
57
Figura 30 - Tela de gerenciamento de empresas do módulo gerencial
58
Figura 31 - Tela de gerenciamento de paradas do módulo gerencial
A Figura 32 exibe uma janela modal de cadastro de parada, que é exibido após o
usuário realizar um duplo-clique em um ponto do mapa, para solicitar a adição de uma
nova parada. Após inserir os dados solicitados e clicar no ícone de disquete, que
simboliza a opção salvar, a parada é inserida no mapa. A lista de POI que aparece no ato
do cadastro da parada, já está previamente armazenada na tabela POI do banco de dados
e são exibidos apenas os registros que estão no mesmo bairro ao qual a parada pertence.
59
4.1.2 Protótipos do Módulo do Ônibus
60
Figura 34 - Tela inicial do aplicativo do módulo do ônibus
61
Figura 35 - Tela monitorar viagem do módulo do ônibus
Ao clicar no botão "Finalizar Viagem" o usuário será redirecionado para outra tela,
como mostra a Figura 36, onde deve informar como terminou a viagem. Ao clicar no
botão "teve problemas" o sistema só finaliza a viagem se o problema foi relatado, como
pede o caso de uso Finalizar Viagem apresentado anteriormente.
62
Figura 36 - Tela finalizar viagem do módulo do ônibus
63
Figura 37 - Tela de relatório diário do módulo do ônibus
64
Figura 38 - Tela inicial do aplicativo do módulo do usuário
65
Figura 39 - Tela de informações do aplicativo do módulo do usuário
66
Figura 40 - Tela de rotas do aplicativo do módulo do usuário
67
Figura 41 - Tela de Pesquisa do aplicativo do módulo do usuário
68
localizado na parte inferior da tela (ver Figura 42) com o texto “Comparar com outra
linha”, bastando apenas o usuário selecionar uma linha dessa lista.
Outro recurso importante na tela de resultado da pesquisa é a possibilidade de
selecionar uma parada e com base na parada selecionada, quando o usuário clica em um
ônibus, o sistema faz o cálculo do tempo estimado de chegada até esse ponto marcado,
sendo utilizado para o cálculo funções da API Google Maps, no modo transporte
público e levando em consideração a rota cadastrada para essa linha e se o ônibus
selecionado já passou ou não pela parada selecionada. Feito isso, o sistema exibe essas
informações em um modal, como apresentado na tela abaixo do título “Exibindo
Estatística” da Figura 42.
Caso o usuário tenha dúvidas de como usar os recursos desse módulo, basta
acessar a opção “Como usar” da tela inicial e visualizar o tutorial passo-a-passo de
como utilizar o sistema, apresentado na Figura 43 e descrito no caso de uso Obter ajuda.
69
Figura 43 - Tela como usar do aplicativo do módulo do usuário
70
5 CONCLUSÃO
71
de usuários dentro do ônibus em tempo real, fator que ajudaria o usuário a decidir
melhor qual ônibus pegar. Outras opções de melhorias muito importantes para o sistema
seria a adoção de recursos de acessibilidade, tais como: informar quais ônibus possuem
suportes a cadeirantes e adicionar reconhecimento de voz para pesquisar linhas e
adicionar alerta de aproximação do ônibus para pessoas com deficiência visual.
72
6 REFERÊNCIAS
CORDEIRO, Giliard. Aplicacoes Java para a Web Com JDF e JPA. Casa do Codigo,
2012.
73