• Nenhum resultado encontrado

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.

Documentos relacionados