• Nenhum resultado encontrado

3. DESENVOLVIMENTO

3.1. PROJETO

3.1.4. Diagramas UML

Abaixo são apresentados os diagramas UML com suas devidas explicações. Foram utilizados os diagramas que representam aspectos da estrutura e aspectos dinâmicos do sistema.

3.1.4.1. Diagrama de Caso de uso

Diagramas de caso de uso descrevem os requerimentos funcionais do sistema de maneira conceitual entre usuários e desenvolvedores de sistemas. Ele fornece uma descrição consistente e clara sobre as responsabilidades que devem ser cumpridas pelo sistema, além de formar a base para a fase de desenho (FURLAN, 1998).

O sistema possui dois atores, o usuário e o administrador; por este motivo foi construído dois diagramas de caso de uso, um para cada ator, conforme mostra a Figura 28 e a Figura 29.

A figura abaixo ilustra todas as ações que o administrador tem condições de realizar.

ud Caso de uso do Administrador

Administrador Aprov ar/Reprov ar

Cadastro do Usuário

Fazer Login

Listar Requisições Pendentes de

usuários

Excluir Usuários

Listar Usuários Fazer

Administração do Site Fazer Manutenção

do Observ atório Ver Utilização do

Telescópio Modificar Agendamento

Ver Cadastro de Usuários

Figura 28. Diagrama de caso de uso do administrador

O diagrama de caso de uso do usuário ilustra todas as ações que o usuário é capaz de realizar.

ud Caso de uso do usuário

Usuário Preencher

Cadastro

Submeter Cadastro

Confirmar Cadastro

Alterar Cadastro

Pedir Exclusão do Cadastro Ver Condições

Metereológicas

Listar Requisições Pendentes

Preencher Requisição

Submeter Requisição

Alterar Requisição

Excluir Requisição

Fazer Login

Figura 29. Diagrama de caso de uso do usuário

3.1.4.2. Diagrama de Classes

O diagrama de classes representa a estrutura lógica estática em uma superfície e a coleção de elementos que descrevem o modelo e as suas relações. Cada classe descreve as ações que serão realizadas. A Figura 30 descreve as classes desse sistema, que são: Gerenciador, Escalonador, Meteorologista, Executor, Astrônomo e Temporizador; todos com as suas devidas ações a serem realizadas.

c d As tra W e b

TW e b Mo d u le TW e bM odule 1

# p p In d e x: TP a g e P ro d u ce r*

# C lie n tS o cke t: TC lie n tS o cke t*

# p p P rin cip a l: TP a g e P ro d u ce r*

# p p C a d a s tro : TP a g e P ro d u ce r*

# p p R e q u is ica o : TP a g e P ro d u ce r*

# p p L o g in In va lid o : TP a g e P ro d u ce r*

# Tim e rTim e o u t: TTim e r*

# p p E s q u e ce u S e n h a : TP a g e P ro d u ce r*

# p p E n vio u S e n h a : TP a g e P ro d u ce r*

# p p R e q P e n d e n te s : TP a g e P ro d u ce r*

# p p R e q L is ta : TP a g e P ro d u ce r*

- a Tim e o u t: b o o l

# W e b Mo d u le 1 Actio n S u b m itR e q u e s tActio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id

# W e b Mo d u le 1 P o s tL o g in Actio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id

# p p P rin cip a lH TML Ta g (TO b je ct*, TTa g , An s iS trin g , TS trin g s *, An s iS trin g & ) : vo id

# W e b Mo d u le 1 Ge tP rin cip a lActio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id

# Tim e rTim e o u tTim e r(TOb je ct*) : vo id

# W e b Mo d u le 1 a cS u b m itS e n h a Actio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id

# W e b Mo d u le 1 a cS u b m itR e q u is ica o Actio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id

# p p R e q u is ica o H TML Ta g (TO b je ct*, TTa g , An s iS trin g , TS trin g s *, An s iS trin g & ) : vo id

# p p R e q P e n d e n te s H TML Ta g (TO b je ct*, TTa g , An s iS trin g , TS trin g s *, An s iS trin g & ) : vo id

# W e b Mo d u le 1 a cR e q u is ica o Actio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id

# W e b Mo d u le 1 a cR e s P e n d e n te s Actio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id

# W e b Mo d u le 1 a cS u b m e te C a d a s tro Actio n (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id - Ve rifica P a ra m e tro s C o rre to s U R L (TO b je ct*, TW e b R e q u e s t*, TW e b R e s p o n s e *, b o o l& ) : vo id - C o n n e ctTo As tra K e rn e l() : b o o l

- D is co n n e ctTo As tra K e rn e l() : vo id - S e n d Me s s a g e To As tra K e rn e l(S trin g ) : in t - S e n d Fie ld s To As tra K e rn e l() : in t

- S e n d Fie ld s To As tra K e rn e l(S trin g ) : in t - R e ce ive Me s s a g e Fro m As tra K e rn e l() : S trin g - G e tR e q u e s tFie ld s () : S trin g

- G e tQ u e ryFie ld s () : S trin g - G e tQ u e ryFie ld (S trin g ) : S trin g + TW e b Mo d u le 1 (TC o m p o n e n t*)

Figura 30. Diagrama de classes do Astra Web

c d As tra Ke rne l

C lL o g ClAs tronom o

# C lAs tro n o m o (vo id )

# Fa ca _ R e d u ca o _ a o _ D ia (TD a te Tim e , d o u b le , d o u b le , TD a te Tim e , d o u b le *, d o u b le *) : vo id

# D e te rm in e _ P e rio d o _ Vis ive l_ n a _ D a ta (TD a te Tim e , d o u b le , d o u b le , TD a te Tim e , TD a te Tim e *, TD a te Tim e *) : vo id

# C a lcu le _ D a ta _ Ju lia n a (flo a t, TD a te Tim e , flo a t) : flo a t

# C a lcu le _ Te m p o _ S id e ra l(flo a t, flo a t) : flo a t

# C a lcu le _ An g u lo _ H o ra rio (flo a t, flo a t) : flo a t

# C a lcu le _ Z(flo a t, flo a t) : flo a t

# C a lcu le _ Altu ra _ As tro (TD a te Tim e , d o u b le , d o u b le , TD a te Tim e , TD a te Tim e ) : flo a t

ClEx e c utor - Me te o ro lo g is ta : C lMe te o ro lo g is ta * - Te m p o riza d o r: C lTe m p o riza d o r*

- D rive rS E : C lD rive rS E * - C a rte iro : C lC a rte iro * - Ta b U s u a rio s : C lTa b U s u a rio s * - Ta b As tro s : C lTa b As tro s *

- Ta b R e q u is ico e s _ U s u a rio : C lTa b R e q u is ico e s _ U s u a rio * - a Tim e o u t: b o o le a n

+ C lE xe cu to r(vo id )

+ E xe cu te _ R e q u is ica o (s R e g is tro R e q u is ica o ) : in t - _ Tim e o u t() : vo id

- _ In icie Te m p o riza ca o (in t, in t) : vo id C lL o g

ClEs c a lona dor + As tro n o m o : C lAs tro n o m o *

- m e n s a g e m : S trin g - E xe cu to r: C lE xe cu to r*

- Te m p o riza d o r: C lTe m p o riza d o r*

- C a rte iro : C lC a rte iro * - Ta b H o ra rio s : C lTa b H o ra rio s *

- Ta b R e q u is ico e s _ U s u a rio : C lTa b R e q u is ico e s _ U s u a rio * - Ta b R e q u is ico e s : C lTa b R e q u is ico e s *

- Ta b U s u a rio s : C lTa b U s u a rio s * - Ta b As tro s : C lTa b As tro s *

# C lE s ca lo n a d o r(vo id )

# R e q u is ica o _ Te rm in a d a () : in t

# E s ca lo n e _ R e q u is ica o (TS trin g L is t*, s R e g is tro R e q u is ica o , b o o l) : S trin g

- _ Ve rifiq u e _ As tro _ Vis ive l_ N a _ D a ta (TD a te Tim e , TD a te Tim e , d o u b le , d o u b le , TD a te Tim e ) : b o o l - Ve rifiq u e _ As tro _ Vis ive l(s R e g is tro R e q u is ica o ) : b o o l

- _ E xe cu te _ R e q u is ica o () : vo id

- _ In icie _ Te m p o riza ca o _ E s ca lo n a m e n to () : in t

- _ Ag ru p e _ R e q u is ica o (TS trin g L is t*, s R e g is tro R e q u is ica o *, TD a te Tim e , TD a te Tim e ) : in t - _ E xclu i_ R e q u is ica o _ B a n co (in t) : vo id

- _ E s ca lo n e _ R e q u is ica o _ P a ra (TS trin g L is t*, s R e g is tro R e q u is ica o , TD a te Tim e , TD a te Tim e , b o o l) : S trin g - _ Ve rifiq u e _ R e s trico e s (s R e g is tro R e q u is ica o ) : S trin g

ClGe re nc ia dor - Me te o ro lo g is ta : C lMe te o ro lo g is ta *

- E s ca lo n a d o r: C lE s ca lo n a d o r*

- C a rte iro : C lC a rte iro * - Ta b U s u a rio s : C lTa b U s u a rio s * - Ta b As tro s : C lTa b As tro s * - Ta b H o ra rio s : C lTa b H o ra rio s * - Ta b R e q u is ico e s : C lTa b R e q u is ico e s * - Ta b Me te o ro lo g ico s : C lTa b Me te o ro lo g ico s *

- Ta b R e q u is ico e s _ U s u a rio : C lTa b R e q u is ico e s _ U s u a rio * - Ta b In s titu ico e s : C lTa b In s titu ico e s *

- Ta b C a rg o s : C lTa b C a rg o s * - S e rve rS o cke t: TS e rve rS o cke t*

+ C lGe re n cia d o r(vo id ) + _ Fa z_ Te s te s () : vo id

+ _ C ria G ra fico C o n d ico e s (in t) : vo id + _ C ria G ra fico R e q (in t, in t) : vo id

- _ E fe tu a _ L o g in (S trin g , S trin g , s R e g is tro U s u a rio *) : in t

- _ O n S o cke tG e tTh re a d (S ys te m ::TO b je ct*, TS e rve rC lie n tW in S o cke t*, TS e rve rC lie n tTh re a d *& ) : vo id - _ Tra ta Me n s a g e m W e b (S trin g , S trin g *) : vo id

- _ Tra ta Me n s a g e m L o g in (TS trin g L is t*) : S trin g - _ Tra ta Me n s a g e m Ge tN u m R e q (TS trin g L is t*) : S trin g - _ Tra ta Me n s a g e m E s q u e ce u S e n h a (TS trin g L is t*) : S trin g - _ Tra ta Me n s a g e m S u b m e te R e q u is ica o (TS trin g L is t*) : S trin g - _ Tra ta Me n s a g e m Ge tN o m e As tro s (TS trin g L is t*) : S trin g - _ Tra ta Me n s a g e m Ge tR e q P e n d e n te s (TS trin g L is t*) : S trin g - _ Tra ta Me n s a g e m S u b m e te C a d a s tro (TS trin g L is t*) : S trin g

Figura 31. Diagrama de classes do Astra Kernel

3.1.4.3. Diagrama de Colaboração

O diagrama de colaboração descreve os métodos invocados, quem invoca e quem é invocado. Na Figura 32, as comunicações foram numeradas para facilitar a explicação das ligações.

Figura 32. Diagrama de colaboração

Abaixo é apresentada a descrição de cada ligação:

• Ligação 1: o Gerenciador recebe os parâmetros da interface Web e invoca o Escalonador para executar todo o processo de escalonamento;

• Ligação 2: o Escalonador invoca o Astrônomo, pois um dos passos do escalonamento é a consistência astronômica dos dados submetidos pelo usuário;

• Ligação 3: o Escalonador invoca o método Temporizador, sendo que este guarda a data e hora da próxima execução. Então caso o sistema tenha recebido uma nova requisição, o Temporizador deve ser atualizado;

• Ligação 4: o Temporizador invoca o Escalonador quando chegar a data e hora da requisição ser atendida;

• Ligação 5: caso o Escalonador tenha sido invocado para executar, ele invoca o Executor, que será responsável pela execução;

• Ligação 6: quando o Executor estiver ativado, ele invoca o Meteorologista para verificar as condições meteorológicas; e

Temporizador

Gerenciador

Escalonador Executor Meteorologista

Astrônomo 4

7

6

3

1

5 2

Servidor Web Interface

Interceptor Web

• Ligação 7: o Gerenciador invoca o Meteorologista quando precisa de informações meteorológica para alimentar o banco de dados ou quando um usuário requisitar informações meteorológicas atualizadas.

3.1.4.4. Diagramas de Seqüência

O diagrama de seqüência expõe o aspecto do modelo que enfatiza o comportamento dos objetos em um sistema em seqüência temporal de mensagem e representação das atividades e operações. Os objetos são desenhados em linhas verticais e a seqüência das linhas é lida de cima para baixo. Pode-se desenvolver um diagrama de seqüência para cada caso de uso existente. Nas próximas figuras serão apresentados os diagramas de seqüência que descrevem os principais casos de uso deste sistema. No apêndice são apresentados os diagramas de seqüência dos demais casos de uso.

No diagrama de seqüência do cadastro do usuário, o usuário acessa a interface, submete o cadastro que vai para o Gerenciador. O cadastro é enviado ao administrador que faz uma avaliação.

Caso esta avaliação seja positiva, o Gerenciador grava o cadastro no banco. Um retorno desta avaliação é enviado ao usuário.

s d C a d a s tr o d o U s u á r io

U s u á rio In te rfa c e G e re n c ia d o r Ad m

P re e n c h e c a m p o s d o c a d a s tro

S u b m e te c a d a s tro

S u b m e te c a d a s tro (d a d o s )

U s u á rio Va lid a C a d a s tro

Figura 33. Diagrama de seqüência do cadastro do usuário

A Figura 34 mostra o diagrama de seqüência da solicitação de uma requisição. O usuário preenche o cadastro e o submete. O Gerenciador envia-o ao Escalonador, que verifica com o Astrônomo se os dados astronômicos inseridos são válidos. Se não forem, ele envia uma mensagem ao usuário informando o problema. O Escalonador ainda verifica se existe choque com outras requisições nesta data e hora. Se for necessário reescalonar uma requisição, ele o faz. O Escalonador também verifica a possibilidade de agrupamento de requisições. Se a requisição for inserida, o Escalonador atualizará o Temporizador e retornará uma mensagem ao usuário.

s d Solic ita Re quis iç ã o

U s u á rio In te rfa ce G e re n cia d o r Es ca lo n a d o r As trô n o m o Te m p o riza d o r

Efe tu a lo g in

[s e n ã o a u te n tica d o ]: "lo g in in vá lid o "

[s e a u te n tica d o ]: P re e n ch e re q u is içã o

[s e re q u is içã o p re e n ch id a ]: S u b m e te re q u is içã o

In clu i R e q u is içã o

In clu i R e q u is içã o

Ve rifica r co n s is tê n cia d o s d a d o s a s tro n ô m ico s

[s e d a d o s in co n s is te n te s ]: "D a d o s in vá lid o s "

[s e d a d o s co n s is te n te s e s e n e ce s s ita r d e re e s ca lo n ]:

R e e s ca lo n a o u tra s re q u is içõ e s

[s e d a d o s a s tro n ô m ico s o k]:

E fe tu a e s ca lo n a m e n to

[s e d a d o s a s tro n ô m ico s o k]:

Atu a liza te m p o riza d o r [s e e s ca lo n a m e n to o k]: "R e q u is içã o a g e n d a d a co m s u ce s s o "

Figura 34. Diagrama de seqüência da requisição

A seguir serão mostrados, em forma de código estruturado, os passos que o sistema segue para a validação e possível inclusão de uma requisição no sistema.

C alcula a p rioridade da re quisição

Se (data e horário de observação foram especificados) então

Efe tua redução a o dia para a data e horá rio esp ecificad os a fim de verificar se o astro estará no m ínim o a 20o do horizonte Se (for perm itida a observação) então

S e (não houver nenhum a requisição para a data e horário especificados) então C adastra a n ova req uisição

S enão

Se (já houver um a requisição agendada para o m esm o astro na data e no horário especificados) então Ag ru pa re quisições

Senão

Se (prioridade da requisição já cadastrada for m aior ou igual que a prioridade da nova requisição) en tão m sg(“não é po ssíve l cad astrar a requisição para esta data e /ou ho rário !!”)

Senão

Increm e nta a p rioridad e da requisiçã o antig a C adastra a no va requisição

Efetua o reage ndam ento da requisição an tiga Senão

m sg(“não é possíve l cada strar a requisição !”) Se (apenas a data de observação foi especificada) então

Se (já houver um a requisição agendada para o m esm o astro na data especificada) então A grupa requisições

Senão

S e (na data especificada houver disponibilidade de horário no período de observação perm itido) então Busca horário disponível, efetua ndo a reduçã o ao dia , até encontra r um horário em que o astro e steja no m ínim o a 20o do horizonte

Se (for perm itida a observação) então C ad astra a n ova requisição Senão

m sg(“não é possível cadastrar a req uisição !”) S enão

Se (houver requisição com m enor prioridade) então

Efe tua redução ao dia para verificar se no horário da requisição d e m enor p riorid ade o astro e stará no m ínim o a 20o d o horizonte

Se (for perm itida a observação) então

Increm e nta a p rioridad e da requisiçã o antig a C adastra a no va requisição

Efetua o reage ndam ento da requisição an tiga Senão

m sg(“não é po ssíve l cad astrar a requisição !”) Senão

m sg(“não é possível cadastrar a req uisição !”) Se (apenas o horário de observação foi especificado) en tão

Se (já houver um a requisição agendada para o m esm o astro no horário especificado) então A grupa requisições

Senão

B usca data disponível, efetuando a redu ção ao dia , até encontra r um a data em que no h orário especifica do o astro este ja n o m ínim o a 20o do horizonte

S e (for perm itida a observação) então C adastra a n ova req uisição S enão

m sg (“n ão é possível cadastrar a requisição!”) Se (nem a data e nem o horário foram especificados) então

Se (já houver um a requisição agendada para o astro desejado) então A grupa requisições

Senão

B usca data e horário disp oníveis, efetuan do a re dução ao dia, até e nco ntrar um a data e um horário em que o a stro esteja n o m ínim o a 20o do horizonte

S e (for perm itida a observação) então C adastra a n ova req uisição S enão

m sg (“n ão é possível cadastrar a requisição”)

Figura 35. Passos que o sistema segue para a validação da requisição

O diagrama de seqüência da execução é ilustrado na Figura 36. O início da execução parte do Temporizador, que aciona o Escalonador na data e hora da execução. O escalonador verifica

qual será a requisição a ser atendida e envia o sinal ao Executor. O Executor verifica no Meteorologista as condições presentes, se estiverem dentro do limite aceitável pelo sistema, ele dá continuidade a execução, caso contrário, reagenda a requisição e envia uma mensagem ao usuário.

Se as condições estiverem de acordo, a requisição é executada e o Escalonador atualizado. O executor envia um sinal ao Sistema Embarcado do observatório que faz a captura da imagem. Esta imagem é enviada ao usuário solicitante.

s d Ex e c uç ã o

Es ca lo n a d o r

(fro m S o licita R e q u isiçã o ) Te m p o riza d o r

(fro m S o licita R e q u isiçã o )

Me te re o lo g is ta Exe cu to r

G e re n cia d o r

U s u á rio S E

[s e te m p o = te m p o d e e xe cu ta r]:

Aco rd a r!

E xe cu te

Ve rifica co n d içõ e s m e te o ro ló g ica s

re to rn a [s e co n ciçõ e s

m e te o ro ló g ica s n ã o p e rm itid a s ]: R e e s ca lo n a

[s e re q u is içã o re a g e n d a d a ]: a le rta d e re e s ca lo n a m e n to

E -m a il co m d a ta d o

re a g e n d a m e n to [s e co n d içõ e s m e te o ro ló g ica s

p e rm itid a s ]: E xe cu ta

Ativa d rive r d o s is te m a e m b a rca d o p a ra in te ra g ir co m a cú p u la e o te le s có p io

R e to rn a im a g e m o b tid a Atu a liza te m p o d e a co rd a r

[s e e xe cu çã o o k]: re to rn a im a g e m

E -m a il co m im a g e m

Figura 36. Diagrama de seqüência da execução da requisição

3.1.4.5. Diagrama de Implantação

O diagrama de implantação descreve a estrutura física do projeto. A Figura 37 ilustra esta estrutura: vários PCs conectados ao servidor, ou seja, usuários acessando o sistema para solicitar requisições de observações, o servidor ligado a uma estação meteorológica (para as verificações) e ligado também ao driver do sistema embarcado que é responsável pela interação com a parte mecânica do observatório (abertura da cúpula, movimentação do telescópio, etc.)

dd Dia gra m a de Im pla nta ç ã o

P C Re m oto P C Re m oto P C Re m oto

P C S e rvidor

Es ta ç ã o M e te orológic a

O bs e rva tório S is te m a Em ba rc a do

... ...

Figura 37. Diagrama de implantação

Documentos relacionados