Faculdade de Engenharia da Universidade do Porto
MIEIC - Laboratório de Gestão de Projectos
Relatório de
Arquitectura
mPCOL
João Pereira – [email protected]
Tiago Pereira – [email protected]
Manuel César – [email protected]
Sérgio Cleto – [email protected]
Filipe Mota – [email protected]
Carlos Frias – [email protected]
Relatório de Especificação de Requisitos - mPCOL
Porto - Março de 2013
Índice
Introdução ...................................................................................................... 3
Representação da Arquitetura ....................................................................... 4
Visão global ............................................................................................... 4
Navegação na aplicação ................................................................................ 6
Diagrama de Classes ..................................................................................... 7
Protocolos de Comunicação .......................................................................... 8
Descrição das Tecnologias Utilizadas ........................................................... 9
Conclusão .................................................................................................... 12
2
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Introdução
Com este relatório a equipa tem como finalidade apresentar e especificar a
versão final de toda a arquitetura da aplicação desenvolvida definindo, assim, todas as
camadas a ela inerentes.
Será apresentada uma visão global do sistema e do meio envolvente, bem como
uma visão detalhada dos diversos componentes de software que constituem o sistema, e
o porquê das escolhas efetuadas, quer ao nível das tecnologias a utilizar, quer ao nível
lógico da arquitetura.
A arquitetura e este relatório foram produzidos sempre tendo em vista a melhor
abordagem para atingir a resolução do desafio proposto.
Este relatório foi alterado ao longo do desenvolvimento, pelo que a informação
que se segue é considerada final após várias alterações ao produto.
3
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Representação da Arquitetura
Visão global
Imagem 1 - Visão genérica do sistema
A figura acima representa uma visão genérica do sistema implementado bem
como as várias entidades envolvidas.
4
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
O sistema baseia-se numa aplicação para Windows 8 que pretende estender as
funcionalidades já existentes, a nível de gestão, no portal do colaborador da empresa
CPC.iS.com base nas tecnologias enumeradas (HTML5, CSS3, Javascript e JSON).
Para utilizar estas funcionalidades, a aplicação acederá diretamente ao servidor
da empresa, através de Internet ou uma rede móvel, permitindo assim a execução de
ações de gestão, desde a definição de férias à justificação de faltas, entre outras várias
opções.
Para posterior consulta, os dados serão armazenados e encriptados no
dispositivo, para que não seja necessário um acesso direto ao servidor para os consultar.
5
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Navegação na aplicação
class Flow Chart
Login(UI1)
Home(UI2)
Marcação de
Férias(UI2)
Justificação de
Ausência(UI2)
Consulta de
Pedidos(UI2)
Imagem 2 – Diagrama de navegação
O diagrama anterior representa a navegação entre as interfaces (UI) da aplicação.
A interface da aplicação será simples, para assim tornar mais intuitiva a utilização da
aplicação. Haverá assim uma primeira interface, na qual o utilizador se poderá
autenticar. Quando o utilizador realizar a sua autenticação com sucesso, ser-lhe-á
apresentado nova interface, na qual poderá aceder às principais funcionalidades da
aplicação.
A segunda interface será uma interface que se desenvolve na horizontal,
característica das interfaces das aplicações para Windows 8.
6
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Diagrama de Classes
class Class Model
Notificação
-
idpedido: int
idnotif: int
estado: string
Login
-
username: string
password: string
idcolaborador: int
IDia
Pedidos
Colaborador
-
id: int
Nome: string
Password: string
foto: string
pedidos: List<Pedido>
saldo: int
-
DataInicio: string
DataFim: string
Estado: string
id: int
tipo: string
data: string
obs: string
dias: List<IDia>
-
dia: int
diasemana: string
mes: int
ano: int
tipo: string
Imagem 3 - Estrutura de dados a utilizar
De forma a armazenarmos toda a informação correspondente aos colaboradores
será criado a estrutura de dados apresentada. Os nomes das classes são alusivos ao tipo
de dados que elas irão armazenar.
7
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Protocolos de Comunicação
Para efetuar a comunicação entre os dispositivos front-end e os servidores, serão
desenvolvidos uma série de Webservices, na framework .NET a criar.
Apresentamos, então, uma lista dos Webservices que serão desenvolvidos,
acompanhados de um diagrama de sequência, de forma a melhor exemplificar o seu
funcionamento.
ID
Nome
Breve descrição
Utilizado em
Informação
entrada
Informação
resposta
8
WS01
efectuaLogin
Responsável pela comunicação de dados de login ao servidor
e receção do segredo e token
UI01
de Credenciais do colaborador (username e password)
de Em caso de uma autenticação bem sucedida, ID interno do
colaborador para uso nos restantes webservices.
Em caso de uma autenticação mal sucedida, mensagem de
erro.
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
ID
Nome
Breve descrição
Utilizado em
Informação
entrada
Informação
resposta
WS02
NovoPedido
Responsável pela obtenção dos dados de Pedidos ao servidor
UI02
de ID interno do Colaborador, String com o Pedido(JSON)
ID
Nome
Breve descrição
Utilizado em
Informação
entrada
Informação
resposta
WS03
UploadFile
Responsável por fazer upload de Ficheiros
UI02
de String filename e uma string fileContents
de ID do Pedido (em JSON)
de -
«
9
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Protocolos de encriptação de dados – PasswordVault e CryptoJS
De modo a agilizar e ao mesmo tempo assegurar a confidencialidade dos dados
dos utilizadores ao nível da aplicação foi utilizado a API PasswordVault. Esta permite o
armazenamento da informação de autenticação no gestor de credenciais do Windows8
utilizando a encriptação do mesmo. Com isto conseguimos também disponibilizar ao
utilizador uma sessão de login, permitindo a um colaborador autenticado aceder à
aplicação sem repetir o processo de login.
Tendo em conta que os dados de autenticação serão verificados num servidor
remoto, tornou-se importante e quase obrigatório a encriptação dos dados. Para o efeito
foi utilizado o cryptoJS que permite a aplicação de vários algoritmos de encriptação. O
escolhido foi o algoritmo de hash SHA-512. É em todo igual ao algoritmo SHA-256 mas
utiliza palavras de 64 bits ao contrário de 32, permitindo ainda uma melhoria de 50% de
desempenho na aplicação do algoritmo.
Formato de comunicação de dados
O formato para comunicação de dados a utilizar será JSON, quer por ser uma
opção fiável e segura quer pela forma simples de estruturar as respostas aos pedidos
enviados.
Embora baseado em Javascript, é completamente independente da linguagem de
programação usada, o que o torna ideal para o desenvolvimento de aplicações para
multi-plataformas.
Segurança no protocolo de comunicação
Ainda que não implementado as medidas de segurança na comunicação com o
servidor poderão ser feitas ao nível da camada de transporte. Idealmente, será usado
TLS 1.2 mas para a aplicação ser o mais compatível possível, SSL 3.0 é uma alternativa
viável.
Em relação a encriptação a ser usada, um algoritmo de hash SHA-256 garantirá a
segurança dos dados.
10
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Serviços de dados locais
Para garantir o acesso aos dados locais em caso de inexistência do acesso à
internet, é requisitado ao utilizador o login. Caso este exista no gestor de credenciais do
Windows8 o utilizador tem acesso à informação guardada pela aplicação a nível local
em modo de consulta. Com isto garantimos que só os colaboradores autenticados
anteriormente sob a proteção do gestor de credenciais, tem acesso aos seus dados.
Linguagens de desenvolvimento
Para o desenvolvimento da nossa aplicação será utilizado HTML5 combinado
com CSS3 e Javascript.
Esta combinação é das mais usadas, já que permite explorar ao máximo todas as
funcionalidades que uma aplicação para windows8 possa ter. Para além do mais,
HTML5 /Javascript tornam possível a expansão para outras plataformas o que faz deste
fator o mais importante para a escolha desta combinação.
HTML5 / Javascript são suportados por qualquer plataforma onde esta aplicação
poderá ser usada. Como tal, o grande objetivo de permitir que a aplicação seja
expansível a outras plataformas fica resolvido para além de facilitar a implementação
aos membros da equipa já bastante ambientados a estas linguagens.
11
Laboratório de Gestão de Projetos
Relatório de Especificação de Requisitos - mPCOL
Conclusão
Com o projecto concluído é possível tirar algumas conclusões e ideias para
projectos futuros. Sendo o desenvolvimento de uma aplicação para o Windows 8 algo
novo para o grupo, foi possível aprendermos algumas lições ao longo do projecto. A
principal destas é que apesar de o grupo ter optado por utilizar ferramentas que, à
partida, seriam multiplataforma acabou por encontrar várias funcionalidades muito úteis
em ferramentas específicas da Microsoft, o que fez com que a aplicação perde-se, em
grande parte, a possibilidade de ser facilmente implementada noutras plataformas, como
são exemplo o iOS e o Android.
12
Laboratório de Gestão de Projetos
Download

Relatório de Arquitectura