• Nenhum resultado encontrado

On-line prognosis of sound Insulation laid out in EN-12354

N/A
N/A
Protected

Academic year: 2021

Share "On-line prognosis of sound Insulation laid out in EN-12354"

Copied!
165
0
0

Texto

(1)

Por

Jean Tharles Patrique Paiva

Orientador: Salviano Filipe Silva Pinto Soares

Co-orientador: Jorge Tiago Queir´os da Silva Pinto

Disserta¸c˜ao submetida `a

UNIVERSIDADE DE TR ´AS-OS-MONTES E ALTO DOURO para obten¸c˜ao do grau de

MESTRE

em Engenharia Electrot´ecnica e de Computadores, de acordo com o disposto no DR – I s´erie– No

151, Decreto-Lei n.o

115/2013 de 7 de Agosto e no Regulamento de Estudos Conducente ao Grau de Mestre da UTAD

DR, 2.a

s´erie – No

(2)
(3)

Por

Jean Tharles Patrique Paiva

Orientador: Salviano Filipe Silva Pinto Soares

Co-orientador: Jorge Tiago Queir´os da Silva Pinto

Disserta¸c˜ao submetida `a

UNIVERSIDADE DE TR ´AS-OS-MONTES E ALTO DOURO para obten¸c˜ao do grau de

MESTRE

em Engenharia Electrot´ecnica e de Computadores, de acordo com o disposto no DR – I s´erie– No151, Decreto-Lei n.o 115/2013 de 7 de Agosto e no

Regulamento de Estudos Conducente ao Grau de Mestre da UTAD DR, 2.a

s´erie – No

(4)
(5)

Salviano Filipe Silva Pinto Soares

Professor Auxiliar do Departamento de Engenharias

Universidade de Tr´as-os-Montes e Alto Douro

Jorge Tiago Queir´os da Silva Pinto

Professor Auxiliar do

Departamento de Engenharia Electrot´ecnica Universidade de Tr´as-os-Montes e Alto Douro

Acompanhamento do trabalho :

Lu´ıs Novo Pereira

MSc Engenharia Civil do Departamento de Civil

(6)
(7)

Os membros do J´uri recomendam `a Universidade de Tr´as-os-Montes e Alto Douro a aceita¸c˜ao da disserta¸c˜ao intitulada “On-line Prognosis of sound Insulation laid out in EN-12354” realizada por Jean Tharles Patrique Paiva para satisfa¸c˜ao parcial dos requisitos do grau de Mestre.

Mar¸co 2019

Presidente: Jo˜ao Agostinho Batista de Lacerda Pav˜ao,

Professor Auxiliar da Escola de Ciˆencias e Tecnologia da Universidade de Tr´as-os-Montes e Alto Douro

Vogais do J´uri: Filipe dos Santos Neves,

Professor Adjunto da Escola Superior de Tecnologia e Gest˜ao do Instituto Polit´ecnico de Leiria

Salviano Filipe Silva Pinto Soares,

Professor Auxiliar do Departamento de Engenharias da Universidade de Tr´as-os-Montes e Alto Douro

(8)
(9)

Jean Tharles Patrique Paiva

Submetido na Universidade de Tr´as-os-Montes e Alto Douro para o preenchimento dos requisitos parciais para obten¸c˜ao do grau de

Mestre em Engenharia Electrot´ecnica e de Computadores

Resumo — A norma EN 12354:2000 define um m´etodo num´erico detalhado baseado no desempenho de elementos de constru¸c˜ao, permitindo estimar com precis˜ao o desempenho ac´ustico entre dois compartimentos. No entanto, projetar o isolamento ac´ustico de edif´ıcios com dimens˜oes consider´aveis utilizando este m´etodo ´e muitas vezes uma tarefa dif´ıcil sem recurso `a auxiliares tecnol´ogicos. Seguindo este m´etodo, propomos uma aplica¸c˜ao WEB, Sound Insulation Software (SIS), que permite projetar e simular o desempenho ac´ustico automatizado e integrado de edif´ıcios.

Palavras Chave: Isolamento sonoro, EN-12354, Ac´ustica de Edif´ıcios, Arquitectura cliente/servidor e MVC

(10)
(11)

Jean Tharles Patrique Paiva

Submitted to the University of Tr´as-os-Montes and Alto Douro in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering and Computers

Abstract —

The EN 12354 standard defines a detailed numerical method based on the performance of construction elements, allowing estimating accurately the acoustic performance between two compartments. However, designing the sound insulation of buildings with considerable dimensions using this method is often a difficult task that requires time to calculate. Following this method, we propose a WEB application that allows you to design automated and integrated acoustic performance of buildings.

Key Words: : Sound Insulation, EN-12354, Building Acoustic, slient/server Architecture e MVC

(12)
(13)

Os meus agradecimentos `a todos que me ajudaram na conclus˜ao desta etapa da vida. Em especial para o Professor Salviano Soares, Lu´ıs Pereira, Jos´e Barreiro, Ant´onio Pereira, Jorge Gon¸calves, Stefan Vidal e Patrick Vidal.

Aos meus pais que sempre me apoiaram acima de tudo, parentes e namorada. A todos, obrigado.

UTAD/IPL, Jean Tharles Patrique Paiva

Vila Real, 24 de Setembro de 2018

(14)
(15)

Resumo ix

Abstract xi

Agradecimentos xiii

´Indice de tabelas xix

´Indice de figuras xxi

Gloss´ario, acr´onimos e abreviaturas xxv

1 Introdu¸c˜ao 1

1.1 Motiva¸c˜ao e objetivos . . . 2

1.2 Organiza¸c˜ao da disserta¸c˜ao. . . 3

2 As normas EN 12354:2000 5 2.1 Modelo de c´alculo . . . 6

3 Enquadramento te´orico das tecnologias utilizadas 11 3.1 Enquadramento Te´orico - Back-end . . . 12

3.1.1 Hypertext Transfer Protocol (HTTP) . . . 13

3.1.2 Web Services . . . 17

3.1.3 REpresentational State Transfer (REST) . . . 19

3.1.4 JavaScript Object Notation . . . 21 xv

(16)

3.2 Enquadramento Te´orico - Front-end . . . 32

3.2.1 Hypertext Markup Language (HTML) . . . 32

3.2.2 Cascading Style Sheets (CSS) . . . 33

3.2.3 Bootstrap . . . 34

3.2.4 Javascript - EMACScript . . . 35

3.2.5 AngularJS . . . 41

3.2.6 Tecnologias para ambiente 3D na WEB . . . 42

3.3 Algoritmos para reconhecimento de ciclos em grafos . . . 43

4 Conce¸c˜ao 47 4.1 Arquitectura da Aplica¸c˜ao . . . 47

4.2 Levantamento de Requisitos . . . 48

4.2.1 Requisitos Funcionais . . . 49

4.2.2 Requisitos n˜ao Funcionais . . . 50

4.3 Diagrama Entidades e Relacional . . . 52

4.4 Casos de Uso . . . 54

4.5 Modelo de Dados Complementar . . . 55

4.6 Diagrama de Classes . . . 57

5 Implementa¸c˜ao do Prot´otipo SIS 65 5.1 Tecnologias e Ferramentas Utilizadas . . . 65

5.2 Backend . . . 68 5.2.1 Autentica¸c˜ao . . . 69 5.2.2 Autoriza¸c˜ao . . . 70 5.2.3 Recursos . . . 71 5.3 Interface do Utilizador . . . 73 5.3.1 Barra de navega¸c˜ao . . . 74 5.3.2 Home . . . 74 5.3.3 New Project . . . 75 5.3.4 My Projects . . . 77

5.3.5 My Materials - Insert New Materials . . . 79

5.3.6 My Materials - List All Materials . . . 82

5.3.7 My Materials - Edit/Remove Materials . . . 85

5.4 Caracter´ısticas 2D . . . 87

5.4.1 Renderiza¸c˜ao do cen´ario . . . 87

5.4.2 Desenho de uma linha . . . 92

5.4.3 Valida¸c˜ao de pol´ıgonos . . . 96 xvi

(17)

5.5.3 Fluxo de Dados . . . 109 5.5.4 Juntas El´asticas . . . 110 5.6 Reconhecimento de Sistemas . . . 112 5.6.1 Sistema Base . . . 113 5.6.2 Sistema Particular 1 . . . 114 5.6.3 Sistema Particular 2 . . . 115 5.7 Processo de C´alculo . . . 116

5.8 Cria¸c˜ao da Interface de Resultados . . . 118

6 Resultados e Discuss˜ao 123 6.1 Caso de Teste 1 . . . 123

6.2 Caso de Teste 2 . . . 126

6.3 Precis˜ao e Vis˜ao geral dos Resultados . . . 128

6.4 Geometrias irregulares suportadas . . . 128

7 Conclus˜ao e Trabalho Futuro 131 7.1 Conclus˜ao . . . 131

7.2 Trabalho Futuro. . . 132

Referˆencias bibliogr´aficas 133

(18)
(19)

4.1 Caracter´ısticas dos elementos. . . 59

5.1 (1) Nota da Figura 5.8. . . 84

5.2 (2) Funcionalidades ligadas aos eventos . . . 91

6.1 Vis˜ao geral dos resultados. . . 128

(20)
(21)

2.1 Caminhos de transmiss˜ao sonora (geometria regular) . . . 6

2.2 Processo para inicializar o cen´ario. . . 10

3.1 Sistema de trˆes camadas. . . 12

3.2 Comunica¸c˜ao entre cliente e servidor com o protocolo HTTP [1] . . . 14

3.3 Estrutura de uma mensagem HTTP. . . 15

3.4 Request Line [2]. . . 15

3.5 Status Line. . . 16

3.6 Exemplo de alguns status code e respectivas reason-phrases. . . 16

3.7 Web services atores e stack. . . 19

3.8 JSON exemplo de dados [3]. . . 22

3.9 JWT exemplo [4]. . . 23

3.10 JWT header [4].. . . 24

3.11 JWT playload [4]. . . 24

3.12 JWT signature [4]. . . 25

3.13 Java EE multicamada. . . 27

3.14 Servlet, esquema simplificado do seu funcionamento. . . 28

3.15 C´odigo Java em uma p´agina HTML (JSP), linha 15.. . . 29 xxi

(22)

3.17 Exemplo de uma p´agina HTML e c´odigo relativo [59]. . . 32

3.18 Canvas exemplo com manipula¸c˜ao Javascript [6].. . . 33

3.19 CSS e HTML exemplo [58]. . . 34

3.20 Sum´ario de como o Bootstrap funciona em m´ultiplas plataformas [57]. 35

3.21 CSS e HTML exemplo [58]. . . 35 3.22 Javascript documentos no HTML. . . 37 3.23 Javascript e DOM. . . 38 3.24 Javascript listener. . . 38 3.25 Javascript scope. . . 39 3.26 Javascript closures. . . 40 3.27 AngularJS exemplo. . . 42

3.28 Grafo sem direc¸c˜ao. Fonte: [7] . . . 44

3.29 Ciclo, denotado a vermelho. Fonte: [8] . . . 45

4.1 Arquitectuira MVC [9]. . . 49

4.2 Diagrama ER . . . 54

4.3 Diagrama de Casos de Uso. . . 56

4.4 Modelo Complementar dos dados presente na View. . . 58

4.5 Diagrama Classes parte 1, proveniente da DB. . . 60

4.6 Diagrama Classes parte 2. . . 61

4.7 Diagrama Classes parte 3. . . 63

5.1 Interface phpMyAdmin . . . 67

5.2 Diagrama de funcionamento da autentica¸c˜ao de utilizadores. . . 69

5.3 Diagrama de funcionamento da autoriza¸c˜ao de utilizadores. . . 70

5.4 Cria¸c˜ao de novos projetos. . . 76

5.5 Listagem de projectos. . . 78

5.6 Inser¸c˜ao de novos materiais. . . 81

5.7 Listagem de materiais. . . 83

5.8 Diagrama de funcionamento da p´agina de listagem de materiais. . . . 85 xxii

(23)

de todos os eventos associados na inicializa¸c˜ao. . . 88

5.11 Ilusta¸c˜ao do cen´ario 2D. . . 90

5.12 Processo de desenho de uma linha. . . 93

5.13 Compara¸c˜ao entre manter as linhas anteriores e n˜ao no estado 1. . . . 95

5.14 Processo de verifica¸c˜ao de novos poligonos. . . 97

5.15 Processo para inicializar o cen´ario. . . 99

5.16 Diferen¸c˜ao de reprodu¸c˜ao de imagem entre os renderizadores. . . 101

5.17 Exemplo da triangula¸c˜ao de um elemento horizontal. . . 103

5.18 Exemplo da triangula¸c˜ao de um elemento vertical. . . 104

5.19 Mapa de v´ertices de um elemento vertical com porta. . . 105

5.20 Mapa de v´ertices de um elemento vertical com janela. . . 106

5.21 Mapa de v´ertices de um elemento vertical com porta e janela. . . 107

5.22 M´odulos da interface de um elemento.. . . 109

5.23 Interface para atribui¸c˜ao de juntas el´asticas. . . 111

5.24 Sistema base. . . 114

5.25 Sistema particular 1. . . 115

5.26 Sistema particular 2. . . 116

5.27 Camadas da interface de resultados. . . 119

5.28 Exemplo da intera¸c˜ao do utilizador com a primeira camada. . . 120

5.29 Exemplo da intera¸c˜ao do utilizador com quarta camada. . . 121

6.1 Caso de Teste 1.. . . 124

6.2 Resultados Caso de Teste 1. . . 125

6.3 Caso de Teste 2.. . . 126

6.4 Resultados Caso de Teste 2. . . 127

6.5 Geometria 1 . . . 129

6.6 Geometria 2 . . . 130

(24)
(25)

abreviaturas

Lista de acr´

onimos

Sigla Expans˜ao

API Application Programming Interface

CSS Cascading Style Sheets

DAO Data Access Object

DFS Deepth Search First

DOM Document Object Model

EIS Enterprise Information System

ER Entidade e Relacionamento

HATEOAS Hypermedia As The Engine Of Application State HMAC Hash-based Message Authentication Code

HTML Hypertext Markup Language

HTTP Hypertext Transfer Protocol

JEE Java Enterprise Edition

JSE Java Standard Edition

JSON JavaScript Object Notation

(26)

JVM Java Virtual Machine

JWT JSON Web Token

MIME Multipurpose Internet Mail Extensions

MVC Model View Controller

OOP Object-Oriented Programming

OSI Open System Interconnection

POM Project Object Model

REST REpresentational State Transfer

RF Requisitos Funcionais

RNF Requisitos N˜ao Funcionais

RSA Rivest-Shamir-Adleman

SEA Statistical Energy Analysis

SIS Sound Insulation Software

SOAP Simple Object Access Protocol

SQL Structured Query Language

TCP-IP Transmission Control Protocol/Internet Protocol UDDI Universal Description, Discovery and Integration

UI User Interface

URI Uniform Resource Identifier

XML eXtensible Markup Language

WebGL Web Graphics Library

WSDL Web Services Description Language

WWW World Wide Web

(27)

Abreviatura Significado(s)

e.g. por exemplo

et al. e outros (autores)

etc. etecetera, outros

i.e. isto ´e, por conseguinte

vid. veja-se, ver

vs. versus, por compara¸c˜ao com

(28)

1

Introdu¸c˜

ao

A maioria dos pa´ıses da Uni˜ao Europeria (UE) tˆem legisla¸c˜ao pr´opria no que se refere aos requisitos m´ınimos de isolamento ac´ustico dos edif´ıcios. Nas ´ultimas duas d´ecadas, alguns destes identificaram tamb´em a necessidade da cria¸c˜ao e desenvolvimento cont´ınuo de um modelo de classifica¸c˜ao ac´ustica com classes correspondentes a diferentes n´ıveis de conforto. Ademais, a ac´ustica de edif´ıcios tem de uma forma geral registado uma crescente importˆancia a n´ıvel global sendo not´aveis os esfor¸cos da comunidade cient´ıfica para se obter uma harmoniza¸c˜ao dos descritores e da classifica¸c˜ao ac´ustica de edif´ıcios. O exemplo mais ´obvio ´e o da norma ISO 19488, que est´a presentemente em desenvolvimento e cujo objectivo principal ´e especificar crit´erios de desempenho ac´ustico para um modelo de classifica¸c˜ao.

Em Portugal, o Regulamento dos Requisitos Ac´usticos dos Edif´ıcios (RRAE) que regula a vertente do conforto ac´ustico no ˆambito do regime da edifica¸c˜ao, estabelece apenas valores m´ınimos de isolamento e no presente n˜ao existem modelos de classifica¸c˜ao. Contudo, considera-se prov´avel que estes venham a ser postos em pr´atica no contexto Nacional ou Europeu.

Os m´etodos padronizados mais precisos para efectuar estimativas de isolamento ac´ustico s˜ao aqueles especificados na s´erie de normas EN 12354:2000. Estes tˆem

(29)

como base uma aproxima¸c˜ao de primeira ordem do modelo matem´atico SEA (Statistical Energy Analysis) que ´e de substancial complexidade, pois requer uma an´alise das caracter´ısticas f´ısicas dos elementos construtivos ”envolvidos”na transmiss˜ao sonora e da forma como estes se conectam. Estas previs˜oes tornam-se ainda mais complexas quando os espa¸cos em quest˜ao apresentam geometrias irregulares e quando os elementos construtivos usados s˜ao heterog´eneos (i.e. elementos pesados e elementos leves). Assim, uma das pr´aticas comuns entre os profissionais da ac´ustica ´e considerar apenas os casos mais desfavor´aveis, com a finalidade de garantir o cumprimento dos requisitos m´ınimos em quest˜ao.

´

E evidente que no caso de ser necess´ario avaliar um edif´ıcio de acordo com um modelo de classifica¸c˜ao, dependendo dos crit´erios ac´usticos em pr´atica, a quantidade de c´alculos a efectuar aumenta significativamente e em alguns casos poder´a ser mesmo necess´ario calcular a transmiss˜ao ac´ustica entre todos os espa¸cos. Assim, o uso de um software com vista a automatizar parcialmente este processo seria de extrema utilidade n˜ao s´o por permitir identificar situa¸c˜oes de risco como tamb´em determinar o desempenho ac´ustico de um edif´ıcio completo, facilitando assim a sua classifica¸c˜ao final em termos de n´ıveis de conforto ac´ustico.

1.1

Motiva¸c˜

ao e objetivos

Os motivos principais para a realiza¸c˜ao desta disserta¸c˜ao foram:

• A identifica¸c˜ao de um problema para projetar o isolamento ac´ustico de edif´ıcios, como uma necessidade no seu trabalho no Reino Unido onde se utiliza normas com requisitos muito apertados identificado por Lu´ıs.

• A r´apida expans˜ao de modelos de classifica¸c˜ao ac´ustica ao n´ıvel dos pa´ıses da uni˜ao europeia;

• A complexidade dos modelos de previs˜ao de isolamento existentes.

(30)

O principal objectivo consistiu em desenvolver uma aplica¸c˜ao WEB, intitulada SIS (Sound Insulation Software), que permita o utilizador levar a cabo c´alculos de isolamento ac´usticos a sons a´ereos entre espa¸cos de acordo com o m´etodo detalhado especificado na norma EN 12354-1:2000.

1.2

Organiza¸c˜

ao da disserta¸c˜

ao

Esta disserta¸c˜ao est´a subdividida em sensivelmente 5 partes. Das quais, a primeira ´e referente aos dois primeiros cap´ıtulos onde ´e introduzida toda a parte te´orica por tr´as da aplica¸c˜ao a desenvolver. Na segunda parte ´e demonstrada todo o aspecto l´ogico da concep¸c˜ao de uma aplica¸c˜ao. Esta parte refere-se ao quarto cap´ıtulo. Seguidamente, todo o processo l´ogico do cap´ıtulo anterior ´e desenvolvido no segmento a seguir que trata de explicar os aspectos mais importantes do desenvolvimento. De seguida, ´e exposto os resultados da implementa¸c˜ao realizada e s˜ao evidenciados alguns casos reais. Por fim, a conclus˜ao desta disserta¸c˜ao e todos os aspectos a melhorar.

(31)
(32)

2

As normas EN-12354:2000

O desenvolvimento dos modelos de previs˜ao ac´ustica inclu´ıdos nas normas EN 12354 tiveram inicio h´a cerca de trinta anos e foram criados com o intuito de relacionar o desempenho ac´ustico dos v´arios produtos e elementos com o desempenho de edifica¸c˜oes e constru¸c˜oes espec´ıficas.

A cria¸c˜ao das normas surge de uma necessidade, ao n´ıvel Europeu, de estabelecer m´etodos de previs˜ao por forma a minimizar os gastos substanciais que at´e a data a industria da constru¸c˜ao necessitava sistematicamente para se adaptar a novos m´etodos e tecnologias.

As normas abrangem as seguintes disciplinas: isolamento a sons a´ereos entre quartos, isolamento a sons de percuss˜ao (impacto) entre quartos, isolamento de fachada, transmiss˜ao de ru´ıdo para o ambiente, ru´ıdo de equipamentos e reverbera¸c˜ao em espa¸cos fechados [48].

(33)

2.1

Modelo de c´

alculo

A norma EN 12354-1 estabelece um modelo de c´alculo para a previs˜ao do isolamento a sons a´ereos entre quartos.

A transmiss˜ao total divide-se em m´ultiplas transmiss˜oes que ocorrem atrav´es de diferentes caminhos com uma determinada potˆencia sonora (Figura 2.1). Esta abordagem ´e essencialmente equivalente a um modelo de transmiss˜ao SEA (Statistical Energy Analysis), mas utiliza quantidades f´ısicas conhecidas, como por exemplo o ´ındice de redu¸c˜ao sonora (R) de todos os elementos envolvidos numa determinada transmiss˜ao, que pode ser determinado em laborat´orio de acordo com a norma ISO 10140-2:2010 [48].

Figura 2.1 – Caminhos de transmiss˜ao sonora (geometria regular)

Com base no m´etodo de c´alculo detalhado da norma e na Figura2.1, a metodologia adoptada para determinar o isolamento ac´ustico a sons a´ereos entre dois quatros ´e a seguinte:

1. C´alculo e/ou teste laboratorial das seguintes quantidades ac´usticas: (a) ´ındice de redu¸c˜ao sonora do elemento de separa¸c˜ao: Rs;

(34)

(b) ´ındice de redu¸c˜ao sonora de cada elemento marginal no compartimento emissor: Ri;

(c) ´ındice de redu¸c˜ao sonora de cada elemento marginal no compartimento receptor: Rj;

(d) acr´escimo de isolamento sonoro, por introdu¸c˜ao de um revestimento adicional, colocado no elemento de separa¸c˜ao no lado do espa¸co emissor e/ou espa¸co receptor: ∆RD, ∆Rd;

(e) acr´escimo de isolamento sonoro, por introdu¸c˜ao de um revestimento adicional, colocado no elemento marginal no lado do espa¸co emissor e/ou espa¸co receptor: ∆Ri, ∆Rj;

(f) tempo de reverbera¸c˜ao estrutural em laborat´orio de cada elemento, Ts,lab; (g) ´ındice de redu¸c˜ao de transmiss˜ao de vibra¸c˜oes para cada caminho, Ki,j; (h) ´area do elemento separador Ss;

(i) ´area de cada elemento marginal no compartimento emissor: Si; (j) ´area de cada elemento marginal no compartimento receptor: Sj (k) comprimento da linha de jun¸c˜ao entre cada elemento: lij

2. Transferˆencia dos dados de laborat´orio para valores nas condi¸c˜oes de aplica¸c˜ao para cada elemento, acr´escimo de isolamento e juntas de acordo com os seguintes princ´ıpios: Rsitu = R − 10 lg Ts,situ Ts,lab dB (2.1) onde:

Rsitu ´e o ´ındice de redu¸c˜ao de som de um elemento in situ;

Ts,situ ´e o tempo de reverbera¸c˜ao estrutural do elemento nas actuais condi¸c˜oes

de aplica¸c˜ao, em segundos;

Ts,lab ´e o tempo de reverbera¸c˜ao estrutural do elemento em laborat´orio, em

(35)

∆Rsitu = ∆RdB (2.2)

onde:

∆Rsitu acr´escimo de isolamento sonoro, por introdu¸c˜ao de um revestimento adicional nas actuais condi¸c˜oes de aplica¸c˜ao;

∆R acr´escimo de isolamento sonoro, por introdu¸c˜ao de um revestimento adicional medido em laborat´orio. Dv,ij,situ = Kij − 10 lg lij √a i,situaj,situ dB; Dv,ij,situ≥ 0dB (2.3) ai,situ = 2.2π2S i C0Ts,i,situ . s fref f aj,situ= 2.2π2S j C0Ts,j,situ . s fref f (2.4) onde:

Dv,ij,situ diferen¸ca de n´ıvel de velocidade de jun¸c˜ao entre o elemento excitado i e

o elemento receptor j;

Kij ´ındice de redu¸c˜ao de vibra¸c˜ao para cada caminho de transmiss˜ao ij numa junta;

ai,situ ´e o comprimento de absor¸c˜ao equivalente do elemento i nas actuais condi¸c˜oes

de aplica¸c˜ao, em metros;

aj,situ ´e o comprimento de absor¸c˜ao equivalente do elemento j nas actuais condi¸c˜oes

de aplica¸c˜ao, em metros;

f ´e a frequˆencia central da banda em considera¸c˜ao, em Hertz; fref ´e a frequˆencia de referˆencia, fref = 1000 Hz;

(36)

lij ´e o comprimento da jun¸c˜ao entre os elementos i e j, em metros; Si ´e a ´area do elemento i, em metros quadrados;

Sj ´e a ´area do elemento j, em metros quadrados;

Ts,i,situ ´e o tempo de reverbera¸c˜ao estrutural do elemento i, nas actuais condi¸c˜oes

de aplica¸c˜ao;

Ts,j,situ ´e o tempo de reverbera¸c˜ao estrutural do elemento j, nas actuais condi¸c˜oes

de aplica¸c˜ao;

3. Determina¸c˜ao da transmiss˜ao directa e marginal nas actuais condi¸c˜oes de aplica¸c˜ao de acordo com os seguintes princ´ıpios:

RDd = Rs,situ+ ∆RD,situ+ ∆Rd,situdB (2.5)

Ri,j = Ri,situ 2 + ∆Ri,situ+ Rj,situ 2 + ∆Rj,situ+ Dv,ij,situ+ 10lg Ss pSiSj dB (2.6) onde:

∆R melhoria do ´ındice de redu¸c˜ao de som ao adicionar camadas;

A norma inclui equa¸c˜oes matem´aticas para c´alculo dos ´ındice de redu¸c˜ao de transmiss˜ao de vibra¸c˜oes para cada caminho em fun¸c˜ao do tipo de elementos em causa.

A figura2.2ilustra um exemplo da informa¸c˜ao que ´e disponibilizada para determinar o ´ındice de redu¸c˜ao de transmiss˜ao de vibra¸c˜oes (Kij) entre dois elementos, para um caminho espec´ıfico.

(37)
(38)

3

tecnologias utilizadas

Uma aplica¸c˜ao Web esta sub-divida em trˆes partes: a visualiza¸c˜ao que o utilizador tem da aplica¸c˜ao, a l´ogica associada e os seus dados. Do ponto de vista da implementa¸c˜ao, atualmente s˜ao usados os termos back-end (ou back-office) e front-end para distinguir os processos de concep¸c˜ao do servidor (l´ogica e dados) da interface do utilizador. Estes termos tamb´em s˜ao utilizados para assinalar o respons´avel pela concep¸c˜ao destas partes, ou seja, o desenvolvedor back-end ´e o respons´avel por implementar a l´ogica da aplica¸c˜ao e o acesso aos dados. Da mesma forma, o desenvolvedor front-end ´e respons´avel por implementar a interface gr´afica da aplica¸c˜ao e uma por¸c˜ao l´ogica associada no lado do cliente.

Para estabelecer, de forma bem definida, todas as intera¸c˜oes entre utilizadores e o servidor ´e necess´ario introduzir a arquitetura da aplica¸c˜ao Figura 3.1. Nesta disserta¸c˜ao foi abordada uma arquitetura de 3 camadas, das quais temos:

• Apresenta¸c˜ao: interface do utilizador, todas as funcionalidades de uma aplica¸c˜ao Web s˜ao apresentadas nesta;

• L´ogica ou Business tier: esta controla todas as funcionalidades apresentadas na camada de Apresenta¸c˜ao. Tamb´em controla o acesso aos dados e verifica a

(39)

permiss˜ao de utilizadores;

• Dados: base de dados, toda a forma de aloca¸c˜ao de dados.

Figura 3.1 – Sistema de trˆes camadas.

Nas pr´oximas sec¸c˜oes ser˜ao introduzidas todas as tecnologias associadas ao desenvolvimento de uma aplica¸c˜ao Web que, como j´a foi referido anteriormente, pode ser dividida em termos de implementa¸c˜ao, back-end e front-end.

3.1

Enquadramento Te´

orico - Back-end

O back-end ´e todo processo realizado por parte do servidor. Estes processos podem ser manipulados de v´arias formas, bem como atrav´es de in´umeras tecnologias e protocolos. Nesta subsec¸c˜ao, ser˜ao descritas algumas tecnologias e protocolos subjacentes ao desenvolvimento do back-end.

Numa primeira fase, ser´a discutido o meio de comunica¸c˜ao entre duas partes (utilizadores e servidores) que, atualmente ´e maioritariamente composto pelo protocolo HTTP.

(40)

De seguida, ser˜ao expostos as tecnologias que atuam entre a interface do utilizador e a l´ogica da aplica¸c˜ao, tamb´em chamadas de Web services e REST. Por fim, ser˜ao apresentadas as tecnologias referentes `a l´ogica da aplica¸c˜ao e dos dados.

3.1.1

Hypertext Transfer Protocol (HTTP)

HTTP ´e o protocolo ”standard”para comunica¸c˜ao entre clientes e servidores que surgiu da necessidade de enviar informa¸c˜oes atrav´es da Internet de forma a que todos os computadores fossem capazes de perceber. Este protocolo de comunica¸c˜ao opera ao n´ıvel da aplica¸c˜ao do modelo Open Systems Organization Interconnection (OSI ) utilizado para sistemas de informa¸c˜ao distribu´ıdos, como por exemplo, a World Wide Web (WWW ) [31]. Este tamb´em implementa a arquitetura do modelo cliente/servidor (protocolo do tipo request-reply), utiliza como protocolo de transporte o Transmission Control Protocol /Internet Protocol (TCP-IP), caracterizando-se como [55]:

• connectionless: Ap´os um cliente efetuar um pedido ao servidor, este ir´a desconectar-se enquanto aguarda por uma resposta, sendo da responsabilidade do servidor processar o pedido e re-estabelecer a conex˜ao para o envio da respetiva resposta.

• independent: suporta a comunica¸c˜ao de qualquer tipo de dados.

• stataless: n˜ao guarda informa¸c˜oes relativas aos pedidos j´a processados.

Figura 3.2 evidencia ilustrativamente o funcionamento do protocolo HTTP. No entanto, ´e necess´ario notar que na ilustra¸c˜ao o cliente possa ser um servidor a comunicar com outro servidor.

(41)

Figura 3.2 – Comunica¸c˜ao entre cliente e servidor com o protocolo HTTP [1]

. Mensagens HTTP

Todas as as mensagens HTTP seguem o standard especificado pela RFC 2616. Estas podem ser de pedido ou de reposta entre duas partes. A ilustra¸c˜ao da figura 3.3

enumera todos os campos de uma mensagem HTTP, dos quais pode-se definir por [31, 25]:

(42)

Figura 3.3 – Estrutura de uma mensagem HTTP.

• Request line identifica o tipo de mensagem e o destinat´ario, constitu´ıda pelos seguintes elementos (Figura 3.4):

Figura 3.4 – Request Line [2].

– Request Method: indica o tipo de pedido a realizar no destinat´ario, podendo ser do tipo:

∗ GET: utilizado para leitura de dados;

∗ HEAD: ´e pedida uma resposta idˆentica a uma reposta com o pedido GET mas sem Entity Body;

(43)

∗ PUT: utilizado para modificar todos os dados do recurso acedido no destinat´ario;

∗ DELETE: apagar dados;

∗ OPTIONS: permite descrever as op¸c˜oes de comunica¸c˜ao entre as duas partes;

∗ PATCH: ´e utilizado para aplicar uma modifica¸c˜ao parcial ao dados do caminho especificado (URI);

– Uniform Resource Identifier (URI): localiza¸c˜ao do recurso; – HTTP version: vers˜ao do protocolo HTTP.

• Status line informa¸c˜ao do estado da resposta, constitu´ıdo pelos seguintes elementos (Figura 3.5):

Figura 3.5 – Status Line.

1. Status Code: ´e um valor constitu´ıdo por 3 d´ıgitos, onde o primeiro digito representa a classe da resposta (Figura3.6), e os outros diferenciam tipos de resposta associado a sua classe.

2. Reason-Phrase: informa¸c˜ao relativa ao status code.

(44)

• General Header: campos aplic´aveis a todas as resposta e pedidos; • Request Header: cabe¸calhos destinados aos pedidos realizados; • Response Header: cabe¸calhos relacionados as respostas;

• Entity Header: campos que definem as caracter´ısticas dos dados a serem transmitidos no Entity Body;

• Entity body: separado por um espa¸co do elementos anteriores, comp˜oe muitas vezes os dados de uma mensagem HTTP. Tamb´em caracterizado por ser uma p´agina em aplica¸c˜oes Web.

3.1.2

Web services

Web service ´e um fragmento de software disponibilizado na internet que possibilita a comunica¸c˜ao entre diferentes plataformas, por exemplo: um sistema programado em Java consegue comunicar com um outro sistema em PHP atrav´es de Web services. Esta interoperabilidade ´e conseguida atrav´es da utiliza¸c˜ao de protocolos abertos e normas bem definidas para a troca de informa¸c˜oes entre aplica¸c˜oes.

Os Web services s˜ao compostos por SOAP (Simple Object Access Protocol), UDDI (Universal Description, Discovery and Integration), WSDL (Web Services Description Language) e XML + HTTP.

Existem duas formas de descrever a arquitetura de um Web service. A primeira ´e examinar os pap´eis de todos atores do web service. A segunda, ´e descrever a stack de protocolos contidos neste [41, 19].

Web Service Roles

Os atores de um Web services s˜ao (Figura 3.7):

(45)

• Service requestor: quem consome o servi¸co disponibilizado. Este, conecta-se e envia um pedido em XML (padr˜ao de dados utilizado em Web services); • Service registry: diret´orio central de servi¸cos. Este cont´em todos os servi¸cos

publicados.

Web Service Protocol Stack

Sucintamente cada camada da stack de protocolos do Web services podem ser descritas como (Figura3.7):

• Service transport: respons´avel por transportar mensagens entre o Service provider e Service requestor. O protocolo mais utilizado para tal, ´e o HTTP mas podem ser utilizados outros como: FTP, SMTP etc;

• XML messaging: codifica as mensagem em formato XML para que sejam percept´ıveis entre as duas partes (SOAP e XML-RPC);

• Service description: respons´avel por descrever a interface p´ublica de um Web service. Isto ´e realizado atrav´es da configura¸c˜ao do WSDL (ficheiro XML); • Service discovery: respons´avel por centralizar todos os servi¸cos num registo

comum e fornecer uma forma f´acil de publicar/encontrar servi¸cos. Isto ´e realizado atrav´es do ficheiro UDDI.

(46)

Figura 3.7 – Web services atores e stack.

3.1.3

REpresentational State Transfer (REST)

Criado por Roy Fieelding em 2000 na sua tese de doutoramento com o proposito de lidar com o problema de escalabilidade da web. REST ´e conhecido por ser um estilo de arquitetura, tamb´em chamado de Web’s architectural style por estar definido por seis restri¸c˜oes [43, 49, 34, 32]: 1. Client-Server; 2. Uniform Interface; 3. Stateless; 4. Layered System; 5. Cacheable;

(47)

6. Code on Demand.

Uniform Interface

As intera¸c˜oes entre os componentes Web - clientes, servidores ou intermedi´arios - depende da uniformidade de suas interfaces. Se algum dos componentes n˜ao cumprirem o padr˜ao de comunica¸c˜ao estabelecido, a comunica¸c˜ao n˜ao se verifica. Estes componentes Web interagem de forma consistente segundo quatro restri¸c˜oes:

• Resource-Based: servi¸cos disponibilizados s˜ao chamados de recursos e s˜ao localizados a partir de um identificador, URI.

• Manipulation of Resources Through Representations: clientes podem manipular representa¸c˜oes de recursos de diferentes formas. Isto quer dizer que os dados podem ser representados em JSON, XML, HTML, etc;

• Self-descriptive Messages: todas as mensagens incluem informa¸c˜oes suficientes para processar a mensagem;

• Hypermedia as the Engine of Application State (HATEOAS): As representa¸c˜oes de recursos obtidas em uma aplica¸c˜ao REST devem possuir hiperlinks que permitam a navega¸c˜ao do cliente pelos recursos. O estado da aplica¸c˜ao muda apenas atrav´es de a¸c˜oes identificados por estes hiperlinks.

Client-Server

Atrav´es da uniform interface ´e poss´ıvel separar fun¸c˜oes de clientes e de servidores, ou seja, clientes s˜ao respons´aveis por fazer pedidos e apresentar os dados e servidores responder aos pedidos dos clientes e manipular a informa¸c˜ao de forma eficiente. Isto permite que ambos possam evoluir de forma independente;

(48)

Stateless

Esta restri¸c˜ao enuncia que o web server n˜ao cont´em a obriga¸c˜ao de guardar o estado do cliente na aplica¸c˜ao. Com isso, todos os clientes devem conter toda a informa¸c˜ao necess´aria para cada itera¸c˜ao com o servidor.

Cacheable

Cacheable ´e uma restri¸c˜ao em que os dados retornados pelo servidor poder˜ao ser registados como cacheable (pass´ıveis de utiliza¸c˜ao de cache), proporcionando maior desempenho do sistema;

Layered System

O sistema multi-camada possibilita a utiliza¸c˜ao de intermedi´arios tais como proxies e gateways. Estes podem ser utilizados para melhoria de seguran¸ca, cache de respostas, etc.

Code on Demand

Esta restri¸c˜ao permite que servidores possam, temporariamente, transferir a l´ogica de uma funcionalidade para o cliente para que este possa execut´a-la.

3.1.4

JavaScript Object Notation

JSON ´e um formato padr˜ao para transmiss˜ao de dados entre entidades/sistemas. Atualmente, tem sido muito utilizado em request/response de servidores, estruturamento de dados em plataformas est´aticas, etc. Isto verifica-se uma vez que ´e de f´acil leitura e manuseamento por humanos e computadores. JSON ´e um formato de texto completamente independente da linguagem, sendo originalmente derivado da linguagem de programa¸c˜ao ECMAScript [27]. Os dados em JSON s˜ao representados

(49)

por um par key/value, em que a key dever´a ser uma string respons´avel por identificar o respetivo value, podendo este ser do tipo primitivo (strings, n´umeros, booleans e null ) ou estruturado (objetos e arrays) figura 3.8 [22].

Figura 3.8 – JSON exemplo de dados [3].

3.1.5

JSON Web Token

JSON Web Token ´e um objeto JSON que ´e definido pela norma RFC 7519, como uma maneira compacta, autˆonoma e segura para transmiss˜ao de dados entre duas partes. As informa¸c˜oes contidas neste objeto, podem ser consideradas confi´aveis visto que s˜ao assinadas digitalmente por um segredo (com algoritmo HMAC) ou por um par chave p´ublica/privada com RSA [4, 38].

Destacam-se as seguintes caracter´ısticas de um JWT mencionadas acima:

compacto pode ser facilmente enviado como parˆametro ou no cabe¸calho de um pedido HTTP;

(50)

O JWT ´e estruturado em trˆes partes separadas por um “.” que s˜ao codificadas em base64, ilustrado na figura 3.9. Estas partes s˜ao designadas de header, playload e signature.

Figura 3.9 – JWT exemplo [4].

Header

Tipicamente no header esta tipo de token, neste caso JWT, e o algoritmo de hash utilizado para assinar, na ilustra¸c˜ao da figura3.10foi assinado com algoritmo HMAC SHA256.

(51)

Figura 3.10 – JWT header [4].

Playload

A segunda parte do token ´e o playload, que cont´em as claims. Claims s˜ao parˆametros que podem ser acerca do utilizador ou informa¸c˜oes adicionais da autentica¸c˜ao realizada pelo servidor (Figura 3.11). Existem trˆes tipos de claims, das quais temos:

Registered s˜ao parˆametros predefinidos que definem, por exemplo: tempo de expira¸c˜ao (exp), entidade que criou o token (iss), etc;

Public cont´em os parˆametros acerca do utilizador que utilizar´a o token; Private s˜ao utilizados para partilhar informa¸c˜oes entre duas partes, que n˜ao s˜ao nem Public ou Registered

Figura 3.11 – JWT playload [4].

Signature

A assinatura ´e composto pelo header e playload codificados em base64 separados por um “.” e um segredo. Estas trˆes partes posteriormente s˜ao assinadas utilizando

(52)

o algoritmo especificado (Figura 3.12).

Figura 3.12 – JWT signature [4].

3.1.6

Java

Java ´e uma linguagem de programa¸c˜ao que foi originalmente desenvolvida pela Sun Microsystems que foi fundada por James Gosling em 1995, Java Standard Edition 1. Atualmente, a ´ultima vers˜ao do Java Standard Edition designa-se por 9 que foi lan¸cada em 2017. Com o avan¸co desta tecnologia e o aumento da sua popularidade, este foi distribu´ıdo em trˆes edi¸c˜oes [40,50]:

Java Standard Edition cont´em a sintaxe e o ambiente necess´ario para a compila¸c˜ao de qualquer aplica¸c˜ao;

Java Enterprise Edition plataforma destinada a cria¸c˜ao de aplica¸c˜oes Web e ´e implementada on top da JSE;

Java Mobile Edition plataforma destinada a cria¸c˜ao de aplica¸c˜oes m´oveis; Algumas das principais caracter´ısticas do Java s˜ao [16, 40]:

POO segue um modelo de programa¸c˜ao por objetos, ou seja, tudo no Java ´e um objecto;

Independente da plataforma ´e uma linguagem interpretada visto que c´odigo Java ´e compilado para bytecode, este por sua vez ´e independente da plataforma uma vez que ´e traduzido atrav´es da Java Virtual Machine (JVM). Isto tamb´em ´e conhecido por Code once, Run Everywhere.

(53)

Seguro visto que corre na JVM, esta cria uma sandbox, zona de mem´oria que ´e restrita (encapsulada), que dificulta ataques aos dispositivos;

Robusto uma das maiores vantagens do Java comparativamente a outras linguagem orientadas a objetos, ´e a preven¸c˜ao de leaks de mem´oria. O Java tem uma agente (Garbage Colector) que gere a mem´oria automaticamente.

Java Enterprise Edition

Java EE ´e uma plataforma que fornece uma Interface de Programa¸c˜ao de Aplica¸c˜oes (API) para desenvolvimento e execu¸c˜ao de software do quais se destacam: servi¸cos de rede e WEB. O Java EE utiliza um modelo de aplica¸c˜oes distribu´ıdas em multicamadas de larga escala, escal´aveis, confi´aveis e seguras que ´e dividida em componentes com fun¸c˜oes distintas e independentes [45].

Figura3.13mostra um esquema de aplica¸c˜oes Java EE dividida em camadas descritas abaixo [39]:

1. Client-tier - a camada do cliente consiste geralmente numa interface que permite acesso a um servidor Java EE que por norma est´a localizada em uma m´aquina diferente do servidor. Os clientes fazem pedidos ao servidor e este processa-os e retorna repostas correspondentes.

2. Web-tier - esta ´e composta por componentes que lidam com a intera¸c˜ao entre clientes e a camada l´ogica ou Bussines-tier, tendo como principais fun¸c˜oes:

(a) gerar conte´udo dinˆamico em v´arios formatos para o cliente, JSP/Servlets. (b) adquirir dados de entrada da interface do cliente e retornar respostas

apropriadas criadas atrav´es da camada l´ogica.

(c) controlar o fluxo de intera¸c˜oes do cliente com a interface. (d) executar l´ogica b´asica e guardar temporariamente dados.

3. Business-tier ou camada l´ogica - fornece todas as funcionalidades l´ogicas do sistema, como por exemplo: verifica¸c˜ao dos dados do pedido do cliente.

(54)

4. Enterprise information system (EIS) - consiste em servidores de base de dados que podem estar localizados em uma m´aquina separada da aplica¸c˜ao Java EE.

Figura 3.13 – Java EE multicamada.

Servlet ´e um componente Web, gerido por um “container”, que fornece conte´udo dinˆamico. As servlets s˜ao pequenas classes de Java independentes da plataforma,

compiladas para uma arquitetura neutra bytecode que podem ser executadas dinamicamente por um servidor web. Este servidor interage com clientes atrav´es do modelo

cliente-servidor que ´e fundamentado, principalmente, pelo protocolo HTTP.

O container da servlet, em conjunto com o servidor Web, fornecem servi¸cos de rede nos quais os pedidos e respostas s˜ao definidos, descodificados pedidos baseados em

(55)

MIME (Multipurpose Internet Mail Extensions) e formatadas as respostas baseadas em MIME. O container tamb´em cont´em e gere servlets atrav´es do seu ciclo de vida [21].

Para especificar o funcionarmento das tecnologias descritas anteriormente, recorre-se ao funcionamento b´asico da rela¸c˜ao entre os sistemas Container - Servlet no qual tem-se, por exemplo, um utilizador a realizar um pedido HTTP ao servidor Web. Este pedido, posteriormente, ´e processado pelo servidor Web sendo transferido (em objeto que representa o pedido) para o container da servlet que por sua vez tem a habilidade de determinar a servlet (com base nas configura¸c˜oes internas) encarregada do pedido. A servlet utiliza o objeto para identificar o utilizador e o formato HTML, bem como os parˆametros podem ter sido enviados como parte do pedido e outros dados relevantes para o processamento do pedido. Com isso, a servlet executa qualquer l´ogica na qual foi programada e gera dados e contr´oi a resposta para o cliente (Figura3.14).

Figura 3.14 – Servlet, esquema simplificado do seu funcionamento.

Java Server Pages ´e uma tecnologia para desenvolver p´aginas da Web dinˆamicas, caracterizadas por serem tamb´em uma extens˜ao das Servlets. Esta tecnologia auxilia os programadores a criar p´aginas dinˆamicas atrav´es da inser¸c˜ao de c´odigo Java em p´aginas HTML, sendo isto poss´ıvel ao utilizar caracteres especiais (Tags JSP). As tags JSP podem ser utilizadas para v´arios fins, como recuperar informa¸c˜oes de uma

(56)

base de dados, controlo entre p´aginas, compartilha de informa¸c˜oes entre pedidos e adquirir dados dos utilizadores atrav´es de formul´arios de p´aginas Web [54].

Figura 3.15 – C´odigo Java em uma p´agina HTML (JSP), linha 15.

Como j´a referido anteriormente as JSP’s s˜ao uma extens˜ao das servlets, ou seja, os scriptlet JSP’s (c´odigo Java dentro das tags JSP) s˜ao traduzidos para servlet e compilados numa classe, podendo desta forma, ser consideradas uma abstra¸c˜ao das mesmas [51]. Ap´os a tradu¸c˜ao e compila¸c˜ao de uma JSP para uma servlet a sua gest˜ao e funcionamento ir´a ser efetuada pelo container de forma semelhante a Servlet, subsec¸c˜ao 3.1.6.

JAX-RS e Jersey

JAX-RS ´e uma API do Java desenhada para o desenvolvimento de aplica¸c˜oes que utilizam a arquitetura REST. Esta API define um conjunto de anota¸c˜oes que podem ser utilizadas ao longo de classes Java com o objetivo de controlar a¸c˜oes de recursos REST [39]. Algumas destas anota¸c˜ao s˜ao:

(57)

• @GET, @POST, @DELETE, @PUT correspondente ao m´etodo HTTP. O m´etodo Java que tiver uma destas anota¸c˜oes ir´a proceder tal como a verbose HTTP;

• @PathParam ´e um tipo de parˆametro que pode ser extra´ıdo da URI; • @QueryParam ´e outro tipo de parˆametro que pode ser extra´ıdo da URI; • @Consumes utilizado para especificar o tipo de dados que o recurso aceita; • @Produces utilizado para especificar o tipo de dados que ser´a produzido no

lado do recurso na resposta;

• @ApplicationPath utilizado para mapear a aplica¸c˜ao, ou seja, especificar o root da URI dos recursos.

Por outro lado, Jersey ´e uma framework que implementa as especifica¸c˜oes da API JAX-RS para o concreto desenvolvimento de aplica¸c˜oes em REST [30].

3.1.7

Base de Dados

As bases de dados e as suas tecnologias tˆem um grande impacto na crescente utiliza¸c˜ao de computadores e tecnologia m´ovel. ´E justo dizer que as base de dados desempenham um papel cr´ıtico em todas as ´areas em que exijam armazenamento de dados, incluindo, com´ercio eletr´onico, engenharia, medicina, gen´etica, direito e educa¸c˜ao [29].

As bases de dados podem ser:

1. Relacionais: ´e uma cole¸c˜ao de dados relacionados, ou seja, factos conhecidos que podem ser manipulados (com SQL - Structured Query Language) e que tˆem significado impl´ıcito [15]. MySQL ´e um exemplo de uma base de dados relacional.

(58)

2. N˜ao relacionais: ´e uma cole¸c˜ao de dados pouco consistente (dados estruturados ou n˜ao, geralmente estes n˜ao est˜ao estruturados) mas com alta escalabilidade e alto desempenho para acesso de dados. Esta utiliza uma t´ecnica de reperesenta¸c˜ao par “key/value” semelhante a tecnologia JSON (sec¸c˜ao 3.1.4) [56]. MongoDB ´e um exemplo de uma base de dados n˜ao relacional.

SQL ´e a linguagem padr˜ao de uma base de dados relacional [53]. Esta linguagem abrange trˆes principais tipos de instru¸c˜oes:

1. SQL schema statements: s˜ao utilizadas para definir as estruturas de dados armazenada na base de dados.

2. SQL data statements: s˜ao utilizadas para manipular os dados, estruturas previamente definidas usando instru¸c˜oes de esquema SQL (Figura 3.16). 3. SQL transaction statements: s˜ao utilizadas para manipular transa¸c˜oes [14].

Figura 3.16 – Processo de execu¸c˜ao de uma query numa base de dados relacional. Fonte: [5]

(59)

3.2

Enquadramento Te´

orico - Front-end

Front-end esta por tr´as de todo o desenvolvimento gr´afico de uma p´agina Web que ´e composta principalmente por HTML, CSS e javascript. Nesta subsec¸c˜ao ser˜ao apresentados todos os conceitos relativos a estas, bem como algumas frameworks que visam facilitar o processo de desenvolvimento.

3.2.1

Hypertext Markup Language (HTML)

O HTML ´e uma linguagem de marca¸c˜ao simples utilizada para a cria¸c˜ao de documentos hipertexto independentes da plataforma. Atualmente ´e a linguagem de marca¸c˜ao padr˜ao para desenvolvimento de p´aginas Web. P´aginas em HTML s˜ao compostas por blocos, estes s˜ao tamb´em chamados de elementos que s˜ao representados por “tags” (Figura3.17) [20,59]. Estas, por sua vez indicam o tipo de elemento HTML, ou seja, se ´e um cabe¸calho (“heading”), par´agrafo (“paragraph”), tabela (“table”), etc. Atualmente a vers˜ao mais recente do HTML ´e a 5, foi lan¸cada em 2014 e suporta novas caracter´ısticas tais como: elementos para cores, reprodu¸c˜ao de som e v´ıdeo e desenhar gr´aficos interativos (canvas) [36].

(60)

HTML5 Canvas

O Canvas ´e um elemnto do HTML5 que permite uma renderiza¸c˜ao dinˆamica de formas 2D e imagens bitmap. ´E um modelo processual de baixo n´ıvel que atualiza um bitmap e n˜ao possui gr´afico de cena embebido, ou seja, o canvas consiste em uma regi˜ao desenh´avel definida em c´odigo HTML limitada a uma altura e largura, podendo ser manuseado por scripts em linguagem Javascript respons´aveis por gerar desenhos dinˆamicos [44].

Figura 3.18 – Canvas exemplo com manipula¸c˜ao Javascript [6].

3.2.2

Cascading Style Sheets (CSS)

CSS ´e utilizado para descrever como elementos HTML s˜ao renderizados numa p´agina, ou seja, mudar a disposi¸c˜ao, estilos e estados destes (Figura3.19) [58,24]. Todos os browsers compilam c´odigo CSS atrav´es de um n´umero de regras que s˜ao aplicadas ao documento HTML, estas s˜ao constitu´ıdas por:

selector valor identificador do elemento selecionado a mudar as caracter´ısticas; property name nome da propriedade a mudar;

(61)

property value valor da propriedade;

Figura 3.19 – CSS e HTML exemplo [58].

3.2.3

Bootstrap

O Bootstrap ´e uma Framework desenvolvida pelo Twitter que utiliza HTML, CSS e Javascript para criar p´aginas Web responsivas. Com base em um sistema Flexbox grid, o Bootstrap implementa um layout de 12 colunas com m´ultiplo tamanhos com base na largura da janela de visualiza¸c˜ao. Um elemento HTML pode ser associado ao Bootstrap, utilizando o nome da classe com o prefixo .col-. Como descri¸c˜ao que se segue ao prefixo (Figura 3.20), o elemento ter´a uma largura m´ınima (ponto de interrup¸c˜ao). Quando este valor for menor que tamanho da janela dispon´ıvel o elemento n˜ao ´e exibido [10, 57].

(62)

Figura 3.20 – Sum´ario de como o Bootstrap funciona em m´ultiplas plataformas [57].

Figura 3.21 ilustra como o documento HTML deve ser estruturado ao utilizar Bootstrap e a sua renderiza¸c˜ao. O container (na imagem a rosa) envolve todos os elementos associados ao Boootstrap. Uma vez que esta framework baseada em grid’s, o primeiro elemento a ser declarado dentro do container ´e uma row (na imagem a vermelho), que pode conter at´e 12 colunas. Estas podem ser colocadas dentro das row (na imagem a verde) e ocupam uma percentagem do parente (row ) dependente do que se segue ao prefixo da classe utilizado.

Figura 3.21 – CSS e HTML exemplo [58].

3.2.4

Javascript - EMACScript

O JavaScript foi criado na Netscape nos primordios da Web, e tecnicamente, “Java-Script” ´e uma marca comercial licenciada pela Sun Microsystems (agora Oracle)

(63)

utilizada para descrever a implementa¸c˜ao da Netscape (agora Mozilla) desta linguagem. Netscape submeteu a linguagem em vista a padroniz´a-la na ECMA, European Computer Manufacturer’s Association, e por quest˜oes de marca registrada, a vers˜ao padronizada da linguagem foi nomeada de “ECMAScript”. Pelos mesmos motivos de marca registrada, a vers˜ao desta linguagem da Microsoft ´e formalmente conhecida por ”JScript”. Na pr´atica, a linguagem ´e conhecida por Javascript mundialmente [33, 47].

Na ´ultima d´ecada, todos os browsers implementaram a vers˜ao 5 do ECMAScript. Embora j´a exista a vers˜ao 8 do ECMAScript, a vers˜ao 5 ´e a “standard” [42, 28]. Javascript ´e utilizado para criar conte´udo dinˆamico numa p´agina HTML, isto ´e, em p´aginas HTML podem ser incluidos scripts para controlar a intera¸c˜oes com o utilizador, controlar o browser ou at´e criar elementos HTML atrav´es da DOM, Document Object Model [42]. Esta ´e uma interface de aplica¸c˜ao multi-plataforma e independente da linguagem que trata documentos HTML, XHTML e XML como uma ´arvore, onde cada objeto desta representa uma parte do documento [37]. Algumas das vantagens de utilizar esta tecnologia s˜ao:

Menos utiliza¸c˜ao do servidor para algumas tarefas validar os dados de um utilizador antes de envi´a-los para o servidor;

Experiˆencia real-time com a p´agina podem ser criadas interfaces de acordo com a¸c˜oes do utilizador, rato ou teclado;

Interfaces mais ricas por exemplo drop-downs, menus parciais na barra de navega¸c˜ao de uma p´agina;

Frameworks existˆencia de um n´umero elevado de bibliotecas que facilitam o desenvolvimento de interfaces / funcionalidades.

Seguindo o paradigma da programa¸c˜ao orientada a objetos, prototypal inheritance do Javascript distingue-se de linguagens como Java, C++ ou C#, uma vez que o

(64)

conceito de classes e heran¸ca (introduzido no ECMAScript 2015) ´e baseado numa cadeia de objetos prototype, que permitem que as propriedades deste sejam herdadas diretamente um dos outros, em oposi¸c˜ao aos m´etodos cl´assicos [11].

O Javascript pode ser ´ıncluido numa p´agina HTML atrav´es de tags ou documentos externos com extens˜ao “.js” (Figura 3.22).

Figura 3.22 – Javascript documentos no HTML.

DOM

Como foi referido anteriormente ´e poss´ıvel controlar aspectos da p´aginas com o javascript, estes podem ser pertencentes ao HTML bem como ao CSS. S˜ao necess´arios quatro campos para realizar a¸c˜oes a DOM (Figura 3.23):

• m´etodo: tipo de selector que ir´a ser acedido ao elemento da DOM; • selector: identifica¸c˜ao do elemento da DOM;

• propriedade: a¸c˜ao a realizar;

(65)

Figura 3.23 – Javascript e DOM.

Listener

Esta funcionalidade tem como objetivo “escutar” a¸c˜oes efetuadas a um ou v´arios elementos da DOM. Para adicionar um listener a um elemento, ´e necess´ario especificar qual tipo de evento a ser manipulado, tipo de selector, o selector do elemento da DOM e a fun¸c˜ao ou conjunto de instru¸c˜oes a serem executadas.

Figura 3.24 – Javascript listener.

(66)

quando o utilizar clicar no elemento com o identificador “myBtn” as instru¸c˜oes ser˜ao executadas (na figura: action), neste caso, a fun¸c˜ao “displayDate(e)”.

Closures

Antes de descrever o que s˜ao closures ´e necess´ario definir o que ´e scope. Em qualquer linguagem de programa¸c˜ao scope ´e o controlo de visibilidade e o ciclo de vida das vari´aveis ou constantes presentes no programa [47].

Figura 3.25 – Javascript scope.

Com base na ilustra¸c˜ao da figura 3.25, pode-se identificar trˆes tipos de scope, dos quais temos:

• block scope: a vari´avel i s´o ´e vis´ıvel dentro deste. No entanto, a vari´avel a e b s˜ao vis´ıveis dentro deste.

• function scope: as vari´aveis dentro deste scope s´o existem dentro do mesmo, ou seja, b e i n˜ao existem fora deste.

• global scope: todas as vari´aveis que pertencem a este est˜ao vis´ıveis em qualquer parte da aplica¸c˜ao.

(67)

Pode-se assumir que o ideal ´e declarar todas as vari´aveis da aplica¸c˜ao no global scope uma vez que, desta forma, todas as vari´aveis est˜ao sempre vis´ıveis para o cont´ınuo acesso da aplica¸c˜ao. No entanto, esta pr´atica pode causar intera¸c˜oes indesej´aveis entre outras vari´aveis existentes em outras aplica¸c˜oes, frameworks, widgets ou at´e com o pr´oprio navegador [47]. Deste modo, ´e boa pr´atica utilizar closures para encapsular informa¸c˜oes relativas da aplica¸c˜ao.

Uma closure ´e a combina¸c˜ao de uma fun¸c˜ao e de todo o ambiente l´exico que essa fun¸c˜ao engloba. Em outras palavras, com uma closure ´e poss´ıvel ter acesso as caracter´ısticas de uma fun¸c˜ao outer atrav´es de uma fun¸c˜ao inner e guardar o seu estado atrav´es de uma referˆencia, (Figura3.26) 1[23, 47].

(68)

3.2.5

AngularJS

AngularJS ´e uma framawork do Javascript baseada na arquitetura MVC para desenvolvimento de aplica¸c˜oes Web dinˆamicas. Atualmente, esta framework ´e open source mas

originalmente desenvolvida pela Google [52, 35].

Esta framework substitui atributos HTML por diretivas e vincula os dados ao HTML com express˜oes, estas podem ser criadas pelo programador ou utilizadas a partir de um conjunto de diretivas que s˜ao disponibilizadas pelo AngularJS, das quais temos:

• ng-app : vincula uma aplica¸c˜ao AngularJS ao elemento div HTML; • ng-init : inicializa¸c˜ao de dados da aplica¸c˜ao;

• ng-controller : vincula um controlador a View da aplica¸c˜ao; • ng-model : vincula o valor de um input a aplica¸c˜ao;

• ng-bind : vincula os dados da aplica¸c˜ao a View ;

Na ilustra¸c˜ao da Figura 3.27, o real¸cado a verde corresponde `a vincula¸c˜ao de uma aplica¸c˜ao AngularJS a um elemento HTML, j´a a vermelho refere-se ao seu controlador. Por sua vez, os dados s˜ao vinculados no destacado a azul `a aplica¸c˜ao, isto ´e, ng-model (cor-de-rosa). O mesmo acontece no inverso, ou seja, os dados da aplica¸c˜ao podem ser vinculados a partir do que se encontra a cor-de-rosa `a View (ng-bind).

(69)

Figura 3.27 – AngularJS exemplo.

3.2.6

Tecnologias para ambiente 3D na WEB

Com WebGL sendo o novo padr˜ao para gr´aficos 3D na Web, torna-se poss´ıvel aos programadores aproveitar todo o poder do hardware para renderiza¸c˜ao de gr´aficos utilizando apenas JavaScript, um browser e uma cole¸c˜ao de tecnologias Web padr˜ao. A renderiza¸c˜ao 3D no WebGL ´e an´aloga ao desenho 2D utilizando o elemento Canvas (sec¸c˜ao3.2.1), na medida em que tudo ´e feito atrav´es de c´odigo JavaScript. Contudo, para aceder ao WebGL ´e fornecido ao consumir o elemento canvas existente e obter o seu contexto de desenho de forma espec´ıfica ao WebGL [46].

Uma parte desta disserta¸c˜ao consiste em modela¸c˜ao de ambientes 3D na Web e para isso como foi referido anteriormente esta modela¸c˜ao assenta sobre o WebGL. Com isso foi utilizada uma framework de javascript com o objectivo de abstrair de t´ecnicas puramente 3D e que utilize o padr˜ao para desenho de modelos em 3D na web.

(70)

Babylon.js ´e uma motor para jogos 3D baseado em WebGL e javascript criado por David Catuhe e David Rousset. Babylon.js ´e uma framework nova e menos popular do que Three.js, embora mais acess´ıvel. ´E ainda open source e orientada para cria¸c˜ao de jogos, com v´arios ferramentas/recursos desenvolvidos especificamente para jogos tais como: gamepad camera, instˆancias acelera¸c˜ao de hardware, e entre outras [18].

Three.js ´e uma framework JavaScript/API cross-browser utilizada para criar e exibir gr´aficos 3D animados em navegadores Web. Three.js utiliza WebGL e ´e opensource com mais de 650 contribuidores no total entretanto foi lan¸cada por [17].

PlayCanvas ´e um motor de jogo 3D / motor de aplica¸c˜oes interativas 3D opensource, permite a edi¸c˜ao simultˆanea de v´arios computadores na cloud atrav´es de uma interface no browser. Ela ´e executada em navegadores Web modernos que suportam o WebGL, dois quais Mozilla Firefox e Google Chrome [26].

3.3

Algoritmos para reconhecimento de ciclos em

grafos

Um grafo ´e uma estrutura que equivale a um conjunto de objetos em que alguns destes objetos est˜ao, de certo modo, ”relacionados”. Os objetos correspondem a abstra¸c˜oes matem´aticas chamadas v´ertices (tamb´em chamados de n´os ou pontos) e cada um dos pares de v´ertices relacionados ´e chamado de aresta (tamb´em chamado de arco ou linha). Normalmente, um grafo ´e representado em diagramas (Figura

3.28) por um conjunto de pontos, unidos por linhas ou curvas [60].

Relativamente aos grafos, um ciclo ou caminho fechado (Figura3.29) ´e um subgrafo de um grafo onde os seus v´ertices est˜ao conectados em uma s´erie fechada. Em vista a encontrar todos os ciclos de grafos podemos referir-nos ao DFS (Deepth Search First) que ´e um algoritmo de pesquisa que percorre um grafo em profundidade e

(71)

Figura 3.28 – Grafo sem direc¸c˜ao. Fonte: [7]

utiliza uma stack para ”lembrar”dos v´etices que percorreu e saber qual o pr´oximo v´ertice a percorrer, quando ´e encontrado um v´ertice ”sem sa´ıda”.

Este algoritmo funciona seguindo tres regras:

1. Regra 1: Visitar o v´ertice n˜ao visitado adjacente. Marcar como visitado. Colocar na stack.

2. Regra 2: Se nenhum v´ertice adjacente for encontrado o v´ertice atual ´e retirado da stack e continua o processo.

3. Regra 3: Repetir regra 1 e 2 at´e que a stack esteja vazia.

No entando, com as regras anteriormente descritas n˜ao ´e poss´ıvel encontrar ciclos diretamente mas se termos em conta o teorema que refere que “Um grafo tem ciclo se e somente se for exibida uma aresta j´a conhecida (presente na stack) durante o DFS. Com isto, podem-se executar DFS para o grafo e verificar as arestas anteriormente visitadas (tamb´em chamadas de back edges)”, ´e concreto afirmar que o algoritmo DFS tem a capacidade de encontrar os ciclos de um grafo.

(72)
(73)
(74)

4

Conce¸c˜

ao

A aplica¸c˜ao web que se pretende implementar ´e designada por SIS (Sound Insulation Software), esta tem como fun¸c˜ao realizar simula¸c˜oes do isolamento sonoro de um piso inteiro. Para tal, ´e necess´ario projetar todos os conceitos l´ogicos a serem desenvolvidos.

Este cap´ıtulo tem como objectivo discriminar toda a parte conceptual utilizada para a implementa¸c˜ao da aplica¸c˜ao, sendo este um passo primordial para o desenvolvimento de um software de qualidade, fi´avel e eficiente. Com isso, todas as aplica¸c˜oes devem respeitar os princ´ıpios da Engenharia do Software que est˜ao representados nos subcap´ıtulos que se seguem.

4.1

Arquitectura da Aplica¸c˜

ao

A arquitetura que regir´a a aplica¸c˜ao ´e designada de MVC (Model View Controller), esta arquitectura divide a aplica¸c˜ao em trˆes partes que est˜ao interconectadas, Figura

4.1.

Estas trˆes partes mais detalhadamente s˜ao descritas como: 47

(75)

1. Model : cont´em o n´ucleo funcional da aplica¸c˜ao, respons´avel por encapsular os seus dados disponibilizando os m´etodos que podem ser usados no processamento dos mesmos. Este componente ´e independente dos componentes view e controller, permitindo que m´ultiplas views possam solicitar aos mesmos dados.

2. Controller : controla as intera¸c˜oes entre a view e o model, uma vez que ´e da sua responsabilidade receber os pedidos dos utilizadores, traduzi-los em a¸c˜oes que podem ser realizados pelo model e gerar as respetivas respostas com os dados que lhe forem retornados.

3. View: respons´avel por apresentar os dados ao utilizador.

Mais detalhadamente, todas as opera¸c˜oes funcionais que o utilizador pode realizar na aplica¸c˜ao est˜ao dispon´ıveis na View (ou tamb´em User Interface UI). Estas opera¸c˜oes s˜ao controladas pelo Controller que ´e respons´avel por invocar o Model para concretizar as opera¸c˜oes e atualizar a View.

4.2

Levantamento de Requisitos

No decorrimento do subcap´ıtulo anterior foi definido o conceito de View (interface do utilizador), no que, atrav´es desta, o utilizador usa as funcionalidades do sistema. Com isso, para respeitar os bons princ´ıpios da Engenharia do Software o sistema tem de ser primeiramente especificado nos seus requisitos que ir˜ao ser compostos em funcionalidades.

O levamento de requisitos est´a dividido em funcionais e n˜ao funcionais. No que se refere aos requisitos funcionais, representam funcionalidades da aplica¸c˜ao e as intera¸c˜oes que os utilizadores possam ter. J´a os requisitos n˜ao funcionais determinam caracter´ısticas do sistema.

(76)

Figura 4.1 – Arquitectuira MVC [9].

4.2.1

Requisitos Funcionais

Os requisitos funcionais do sistema que se pretende implementar s˜ao:

1. O sistema dever´a ter um sistema de autoriza¸c˜ao e autentica¸c˜ao por token e login respectivamente;

2. O sistema dever´a permitir a utilizadores autenticados a consulta dos seus materiais;

(77)

3. O sistema dever´a permitir a utilizadores autenticados a altera¸c˜ao de materiais; 4. O sistema dever´a permitir a utilizadores autenticados a cria¸c˜ao de novos

materiais;

5. O sistema dever´a permitir a utilizadores autenticados a remo¸c˜ao de materiais; 6. O sistema dever´a permitir a utilizadores autenticados a cria¸c˜ao de novos

projetos e da sua caracteriza¸c˜ao;

7. O sistema dever´a permitir a utilizadores autenticados a remo¸c˜ao dos seus projetos;

8. O sistema dever´a permitir a utilizadores autenticados o desenho/manipula¸c˜ao de uma planta em 2D relativa a um projeto;

9. O sistema dever´a ser capaz de criar modelo 3D de plantas anteriormente desenhadas por utilizadores autenticados;

10. O sistema dever´a guardar periodicamente informa¸c˜oes do projeto no ato de desenho;

11. O sistema dever´a permitir a utilizadores autenticados atribuir materiais aos elementos do desenho;

12. O sistema dever´a permitir a utilizadores autenticados caracterizar todos os elementos do desenho;

13. O sistema dever´a permitir a utilizadores autenticados realizar simula¸c˜oes dos projetos;

14. O sistema dever´a permitir a utilizadores autenticados manusear dinamicamente resultados de simula¸c˜oes;

4.2.2

Requisitos n˜

ao Funcionais

(78)

1. O sistema dever´a estar online;

2. O sistema dever´a ser acess´ıvel atrav´es de qualquer dispositivo que tenha acesso `a Internet;

3. O sistema dever´a apenas ter conte´udos de natureza restrita;

4. O sistema dever´a fazer a autentica¸c˜ao atrav´es do email mais password com HASH e Salt;

5. O sistema dever´a fazer a autoriza¸c˜ao atrav´es de uma assinatura digital (token); 6. O sistema dever´a permitir a filtragem de materiais por tipo (Associado a RF

no2);

7. O sistema dever´a caracterizar os materiais nos seus respectivos grupos: (a) grupo 1: slab e ceiling;

(b) grupo 2: fa¸cade, wall e eco;

(c) grupo 3: door, window e glazed curtain; (d) grupo 4: Trickle Vent.

8. O sistema n˜ao dever´a permitir a altera¸c˜ao ou cria¸c˜ao de materiais com parˆametros de distintos grupos (Associado a RF no3 e 4 e RNF no7);

9. O sistema dever´a processar toda a informa¸c˜ao dos desenhos num modelo de dados leg´ıvel pela aplica¸c˜ao (Associado ao RF no

8), mais informa¸c˜oes na sec¸c˜ao 4.5;

10. O sistema dever´a verificar a validade e fazer reformula¸c˜ao do modelo de dados relativo ao desenho (Associado ao RF no 8 e 9), mais informa¸c˜oes na sec¸c˜ao 4.5;

11. O sistema dever´a atualizar o projeto na base de dados num intervalo de 10 minutos (Associado ao RF no 10);

(79)

12. O sistema dever´a inibir a utiliza¸c˜ao da plataforma 3D a utilizadores que n˜ao tenham materiais suficientes;

13. O sistema dever´a fazer a sele¸c˜ao de materiais validos para atribui¸c˜ao aos elementos de desenho (Associado ao RF no 11 e RNF no 7);

14. O sistema dever´a permitir a atribui¸c˜ao de caracter´ısticas adicionais que respeitem o RNF no

7. (Associado ao RF no

12). Estas caracter´ısticas s˜ao evidenciadas mais nos subcap´ıtulos que se seguem;

15. O sistema dever´a ser capaz de criar perfis autom´aticos (sec¸c˜ao4.5) de caracteriza¸c˜ao de elementos de desenho para habilitar as simula¸c˜oes (Associado a RF no

13).

4.3

Diagrama Entidades e Relacional

O diagrama de Entidades e Relacionamento determina toda a l´ogica e descreve como as entidades ir˜ao se relacionar e quais as suas caracter´ısticas. Deste modo, pode-se definir os elementos principais de um diagrama ER como:

1. Entidate - representa um objecto que cont´em atributos que lhe s˜ao comuns, exemplo: pessoa e carro.

2. Atributo - representa propriedades dos Relacionamentos ou entidades, exemplo: nome da pessoa.

3. Relacionamento - representa a relac˜ao entre entidades. exemplo: uma pessoa tem um carro. Os relacionamentos podem ser tamb´em classificados quanto a sua multiplicidade:

(a) 1...1 (um para um); (b) 1...* (uma para muitos);

(80)

(d) X...Y (onde o valor de X representa o valor m´ınimo e o Y representa o valor m´aximo).

Quanto ao SIS temos o diagrama representado na Figura4.2podendo ser interpretado da seguinte forma:

1. Um utilizador tem 0 ou mais materiais;

2. Um material s´o pode pertencer a um e s´o um utilizador; 3. Um utilizador tem 0 ou mais projetos;

4. Um projeto s´o pode pertencer a um e s´o um utilizador; 5. Um projeto tem um e s´o um desenho;

6. Um desenho pertence a um e s´o um projeto;

Atrav´es da tabela Draw 2d ´e poss´ıvel identificar que esta ´e composta por todas as componentes do desenho que s˜ao Serializadas em JSON Strings. Esta caracter´ıstica ´e necess´aria para guardar o estado do desenho na View, sendo que estes atributos representam um modelo de dados complementar (subsec¸c˜ao 4.5) ao modelo de base de dados representado nesta subsec¸c˜ao.

(81)

Figura 4.2 – Diagrama ER

4.4

Diagrama Casos de Uso

O diagrama de Caso de Uso representa de forma simplificada todos as funcionalidades que os utilizadores (atores) do sistema podem efetuar. As suas componentes s˜ao:

1. Atores - algu´em ou algo que interage com o sistema;

2. Casos de uso - funcionalidades do sistema, descritas no Levantamento de requisitos;

Imagem

Figura 2.1 – Caminhos de transmiss˜ ao sonora (geometria regular)
Figura 3.1 – Sistema de trˆes camadas.
Figura 3.3 – Estrutura de uma mensagem HTTP.
Figura 3.13 – Java EE multicamada.
+7

Referências

Documentos relacionados

Pode acontecer que outros já fizeram a mesma operação, com a mesma maneira de fazer, ou já viram em outro lugar, mas verão que estou fazendo e fotografando da minha maneira, e

Principais mudanças na PNAB 2017  Estratégia Saúde da Família/Equipe de Atenção Básica  Agentes Comunitários de Saúde  Integração da AB e Vigilância 

Pero el hecho de que los pastores de almas tuvieran que in- sistir constantemente en algunos de sus deberes, bastaría para probar que muchas «vírgenes de Cristo» estaban lejos de

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Chora Peito Chora Joao Bosco e Vinicius 000 / 001.. Chão De Giz Camila e

O desenvolvimento das interações entre os próprios alunos e entre estes e as professoras, juntamente com o reconhecimento da singularidade dos conhecimentos

Como eles não são caracteres que possam ser impressos normalmente com a função print(), então utilizamos alguns comandos simples para utilizá-los em modo texto 2.. Outros

Através de uma chave seletora manual, é possível programar o número de pulsos que o relé deve contar, de maneira que, quando a contagem de pulsos for igual ao valor programado na