(35 revisões intermediárias por 5 usuários não estão sendo mostradas)
Linha 3: Linha 3:
== Componentes ==
== Componentes ==
<br>
<br>
 
*
<br>
<br>
*Daniel Henrique Ribeiro Delfino  
*Daniel Henrique Ribeiro Delfino  
*Fernando Luis de Castro Junior
*Fernando Luiz de Castro Junior
*Matheus Sanches Ribeiro Silva
*Matheus Sanches Ribeiro Silva
*Victor Arantes Pinto
*Victor Arantes Pinto
Linha 56: Linha 55:


# Onde os dados serão inseridos? [[Complexas interfaces]]
# Onde os dados serão inseridos? [[Complexas interfaces]]
*Os dados serão inseridos em um smartphone
# Onde os dados serão externalizados, publicados?
# Onde os dados serão externalizados, publicados?
*Os dados serão externalizados em um smartphone
# Onde esta aplicação poderá ser usada?
# Onde esta aplicação poderá ser usada?
*Essa aplicação poderá ser usada em um smartphone
# Onde os dados serão armazenadas? [[Banco de Dados]]
# Onde os dados serão armazenadas? [[Banco de Dados]]
# Onde o software deverá ser hospedado? [[Cloud Computing]]
*O sistemas gerenciadore de bancos de dados a ser usado será o Oracle
<br>
# Onde o software deverá ser hospedado? [[Cloud Computing]]<br>
*O software será hospedado o sistema de cloud computing


== When ==
== When ==


# Em quanto tempo pretende desenvolver o sistema?
# Em quanto tempo pretende desenvolver o sistema?
Este sistema  tem previsão de desenvolvimento para 4 meses. Um tempo maior que esse inviabiliza sua implementação porque existem soluções sendo desenvolvidas e espera-se que até no máximo 6 meses se possa colocar este projeto em funcionamento.
# Quais serão as fases e em quanto tempo cada uma?
# Quais serão as fases e em quanto tempo cada uma?
** (2 semanas) Análise Econômica
** (2 semanas) Análise de requisitos de software
** (2 semanas) Especificação
** (2 semanas) Arquitetura de Software
** (4 semanas) Implementação (ou codificação)
** (1 semana ) Teste
** (1 semana ) Documentação
** (1 semana ) Suporte e Treinamento de Software
** (1 semana ) Manutenção
<br>
<br>


Linha 71: Linha 84:


# Como será dividido o desenvolvimento do sistema?
# Como será dividido o desenvolvimento do sistema?
# Como será feita a entrada de dados?
# Como será feita a entrada de dados?
Os dados terão entrada em um campo no aplicativo,onde o usuário ira informar seu destino.
# Como será feita a saída de dados?
# Como será feita a saída de dados?
O aparelho ira informar ao usuário por meio do aplicativo a estação de ônibus mais próxima,a rota a ser feita,e o tempo estimado. 
# Descreva a 1a. funcionalidade?
# Descreva a 1a. funcionalidade?
O aplicativo possibilitara que o usuário localize a estação  de ônibus mais próxima a sua localização.
# Descreva a 2a. funcionalidade?
# Descreva a 2a. funcionalidade?
# ............
O usuário terá a informação da rota mais rápida,e a estimativa do tempo gasto para seu destino.
# Descreva a enésima funcionalidade?
<br>
<br>


Linha 82: Linha 98:


# Quanto deverá custar o sistema?
# Quanto deverá custar o sistema?
O custo total do sistema depende de vários fatores, dessa maneira, não sabe-se ao certo qual será aquele.
# Quantas pessoas deverão ser usadas?
# Quantas pessoas deverão ser usadas?
# Qual deverá ser o preço de aquisição do seu software para o usuário final?
# Qual deverá ser o preço de aquisição do seu software para o usuário final?
Sabe-se que o software terá a necessidade da aplicação de tecnologias atualizadas, dessa maneira, o mesmo pode ter ter um preço mais elevado, no entanto a intensão do projeto é que este tenha o menor preço possível.
<br>
== Diagrama de Fluxo de Dados ==
<br>
* [[Arquivo:dfd_esof.png]]
== Diagrama Entidade de Relacionamento ==
<br>
<br>
* [[Arquivo:der_esof.png]]
== Comentários ==
* Definir com mais clareza os objetivos do projeto. Por exemplo: "Criar um aplicativo para ''smartphone'' que permita, baseado nas informações enviadas pelo serviço de localização do mesmo, encontrar a estação de ônibus mais próxima do usuário."
O objetivo do nosso projeto é criar um aplicativo que receba do usuário apenas o destino desejado,e com isso o aplicativo por meio de suas funcionalidades ira:
1)localizar o usuário
2)informar a estação de ônibus mais próxima do usuário
3)Informar a rota mais rápida e a estimativa do seu tempo, isto é, verificar quais ônibus seriam mais conveniente para chegar com menos tempo ao destino desejado.
* Especificar com maior precisão quais os conhecimentos básicos necessários para a implementação do projeto. Por exemplo, "conhecimentos em programação" é um conceito muito amplo. Procure sobre banco de dados e teoria de grafos.
* Em que ponto o sistema pretendido é superior as soluções já existentes?
O sistema possibilitará ao usuário um maior conforto ao usufruir do transporte publico, pois será informado sobre todo o trajéto realizado, evitando aborrecimentos sobre possíveis rotas melhores, já que o aplicativo fornecerá a melhor opção. E isso tudo feito apenas utilizando um Smartphone com acesso a internet. Além disso, as soluções já existentes informa apenas o tempo estimado de chegada do ônibus.   
* Por que não é viável o sistema ser ''open source''?
Pensamos que um sistema open source poderia trazer danos,por se tratar de um sistema com informações pré estabelecidas que se modificadas de forma errada prejudicaria a credibilidade do aplicativo.
* Por que não utilizar uma API do google maps para diminuir o trabalho do projeto?
Uma API do google maps é essencial para diminuir o trabalho do projeto!
* Os dados serão inseridos no ''smartphone'' ou serão '''apenas''' exibidos no mesmo?
Inseridos:DESTINO e exibidos: ESTAÇÃO MAIS PRÓXIMA;ROTA MAIS RÀPIDA e ESTIMATIVA DE TEMPO DA ROTA
* Completar os subtópicos ''How'' e ''How much''.
<br>
== Diagrama de Classes ==
* [[Arquivo:EsofClass.png]]
<br>
== Diagrama de Caso de Uso ==
[[Arquivo:busroutecasodeuso.jpg]]
* Detalhamento
'''Identificação do Caso de Uso:''' UC1
'''Nome do Caso de Uso:''' Calcular Rota
'''Ator:''' Cliente
'''Pré-condições:''' Ter o aplicativo instalado
:: '''Seqüência de Eventos'''
{| class="wikitable"
|-
! '''Ação do Ator'''!!'''Resposta do Sistema'''
|-
| - || 1. Sistema mostra tela inicial
|-
| - || 2. Sistema solicita usuário e senha
|-
| 3. Cliente insere usuário e senha || 4. '''Include''' Validar usuário
|-
|  - || 5. '''Include''' Localizar usuário
|-
| - || 6. Sistema solicita o destino
|-
|7. Cliente insere o destino|| 8. '''Include''' Calcular Rota
|-
| - || 9. Sistema mostra a melhor rota
|-
| - || 10. Sistema mostra tela principal
|-
|}
<br>
'''As Inclusões'''
<br>
'''Identificação do Caso de Uso:''' UC2
'''Nome do Caso de Uso:''' Validar usuário
'''Ator:''' Banco de Dados
'''Pré-condições:'''
'''Pós-condições:'''
'''Seqüência de Eventos'''
:: '''Seqüência de Eventos'''
{| class="wikitable"
|-
! '''Ação do Ator'''!!'''Resposta do Sistema'''
|-
| - || 1. Sistema recebe dados sobre a usuário e senha
|-
| - || 2. Conecta com o Banco de Dados do sistema operacional do smartphone
|-
| 3. Banco de Dados compara conta com registros || -
|-
| 4. BD envia resposta Ok para sistema || 5. Sistema autoriza login
|}
'''Identificação do Caso de Uso:''' UC3
'''Nome do Caso de Uso:''' Localização
'''Ator:''' Google API
'''Pré-condições:'''
'''Pós-condições:'''
:: '''Seqüência de Eventos'''
{| class="wikitable"
|-
! '''Ação do Ator'''!!'''Resposta do Sistema'''
|-
| - || 1. Sistema solicita a localização do usuário
|-
| 2. Google API localiza o usuário ||
|-
| 3. Google API informa a localização || Sistema recebe localização
|}
'''Identificação do Caso de Uso:''' UC4
'''Nome do Caso de Uso:''' Melhor Rota
'''Ator:''' Google API
'''Pré-condições:'''
'''Pós-condições:'''
:: '''Seqüência de Eventos'''
{| class="wikitable"
|-
! '''Ação do Ator'''!!'''Resposta do Sistema'''
|-
| - || 1. '''Include''' Sistema pega a localização do usuário
|-
| 2. Google API traça os possíveis caminhos ao destino inserido  || 3. Sistema processa as rotas juntamente com as de ônibus
|-
|  ||4. Sistema calcula a melhor rota possível para aquele usuário
|}

Edição atual tal como às 18h30min de 7 de fevereiro de 2014

  • Nome do Projeto:

Componentes



  • Daniel Henrique Ribeiro Delfino
  • Fernando Luiz de Castro Junior
  • Matheus Sanches Ribeiro Silva
  • Victor Arantes Pinto

What


  1. Qual o objetivo deste projeto?

Criar um aplicativo para smartphone, que permita o smartphone saber a localização do usuário e apontar a estação de ônibus mais próxima, o caminho mais rápido até o destino desejado, calcular o tempo estimado para o ônibus chegar até a estação e calcular o tempo da trajetória completa até o caminho desejado.

  1. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?

Conseguir agregar ao aplicativo as varias funções desejadas com êxito.

  1. Quais os conhecimentos básicos que devemos ter para se implementar este projeto?

Conhecimento sobre Android e IOS,prgramação,rotas de ônibus,trânsito.

  1. Quais soluções similares existem no mercado (Benchmarking)?
  • Waytaxi
  • Google maps



Why

  1. Porque é interessante desenvolver este projeto?

Pois o numero de pessoas que utilizam o transporte coletivo é expressivo,e não existe uma maneira simples e acessível que permita que o usuário tenha acesso as informações pretendidas pelo projeto.

  1. Porque deve usar a tecnologia escolhida?

Pois permitira o acesso de todos que tenham um Smartphone,que é uma tecnologia muito difundida hoje em dia.

Who

  1. Quem pode se beneficiar deste projeto?

Todos aqueles que utilizam o transporte público e possuem um Smartphone.

  1. Quem poderá operar o sistema?

Os idealizadores e os desenvolvedores,pois não é viável um sistema open source.

  1. Quem deverá participar do desenvolvimento do sistema?
  • Programadores
  • Engenheiros de Trânsito
  • Controladores de Rotas


Where

  1. Onde os dados serão inseridos? Complexas interfaces
  • Os dados serão inseridos em um smartphone
  1. Onde os dados serão externalizados, publicados?
  • Os dados serão externalizados em um smartphone
  1. Onde esta aplicação poderá ser usada?
  • Essa aplicação poderá ser usada em um smartphone
  1. Onde os dados serão armazenadas? Banco de Dados
  • O sistemas gerenciadore de bancos de dados a ser usado será o Oracle
  1. Onde o software deverá ser hospedado? Cloud Computing
  • O software será hospedado o sistema de cloud computing

When

  1. Em quanto tempo pretende desenvolver o sistema?

Este sistema tem previsão de desenvolvimento para 4 meses. Um tempo maior que esse inviabiliza sua implementação porque existem soluções sendo desenvolvidas e espera-se que até no máximo 6 meses se possa colocar este projeto em funcionamento.

  1. Quais serão as fases e em quanto tempo cada uma?
    • (2 semanas) Análise Econômica
    • (2 semanas) Análise de requisitos de software
    • (2 semanas) Especificação
    • (2 semanas) Arquitetura de Software
    • (4 semanas) Implementação (ou codificação)
    • (1 semana ) Teste
    • (1 semana ) Documentação
    • (1 semana ) Suporte e Treinamento de Software
    • (1 semana ) Manutenção


How

  1. Como será dividido o desenvolvimento do sistema?
  1. Como será feita a entrada de dados?

Os dados terão entrada em um campo no aplicativo,onde o usuário ira informar seu destino.

  1. Como será feita a saída de dados?

O aparelho ira informar ao usuário por meio do aplicativo a estação de ônibus mais próxima,a rota a ser feita,e o tempo estimado.

  1. Descreva a 1a. funcionalidade?

O aplicativo possibilitara que o usuário localize a estação de ônibus mais próxima a sua localização.

  1. Descreva a 2a. funcionalidade?

O usuário terá a informação da rota mais rápida,e a estimativa do tempo gasto para seu destino.

How much

  1. Quanto deverá custar o sistema?

O custo total do sistema depende de vários fatores, dessa maneira, não sabe-se ao certo qual será aquele.

  1. Quantas pessoas deverão ser usadas?
  2. Qual deverá ser o preço de aquisição do seu software para o usuário final?

Sabe-se que o software terá a necessidade da aplicação de tecnologias atualizadas, dessa maneira, o mesmo pode ter ter um preço mais elevado, no entanto a intensão do projeto é que este tenha o menor preço possível.

Diagrama de Fluxo de Dados


Diagrama Entidade de Relacionamento


Comentários

  • Definir com mais clareza os objetivos do projeto. Por exemplo: "Criar um aplicativo para smartphone que permita, baseado nas informações enviadas pelo serviço de localização do mesmo, encontrar a estação de ônibus mais próxima do usuário."

O objetivo do nosso projeto é criar um aplicativo que receba do usuário apenas o destino desejado,e com isso o aplicativo por meio de suas funcionalidades ira: 1)localizar o usuário 2)informar a estação de ônibus mais próxima do usuário 3)Informar a rota mais rápida e a estimativa do seu tempo, isto é, verificar quais ônibus seriam mais conveniente para chegar com menos tempo ao destino desejado.

  • Especificar com maior precisão quais os conhecimentos básicos necessários para a implementação do projeto. Por exemplo, "conhecimentos em programação" é um conceito muito amplo. Procure sobre banco de dados e teoria de grafos.
  • Em que ponto o sistema pretendido é superior as soluções já existentes?

O sistema possibilitará ao usuário um maior conforto ao usufruir do transporte publico, pois será informado sobre todo o trajéto realizado, evitando aborrecimentos sobre possíveis rotas melhores, já que o aplicativo fornecerá a melhor opção. E isso tudo feito apenas utilizando um Smartphone com acesso a internet. Além disso, as soluções já existentes informa apenas o tempo estimado de chegada do ônibus.

  • Por que não é viável o sistema ser open source?

Pensamos que um sistema open source poderia trazer danos,por se tratar de um sistema com informações pré estabelecidas que se modificadas de forma errada prejudicaria a credibilidade do aplicativo.

  • Por que não utilizar uma API do google maps para diminuir o trabalho do projeto?

Uma API do google maps é essencial para diminuir o trabalho do projeto!

  • Os dados serão inseridos no smartphone ou serão apenas exibidos no mesmo?

Inseridos:DESTINO e exibidos: ESTAÇÃO MAIS PRÓXIMA;ROTA MAIS RÀPIDA e ESTIMATIVA DE TEMPO DA ROTA


  • Completar os subtópicos How e How much.


Diagrama de Classes


Diagrama de Caso de Uso

  • Detalhamento
Identificação do Caso de Uso: UC1
Nome do Caso de Uso: Calcular Rota 
Ator: Cliente
Pré-condições: Ter o aplicativo instalado


Seqüência de Eventos
Ação do Ator Resposta do Sistema
- 1. Sistema mostra tela inicial
- 2. Sistema solicita usuário e senha
3. Cliente insere usuário e senha 4. Include Validar usuário
- 5. Include Localizar usuário
- 6. Sistema solicita o destino
7. Cliente insere o destino 8. Include Calcular Rota
- 9. Sistema mostra a melhor rota
- 10. Sistema mostra tela principal


As Inclusões


Identificação do Caso de Uso: UC2
Nome do Caso de Uso: Validar usuário
Ator: Banco de Dados
Pré-condições:
Pós-condições:
Seqüência de Eventos
Seqüência de Eventos
Ação do Ator Resposta do Sistema
- 1. Sistema recebe dados sobre a usuário e senha
- 2. Conecta com o Banco de Dados do sistema operacional do smartphone
3. Banco de Dados compara conta com registros -
4. BD envia resposta Ok para sistema 5. Sistema autoriza login
Identificação do Caso de Uso: UC3
Nome do Caso de Uso: Localização
Ator: Google API
Pré-condições:
Pós-condições:
Seqüência de Eventos
Ação do Ator Resposta do Sistema
- 1. Sistema solicita a localização do usuário
2. Google API localiza o usuário
3. Google API informa a localização Sistema recebe localização

Identificação do Caso de Uso: UC4

Nome do Caso de Uso: Melhor Rota
Ator: Google API
Pré-condições:
Pós-condições:
Seqüência de Eventos
Ação do Ator Resposta do Sistema
- 1. Include Sistema pega a localização do usuário
2. Google API traça os possíveis caminhos ao destino inserido 3. Sistema processa as rotas juntamente com as de ônibus
4. Sistema calcula a melhor rota possível para aquele usuário