• Nenhum resultado encontrado

Protótipo de um sistema para geração de laudos de análises físico-químicas

N/A
N/A
Protected

Academic year: 2021

Share "Protótipo de um sistema para geração de laudos de análises físico-químicas"

Copied!
78
0
0

Texto

(1)

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

POLIANE DE SOUZA

PROTÓTIPO DE UM SISTEMA PARA GERAÇÃO DE LAUDOS DE ANÁLISES FÍSICO-QUÍMICAS

TRABALHO DE CONCLUSÃO DE CURSO

PATO BRANCO 2015

(2)

POLIANE DE SOUZA

PROTÓTIPO DE UM SISTEMA PARA GERAÇÃO DE LAUDOS DE ANÁLISES FÍSICO-QUÍMICAS

Trabalho de Conclusão de Curso de graduação, apresentado à disciplina de Trabalho de Diplomação, do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas, da Universidade Tecnológica Federal do Paraná, Câmpus Pato Branco, como requisito parcial para obtenção do título de Tecnólogo.

Orientador: Beatriz Terezinha Borsoi

PATO BRANCO 2015

(3)
(4)

RESUMO

SOUZA, Poliane de. Protótipo de um sistema para geração de laudos de análises físico-químicas. 2015. 77. Monografia (Trabalho de Conclusão de Curso) - Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas, Universidade Tecnológica Federal do Paraná, Câmpus Pato Branco. Pato Branco, 2015.

O processo que envolve as atividades realizadas em laboratórios de análises físico-químicas, independentemente da sua especialidade, é semelhante. Nesse processo, em resumo, amostras para análise são recebidas, o procedimento de análise é realizado, com processo específico para cada tipo de material e análise, e um laudo com resultados é gerado. Embora o processo possa ser simples, o registro dos dados da análise pode ser complexo. Isso ocorre porque para cada material analisado, dados específicos são registrados. Outra característica comum a esses ambientes, além dos cuidados para não a contaminação de pessoas e dos materiais analisados, é a necessidade de rastreabilidade e identificação sem falhas do material analisado. Isso no sentido de que seja assegurado que o laudo de referida amostra é o que efetivamente produziu os resultados registrados. Para facilitar essa identificação, sugere-se, neste trabalho o uso de código de barras para acompanhamento da amostra. Visando contribuir para o registro das amostras, dos resultados das análises realizadas e emissão de laudos e laboratórios de análises físico-químicas, neste trabalho é proposto o protótipo funcional de um sistema para gerenciamento das atividades realizadas neste tipo de ambiente. E, também, apresentado algumas funcionalidades que foram codificadas visando exemplificar o uso de tecnologias para desenvolvimento web definidas para implementar o sistema para o qual o protótipo foi criado.

Palavras-chave: Gerenciamento de laboratórios. Análises físico-químicas. Laudos de análises. Protótipos de software.

(5)

LISTA DE FIGURAS

Figura 1 - Diagrama de casos de uso... 22

Figura 2 - Página inicial ... 25

Figura 3 - Página principal... 26

Figura 4 - Cadastro de Pessoas - aba Estabelecimentos... 27

Figura 5 - Cadastro de Pessoas - aba Cota de Análise ... 27

Figura 6 - Cadastro de Produtos - aba Dados do Produto... 28

Figura 7 - Cadastro de Produto - aba Manipulação... 28

Figura 8 - Cadastro de Cidade ... 29

Figura 9 - Receber Amostra - aba Sobre a Amostra ... 30

Figura 10 - Receber Amostra - aba Laboratório ... 30

Figura 11 - Receber Amostra - aba Selecionar Análises ... 31

Figura 12 - Cadastro de Tipo de Material... 32

Figura 13 - Menu Análises ... 32

Figura 14 - Análise da amostra - aba Amostra ... 33

Figura 15. Análise da amostra - aba Análises ... 34

Figura 16 - Cadastro de Tipo de Análise - aba Tipo de Análise ... 34

Figura 17 - Cadastro de Tipo de Análise - aba Leituras ... 35

Figura 18 - Cadastro de Tipo de Análise - aba Laudo ... 35

Figura 19 - Cadastro de Parâmetro de Referência, aba Tabela ... 36

Figura 20 - Cadastro de Fórmulas ... 37

Figura 21 - Cadastro usuário... 37

Figura 22 - Diagrama de entidades e relacionamentos do banco de dados ... 38

Figura 23 - Diagrama de entidades e relacionamentos do banco de dados ... 39

Figura 24 - Tela de login da aplicação ... 50

Figura 25 - Mensagem de erro na autenticação do usuário ... 50

Figura 26 - Página inicial da aplicação ... 51

Figura 27 - Menu expandido ... 51

Figura 28 - Grid de Dados ... 52

Figura 29 - Cadastro de Pessoa, aba Dados Pessoais... 52

Figura 30 - Formulário para Receber Amostra, aba Sobre a Amostra ... 53

Figura 31 - Componente Calendar ... 53

Figura 32 - Estrutura e organização do código do projeto ... 54

(6)

LISTA DE QUADROS

Quadro 1 – Frameworks Java ... 15

Quadro 2 – Frameworks JSF ... 17

Quadro 3 – Ferramentas e tecnologias de modelagem e implementação ... 18

Quadro 4 – Requisitos funcionais... 22

Quadro 5 – Operação “incluir” dos casos de uso de cadastro ... 23

Quadro 6 - Operação “excluir” dos casos de uso de cadastro ... 23

Quadro 7 - Operação “excluir” dos casos de uso de cadastro ... 24

Quadro 8 - Operação “consultar” dos casos de uso de cadastro ... 24

Quadro 9 - Caso de uso “emitir laudo” ... 25

Quadro 10 – Campos da tabela estados... 40

Quadro 11 – Campos da tabela cidades... 40

Quadro 12 – Campos da tabela campusutfpr ... 40

Quadro 13 – Campos da tabela pessoas... 41

Quadro 14 – Campos da tabela laboratorios ... 41

Quadro 15 – Campos da tabela usuarios... 42

Quadro 16 – Campos da tabela grupousuario ... 42

Quadro 17 – Campos da tabela permissoesgrupo ... 42

Quadro 18 – Campos da tabela permissoes_has_grupousuario ... 42

Quadro 19 – Campos da tabela permissoessistema ... 43

Quadro 20 – Campos da tabela permissoesgrupo_has_permissoessistema... 43

Quadro 21 – Campos da tabela cotaanalise ... 43

Quadro 22 – Campos da tabela estabeleamostra... 43

Quadro 23 – Campos da tabela pessoa_x_estabeamostra... 44

Quadro 24 – Campos da tabela fornecedores ... 44

Quadro 25 – Campos da tabela amostras... 45

Quadro 26 – Campos da tabela parametroleitura... 45

Quadro 27 – Campos da tabela parametroleitura_has_aparelho ... 45

Quadro 28 – Campos da tabela amostras_has_analises... 46

Quadro 29 – Campos da tabela produtos... 46

Quadro 30 – Campos da tabela formulas... 46

Quadro 31 – Campos da tabela aparelhos... 46

Quadro 32 – Campos da tabela analisesLeitura ... 47

Quadro 33 – Campos da tabela tipoAnalise ... 47

Quadro 34 – Campos da tabela pessoas_has_estabeamostra ... 48

Quadro 35 – Campos da tabela metodologias... 48

Quadro 36 – Campos da tabela parametrosreferencia ... 48

Quadro 37 – Campos da tabela tipomaterial ... 48

Quadro 38 – Campos da tabela tipoanalise_has_parametroleitura... 49

(7)

LISTAGENS DE CÓDIGO Listagem 1 - pom.xml ... 55 Listagem 2 - Pom.Xml... 56 Listagem 3 - Persistence.Xml... 56 Listagem 4- Context.Xml ... 57 Listagem 5 - Web.Xml... 58 Listagem 6 - Login.Xhtml ... 59 Listagem 7 - Usuario.Java ... 63 Listagem 8 - Usuariodao.Java ... 64 Listagem 9- Loginmb.Java ... 65 Listagem 10 - Main.Xhtml ... 66

Listagem 11- Cabeçalho do arquivo cadpessoa.Xhtml... 67

Listagem 12 - Trecho do código da tela cadpessoa ... 68

Listagem 13 - Trecho da classe java pessoamanagedbeans ... 69

Listagem 14 - Método Salvar da classe pessoamanagedbean ... 69

listagem 15 - método inserir da classe pessoadao... 69

Listagem 16 - Método excluir da classe pessoadao ... 70

(8)

LISTA DE SIGLAS ADF Application Development Framework AJAX Asynchronous Javascript and XML API Application Programming Interface ASP Active Server Page

CNPJ Cadastro Nacional da Pessoa Jurídica CSS Cascading Style Sheets

DDL Data Definition Language ou Data Description Language GUI Graphical User Interface

GWT Google Web Toolkit

HTML HyperText Markup Language

IDE Integrated Development Environment J2EE Java Enterprise Edition

JCP Java Community Process

JDBC Java Database Connectivity Technology JDO Java Data Objects

JPA Java Persistence API JSF JavaServer Faces JSP JavaServer Page MVC Model View Controller ORM Object-Relational Mapping PDF Portable Document Format PHP PHP HyperText Preprocessor POM Project Object Model

RIA Rich Internet Application SQL Structured Query Language URL Uniform Resource Locator

UTFPR Universidade Tecnológica Federal do Paraná XML Extensible Markup Language

(9)

SUMÁRIO 1 INTRODUÇÃO... 9 1.1 CONSIDERAÇÕES INICIAIS ... 9 1.2 OBJETIVOS ... 9 1.2.1 Objetivo Geral... 10 1.2.2 Objetivos Específicos ... 10 1.3 JUSTIFICATIVA ... 10 1.4 ESTRUTURA DO TRABALHO ... 11 2 REFERENCIAL TEÓRICO ... 12

2.1 APLICAÇÕES INTERNET RICAS... 12

2.2 FRAMEWORKS JAVA... 12 2.2.1 JavaServer Faces ... 12 3 MATERIAIS E MÉTODO ... 18 3.1 MATERIAIS... 18 3.2 MÉTODO ... 19 4 RESULTADO ... 21 4.1 ESCOPO DO SISTEMA... 21 4.2 MODELAGEM DO SISTEMA... 21 4.3 APRESENTAÇÃO DO SISTEMA ... 49 4.4 IMPLEMENTAÇÃO DO SISTEMA ... 54 5 CONCLUSÃO... 54 REFERÊNCIAS... 71 ANEXOS... 73

(10)

1 INTRODUÇÃO

Neste capítulo estão as considerações inicias do trabalho, os seus objetivos e a justificativa. Por fim está a organização do texto por meio da apresentação dos capítulos subsequentes.

1.1 CONSIDERAÇÕES INICIAIS

As análises físico-químicas possuem diversas aplicações (CETAL, 2015), seja na indústria para, por exemplo, atestar a qualidade de produtos ou determinar a sua composição; seja na agricultura para determinar elementos componentes de amostras de solos; seja com finalidades sanitárias para atestar qualidade ou identificar agentes contaminantes de água e efluentes.

Para cada elemento analisado como por exemplo: alimento, água, efluente ou solo, , pode ser medida uma série de componentes ou identificada a presença ou ausência de determinados elementos e agentes contaminantes. Considerando a quantidade dos materiais manipulados nesse tipo de ambiente e a diversidade de análises realizadas, um sistema para o gerenciamento desses laboratórios e das análises que realizam é amplo e complexo. Assim, verificou-se a importância de realizar a prototipagem completa de um sistema para o gerenciamento da realização das análises, antes da sua implementação. Permitindo, dessa forma, ao usuário navegar pelos menus e visualizar os campos dos formulários e os modelos de laudos gerados. Por meio dessa visualização o usuário pode avalizar se os requisitos pretendidos (representados pelos formulários e seus campos de entrada e relatórios, incluindo laudos, gerados) estão sendo atendidos.

A solução proposta terá como base o laboratório de análises físico-químicas da Universidade Tecnológica Federal do Paraná (UTFPR), Câmpus Pato Branco, mas pode ser aplicado para qualquer laboratório que realiza esse tipo de análise.

1.2 OBJETIVOS

A seguir são apresentados o objetivo geral e os objetivos específicos do desenvolvimento do trabalho.

(11)

1.2.1 Objetivo Geral

Implementar o protótipo de um sistema para gerenciamento de um laboratório de análises físico-químicas, o controle das análises realizadas e a emissão dos respectivos laudos.

1.2.2 Objetivos Específicos

• Possibilitar a visualização das funcionalidades do sistema por meio do uso de um protótipo funcional.

• Desenvolver a modelagem de um sistema para laboratórios que realizam análises físico-químicas para o cadastro de amostra, registro de análises realizadas e emissão de laudos.

• Apresentar o uso das tecnologias no desenvolvimento do sistema como forma de exemplificar a aplicação dessas tecnologias na implementação do protótipo.

1.3 JUSTIFICATIVA

As análises físico-químicas de elementos como alimentos, água e solos, entre outros , têm o objetivo de verificar a presença ou ausência de determinados componentes ou elementos. Considerando o crescimento da indústria e da agricultura, a contaminação do solo, da água e dos efluentes é muito frequente a necessidade de realizar análises em amostras desses elementos.

O desenvolvimento de um protótipo experimental (funcional, no sentido de permitir navegação pelos menus e opções), facilita o entendimento do sistema por fornecer uma visão geral das suas funcionalidades e a possibilidade de acessar formulários, itens de menu e exemplos de relatórios. O desenvolvimento do protótipo utilizando uma ferramenta de modelagem, ao invés de uma linguagem de programação, torna o modelo mais genérico (no sentido que ele poderá ser implementado em qualquer linguagem de programação que atenda os requisitos da aplicação) e mais simples em termos de entendimento pelo usuário. Simples, porque o usuário não precisa entender especificidades da tecnologia para interagir com o sistema. Os componentes que compõem a interface são tratados como desenhos em formato que representa itens comumente encontrados em aplicações de amplo uso, como aplicativos para automação de escritórios e páginas web.

(12)

A escolha da ferramenta Balsamiq para a modelagem do protótipo funcional decorre de a mesma permitir representar de maneira esquemática (como se fossem desenhos manuais) todos os elementos pretendidos para o sistema. Fornecendo, assim, a ideia de desenhos obtidos a partir de reuniões utilizando telas ou mesmo folhas de papel para esquematizar a interação do usuário com o aplicativo à medida que o modelo é discutido entre usuários e a equipe de projeto.

Para a implementação do aplicativo foram utilizadas tecnologias para desenvolvimento web baseadas em Java com a interface caracterizada como rica e, para tanto, foram utilizados frameworks como o JavaServer Faces (JSF) e a biblioteca de componentes PrimeFaces. JSF é o framework Java amplamente utilizado para desenvolvimento de aplicações web. Alguns dos principais motivos para esse uso intensivo são: oferecer um excelente conjunto de funcionalidades, possuir bons materiais de estudo e exigir pouco conhecimento inicial para a construção de interfaces de usuários (FRANCO, 2011).

Neste trabalho de conclusão de curso apenas alguns formulários desenvolvidos foram implementados visando apresentar o uso das tecnologias. A ênfase do trabalho está na elaboração do protótipo.

1.4 ESTRUTURA DO TRABALHO

Este texto está organizado em capítulos. No Capítulo 2 está o referencial teórico que apresenta sobre desenvolvimento de aplicações para web com interface denominada rica. Esse é o tipo de aplicação desenvolvido. No Capítulo 3 estão os materiais e o método utilizados no desenvolvimento do trabalho. No Capítulo 4 são apresentados os resultados obtidos com a realização do trabalho. O Capítulo 5 apresenta a conclusão. E por fim estão as referências bibliográficas utilizadas na composição do texto.

(13)

2 REFERENCIAL TEÓRICO

Aplicação Internet rica é a caracterização do aplicativo desenvolvido como resultado deste trabalho, portanto, o referencial teórico é sobre esse tipo de aplicação e a tecnologia JavaServer Faces que é utilizada na implementação da mesma.

2.1 APLICAÇÕES INTERNET RICA

Nos últimos anos tem havido uma migração crescente de uma multiplicidade de aplicações tradicionalmente desktop para aplicações web (POWELL; NAKAMURA; AKAMA, 2009). A essa migração está vinculado ao interesse e, de certa forma, a necessidade dos usuários que as aplicações web ofereçam os mesmos recursos de interação que as aplicações desktop. As aplicações web tradicionais, assim definidas as baseadas em HyperText Markup Language (HTML) com links e formulários simples, são bem diferentes em termos de recursos de interação das aplicações desktop que possuem menus e botões diferenciados, efeitos de arrastar-e-soltar, entre outros.

A necessidade de aprimoramento da interface das aplicações web e sem afetar negativamente o tráfego de rede e outros requisitos técnicos, vem sendo atendida pelas aplicações denominadas Rich Internet Application (RIA). Essas aplicações são definidas visando unificar o melhor das aplicações desktop tradicionais - tais como a interatividade de interface com o usuário e o tempo de resposta sem a necessidade de recarregamento da página que é típico nessas aplicações - com o melhor das aplicações web – como o uso de download progressivo para obtenção de conteúdo (DUHL, 2003).

As RIAs apresentam as seguintes características (DUHL, 2003; PRECIADO et al., 2005):

a) offloading de camadas de apresentação e interatividade a partir do servidor para o cliente;

b) redução da taxa de transferência de dados entre cliente e servidor pelo carregamento/atualização parcial das páginas;

c) distribuição do processamento das páginas entre o cliente e o servidor; d) comunicação assíncrona e concorrente entre o servidor e o cliente.

Essas características também têm mostrado que modelos de comportamento padrão usados para especificar aplicações web tradicionais são inadequados para as RIAs uma vez

(14)

que elas podem exibir comportamento mais rico e flexível, tais como a computação envolvendo somente fragmentos parciais da interface (COMAI; CARUGHI, 2007). Além disso, há uma diversidade de tecnologias (tais como JavaScript, HTML e Cascading Style Sheets (CSS) para o cliente; JavaServer Page (JSP), Perl, PHP (PHP HyperText Preprocessor), Active Server Page (ASP) para o servidor; Structured Query Language (SQL), XQuery para o banco de dados) que são necessárias para implementar aplicações web tradicionais e RIAs em particular (COOPER et al., 2007). Com o uso de Java como linguagem de programação para o servidor, a interface com o cliente pode ser desenvolvido por um conjunto bastante amplo de frameworks, tais como JavaServer Faces(JSF) (JAVASERVER…, 2014), Spring (JOHNSON et al., 2011) e Grails (GRAILS..., 2014), aos quais são agregadas bibliotecas de componentes, como PrimeFaces, IceFaces e RichFaces para JSF.

Essa diversidade de tecnologias resulta em um amplo conjunto de dificuldades, tais como problemas de segurança, questões de assincronismo e falhas de implementação tecnológica (POWELL; NAKAMURA; AKAMA, 2009). Além disso, adicionam-se dificuldades no desenvolvimento de RIAs, pelo fato de elas serem construídas com tecnologias distintas, não há um caminho de comunicação claro e/ou fácil entre elas (BOZZON et al., 2006; STEARN, 2007).

2.2 FRAMEWORKS JAVA

Nas palavras de Pree (1994), um framework de software é composto por “frozen spots” e “hot spots”. Os frozen spots definem a arquitetura geral ou básica do sistema de software, ou seja, os componentes básicos da arquitetura e o relacionamento entre eles. São definidos como frozen porque não podem ser alterados nas instanciações de aplicação do framework. Os hot spots representam as partes do framework que são especificadas em cada aplicação desenvolvida. São definidos de hot porque são projetados para serem genéricos e especializados na definição das aplicações.

Buschmann et al. (1996) também se refere aos hot spots em um framework com “locais” nos quais adaptações são realizadas para implementar funcionalidades específicas. E os autores ressaltam que em um ambiente orientado a objetos, um framework consiste de classes concretas e abstratas e instanciar um framework consiste em compor uma aplicação a partir de classes existentes e criar subclasses a partir dessas classes.

(15)

De acordo com a definição de Buschmann et al. (1996), um framework é um software projetado para ser instanciado. Esse software pode ser parcialmente completo e define uma arquitetura para uma família de subsistemas e oferece os construtores básicos para criá-los. Os frameworks também possuem pontos de extensão definidos, os chamados hot spots. Nesses pontos são feitas as adaptações do código para um funcionamento específico do sistema implementado a partir da instanciação e complementação do framework. Um framework é caracterizado pela certa dependência entre as suas classes, conhecida como modelo de colaboração (OLIVEIRA, 2014).

A linguagem Java apresenta uma série de frameworks que auxiliam no desenvolvimento de sistemas (OLIVEIRA, 2014). Fanzini (2013) organizou 35 categorias de frameworks Java para desenvolvimento de aplicações. Algumas dessas categorias, as consideradas mais pertinentes ao escopo deste trabalho são listadas nos Quadros 1 e 2. A composição desses quadros é realizada a partir de dados apresentados por Fanzini (2013) que são complementados com dados constantes em Oliveira (2014) e Shan e Hua (2006).

Especificação Framework Descrição Disponível em

Spring Baseado em orientação a aspectos.

Possibilidade de uso em conjuntos com outros frameworks Model View Controller (MVC), como o Struts e JSF. http://www.springsource.org/ Contêiner de inversão de controle Java Data Objects (JDO)

Componente do lado servidor que encapsula a lógica de negócio de uma aplicação.

http://www.oracle.com/technet work/java/javaee/ejb/index.ht ml

Spring Data Usa conceitos de banco de dados,

além do mapeamento objeto-relacional (classes Java para tabelas de databases).

http://www.hibernate.org/

Commons

Validator Interface que provê uma camada de abstração aplicação - armazenamento de dados.

http://www.java.sun.com/pr oducts/JDO

Java Bean

Validator Usa uma JVM invulnerável logicamente com uso de uma camada de prevalência de objetos.

http://www.prevayker.org Persistência

Swing Implementação da camada de

persistência de dados. Oferece

funcionalidades sofisticadas e

comuns à maioria dos métodos de acesso a banco de dados.

http://www.springsource.org/

Ruby On Rails Associado ao Structs Validator. http://commons.apache.org/va

lidator/

Validação Jbanana Aplicação dos dados a serem

persistidos.

http://docs.oracle.com/javaee/ 6/tutorial/doc/gircz.html

JBoss Criação de aplicações desktop. http://docs.oracle.com/javase/t

utorial/uiswing/

iReport Desenvolvimento de aplicações

desktop. http://www.jgoodies.com/

Kit de interface gráficas desktop

Jasper Report Toolkit para widgets. http://www.eclipse.org/swt/

JQuery Composto por SWT designer e Swing

(16)

gráfica. RAD interface

gráficas desktop JSON Para criação de interface gráfica com

a IDE NetBeans. http://netbeans.org/features/java/swing.html

Maven Inclui contêiner para gerenciar

componentes e um conjunto de serviços para interfaces de usuário, transações e persistência da web.

http://www.springsource.org /

Struts Usa o modelo MVC e é caracterizado

por uma camada de controle com uso de Java Enterprise Edition (J2EE) e Extensible Markup Language (XML).

http://struts.apache.org/

JSF Tecnologia de servlets e JSP que

pode ser usado como uma opção ao Struts.

http://www.oracle.com/techn etwork/java/javaee/javaserv erfaces-139869.html

VRaptor Solução brasileira para inversão de

controle e injeção de dependências. Implementa MVC.

http://vraptor.caelum.com.br/ Google Web

Toolkit (GWT)

Conjunto de APIs, ferramentas e componentes visuais para criação de interface.

https://developers.google.com/ web-toolkit/

Framework web RIA

Ruby On Rails Framework escrito em Ruby. http://rubyonrails.org/

J2EE Jbanana Framework brasileiro e open-source

para desenvolvimento web. http://www.jbanana.org

Spring Security Criar um mecanismo de autenticação

e autorização para sua aplicação web. http://www.springsource.org/ Autenticação e

autorização web J2EE Container Managed Security

Define um modelo padrão JEE de regras de como a aplicação web pode definir e gerenciar controle de acesso.

http://tomcat.apache.org/tomc at-7.0-doc/realm-howto.html

Tomcat Servidor web Java, mais

especificamente um contêiner de servlets.

http://tomcat.apache.org/

JBoss Servidor de aplicações. http://www.jboss.org/

JEE web container standalone

Glassfish Servidor de aplicações. http://glassfish.java.net/

iReport Para geração gráfica de relatórios http://jasperforge.org/projects/

ireport Relatórios e

gráficos Jasper Report Framework para geração de modo dinâmico de relatórios. Compatível com formatos XML, Portable Document Format (PDF) e HTML

https://www.jaspersoft.com/ reporting-software

DOJO Toolkit Biblioteca em JavaScript. http://dojotoolkit.org/

JavaScript

JQuery Biblioteca JavaScript cross-browser

para os scripts do lado cliente que interagem com HTML.

http://jquery.com/

JSON JSON Subconjunto da notação de objeto de

JavaScript. http://www.json.org/java/

Maven Gerencia as dependências do projeto

e o seu ciclo de vida: limpar, compilar, testar, empacotar, distribuir.

http://maven.apache.org/ Gerais

JLicense Gerenciador de licenciamento de uso

de software.

http://freecode.com/projects/jli cense

Quadro 1 – Frameworks Java

(17)

2.2.1 JavaServer Faces

JavaServer Faces foi proposto pela Java Community Process (JCP), publicada em 2004, com o objetivo de padronizar um framework para desenvolvimento da camada de apresentação em aplicações web (PAGANINI, 2014).

JSF é um framework baseado em componentes. Com isso, para criar uma tabela, por exemplo, ao invés de criar um loop para adicionar linhas e colunas com tags HTML, um componente do tipo tabela é adicionado à página. Os principais objetivos desse framework são maximizar a produtividade, minimizar a complexidade de manutenção, evoluir a experiência do usuário com uso de técnicas Asynchronous Javascript and XML (AJAX) e proporcionar melhor integração com outras tecnologias web (FRANCO, 2011).

Os dois principais componentes da tecnologia JavaServer Faces são (ORACLE, 2013):

a) Uma Application Programming Interface (API) para representar componentes de interface com o usuário (Graphical User Interface (GUI)) e gerenciar seu estado; manipulação de eventos, validação do lado servidor e conversão de dados; definição de navegação de página; suporte à internacionalização e acessibilidade; e possibilidade de extensão para todas essas características.

b) Uma biblioteca de tags para adicionar componentes às páginas web e conectar componentes a objetos do lado do servidor.

Uma aplicação JavaServer Faces típica inclui (ORACLE, 213):

a) um conjunto de páginas web nos quais os componentes são definidos; b) um conjunto de tags para adicionar componentes à página web;

c) um conjunto de backing beans, que são componentes JavaBeans que definem propriedades e funções para componentes de uma página;

d) um descritor de deploy web (arquivo web.xml);

e) opcionalmente, um ou mais arquivos de recursos de configuração da aplicação, como o arquivo faces-config.xml, os quais podem ser usados para definir uma página de regras de navegação e configurar beans e outros objetos e componentes customizados;

f) opcionalmente, um conjunto de objetos customizados, que podem incluir componentes customizados, validadores, conversores, ou listeners, criados pelo desenvolvedor da aplicação;

(18)

JSF é uma especificação, portanto, é necessário escolher uma implementação. A implementação de referência da Oracle é a Mojarra, mas existem várias outras, como (FRANCO, 2011): MyFaces, Application Development Framework (ADF) e Shale. Além disso, existem extensões de implementações com componentes visuais e kits de componentes. JSF também permite ainda integração com outras tecnologias e frameworks. O Quadro 2 apresenta tecnologias vinculadas a JSF para desenvolvimento Java. Os dados desse Quadro são provenientes de Fanzin (2013), Oliveira (2014) e Franco (2011).

Especificação Framework Disponível em

Mojorra http://javaserverfaces.java.net/ MyFaces http://myfaces.apache.org/ ADF http://www.oracle.com/technetwork/developer-tools/adf/overview/index.html Provedores de JSF Shale http://shale.apache.org/ RichFaces http://www.jboss.org/richfaces PrimeFaces http://primefaces.org/ OpenFaces http://openfaces.org/ IceFaces http://www.icesoft.org/ EasyFaces http://www.easyfaces.com.br Componentes JSF Gmaps4jsf http://code.google.com/p/gmaps4jsf/ PrettyFaces http://ocpsoft.org/prettyfaces/ Extensões JSF Omnifaces https://showcase-omnifaces.rhcloud.com/

JSF RichFaces Mobile http://www.jboss.org/richfaces

JSF PrimeFaces Mobile http://primefaces.org/

JSF OpenFaces Mobile http://openfaces.org/

Soluções web mobile

JSF IceFaces Mobile http://www.icesoft.org/

Quadro 2 – Frameworks JSF

(19)

3 MATERIAIS E MÉTODO

Este capítulo apresenta os materiais e o método utilizados para a modelagem e o desenvolvimento do protótipo e a implementação básica do aplicativo para laboratórios de análises físico-químicas que é objeto da realização deste trabalho.

3.1 MATERIAIS

No Quadro 3 estão as ferramentas e as tecnologias utilizadas para a modelagem e a implementação do sistema.

Ferramenta

/ Tecnologia Versão Referência Finalidade

Astah* Community 6.9.0 (model version : 33) http://astah.net/editions/community Documentação da modelagem baseada na UML. Case Studio 2

2.25 http://www.casestudio.com Modelagem do diagrama de

entidades e relacionamentos do banco de dados.

Balsamiq Mockups

3.0.7 https://balsamiq.com/products/mockups/ Prototipagem da interface (telas do sistema)

Linguagem Java

JDK 1.7

http://www.oracle.com Linguagem de programação.

NetBeans 8.0.1 http://www.netbeans.org/ Ambiente de

desenvolvimento.

MySQL 5 http://www.mysql.com/ Banco de dados.

MySQL WorkBench 6.2 CE http://www.mysql.com/products/workbenc h/ Administrador do banco de dados. Apache Tomcat

8.0.15 http://www.apache.org/ Servidor web para a

aplicação.

PrimeFaces 5.1 http://primefaces.org/ Biblioteca de componentes

para web.

JSF 2.0 https://javaserverfaces-spec-public.java.net/ Framework para web.

Hibernate 3 http://www.hibernate.org/ Efetuar o mapeamento

objeto-relacional e a persistência dos dados.

Maven 3.3.3 https://maven.apache.org/ Controle e gerenciamento de

dependências no projeto.

JPA http://www.oracle.com/technetwork/java/ja

vaee/tech/persistence-jsp-140049.html

Persistência de dados.

(20)

3.2 MÉTODO

Para o método foi utilizado o modelo sequencial linear de Pressman (2008) composto das atividades: análise, projeto, codificação e testes. Além das atividades propostas no modelo de Pressman (2008) uma etapa de planejamento e estudo das tecnologias foi realizada após o levantamento dos requisitos. Assim houve necessidade de incluir essas atividades, adaptando esse modelo de ciclo de vida clássico. As principais atividades desenvolvidas na realização do trabalho foram:

a) Verificação do domínio da aplicação

Para o entendimento dos processos envolvidos nos laboratórios de análise de solos, alimentos, água e efluentes da UTFPR foram realizadas conversas com as pessoas responsáveis por esses ambientes e que realizam as atividades de recepção de amostras e emissão dos laudos. Também foi realizado o estudo de laudos produzidos pelos laboratórios.

Documentos utilizados nesses laboratórios foram coletados (exemplos nos anexos deste texto). Os documentos são os gerados a partir das análises e dos laudos, ou seja, o resultado da análise que é entregue para o cliente. Esses documentos forneceram a ideia dos dados necessários para a emissão dos laudos e, portanto, dos campos para os formulários que alimentam as tabelas para gerar os laudos.

O entendimento da forma de obtenção dos dados das análises realizadas e do processo manual que é realizado para registro dos dados foi essencial para a definição dos requisitos do sistema. Foi possível identificar a forma geral de definição dos campos dos dados e assim estabelecer o formato para as tabelas em banco de dados que armazenam os campos dos formulários.

b) Levantamento de requisitos

Com base no entendimento do processo foram definidos os requisitos que compõem o escopo do sistema a ser desenvolvido. Também foi realizada uma primeira versão das permissões para os usuários do sistema.

c) Análise e Projeto

Na fase de planejamento inicialmente foram prototipadas todas as telas do aplicativo utilizando a ferramenta Balsamiq. As telas foram ligadas de maneira a permitir a navegação pelas telas do protótipo. Permitindo, assim, além de visualizar o leiaute e os campos dos formulários, a navegação e o fluxo de trabalho.

(21)

Em seguida o banco de dados foi modelado visando identificar as entidades persistentes para os cadastros e as operações de análise realizadas com as amostras cadastradas.

d) Estudo das tecnologias

Tecnologias candidatas foram listadas e a linguagem Java para web foi a escolhida para implementar o sistema. Em seguida foi escolhido o framework e a biblioteca de componentes para a definição da interface. Alguns exemplos de teste foram realizados visando o entendimento das tecnologias.

e) Implementação

Na fase de implementação foram desenvolvidas as funcionalidades de inclusão, exclusão, consulta e alteração de cadastros básicos.

(22)

4 RESULTADO

Este capítulo apresenta o resultado da realização deste trabalho, que é a modelagem, incluindo a prototipação, de um aplicativo para registro de resultados de análises físico-químicas realizadas em laboratórios. Também são apresentados exemplos da implementação de cadastros.

4.1 ESCOPO DO SISTEMA

Um laboratório de análises físico-químicas pode realizar diferentes tipos de análises para um mesmo material e analisar materiais distintos. O que será desenvolvido como resultado deste trabalho está relacionado aos processos de cadastro da amostra à emissão do laudos de análises bromatológicas, físico-químicas e microbiológicas realizadas pelo Laboratório Laqua, vinculado a UTFPR Câmpus de Pato Branco.

O sistema proverá o cadastro de amostras, o registro dos dados obtidos com a realização da análise das amostras e a emissão dos laudos a partir dos dados da análise realizada.

4.2 MODELAGEM DO SISTEMA

O Quadro 4 apresenta os requisitos funcionais identificados para o sistema.

Identificação Nome Descrição

RF01 Cadastro de clientes Cadastro dos clientes que solicitam análises no laboratório.

RF02 Cadastro de cidades Cadastro de cidades utilizadas em outros cadastros.

RF03 Cadastro de estados Cadastro de estados utilizados em outros cadastros.

RF04 Cadastro de fornecedores Cadastro de fornecedores.

RF05 Cadastro de usuários Cadastro de usuários com acesso ao sistema RF06 Cadastro de amostras Cadastro de amostras a serem analisadas. RF07 Cadastro de tipo de

amostras Cadastro dos tipos de amostras. RF08 Recibo de entrega da

(23)

amostras.

RF09 Análise Registro dos resultados coletados durante as análises realizadas com as amostras.

RF10 Laudo Emissão dos resultados das análises. Quadro 4 – Requisitos funcionais

O sistema possuirá três tipos (em termos de acesso às funcionalidades do sistema) de usuário:

a) Administrador – com acesso a todas as funcionalidades do sistema. b) Laboratorista – inclusão dos dados das análises.

c) Atendente – cadastro de amostra e emissão de laudos.

Os tipos de usuários (os atores) e os casos de uso são apresentados na Figura 1.

Figura 1 - Diagrama de casos de uso

Os Quadros 5 a 8 apresentam a descrição do caso de uso cadastrar. Essa descrição se refere à operação de inclusão de todos os casos de uso identificados como “manter”.

Caso de uso:

Incluir (refere-se à operação de inclusão de todos os casos de uso identificados como “manter”).

Descrição:

Inclusão dos dados cadastrais de um registro no sistema. Evento Iniciador:

O usuário solicita a inclusão de um registro no sistema. Atores:

(24)

Atendente, laboratorista ou administrador, no que couber. Pré-condição:

Usuário logado no sistema. Sequência de Eventos:

1. Ator acessa a tela para cadastro incluindo as informações necessárias.

2. O sistema insere os dados no banco de dados e informa o usuário que o referido cadastro foi realizado com sucesso.

Pós-Condição:

Registro inserido no banco de dados. Extensões:

Informações provenientes de outros cadastros como, por exemplo, cidade e estado não cadastrados.

Quadro 5 – Operação “incluir” dos casos de uso de cadastro

No Quadro 6 é apresentada a expansão da operação excluir dos casos de uso de cadastro.

Caso de uso:

Excluir (refere-se à operação de exclusão de todos os casos de uso identificados como “manter”).

Descrição:

Exclusão de dados cadastrais de um registro no sistema. Evento Iniciador:

O usuário solicita a exclusão de um registro no sistema. Atores:

Atendente, laboratorista ou administrador, no que couber. Pré-condição:

Usuário logado no sistema.

Cadastro sem vínculos que impeçam a sua exlcusão. Sequência de Eventos:

1. Ator acessa a tela para Usuário logado no sistema. exclusão de cadastros.

2. Ator seleciona registro a ser excluído.

3. O sistema exclui o registro indicado e informa ao usuário que a referida exclusão foi realizada com sucesso.

Pós-Condição:

Registro excluído no banco de dados. Extensões:

Registro sendo utilizado em outros cadastros. Quadro 6 - Operação “excluir” dos casos de uso de cadastro

A operação de atualização de dados de cadastros já realizados é apresentada no Quadro 7 como a expansão do respectivo caso de uso.

Caso de uso:

Atualizar (refere-se à operação de atualização de todos os casos de uso identificados como “manter”).

Descrição:

(25)

Evento Iniciador:

O usuário solicita a atualização de um registro no sistema. Atores:

Atendente, laboratorista ou administrador. Pré-condição:

Usuário logado no sistema.

Cadastro a ser alterado incluído no sistema. Sequência de Eventos:

1. Ator acessa a tela para visualizar o conteúdo de um registro. 2. O sistema apresenta o registro selecionado para edição. 3. O usuário altera os dados e solicita alteração do registro.

4. O sistema inclui os dados alterados e informa ao usuário que a operação foi realizada conforme solicitado.

Pós-Condição:

Dados do registro alterados no banco de dados. Quadro 7 - Operação “excluir” dos casos de uso de cadastro

No Quadro 8 é apresentada a operação de consulta de dados de cadastros, como expansão de caso de uso.

Caso de uso:

Consultar (refere-se à operação de consulta de todos os casos de uso identificados como “manter”).

Descrição:

Consulta dos dados cadastrais de um registro no sistema. Evento Iniciador:

O usuário solicita a consulta de um registro no sistema. Atores:

Atendente, laboratorista ou administrador, no que couber. Pré-condição:

Usuário logado no sistema.

Existência de dados cadastrados que atendam os critérios de consulta. Sequência de Eventos:

1. Ator acessa a tela para consultar o conteúdo de um registro. 2. O ator indica o parâmetro de consulta.

3. O sistema apresenta os resultados da consulta. Pós-Condição:

Dados da consulta apresentados ao usuário. Quadro 8 - Operação “consultar” dos casos de uso de cadastro

O Quadro 9 apresentada a descrição do caso de uso emitir laudo. Caso de uso:

Emitir laudo. Descrição:

Emissão de um laudo que contém resultados das análises realizadas para uma determinada amostra.

Evento Iniciador:

(26)

Atores:

Atendente, laboratorista ou administrador. Pré-condição:

Análise ter sido realizada para a referida amostra. Sequência de Eventos:

1. Ator acessa a tela para emissão de laudo.

2. O ator seleciona a amostra da qual o laudo deve ser emitido.

3. O sistema gera o relatório (laudo) e o apresenta permitindo a sua impressão.. Pós-Condição:

Relatório com o laudo emitido. Quadro 9 - Caso de uso “emitir laudo”

As Figuras a seguir apresentam o protótipo das telas desenvolvidas utilizando a ferramenta Balsamiq Mockup. As telas foram criadas dentro de um projeto e ligadas por meio de links. Desse modo é possível navegar pelas telas do protótipo e testar o fluxo de trabalho.

O sistema foi modelado com base nos dados obtidos do funcionamento e documentos manipulados pelo laboratório Laqua vinculado à UTFPR, Câmpus Pato Branco (modelos de documentos nos anexos deste texto), mas isso não impede que o sistema seja utilizado pelos demais laboratórios pertencentes à Universidade e localizados em outros Câmpus e mesmo por outros laboratórios. Os requisitos do sistema foram definidos de maneira a atender as funcionalidades principais desses ambientes. Na modelagem foi considerada a possibilidade de usos e também na futura implementação completa da aplicação (incluindo módulos de controle de estoque, módulo financeiro e emissão de laudos on line pelo cliente). A Figura 2 apresenta a tela inicial, com o login do usuário no sistema.

(27)

A tela de login do sistema (Figura 2) foi projetada para que o usuário (seja cliente ou um funcionário do laboratório) selecione o Câmpus ao qual está vinculado o laboratório e efetue login. Essa forma de organização visa facilitar o gerenciamento de usuários e de acessos.

Na Figura 3 está a tela principal que é apresentada após o usuário estar logado no sistema. Os menus estão organizados pelas funcionalidades: cadastros, amostras, análises e usuários. Ao lado esquerdo estão localizados os atalhos das principais funcionalidades da aplicação.

Figura 3 - Página principal

O menu cadastro é composto pelas opções de Cadastro de Pessoas, de Produtos e do submenu Localidades. Além dos dados comuns de um cadastro de pessoa, esse cadastro terá outros dados importantes, como os da aba Estabelecimentos e da aba Cotas de análise.

A aba Estabelecimentos (Figura 4) registra os locais de amostragem utilizados pelo coletor, não sendo necessariamente uma propriedade particular.

(28)

Figura 4 - Cadastro de Pessoas - aba Estabelecimentos

A aba Cotas de análise (Figura 5) servirá para controle das cotas dos servidores internos. Essas cotas são destinadas, por exemplo, a alunos de graduação e pós-graduação e a professores e/ou alunos vinculados a projetos de pesquisa.

Figura 5 - Cadastro de Pessoas - aba Cota de Análise

O Cadastro de Produtos (Figura 6) possui o campo Tipo que indica se o produto é matéria-prima, manipulado no laboratório ou outras categorias pré-cadastradas.

(29)

Figura 6 - Cadastro de Produtos - aba Dados do Produto

Ao selecionar a opção Manipulado do Cadastro de Produtos, a aba Manipulação é habilitada para indicar a composição do produto. A ideia é que os produtos manipulados também tenham controle de estoque. A Figura 7 apresenta a aba manipulação do formulário de produtos.

(30)

Os cadastros básicos como os de Cidade, Estados e Países seguem o padrão da Figura 8. Esses são os cadastros mais simples da aplicação.

Figura 8 - Cadastro de Cidade

A sequência de Figuras 9, 10 e 11 referem-se às telas de Cadastro das Amostras. Além dos dados da amostra são informados dados sobre as análises a serem realizadas com o referido material.

A Figura 9 contém os dados de identificação da amostra entregues no laboratório para análise. Além de um identificador interno ao sistema, a amostra também vai possuir um código de barras gerado e impresso no momento do recebimento, esse código permitirá a rastreabilidade da amostra e está relacionado à segurança de identificação adequada dos dados da análise à sua respectiva amostra.

(31)

Figura 9 - Receber Amostra - aba Sobre a Amostra

A tela apresentada na Figura 10 é utilizada para registrar os dados referentes à entrada da amostra no laboratório e a previsão de entrega dos resultados. A previsão de entrega é calculada por meio da média do tempo informado no cadastro de tipos de análises.

(32)

A tela apresentada na Figura 11 registra as análises solicitadas para cada amostra, bem como os valores parciais e totais a serem pagos, descontos e acréscimos. Considerou-se que a forma de pagamento será apenas em espécie.

Figura 11 - Receber Amostra - aba Selecionar Análises

Após salvar o cadastro da amostra é possível gerar o Recibo de Entrega de Amostra. Esse recibo será portado pelo cliente como comprovante do recebimento do material. Pode-se, ainda, na mesma tela iniciar a análise do material. O cadastro de uma amostra só pode ser excluído caso nenhuma análise tenha sido realizada.

Na Figura 12 está o protótipo da tela de cadastro dos tipos de material a serem analisados. Esse cadastro é utilizado para classificar o tipo de material da amostra que chega ao laboratório.

(33)

Figura 12 - Cadastro de Tipo de Material

O menu análises (Figura 13) apresenta as opções relacionadas à análise. Analisar amostra permite registrar os dados obtidos com a análise laboratorial do material. Em emitir laudo, o relatório com os resultados da análise realizada é gerado. Metodologias, parâmetros e referências são utilizados para compor o laudo final.

Figura 13 - Menu Análises

Nas Figuras 14 e 15 está o protótipo do formulário para análise da amostra. Nesse formulário serão indicadas as análises que serão feitas com cada amostra.

(34)

Na Figura 14 está a tela que é apresentada na primeira aba da análise de amostra. Ao selecionar o nome do solicitante, o campo Amostra é preenchido com as amostras do respectivo cliente que ainda não foram analisadas. Selecionando a amostra, o campo Código de Barras é preenchido. O usuário pode optar também por usar um leitor de código de barras e ler o código diretamente.

Figura 14 - Análise da amostra - aba Amostra

Na tela da Figura 15 é apresentada a segunda aba do cadastro de amostras. Ao selecionar uma análise os campos para registrar as leituras são automaticamente criados seguindo os parâmetros pré-definidos no cadastro do tipo de análise.

(35)

Figura 15. Análise da amostra - aba Análises

As Figuras 16, 17 e 18 referem-se ao cadastro de tipos de análise. Na imagem apresentada na Figura 16 é indicado o tipo de análise (físico, química etc.) e o tempo médio necessário para realizar este tipo de análise. Esse tempo servirá como base para o cálculo da data de previsão de emissão do laudo.

Figura 16 - Cadastro de Tipo de Análise - aba Tipo de Análise

Além disso, o usuário pode definir a que tipo de material esta análise pode utilizará, isso permitindo que no momento do cadastro de uma amostra sejam listadas apenas as que

(36)

forem pertinentes aquele tipo de material. A Figura 17 mostra a tela de configuração de leituras para aquela análise. Esse parâmetro vem dos dados cadastrados de Parâmetros de Leituras e refere-se aos dados que serão coletados durante a análise.

Figura 17 - Cadastro de Tipo de Análise - aba Leituras

Na imagem da Figura 18 é indica a fórmula para a análise e o material de referência para emissão de resultado.

(37)

A Figura 19 mostra a tela para cadastro de referências fornecidas por órgão ou fonte competente. Esses parâmetros são utilizados em recomendações das análises a partir dos resultados obtidos no laboratório.

Figura 19 - Cadastro de Parâmetro de Referência, aba Tabela

O cadastro de fórmulas (Figura 20) permite ao usuário criar as próprias fórmulas e vinculá-las aos tipos de análises. Essa tela é uma das mais importantes, pois fornece a autonomia do usuário e desvincula a dependência de acréscimos e inclusões em linhas de códigos da aplicação.

(38)

Figura 20 - Cadastro de Fórmulas

A tela de cadastro de usuários (Figura 21) é simples, pode ser vinculado a um cadastro de pessoa existente ou não. No cadastro do usuário é indicado o tipo de permissão e o Câmpus da UTFPR que este terá acesso. Quando é realizado o cadastro de Pessoa, se o campo web for marcado para o recebimento do laudo, essa tela é carregada automaticamente após salvar o registro de Pessoa e vinculará o cliente a um usuário.

Figura 21 - Cadastro usuário

As Figuras 22 e 23 apresentam o diagrama de entidades e relacionamentos do banco

(39)
(40)
(41)

A seguir, os campos de cada uma das tabelas apresentadas nos diagramas das Figuras 22 e 23 são descritos. O digrama de entidades e relacionamentos do banco de dados foi apresentado em duas figuras para facilitar a visualização.

O Quadro 10 apresenta os campos da Tabela de Estados.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idEstado Numérico Não Sim Não

nomeEstado Texto Não Não Não

pais Texto Não Não Não

regiao Texto Não Não Não

Quadro 10 – Campos da tabela estados

Os campos da Tabela Cidades são apresentados no Quadro 11.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idCidade Numérico Não Sim Não

nomeCidade Texto Não Não Não

estados_idEstado Numérico Não Não Sim

Quadro 11 – Campos da tabela cidades

Os campos da Tabela Câmpus da UTFPR, apresentados no Quadro 12, armazenam dados relacionados ao Câmpus da Universidade. Esses dados permitem utilizar um sistema centralizado, mas com acesso definido por Câmpus.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idCampus Numérico Não Sim Não

nome Texto Não Não Não

cidades_idCidade Numérico Não Não Sim

Quadro 12 – Campos da tabela campusutfpr

Os campos da Tabela de Pessoas são apresentados no Quadro 13.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idpessoa Numérico Não Sim Não

fornecedor lógico Sim Não Não

pfisica lógico Sim Não Não

pjuridica lógico Sim Não Não

resptecnico lógico Sim Não Não

(42)

crq Texto Sim Não Não

regiao Texto Não Não Não

nome Texto Não Não Não

profissao Texto Não Não Não

cpf Texto Não Não Não

rg Texto Sim Não Não

cadpro Texto Sim Não Não

Pessoascol Texto Sim Não Não

razaosocial Texto Sim Não Não

cpfcnpj Texto Não Não Não

Inscricaoest Texto Sim Não Não

Obseervacoes Texto Sim Não Não

rua Texto Não Não Não

Numero Texto Sim Não Não

complemento Texto Sim Não Não

bairro Texto Sim Não Não

cep Texto Sim Não Não

celular Texto Sim Não Não

email Texto Sim Não Não

fax Texto Sim Não Não

telefonecom Texto Sim Não Não

telefoneres Texto Sim Não Não

telefonecontato Texto Sim Não Não

nomecontato Texto Sim Não Não

cidades_idcidades Numérico Não Não sim

cotanalise Numérico Sim Não Não

cotaanalises_idanalise Numérico Sim Não sim

cotaanalises_ cotaanalisescol

Texto Sim Não Não

Quadro 13 – Campos da tabela pessoas

Os campos da Tabela Laboratórios são apresentados no Quadro 14.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idlab Numérico Não Sim Não

nomeLab Texto Não Não Não

(43)

O Quadro 15 apresenta os campos da Tabela Usuários.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idusuario Numérico Não Sim Não

loginusuario Texto Não Não Não

senhausuario Texto Não Não Não

ultimoacesso data Não Não Não

emailusuario Texto sim Não Não

ativo Lógico Não Não Não

laboratórios_idlab Numérico Não Não Sim

grupousuarios-

idgrupousuario Numérico Não Não Sim

pessoa_idpessoa Numérico Não Não Sim

foto Imagem Sim Não Não

Quadro 15 – Campos da tabela usuarios

Os campos da Tabela Grupos de Usuários são apresentados no Quadro 16.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idgrupousuario Numérico Não Sim Não

nomegrupousuario Texto Não Não Não

observacoes Texto Sim Não Não

Quadro 16 – Campos da tabela grupousuario

Os campos da Tabela de Permissões de Grupos de Usuários são apresentados no Quadro 17.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idpermissao Numérico Não Sim Sim

nomepermissao Texto Não Sim Sim

Quadro 17 – Campos da tabela permissoesgrupo

Os campos da Tabela associação de Permissões a Grupos de Usuários são apresentados no Quadro 18.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão Permissoesgrupo_

idgrupousuario

Numérico Não Sim Sim

Grupousuarios- idgrupousuario

Numérico Não Sim Sim

(44)

Os campos da Tabela de Permissões do Sistema no Quadro 19.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idpermissaosistema Numérico Não Sim Sim

nomepermissao Texto Não Sim Sim

Quadro 19 – Campos da tabela permissoessistema

Os campos da Tabela associação de Permissões de Grupos de Usuários às Funcionalidades do Sistema são apresentados no Quadro 20.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão Permissoesgrupo_

idpermissao

Numérico Não Sim Sim

permissaosistema-

idpermissaosistema Numérico Não Sim Sim

Quadro 20 – Campos da tabela permissoesgrupo_has_permissoessistema

Os campos da Tabela Cotas de Análise são apresentados no Quadro 21.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idanalise Numérico Não Sim Não

quantidade Texto Sim Não Não

anacota int Sim Não Não

cotanalisecol Texto Não Não Sim

Quadro 21 – Campos da tabela cotaanalise

Os campos da Tabela Estabelecimentos são apresentados no Quadro 22.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idestab Numérico Não Sim Não

nomeestab Texto Não Não Não

cidadeestab Numérico Não Não Sim

tipoestab Numérico Não Não Sim

Quadro 22 – Campos da tabela estabeleamostra

Os campos da Tabela de relacionamento entre Pessoas e Estabelecimentos são apresentados no Quadro 23.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

iderlacao Numérico Não Sim Não

(45)

pessoas_idpessoa Numérico Não Não Sim estabeamostra_

idstab

Numérico Não Não Sim

Quadro 23 – Campos da tabela pessoa_x_estabeamostra

Os campos da Tabela de Fornecedores estão no Quadro 24.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idfornecedor Numérico Não Sim Não

idcidade Numérico Sim Não Sim Pato Branco

idestado Numérico Sim Não Sim Paraná

nome Texto Não Não Não

razaosocial Texto Sim Não Não

inscricaoestadual Texto Sim Não Não

cpf_cnpj Texto Não Não Não

endereço Texto Não Não Não

cep Texto Sim Não Não

país Texto Não Não Não Brasil

telefone Texto Não Não Não

telefone celular Texto Não Não Não

fax Texto Sim Não Não

email Texto Não Não Não

pessoacontato Texto Sim Não Não

Quadro 24 – Campos da tabela fornecedores

O Quadro 25 apresenta os campos da Tabela de Amostras.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idamostra Numérico Não Sim Não

codbarras Texto Sim Não Não

qtdeTotal Numérico Sim Nao Sim

subtipo Numérico Sim Não Sim

datacoleta Numérico Não Não Sim

temperatura Data Não Não Não

coletor Data Não Não Não

dataentrada Data Não Não Não

dataentrega recebedor

(46)

observacoes tipomaterial_ idtipomaterial Pessoas_idpessoa Pessoas_has_estabeamostra_ idestabe Usuarios_idusuario

Quadro 25 – Campos da tabela amostras

Os campos da Tabela de Parâmetros de Leitura estão apresentados no Quadro 26.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idParametroLeitura Numérico Não Sim Não

parametroLeitura Texto Não Não Não

usaReagente Texto Sim Não Não

leituraAparelho Numérico Não Não Sim

peso volume unMedida descricao Metodologias_ idmetodologia

Quadro 26 – Campos da tabela parametroleitura

Os campos da Tabela relacionamentos entre Parâmetros de Leitura e Aparelhos estão apresentados no Quadro 27.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão ParametroLeitura_

idParametroLeitura

Numérico Não Sim Não

Aparelho_idAparelho Texto Não Não Não

Quadro 27 – Campos da tabela parametroleitura_has_aparelho

Os campos da Tabela de relacionamento entre Amostras e Análises estão apresentados no Quadro 28.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

amostras_idamostra Numérico Não Sim Não

amostras_pessoas_

idamostra Texto Não Não

amostras_pessoas_has_ estabeamostra_pessoas_ idpessoa

(47)

amostras_pessoas_has_ estabeamostra_idestabe Amostras_usuarios_ idusuario

Analises_idanalises

Quadro 28 – Campos da tabela amostras_has_analises

No Quadro 29 estão os campos da Tabela de Produtos.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idproduto Numérico Não Sim Não

nomeproduto Texto Não Não Não

fabricante Texto Não Não Não

distribuidor Texto Não Não Não

produtoscol Texto Não Não Não

tipofabricado Lógico Sim Não Sim

Tipocomprado Lógico Sim Não Sim

Procedimentos Texto Não Não Não

Quadro 29 – Campos da tabela produtos

O Quadro 30 apresenta os campos da Tabela de Fórmulas.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idFormula Numérico Não Sim Não

formula Texto Não Não Não

tabela Texto Não Não Não

campo Texto Sim Não Não

Quadro 30 – Campos da tabela formulas

O Quadro 31 apresenta os campos da Tabela de Aparelhos.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idAparelho Numérico Não Sim Não

nomeAparelho Texto Não Não Não

Quadro 31 – Campos da tabela aparelhos

No Quadro 32 estão os campos da Tabela de Análises realizadas.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

IdAnalise Numérico Não Sim Não

(48)

amostras_pessoas_ idpessoa

Numérico Não Não Sim

amostras_pessoas_ hasestabe_amostra_ pesoas_idpessoa

Texto Sim Não Sim

amostras_pessoas_ hasestabe_amostra_ estabeamostra_idestab

Texto Sim Não Sim

Amostras_has_analise_ Amostras_has_pessoas_ Hás_estabeamostra_pessoas_ idpessoa Amostras_has_analise_ Amostras_has_pessoas_ Hás_estabeamostra_idstabe amostras_usuarios_ idusuario

Texto Não Não Não

Amostras_has_analises _analises_idanalise

Texto Não Não Não

Quadro 32 – Campos da tabela analisesLeitura

Os campos da Tabela de Tipo de Análise estão no Quadro 33.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

IdAnalise Numérico Não Sim Não

analise Texto Não Não Não

fisico Lógico Sim Não Não

quimica Numérico Não Não Sim

Bromatologica Microbiológica entregaDe entregaA observaacoes valor Formulas_idFormula Parametroreferencia_ idParametroReferencia

Quadro 33 – Campos da tabela tipoAnalise

A Tabela de relacionamento entre Pessoas e estabelecimentos da Amostra tem seus campos apresentados no Quadro 34.

(49)

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

pessoas_idpessoa Numérico Não Não sim

estabelamostra_idestab Numérico Não Não Sim

idrelacao Numérico Não Sim Não

Quadro 34 – Campos da tabela pessoas_has_estabeamostra

Os campos da Tabela de Metodologias são apresentados no Quadro 35.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idmetodologias Numérico Não Sim Não

nomeMetodologia Texto Não Não Não

fonte texto Sim Não Não

descProcedimento texto Sim Não Não

Observacoes texto Sim Não Não

Quadro 35 – Campos da tabela metodologias

Os campos da Tabela de Parâmtros de Referência estão no Quadro 36.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

idParametroReferencia Numérico Não Sim Não

descricao Texto Não Não Não

fonte texto Sim Não Não

observacao texto Sim Não Não

fonte texto Sim Não Não

Quadro 36 – Campos da tabela parametrosreferencia

Os campos da Tabela de Tipo de Material estão no Quadro 37.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

Idtipomaterial Numérico Não Sim Não

nometipomaterial Texto Não Não Não

descricao texto Sim Não Não

observacao texto Sim Não Não

Quadro 37 – Campos da tabela tipomaterial

O Quadro 38 apresenta os campos da Tabela de relacionamento entre Tipo de Análise e Parâmetros de Leitura.

(50)

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

dtipoanalise_idanalise Numérico Não Sim Não

parametroleitura_ idParametroLeitura

Numérico Não Não Sim

quantidade Numérico Sim Não Não

nroLeituras Numérico Sim Não Não

tamamostra Numérico

Quadro 38 – Campos da tabela tipoanalise_has_parametroleitura

O Quadro 39 apresenta os campos da Tabela de relacionamento entre Tipo de Análise e Tipo de Material.

Campo Tipo Nulo Chave

primária Chave estrangeira Valor padrão

dtipoanalise_idanalise Numérico Não Sim Sim

tipomaterial_ idParametroLeitura

Numérico Não Sim Sim

Quadro 39 – Campos da tabela tipoanalise_has_tipomaterial

4.3 APRESENTAÇÃO DO SISTEMA

Para exemplificar do uso das tecnologias, citadas no capitulo 3 (item 3.1) a seguir são apresentados alguns trecho de código de algumas telas e classes do sistema.

A Figura 24 mostra a tela de login da aplicação. Nessa tela o usuário selecionará o laboratório que deseja acessar e informará respectivamente o login e senha de acesso. O campo de autenticação chamado “Laboratório” foi incluso para possibilitar que futuramente outros Câmpus da UTFPR possam utilizar o mesmo sistema. A base de dados é única, mas as entidades terão um atributo identificador com o código do laboratório. Desse modo, um determinado usuário com permissão para acessar o laboratório Laqua do Câmpus Pato Branco, não poderá, por exemplo, logar e acessar os dados do laboratório do Câmpus Curitiba.

(51)

Figura 24 - Tela de login da aplicação

Se o usuário informar os dados incorretos para o login ou para a senha, ou mesmo, informar corretamente, mas eles forem inválidos para o laboratório selecionado, a aplicação limpa os campos e informa uma mensagem de erro (Figura 25).

Figura 25 - Mensagem de erro na autenticação do usuário

No caso dos dados de login estarem informados corretamente e válidos para o laboratório selecionado, a tela inicial da aplicação é carregada, Figura 26.

Referências

Documentos relacionados

duplamente encadeada com este valor caso o mesmo ainda não exista na lista, em ordem CRESCENTE, ou seja, sempre entre um nó contendo um valor menor e outro contendo um valor

 São TADs representados através de listas sequenciais.. (fixas) ou encadeadas (dinâmicas), em que a seguinte regra deve

função recursiva, mais recursos de memória são necessários para executar o programa, o que pode torná-lo lento ou. computacionalmente

 Caminho simples que contém todas as arestas do grafo (e,. consequentemente, todos os

O CES é constituído por 54 itens, destinados a avaliar: (a) cinco tipos de crenças, a saber: (a1) Estatuto de Emprego - avalia até que ponto são favoráveis, as

Em 1979, o Centro Nacional de Referências Culturais, sob a denominação de Fundação Pró-Memória, se fundiu com o Instituto do Patrimônio Histórico e Artístico Nacional,

A realização de retentores intra-radiculares, por parte dos clínicos, ainda é deficiente, uma vez que foram considerados inaceitáveis os fatores: compri- mento do

O segundo Beneficiário será designado pelo Segurado na Proposta de Adesão, podendo ser substituído a qualquer tempo, mediante solicitação formal assinada pelo próprio Segurado, para