Architecture Report » History » Version 16
« Previous -
Version 16/32
(diff) -
Next » -
Current version
Daniel Soares, 03/11/2012 18:16
Architecture Report¶
- Introduction
1.1 Glossario - Visão Geral da Tecnoligia
2.1 HTML5
2.2 CSS
2.3 PHP
2.4 JAVASCRIPT
2.5 JQUERY
2.6 ANDROID - Arquitetura Lógica
- Arquitetura Física
- Decisões Chave do Design
5.1 Autenticação e Autorização
5.2 Tratamento e Logging de Erros
5.3 Gestão de Transações
5.4 Segurança - Protótipo
- Demonstração
3. Arquitetura Lógica¶
O objetivo da arquitetura lógica é dividir o sistema em módulos lógicos através de pacotes de classes e as dependências existentes entre si. A sua representação é feita através de diagramas de UML (Figura 1) onde serão explicadas as relações de composição e dependência entre pacotes. A decomposição deste sistema será feita através da decomposição horizontal e vertical.
Ver página anterior: Visão Geral da Tecnologia | Ver página seguinte: Arquitetura Física
4. Arquitetura Física¶
Nesta secção é documentada a estrutura física do sistema do Travel, Inc. (máquinas, ligações, componentes de software instalados e dependências de componentes), através da utilização de um UML de deployment (Figura 2).
4.1 Máquina Cliente¶
Para poder usufruir da aplicação, o cliente deverá ter acesso à Internet, quer seja através do computador pessoal ou do dispositivo móvel com plataforma Android cuja versão seja 2.2 ou superior, com suporte para os padrões web usuais (HTML, CSS, Javascript, jQuery, etc…)
4.2 Máquina Servidor¶
O servidor http é a componente necessária de forma a possibilitar a comunicação entre a máquina cliente e a máquina servidor, permitindo a interação entre os dois módulos, servindo também como “intermediário” entre o cliente e a base de dados. A tecnologia para tal efeito será principalmente através da linguagem PHP.
O servidor da base de dados é onde será guardada toda a informação da aplicação correspondente a toda a Lógica de Negócio. A tecnologia utilizada para este processo será o MySQL.
4.3 Ficheiros Utilizados¶
4.3.1 Aplicação Web¶
index.php | Ficheiro responsável pela iniciação da página principal, onde é possível ao utilizador efetuar o registo e login |
register_action.php | Ficheiro responsável por efetuar a adição de um novo utilizador à base de dados da aplicação web, realizando assim o registo de um utilizador no sistema |
home.php | Ficheiro responsável pela iniciação e formatação da página inicial de um utilizador com sessão iniciada, a partir de onde é possível efetuar várias operações oferecidas pelo sistema (Aceder à página de perfil, pesquisar boleias, etc..) |
login_action.php | Ficheiro responsável por efetuar o login de um utilizador no sistema, criando uma sessão, verificando se este se encontra inserido na base de dados do sistema |
logout_action.php | Ficheiro responsável por terminar a sessão de um utilizador do sistema |
profile.php | Ficheiro responsável pela iniciação e formatação da página de perfil de cada utilizador, que contem as suas informações pessoais |
searchT.php | Ficheiro responsável pela pesquisa na base de dados do sistema do melhor percurso e meio de transporte, segundo as especificações inseridas pelo utilizador (Ex: De onde para onde e quando) |
insCarpool.php | Ficheiro responsável pela inserção de uma boleia, e todas as suas características, na base dados (Ex: De onde para onde, quando, locais de passagem e se o utilizador que está a oferecer o serviço é fumador ou não) |
style.css / slide.css | Ficheiros responsáveis pela formatação gráfica do código html inserido nos ficheiros |
connect_db.php | Ficheiros responsável por iniciar a base de dados do sistema |
jscript.js | Ficheiro responsável pela validação de formulários e interação do utilizador com a página web |
slide.js | Javascript para o slide que permite efetuar o login |
4.3.2 Aplicação Móvel¶
ActionItem.java | Ficheiro responsável pelos objetos que componhem as várias opções do menu |
Login.java | Ficheiro responsável por iniciar uma sessão de utilizador na aplicação, verificando se este se encontra inserido na base de dados da aplicação |
Mensagens.java | Ficheiro responsável pela listagem das mensagens trocadas entre utilizadores |
Register.java | Ficheiro responsável por efetuar a adição de um novo utilizador à base de dados da aplicação móvel, realizando assim o registo de um utilizador na aplicação |
Menu.java | Ficheiro responsável pela iniciação da página inicial de um utilizador com sessão iniciada, a partir de onde é possível efetuar várias operações oferecidas pela aplicação (Aceder à página de perfil, pesquisar boleias, etc..) |
Popupwindows.java | Ficheiro responsável pelas janelas de popup com as várias opções do menu |
Profile.java | Ficheiro responsável pela iniciação da página de perfil de cada utilizador, contendo os dados deste mesmo, onde é possível efetuar alterações das informações de cada utilizador |
QuickAction.java | Ficheiro responsável pelas animações das janelas de popup do menu |
Search.java | Ficheiro responsável pela pesquisa na base de dados da aplicação do melhor percurso e meio de transporte, segundo as especificações inseridas pelo utilizador(Ex: De onde para onde e quando) |
SearchPeople.java | Ficheiro responsável pela pesquisa de utilizadores que se encontram registados na aplicação, ou seja, inseridos na base desta mesma |
Ver página anterior: Arquitetura Lógica | Ver página seguinte: Decisões Chave do Design
5. Decisões Chave do Design¶
5.1 Autenticação e Autorização¶
O uso efetivo da aplicação necessita de que o utilizador se registe na base de dados. A gestão destes utilizadores pode ser controlada pelos administradores (por exemplo, se um utilizador se comportar desadequadamente, pode ser banido do sistema).
5.2 Tratamento e Logging de erros¶
Se for um do utilizador, após a existência desse erro, o utilizador será informado do erro cometido, e se for o caso, será apresentada uma forma de o corrigir.
Caso o erro for proveniente do sistema, será armazenado um log com os erros encontrados de forma a mantê-lo funcional através da rápida correção dos mesmos, garantindo assim a segurança e eficiência do sistema.
5.3 Gestão de Transações¶
Aquando de uma alteração na base de dados, existe a possibilidade de algum pormenor falhar e impossibilitar uma determinada ação na base de dados com total sucesso. Como forma de prevenir situações em que a base de dados fique inconsistente e não funcional, será sempre efetuado um backup do sistema de forma a ser possível realizar o rollback, ou seja, retornar ao último estado em que a base de dados funcionou com sucesso.
5.4 Segurança¶
Numa fase inicial, serão controlados os acessos, tendo em conta os privilégios do utilizador (se for administrador terá mais privilégios que um utilizador “normal”).
Para efeitos de segurança, de forma a criar um sistema robusto e fiável, as passwords dos utilizadores serão encriptadas. Se um utilizador se esquecer da password, terá a possibilidade de redefinir a palavra-passe após a recepção do link para o efeito no endereço e-mail fornecido.
Um administrador poderá banir outros utilizadores, e para prevenir que um utilizador banido volte a infringir as regras, o IP desse utilizador será bloqueado e impedido de regressar ao website.
Ver página anterior: Arquitetura Física | Ver página seguinte: Protótipo
6. Protótipo¶
Na realização do protótipo, foram concluídas a seguintes user stories de entre as referidas para a total realização do projecto:
UST001 | Como utilizador quero registar-me para poder utilizar todas as funcionalidades disponibilizadas pela aplicação (sendo assim identificado pelo sistema) |
UST004 | Como utilizador quero fazer login para poder usufruir, através da minha conta, dos serviços fornecidos pela aplicação |
UST005 | Como utilizador eu pretendo configurar a minha viagem |
UST005a | Como utilizador eu pretendo encontrar a maneira mais rápida de seguir o meu trajeto |
UST005b | Como utilizador eu pretendo encontrar a maneira mais barata de efectuar o meu trajeto |
UST005c | Como utilizador eu pretendo selecionar quais os transportes a utilizar |
UST005c | Como utilizador eu quero permitir que percursos que passem num raio dos locais de partida e destino do meu trajecto sejam incluídos na minha solução |
- Link para a página principal: http://paginas.fe.up.pt/~ei09089/LDSO/
- Aplicação para Android: Travel_Inc.apk
- Código fonte para o website: Código WebSite.7z
- Código fonte da aplicação android: Aplicação Protótipo.7z
Ver página anterior: Decisões Chave do Design | Ver página seguinte: Demonstração
7. Demonstração¶
Aplicação Web¶
Uma demonstração do protótipo da página do Travel,Inc, através de screenshots:
Página principal
¶
Página principal com login e registo
¶
Menu principal de um utilizador registado
¶
Aplicação Android¶
Uma demonstração do protótipo da aplicação e das funcionalidades já implementadas em Android pode ser encontrada em:
http://www.youtube.com/watch?feature=player_detailpage&v=BeTYloAfmAA
Ver página anterior: Protótipo | Ver página seguinte: Referências