• Nenhum resultado encontrado

MODELAGEM UML DOS SUBSISTEMAS

No documento 2011.2 TCC Final (páginas 39-48)

O diagrama de casos de uso apresenta as formas de interação dos atores com

o sistema. Dentro do projeto existem dois atores: o usuário e o gerente. O usuário

possui duas ações possíveis no sistema: buscar valor de um tag em tempo real e

buscar o histórico de um tag, como apresentado na figura 17. Além de buscar tags o

gerente possui os papeis de criar, editar e deletar tags e pointesources.

O sistema é composto por pacotes com funções específicas, por isso na

modelagem as estruturas são divididas e cada um destes pacotes contém o conjunto

de classes necessárias para desempenhar corretamente sua função no sistema. A

figura 18 apresenta o diagrama de pacotes de classes do sistema. O primeiro pacote

é o interface, que possui a função de coletar os dados da fonte e enviar ao pacote de

armazenamento e é executado no servidor de coleta de dados possuindo três classes:

PrincipalInt, Coleta e Transmissão.

O segundo pacote é o de armazenamento que é responsável por compactar e

guardar as informações no banco de dados. Ele é executado no servidor de dados e

Figura 16: Modelo de banco de dados Temporal

Fonte: Próprio autor

Figura 17: Modelagem de casos de uso do sistema

Fonte: Próprio autor

possui três classes: Principal, Leitura e Compressão.

O terceiro pacote é o de visualização que tem como característica principal

exibir a informação desejada ao usuário.

Ele é executado por um serviço web

presente no mesmo servidor do banco de dados e possui as classes PrincipalWeb,

ConsultaHistórico e ConsultaTempoReal. À frente serão detalhadas as classes de

cada módulo.

Figura 18: Diagrama de pacotes

Fonte: Próprio autor

No módulo de coleta, a classe PrincipalInt tem como variável o atributo

EntradaUsuário que é lido e passado como parâmetro para os métodos ParaColeta()

e IniciaColeta(). A classe Coleta lê o dado pelo método Leitura() e valida o dado a ser

armazenado, retornando-o para a classe Transmissão que possui a função de enviar a

informação ao sistema de armazenamento utilizando o método EscreveModLeitura().

O pacote coleta é melhor apresentado na figura 19.

O módulo de armazenamento, apresentado na figura 20, interage diretamente

com o banco de dados. A classe Principal executa os métodos IniciaArmazenamento()

e ParaArmazenamento().

A classe Leitura aguarda os dados chegarem da

interface pelo método LeColeta().

A cada dado recebido é executado o método

TesteParalelogramo() que faz a análise de compressão com base no algoritmo

Swinging Doors.

Este lê o desvio definido para a tag e o tempo máximo de

compressão, cria o paralelogramo de análise e armazena o dado comprimido.

Figura 19: Classes do pacote Coleta

Fonte: Próprio autor

Figura 20: Classes do pacote armazenamento

Fonte: Próprio autor

O pacote visualização, apresentado na figura 21, possui classes que

fazem busca, tanto do valor histórico (ConsultaHistorico), quanto em tempo real

(ConsultaTempoReal).

Ambas sobrescrevem o método BuscaTag() da classe

PrincipalWeb.

Na classe ConsultaTempoReal é lida uma tag a partir do método

BuscaValorAtual() e é retornado um único valor do snapshot.

Já o método

BuscaHistórica() retorna o período desejado pelo método TempoValido() e busca um

vetor de valores com suas respectivas datas.

Os casos de interação mais complexos são detalhados em diagramas de

atividades apresentados nas figuras 22 e 23.

Figura 21: Classes do pacote Visualização

Fonte: Próprio autor

No processo de buscar valores das tags em tempo real, o usuário deve

selecionar a tag desejada. O sistema deve buscar o valor atual e mostrar via browser

o valor da tag desejada em tempo real. Caso não exista a tag é retornada uma

mensagem de erro, como mostrado na figura 22. Como esta é a busca de um valor em

tempo real, há a necessidade de que essa atividade ocorra não somente ao buscar

a tag, mas durante todo o momento que a página esteja no browser, fazendo as

atualizações da exibição quando ocorrerem mudanças de valor.

Para uma busca de histórico de tags o usuário inicia a consulta da mesma forma

que para uma tag em tempo real. Após a confirmação da existência da tag o usuário

deve entrar com um período de tempo válido. Assim, o sistema verifica a validade do

tempo e exibe os dados para o período como apresentado na sequência de atividades

da figura 23.

O diagrama de atividades da figura 24 apresenta o funcionamento do módulo

de coleta. Uma vez recebido o dado, é feita a análise do instrumento fonte. Existindo

o instrumento, é lido o tipo do dado que o instrumento transmitiu. Em seguida, é feita

a verificação da validade do tipo da informação. Uma tag do tipo inteiro, por exemplo,

não deve receber uma string, sendo o dado descartado. Caso o dado seja válido o

valor é enviado para o sistema de armazenamento e a rotina é finalizada.

Para a rotina de armazenamento, apresentada no diagrama da figura 25, a

cada valor novo que chega da interface, uma sequência de passos é realizada a fim

de permitir a gravação da informação no banco. Recebendo um novo valor é buscada

Figura 22: Diagrama de atividades da busca de valor real

Fonte: Próprio autor

Figura 23: Diagrama de atividades da busca de valor histórico

Fonte: Próprio autor

a tag referente ao instrumento. Caso exista a tag, é lido o desvio e aplicado o algoritmo

de compressão. Se a resposta do algoritimo for positiva, o dado é armazenado. Se

negativa o dado é descartado.

Figura 24: Diagrama de estados da coleta

Fonte: Próprio autor

Já com os dados armazenados no banco o usuário consultará o histórico de

uma tag como apresentado na sequência da figura 26. Para tanto, o usuário deve

buscar por uma tag. Caso a tag exista, o sistema retorna a confirmação de existência.

Em sequência, o usuário deve inserir o período de interesse, o sistema confirma a

validade e retorna um vetor composto pelos valores e tempos armazenados no banco

dentro do período desejado.

Quanto à implantação, o sistema apresentará a estrutura física exibida no

diagrama da figura 27.

A estação de trabalho Nomad II se comunica via porta

serial RS232 com a interface de coleta, que envia os dados para o servidor de

armazenamento. No servidor de banco de dados as informações são pré-tratadas

e armazenadas. O serviço Web implantado no mesmo servidor de banco de dados se

utilizará dessas informações armazenadas para fornecer visualizações ao cliente via

browser.

Figura 25: Diagrama de estados do Armazenamento

Figura 26: Exemplo de sequência para consulta de um dado histórico

Fonte: Próprio autor

Figura 27: Diagrama de implantação do sistema

4

DESENVOLVIMENTO

Nesta seção serão citadas todas as etapas de desenvolvimento dos

subsistemas e todas as ferramentas com as respectivas tecnologias para o

funcionamento de cada aplicativo desenvolvido. Para o desenvolvimento de toda a

aplicação foi utilizada a linguagem de programação Java.

Além da familiaridade, Java é uma linguagem segura, pois tem mecanismos

de encapsulamento que garantem a confidencialidade da informação; é dinâmica,

possibilitando criar aplicações Web que interajam com o usuário como se fossem

aplicações instaladas em um computador; possui interação facilitada com uma

infinidade de bancos de dados, já que possui um conjunto de bibliotecas de acesso a

bancos de dados, inclusive banco de dados SQL. (DEITEL, 2005)

No documento 2011.2 TCC Final (páginas 39-48)

Documentos relacionados