Projeto de Final de Curso - Departamento de Sistemas Computacionais
Defesas 2004.2
- EZPetri - Um Ambiente para integração de linguagens de descrição de redes de Petri
Aluno: Adilson Arcoverde Jr.
Orientador: Prof. Dr. Ricardo Massa
As redes de Petri, nos seus mais diversos tipos, vêm sendo bastante utilizadas nas áreas da indústria e ciência. Existem diversas ferramentas para os diversos tipos de rede. Na verdade, existem, até mesmo, diversas ferramentas para um mesmo tipo. A falta de um padrão na representação destas redes estimulou os desenvolvedores a criarem o seu próprio formato. A conseqüência direta disto é a dificuldade de se realizar uma comunicação entre estas ferramentas. Isto é verdade até mesmo com ferramentas que suportam o mesmo tipo de rede. A fim de alcançar uma solução, foram apresentadas diversas propostas, baseadas na linguagem XML, na International Conference on Theory and Application of Petri nets, no ano de 2000. A mais proeminente delas foi a Petri Net Markup Language (PNML). Entretanto, como diversas ferramentas têm sido desenvolvidas desde a apresentação da teoria inicial das redes de Petri, a adaptação destas ferramentas para a utilização do formato PNML é um trabalho que requer muito esforço e tempo. Para resolver ou minimizar o problema, este trabalho apresenta um framework para tradução XML para Java e vice-versa. A abordagem apresentada utiliza um arquivo, no formato XML, que representa o mapeamento entre elementos XML e elementos Java. Este mesmo arquivo é utilizado na tradução de XML para Java e na tradução de Java para XML. Também é apresentado por este trabalho, um sintetizador de código-fonte Java. Este, através do mesmo arquivo de mapeamento utilizado no processo de tradução, sintetiza as entidades Java especificadas neste arquivo. Para demonstrar a utilização do framework em casos reais, foram realizados quatro estudos de caso: EZPetri PNML INA Compiler; EZPetri PNML PEP Compiler; Um ambiente para modelagem de redes de Petri; Um ambiente para especificação de sistemas de tempo real crítico. São demonstrados como este estudos de caso utilizam o framework e como este utilização teve impacto em tempo de desenvolvimento. Adicionalmente, são realizadas análises comparativas, relacionadas ao tempo de execução, entre a tecnologia DOM e o framework. A solução apresentada por este trabalho se mostra menos eficiente do que o apresentado pela tecnologia DOM. Entretanto, é investigado que esta diferença de desempenho, em muitos casos, é irrelevante. A principal contribuição deste trabalho é a redução de tempo de projeto de aplicações que utilizam XML (de alguma forma) quando o framework é utilizado. A partir dos estudos de casos realizados, mostra-se que nestes houve uma redução média de 17%. Portanto a utilização do framework, nestes projetos, foi relevante.
- CIAP - Controle Inteligente de Acesso de Pessoas
Aluno: Allan Bruno de Oliveira Silva
Orientador: Prof. Dr. Fernando Buarque de Lima Neto
Essa monografia apresenta o resultado do CIAP (Controle Inteligente de Acesso de Pessoas) , sistema que foi desenvolvido com fins acadêmicos para o laboratório de pesquisas do Departamento de Sistemas Computacionais, situado na Escola Politécnica de Pernambuco – UPE. A necessidade do sistema surgiu de acordo com os problemas que o laboratório enfrentava devido à uma falta de controle e de informações dos usuários que faziam parte desse laboratório. Para o desenvolvimento do sistema, foram utilizadas diversas tecnologias desde o código (Java), passando pelos dados (Hibernate) até a visualização (JSP) e fez-se uso de um protocolo de comunicação via TCP/IP para a implementação de algumas funções. O objetivo do CIAP é gerenciar os usuários, grupos e informações do NUPEC, fornecendo resultados relevantes para os discentes e docentes, e utilizando-se de técnicas inteligentes para o aprimoramento dos resultados esperados pelos seus usuários, gerando dessa forma, relatórios gerenciais inteligentes. Com o CIAP, questões como o gerenciamento dos usuários do NUPEC, que dizem respeito ao grupo que pertencem, horários, dentre outras, tornaram-se administráveis.
- Aspectos Computacionais de Compressão de Imagens de Documentos Históricos
Aluno: Cláudio S.V. da Cunha Cavalcanti
Orientador: Prof. Dr. Carlos Alexandre Mello
Este trabalho apresenta uma análise sobre compressão de imagens, especificamente, imagens de documentos históricos. Esse contexto é de grande importância devido a características peculiares desse tipo de acervo, tornando-o relevante à pesquisa científica, e também devido ao caráter social de permitir o acesso desses documentos a uma parcela maior da população.
Os documentos históricos podem nos trazer informações valiosas sobre o pensamento de uma época, além de poderem conter subsídios necessários para entender um dado evento ocorrido. Eles ostentam a história da humanidade. Tais motivos justificam a motivação para qualquer trabalho voltado à preservação e divulgação de tais documentos.
Enquanto a preservação pode ser conseguida através da digitalização dos documentos e armazenamento em mídias como CD-ROM, a divulgação, via Internet, por exemplo, não é tão simples. As imagens são armazenadas em altas resoluções para que possam refletir bem os documentos originais. Isso aumenta o espaço necessário para armazenamento da imagem e, consequentemente, dificulta sua transmissão. Logo, o desenvolvimento de algoritmos de compressão se faz necessário.
Neste trabalho, são analisados três algoritmos de compressão sem perdas. Dois deles, o GIF e o PNG são amplamente conhecidos e utilizados para esta finalidade. Dentre os algoritmos que são analisados está o RLM, um algoritmo de compressão sem perdas que trata especificamente de imagens monocromáticas de documentos históricos sendo este uma associação entre o Run-Length e o Código de Huffmann.
É proposto neste trabalho o ‘RLM com Coringa’, um algoritmo baseado no RLM que procura gerar redundância nas imagens de documentos históricos visando à redução de informações a serem armazenadas. Complementando este trabalho, é proposto um ambiente – o ACIE, Ambiente para Compressão de Imagens Estáticas – que consiste em uma combinação de três algoritmos baseados no RLM, no qual o melhor é escolhido após um pré-processamento que avalia, antes de efetuar a compressão propriamente dita, qual dos algoritmos propostos é o mais adequado para cada imagem, automatizando a seleção do melhor algoritmo dado que pode haver pequenas variações no desempenho de cada modificação do RLM de acordo com a imagem.
Também é descrito um algoritmo que visa à síntese da imagem de um documento através dos dados extraídos da imagem original, gerando um modelo da imagem, qualitativamente e quantitativamente semelhante à original.
Neste trabalho é proposta a síntese da textura da imagem através da coloração a partir de uma única matriz. Essa coloração é possível ao se armazenar apenas a matriz verde de uma imagem, sendo as outras duas matrizes - a vermelha e a azul - coloridas a partir de informações que podem ser calculáveis apenas com a matriz verde. A coloração da matriz vermelha é feita utilizando Redes Neurais que, a partir de dados já presentes na imagem como os pixels da vizinhança 8-conectada na matriz verde do pixel a ser colorido, treina uma rede que é capaz de calcular qual valor mais se aproxima aos valores possíveis naquele pixel. Concluímos mostrando a eficácia do algoritmo, comparando as imagens finais às originais, utilizando técnicas estatísticas como a Análise de Variância - ANOVA.
- Análise de Técnicas e Algoritmos para Reconhecimento de Placas de Veículos
Aluno: Diogo Cavalcanti Costa
Orientador: Prof. Dr. Carlos Alexandre Mello
Neste trabalho é proposto um sistema para reconhecimento automático de placas de veículos. Conceitos de duas áreas da ciência da computação foram empregados para a criação do sistema em questão: processamento de imagens e reconhecimento de padrões. Existem três etapas envolvidas neste processo de reconhecimento: aquisição da imagem do veículo, processamento da imagem no intuito de reconhecer a placa e o pós-processamento. A segunda etapa é a de interesse neste trabalho. Esta, por sua vez, foi dividia em outras três sub-etapas para facilitar a resolução do problema: localização da placa na imagem, segmentação dos caracteres da placa e, por fim, o reconhecimento dos caracteres. Propomos um algoritmo baseado na detecção de fronteiras verticais e na alternância entre tons presentes em uma imagem em tons de cinza, à qual foi aplicado o filtro de Sobel vertical, para determinar a localização da placa. Essa técnica mostra-se eficiente em situações de variação de luminosidade o que torna possível o processamento de imagens capturadas em situações reais. No intuito de segmentarmos as letras da placa, um algoritmo baseado em Limiarização Fuzzy de Huang e crescimento de regiões é apresentado. Outros 17 algoritmos de limiarização foram testados além do de Huang. Por último, duas redes neurais MLP (Multi-layer Perceptron) treinadas com algoritmo backpropagation são usadas para reconhecer as letras e os dígitos das placas, respectivamente. Redes MLP com algoritmo de treinamento resilient backpropagation e redes RBF (Radial Basis Function) também foram testadas, mas apresentaram resultados inferiores. Os resultados obtidos por cada uma dessas etapas situaram-se acima de 85% de acerto, o que demonstra a robustez dos algoritmos propostos e a possibilidade de suas aplicações em situações do mundo real.
- Análise do Custo de Comunicação de Programas Paralelos sobre Redes de Computadores
Aluno: Fernando Antonio Aires Lins
Orientador: Prof. Dr. Francisco Heron
A análise do custo de comunicação é considerada uma importante ferramenta
para a avaliação de desempenho de programas paralelos, em especial sobre
clusters e grids computacionais. Essa análise se torna particularmente útil
quando se tenta inferir sob qual arquitetura e em sob quais condições um
programa paralelo pode ter a sua performance melhorada. Várias abordagens
têm surgido para o tratamento desse problema, destacando-se o uso de
simulação, a qual possibilita baixo custo, não exige conhecimentos
matemáticos avançados e possui uma excelente flexibilidade a mudança de
parâmetros. Com o uso do Network Simulator (NS), um simulador de redes
bastante disseminado e completo, vislumbra-se obter informações importantes
que poderão ajudar o projetista do programa paralelo na tomada de decisões.
Neste trabalho, foi utilizado um estudo de caso para avaliar a efetividade
da técnica de simulação do custo de comunicação de programas paralelos
usando o NS, que é a implementação # de um conhecido algoritmo paralelo de
multiplicação de matrizes. A partir desta implementação, foi criado um
modelo no simulador de redes que buscou capturar todos os aspectos da
estrutura de comunicação do programa. Este modelo foi testado para diversos
aspectos, variando-se alguns parâmetros, como por exemplo: latência da rede,
largura de banda e “tamanho” do problema. Como resultado da metodologia
aplicada, obtivemos, através do Network Simulator, informações estratégicas
que demonstram como o tempo de comunicação é influenciado pela variação
desses parâmetros. Esse tipo de resultado é de grande valia, pois permite ao
projetista do programa paralelo verificar se o custo de comunicação do seu
programa paralelo sobre a arquitetura alvo é satisfatório. Concluímos que a
utilização do Network Simulator para a análise do custo de comunicação de
programas paralelos sobre clusters e grids computacionais se mostra uma
alternativa viável e que fornece resultados relevantes para a avaliação de
desempenho do programa paralelo.
- EZPetri: Um Ambiente para redes de Petri no Eclipse
Aluno: Gabriel Alves de Albuquerque Jr.
Orientador: Prof. Dr. Ricardo Massa
- Técnicas de Detecção de Anomalias em Séries Temporais Baseadas em Redes Neurais de Aprendizado Não Supervisionado
Aluno: Gabriel da Luz Fraga Azevedo
Orientador: Prof. Dr. Adriano Lorena
- Aplicando Padrões de Projeto para publicar Web Services em uma arquitetura MVC a partir de legados
Aluno: Laureano de Lira Montarroyos Filho
Orientador: Prof. Dr. Ricardo Massa
A busca por Padrões Tecnológicos que permitam a interoperabilidade entre softwares para diferentes plataformas de execução, implementados em diferentes linguagens de programação, não é recente. Uma das Tecnologias mais bem sucedidas, para este fim, é a de Web Service. Ela é baseada na troca de documentos formatados em XML. Infelizmente, algumas Soluções Legadas não estão preparadas para publicar serviços através de Web Services. Além disso, Padrões de Projeto descrevem Soluções de software bem sucedidas para problemas de desenvolvimento similares em diferentes projetos de software. Este trabalho apresenta uma Estrutura de Componentes baseada em Padrões de Projeto. Tal estrutura permite reaproveitar funcionalidades existentes em Soluções Legadas, e as publica através de Web Services. A linguagem de programação Java foi empregada para implementar a Estrutura de componentes proposta. Um Estudo de Caso que reaproveita funcionalidades de um Banco de Dados Hierárquico ( MUMPS), e de um Banco Relacional (Oracle) é apresentado. O Estudo de Caso é parte de um sistema real, demonstrando o uso prático da Estrutura de Componentes proposta neste trabalho.
- Estudo Comparativo de formatos de mensagem utilizados na interação J2ME/J2EE
Aluna: Lívia Brito de França Lima
Orientador: Prof. Edson Barbosa Lisboa
Devido à rápida popularização dos dispositivos móveis, e a possibilidade de executar programas Java nesses dispositivos, o cenário da comunicação móvel vem atingindo novos alcances a cada dia. O desenvolvimento de sistemas para dispositivos móveis é uma realidade cada vez mais freqüente, principalmente entre corporações. Esses sistemas não devem atuar de forma isolada. É necessário estabelecer mecanismos que possibilitem sua comunicação com sistemas corporativos. Desta forma, pode-se desenvolver sistemas corporativos e permitir que suas informações sejam acessadas remotamente através de dispositivos móveis. Este trabalho compara os principais formatos de mensagem utilizados na comunicação entre aplicações de dispositivos móveis baseados no J2ME e sistemas corporativos baseados no J2EE, voltados para aplicações web. São analisadas as principais características de cada um dos formatos de mensagem abordados (Binário Proprietário, Objeto Serializado, XML, XML-RPC), ressaltando suas vantagens e desvantagens em relação aos demais. Com o propósito de enriquecer o trabalho e validar nosso estudo comparativo, apresentamos um protótipo que simula uma aplicação real de um sistema web corporativo, que disponibiliza em seu escopo um módulo de consulta a uma Agenda de Eventos. Esse módulo será também acessado a partir de um emulador de dispositivo MIDP. Tal protótipo demonstra na prática, os métodos de interação entre cliente e servidor de forma a possibilitar a comunicação entre eles.
- Sistema de Migração de Dados entre SGBD´s relacionais baseado em XML
Aluno: Reinaldo Melo Soares
Orientador: Prof. Dr. Ricardo Massa
No mundo atual, notamos o crescente número de padrões criados para representar os mais diversos tipos de informação. Os mais populares meios de armazenamento de informações são os bancos de dados. Existem inúmeros, contudo nem sempre as informações de um banco podem ser exportadas para outro, fazendo com que a informação deixe de ser portável e fique dependente de uma ferramenta ou plataforma específica. É essa idéia de liberdade de informação que estamos vivenciando no mundo da era digital. Com a Internet, cresce a necessidade de a informação estar acessível, para ser obtida por qualquer tecnologia ou dispositivo. Apesar da maioria dos bancos de dados terem uma linguagem comum, SQL (Structured Query Language), e de esta linguagem ser padrão, esses mesmos bancos de dados utilizam variações da mesma, o que torna comandos SQL de um banco incompatíveis com outros. Esse fato dificulta bastante a intenção de exportar informações entre bancos de dados distintos, pois seria necessário conhecer várias sintaxes da linguagem SQL. O presente trabalho tem por objetivo propor uma solução para essa questão. A intenção é criar uma ferramenta que consiga extrair informações de qualquer banco de dados e inserir em qualquer outro. Isso é possível através da utilização do XML (Extensible Markup Language) que serve como meio intermediário para a difusão da informação. Além do conhecimento mais específico da linguagem SQL, a ferramenta seria interessante também, pois evitaria cometer erros de natureza humana, ou seja, uma vez determinados os dados que seriam exportados, ela o faria sem problemas, mesmo sendo uma tarefa repetitiva.