SISTEMA DE PROGRAMAÇÃO DE PRODUÇÃO COM REPRESENTAÇÃO GRÁFICA UTILIZANDO OPENGL EM JAVA

Tamanho: px
Começar a partir da página:

Download "SISTEMA DE PROGRAMAÇÃO DE PRODUÇÃO COM REPRESENTAÇÃO GRÁFICA UTILIZANDO OPENGL EM JAVA"

Transcrição

1 UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO SISTEMA DE PROGRAMAÇÃO DE PRODUÇÃO COM REPRESENTAÇÃO GRÁFICA UTILIZANDO OPENGL EM JAVA JAQUES DOUGLAS CLAUDINO BLUMENAU /1-17

2 JAQUES DOUGLAS CLAUDINO SISTEMA DE PROGRAMAÇÃO DE PRODUÇÃO COM REPRESENTAÇÃO GRÁFICA UTILIZANDO OPENGL EM JAVA Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Ciências da Computação Bacharelado. Prof. Paulo César Rodacki Gomes, Dr. - Orientador BLUMENAU /1-17

3 SISTEMA DE PROGRAMAÇÃO DE PRODUÇÃO COM REPRESENTAÇÃO GRÁFICA UTILIZANDO OPENGL EM JAVA Por JAQUES DOUGLAS CLAUDINO Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por: Presidente: Membro: Membro: Prof. Paulo César Rodacki Gomes, Dr. Orientador, FURB Prof. Mauro Marcelo Mattos, Dr. FURB Prof. Dalton Solano dos Reis FURB Blumenau, 9 de julho de 2007

4 Dedico este trabalho a todos aqueles que me ajudaram diretamente na realização deste, em especial à minha família, meu orientador e meus amigos.

5 AGRADECIMENTOS À minha família, que soube ensinar os valores de um bom trabalho. À empresa Multitherm Sistemas e Automação, que forneceu a idéia de desenvolver este trabalho. Aos meus amigos, pelos empurrões e cobranças. Ao meu orientador, Paulo César Rodacki Gomes, por ter mostrado os caminhos e positivismo para a conclusão deste trabalho.

6 Nossas dúvidas são traidoras e nos fazem perder o bem que poderíamos conquistar se não fosse o medo de errar. William Shakespeare

7 RESUMO Este trabalho descreve o desenvolvimento de um sistema de programação de produção, onde as programações são representadas em um gráfico em escala de tempo. O sistema foi desenvolvido na linguagem de programação Java, utilizando a biblioteca gráfica OpenGL para o desenvolvimento do gráfico das programações. Para poder usar a OpenGL na linguagem Java, foi utilizado a biblioteca JOGL. Utilizou-se a biblioteca Swing para a construção das interfaces do sistema. Palavras-chave: Computação gráfica. OpenGL. Programação de produção. PCP.

8 ABSTRACT This work describes the development of a production programming system, where the programmed processes are represented in a time scale chart. The system was developed in Java programming language, using OpenGL graphic library to develop the programmed processes chart. For use OpenGL in Java language, was used JOGL library. To build graphics interfaces, was used Swing library. Key-words: Computer graphics. OpenGL. Production programming. PCP.

9 LISTA DE ILUSTRAÇÕES Figura 1 Processo de transformação...16 Figura 2 Gráfico de Gantt...18 Figura 3 OPs programadas aleatoriamente...19 Figura 4 OPs programadas visando minimizar o tempo de fabricação...19 Figura 5 Processo de comunicação da biblioteca JOGL com a OpenGL...22 Quadro 1 Código fonte da janela principal...22 Quadro 2 Código fonte da classe Listener...23 Figura 6 Execução da aplicação Java utilizando a biblioteca JOGL...24 Figura 7 Exemplo de uma interface Swing utilizando o Look and Feel Metal...25 Figura 8 Exemplo de uma interface Swing utilizando o Look and Feel Windows...25 Figura 9 Gráfico das programações do software Preactor...27 Figura 10 Gráfico das programações do sistema de produção da empresa Multitherm...28 Figura 11 Gráfico de programações hipotético...29 Figura 12 Diagrama de casos de uso...31 Figura 13 Diagrama de atividades...32 Figura 14 Diagrama de estados...33 Figura 15 Diagrama de pacotes...33 Figura 16 Diagrama de classes do pacote data...34 Figura 17 Diagrama de classes do pacote graficoprogramacao...37 Figura 18 Diagrama de entidade relacionamento...38 Figura 19 Tela principal do sistema...40 Figura 20 Viewports utilizadas no gráfico das programações...43 Quadro 3 Código fonte que define as windows, viewports e chama funções de desenho...44 Figura 21 Limite da programação pai na alteração de programação...46 Figura 22 Limite da programação filha na alteração de programação...46 Figura 23 Alteração automática de programações filhas...47 Figura 24 Programações filhas alteradas automaticamente...47 Figura 25 Localização de programações de uma OP...48 Figura 26 Programações sem intervalo...49 Figura 27 Programações com intervalos das 19:00h às 21:00h...49 Figura 28 Menu popup das programações...50

10 Figura 29 Recursos e programações com bordas arredondadas...51 Figura 30 Recursos e programação com recurso de antialiasing desabilitado...52 Figura 31 Utilização de transparência...52 Figura 32 Utilização de texturas...53 Quadro 4 Rotinas usadas para desenhar os shapes com cantos arredondados...54 Figura 33 Tela padrão de cadastro...55 Quadro 5 Comparação de recursos do gráfico das programações...59 Quadro 6 Comparação de recursos do sistema...59 Figura 34 Execução do sistema no Linux opensuse LISTA DE TABELAS Tabela 1 Comparação de desempenho...58

11 LISTA DE SIGLAS API Application Program Interface AWT Abstract Window Toolkit DAO Data Access Object DTO Data Transfer Object ERP Enterprise Resource Planning GUI Graphic User Interface JDBC Java Database Connectivity JNI Java Native Interface MRP Material Requirements Planning MRP II Manufacturing Resource Planning II OP Ordem de Produção OpenGL Open Graphics Library PCP Planejamento e Controle da Produção PERT-CPM Program Evaluation and Review Technique - Critical Path Method RF Requisito Funcional RNF Requisito Não Funcional SGBD Sistema Gerenciador de Banco de Dados SQL Structured Query Language UML Unified Modeling Language TO Transfer Object VO Value Object

12 SUMÁRIO 1 INTRODUÇÃO OBJETIVOS DO TRABALHO ESTRUTURA DO TRABALHO FUNDAMENTAÇÃO TEÓRICA ADMINISTRAÇÃO DA PRODUÇÃO PLANEJAMENTO E CONTROLE DA PRODUÇÃO (PCP) GRÁFICO DE GANTT OBJETIVOS DA PROGRAMAÇÃO DE PRODUÇÃO OPENGL OpenGL em Java Exemplo de uma aplicação utilizando JOGL SWING TRABALHOS CORRELATOS Preactor Sistema de produção da empresa Multitherm Sistemas e Automação Ltda DESENVOLVIMENTO DO SISTEMA REQUISITOS PRINCIPAIS ESPECIFICAÇÃO Diagrama de casos de uso Diagrama de atividades Diagrama de estados Diagrama de pacotes Diagrama de classes do pacote data Diagrama de classes do pacote graficoprogramacao Diagrama de entidade relacionamento IMPLEMENTAÇÃO Tela principal do sistema Técnicas e ferramentas utilizadas Gráfico das Programações Definição dos universos OpenGL Adicionar programação...45

13 Excluir programação Validar programação Alterar programação Executar programação Finalizar programação Localizar programação Intervalos não produtivos Manipulação Interativa Alinhamento de programações Zoom Pan Técnicas de visualização Otimizações de renderização Sistema de programação de produção Cadastro de grupo de recursos Cadastro de recursos Cadastro de etapas Cadastro de processos Cadastro de intervalos não produtivos Geração de OP Adicionar programação Localizar programação Importação de dados do Sistema de Produção da Empresa Multitherm RESULTADOS E DISCUSSÃO CONCLUSÕES EXTENSÕES...61 REFERÊNCIAS BIBLIOGRÁFICAS...63

14 13 1 INTRODUÇÃO Na corrida para atender à demanda do mercado, as indústrias buscam soluções que as diferenciem e aumentem a sua competitividade. Uma dessas soluções é o Planejamento e Controle da Produção (PCP), que também está entre os principais fatores que influenciam a produtividade industrial. Segundo Burbidge (1988, p. 27) o PCP tem como objetivo alocar a mão-de-obra e equipamentos com o máximo de aproveitamento, sempre com a preocupação de que os produtos produzidos sejam entregues nas datas prometidas. Para atender a estas necessidades são desenvolvidos sistemas de programação de produção. Segundo Brito (2000, p. 79), estes sistemas aplicam-se a todas as empresas que precisem considerar o problema de filas de espera e seqüenciamento de operações para o balanceamento entre ocupação e capacidade de produção. Estão incluídas por exemplo, indústrias têxteis, metalúrgicas, cerâmicas, etc. Sendo assim, o sistema de programação de produção é o responsável por emitir as ordens de produção 1 (OPs) a serem produzidas e liberar as OPs já finalizadas pela produção. Deve organizar em seqüência todas as OPs seguintes, distribuindo-as em todos os recursos da produção 2, de forma que o término da OP não ultrapasse a data de entrega previamente estipulada. Para atender a estas necessidades, desenvolveu-se neste trabalho um sistema de programação de produção, onde as OPs programadas são representadas graficamente para o usuário. A representação gráfica é semelhante a um gráfico de Gantt 3, onde as OPs programadas são representadas em escala de tempo, conforme o seu tempo estimado de duração. O sistema possibilita o cadastramento de recursos e processos. Um processo é uma seqüência de tarefas que podem ser feitas em um ou mais recursos. A cada tarefa é possível definir o seu tempo estimado de duração. Após efetuar o cadastro de recursos e processos, o sistema permite alocar os processos em seus determinados recursos. Estes processos alocados 1 Ordens de produção são seqüências de atividades que transformam um determinado produto (NOGUEIRA, 2002, p. 1), ou seja, são processos programados para serem produzidos. Uma ordem de produção geralmente é representada por uma seqüência numérica. 2 Recursos da produção são equipamentos e mão-de-obra que a empresa dispõe. 3 Gráfico de Gantt é um tipo de gráfico de barras que representa as tarefas a serem feitas em uma escala temporal. Ele também ajuda a mostrar os relacionamentos entre as tarefas (DAVIS; AQUILANO; CHASE, 2001, p. 554).

15 14 são chamados de programações. O sistema também possui funções para excluir, alterar, iniciar (emitir) e finalizar (liberar) programações. Estas funções podem ser acessadas interativamente, através do gráfico das programações. O desenvolvimento do sistema foi feito em Java utilizando a Open Graphics Library (OpenGL) (OPENGL, 2006) para a geração e manipulação do gráfico das programações. A OpenGL que pode ser definida como um uma interface para hardware gráfico, é uma biblioteca de rotinas gráficas e de modelagem, bidimensional (2D) e tridimensional (3D), extremamente portável e rápida (COHEN; MANSSOUR, 2006, p. 18). Obteve-se com a OpenGL um bom desempenho na geração do gráfico das programações. Este é um dos diferenciais, já que alguns sistemas de programação de produção existentes, por utilizarem recursos gráficos menos eficientes, possuem problemas de desempenho quando a fila de programações é muito grande. Também foi possível com a OpenGL, desenvolver um ambiente mais amigável, como por exemplo aplicação de texturas sobre as programações, localização e identificação de relacionamentos e efeito de zoom sobre todo o gráfico, permitindo visualizar uma quantidade maior de OPs em um período maior. 1.1 OBJETIVOS DO TRABALHO O objetivo deste trabalho é desenvolver um sistema de programação de produção utilizando a OpenGL para geração do gráfico das programações. Os objetivos específicos do trabalho são: a) disponibilizar o cadastramento de processos e recursos da produção; b) permitir a programação de OPs; c) representar graficamente todas as OPs programadas, semelhante a um gráfico de Gantt; d) permitir através do gráfico das programações, a manipulação interativa das OPs programadas.

16 ESTRUTURA DO TRABALHO Este trabalho está divido em quatro capítulos. O primeiro traz uma introdução ao assunto e do que se trata o trabalho. O segundo apresenta uma fundamentação teórica dos conhecimentos necessários para a realização do trabalho. O terceiro descreve como foi realizado o desenvolvimento. O quarto capítulo trata das conclusões e resultados obtidos.

17 16 2 FUNDAMENTAÇÃO TEÓRICA No presente capítulo são apresentados alguns aspectos teóricos relacionados ao trabalho. Na seção 2.1 é apresentado o conceito de administração da produção. Na seção 2.2 são apresentados conceitos e funções do Planejamento e Controle da Produção (PCP). Em seguida, na seção 2.3 é apresentado o gráfico de Gantt, uma das primeiras ferramentas de controle de produção. Na seção 2.4 são apresentados os objetivos e benefícios da programação de produção. Na seção 2.5 é apresentada a biblioteca gráfica OpenGL e como é feita a sua integração na linguagem Java. Na seção 2.6 é apresentado a biblioteca Swing, usada para desenvolver interfaces gráficas em Java. Na última seção 2.7 são descritos alguns trabalhos correlatos. 2.1 ADMINISTRAÇÃO DA PRODUÇÃO A Administração da Produção é o coração dos processos produtivos. Ela tem o objetivo de planejar e controlar o processo de manufatura em todos os seus níveis, incluindo materiais, equipamentos, pessoas, fornecedores e distribuidores. É através da Administração da Produção que a organização garante que suas decisões operacionais sobre o que, quando, quanto e com o que produzir e comprar sejam adequados a suas necessidades estratégicas, que por sua vez são ditadas por seus objetivos e seu mercado. (RIBEIRO, 2005). Davis, Aquilano e Chase (2001, p. 25), definem a administração da produção como sendo a gestão do processo de conversão de insumos, em resultados na forma de produtos acabados e serviços. Essa conversão de insumos é denominada processo de transformação. O processo de transformação é composto por um conjunto de componentes, que podem ser máquinas, pessoas, ferramentas ou um sistema gerencial. Um insumo pode ser uma matériaprima, uma pessoa ou um produto acabado de outro processo. A figura 1 ilustra o processo de transformação. Fonte: Davis, Aquilano e Chase (2001, p. 25). Figura 1 Processo de transformação São exemplos de transformações: física, como na manufatura; de local, como no

18 17 transporte; de troca, como no varejo; de estocagem, como no armazenamento; fisiológica, como nos programas de saúde; informacional, como nas telecomunicações. 2.2 PLANEJAMENTO E CONTROLE DA PRODUÇÃO (PCP) O PCP é o setor da indústria responsável pelo planejamento e controle da produção. No planejamento é definido como, por quem, com que recursos, onde e quando um determinado processo pode ser feito. No controle da produção é verificado se o desempenho da produção está de acordo com o planejado. Caso não esteja de acordo, o planejamento deve ser alterado para assim atender seus objetivos. Em um sistema de manufatura, toda vez que são formulados objetivos, é necessário formular planos de como atingi-lo, organizar recursos humanos e físicos necessários para a ação, dirigir a ação dos recursos humanos sobre os recursos físicos e controlar esta ação para a correção de eventuais desvios. No âmbito da administração da produção, este processo é realizado pela função de Planejamento e Controle da Produção (PCP). (MOURA JR, 1996). Atualmente, o PCP é considerado uma importante ferramenta da produção. O PCP é um conceito que casa uma filosofia de planejamento com um conjunto de ferramentas para implementar a filosofia de modo a otimizar o processo (DAVIS; AQUILANO; CHASE, 2001, p. 549). Russomano (2000, p. 55), define o PCP como sendo a função de apoio das atividades de produção, visando que os programas acertados previamente possam ser atendidos com eficiência. Segundo Russomano (2000, p. 52), o PCP exerce as seguintes funções: a) gestão de estoques: cuida da disponibilidade dos materiais necessários à produção; b) emissão de ordens de produção: toma providências para ter a tempo todos os itens necessários à produção, tais como matérias-prima, peças compradas, peças fabricadas e produtos acabados; c) programação das ordens de produção: estabelece em que recursos e quando cada etapa do processo deve ser executada; d) movimentação das ordens de produção: registra, informa e transfere o material fabricado; e) acompanhamento da produção: compara o planejamento com a execução e controla sua correção. Atender os prazos de entrega e aumentar a capacidade de produção, são os principais

19 18 objetivos do PCP. Para atender estes objetivos, deve haver um planejamento e controle da produção. No planejamento é definido a estratégia para programar as OPs, de forma que sejam produzidas dentro de seu prazo de entrega, visando utilizar ao máximo os recursos da produção. Quanto melhor forem utilizados os recursos, menor será o tempo de ociosidade e conseqüentemente haverá um aumento na capacidade de produção. Além de planejar, é necessário controlar a produção, verificando se o desempenho da produção está de acordo com o planejado. Caso ocorram desvios, deve-se alterar o planejamento de forma que atenda aos objetivos. Falta de mão-de-obra e equipamentos quebrados são exemplos de desvios que podem ocorrer no planejamento da produção. O PCP é um elemento decisivo na estratégia das empresas para enfrentar as crescentes exigências dos consumidores por melhor qualidade, maior variação de modelos e entregas mais confiáveis. Por isso, existe a necessidade de se buscar uma maior eficiência nos sistemas de PCP. 2.3 GRÁFICO DE GANTT O gráfico de Gantt foi desenvolvido em 1917 pelo engenheiro e cientista social Henry L. Gantt, com o objetivo de ser uma ferramenta de controle de produção (AGUIAR, 2003). O gráfico de Gantt é formado por um retângulo divido por uma série de linhas paralelas horizontais e verticais, como ilustrado na figura 2. As linhas verticais dividem a escala horizontal em unidade de tempo. Já as linhas horizontais dividem o gráfico em seções, representando as tarefas a serem realizadas (BURBIDGE, 1988, p. 193). Fonte: Burbidge (1988, p. 194). Figura 2 Gráfico de Gantt As tarefas representadas no gráfico de Gantt possuem um tempo estimado de duração

20 19 conhecido. Essas tarefas podem ser produtos a serem montados, peças a serem feitas, ou operações a serem realizadas ao longo da fabricação (BURBIDGE, 1988, p. 194). Também pode ser facilmente identificado no gráfico de Gantt, o relacionamento entre as tarefas, permitindo assim uma visualização clara de todo o fluxo de uma OP. 2.4 OBJETIVOS DA PROGRAMAÇÃO DE PRODUÇÃO Segundo Burbidge (1988, p. 199), os principais objetivos da programação de produção podem ser relacionados da seguinte maneira: a) entrega dos produtos na data prevista: este é considerado o objetivo principal da programação. A finalidade deve ser planejar a seqüência de trabalho de tal forma que todos os produtos sejam concluídos na data prevista; b) tempo de fabricação mínimo: tem como objetivo produzir as OPs no menor tempo possível, possibilitando assim, oferecer prazos de entrega mais curtos. Na figura 3 é ilustrado um gráfico de Gantt representando as OPs programadas aleatoriamente, enquanto na figura 4, as mesmas programações foram planejadas de forma que minimizaram o tempo de fabricação. Além da redução do tempo de fabricação também foram diminuídos os tempos ociosos entre as programações; Fonte: Burbidge (1988, p. 200). Figura 3 OPs programadas aleatoriamente Fonte: Burbidge (1988, p. 200). Figura 4 OPs programadas visando minimizar o tempo de fabricação c) tempo ocioso mínimo (máquinas): este objetivo visa a máxima utilização do equipamento, para assim gerar uma maior produtividade;

21 20 d) tempo ocioso mínimo (empregados): tem como objetivo programar o trabalho de tal forma que os empregados estejam sempre ocupados, possibilitando assim, a minimização do custo de salários; e) tempo de preparação mínimo: tempo de preparação é o tempo que o recurso levará para poder iniciar a sua tarefa. Um exemplo a ser utilizado em empresas de tinturaria, são tingimentos de cores escuras e claras em uma mesma máquina. Após efetuado um processo de tingimento de cor escura, para tingir uma cor clara, primeiramente a máquina deverá sofrer um processo de lavação. Este processo será caracterizado como um tempo de preparação. Para minimizar os tempos de preparação neste exemplo, bastaria agrupar em seqüência todas as OPs de cores claras ou escuras, possibilitando assim, evitar o processo de lavação da máquina entre uma programação e outra. 2.5 OPENGL Segundo Shreiner et al (2005, p. 13), a OpenGL (Open Graphics Library) é uma biblioteca que faz a interface para o hardware gráfico. Esta interface consiste em aproximadamente 150 comandos distintos que podem ser usados para especificar objetos e operações para produzir aplicações interativas em duas ou três dimensões. O desenvolvimento de aplicações gráficas de alto desempenho costumava ser exclusividade de instituições de pesquisa ou empresas que dispunham de hardware gráfico veloz e especificado, além de programadores experientes. Há alguns anos, essa situação modificou-se com o surgimento do mercado de placas gráficas para computadores pessoais e o desenvolvimento de bibliotecas gráficas que não exigiam conhecimentos extensivos de programação ou de hardware. Uma dessas bibliotecas, hoje o padrão da indústria para aplicações profissionais, é a OpenGL. (COHEN; MANSSOUR, 2006, p. 15). Pode-se definir a OpenGL como uma especificação aberta e multiplataforma de uma biblioteca de rotinas gráficas e de modelagem utilizada para o desenvolvimento de aplicações de Computação Gráfica, tais como jogos ou sistemas de visualização. A maior vantagem da OpenGL é a velocidade, uma vez que incorpora vários algoritmos otimizados, incluindo o desenho de primitivas gráficas, o mapeamento de textura e outros efeitos especiais (COHEN; MANSSOUR, 2006, p. 15). Segundo McReynolds e Blythe (2005, p. XXIV), a OpenGL pode ser obtida gratuitamente para quase todas as arquiteturas hoje existentes: Apple Machintosh, Microsoft Windows e praticamente todos Unix com algumas variantes incluindo Linux e

22 21 OS/2. Na próxima seção é apresentada uma das formas para implementar aplicações OpenGL, utilizando a linguagem de programação Java OpenGL em Java Existe mais de uma alternativa para implementar aplicações OpenGL utilizando a linguagem de programação Java. Entretanto, de acordo com a página oficial da API OpenGL, o projeto JOGL é a implementação de referência de uma API que permite o desenvolvimento de programas Java com OpenGL (COHEN; MANSSOUR, 2006, p. 364). A JOGL não é uma nova implementação de uma interface OpenGL para acessar o hardware gráfico, mas sim uma biblioteca que faz a ligação da linguagem Java com a biblioteca OpenGL. Esta biblioteca OpenGL é encontrada em praticamente todos sistemas operacionais e é ela que faz a comunicação com o hardware gráfico. A biblioteca JOGL fornece o acesso completo à OpenGL 2.0 integrando-a com os componentes gráficos Abstract Window Toolkit (AWT) (ZUKOWSKI, 1997) e Swing (SUN MICROSYSTEMS, 2006). Segundo Collabnet Inc (2006a), a JOGL é open-source e seu desenvolvimento foi iniciado em 2003 pelo Game Technology Group da Sun Microsystems. Para poder utilizá-la, é necessário que a máquina virtual Java versão (SUN MICROSYSTEMS, 2003a) ou superior esteja instalada. Segundo Collabnet Inc (2006b), a distribuição da JOGL para desenvolvedores contém duas partes: uma biblioteca independente de plataforma que contém as classes em Java e outra biblioteca que é dependente de plataforma e contém o código Java Native Interface (JNI) que faz as chamadas às funções da OpenGL. A JNI é um padrão de programação que permite que a máquina virtual da linguagem Java acesse bibliotecas construídas com o código nativo de um sistema operacional (SUN MICROSYSTEMS, 2003b). No caso da JOGL, a JNI é usada para acessar a biblioteca OpenGL, que possui código nativo. A JOGL foi quase completamente escrita na linguagem Java. Apenas a biblioteca dependente de plataforma foi escrita na linguagem C. Existem aproximadamente 150 linhas desse código fonte que foram escritas a mão, sendo que 100 delas são usadas para corrigir problemas na utilização de bibliotecas OpenGL mais antigas do sistema operacional Windows. O restante desse código fonte foi gerado automaticamente durante o processo de

23 22 construção, por um utilitário chamado GlueGen (COLLABNET INC, 2006b). A Figura 5 ilustra o processo de comunicação de uma aplicação Java com a OpenGL, utilizando a JOGL. Como pode ser visto, a aplicação Java precisa apenas acessar a biblioteca JOGL escrita em Java. Esta biblioteca se comunica com a biblioteca JOGL que é dependente de plataforma. Por sua vez, esta biblioteca utiliza a JNI para se comunicar com a biblioteca OpenGL, que também é dependente de plataforma. Figura 5 Processo de comunicação da biblioteca JOGL com a OpenGL Exemplo de uma aplicação utilizando JOGL Esta seção mostra um exemplo de uma aplicação utilizando a biblioteca JOGL. O quadro 1 mostra o código fonte usado para gerar uma janela em Java. É inserido nesta janela um componente GLCanvas. GLCanvas é um componente AWT que provê o suporte à renderização OpenGL (SUN MICROSYSTEMS, 2005a). Há um outro componente Swing chamado GLJPanel, mas ainda está em desenvolvimento e atualmente apresenta alguns problemas (SUN MICROSYSTEMS, 2005b). É atribuído neste componente GLCanvas, uma instância da classe Listener, que é apresentada no quadro 2. import javax.media.opengl.glcanvas; import javax.swing.jframe; public class Main extends JFrame { public Main() { GLCanvas glcanvas = new GLCanvas(); //cria o componente de desenho glcanvas.addgleventlistener(new Listener()); //seta nova instância da classe Listener } this.add(glcanvas); this.settitle("exemplo JOGL"); this.setsize(300, 300); this.setdefaultcloseoperation(jframe.exit_on_close); this.setvisible(true); } public static void main(string[] args) { new Main(); } Quadro 1 Código fonte da janela principal

24 23 A classe Listener implementa a interface GLEventListener que pertence à biblioteca JOGL. Ela contém os métodos que implementam os eventos da OpenGL. São eles: a) init: é chamado logo após inicializar a OpenGL. É usado para inicialização de parâmetros. Neste exemplo (quadro 2), é definido a cor de fundo e definição do universo OpenGL; b) display: é através deste método que devem ser enviados os comandos OpenGL para desenhar os objetos desejados. Neste exemplo, são enviados os comandos para definir a cor de desenho e para desenhar um quadrado e o texto Exemplo JOGL ; c) reshape: é chamado toda vez que o componente de desenho é redimensionado; d) displaychanged: é chamado ao alterar propriedades de vídeo do sistema operacional, como resolução e quantidade de cores. import com.sun.opengl.util.glut; import javax.media.opengl.gl; import javax.media.opengl.glautodrawable; import javax.media.opengl.gleventlistener; import javax.media.opengl.glu.glu; public class Listener implements GLEventListener { private GLU glu = new GLU(); private GLUT glut = new GLUT(); private int width, height; //atributos utilizados para definir o tamanho da viewport public void init(glautodrawable glautodrawable) { GL gl = glautodrawable.getgl(); gl.glclearcolor(1.0f, 1.0f, 1.0f, 1.0f); //define cor de fundo (branco) } gl.glviewport(0, 0, width, height); //define viewport gl.glmatrixmode(gl.gl_projection); gl.glloadidentity(); glu.gluortho2d(-10.0f, 10.0f, -10.0f, 10.0f); //define window public void display(glautodrawable glautodrawable) { GL gl = glautodrawable.getgl(); gl.glclear(gl.gl_color_buffer_bit); gl.glcolor3f(0.0f, 0.0f, 0.0f); //define cor de pintura (preto) gl.glbegin(gl.gl_line_loop); //desenha um quadrado gl.glvertex2f(5.0f, 5.0f); gl.glvertex2f(5.0f, -5.0f); gl.glvertex2f(-5.0f, -5.0f); gl.glvertex2f(-5.0f, 5.0f); gl.glend(); } gl.glpushmatrix(); //desenha o texto "Exemplo JOGL" gl.gltranslatef(-5.0f, 6.0f, 0.0f); gl.glscalef(0.011f, 0.011f, 0.0f); glut.glutstrokestring(glut.stroke_roman, "Exemplo JOGL"); gl.glpopmatrix(); public void reshape(glautodrawable glautodrawable, int x, int y, int width, int height) { this.width = width; this.height = height; } } public void displaychanged(glautodrawable glautodrawable, boolean b, boolean b0) { } Quadro 2 Código fonte da classe Listener

25 24 A figura 6 ilustra a execução da aplicação Java utilizando a biblioteca JOGL. Figura 6 Execução da aplicação Java utilizando a biblioteca JOGL 2.6 SWING Swing é uma biblioteca de classes para construir interfaces gráficas em ambientes desktop, na linguagem de programação Java. Tecnicamente é chamada de Graphic User Interface (GUI) toolkit. GUI toolkits são a base para a construção de interfaces gráficas. Elas são compostas por componentes widgets, que podem ser janelas, menus, botões, tabelas, caixas de texto, entre outros. Nas primeiras versões do Java, a única forma de fazer programas gráficos era através da Abstract Window Toolkit (AWT). A AWT é uma GUI composta por bibliotecas de baixonível que dependem de código nativo da plataforma onde roda. Ela traz alguns problemas de compatibilidade entre as plataformas, fazendo que nem sempre o programa tenha aparência desejada em todos os sistemas operacionais, sendo também mais difícil de ser usada. Para suprir as necessidades cada vez mais freqüentes de uma API mais estável e fácil de usar, o Swing foi criado como uma extensão do Java a partir da versão 1.2. Swing fornece componentes de mais alto nível, possibilitando assim uma melhor compatibilidade entre os vários sistemas onde Java roda (STEIL, 2006). Ao contrário da AWT, Swing não contém uma única linha de código nativo, e permite que as aplicações tenham diferentes tipos de visuais, os chamados Look and Feel. Já com AWT isso não é possível, tendo todos os programas a aparência da plataforma onde estão rodando (STEIL, 2006). Nas figuras 7 e 8 são ilustradas duas imagens da mesma aplicação, apenas mudando o seu Look and Feel. Na figura 7 a aplicação usa o Look and Feel Metal,

26 25 enquanto na figura 8 foi usado o Look and Feel Windows. FONTE: Grouchnikov (2006). Figura 7 Exemplo de uma interface Swing utilizando o Look and Feel Metal FONTE: Grouchnikov (2006). Figura 8 Exemplo de uma interface Swing utilizando o Look and Feel Windows 2.7 TRABALHOS CORRELATOS Em Volkmann (1998), é apresentado um protótipo para auxiliar a programação de produção. Este protótipo utiliza técnicas de Program Evaluation and Review Technique - Critical Path Method (PERT-CPM) (VOLKMANN, 1998, p. 38) para programar a produção, e técnicas de Manufacturing Resource Planning II (MRP II) (VOLKMANN, 1998, p. 17) para planejar a produção. As técnicas de PERT-CPM são usadas para calcular a data de início da primeira e a última tarefa de um processo. Já as técnicas de MRP II são usadas para calcular a capacidade mensal dos recursos e para calcular a quantidade de dias com tarefas alocadas (VOLKMANN, 1998, p. 66). A representação e manipulação das programações é feita através de uma grade. Em Loffi (1999), é apresentado um protótipo para controlar a utilização de recursos da produção. Segundo Loffi (1999, p. 36), o protótipo tem como finalidade demonstrar a programação da produção para as indústrias de manufatura utilizando técnicas de PERT-

27 26 CPM. A representação e manipulação das programações também é feita por uma grade. Há uma função no sistema, que gera um gráfico de Gantt com todas as tarefas programadas (LOFFI, 1999, p. 67). Não é possível manipular interativamente este gráfico. É apenas gerado uma visualização para fins de consulta. Nas duas seções seguintes serão apresentadas ferramentas existentes no mercado, que desempenham papel semelhante ao trabalho proposto. Na seção será apresentado o sistema Preactor, e na seção o sistema de produção da empresa Multitherm, onde o autor deste trabalho atualmente exerce a função de desenvolvedor Preactor O Preactor é um software especializado em programação da produção de bens e serviços, que utiliza o conceito de seqüenciamento em capacidade finita. As programações geradas pelo Preactor são altamente realistas e confiáveis porque respeitam a disponibilidade efetiva dos recursos da produção, a existência de restrições operacionais, as condições de demanda e as políticas de atendimento da empresa (PREACTOR, 2003). O Preactor é desenvolvido pela Preactor International da Inglaterra e distribuído na América do Sul pela empresa Tecmaran. É um sistema de programação de produção muito completo, podendo fazer a integração com vários sistemas do tipo Enterprise Resource Planning (ERP) e Material Requirements Planning (MRP). Segundo Preactor (2003), o software Preactor é líder mundial em sua categoria com mais de licenças comercializadas para pequenas, médias e grandes empresas em todo o mundo. Segundo Tecmaran (2004), o retorno do investimento no Preactor é medido em semanas e os resultados chegam a: a) 15% de aumento na produtividade; b) 25% de redução dos estoques; c) 40% de redução dos materiais em processo; d) 60% de melhoria na performance de entrega. Mesmo com todo o seu sucesso, o Preactor não utiliza recursos avançados para a geração do gráfico das programações, que é semelhante a um gráfico de Gantt. A visualização é composta por gráficos simples sem efeitos, o que o torna pouco amigável. A figura 9 mostra o gráfico das programações do software Preactor. Nesta figura é apresentado um exemplo

28 27 aplicado a uma metalúrgica, onde pode-se verificar o nome dos recursos da produção sendo representados verticalmente no lado esquerdo. Na área central da figura, são representadas todas as programações de seus respectivos recursos. Fonte: Tecmaran (2004). Figura 9 Gráfico das programações do software Preactor Sistema de produção da empresa Multitherm Sistemas e Automação Ltda. O sistema de produção da empresa Multitherm é um módulo do sistema de gestão destinado ao mercado têxtil, chamado Gestum (MULTITHERM SISTEMAS E AUTOMAÇÃO, 2006). Neste sistema de produção, além de ser possível programar as OPs, é feita conexão a controladores de máquinas têxteis e coletores de dados, que emitem comandos para as programações do sistema iniciarem e finalizarem. Este sistema também faz a monitoração dos controladores das máquinas, onde os dados são informados ao usuário e coletados para futura geração de relatórios e gráficos. Atualmente o sistema é utilizado em lavanderias industriais, lavanderias de beneficiamento e tinturarias. O gráfico das programações deste sistema também é semelhante a um gráfico de Gantt.

29 28 É possível fazer a manipulação interativa diretamente por este gráfico, como excluir, alterar, iniciar e finalizar programações. Pode-se alterar a programação de seqüência ou de recursos, apenas arrastando-a para a posição desejada. Este sistema é desenvolvido na linguagem Delphi e utiliza recursos gráficos nativos, que são limitados e geram problema de desempenho quando há uma grande quantidade de programações. Este gráfico das programações não dispõe do recurso de zoom, o que dificulta a visualização das programações em um período maior. A técnica utilizada para desenvolver o gráfico das programações desse sistema não possui um sistema de coordenadas, como existe na OpenGL. Todos os gráficos são desenhados passando diretamente as coordenadas na tela, o que o torna complexo para manutenção e implementação de novas técnicas, como por exemplo o recurso de zoom. Também devido à técnica utilizada, o tempo para carregar e ajustar as programações na tela é grande. A figura 10 apresenta a tela principal do sistema de produção da empresa Multitherm. Esta tela principal contém o gráfico das programações, com os recursos de produção listados à esquerda e as OPs programadas sendo representadas na área central. Fonte: Multitherm (2006). Figura 10 Gráfico das programações do sistema de produção da empresa Multitherm

30 29 3 DESENVOLVIMENTO DO SISTEMA O presente capítulo descreve a especificação do projeto e detalha funcionalidades e implementações do sistema desenvolvido. 3.1 REQUISITOS PRINCIPAIS O sistema de programação de produção a ser implementado neste trabalho deverá: a) ter um cadastro de recursos da produção (requisito funcional - RF); b) ter um cadastro de processos (RF); c) permitir a geração de OPs, sendo que cada OP deverá estar associada a um processo (RF); d) permitir a programação de OPs em seus determinados recursos (RF); e) apresentar as programações graficamente, semelhante a um gráfico de Gantt. Este gráfico será chamado de gráfico das programações. O tamanho da representação horizontal de cada programação, deverá variar de acordo com o tempo estimado cadastrado em seu processo. Cada linha do gráfico corresponderá a um recurso da produção, contendo a sua descrição ao lado esquerdo de cada linha. É apresentado na figura 11 um gráfico de programações hipotético. À esquerda da figura são listados os recursos da produção. Ao lado de cada recurso estão representadas as programações alocadas. No topo do gráfico há uma escala de tempo em horas. Também são representados na figura 11 os tempos ociosos, que são os períodos em que o recurso permanece sem produzir (RF); Figura 11 Gráfico de programações hipotético f) permitir através do gráfico das programações, a manipulação interativa das OPs

31 30 programadas, como exclusão, alteração, emissão e liberação (RF); g) possibilitar a aplicação de texturas sobre as OPs representadas no gráfico das programações. Essa textura poderá ser definida ao gerar uma nova OP. Um exemplo a ser usado em empresas têxteis, poderia ser uma imagem identificando artigos jeans ou malha, com suas respectivas cores. Sendo assim, essa textura poderá ser aplicada nas OPs programadas, facilitando a identificação dos processos que estão sendo produzidos (RF); h) identificar no gráfico das programações, as OPs que estão com a data de entrega em atraso. Ao gerar uma nova OP, o usuário deverá fornecer a data de entrega prevista. Após programar a OP, caso o término estimado ultrapasse a data de entrega definida, as programações desta OP serão realçadas no gráfico. Sendo assim, caso o usuário queira cumprir a data de entrega, ele deverá alterar as programações para seqüências que atendam ao término estimado (RF); i) ter o recurso de localizar OPs no gráfico das programações. Esta função realçará no gráfico das programações, apenas as programações da OP informada. Todas as demais programações deverão ficar com cores transparentes, para que a OP localizada possa ser melhor visualizada. Também deverão ser apresentadas setas, apontado os relacionamentos entre as programações da OP localizada (RF); j) ter o recurso de zoom. Este recurso poderá ser aplicado em todo o gráfico das programações, permitindo assim uma melhor visualização das OPs programadas em um período maior (RF); k) ter o recurso de pan. Este recurso permite a rolagem vertical e horizontal do gráfico das programações (RF); l) ser implementado na linguagem de programação Java (requisito não-funcional RNF); m) utilizar a OpenGL para a geração e manipulação interativa do gráfico das programações (RNF); n) utilizar a biblioteca JOGL (COLLABNET INC, 2006a) para acesso às funções da OpenGL (RNF); o) utilizar a biblioteca Swing (SUN MICROSYSTEMS, 2006) para a criação de interfaces (RNF); p) ser portável (RNF).

32 ESPECIFICAÇÃO Para especificação deste trabalho é utilizada a Unified Modeling Language (UML), com auxílio da ferramenta Enterprise Architect (SPARX SYSTEMS, 2007), para gerar os diagramas de casos de uso, de atividades, de estados e de classes. Para gerar o diagrama de entidade relacionamento, foi utilizada a ferramenta PowerDesigner (SYBASE, 2007) Diagrama de casos de uso O diagrama de casos de uso ilustrado na figura 12 retrata todos os casos de uso existentes entre o usuário e o sistema. No gráfico das programações o usuário dispõe das funções para adicionar, excluir, validar, alterar, iniciar, finalizar e localizar programações. Também poderá executar as operações de zoom e pan. No sistema que utiliza o gráfico das programações, será possível cadastrar grupos de recursos, recursos, etapas, processos, intervalos não produtivos e gerar OP. Figura 12 Diagrama de casos de uso

33 Diagrama de atividades Na figura 13 é apresentado o diagrama de atividades do sistema. Ao abrir o sistema, o usuário poderá executar operações de: a) cadastros do sistema; b) programação, onde poderá ser feito várias operações sobre elas; c) gerar OP; d) visualização do gráfico, onde poderá ser alterado zoom e pan; e) fechamento do sistema. Figura 13 Diagrama de atividades Diagrama de estados Uma programação poderá ter um dos seguintes estados: programado, executando ou produzido. Conforme pode ser visto na figura 14, o estado programado é atribuído ao

34 33 programar uma OP na produção. O estado executando é atribuído ao iniciar uma programação na produção. Por fim, o estado produzido é atribuído ao finalizar uma programação em estado executando, ou ao validar uma programação que está em estado programado. Figura 14 Diagrama de estados Diagrama de pacotes Na figura 15 é ilustrado o diagrama de pacotes do sistema desenvolvido. O sistema foi desenvolvido de forma que o gráfico das programações fosse totalmente independente da aplicação. Todas as classes referentes ao gráfico das programações estão no pacote graficoprogramacao, enquanto as classes do sistema estão no pacote producao. As classes que podem ser vistas no pacote producao, são as interfaces do sistema. O pacote data contém as classes que fazem recuperação e persistência no banco de dados. O pacote images contém as imagens utilizadas nos botões das interfaces. E o pacote importacao contém as classes que fazem a importação de dados do sistema de produção da empresa Multitherm. O pacote graficoprogramacao e suas classes são apresentadas na seção Figura 15 Diagrama de pacotes

35 Diagrama de classes do pacote data O pacote data contém todas as classes necessárias para fazer recuperação e persistência no banco de dados. A figura 16 ilustra o diagrama de classes do pacote data. A classe DbConnection é utilizada para estabelecer uma conexão com o SGBD. Ela utiliza o padrão de projeto Singleton (GAMMA, 1995, p. 127), para assim garantir uma única instância e também neste caso, apenas uma única conexão com o SGBD. O pacote data contém outros 3 pacotes: a) dao: as classes deste pacote utilizam o padrão de projeto Data Access Object (DAO) (ALUR; CRUPI; MALKS, 2004, p. 416), com exceção da classe BaseDAO, que herda todas as outras classes DAO. A classe BaseDAO contém funções que facilitam a implementações das classes herdadas. Estas classes contém os métodos que implementam os comandos SQL para recuperação e gravação de dados no banco; b) vo: as classes deste pacote utilizam o padrão de projeto Value Object (VO) (FOWLER, 2003a). Estas classes não são herdadas de nenhuma outra classe e contém apenas seus atributos e os métodos de recuperação e atribuição. Elas são utilizadas na recuperação de dados do banco; c) service: as classes deste pacote utilizam o padrão de projeto Session Facade (ALUR; CRUPI; MALKS, 2004, p. 303). São nestas classes que são implementadas as lógicas de negócio. No sistema desenvolvido, elas são usadas para implementar a geração e programação de OPs. Figura 16 Diagrama de classes do pacote data

36 Diagrama de classes do pacote graficoprogramacao A figura 17 ilustra o diagrama de classes do gráfico das programações. Neste diagrama foram adicionados apenas os métodos e atributos relevantes para seu entendimento. A classe GraficoProgramacao foi desenvolvida a fim de simplificar a utilização do Gráfico das Programações. É através desta classe que são feitas as chamadas de funções para acrescentar, excluir, validar programações, operações de zoom, pan, entre outras. Basicamente, o sistema precisará instanciar apenas esta classe para manipular todo o gráfico das programações. GraficoProgListener, GraficoProgDrawer e GraficoProgOperation são as principais classes do Gráfico das Programações. A classe GraficoProgListener implementa as interfaces que contém os eventos da OpenGL, eventos de teclado, eventos de mouse e também parte da manipulação interativa. Esta classe também possui os métodos para alteração de zoom e pan. É no método display desta classe que devem ser enviados os comandos OpenGL para a geração de desenhos desejados. Todas as rotinas que geram estes desenhos, foram implementadas na classe GraficoProgDrawer. Estes desenhos são todos os gráficos que podem ser vistos no gráfico das programações, como recursos de produção, programações, escala de horas, etc. Parte do conteúdo a ser desenhado, como recursos da produção e programações, precisam estar em alguma estrutura. Esta estrutura é acessada através da classe GraficoProgOperation. Além de conter as estruturas, possui os métodos para adicionar, excluir e alterar o seu conteúdo. Esta classe também possui instâncias de outras classes que exercem diversas funções sobre o gráfico das programações. Estas classes e suas respectivas funções são descritas a seguir. A classe Shape possui as coordenadas e dimensões que são utilizadas para desenhar uma barra horizontal no gráfico das programações. Esta classe é herdada por outras duas: ShapeProg e ShapeIntervalo. ShapeProg é a representação gráfica de uma programação e ShapeIntervalo é a representação gráfica de um intervalo de tempo não produtivo de um recurso da produção. O tamanho horizontal de um ShapeProg é definido pelo tempo estimado da programação. Este tempo estimado e demais informações da programação estão na classe Programacao. Já o tamanho horizontal de um ShapeIntervalo é definido pelo seu tempo de duração, que é encontrado na classe Intervalo. Sendo assim, todos os Shapes contidos no gráfico das programações estarão em uma escala de tempo. Pode-se imaginar a classe RecursoShapes como sendo uma linha horizontal do gráfico

37 36 das programações, onde cada linha possui um recurso da produção, uma lista de programações e uma lista de intervalos não produtivos. É na classe Recurso que são atribuídas informações como o seu código, descrição e índice a ser representado. A classe LeftGenerator é uma classe muito importante utilizada pela GraficoProgOperation. É nesta classe que é calculado a coordenada X de um Shape. Também é usada na alteração de programação, para checar a seqüência correta na fila de programações. A classe ThreadAtualiza é utilizada para mover as programações que estão em estado executando. A cada minuto as programações em execução são movidas para a esquerda, respeitando assim o seu tempo de início em relação a escala de tempo. Consequentemente, todas as programações posteriores às programações em execução também deverão ser movidas para a esquerda. A classe ThreadTooltip monitora a posição do mouse no gráfico das programações. Caso o mouse permaneça posicionado mais de 500 milisegundos sobre uma programação, então é disparado um evento para desenhar um tooltip. O tooltip contém informações da programação, como número da OP, seqüência, tempo estimado, entre outros. A classe HashShapeProg herda a classe HashMap e contém todos os ShapeProg adicionados no gráfico. Ela é utilizada para facilitar a recuperação de objetos ShapeProg, já que pode se recuperar um item através de uma chave. Neste caso, é utilizado como chave o código da programação. A classe LocalizaProgramacao é utilizada para auxiliar a localização de programações no gráfico das programações. Ao localizar uma OP, são traçadas setas indicando os relacionamentos das programações respectivas. O cálculo dos pontos necessários para desenhar estas setas, é feito pela classe Arrow. A classe Arrow é uma adaptação do código fonte de Coenen (2003). São passadas para a classe as coordenadas de início e fim do segmento de reta e ela calcula as coordenadas da cabeça da seta. Sendo assim, estas coordenadas são utilizadas para desenhar as setas que indicam o relacionamento entre as programações. Por fim, a classe GraficoProgTexture que é usada para carregar as texturas sobre as programações. Texturas são imagens que poderão ser aplicadas sobre a representação gráfica das programações. Esta classe utiliza três outras classes que estão no pacote texture: BitmapLoader, TextureReader e ResourceRetriever. Estas três classes foram obtidas de Eeckhoudt e Bezrati (2006) e fazem a leitura dos arquivos de textura.

38 Figura 17 Diagrama de classes do pacote graficoprogramacao 37

39 Diagrama de entidade relacionamento É ilustrado na figura 18, o diagrama de entidade relacionamento do banco de dados utilizado no sistema desenvolvido. É neste banco de dados que são persistidos todos os dados do sistema, como cadastro de recursos, etapas, processos, etc. Também são persistidas todas as OPs geradas e programadas na produção. Figura 18 Diagrama de entidade relacionamento Cada entidade ilustrada na figura 18, representa uma tabela no banco de dados. Estas tabelas são: a) recurso: contém todos recursos de produção cadastrados; b) intervalo: contém todos os intervalos não produtivos cadastrados; c) gruporecurso: contém todos os grupos de recurso cadastrados; d) programacao: contém todas as programações do sistema, inclusive as finalizadas;

40 39 e) programacaopai: contém o código das programações antecessoras e sucessoras; f) etapa: contém todas etapas cadastradas; g) processo: contém todos processos cadastrados; h) etapaprocesso: contém os dados que fazem a ligação da tabela etapa com a tabela processo. Um processo pode conter várias etapas, assim como uma etapa pode estar contida em vários processos; i) op: contém todas as OPs geradas; j) opetapa: contém os dados que fazem a ligação das tabelas op, etapa e programacao. Os registros dessa tabela são inseridos ao gerar uma nova OP. A tabela foi criada para manter a mesma ordem e quantidade de etapas pertencentes ao processo, na situação em que é gerado a OP. Caso não fossem mantidas estas informações, futuramente poderia ocorrer de o usuário alterar a ordem, ou inserir novas etapas no processo. Sendo assim, perderia-se o histórico das etapas executadas. 3.3 IMPLEMENTAÇÃO sistema. Nas seções a seguir estão descritas as funcionalidades e implementações realizadas no Tela principal do sistema A figura 19 ilustra a tela principal do sistema, utilizando o gráfico das programações. As principais funções foram identificadas e numeradas na figura, sendo elas: 1) barra de menu: contém os menus Programação, Cadastro e Zoom. O menu Programação contém as funções de manipulação das programações, sendo elas: adicionar, excluir, validar, alterar e importar dados. O menu Cadastro contém os itens que correspondem aos cadastros: grupo de recursos, recursos, etapa, processo e intervalos. O menu Zoom contém os itens: Mais zoom, Menos zoom e Reset zoom; 2) barra de botões: contém os botões das principais funções do sistema;

41 40 3) gráfico das programações: toda esta área abaixo da barra dos botões é desenhada usando a OpenGL. Ela contém a lista de recursos da produção à esquerda e todas as programações em sua área central; 4) hora atual: é representada por uma linha vermelha vertical e é atualizada a cada minuto. Como pode ser visto, a hora atual no momento que foi gerada a figura 19, era 18:00h; 5) escala de tempo: contém as horas e pontos a cada 15 minutos; 6) programação em estado executando ; 7) localizar: deve ser informado uma OP na caixa de diálogo e pressionar a tecla enter ou o botão Localizar para o sistema realçar todas as programações da OP informada. Caso haja mais de uma programação, é possível navegar entre elas pressionando novamente a tecla enter ou o botão Localizar para ir à próxima programação. Também pode-se usar as teclas F5 a F8, que executam as respectivas funções: primeira, anterior, próxima e última programação localizada; 8) programação em estado produzido ; 9) recursos da produção: representa os equipamentos e mão-de-obra que a empresa dispõe; 10) programações em estado programado. Figura 19 Tela principal do sistema

42 Técnicas e ferramentas utilizadas O sistema desenvolvido neste trabalho foi implementado na linguagem Java. O gráfico das programações utilizado no sistema, foi desenvolvido em OpenGL utilizando a biblioteca JOGL para fazer a integração da linguagem Java com os drivers nativos da OpenGL. Para a geração de interfaces gráficas foi utilizada a biblioteca Swing. Para a persistência dos dados do sistema, foi utilizado o Sistema Gerenciador de Banco de Dados (SGBD) MySQL. Para o desenvolvimento de todo o código fonte, foi utilizado o ambiente de desenvolvimento Netbeans 5.5 (NETBEANS COMMUNITY, 2006). Foram utilizados na implementação, os seguintes padrões de projeto: a) Singleton (GAMMA, 1995, p. 127): utilizado na classe GraficoProgramacao, para que a aplicação não precise criar várias instâncias, ou passar uma instância para várias partes do sistema. Basta utilizar seu método getinstance para obter a sua única instância; b) Value Object (VO) (FOWLER, 2003a): também conhecido como Data Transfer Object (DTO) (FOWLER, 2003b) ou Transfer Object (TO) (ALUR; CRUPI; MALKS, 2004, p. 374), são classes que possuem apenas seus atributos e métodos para atribuir e recuperar os valores dos atributos. No sistema desenvolvido, as classes VO são utilizadas no retorno de métodos das classes DAO; c) Data Access Object (DAO) (ALUR; CRUPI; MALKS, 2004, p. 416): é uma camada que abstrai e encapsula o acesso a uma fonte dados, possibilitando assim, ser feito a gravação e recuperação de dados apenas por classes DAO. No sistema desenvolvido, as classes DAO possuem métodos que executam comandos SQL via Java Database Connectivity (JDBC) para gravar e recuperar dados de um banco de dados; d) Facade (GAMMA, 1995, p. 185): classes facade tem a finalidade de abstrair classes mais complexas. Uma classe que usa esse padrão no sistema desenvolvido, é a GraficoProgramacao. Esta classe possui métodos que acessam métodos de outras classes, a fim de facilitar a utilização do gráfico das programações no sistema desenvolvido; e) Session Facade (ALUR; CRUPI; MALKS, 2004, p. 303): é uma camada que encapsula as regras de negócio. No sistema desenvolvido, as classes que utilizam esse padrão são chamadas de Service.

43 Gráfico das Programações O gráfico das programações é um conjunto de classes totalmente independente do sistema desenvolvido. Para a sua utilização, o sistema apenas instancia um componente chamado GLCanvas e uma classe chamada GraficoProgramacao, que foi apresentada na especificação. Nas próximas seções são apresentados detalhes da implementação do gráfico das programações Definição dos universos OpenGL Para poder criar uma área de desenho em OpenGL, deve-se que definir dois parâmetros: window e viewport. Uma window é a definição do universo a ser trabalhado, ou seja, a porção do plano cartesiano que será trabalhada. A viewport é a definição da área no monitor, em que esta window será apresentada. No desenvolvimento deste trabalho, optou-se usar 5 windows com suas respectivas viewports. Conforme pode ser verificado na figura 20, são elas: 1) título das lista de recursos da produção, que contém apenas o texto Recursos / Hora ; 2) escala de tempo, que está no topo do gráfico; 3) tooltip das programações, também conhecido como hint, é uma caixa de informações que é mostrada ao posicionar o cursor do mouse sobre uma programação. Esta viewport é apresentada sobre a viewport da lista das programações. Foi utilizada uma nova viewport porque o tooltip não deve mudar de tamanho ao executar as operações de zoom in e zoom out no gráfico das programações. O tooltip possuirá sempre as mesmas dimensões; 4) lista de recursos da produção, que está no lado esquerdo do gráfico das programações; 5) lista das programações, que é toda a área central do gráfico, onde são representadas as programações e é feito a manipulação interativa sobre elas.

44 43 Figura 20 Viewports utilizadas no gráfico das programações No quadro 3 é ilustrado o código fonte do método display da classe GraficoProgramacaoListener. Neste método são definidas as windows, viewports e chamados os métodos da classe GraficoProgramacaoDrawer que desenham os objetos na tela.

45 44 public void display(glautodrawable glautodrawable) { GL gl = glautodrawable.getgl(); gl.glclear(gl.gl_color_buffer_bit); this.gl = gl; //glviewport: define viewport //glu.gluortho2d: define window //Título Recursos gl.glviewport(0, height-heightregua, widthrecursos, heightregua); gl.glmatrixmode(gl.gl_projection); gl.glloadidentity(); glu.gluortho2d(getrecursosleft(),getrecursosright(),getreguabottom(),getreguatop()); drawer.drawtitulorecursos(gl); //Recursos gl.glviewport(0, 0, widthrecursos, height-heightregua); gl.glmatrixmode(gl.gl_projection); gl.glloadidentity(); glu.gluortho2d(getrecursosleft(),getrecursosright(),getwinbottom(),getwintop()); drawer.drawrecursos(gl); //Régua (escala de tempo) gl.glviewport(widthrecursos, height-heightregua, width-widthrecursos, heightregua); gl.glmatrixmode(gl.gl_projection); gl.glloadidentity(); glu.gluortho2d(getwinleft(),getwinright(),-heightregua, heightregua); drawer.drawregua(gl); //Programações gl.glviewport(widthrecursos, 0, width-widthrecursos, height-heightregua); gl.glmatrixmode(gl.gl_projection); gl.glloadidentity(); glu.gluortho2d(getwinleft(),getwinright(),getwinbottom(),getwintop()); if (mousepress!= null) { double[] wcoords = getwindowcoordinatesbymouse(gl,mousepress); drawer.getoperations().setshapeprogpressed(wcoords); drawer.getoperations().setshapeprogdrag(wcoords); } drawer.drawdivrecursos(gl); drawer.drawprogramacoes(gl); drawer.drawintervalos(gl); drawer.drawarrowslocaliza(gl); drawer.drawlinhahoraatual(gl); //Tooltip if (showtooltip && (mousemove!= null) && (mousepress == null)) { double[] wcoords = getwindowcoordinatesbymouse(gl,mousemove); int x=(int)wcoords[0],y=(int)wcoords[1]; ShapeProg shapeprog = drawer.getoperations().getshapeprog(x, y); if (shapeprog!= null) { gl.glviewport( mousemove.getx(), height-mousemove.gety()-(int)drawer.getheighttooltip(), (int)drawer.getwidthtooltip(), (int)drawer.getheighttooltip()); gl.glmatrixmode(gl.gl_projection); gl.glloadidentity(); glu.gluortho2d( drawer.getlefttooltip(), drawer.getrighttooltip(), drawer.getbottomtooltip(), drawer.gettoptooltip()); } } } drawer.drawshapetooltip(gl, shapeprog); Quadro 3 Código fonte que define as windows, viewports e chama funções de desenho

46 Adicionar programação A operação de adicionar programação é utilizada para adicionar uma nova representação gráfica de uma programação. Para adicionar uma nova programação, deve ser informado o recurso de produção e qual a seqüência na fila de programações. Esta seqüência não poderá ser anterior às programações pai. Entende-se que programações pai são todas as programações da OP, antecessoras à programação corrente Excluir programação A exclusão de programações é utilizada para remover uma ou mais programações, para que elas possam ser novamente acrescentadas em outra oportunidade. Ao excluir uma programação, todas as programações filhas serão recursivamente excluídas. Entende-se que programações filhas são todas as programações da OP, sucessoras à programação corrente Validar programação A validação de programações consiste em remover uma ou mais programações, a fim de informar ao sistema que a programação já foi iniciada e finalizada pela produção. Ao validar uma programação, todas as programações pai serão recursivamente validadas Alterar programação A alteração de programação consiste em alterar a programação de recurso e/ou de seqüência na fila de programações. Portanto, ao alterar uma programação há algumas regras a serem respeitadas: a) uma programação só poderá ser alterada de recurso de produção, se o recurso de destino pertencer ao mesmo grupo de recurso da posição de origem. A função do grupo de recurso é detalhada na seção ; b) se alterar para uma seqüência menor e houver uma programação pai, então a

47 46 seqüência não poderá ser menor que a seqüência relacionada ao término da programação pai. A figura 21 exemplifica esta situação, onde a programação circulada não poderá ser alterada para uma seqüência anterior à linha que indica o limite; Figura 21 Limite da programação pai na alteração de programação c) se alterar para uma seqüência maior e tiver programações filhas no recurso de destino, então a seqüência não poderá ser maior que da programação filha. A figura 22 exemplifica esta situação, onde a programação circulada não poderá ser alterada para uma seqüência posterior à linha que indica o limite; Figura 22 Limite da programação filha na alteração de programação d) se alterar para uma seqüência maior e não tiver programações filhas no recurso de destino e tiver programações filhas em outros recursos que estão anteriores à seqüência de destino, então estas programações deverão ser alteradas para seqüências que estejam após a programação pai alterada. As figuras 23 e 24 exemplificam esta situação. A figura 23 identifica a programação a ser alterada e a figura 24 ilustra a situação após ser feita a alteração da programação. Na figura 24 pode ser visualizado as programações filhas alteradas automaticamente. As setas ilustram a seqüência de origem para destino.

48 47 Figura 23 Alteração automática de programações filhas Figura 24 Programações filhas alteradas automaticamente Executar programação Consiste em alterar o estado da programação de programado para executando. Ao executar uma programação, caso não esteja na primeira posição da fila, ela será alterada para a primeira posição e então a cada minuto é atualizado a sua posição na tela. A sua posição de início estará de acordo com a escala de tempo, que pode ser visualizada no topo do gráfico das programações Finalizar programação É a operação feita para finalizar uma programação que está executando. Ela deve ser executada pelo sistema ao terminar uma etapa do processo no recurso. Ao finalizar a programação, o seu tamanho não será mais ajustado, assim representando na escala de tempo a hora que foi iniciada e finalizada.

49 Localizar programação A localização de programações pode ser feita de duas formas: Localização por OP ou por data de entrega em atraso. Na localização por OP, é informado o seu número e assim são realçadas no gráfico todas suas respectivas programações. Também são traçadas setas que representam os relacionamentos das programações. As setas oferecem uma visão clara do fluxo da OP, ou seja, informa por quais recursos a OP passará e quais são as programações sucessoras e antecessoras. A figura 25 ilustra a localização de programações de uma OP. Neste exemplo são localizadas as programações da OP de número 3. Figura 25 Localização de programações de uma OP Para fazer a localização por data de entrega em atraso, basta chamar seu respectivo método. Serão realçadas no gráfico, todas as programações em que seu tempo estimado de término ultrapasse a data de entrega fornecida ao gerar a OP. Assim é passado ao usuário uma visão clara das programações que estão em atraso. Caso seja possível, o usuário poderá alterar interativamente as programações, de forma que possa ser produzido dentro de seu prazo de entrega.

50 Intervalos não produtivos Os intervalos não produtivos são intervalos de tempo em que o recurso da produção permanece sem executar processos. Na prática, este intervalo poderia ser um feriado, ou um recurso em manutenção ou até mesmo um horário em que o recurso não é utilizado para produção. Uma programação que estiver dentro de um intervalo não produtivo é automaticamente alterado o seu tempo de término para a soma do tempo estimado de início, com o tempo do intervalo. A figura 26 ilustra uma fila de programações sem intervalos, enquanto na figura 27, foram adicionados intervalos para todos os recursos, das 19:00h às 21:00h. Os intervalos são representados em uma barra vertical, na cor amarelo transparente. Pode-se ver que o tempo estimado de término das programações que possuem intervalo ficou maior. Neste exemplo foram adicionados intervalos para todos os recursos, mas também é possível adicionar intervalos individuais para cada recurso da produção. Figura 26 Programações sem intervalo Figura 27 Programações com intervalos das 19:00h às 21:00h

51 Manipulação Interativa Manipulação interativa são as funções que podem ser aplicadas às programações diretamente no gráfico das programações. As funções para excluir, validar, alterar, executar, finalizar e localizar programações, podem ser feitas ao clicar com o botão direito sobre a programação. Ao clicar com o botão direito é aberto um menu popup com as respectivas funções, como pode ser verificado na figura 28. Figura 28 Menu popup das programações Outro recurso de manipulação interativa é o arrasto de programações com o mouse, também conhecido como drag & drop. Este recurso é utilizado para fazer a alteração de programações. Para alterar uma programação, basta arrastá-la até a seqüência desejada ou para o recurso de produção desejado. O gráfico somente deixará arrastar uma programação para recursos pertencentes ao mesmo grupo de recurso da programação a ser alterada Alinhamento de programações Alinhar uma programação significa não deixar que uma programação filha seja representada antes do término de suas programações pai. Este alinhamento ocorre nos seguintes casos: a) ao abrir o sistema: todas as programações são carregadas e alinhadas; b) após executar as operações: acrescentar, excluir, validar, executar e finalizar; c) pela ThreadAtualiza: a cada minuto as programações em execução devem mover-se para a esquerda, respeitando assim o seu tempo de início em relação a escala de tempo. Como essa operação afeta as programações que estão atrás destas programações que estão em execução, então deve-se alinhar todas estas programações que foram afetadas.

52 Zoom Uma operação de zoom consiste em visualizar um objeto ou conjunto de objetos mais de perto (zoom in) ou mais afastado (zoom out). Essas operações de zoom foram implementadas no gráfico das programações. Utilizando a operação zoom out pode-se visualizar programações de um período maior sem precisar rolar a tela. Utilizando a operação de zoom in pode-se voltar ao estado inicial, ou então ser ajustado conforme a necessidade do usuário Pan A operação de pan consiste em deslocar a janela de visualização de tal maneira que o usuário consiga visualizar diferentes partes do universo. Ao deslocar o eixo X para mais ou para menos, estamos respectivamente visualizando as programações posteriores ou anteriores. Ao deslocar o eixo Y para mais ou para menos, conseguimos visualizar os primeiros ou últimos recursos da produção cadastrados, com suas respectivas programações. No gráfico das programações a operação de pan pode ser feita através das setas do teclado Técnicas de visualização A fim de tornar o gráfico de programações uma interface amigável, foram utilizadas algumas técnicas de visualização: a) bordas arredondadas: conforme pode ser verificado na figura 29, foram traçados quadrantes de círculo nas bordas dos recursos de produção e das programações; Figura 29 Recursos e programações com bordas arredondadas b) antialiasing: é um recurso oferecido pela OpenGL, que suaviza linhas e polígonos.

53 52 Na figura 29 o recurso está habilitado, enquanto na figura 30 foi desabilitado o recurso de antialiasing. Pode-se notar uma imperfeição no arrendamento das letras e das bordas dos recursos e programações; Figura 30 Recursos e programação com recurso de antialiasing desabilitado c) transparência: é um recurso oferecido pela OpenGL onde pode-se configurar o nível de opacidade de linhas e polígonos. A figura 31 exemplifica a utilização de transparência. Observa-se que as programações da OP 2 e o tooltip estão utilizando transparência; Figura 31 Utilização de transparência d) degradê: o efeito é utilizado na cor de fundo de vários componentes do gráfico, como na pintura de fundo dos recursos da produção, no tooltip e nas programações; e) texturas: o efeito é utilizado para aplicar uma imagem sobre a programação. Este recurso facilita a identificação de programações. Um exemplo a ser usado em indústrias de beneficiamento têxtil, poderia ser a identificação do tipo do tecido, como malha ou jeans, com suas respectivas cores. A figura 32 ilustra um exemplo de programações utilizando o recurso de textura.

54 53 Figura 32 Utilização de texturas Otimizações de renderização Durante o desenvolvimento do trabalho, notou-se que o gráfico das programações possuía uma lentidão ao renderizar objetos. O problema ocorria apenas quando haviam muitas programações. A causa da lentidão era a quantidade de comandos que eram enviados para a placa gráfica. Estavam sendo enviados os comandos para gerar todas as programações, inclusive as que não eram visualizadas na tela. Para solucionar o problema, foram desenvolvidas rotinas que checam se o objeto está dentro de sua window. Caso o objeto esteja fora da window, ou seja, não é visualizado pelo usuário, então os comandos para gerar esse objeto não são enviados para a placa gráfica. Com esta alteração, o problema foi resolvido. Outra causa de lentidão foi o arredondamento dos cantos dos shapes que representam as programações. Ao utilizar uma operação de zoom out serão feitos mais cálculos e enviados mais coordenadas à placa gráfica. Ao executar muitas operações seguidas de zoom out, a quantidade de cálculos para gerar o traçado dos quadrantes de círculo era grande, o que causava lentidão. A solução encontrada foi otimizar o desenho do arredondamento do shape. Foi definido um limite de quantidade de operações zoom out para traçar os quadrantes de círculo nos shapes. A partir deste limite, não será mais traçado o quadrante de círculo, mas sim apenas uma reta. Nestas situações de zoom out os gráficos estarão em um tamanho pequeno, então a troca do arredondamento pela reta é praticamente imperceptível. O quadro 4 mostra o código fonte utilizado para geração do arredondamento dos shapes. A função

55 54 drawroundbordershape é utilizada para desenhar todos os shapes utilizados no gráfico das programações. É utilizado a função drawcirclequadrant para fazer os cantos arredondados ou a função drawline para substituir o arredondamento por uma reta. private void drawroundbordershape(gl gl, float left, float right, float top, float bottom, int vlround, boolean flroundotimized, float vltransparency, float vldegrade, float rgbin[], float rgbborder[], int texture) { gl.glcolor4f(1.0f, 1.0f, 1.0f, vltransparency); float width = right-left; float height = top-bottom; for (int i=0; i<2; i++) { //0=interior / 1=borda if (i == 0) { if (texture!= 0) { gl.glbindtexture(gl.gl_texture_2d, texture); gl.glenable(gl.gl_texture_2d); } else gl.glcolor4f(rgbin[0], rgbin[1], rgbin[2], vltransparency); gl.glbegin(gl.gl_polygon); //interior } else { gl.glcolor4f(rgbborder[0], rgbborder[1], rgbborder[2], vltransparency); gl.glbegin(gl.gl_line_loop); //borda } //parte de cima do shape: if (flroundotimized) { //substitui arredondanento por reta: drawline(gl, left, top-vlround, left+vlround, top, 0, 0); drawline(gl, right-vlround, top, right, top-vlround, width/widthtexture, 0); } else { //cantos arredondados: drawcirclequadrant(gl, left, top, width, height, vlround, 2); drawcirclequadrant(gl, right, top, width, height, vlround, 1); } if ((i == 0) && (texture == 0)) //faz o degradê: gl.glcolor4f(rgbin[0]-vldegrade, rgbin[1]-vldegrade, rgbin[2]-vldegrade, vltransparency); } } //parte de baixo do shape: (deve ser feito assim por causa do degradê) if (flroundotimized) { //substitui arredondanento por reta: drawline(gl, right, bottom+vlround, right-vlround, bottom, width/widthtexture, height/heighttexture); drawline(gl, left+vlround, bottom, left, bottom+vlround, 0, height/heighttexture); } else { //cantos arredondados: drawcirclequadrant(gl, right, bottom, width, height, vlround, 4); drawcirclequadrant(gl, left, bottom, width, height, vlround, 3); } gl.glend(); if ((i == 0) && (texture!= 0)) gl.gldisable(gl.gl_texture_2d); private void drawline(gl gl, float x1, float y1, float x2, float y2, float xtexture, float ytexture) { gl.gltexcoord2d(xtexture, ytexture); //coordenadas da textura gl.glvertex2f(x1, y1); //coordenadas da linha gl.glvertex2f(x2, y2); } private void drawcirclequadrant(gl gl, float x, float y, float widthrect, float heightrect, int widthraio, int vlquadrant) { float rp, xp, yp; //point coords float xraio = x; float yraio = y; int angini = 90 * vlquadrant; int angfim = angini - 90; if ((vlquadrant == 1) (vlquadrant == 2)) yraio -= widthraio; if ((vlquadrant == 1) (vlquadrant == 4)) xraio -= widthraio; if ((vlquadrant == 2) (vlquadrant == 3)) xraio += widthraio; if ((vlquadrant == 3) (vlquadrant == 4)) yraio += widthraio; for (int ang = angini; ang >= angfim; ang -= 30) { rp = (ang * (float)math.pi) / 180.0f; xp = xraio + (float)(widthraio * Math.cos(rp)); yp = yraio + (float)(widthraio * Math.sin(rp)); } } gl.gltexcoord2d( //coordenadas da textura gettextcoordx(x, xp, widthrect, vlquadrant), gettextcoordy(y, yp, heightrect, vlquadrant)); gl.glvertex2d(xp,yp); //coordenadas do quadrante Quadro 4 Rotinas usadas para desenhar os shapes com cantos arredondados

56 Sistema de programação de produção O sistema foi desenvolvido utilizando o gráfico das programações descrito anteriormente. Neste sistema é possível criar processos, programá-los na produção, iniciar e finalizar estas programações, podendo assim ser feito um planejamento e acompanhamento de tudo o que está sendo produzido e o que ainda deve ser feito pela produção. Todas as telas de cadastro do sistema são herdadas de uma tela padrão de cadastro. Esta tela padrão é apresentada na figura 33. Na barra de botões pode ser visto os botões de novo registro, salvar, excluir e desfazer. Figura 33 Tela padrão de cadastro Nas próximas seções são descritas algumas das funcionalidades do sistema Cadastro de grupo de recursos Os grupos de recursos são classificações para os recursos da produção. Esta classificação é utilizada no cadastramento de etapas e na programação, para saber em quais recursos as etapas poderão ser programadas. Exemplificando, uma lavanderia poderá ter várias máquinas de lavar. Cada máquina é um recurso e todas poderão ser classificadas como o grupo de recurso Lavadoras. Sendo assim, uma etapa cadastrada para o grupo Lavadoras obviamente deverá ser programada para máquinas do grupo Lavadoras. Esta mesma etapa jamais poderá ser programada em grupos Centrífuga ou Secador.

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 3 de maio de 2011. SCC0250 - Computação Gráca

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 3 de maio de 2011. SCC0250 - Computação Gráca Introdução à Opengl com Java SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL Francisco Tiago Avelar, Vitor Conrado F. Gomes, Cesar Tadeu Pozzer Universidade Federal de Santa Maria UFSM Curso de Ciência da Computação

Leia mais

MRP / MRP II / ERP (capítulos 11 e 12)

MRP / MRP II / ERP (capítulos 11 e 12) MRP / MRP II / ERP (capítulos 11 e 12) As siglas MRP, MRP II e ERP são bastante difundidas e significam: MRP Materials Requirements Planning Planejamento das Necessidades de Materiais; MRP II Resource

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Sistema de Informações da Produção Utilizando o Método Kanban

Sistema de Informações da Produção Utilizando o Método Kanban Ciências da Computação FURB Trabalho de Conclusão de Curso (TCC) Sistema de Informações da Produção Utilizando o Método Kanban Alzir Wagner Orientador: Wilson Pedro Carli Fevereiro de 2008 Roteiro de apresentação

Leia mais

Dados em Java. Introdução

Dados em Java. Introdução Interface Gráfica e Banco de Dados em Java Introdução Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Licença para uso e

Leia mais

Unidade II. Outras ferramentas que também auxiliam o gerenciamento de projetos são: WBS, gráficos Gantt, PERT/CPM, ECD, entre outros.

Unidade II. Outras ferramentas que também auxiliam o gerenciamento de projetos são: WBS, gráficos Gantt, PERT/CPM, ECD, entre outros. GERENCIAMENTO DE PROJETOS DE TI Unidade II 2 FERRAMENTAS PARA GESTÃO DE PROJETOS A gestão de projeto como já visto no capítulo anterior é uma tarefa trabalhosa que requer muito controle. Assim, para ajudar

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Universidade Regional de Blumenau

Universidade Regional de Blumenau Universidade Regional de Blumenau Curso de Bacharel em Ciências da Computação PCPTCC - Planejamento e Controle da Produção Protótipo desenvolvido como Trabalho de Conclusão de Curso Acadêmico: Marcelo

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0. Ajuda ao Usuário

Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0. Ajuda ao Usuário Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0 Ajuda ao Usuário A S S I S T E N T E P I M A C O + 2.2.0 Ajuda ao usuário Índice 1. BÁSICO 1 1. INICIANDO O APLICATIVO 2 2. O AMBIENTE DE

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Apêndice A. Manual do Usuário JSARP

Apêndice A. Manual do Usuário JSARP Apêndice A Manual do Usuário JSARP A.1. Introdução JSARP é um simulador e analisador de Redes de Petri. É um aplicativo que permite desenhar uma rede, fazer análises, verificar propriedades e simular sua

Leia mais

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 SUMÁRIO LISTA DE FIGURAS LISTA DE TABELAS LISTA DE SIGLAS E ABREVIATURAS Pág. CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 2.1 A tecnologia de orientação a objetos 25 2.1.1 Projeto de software

Leia mais

Manual do Usuário Características e recursos básicos Enterprise Resource Planning

Manual do Usuário Características e recursos básicos Enterprise Resource Planning Manual do Usuário Características e recursos básicos Enterprise Resource Planning www.pwi.com.br 1 Volpe Enterprise Resource Planning Este manual não pode, em parte ou no seu todo, ser copiado, fotocopiado,

Leia mais

Visual Library: Uma Biblioteca para Criação de Ferramentas de Modelagem Gráfica

Visual Library: Uma Biblioteca para Criação de Ferramentas de Modelagem Gráfica Visual Library: Uma Biblioteca para Criação de Ferramentas de Modelagem Gráfica Tiago A. Gameleira 1, Raimundo Santos Moura 2, Luiz Affonso Guedes 1 1 Universidade Federal do Rio Grande do Norte (UFRN)

Leia mais

Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots

Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots Roosewelt Sanie Da Silva¹ 1 Ciência da Computação Universidade Presidente Antônio Carlos (UNIPAC) Rodovia

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

UMC Inventor 8 Procedimento para criação de um modelo de peça paramétrica simples projeto Projeto.

UMC Inventor 8 Procedimento para criação de um modelo de peça paramétrica simples projeto Projeto. UMC - Tecnologia de Automação Industrial Desenho 3 Prof.: Jorge Luis Bazan. Modulo 2 Inventor 8 Procedimento para criação de um modelo de peça paramétrica simples a) Defina um novo projeto para conter

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 2. Programação visual com a IDE Netbeans Projetos Tipos de projetos Desenvolvimento

Leia mais

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Tutorial JUDE ( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Ferramenta CASE UML Índice Introdução... 2 Download e Instalação... 2 Apresentação da Ferramenta... 2 Salvando o Projeto...

Leia mais

Informática básica: Sistema operacional Microsoft Windows XP

Informática básica: Sistema operacional Microsoft Windows XP Informática básica: Sistema operacional Microsoft Windows XP...1 Informática básica: Sistema operacional Microsoft Windows XP...1 Iniciando o Windows XP...2 Desligar o computador...3 Área de trabalho...3

Leia mais

GEADA. Gerador de Expressões Algébricas em Digrafos Acíclicos. para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa

GEADA. Gerador de Expressões Algébricas em Digrafos Acíclicos. para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa GEADA Gerador de Expressões Algébricas em Digrafos Acíclicos para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa 1 1 Introdução O GEADA (Gerador de Expressões Algébricas em Digrafos Acíclicos)

Leia mais

GLOBAL SCIENCE AND TECHNOLOGY (ISSN 1984 3801)

GLOBAL SCIENCE AND TECHNOLOGY (ISSN 1984 3801) GLOBAL SCIENCE AND TECHNOLOGY (ISSN 1984 3801) UTILIZAÇÃO DE APLICATIVOS BASE E CALC DO PACOTE BROFFICE.ORG PARA CRIAÇÃO DE SISTEMA DE INFORMAÇÃO DE PEQUENO PORTE Wílson Luiz Vinci 1 Marcelo Gonçalves

Leia mais

http://www.blender.org/ Curso de extensão em Blender Prof. Luiz Gonzaga Damasceno

http://www.blender.org/ Curso de extensão em Blender Prof. Luiz Gonzaga Damasceno 1. Introdução http://www.blender.org/ Curso de extensão em Blender Prof. Luiz Gonzaga Damasceno Damasceno www.damasceno.info - damasceno12@hotmail.com Google: Blender 3D: Guia de sobrevivência 1. Introdução

Leia mais

LASERTECK SOFTECK MANUAL DO USUÁRIO

LASERTECK SOFTECK MANUAL DO USUÁRIO LASERTECK SOFTECK MANUAL DO USUÁRIO 2013 SUMÁRIO 1 INTRODUÇÃO... 3 2 REQUISITOS DO SISTEMA... 3 3 INSTALAÇÃO... 3 4 COMO COMEÇAR... 3 5 FORMULÁRIOS DE CADASTRO... 4 6 CADASTRO DE VEÍCULO... 6 7 ALINHAMENTO...

Leia mais

ERP. Agenda ERP. Enterprise Resource Planning. Origem Funcionalidades Integração Projeto Caso de Sucesso Projeto ERP em Números

ERP. Agenda ERP. Enterprise Resource Planning. Origem Funcionalidades Integração Projeto Caso de Sucesso Projeto ERP em Números ERP Enterprise Resource Planning 1 Agenda Origem Funcionalidades Integração Projeto Caso de Sucesso Projeto ERP em Números ERP Com o avanço da TI as empresas passaram a utilizar sistemas computacionais

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais são as palavras que podem

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas

Tecnólogo em Análise e Desenvolvimento de Sistemas Tecnólogo em Análise e Desenvolvimento de Sistemas O conteúdo deste documento tem como objetivos geral introduzir conceitos mínimos sobre sistemas operacionais e máquinas virtuais para posteriormente utilizar

Leia mais

Universidade Federal do Rio de Janeiro NCE/PGTIAE. Tutorial SweetHome3D

Universidade Federal do Rio de Janeiro NCE/PGTIAE. Tutorial SweetHome3D Universidade Federal do Rio de Janeiro NCE/PGTIAE Tutorial SweetHome3D Trabalho apresentado ao Prof. Carlo na Disciplina de Software Livre no curso Pós Graduação em Tecnologia da Informação Aplicada a

Leia mais

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Processo de garantia da qualidade baseado no modelo MPS.BR Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Roteiro introdução objetivos do trabalho fundamentação teórica desenvolvimento da ferramenta

Leia mais

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java Como Plataforma... 6 Finalidade... 9 Características... 11 Perspectivas... 13 Exercícios... 14 CAPÍTULO

Leia mais

Capítulo 7 O Gerenciador de Arquivos

Capítulo 7 O Gerenciador de Arquivos Capítulo 7 O Gerenciador de Arquivos Neste capítulo nós iremos examinar as características da interface do gerenciador de arquivos Konqueror. Através dele realizaremos as principais operações com arquivos

Leia mais

Unidade 1: O Painel de Controle do Excel *

Unidade 1: O Painel de Controle do Excel * Unidade 1: O Painel de Controle do Excel * material do 2010* 1.0 Introdução O Excel nos ajuda a compreender melhor os dados graças à sua organização em células (organizadas em linhas e colunas) e ao uso

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Correção de cartões de respostas utilizando análise e processamento de imagens digitais

Correção de cartões de respostas utilizando análise e processamento de imagens digitais Correção de cartões de respostas utilizando análise e processamento de imagens digitais Vantuil José de OLIVEIRA NETO¹, Caroline Julliê de Freitas RIBEIRO¹, Samuel Pereira DIAS² ¹ Tecnólogos em Análise

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

1. Instalando o Java 7 JavaFX e o Netbeans

1. Instalando o Java 7 JavaFX e o Netbeans 1. Instalando o Java 7 JavaFX e o Netbeans Faça o download do Java 7 que inclui JavaFX no site do Oracle: http://www.oracle.com/technetwork/java/javase /downloads/index.html. Clique no License Agreement

Leia mais

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE por Miguel Aguiar Barbosa Trabalho de curso II submetido como

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM Java 2ª Edição n Sumário VII Sumário CAPÍTULO 1 Introdução ao Java... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java como Plataforma... 6 Finalidade...

Leia mais

Ordens de Produção Vinculadas

Ordens de Produção Vinculadas Ordens de Produção Vinculadas DESENVOLVENDO SOLUÇÕES Autora: Laila M G Gechele Doc. Vrs. 02 Revisão: Marcelo Barby Aprovado em: Novembro de 2014. Nota de copyright Copyright 2014 Teorema Informática, Guarapuava.

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

TRABALHO COM GRANDES MONTAGENS

TRABALHO COM GRANDES MONTAGENS Texto Técnico 005/2013 TRABALHO COM GRANDES MONTAGENS Parte 05 0 Vamos finalizar o tema Trabalho com Grandes Montagens apresentando os melhores recursos e configurações de hardware para otimizar a abertura

Leia mais

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

SuperStore. Sistema para Automação de Óticas. MANUAL DO USUÁRIO (Módulo Vendas e Caixa)

SuperStore. Sistema para Automação de Óticas. MANUAL DO USUÁRIO (Módulo Vendas e Caixa) SuperStore Sistema para Automação de Óticas MANUAL DO USUÁRIO (Módulo Vendas e Caixa) Contato: (34) 9974-7848 http://www.superstoreudi.com.br superstoreudi@superstoreudi.com.br SUMÁRIO 1 Vendas... 3 1.1

Leia mais

Especificação do KAPP-PPCP

Especificação do KAPP-PPCP Especificação do KAPP-PPCP 1. ESTRUTURA DO SISTEMA... 4 1.1. Concepção... 4 2. FUNCIONALIDADE E MODO DE OPERAÇÃO... 5 3. TECNOLOGIA... 7 4. INTEGRAÇÃO E MIGRAÇÃO DE OUTROS SISTEMAS... 8 5. TELAS E RELATÓRIOS

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

Leia mais

Um estudo sobre Realidade Aumentada para a plataforma Android. Acadêmica Gabriela Tinti Vasselai Orientador Dalton Solano dos Reis

Um estudo sobre Realidade Aumentada para a plataforma Android. Acadêmica Gabriela Tinti Vasselai Orientador Dalton Solano dos Reis Um estudo sobre Realidade Aumentada para a plataforma Android Acadêmica Gabriela Tinti Vasselai Orientador Dalton Solano dos Reis Roteiro Introdução Fundamentação teórica Desenvolvimento Resultados e discussão

Leia mais

SISTEMAS INTEGRADOS DE GESTÃO EMPRESARIAL E A ADMINISTRAÇÃO DE PATRIMÔNIO ALUNO: SALOMÃO DOS SANTOS NUNES MATRÍCULA: 19930057

SISTEMAS INTEGRADOS DE GESTÃO EMPRESARIAL E A ADMINISTRAÇÃO DE PATRIMÔNIO ALUNO: SALOMÃO DOS SANTOS NUNES MATRÍCULA: 19930057 INTRODUÇÃO SISTEMAS INTEGRADOS DE GESTÃO EMPRESARIAL E A ADMINISTRAÇÃO DE PATRIMÔNIO ALUNO: SALOMÃO DOS SANTOS NUNES MATRÍCULA: 19930057 Há algum tempo, podemos observar diversas mudanças nas organizações,

Leia mais

EDITOR GRÁFICO DE RUAS PARA O SISTEMA DE CONTROLE DE TRÁFEGO DE AUTOMÓVEIS EM UMA MALHA RODOVIÁRIA URBANA: VERSÃO 3.0

EDITOR GRÁFICO DE RUAS PARA O SISTEMA DE CONTROLE DE TRÁFEGO DE AUTOMÓVEIS EM UMA MALHA RODOVIÁRIA URBANA: VERSÃO 3.0 UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO EDITOR GRÁFICO DE RUAS PARA O SISTEMA DE CONTROLE DE TRÁFEGO DE AUTOMÓVEIS EM UMA MALHA

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

Universidade Federal de Pelotas Conjunto Agrotécnico Visconde da Graça CAVG Disciplina: Informática Apresentação Gráfica

Universidade Federal de Pelotas Conjunto Agrotécnico Visconde da Graça CAVG Disciplina: Informática Apresentação Gráfica Apresentação Gráfica Microsoft Office Power Point 1 Sumário 1. MICROSOFT POWER POINT... 4 1.1. INICIANDO O MICROSOFT POWER POINT... 4 2. CONHECENDO A INTERFACE DO POWER POINT... 5 2.1. O DOCUMENTO DO POWER

Leia mais

PROJETO DA DISCIPLINA. PES II Processo de Engenharia de Software II

PROJETO DA DISCIPLINA. PES II Processo de Engenharia de Software II UNIOESTE - Universidade Estadual do Oeste do Paraná CCET - Centro de Ciências Exatas e Tecnológicas Colegiado de Informática Curso de Bacharelado em Informática PROJETO DA DISCIPLINA PES II Processo de

Leia mais

BrOffice Módulo 01 ÍNDICE

BrOffice Módulo 01 ÍNDICE ÍNDICE Vídeo 01: Introdução ao BrOffice Vídeo 02: Componentes Vídeo 03: Outras funções Vídeo 04: Formato de arquivo Vídeo 05: Uso Vídeo 06: Multiplataforma Vídeo 07: Conhecendo a interface Vídeo 08: Experimentando

Leia mais

ESCOLA ESTADUAL DE EDUCAÇÃO PROFISSIONAL ESTRELA TÉCNICO EM INFORMÁTICA SISTEMA DE LOCADORA. Rodrigo Luiz da Rosa

ESCOLA ESTADUAL DE EDUCAÇÃO PROFISSIONAL ESTRELA TÉCNICO EM INFORMÁTICA SISTEMA DE LOCADORA. Rodrigo Luiz da Rosa ESCOLA ESTADUAL DE EDUCAÇÃO PROFISSIONAL ESTRELA TÉCNICO EM INFORMÁTICA SISTEMA DE LOCADORA Rodrigo Luiz da Rosa Estrela 2012 EIXO TECNOLÓGICO: Informação e Comunicação TÍTULO: SISTEMA DE LOCADORA AUTOR:

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR $,'(GR5HSRUW0DQDJHU

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR $,'(GR5HSRUW0DQDJHU $,'(GR5HSRUW0DQDJHU Neste capítulo vamos abordar o ambiente de desenvolvimento do Report Manager e como usar os seus recursos. $FHVVDQGRRSURJUDPD Depois de instalado o Report Manager estará no Grupo de

Leia mais

Lição 4 - Primeiros passos no Linux Ubuntu 11.04

Lição 4 - Primeiros passos no Linux Ubuntu 11.04 Lição 4 - Primeiros passos no Linux Ubuntu 11.04 Olá Aluno Os objetivos específicos desta lição são: - reconhecer o Ubuntu como mais uma alternativa de sistema operacional; - conhecer os elementos da área

Leia mais

Volpe Enterprise Resource Planning

Volpe Enterprise Resource Planning Volpe Enterprise Resource Planning Este manual não pode, em parte ou no seu todo, ser copiado, fotocopiado, reproduzido, traduzido ou reduzido a qualquer mídia eletrônica ou máquina de leitura, sem a expressa

Leia mais

Introdução ao ERP Microsiga Protheus da Totvs

Introdução ao ERP Microsiga Protheus da Totvs Por Edilberto Souza Introdução ao ERP Microsiga Protheus da Totvs Agenda Introdução a alguns conceitos de ERP; Noções sobre o mercado de ERP; Arquitetura do Microsiga Protheus; Visão geral do ambiente

Leia mais

Open Graphics Library OpenGL

Open Graphics Library OpenGL Open Graphics Library OpenGL Filipe Gonçalves Barreto de Oliveira Castilho Nuno Alexandre Simões Aires da Costa Departamento de Engenharia Informática Universidade de Coimbra 3030 Coimbra, Portugal http://student.dei.uc.pt/~fgonc/opengl/

Leia mais

APS Advanced Plainning and Scheduling Sistema Avançado de Produção

APS Advanced Plainning and Scheduling Sistema Avançado de Produção APS Advanced Plainning and Scheduling Sistema Avançado de Produção O módulo APS é a mais nova ferramenta que irá auxiliar no gerenciamento da produção. O principal objetivo do APS é a determinação exata

Leia mais

Sistema de Automação Comercial de Pedidos

Sistema de Automação Comercial de Pedidos Termo de Abertura Sistema de Automação Comercial de Pedidos Cabana - Versão 1.0 Iteração 1.0- Release 1.0 Versão do Documento: 1.5 Histórico de Revisão Data Versão do Documento Descrição Autor 18/03/2011

Leia mais

1. NOÇÕES BÁSICAS... 1.1. Iniciando o Excel... 1.1.1. Abrindo o Excel... 1.1.2. Encerrando o Excel... 1.2. A tela do Excel 7.0... 1.2.1.

1. NOÇÕES BÁSICAS... 1.1. Iniciando o Excel... 1.1.1. Abrindo o Excel... 1.1.2. Encerrando o Excel... 1.2. A tela do Excel 7.0... 1.2.1. 1. NOÇÕES BÁSICAS... 1.1. Iniciando o Excel... 1.1.1. Abrindo o Excel... 1.1.2. Encerrando o Excel... 1.2. A tela do Excel 7.0... 1.2.1. Partes da tela do Excel... Barra de fórmulas... Barra de status...

Leia mais

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Carlos Henrique Pereira WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Florianópolis - SC 2007 / 2 Resumo O objetivo deste trabalho é especificar

Leia mais

Linguagem Específica de Domínio para Programação de Robôs

Linguagem Específica de Domínio para Programação de Robôs Linguagem Específica de Domínio para Programação de Robôs François Jumes, Luiz Claudio Rossafa Honda Curso de Bacharelado em Sistemas de Informação Departamento de Informática e Estatística Universidade

Leia mais

SIMULADO Windows 7 Parte V

SIMULADO Windows 7 Parte V SIMULADO Windows 7 Parte V 1. O espaço reservado para a Lixeira do Windows pode ser aumentado ou diminuído clicando: a) Duplamente no ícone lixeira e selecionando Editar propriedades b) Duplamente no ícone

Leia mais

Professor: Macêdo Firmino Introdução ao Windows 7

Professor: Macêdo Firmino Introdução ao Windows 7 Professor: Macêdo Firmino Introdução ao Windows 7 O hardware não consegue executar qualquer ação sem receber instrução. Essas instruções são chamadas de software ou programas de computador. O software

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

Leia mais

GESTAO DE PROJETOS. Núcleo de Engenharia e TI Prof. Esdras E-mail: esdraseler@terra.com.br

GESTAO DE PROJETOS. Núcleo de Engenharia e TI Prof. Esdras E-mail: esdraseler@terra.com.br Planejamento de Tempo e Escopo do Projeto Faculdade Pitágoras Faculdade Pitágoras Núcleo de Engenharia e TI Prof. Esdras E-mail: esdraseler@terra.com.br 1 Templates de Documentos http://www.projectmanagementdocs.com

Leia mais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

Leia mais

OMT-G Design. Instalação por pacotes

OMT-G Design. Instalação por pacotes OMT-G Design A plataforma Eclipse OMT-G Design não é um software independente, é um plug-in que se utiliza dos mecanismos de extensão do Eclipse que por sua vez é um ambiente de desenvolvimento de software.

Leia mais

Documento de Projeto de Software

Documento de Projeto de Software Documento de Projeto de Software Projeto: Vídeo Locadora Passatempo Versão: 1.0 Responsável: Ricardo de Almeida Falbo 1. Introdução Este documento apresenta o documento de projeto (design) do sistema de

Leia mais

Excel 2010 Modulo II

Excel 2010 Modulo II Excel 2010 Modulo II Sumário Nomeando intervalos de células... 1 Classificação e filtro de dados... 3 Subtotais... 6 Validação e auditoria de dados... 8 Validação e auditoria de dados... 9 Cenários...

Leia mais

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico Fundamentos de Java Prof. Marcelo Cohen 1. Histórico 1990 linguagem Oak; desenvolvimento de software embutido para eletrodomésticos S.O. para o controle de uma rede de eletrodomésticos o surgimento da

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE IVY MARTINS SALLES SATCAR: SISTEMA DE GERÊNCIA DE UMA EMPRESA DE RASTREAMENTO VEICULAR

UNIVERSIDADE FEDERAL FLUMINENSE IVY MARTINS SALLES SATCAR: SISTEMA DE GERÊNCIA DE UMA EMPRESA DE RASTREAMENTO VEICULAR UNIVERSIDADE FEDERAL FLUMINENSE IVY MARTINS SALLES SATCAR: SISTEMA DE GERÊNCIA DE UMA EMPRESA DE RASTREAMENTO VEICULAR NITERÓI 2010 IVY MARTINS SALLES SATCAR: SISTEMA DE GERÊNCIA DE UMA EMPRESA DE RASTREAMENTO

Leia mais

Autodesk AutoCAD Civil 3D 2014 Metric

Autodesk AutoCAD Civil 3D 2014 Metric Primeiros Passos com o AutoCad AutoCAD é um software do tipo CAD (Computer Aided Design) ou desenho auxiliado por computador - criado e comercializado pela Autodesk Inc desde 1982. É utilizado em diversa

Leia mais

Integração entre Sistemas de Seqüenciamento e ERP para solução de problemas de alteração de ordens de produção devido a eventos inesperados

Integração entre Sistemas de Seqüenciamento e ERP para solução de problemas de alteração de ordens de produção devido a eventos inesperados Integração entre Sistemas de Seqüenciamento e ERP para solução de problemas de alteração de ordens de produção devido a eventos inesperados Helio Galvão Ciffoni, Ramon Hoshino & Walid Nicolas Assad Malisoft

Leia mais

Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos

Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos Mobile Command Diego Armando Gusava Orientador: Mauro Marcelo Mattos Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento Implementação Conclusão Extensões Introdução O que me motivou? Solução

Leia mais

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo? O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação

Leia mais

MOR: Uma Ferramenta para o Mapeamento Objeto-Relacional em Java

MOR: Uma Ferramenta para o Mapeamento Objeto-Relacional em Java MOR: Uma Ferramenta para o Mapeamento Objeto-Relacional em Java Leonardo Gresta Paulino Murta Gustavo Olanda Veronese Cláudia Maria Lima Werner {murta, veronese, werner}@cos.ufrj.br COPPE/UFRJ Programa

Leia mais

Prof. Me. Vítor Hugo Dias da Silva

Prof. Me. Vítor Hugo Dias da Silva Prof. Me. Vítor Hugo Dias da Silva Programação e Controle da Produção é um conjunto de funções inter-relacionadas que objetivam comandar o processo produtivo e coordená-lo com os demais setores administrativos

Leia mais

ÍNDICE. Sobre o SabeTelemarketing 03. Contato. Ícones comuns à várias telas de gerenciamento. Verificar registros 09. Tela de relatórios 09

ÍNDICE. Sobre o SabeTelemarketing 03. Contato. Ícones comuns à várias telas de gerenciamento. Verificar registros 09. Tela de relatórios 09 ÍNDICE Sobre o SabeTelemarketing 03 Ícones comuns à várias telas de gerenciamento Contato Verificar registros 09 Telas de cadastro e consultas 03 Menu Atalho Nova pessoa Incluir um novo cliente 06 Novo

Leia mais

Impressão e Fotolito Oficina Gráfica da EDITORA VIENA. Todos os direitos reservados pela EDITORA VIENA LTDA

Impressão e Fotolito Oficina Gráfica da EDITORA VIENA. Todos os direitos reservados pela EDITORA VIENA LTDA Autores Karina de Oliveira Wellington da Silva Rehder Consultores em Informática Editora Viena Rua Regente Feijó, 621 - Centro - Santa Cruz do Rio Pardo - SP CEP 18.900-000 Central de Atendimento (0XX14)

Leia mais

GBD. Introdução PROF. ANDREZA S. AREÃO

GBD. Introdução PROF. ANDREZA S. AREÃO GBD Introdução PROF. ANDREZA S. AREÃO Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos) Aplicativos SGBD Dados (arquivos) O acesso/gerenciamento

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Introdução ao C# . Visão geral do.net Framework

Introdução ao C# . Visão geral do.net Framework Introdução ao C# Microsoft.NET (comumente conhecido por.net Framework - em inglês: dotnet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas

Leia mais

Documento de Projeto de Sistema

Documento de Projeto de Sistema Documento de Projeto de Sistema 1 IFES / Serra Projeto: Gerenciador de Pelada - Oasis Registro de Alterações: Versão Responsável Data Alterações 0.1 Eduardo Rigamonte, Geann Valfré, João Paulo Miranda,

Leia mais

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de Parte I Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de tratamentos de eventos. Criar e manipular botões,

Leia mais

Sistema de Recursos Humanos

Sistema de Recursos Humanos Sistema de Recursos Humanos Projeto 1 O objetivo desse sistema é gerenciar a admissão e a demissão de funcionários. Esse funcionário pode ou não ter dependentes. Esse funcionário está alocado em um departamento

Leia mais

Material desenvolvido por Melissa Lima da Fonseca. melissa.mlf@gmail.com.br - (031) 9401-4041. www.melissalima.com.br Página 1

Material desenvolvido por Melissa Lima da Fonseca. melissa.mlf@gmail.com.br - (031) 9401-4041. www.melissalima.com.br Página 1 EXCEL BÁSICO Material desenvolvido por Melissa Lima da Fonseca melissa.mlf@gmail.com.br - (031) 9401-4041 www.melissalima.com.br Página 1 Índice Introdução ao Excel... 3 Conceitos Básicos do Excel... 6

Leia mais

1998-2013 Domínio Sistemas Ltda. Todos os direitos reservados.

1998-2013 Domínio Sistemas Ltda. Todos os direitos reservados. Versão 8.0A-01 Saiba que este documento não poderá ser reproduzido, seja por meio eletrônico ou mecânico, sem a permissão expressa por escrito da Domínio Sistemas Ltda. Nesse caso, somente a Domínio Sistemas

Leia mais