5W2H
What
- 1. Qual o nome do seu projeto?
- BusTime
- 2. Qual o objetivo deste projeto?
- O projeto busca uma solução baseada em Android aplicada ao rastreamento em tempo real de veículos do transporte público para que o usuário possa favoritar suas principais linhas, saiba a exata localização do ônibus que irá esperar, quanto tempo no máximo ele chegará até o usuário.
- 3. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?
- Bem possível será problemas relacionados ao contato direto com as empresas responsáveis pelo transporte público da cidade perante a prefeitura, outra dificuldade seria a questão da comunicação just in time com os ônibus sem perca de precisão pela velocidade da internet 3G de cada operadora.
- 4. Quais os conhecimentos básicos que devemos ter para se implementar este projeto?
- Programação para celulares, inicialmente projetado em android mas com o protótipo funcionando poderia-se disponibiliza-lo para outros SOs.
- 5. Quais soluções similares existem no mercado?
- Atualmente já existe pela prefeitura um aplicativo chamado GeoSIT, mas este não está funcionando mais e teve sua ultima atualização no final de 2013. Fora do âmbito de nossa cidade temos: Bus Tracker, OneBusAway, Busão Curitibano e um outro aplicativo similar mas para trens e metros de São Paulo.
Why
- 1. Porque é interessante desenvolver este projeto?
- O problema que será abordado consiste na dificuldade – por parte dos usuários – do acesso à informação concernente ao transporte público nas grandes cidades. Esse tipo de transporte representa um importantíssimo papel na vida de milhares de pessoas. São trabalhadores, estudantes e aposentados, entre outros cidadãos, que dependem desse tipo de transporte para desempenhar suas respectivas atividades. Sua massiva utilização pode acarretar em vantagens como a redução de custos, poluição – tanto sonora quanto atmosférica – e a otimização do uso das vias urbanas
- 2. Porque deve usar a tecnologia escolhida?
- Pois hoje em dia é quase unanime o uso do mobile e com certeza usa-lo para facilitar algo tão "simples" como horários, ou até mesmo rotas, que os usuários possuem à disposição, facilitaria e dinamizaria o transporte.
- 3. Porque usar o hardware específico?
- Pois é algo que temos um acesso mais fácil que outras plataformas. O celular hoje é a nossa segunda pele quase.
- 4. Porque usar o sistema específico?
- A proposta inicial em android veio mais tranquila devido a programação poder ser feita de forma livre sem encargos, ao contrario de iOS e windows phone que cobram para o programador fabricar uma aplicação.
Who
- 1. Quem pode se beneficiar deste projeto?
- Usuários do transporte publico em geral da cidade de Uberlândia.
- 2. Quem poderá operar o sistema?
- Os agentes autorizados no nível de manutenção e correção em atualizações do aplicativo nas lojas onde estará disponível. Já no nível mais simples os usuários em geral.
- 3. Quem deverá participar do desenvolvimento do sistema?
- Os desenvolvedores do aplicativo e os órgãos oficiais pelo transporte publico (no caso específico da cidade a SETRAN)
Where
- 1. Onde os dados serão inseridos?
- Quando o usuário instalar o aplicativo as informações virão através do uso da internet móvel quando este estiver procurando saber determinada linha onde se encontra o carro naquele momento, no caso os dados acabaram chegando automaticamente na screen do aplicativo. Nesse caso o banco de dados que será usado será dado por entidade externa responsável pelo transporte público.
- 2. Onde os dados serão externalizados, publicados?
- Na tela do dispositivo móvel do usuário.
- 3. Onde esta aplicação poderá ser usada?
- A qualquer momento quando o usuário precisar saber onde e quando a linha escolhida está através do uso de seu smartphone.
- 4. Onde os dados serão armazenadas?
- Dados sobre as linhas favoritas e rotas visualizadas (caso queira-se aperfeiçoar o aplicativo com o chamado histórico de busca) deverão usar a memória interna ou o cartão SD do dispositivo.
- 5. Onde o software deverá ser hospedado?
- Deverá estar disponível na Play Google.
When
- 1. Em quanto tempo pretende desenvolver o sistema?
- Com todas as funções offline e online funcionando, usaria-se por volta de 12 meses ou até 8 meses.
- 2. Quais serão as fases e em quanto tempo cada uma?
- Teremos pelo menos três fases para conclusão parcial do projeto, a primeira caberá a programação da interface de ambas opções de acesso pela qual desprenderia-se por volta da metade total do tempo estimado ou seja, de 6 a 4 meses. Na segunda fase, já realizada a negociação com a empresa de transporte sobre a disponibilização da geolocalização pelo banco de dados, implementaria-se este ao sistema na função online do aplicativo, realizada por volta de 4 a 2 meses. E uma terceira que seria fase de teste de 2 a 1 mês para corrigir erros iniciais de programação.
- 3. Qual o tempo de resposta do dispositivo ou do sistema?
- Teria que ser imediato.
- 4. Quanto tempo para responder a uma entrada?
- Depende-se do banco de dados e da qualidade do funcionamento da internet móvel utilizada, mas um padrão de no máximo de um minuto.
- 5. Quanto tempo para gerar a saída?
- Mesmo problema da questão de entrada.
How
- 1. Como será dividido o desenvolvimento do sistema?
- Fase de programação; criação e implementação dos dois ambientes, offline e online; e a parte de testes, com a ressalva de sempre buscar bugs e mal funcionamentos quando este aplicativo ainda estiver online nas lojas.
- 2. Como será feita a entrada de dados?
- Através do uso dos dados móveis. Para entrada de nomes na pesquisa teclado do dispositivo.
- 3. Como será feita a saída de dados?
- Na tela do dispositivo, usando dados móveis na versão online, e quando na versão offline uma tabela emitida pelo próprio aplicativo.
- 4. Descreva a 1a. funcionalidade?
- Será informar o usuário a localização de determinada linha em relação a ele.
- 5. Descreva a 2a. funcionalidade?
- Achar o ponto de ônibus mais próximo do usuário pela localização.
- 6. Descreva a 3a. funcionalidade?
- Favoritar rotas mais utilizadas, com histórico de busca.
- 7. Descreva a 4a. funcionalidade?
- Consulta de horários offline direto do aplicativo da rota desejada.
How much
- 1. Quanto custa cada parte do sistema?
- Parcialmente falando as ferramentas usadas para a criação do software acabam por ser livres, logo monetariamente não seria desprendido nenhum tipo de gasto.
- 2. Quanto deverá custar todo o sistema?
- A ideia parte do principio de fornecer gratuitamente o aplicativo nas lojas online com a Play Google.
- 3. Quantas pessoas deverão ser usadas (Equipe) ?
- Pode-se usar mais de um programador para que o aplicativo acaba ficando pronto mais rapidamente, porem é valido lembrar que uma só pessoa consiga programar em si. Lembramos aqui também a equipe de pessoas responsáveis para o contato com as empresas e órgãos oficiais do transporte publico.
- 4. Quanto custa cada profissional?
- Custará 20 reais a hora de trabalho na programação do aplicativo.
- 5. Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?
- Será gratuito e disponível na lojas de cada SO especifico.
Modelo Estruturado
DFD
- Processso
- Localizar Usuário: irá buscar no GPS informações (sua localização) sobre o usuário.
- CRUD Usuário: A autenticação e o cadastro do usuário é realizada através da conta do Google Play. Este foi criado para caso queira implementar propagandas ao aplicativo as informações sobre o usuário já estejam sendo extraídas de alguma lugar.
- Autenticar Usuário: O usuário é obrigado a se Autenticar para passar a ter acesso ao aplicativo, após a primeira autenticação o processo acontece automaticamente e a tela principal onde se busca as linhas desejadas será apresentada.
- Programar o aplicativo: Consisti em programar em uma plataforma para extensão .apk
- Realizar testes e manutenção: como está implícito, entende-se aqui o processo de conferir bugs e quando necessário providenciar uma atualização para corrigi-los.
- Visualizar tela inicial: quando primeiro acesso exibirá a tela de autenticação, já no segundo acesso a tela de busca da possível linha desejada com acesso direto as linhas favoritas.
- Adicionar Linha aos favoritos: é quando o usuário escolhe uma linha como favorita e quer marca-la pra facilitar sua visualização posterior.
- Buscar Linhas: buscar pelo nome da linha de ônibus que deseja, Ex: T131.
- Visualizar histórico de busca: caso a linha já foi buscada uma vez a busca sugere aquela linha buscada anteriormente sem impedir que o usuário insira uma outra enquanto escreve.
- Consultar localização do veiculo: busca no banco de dados da SETTRAN a localização do ônibus desejado.
- CRUD Linha: é responsável por todo processo de codificação das linhas existentes para que se possa consultar horários, mapas e rotas, empresa e tudo mais já descritos nos depósitos. Esse é uma garantia que o aplicativo funcione offline.
- Visualizar tipo da linha: é unicamente pra saber se o ônibus vai de terminal pra terminal (geralmente marcado com T antes), se vai de algum ponto final pro terminal (geralmente A antes) e etc.
- Visualizar Empresa: unicamente pra saber qual empresa é responsável pela linha.
- Visualizar terminal: praticamente é saber em qual terminal vai cada linha.
- Visualizar Mapas e Rotas: fica aqui mapas com as rotas e pontos onde poderá pegar o ônibus.
- Visualizar horários: como indica, é simplesmente visualizar os horários.
- Visualizar linha: quando ela for buscada aparecerá o nome da linha, tipo de linha, empresa, terminais na qual ela vai e horários, com um link para visualizar mapas.
- Depósitos
- Usuário: é onde as informações sobre o usuário ficará disponível.
- Cep: sobre logadouro do usuário.
- Bairro: guardará o bairro e nome da região da cidade onde esse se encontra, pra no caso do uso offline ele tenha mais rápido acesso das linhas que passam naquela região ou bairro.
- Histórico de Busca: é guardar as buscas já feitas no sistema.
- Tipo da Linha: guarda informações sobre o tipo da linha.
- Empresa: guarda informações sobre a empresa.
- Terminal: guarda informações sobre todos os tipos de terminais.
- Mapas e rotas: mantem mapas e rotas disponíveis pra acessar mesmo offline.
- Horários: guarda informações sobre horários de saída e chegada das linhas em seus pontos finais, dividido entre os dias da semanas, já que o funcionamento não é igual pra todos eles.
- Linhas: guarda todas as linhas disponíveis pra acesso.
- Fluxos
DER
- Entidades
- Cep: de onde se obtêm os endereços.
- Usuário: será aquele que terá acesso somente a parte de utilização por completo do sistema, podendo buscar linhas, adicionar aquelas que desejar ao favorito, etc.
- Bairro: separamos aqui mais por causa da chamada região, já que o transporte publico leva em conta os setores pelos quais a cidade é dividida.
- Empresa: são as várias empresas que estão responsáveis pelo transporte publico.
- SETTRAN: é uma entidade externa que possui as informações em seu banco de dados sobre cada linha e sua geolocalização em just in time.
- Tipo: comporta qual tipo de linha é tipo interbairros, interterminais, etc.
- Numero da Linha: qual código fora atribuído pra aquela linha.
- Linhas: são os vários requisitos para nomear aquela determinada linha.
- Horários: foi utilizado pra separar os horários de cada linha em seus respectivos atributos.
- Mapas: pra criar uma codificação e facilitar o acesso a cada mapa de linha.
- Terminal: especificar cada terminal e suas linhas.
- Relacionamentos
- Domínios
DD
Tela inicial:
Tela de buscar:
- Descritivos de cada item
- Significado
-- A tela inicial mostra a parte de autenticação necessária somente dá primeira vez, os outros acessos já mostraria a segunda tela de busca de linhas, mostrada na figura de Tela de buscar. As outras duas telas estariam mostrando a parte de mapas e rotas dos ônibus e os horários, q possivelmente poderiam ser acessadas offline caso necessário. Outras telas seriam e se fazem necessárias essas são mesmo só pra se ter uma ideia de como seria o começo do aplicativo pra que possa-se ter uma visão geral do mesmo. A versão mostrando a parte online do sistema acaba sendo complicada de mostrar, porém é possível assim como as mostradas.
- Conteúdo (Dados compostos)
-- Nas telas de mapas e horários o conteúdo mostrado seria exatamente algo pronto sem depender tanto da internet.
- Restrições de integridade
- Chave primária (Depósitos de Dados)
Modelo OO
Diagrama de Classes
Diagrama de Estado
Diagrama de Casos de Uso
Arquivo:Detalhamento BusTime.pdf
Diagrama de Sequência
Diagrama de Objetos
Diagrama de Colaboração
Diagrama de Interfaces
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Pacotes
Protótipo
- Objetivo
O objetivo primário deste protótipo é surgir com a ideia palpável do que fora proposto inicialmente com o projeto. Assim sendo buscamos fortemente atingir os parâmetros da ideia a priori de um aplicativo que consiga disponibilizar ao usuário de smartphones da cidade de Uberlândia o acesso as linhas e seus respectivos requisitos tais como: quadro de horários (com pontos finais e terminais), tipos de linha (interbairro, interterminais, etc...), mapas contendo rotas e pontos de ônibus. Havia também um desejo pela implementação do uso do GPS do celular, onde este seria usado para conseguir distinguir distancias entre o usuário e o veículo da frota que deseja-se saber a localização exata.
- Recursos utilizados
Eclipse IDE for Java EE Developers - Kepler versão 4.3 / SQL Lite / Pencil 2.0.5 / Justinmind Prototyper
- Funcionamento
O funcionamento foi exemplificado nos dois vídeos anexados ao email enviados na quinta-feira (19/02/2015).
- Detalhamento (Imagens, vídeos, ...)
Os vídeos contendo detalhamentos do funcionamento do aplicativo foram mandados ao senhor por email, caso não os tenha recebido, nos avise.
- Resultados obtidos
O que fora concluído até agora é só uma ideia geral do que o aplicativo pode ter, fizemos uma programação parcial, o código estará disponível abaixo em pdf, do que pode ser melhorado. Devido a falta do funcionamento idealizado inicialmente, optamos por realizar uma participação em um programa que daria a visão ampla e geral de telas e seu funcionamento perfeito, cujo infelizmente não fora atingido por completo na parte de codificação do projeto. Segue em anexo o código parcial do protótipo, como dito anteriormente, sem o funcionamento da opção de geolocalização; as visões de classes tanto de ajuda do aplicativo quanto a de favoritos também deverão ser melhoradas e melhor ambientadas.
Arquivo:CodigoParcialBusTime.pdf
Pesquisador








