• No results found

2. Methods

2.5 Independent Variables

2.5.1 Instruments for Independent Variables

2.5.1.2 Emotional vs. Social Loneliness Scale (ESLS)

Uma funcionalidade prevista durante o processo de implementação da camada de visualização foi a disponibilização de diversos idiomas para o SPV. Além disso, o sistema deveria ser desenvolvido de tal forma que fosse flexível a inserção de novas linguagens. Dessa forma, a comunicação não deve ser um problema do sistema com o usuário.

A solução encontrada foi a criação de um dicionário de dados para se integrado à arquitetura do CyberMedVPS. O dicionário foi definido por uma classe chamada de

DataDictionary a qual tem os métodos de leitura e inserção de dados no banco. Além

disso, tal classe é responsável por definir a estrutura do banco de dados que será composta por apenas uma tabela chamada datadictionary que é formada pelos atributos

variável, inglês e português. Outro elemento responsável pelo dicionário de dados é o

gerenciador de informações representado pela classe ManagerDB. Essa classe utiliza a

(a)

(b)

(c)

61 biblioteca nativa java.sql.* para realizar as chamadas para o banco. A classe designada para conferir a escolha da linguagem utilizada no CyberMedVPS é a InitialScreen, cujo leiaute é mostrado na Figura 34. Tal classe é a tela inicial na execução do SPV.

Figura 34. Leiaute da classe InitialScreen.

Após o usuário definir qual linguagem deseja utilizar com o CyberMedVPS, a classe InitialScreen passa o valor da decisão do usuário por meio de uma variável pública estática chamada de option para a classe ManagerDB (Figura 35a). Tal classe faz o acesso dos valores delimitados no banco de dados (Figura 35b) e repassa para outras classes do CyberMedVPS, por meio dos métodos abrirBanco e searchLanguage.

Caso seja a primeira execução do SPV em um determinado SO, é chamada a classe TesteDB para criar o banco no sistema e inserir os dados na tabela para o CyberMedVPS funcionar corretamente. A criação do banco de dados ocorre quando o TesteDB chama os métodos criarBanco e criarTabelas do ManagerDB (Figura 35c). Em seguida, as informações são armazenadas na tabela e no formato correto, devido à chamada do construtor da classe DataDictionary (Figura 35d). Por fim, todas essas informações são armazenadas no banco de dados.

Figura 35. Dicionário de dados no CyberMedVPS.

new DataDictionary(...)

(d)

criarBanco() criarTabelas(...) gravar()

(e)

abrirBanco() searchLanguage() InitialScreen.option

(a)

(c)

(b)

62 Para adicionar uma nova linguagem no CyberMedVPS, é preciso criar uma nova coluna na tabela datadictionary. Além disso, é necessário adicionar uma nova opção na classe InitialScreen para conferir se essa nova linguagem foi a escolhida.

Vale salientar que o SGBD escolhido para gerenciar as informações do dicionário de dados do CyberMedVPS foi o MySQL, devido a fatores como: ser multiplataforma, ter uma biblioteca de acesso nativa na linguagem Java, utilizar a linguagem SQL(Structured

Query Language) como interface e possuir uma baixa exigência de processamento

computacional em comparação aos outros SGBDs (NIXON, 2009).

Definida as funcionalidades da camada de visualização é possível observar a organização final, de acordo com a Figura 36, que mostra como esse padrão subdivide as classes na camada de visualização.

Figura 36. Classes que compõem a Camada de Visualização.

O pacote Model (Figura 36a) é formado por classes que definem estruturas genéricas, como a classe GenericComponentInfo, por exemplo, que serve para definir as características dos componentes da aplicação visual. Qualquer componente que faz parte

(a)

(b)

63 de um fluxograma tem uma instância na classe GenericComponentInfo. Essa classe sofre uma especialização (Figura 37) e pode se subdividir em dois tipos distintos: a) se for um componente da aplicação, ela tem comportamento previsto pela classe ComponentInfo e b) se for uma linha na aplicação, ela tem características da classe LineInfo .

Figura 37. Especialização entre classes do pacote Model.

O pacote View (Figura 36b) diz respeito às classes responsáveis por toda a estrutura visual do CyberMedVPS. O desenvolvimento da interface visual do CyberMedVPS utilizou a API Swing fornecida pela linguagem Java.

A classe principal do pacote View é a App, pois é quem delimita todas as áreas da GUI na camada de visualização que foram descritas anteriormente. Além disso, essa classe herda métodos e características da superclasse JFrame11 da API Java SWING. Os componentes utilizados na aplicação visual são definidos como classes que herdam métodos e características da superclasse JPanel12.

O pacote Controller (Figura 36c) diz respeito às classes responsáveis pelo controle dos eventos e dos estados da GUI e da aplicação visual gerada no CyberMedVPS . Nesse pacote há uma chamada de StateMachine que é capaz de validar a estrutura da aplicação criada por PV. Além disso, tal classe é responsável por validar as ligações entre os componentes.

Ainda no pacote Controller, existe a classe chamada de StateMemorizer. Ela é responsável por armazenar os estados de implementação da aplicação visual em desenvolvimento. Dessa forma, o SPV é capaz de disponibilizar as funcionalidades de desfazer (com as teclas Ctrl e Z ou no botão de desfazer da área de atalho) e refazer (com as teclas Ctrl e Y ou no botão de refazer da área de atalho) para o usuário.

11 É uma janela da API SWING com um título e uma borda. Disponível em:

http://docs.oracle.com/javase/6/docs/api/javax/swing/JFrame.html.

12 É um contêiner genérico na API SWING. Disponível em:

64 Para reagir às ações do usuário na interface visual, foram definidos listeners que “escutam” os eventos do usuário durante a execução do SPV, tanto pelo mouse quanto pelo teclado. De acordo com a Figura 36c, o CyberMedVPS possui cinco classes com essa função:

 ListenerLineDataflow : responsável por reagir aos eventos da linha na área central do SPV;

 ListenerPopupMenu : responsável por reagir aos eventos do menus internos dos componentes do fluxograma. Esses menus são visualizados após o usuário pressionar o botão de Editar de qualquer componente da aplicação visual;

 ListernerDataflow : responsável por reagir aos eventos do componente na área central do SPV;

 ListenerPlay : responsável por mostrar ou a tela de registros ou executar a aplicação visual quando detectar que o usuário clicou o botão de Execução;  ListenerEdit : inicializa JDialogs que podem variar de acordo com o

componente que iniciou o evento.

Vale ressaltar que após a finalização do desenvolvimento da camada de visualização foi realizada uma avaliação da interface do protótipo visual do CyberMedVPS com o público-alvo desse sistema. Mais detalhes serão relatados no capítulo 5.