O conceito de classe ´e designado por ser uma descri¸c˜ao de um objecto, podendo este ser uma entidade do mundo real ou uma abstra¸c˜ao. Deste modo, se pudermos definir todas as especifica¸c˜oes de um sistema num esquema de rela¸c˜oes entre classes, tendo
Figura 4.4 – Modelo Complementar dos dados presente na View.
estes procedimentos particulares, ´e poss´ıvel descrever a estrutura e o comportamento deste sistema. Sendo esta a defini¸c˜ao da utilidade de um Diagrama de Classes, relacionar todas as classes do sistema que ir˜ao servir para a sua concretiza¸c˜ao, ou seja, para o modelo de objectos.
O diagrama da aplica¸c˜ao est´a dividido em trˆes partes para melhor interpreta¸c˜ao, destas podemos denomin´a-las em:
1. Diagrama proveniente do modelo de base de dados, Figura 4.5 - herda todas as rela¸c˜oes enunciadas na subsec¸c˜ao 4.3;
Tabela 4.1 – Caracter´ısticas dos elementos.
Tipo de elemento Representa¸c˜ao Contexto /
Explica¸c˜ao Caracter´ısticas
Linha gen´erica - Parede externa ou
interna
porta, ´area da porta e layer
Linha tipo 1 Parede interna
Distinguida por fazer parte de uma rela¸c˜ao e n˜ao ser fachada
junta el´astica e material
Linha tipo 2 Parede externa
Nunca pode fazer parte de uma rela¸c˜ao e ´e sempre fachada
material da fachada (podem ser dois : cortina envidra¸cada e material), altura da cortina envidra¸cada, forma da fachada, layer, janela e ´area da janela
Ponto Ponto interno
Faz parte de uma rela¸c˜ao, ou seja, ´e uma parte elementar de uma parede interna
junta el´astica
Pol´ıgono 1 Ch˜ao - material e layer
Pol´ıgono 2 Tecto - material e layer2
s˜ao herdadas de igual forma, com algumas modifica¸c˜oes que ser˜ao explicadas a seguir.
3. Diagrama do sistema de dados, com base no que ´e interpretado na norma EN 12354:2000, Figura 4.7 - descreve o sistema de transmiss˜ao com todas as possibilidades de caminhos marginais de grau 1.
O primeiro diagrama ´e uma heran¸ca de todas as rela¸c˜oes procedente do modelo da base de dados. Toda a interpreta¸c˜ao acerca deste, pode ser assumida de igual forma ao modelo proveniente.
Figura 4.5 – Diagrama Classes parte 1, proveniente da DB.
Quanto ao segundo diagrama, este herda todas as funcionalidades do Modelo Complementar com excep¸c˜ao a lista de grafos visto n˜ao ter qualquer utilidade prevista no que toca
ao Model, apenas na View.
Como anteriormente referido na subsec¸c˜ao4.5a entidade LinesData ´e uma generaliza¸c˜ao, onde as suas filhas s˜ao declaradas como LinesDataWall e LinesDataFcd. No que diz respeito a LinesDataWall esta representa a descri¸c˜ao de todas os comportamentos associados a uma parede interna. De igual forma, a LinesDataFcd ´e uma abstra¸c˜ao que caracteriza uma parede localizada na fachada.
ch˜ao e tecto) estes tˆem uma rela¸c˜ao com os materiais do modelo de base de dados, ou seja, um elemento real tem uma performance associada e uma caracteriza¸c˜ao que s˜ao representadas pela entidade Material que por sua vez ´e associada a estes elementos atrav´es dos seus atributos (roof, slab, wall, mat1 e mat2).
Figura 4.6 – Diagrama Classes parte 2.
Por ´ultimo, o terceiro diagrama tem como objectivo representar o sistema exposto na norma EN 12354:2000, onde todas as suas classes podem ser descritas como:
1. Element - um elemento pode ser interno ou externo, e cont´em sempre o dados que lhe s˜ao relativos. Estes s˜ao provenientes de uma rela¸c˜ao variante que pode ser com LinesData ou PolygonData.
(a) InternalHorizontal - elemento separador horizontal, ou seja, este contˆem PolygonData;
(b) InternalVertical - elemento separador vertical, ou seja, este contˆem LinesDataWall. 3. External
(a) ExternalVertical - elemento vertical e marginal do sistema em quest˜ao, ou seja, este pode conter um LinesDataWall ou LinesDataFcd.
(b) ExternalHorizontal - elemento horizontal e marginal do sistema em quest˜ao, ou seja, este s´o pode conter PolygonData.
4. Flank - esta entidade contˆem as duplas de elementos marginais do sistema em quest˜ao. Ver Figura4.7.
5. DataSystem - esta classe engloba todos os dados do sistema a calcular. Tem sempre presente a lista de duplas de elemento marginais e um elemento separador, bem como atributos de mapeamento para que a View saiba reconhecer o sistema.
5
SIS
Neste cap´ıtulo ser˜ao introduzidas todas as funcionalidades que permitem o funcionamento da interface do utilizador (View ), bem como todos os procedimentos que atuam em background, tamb´em chamados de back-office ou back-end ; que fazem parte do Model e Controller do modelo MVC.
Primeiramente, ser´a feita uma vis˜ao geral das tecnologias mais relevantes utilizadas nesta aplica¸c˜ao e, posteriormente, ser˜ao explicados os processos referentes `a autentica¸c˜ao de um utilizador ao servidor bem como a utiliza¸c˜ao dos servi¸cos disponibilizados ap´os a autentica¸c˜ao. Finalmente, ser˜ao apresentadas todas as interfaces que um utilizador autenticado poder´a aceder para usufruir dos servi¸cos facultados, sec¸c˜ao 5.2.
5.1
Tecnologias e Ferramentas Utilizadas
A pesquisa realizada no Cap´ıtulo 3 permitiu determinar as tecnologias e protocolos que melhor se adequam ao desenvolvimento do back end, sendo que as utilizadas na implementa¸c˜ao deste projeto foram:
Java EE
O Java EE ´e uma plataforma que disponibiliza um conjunto de tecnologias e bibliotecas para o desenvolvimento de aplica¸c˜oes web de larga escala, escal´aveis, confi´aveis e seguras. Como j´a referido, o Java ´e classificado como uma plataforma independente, robusto e seguro, com suporte para mecanismos de seguran¸ca, autentica¸c˜ao, autoriza¸c˜ao e transa¸c˜oes.
Maven
Para a implementa¸c˜ao do back end foi gerado um projeto do tipo Maven, que se caracteriza como uma ferramenta Java utilizada para a constru¸c˜ao/gest˜ao de projetos baseado no conceito de Project Object Model (POM). O POM ´e um ficheiro XML, designado por pom.xml, onde s˜ao armazenadas as informa¸c˜oes do projeto e as v´arias configura¸c˜oes usadas pelo Maven na sua constru¸c˜ao. Esta ferramenta tamb´em possibilita realizar a gest˜ao de dependˆencias externas do projeto, uma vez que estas podem ser descarregadas diretamente de um ou mais reposit´orios Maven e posteriormente armazenadas na cache local.
JAX-RS/Jersey
Jersey ´e uma framework open source que implementa a especifica¸c˜ao JAX-RS para o desenvolvimento de RESTful web services em Java. Para al´em de implementar a referˆencia JAX-RS, o Jersey disponibiliza a sua pr´opria API, permitindo desta forma, que o programador possa usufruir de recursos adicionais no desenvolvimento de aplica¸c˜oes web classificadas como leves, escal´aveis e de f´acil manuten¸c˜ao.
MySQL e phpMyAdmin
A base de dados utilizada neste projeto foi o MySQL, caracterizado como um gestor de base dados relacional (RDBMS) open source. Este gestor ´e utilizado por diversas
entidades, tais como NASA, Facebook, Netflix, Tesla etc, apresentando diversas vantagens na sua utiliza¸c˜ao, tais como:
• Partitioning: permite melhorar o desempenho e gest˜ao de bases de dados em larga escala;
• ACID Transactions: permite garantir a consistˆencia dos dados de uma aplica¸c˜ao; • Stored Procedures: permite automatizar processos complexos, nomeadamente
o controlo de transa¸c˜oes;
• Views: permite criar tabelas virtuais onde s˜ao definidos os dados que dever˜ao ser apresentados na sua solicita¸c˜ao, assegurando a confidencialidade de informa¸c˜oes “sens´ıveis” da aplica¸c˜ao.
De modo a realizar-se uma melhor administra¸c˜ao da base de dados foi utilizado o phpMyAdmin com a interface gr´afica representada na Figura 5.1, sendo que a experiˆencia adquirida nestas ferramentas (MySQL e phpMyAdmin) ao longo do curso foi um fator determinante na sua escolha.
Figura 5.1 – Interface phpMyAdmin.
JSON
A arquitetura REST suporta uma ampla gama de formatos de representa¸c˜ao, sendo que o utilizado neste projeto foi o JSON. Como j´a referido anteriormente, o JSON utiliza uma sintaxe simples na estrutura¸c˜ao e formata¸c˜ao dos dados, permitindo
que as mensagens trocadas entre utilizadores e servidor possuam menor overhead quando comparado com outros formatos de representa¸c˜ao, por exemplo o XML. Tendo em conta estes fatores, podemos concluir que o JSON ´e um formato de dados compacto, f´acil de ler/escrever, apresentando vantagens na comunica¸c˜ao com m´ultiplas plataformas, nomeadamente, aplica¸c˜oes m´oveis.