Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
XX
SEMINCO
XBr
yrj = mi
yrj >n0
{ {
XBi
yji
SEMINÁRIO DE COMPUTAÇÃO
ANAIS
22 a 23 de AGOSTO de 2011
FURB - BLUMENAU - SC
Anais do XX SEMINCO
Seminário de Computação
22 e 23 de agosto de 2011
FURB - Campus I - Blumenau/SC
Promoção
Universidade Regional de Blumenau - FURB
Centro de Ciências Exatas e Naturais - CCEN
Departamento de Sistemas e Computação - DSC
Centro Acadêmico Livre de Computação - CALCOMP
Comissão Organizadora
Prof. Everaldo Artur Grahl (Coordenador)
Prof. Antonio Carlos Tavares
Prof. Aurélio Faustino Hoppe
Prof. Dalton Solano dos Reis
Felipe Demarchi
Luciana Pereira de Araújo
Matheus Luan Krueger
Vilmar Orsi
Ficha Catalográfica Elaborada pela Biblioteca da FURB
1. Computação - Congressos. I. Grahl, Everaldo Artur; Reis, Dalton Solano dos. II. Universidade
Regional de Blumenau. Departamento de Sistemas e Computação. III. Tı́tulo.
CDD 004
Comissão Organizadora
Agradecimentos
Centro de Ciências Exatas e Naturais - CCEN
Centro de Comunicação e Marketing
Contribuintes do Projeto Acredito
Sociedade Brasileira de Computação - SBC
Comissão de Avaliação Interinstitucional
Adilson Vahldick (UDESC)
Adriana G. Alves (UNIVALI)
Alexandre Cidral (UNIVILLE)
Angelo Frozza (IFC )
Anita Fernandes (UNIVALI)
Aurélio Hoppe (FURB)
Dalton Solano dos Reis (FURB)
Denio Duarte(UFFS)
Everaldo A. Grahl (FURB)
Fabiane Barreto Vavassori Benitti (UNIVALI)
Fernando dos Santos (UDESC)
Frank Siqueira (UFSC)
Jomi Hübner (UFSC)
Marcel Hugo (FURB)
Marcello Thiry (UNIVALI)
Marcos Eduardo Casa (UCS)
Patricia Vilain (UFSC)
Artigos Selecionados
Engenharia de Software
Uma Proposta de Modelo Conceitual para Repositório de Artefatos de Software 6
Visando Promover o Reuso
Beatriz T. Borsoi, Eliane M. de B. Fávero, Rúbia E. O. Schultz Ascari, Adriana Ariati,
Renato Silva Belazi
Inteligência Artifical
Extensão Swarm Intelligence para o Simulador Robocup Rescue 44
Sistemas de Informação
Sistema Gerenciador de Regras de Negócio Aplicado à Gestão de Recursos de 82
Telecom: Estudo de Caso
Celly de Siqueira Martins, Mauricio Amorim da Silva, Sindo Vasquez Dias, André Lara
Temple de Antonio
1. Introdução
O conceito de reuso pode ser aplicado a todo o ciclo de vida de um software, pois como
argumentou Justo (1996), não há razões teóricas que impossibilitem sua aplicação nas fases
iniciais do desenvolvimento. Para esse autor, a especificação de requisitos é uma fase
crucial no ciclo de vida de um sistema e aplicar reuso efetivo nessa fase tornaria possível
construir sistemas que atendessem melhor os requisitos requeridos pelo usuário.
A orientação a objetos está estreitamente vinculada ao reuso de código, inclusive
pelo seu mecanismo de herança. O desenvolvimento baseado em componentes também está
centrado no reuso de elementos de código. Porém há outros escopos para reuso, como
padrões de projeto e experiências e conhecimento adquiridos com a realização de atividades
do ciclo de vida de software.
Os padrões de projeto, tendo como referência os vinte e três padrões propostos por
Gamma et al. (1997), podem ser definidos como componentes conceituais reutilizáveis.
Eles se aplicam à produção de código, mas o que é reutilizado são os conceitos envolvidos,
ou mais especificamente a estrutura conceitual de um padrão que resolve um problema bem
estabelecido.
Basili, Caldiera e Rombach (1994), consideram que o reuso de produtos, processos
e experiências representam uma maneira de solução possível para o problema de
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
7
desenvolver sistemas com qualidade alta e custo baixo. Esses autores definem uma fábrica
de experiências na qual há o reuso de conhecimento produzido nas atividades relacionadas
ao desenvolvimento de software.
O reuso pode estar vinculado, também, aos resultados das atividades de análise e de
projeto, como, por exemplo, especificações de requisitos, diagramas de casos de uso, de
classes e de banco de dados. Esses documentos são reaproveitados no desenvolvimento de
projetos que possuam requisitos iguais ou semelhantes.
Este trabalho se refere a reuso em um escopo mais amplo, abrangendo todos os
produtos resultantes no ciclo de vida de software. Esses produtos são denominados
artefatos, e representam componentes de código (software), documentos gerados (como
diagramas de classes, planos de testes, modelos para elaboração de documentos) e
procedimentos (métodos, técnicas, orientações para realizar as atividades) que podem ser
resultantes da experiência da realização das atividades.
O desenvolvimento baseado em reuso requer tempo e esforço consideráveis para
que bons resultados sejam obtidos, o que tem sido uma barreira para pequenas organizações
[Shiva e Shala 2007]. Em função disso, este trabalho propõe a definição conceitual de um
repositório para o armazenamento de artefatos como descritos neste texto, de maneira a
otimizar a busca. Também é proposta uma maneira de recuperação dos artefatos, visando a
localização dos artefatos que atendem plenamente os requisitos de busca e dos que atendem
parcialmente a esses requisitos. Otimização se refere a localizar o artefato mais adequado,
dentre os armazenados no repositório, para o interesse de busca e de acordo com os
critérios informados.
Este texto está organizado em seções. Esta é a primeira e apresenta a introdução
com uma visão geral do assunto, o problema e a proposta de solução. Na Seção 2 estão
conceitos de reuso, repositório e métodos de classificação e busca. A Seção 3 apresenta
trabalhos relacionados. Na Seção 4 está a solução proposta. E na Seção 5 está a conclusão.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
8
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
9
3. Trabalhos Relacionados
Os primeiros trabalhos voltados para busca e recuperação de artefatos de software
reutilizáveis tiveram seu foco voltado para os métodos de classificação desses artefatos
[Prieto-Diaz 1991; Podgurski e Pierce 1993; Frakes e Pole 1994]. Estudos mostraram que
os métodos de classificação disponíveis até então, não apresentavam diferenças
significativas entre si. Sendo assim, outros aspectos começaram a ser observados e
requisitados, especialmente em relação à recuperação de artefatos. Destaca-se a proposta de
Henninger (1994) para a combinação de métodos de classificação, que visam permitir ao
usuário o refinamento de suas expressões de busca, a fim de obter melhores resultados,
como a recuperação de artefatos próximos aos requisitados e não apenas os que se
apresentassem exatamente iguais à consulta. Anos mais tarde, o mesmo autor propôs um
repositório com índices automaticamente atualizados à medida que novas consultas eram
realizadas, de forma a facilitar futuras consultas do mesmo artefato.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
10
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
11
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
12
Ainda assim, para que o reuso seja efetivo o desenvolvimento de software deve
estar inserido em um contexto de desenvolvimento de software para e com reuso. Para
reuso, se refere a que artefatos são produzidos visando reuso e com reuso está relacionado
ao desenvolvimento de software com base em artefatos existentes.
Desta forma, deve haver integração entre as atividades de produção de software e de
componentes e o armazenamento e a disponibilização dos artefatos para reuso. A Figura 1
expressa essa integração por meio de processos que se comunicam. Esses processos são
representados em notação BPMN (Business Process Modeling Notation). Nessa notação,
retângulo com cantos arredondados representa atividade ou subprocesso, círculo com borda
delgada indica o início do processo e círculo com borda espessa o seu final. A interligação
entre processos é representada por seta pontilhada direcionada e entre as atividades de um
processo por seta com traço contínuo.
especificações
experiências
modelos
experiências
modelos
procedimentos
experiências
componentes
modelos
procedimentos
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
13
Grupo Item
Identificação Identidade; Nome; Versão; Local de disponibilização.
Descrição Descrição; Tipo (componente, documento, procedimento); Classificação (base em palavras-
chave); Requisitos para uso; Restrições; Histórico de alterações.
Acesso Disponibilidade (público ou privado); Leitura/Escrita; Descrição da interface (se
componente); Tecnologia (linguagem, ferramenta de desenvolvimento).
Qualidade Testes de qualidade realizados e respectivos resultados.
Relacionamentos Pode ser usado com; Composto por; Depende de; Projetos que o utilizam.
Quadro 1. Agrupamentos de informações sobre artefatos
Na Figura 2 está o modelo conceitual proposto para o repositório de artefatos tendo
como base o Quadro 1. Essa figura contém um conjunto de conceitos relacionados que
explicitam a estrutura e a organização do repositório.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
14
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
15
inclusive por fábricas de software de pequeno porte, porque uma solução computacional
mais simples pode ser implementada. Contudo, ressalta-se que para maior efetividade na
busca é necessário que os artefatos estejam bem caracterizados, com informações
consistentes e completas.
5. Conclusão
Considerando o levantamento bibliográfico realizado, percebe-se que existe uma carência
de repositórios voltados para o reuso de artefatos de software como definido neste trabalho,
pois os repositórios existentes estão, normalmente, voltados para componentes de software.
A proposta deste trabalho fundamenta-se na necessidade verificada em fábricas de
software, principalmente as de pequeno porte, em reaproveitar conhecimento, experiências,
documentos e componentes de forma a agilizar os processos executados durante o ciclo de
vida do software.
Um repositório e formas de busca como apresentados neste trabalho podem ser
vistos como um diferencial competitivo para fábricas de software de pequeno porte, mas
não deixando de ser uma solução eficaz para o reuso de artefatos de software. Elas podem
estar organizadas de maneira a trabalhar cooperativamente e assim compartilhar artefatos.
O modelo proposto é bastante flexível, não tornando obrigatório o preenchimento de todos
os campos na inserção do artefato. Contudo, ressalta-se que quanto melhor e mais
completas estiverem as informações, mais eficiente e precisa será a busca. Desta forma, são
definidas orientações de como inserir os artefatos, sendo que a inserção deve ocorrer com a
verificação e validação por pessoas distintas.
A forma de classificação e recuperação apresentadas pode representar uma solução
para otimizar o reuso efetivo em repositórios de artefatos. Contudo, para afirmar os
possíveis benefícios obtidos está sendo implementado um protótipo de software com a
estrutura proposta neste trabalho, para então avaliar, na prática, junto a fábricas de software
diversas, sua efetividade.
Referências
Basili, V., Caldiera, G. and Rombach, D. (1994) “Experience Factory”. In: J. Marciniak,
Editor, Encyclopedia of Software Engineering, Wiley, p. 469-476.
Batista Junior, J. and Domingues, P. E. (2010) Method for searching software components.
In: Natural Language. IEEE Latin America Transactions, vol. 8, no. 3, June 2010, p.
296-303
Biggerstaff, T and Perlis, A. (1989) Classification of Reusable Modules, in Software
Reusability. Addison-Wesley, New York.
Brito, T., Ribeiro, T., Nóbrega H. and Elias, G. (2009) “Uma Técnica de Indexação de
Artefatos de Software Baseada em Dados Semi-Estruturados”. In:III Simpósio Brasileiro
de Componentes, Arquiteturas e Reutilização de Software (SBCARS 2009), p. 166-179.
Ding, L. et al. (2004) “Swoogle: A Semantic Web Search and Metadata Engine”. In: 13th
ACM Conference on Information and Knowledge Management, p. 652-659.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
16
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
17
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
18
1. Introdução
Com a necessidade de criar ferramentas que facilitassem o seu trabalho diário, o
homem passou a aprimorar cada vez mais os computadores e seus sistemas (SAMPAIO,
1999). Diante da informatização dos processos, a linguagem de programação Java tem
se mostrado importante, principalmente pelo fato de ser muito abrangente, pois
contempla desde dispositivos móveis até mainframes. Para isso, a mesma utiliza-se de
uma das suas principais características, a portabilidade (JAVA, 2010).
Segundo Oliveira (2009), Java conta com inúmeros frameworks, cada um
especializado em um ramo distinto do desenvolvimento de software, incluindo desde a
modelagem do banco de dados até a criação das interfaces visuais. Para ter esta
flexibilidade, Java precisa ser especificamente configurado a cada funcionalidade, pois
não conta com configurações predefinidas, ocasionando assim uma perda de
produtividade no processo, em casos que o tempo levado para configurar a solução é
maior que o tempo gasto com o desenvolvimento da regra de negócio. Pensando neste
fato, foram propostas diversas soluções para a evolução da linguagem Java,
principalmente focando no desenvolvimento ágil. Assim surge o JRuby e o Grails
(Groovy on Rails), tentativas de aproximar a programação Java com a filosofia ágil
(PETERSON, 2010).
Com o lançamento do framework Grails, para desenvolvimento de aplicações
web, Groovy ganhou credibilidade e o interesse da comunidade Java, provando assim,
que o desenvolvimento de aplicações web escaláveis são produtivas e fáceis. Grails
utilizou desde recursos básicos do Groovy, até recursos complexos de aplicações web,
como persistência em banco de dados, Ajax, webservices, relatórios, processamento em
lote, e plugins que permitem aos desenvolvedores melhorar e criar novas ferramentas
que auxiliam o desenvolvimento (JUDD; NUSAIRAT; SHINGLER, 2008).
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
19
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
20
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
21
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
22
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
23
6. Estudo de Caso
Estabelecido o crivo de avaliação, realizou-se a análise do estudo de caso, com o
objetivo de implementar as rotinas deste, tanto em Java quanto em Groovy, tendo como
finalidade a comparação do desenvolvimento entre as linguagens supracitadas.
A análise deste foi modelada através de diagramas UML. Assim foram
desenvolvidos os seguintes diagramas de caso de uso (figura 2).
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
24
7. Implementação
7.1. Java
O desenvolvimento do estudo de caso na linguagem Java foi realizado através do
framework jCompany, tendo em vista que Groovy utiliza-se do seu framework para
desenvolvimento web (Grails). Então, para equiparar as linguagens, o autor optou por
este framework nacional e open-source, que traz uma arquitetura de software de alto
nível, reutilizável e extensível (ALVIM, 2011).
Tendo os casos de uso estabelecidos e respectivamente seus diagramas de
classes codificados (classes da camada de modelo), o desenvolvedor utiliza-se dos
wizards disponibilizados pelo jCompany, para configurar e mapear os objetos
relacionais, assim como para gerar a camada de visão, configurando a geração das telas
de consultas e edição.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
25
7.2. Groovy
Para desenvolver os estudos de caso em Groovy, utilizou-se o framework Grails,
no qual Rudolph (2009) cita que a marcante característica do Grails em apoiar o
desenvolvimento ágil, vem da filosofia de convenção sobre configuração, no qual em
poucos passos é possível configurar o ambiente de desenvolvimento e criar um projeto
web. Assim, efetuado o download do framework, disponível na página (grails.org),
basta descompactar em uma pasta, que será a base deste, e seguir os demais passos:
a) variável de ambiente: criar a variável GRAILS_HOME, e informar o caminho
da pasta onde foi descompactado o framework;
b) path: adicionar o caminho GRAILS_HOME/bin na variável de ambiente
PATH do sistema operacional;
c) testar ambiente: acessar o sistema operacional via linha de comando e
executar o seguinte comando: grails –version.
Com o ambiente de desenvolvimento configurado, o framework está pronto para
criar um novo projeto web, através dos seguintes passos executados via linha de
comando:
a) criar projeto: para criar um projeto execute grails create-app
nome_projeto, o Grails irá criar um projeto com na estrutura MVC;
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
26
8. Questionário de Avaliação
Para realizar a análise comparativa das linguagens de programação, Groovy e
Java, foi preenchido o questionário apresentado no quadro 3, com o intuito de
evidenciar as diferenças entre as características “estáticas” das linguagens. O
questionário foi respondido pelo autor, baseado nas pesquisas realizadas e em seu
conhecimento e experiência com as linguagens (eventualmente outro desenvolvedor
poderia alcançar resultados um pouco diferentes em função de sua experiência). As
respostas 0, 5 e 10 significam respectivamente “Não”, “Parcial” e “Sim”.
Quadro 3. Questionário comparativo preenchido
CARACTERISTICA PERGUNTA GROOVY JAVA
0 5 10 0 5 10
Há uma única forma para cada construção, ou cada construção pode ser
Ortogonalidade X X
representada por diversas formas?
Existe um padrão na formação de expressões, ou há exceções? X X
A LP possui uma grande quantidade de recursos nativos? X X
Simplicidade Global
É fácil dominar todos os recursos disponibilizados pela LP? X X
A codificação se aproxima da linguagem natural? X X
Existe alguma representação para dados booleanos próximos da
Legibilidade realidade? X X
Há identificação na abertura e fechamento de blocos de comandos? X X
É possível utilizar o comando GOTO? Ou alguma derivação do
comando? X X
Existe limite de caracteres ao definir uma variável? X X
Tipo de dados e estrutura As variáveis necessitam de um tipo? X X
A LP o desenvolvedor criar seus próprios tipos de dados? X X
A LP possui uma documentação completa e de fácil acesso? X X
A LP possui uma padronização para definir atributos, métodos e classes? X X
Sintaxe Existem atualizações da linguagem, adicionados novos recursos ou é
uma LP consolidada e sem alteração? X X
A LP possui palavras reservadas? É possível utilizá-las como nome de
variáveis? X X
Há um conjunto de configurações iniciais pré-estabelecidas? X X
A LP é facilmente adaptável para o desenvolvimento do que se
Capacidade de escrita X X
propõem?
A LP é totalmente orientada objetos ou a LP possui tipos primitivos? X X
A LP é totalmente orientada objetos ou a LP possui tipos primitivos? X X
A LP permite a aplicação das técnicas de abstração como Herança e
polimorfismo? X X
Abstração
A LP possui herança múltipla? X X
A LP sugere a utilização de padrões de projetos? X X
A LP disponibilidade uma grande quantidade de bibliotecas prontas ao
programador? X X
Expressividade
A LP possui facilidades para codificação que geram grande resultado
computacional? X X
Confiabilidade Existe o conceito de ponteiros na LP? X X
Existe um gerenciamento de memória na LP? É necessário informar a
quantidade de memória a ser alocada e desalocá-la manualmente? X X
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
27
9. Resultados Obtidos
Durante o desenvolvimento dos casos de uso, mensurou-se o tempo gasto em
cada linguagem (Groovy e Java). Obtendo o valor das UCPs de cada caso de uso, o
quadro 5 apresenta o resultado da função de produtividade de cada linguagem.
Quadro 5. Comparativo de produtividade
GROOVY JAVA G-J
CASO DE USO (min) (min) UCP F(GROOVY) f(JAVA) (min) %
UC001 - Manter sprint 80 135 13,6 5,88 9,93 -55 40,74
UC002 - Manter fase 40 75 13,6 2,94 5,51 -35 46,67
UC003 - Manter tarefa 180 265 19,7 9,14 13,45 -85 32,08
UC004 - Manter usuário 130 210 19,7 6,60 10,66 -80 38,10
UC005 - Extrair relatório 240 45 25,9 9,27 1,74 195 -433,33
UC006 - Manter trâmite 150 210 19,7 7,61 10,66 -60 28,57
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
28
UC007 - Manter lançamento 235 360 25,9 9,07 13,90 -125 34,72
Total 815 1255 112,20 41,24 64,11 -440 -
Média 137,83 209,17 18,70 6,87 10,64 -73,33 36,81
Média 904,86 374,14 415,67 600,31 843,71 346,87 372,33 556,28 7,82
1
Evidence-Based Software Engineering - http://www.dur.ac.uk/ebse/
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
29
Referências
ASSOCIACAO BRASILEIRA DE NORMAS TECNICAS. NBR ISO/IEC 9126-1:
Engenharia de software – Qualidade de produto. Parte 1: Modelo de qualidade. Rio
de Janeiro: ABNT, 2003.
ALVIM, Paulo. Aplicações corporativas com jCompany. Belo Horizonte, 2011.
Disponível em: <http://jcompany.sourceforge.net>. Acesso em: 15 abr. 2011.
DOEDORLEIN, Osvaldo P. Aprendendo Groovy. Java Magazine, São Paulo, ano IV, n.
32, p. 30-44, jan. 2006.
DICKINSON, Jon. Grails 1.1 web application development. Olton: Packt Publishing,
2009.
JAVA. Independent tests demonstrate write once run anywhere capacibilities of java.
Disponível em: <http://www.sun.com/smi/Press/sunflash/1997-
09/sunflash.970918.2.xml>. Acesso em: 20 set. 2010.
JUDD, Christopher M.; NUSAIRAT, Joseph F.; SHINGLER, James. Beginning Groovy
and Grails. New York: Apress, 2008.
OLIVEIRA, Eric. O Universo dos frameworks Java. [S.l.], 2009. Disponível em:
<http://www.linhadecodigo.com.br/artigo/758/O-Universo-dos-Frameworks-
Java.aspx>. Acesso em: 20 set. 2010.
PETERSON, Ronny. Introdução ao Grails. [S.l.], 2010. Disponível em:
<http://speedydev.wordpress.com/category/desenvolvimento-agil>. Acesso em: 21
set. 2010.
REZENDE, Vandir F. Análise comparativa entre Groovy e Java, aplicado no
desenvolvimento web. Trabalho de Conclusão de Curso de Ciências da Computação.
Universidade Regional de Blumenau – FURB. Blumenau, 2011.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
30
RUDOLPH, Jason. InfoQ: getting started with Grails. [S.l.], 2007. Disponível em:
<http://www.infoq.com/minibooks/grails>. Acesso em: 27 mar. 2010.
SAMPAIO, Antônio B. C. Introdução à ciência da computação. Belém: [s.n.], 1999.
SEBESTA, Robert W. Conceitos de linguagens de programação. 5. ed. Porto Alegre:
Bookman, 2003.
TUCKER, Allen B.; NOOMAN, Robert E. Linguagens de programação: princípios e
paradigmas. 2. ed. São Paulo: McGraw-Hill, 2008.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
31
1: Instituto de Pesquisas e Ensaios em Voo (IPEV), São José dos Campos, SP, Brasil
2: Universidade Federal de Itajubá (UNIFEI), Itajubá, MG, Brasil
du.guarino@gmail.com, pd@ipev.cta.br, {pinheiro, otavio}@unifei.edu.br
Resumo. A primeira Campanha de Ensaios em Voo realizada em uma
aeronave experimental é a calibração do Sistema de Dados Aéreos. Esta
calibração tem o objetivo de aferir duas medidas: altitude e velocidade da
aeronave. Estas informações são primordiais para segurança do voo e são
providas pelo sistema anemométrico da aeronave através da Instrumentação
de Ensaios em Voo. Este método gera erros que corrompem as medidas do
sistema anemométrico. Para minimizar esses erros, um protótipo foi
desenvolvido usando câmera digital de vídeo e técnicas de processamento de
imagens. A avaliação deste protótipo foi realizada com as aeronaves
HELIBRAS H-55 e EMBRAER XAT-26. Os resultados preliminares foram
satisfatórios ao compará-los com o método atual.
1. Introdução
A Campanha de Ensaios em Voo (FTC) é uma atividade da Engenharia Aeronáutica que
tem por finalidade determinar as reais características de uma aeronave e/ou de um
sistema qualquer.
A primeira Campanha de Ensaios em Voo a ser realizada em uma aeronave
experimental é a calibração do Sistema de Dados Aéreos (i.e. Calibração Anemométrica
ou ADS). Neste caso, a aeronave tem as medidas de altitude e velocidade providas pelo
sistema anemométrico [ARANTES 2003] através da Instrumentação de Ensaios em
Voo (FTI) que, naturalmente, corrompem as medidas devido à instalação de erros
inerentes a esta técnica. Estes erros devem ser corrigidos comparando-os com medidas
de referência que podem ser providas por múltiplos sensores, tais como: um sistema de
referência de base de tempo (WRS); um sistema de telemetria (GTS) e/ou sistema de
posicionamento global diferencial (DGPS).
O método mais usado nessa Campanha de Ensaios em Voo é o tower fly-by
[EDWARDS 1966] que necessita do conhecimento exato da altitude de referência da
aeronave. Este método compara a altitude indicada pelo pitot-estático da aeronave com
a pressão da altitude atual para determinar o erro de pressão estática. A determinação
desta diferença de pressão (geralmente conhecida como erro de posição do sistema
estático) através do envelope de voo da aeronave pode ser complexa, consumir tempo
de planejamento e execução, e ser extremamente custosa.
Durante as campanhas de ensaio, os dados da Instrumentação de Ensaio são
recebidos em tempo-real pela telemetria e relacionados com medidas complementares
oriundas de outros sensores (e.g. WRS). A telemetria é uma estação de monitoramento
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
32
onde os dados recebidos são apresentados para que sejam observadas violações dos
parâmetros críticos para a segurança de voo do ensaio. O ruído do sinal e a perda de
informação, que são características inerentes à telemetria, limitam a confiabilidade da
telemetria prejudicando a segurança do voo. Além disso, toda redução de dados requer
um longo tempo de processamento, e desta forma, são realizadas em operações após o
término da Campanha de Ensaios em Voo. Assim, em geral, a eficiência da
Instrumentação de Ensaios não é ótima.
Para aumentar a eficiência e reduzir os custos neste tipo de Campanha de
Ensaios em Voo, foi desenvolvido um protótipo usando técnicas de processamento de
imagem e câmera digital de vídeo. O protótipo foi desenvolvido com apoio do Instituto
de Pesquisas e Ensaios em Voo (IPEV) e da Universidade Federal de Itajubá (UNIFEI).
O protótipo processa todos os dados requeridos durante a realização do voo, calcula a
altitude e a velocidade da aeronave durante a realização da Campanha de Ensaios em
Voo e determina a validade de cada ponto de ensaio em quase real-time. Isto permite
que os resultados e relatórios de ensaios estejam prontos ao final de cada ponto de
ensaio da Campanha.
Este artigo está organizado da seguinte maneira. Na Seção 2, os conceitos e o
cenário da Campanha de Ensaios em Voo estão presentes. Na Seção 3, o protótipo
desenvolvido é apresentado. Experimentos e resultados estão na Seção 4. Por último, o
artigo é concluído.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
33
Onde:
• ∆Vbi é o desvio máximo da velocidade básica da aeronave no ponto de
ensaio ith (kts);
• Vb i é a média da velocidade básica no ponto de ensaio ith (kts);
• Vti é a velocidade básica programada para o ponto de ensaio ith (kts);
• ∆Zpbi é o desvio máximo da altitude da aeronave no ponto de ensaio ith (ft);
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
34
3. Desenvolvimento do Protótipo
No desenvolvimento deste protótipo, foi levado em consideração que:
1. As condições metereológicas podem variar rapidamente, de um ponto de
ensaio para outro na mesma Campanha de Ensaios. Desta forma, a imagem de fundo
(i.e. background) a partir do qual o alvo (i.e. a aeronave) é reconhecido, pode ter
mudanças significativas (Figura 4).
2. Embora o centro de cada ponto de referência (PR) seja bem definido
(Figura 5a), a localização deste ponto na imagem resultante (Figura 5b) pode afetar a
exatidão devido à resolução da imagem. Neste exemplo, o ponto de referência capturado
pela câmera é apenas um quadrado de 6x6 pixels.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
35
Para o desenvolvimento deste protótipo todos os vídeos são providos por uma
câmera digital convencional estática em posição previamente conhecida que gera frames
em escala de cinza (i.e. grayscale) ou colorida (i.e. no padrão RGB – Red Green Blue) a
30 frames per second (fps).
Neste protótipo, é considerado que a trajetória da aeronave está alinhada ao eixo
central da pista e que os erros de distorção das lentes da câmera foram previamente
modelados e minimizados usando técnicas tradicionais como em [FU 1987].
Devido às particularidades do local para realização dos pontos de ensaio na
Campanha, não é necessário detectar obstáculos no campo de visão da câmera ou
nuvens durante o ensaio. Além disso, este tipo de ensaio não é realizado em condições
chuvosas.
Cada ponto de ensaio (TP) tem as imagens (vídeos) armazenadas no buffer da
câmera. Ao final de cada ponto de ensaio, o vídeo armazenado é transferido para o
computador através da interface USB (Universal Serial Bus). Depois disso, o buffer da
câmera deve ser limpo para o próximo ponto de ensaio.
Com o vídeo no computador, o protótipo realiza o processamento dos frames
(imagens do vídeo); extrai as coordenadas do alvo de cada frame; corrige as
coordenadas do alvo para minimizar os erros de distorção das lentes da câmera; realiza
o cálculo do TSPI (Time Speed Positioning Information) (i.e. altitude e velocidade);
determina a validade do ponto de ensaio e permite a visualização dos resultados.
O detalhamento desses algoritmos para processamento das imagens e obtenção
dos resultados é mostrado a seguir:
• Detecção dos Pontos de Referência;
• Detecção do Eixo Central da Pista;
• Detecção da Aeronave;
• Cálculo do TSPI; e
• Validação do Ponto de Ensaio
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
36
Subtraindo a imagem de fundo (IB) por cada frame subsequente (It) no ponto de
ensaio, tem-se a imagem residual (Irt), que, provavelmente, contém o alvo (i.e. a
aeronave) e mais alguns ruídos.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
37
Onde:
• x i y j é a coordenada da imagem;
• µ é a detecção do threshold (i.e. limiar).
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
38
Ca = Vxk yl eq. 6
Onde:
• V é o componente detectado;
• xk é a localização do pixel do perímetro do eixo x;
• yl é a localização do pixel do perímetro do eixo y.
Finalmente, a posição do alvo é considerada a média dos valores da localização
dos pixels de Ca, estimada como:
1 N
T N ∑ xk
x =
k =1
N eq. 7
1
yT = ∑ yl
N l =1
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
39
Onde:
• k é o fator de calibração da imagem, que neste caso é (m/pixel);
• ∆S é o deslocamento em pixel entre dois frames consecutivos (pixels); e
• ∆t é a taxa de aquisição da câmera (i.e. frame rate) (frames/s).
O fator de calibração da imagem é calculado da distância real entre os pontos de
referência (i.e. 112.6m±0.4m@1σ) dividida pelo número de pixels entre eles.
Opcionalmente, esta informação pode ser determinada do tamanho real do ponto
de referência (1m±0.04m @1σ) dividido pela quantidade de pixels referente a esse
tamanho.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
40
Notas:
1. Em função da câmera estar em posição fixa, as etapas 3.1 e 3.2 são
executadas automaticamente no primeiro frame do vídeo para cada ponto
de ensaio;
2. As demais etapas (i.e. 3.3 a 3.5) são executadas em todos os frames
subseqüentes do vídeo no ponto de ensaio corrente.
4. Experimentos e Resultados
Este protótipo foi avaliado com as aeronaves HELIBRAS H-55 (Esquilo) e EMBRAER
XAT-26 completamente instrumentadas durante a campanha de ensaio de calibração
anemométrica do Curso de Ensaios em Voo nos anos de 2010 e 2011.
O protótipo foi avaliado com a execução de 28 pontos de ensaio e um total de
5581 frames.
O protótipo foi desenvolvido em MatLab® e testado com notebook
Intel®Pentium IV Core™ 2 Duo CPU T5800 2.00 GHz, 4 Gb RAM e Microsoft
Windows 7 Professional.
O protótipo executa a 8.5 fps ± 1 fps @1σ. Portanto, os resultados são
produzidos em quase real-time. Considerando as características da aplicação de
calibração anemométrica, este protótipo teve resultados considerados satisfatórios e
todos os pontos de ensaio produziram resultados adequados.
A câmera usada nos testes é uma Sony DSC-HX1 CMOS com aquisição de
vídeos a 30 fps. Vários testes foram realizados com diferentes configurações. O melhor
resultado foi com a resolução de aquisição a 640 x 480 pixels junto com o recurso de
estabilização habilitado, produzindo silhuetas da aeronave melhor definidas.
Para cada frame do ponto de ensaio algumas características são destacadas
(Figura 11):
• A posição do centróide da aeronave (ponto azul);
• A posição como ponto de referência na cauda da aeronave (ponto vermelho);
• A altitude de segurança mínima para realização do ponto de ensaio (linha
vermelha);
• A velocidade (V) e a altitude Zpb (H) calculadas;
• Os pontos de referência (ponto verde); e
• O eixo central da pista (linha branca tracejada)
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
41
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
42
6. Referências
ARANTES, R. M., “Introdução a Aerodinâmica Técnicas de Ensaios em Vôo -
Calibração, Documento nº E-B11”, Chapter 2.3, Grupo Especial de Ensaios em Vôo,
2003.
FORNI, A. L. C., “Manual de Aerodinâmica, Documento nº 20-R-AH”, Chapter 3,
Divisão de Ensaios em Vôo, 1995.
EDWARDS, A.F.B., “Flight Test Engineering Handbook – Air Force Technical Report
nº 6273”, Chapter 1, Edwards Air Force Base, 1966.
FU, K. S.; GONZALES, R. C.; LEE, C. S. G.; “Robotics: Control, Sensing, Vision, and
Intelligence”, McGraw-Hill, New York, 1987.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
43
FU, K. S., e MUI, J. K.. “A Survey of Image Segmentation”. Pattern Recog., vol. 13,
no. 1, pp. 3-16, 1981
GONZALEZ, R.C.; WOODS, R.E.; “Digital Image Processing”, Prentice-Hall, Inc.,
2002.
KIVER, M. S.; COLOR TELEVISION FUNDAMENTALS, MCGRAW-HILL, NEW
YORK, 1965.
KOVASZNAY, L. S. G.; JOSEPH, H. M.; “Image Processing”. Proc. IRE, vol. 43, pp.
560-570, 1955.
LEITE, N. P. O. ; LOPES, L. M. F. ; LIMA, W. O. ; ROBERTO, L. . “The
Development of a Quasi-Real Time Data Processing Tool for the Calibration Flight
Test Campaign of an Air Data System”. In: European Test & Telemetry Conference,
2009, Toulouse. European Test and Telemetry Conference Proceedings. Paris : The
Association Aéronautique and Astronautique de France, 2009. p. 130-135.
PINTO, F. H. L., RODRIGUES, F. W., “Ordem de Ensaio - Calibração Anemométrica
Document nº B11(A)/EFEV”, Grupo Especial de Ensaios em Vôo, 2007.
SERRA, J.; “Image Analysis and Mathematical Morphology”, vol. 2, Academic Press,
New York, 1988.
WALSH, J. W. T.; PHOTOMETRY, DOVER, NEW YORK, 1958.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
44
1. Introdução
A área de sistemas multiagentes (SMA) visa o estudo de sistemas onde vários agentes
devem atuar em conjunto buscando atingir um objetivo. Quando este objetivo é
complexo e abrangente, ele pode estar fora da capacidade de um único agente. Então a
solução é a construção de um maior número de agentes, para trabalharem em conjunto e
alcançarem o objetivo, sendo este o conceito de um SMA (WOOLDRIDGE, 2002, p. 3).
Um dos simuladores usados para testar técnicas em SMA é o RoboCup Rescue
(RCR) (ROBOCUP RESCUE, 2010), que trabalha a idéia de programação de SMA para
resolver um problema de resgate de vitimas em catástrofes. O RCR é um simulador de
SMA que apresenta uma situação de catástrofe (causada por um terremoto) com várias
restrições, como bloqueio de ruas, falta de água, falta de energia elétrica e com
limitações quanto ao número de mensagens enviadas entre os agentes. Neste cenário,
vários agentes devem trabalhar em conjunto para efetuar, com a maior eficiência
possível, o resgate das vítimas deste desastre. Cada classe de agente (como exemplo
cita-se: bombeiros e policiais) tem sua função e sua inteligência é programável. Sua
forma de comunicação atualmente é limitada a troca de mensagens.
Swarm Intelligence (SI) é uma abordagem que descreve um comportamento de
integração coletivo-cooperativa entre os agentes de um SMA inspirado no
comportamento das colônias de insetos. Insetos são criaturas simples, com pouca
capacidade de comunicação direta entre si. Para contornar esta limitação e atingir o
comportamento integrado da colônia, os insetos utilizam comunicação indireta, que
ocorre através de feromônios depositados no ambiente e detectados pelos outros insetos.
É interessante notar que, mesmo utilizando a simples comunicação indireta, a colônia de
insetos é capaz de produzir um comportamento integrado bastante complexo, como a
construção de ninhos (formigas) ou colméias (abelhas) (BONABEAU; THERAULAZ;
DORIGO, 1999, p. 26).
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
45
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
46
Simulator
TrafficSimulator
H B
Simulator score = P + ∗
H B
Simulator
Kernel FireSimulatorWrapper
CollapseSimulator
Simulator
ClearSimulator
Simulator
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
47
3. Swarm Intelligence
Existem na natureza espécies de insetos que vivem em colônias, denominados de
insetos sociais (por exemplo, formigas, cupins, abelhas). Estes insetos, apesar de
simples são capazes de desenvolver tarefas complexas, por exemplo: a construção de
formigueiros e colméias; busca diária de alimentos para sobrevivência da colônia.
Nestas colônias cada indivíduo tem uma classe e cada classe tem funções específicas
dentro da colônia. Todas estas funções são necessárias para o objetivo da colônia que é
a sobrevivência (BONABEAU, THERAULAZ, DORIGO, 1999, p. 1).
É deste princípio que parte a área de estudo da SI, onde são aplicados os
conceitos dos insetos sociais na área de SMA. Um destes conceitos é o de comunicação
pelo ambiente1. Este termo se refere à utilização do ambiente para comunicação entre
indivíduos onde não ocorre troca de mensagens diretamente, mas sim pelo ambiente,
através de feromônios. Feromônio é uma substância química, que um indivíduo deposita
no ambiente, e que é sentido por outros indivíduos. O feromônio depositado no
ambiente evapora com o passar do tempo. O tipo de feromônio e também a quantidade
existente transmitem a informação desejada, estabelecendo desta forma a comunicação
(BONABEAU, THERAULAZ, DORIGO, 1999, p. 14).
A comunicação através do ambiente é verificada, por exemplo, nas formigas,
quando se coloca uma fonte de comida separada do ninho das formigas por uma ponte
de dois galhos aparentemente iguais. Inicialmente não há feromônio em nenhum dos
dois galhos que têm a mesma probabilidade de serem selecionados pelas formigas.
Eventualmente fatores aleatórios fazem com que algumas formigas a mais passem por
um determinado galho, por exemplo, o galho “A” em vez do outro. Por haver mais
formigas depositando feromônio enquanto andam no galho “A” as outras formigas
sentirão mais estimuladas a passarem também pelo galho “A”. Ao se colocar galhos de
comprimentos diferentes, como mostra a Figura 3 (a), as formigas escolhem
inicialmente o caminho do mesmo modo que antes, aleatoriamente. Porém, após um
tempo há uma diferença na escolha de um único caminho, Figura 3 (b). As formigas que
escolheram o caminho mais curto são as que chegam antes ao outro lado e que voltam
antes ao ninho, marcando o caminho percorrido com seus feromônios. Após estas
formigas retornarem há mais concentração de feromônio no caminho mais curto do que
no outro galho mais longo, pois ocorreu evaporação dos feromônios previamente
depositados. Desta forma, as outras formigas são estimuladas a escolherem o galho mais
curto também.
Após diversas análises neste experimento Deneubourg et al. (1990, p. 159-168)
desenvolveu um modelo matemático para representar este fenômeno, tendo por base que
a quantidade de feromônio em um galho é proporcional ao número de formigas que
passaram por ele (assumindo que cada formiga deposita uma unidade de feromônio).
Assim, seus autores concluíram que a escolha de um caminho na ponte depende
diretamente do número de formigas que passaram por este caminho.
Mais precisamente, tem-se 𝐹 e 𝐹 como a quantidade de feromônio depositada
nos ramos A e B após i formigas usarem a ponte. A probabilidade PA que a formiga (i +
1) escolha ramo A é modelada conforme a equação apresentada no Quadro 2. O
1
Em inglês o termo utilizado para definir este conceito é "stigmergy". Não existe termo equivalente em
português.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
48
𝑘+𝐹
𝑃 =
𝑘+𝐹 + 𝑘 + 𝐹
Fonte: Bonabeau, Theraulaz e Dorigo (1999,
p. 27).
Quadro 2. Equação da probabilidade de
escolha da formiga em relação aos
feromônios nos caminhos.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
49
4. Trabalhos Relacionados
Em seu trabalho, Kassabalidis et al. (2001), desenvolve uma pesquisa sobre um
algoritmo de roteamento para redes baseado no conceito de SI de comunicação entre os
agentes pelo ambiente. Esta idéia é baseada na forma de exploração do ambiente pelas
formigas, que marcam o caminho com feromônio. Em seu algoritmo, chamado AntNet,
este principio é utilizado para a construção da tabela de roteamento. Esta tabela é gerada
por agentes que exploram a rede decidindo sua rota de forma aleatória com a influência
de feromônio presente nela.
Outro trabalho relacionado é o de Santos (2009), onde é apresentado um
algoritmo de alocação de tarefas entre agentes baseado em SI. Este conceito é baseado
na divisão de trabalho e no processo de recrutamento para transporte presente em
algumas espécies de insetos sociais. Este algoritmo foi desenvolvido para ter eficiência
até mesmo em situações com restrições no ambiente para comunicação e tempo. Um
dos ambientes utilizados para testes é o do simulador RCR, onde foi comprovada a
eficiência do algoritmo. Ainda é sugerida pelo autor a incorporação da comunicação
pelo ambiente em seu algoritmo, eliminando assim a comunicação direta.
5. Desenvolvimento da Extensão
A extensão SI deve incorporar no RCR o conceito de comunicação pelo ambiente, ou
seja, comunicação entre os agentes através de feromônios. Para tanto a extensão deve
oferecer um modo para que o agente possa depositar e ler os feromônios, de acordo com
as equações descritas na seção 3. Se for possível para o agente depositar feromônios,
será possível desenvolver um SMA que utilize estes conceitos para sua movimentação e
assim realizar a comunicação pelo ambiente. Além da possibilidade de depositar e ler os
feromônios a extensão deve possuir um mecanismo para realizar a evaporação do
feromônio, para que o caminho marcado perca a influencia do feromônio com o passar
do tempo, conforme descrito na seção 3.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
50
ChangeSet
StandardSimulator
TrafficSimulator
Road
- pherormone: DoubleProperty
LineOfSightPerception
StandardAgent
+ addRoadPropertiest(Road, ChangeSet) : void
+ sendMove(int, List<EntityID>) : void + getVisibleEntities(AgentProxy) : void
+ sendMove(int, List<EntityID>, boolean) : void
AbstractAgent
+ processSense(KASense) : void
«interface»
Perception
AgentProxy
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
51
Simulator
Simulator FireSimulatorWrapper
Kernel
Simulator
IgnitionSimulator
CollapseSimulator
Simulator
Simulator
WorldModel
AbstractSimulator Config
PherormoneSimulator
- evaporacao: double = 0
- EVAPORATION: String = pherormone.evap...
Road
- doEvaporation(double) : double
+ getName() : String
# handleUpdate(KSUpdate) : void
# postConnect() : void
# processCommands(KSCommands, ChangeSet) : void
6. Resultados e Discussão
Para avaliar extensão, foi implementado um SMA formado apenas por agentes
bombeiros que devem combater incêndios. Este tipo de agente foi utilizado por ter mais
semelhança em sua tarefa com a de uma formiga, já que ele vaga pelo mapa em busca
de um incêndio e quando sua água acaba volta ao seu refúgio para se encher de água e
continuar apagando incêndios. Para comunicação, os agentes utilizam apenas a
comunicação pelo ambiente fornecida pela extensão. A estratégia utilizada para a
implementação do agente foi baseada no sentido de que o agente bombeiro, que será
chamado de SwarmFireBrigade, necessita primeiramente de água para apagar algum
incêndio. Tendo que todos os agentes iniciam com o tanque cheio de água, se o agente
estiver sem água em seu taque, é porque ele estava apagando um incêndio. Então o
SwarmFireBrigade se move para o refúgio mais próximo para reabastecer, sem buscar o
caminho através de feromônios (já que o agente tem registrado a localização de todos os
refúgios no mapa, não precisando assim, procurar pelo local). Enquanto se desloca para
o refúgio, o agente faz a marcação com feromônio do caminho que percorre. Com isto,
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
52
os agentes que estiverem saindo do refúgio, não tendo nenhum incêndio por perto para
apagar, poderão encontrar o incêndio cujo caminho foi marcado. Ao terminar de encher
o tanque, o agente verifica se não há nenhum incêndio em seu campo de visão. Se
perceber um incêndio próximo o SwarmFireBrigade vai em direção a ele para apagá-lo.
Caso contrário, utiliza a estratégia de movimentação a partir da comunicação pelo
ambiente, verificando os feromônios na rua para calcular o caminho a ser seguido de
acordo com a equação de probabilidade mostrada no Quadro 2.
Os experimentos com o SwarmFireBrigade foram realizados utilizando o mapa
Kobe4, (SOURCE FOURGE, 2003), usado na última competição da RRSL,
apresentado na Figura 6. A simulação não possui civis a serem resgatados, já que não
haverá agentes do time de ambulância. Foram realizados experimentos com 20 e 40
agentes bombeiros, sendo que no caso de 40 agentes, os 20 agentes adicionais tiveram
como posição inicial a mesma dos 20 primeiros. Os experimentos avaliaram o efeito no
score de diferentes quantidades de feromônios sendo depositados pelos agentes em cada
rua a medida que se movem pelo ambiente (a saber, 1, 5 e 10 unidades de feromônio).
Também foi avaliado o efeito de diferentes percentuais de evaporação (mostrado no
quadro XX), sendo testados os seguintes percentuais: 0% (nenhuma evaporação), 25%,
50%, 75% e 100% (evaporação total). Os resultados (scores) apresentados a seguir
representam uma média de 3 execuções.
A Tabela 1 apresenta o score obtido quando os agentes depositaram 1 (uma)
unidade de feromônio em cada rua. A coluna Qtd. de Bombeiros se refere ao número de
agentes bombeiros utilizados nas simulações. A coluna % de Evap. diz respeito ao
coeficiente de evaporação adotado. O fato de o score ser maior significa que o time de
agentes teve um desempenho melhor, conseguindo salvar uma área maior de
construções no mapa. Em negrito é destacado o melhor resultado para cada quantidade
de bombeiros.
Para efeito de comparação, foram executados experimentos no mesmo mapa, e
com as mesmas quantidades de agentes, mas com um time de agentes que não utiliza a
marcação de caminho por feromônio. A estratégia destes agentes é a de, se estiver com
água, procura por incêndio próximo, se estiver sem água vai até o refúgio. Se estiver
com água e achar um incêndio, vai apagar o incêndio através do trajeto mais curto. Se
não achar o incêndio vaga pelo mapa aleatoriamente até encontrar um incêndio. Este
agente é distribuído junto com o código fonte do simulador, e chama-se
SampleFireBrigade. A Tabela 2 apresenta os resultados obtidos com o
SampleFireBrigade.
Mediante os resultados apresentados observa-se que com o depósito de 1
unidade de feromônio para um time de 20 agentes SwarmFireBrigade (com
comunicação pelo ambiente) os resultados obtidos se aproximam com os de um time de
mesmo número de agentes SampleFireBrigade (sem comunicação pelo ambiente). Isto
se deve ao fato de que as ruas, no inicio da simulação, não estavam marcadas com
feromônios indicando a direção dos incêndios. Assim os agentes vagaram de forma
aleatória até encontrarem um incêndio e o apagarem. Com relação aos experimentos
realizados com 40 agentes SwarmFireBrigade, os resultados obtidos demonstram que
houve maior score em relação ao time de agentes SampleFireBrigade. O fato pode ser
justificado devido a existência de maior número de agentes no mapa agindo na tarefa de
combater os incêndios, levando a maior depósito de feromônio nas ruas devido à
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
53
Figura 6. Imagem com a posição inicial dos agentes no mapa utilizado para
experimentos.
Tabela 1. Resultados das Tabela 2. Resultados Resultados das
simulações com os agentes simulações com os agentes
SwarmFireBrigade depositando SampleFireBrigade.
1 (uma) unidade de feromônio.
Qtd. de Score
Qtd. de % de Score Bombeiros
Bombeiros Evap. 20 0,226364196
20 0% 0,205543138 40 0,239583061
20 25% 0,196124823
20 50% 0,206619558
20 75% 0,223827752
20 100% 0,193934737
40 0% 0,356805741
40 25% 0,263814039
40 50% 0,286295404
40 75% 0,269387903
40 100% 0,258381419
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
54
7. Conclusão
O simulador RCR tem como seu objetivo realizar competições para o
aprimoramento de estudos na área da IA e de desenvolvimento de SMA´s. No entanto, o
simulador não oferecia nenhum recurso em SI tendo somente como opção de
comunicação a troca de mensagens através de rádio. Para eliminar esta limitação, este
trabalho desenvolveu uma extensão SI, que permite desenvolver agentes que utilizam
comunicação pelo ambiente. Os experimentos realizados em um time de agentes que
utiliza comunicação pelo ambiente demonstraram que seu uso é promissor,
proporcionando melhor score do que times de agentes que não utilizam comunicação
pelo ambiente.
Durante o trabalho foi desenvolvido um estudo sobre a área de SMA, principais
conceitos de SI especialmente no que tange a comunicação através do ambiente, neste
caso feromônios. Também foi realizado um profundo estudo no funcionamento e
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
55
8. Referências
BONABEAU, Eric; THERAULAZ, Guy; DORIGO, Marco. Swarm intelligence: from
natural to artificial systems. New York: Oxford University Press, 1999. 307 p.
DENEUBOURG, Jean-L et al. The self-organizing exploratory pattern of the argentine
ant. Journal of Insect Behavior, United States, v. 3, p. 159-168, 1990.
KITANO, Hiroaki; TADOKORO, Satoshi. RoboCup rescue, a grand challenge for
multiagent and intelligent systems. AI Magazine, [S.l.], v. 22, n. 1, p. 39-52, 2001.
Disponível em:
<http://www.aaai.org/ojs/index.php/aimagazine/article/view/1542/1441>. Acesso
em: 27 mar. 2011.
KASSABALIDIS, Ikas et al. Swarm intelligence for routing in communication
networks. In: GLOBAL TELECOMMUNICATIONS CONFERENCE, 2. , 2001,
San Antonio. Proceedings... Seattle: Washigton University, 2001. p. 3613–3617.
Disponível em:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.28.8398&rep=rep1&type
=pdf>. Acesso em: 27 mar. 2011.
OSTETTO, Alessandro A. Extensão swarm intelligence para o simulador robocup
rescue. 2011. 62 f. Dissertação (Trabalho de Conclusão de Curso em Ciência da
Computação), Universidade Regional De Blumenau, Blumenau.
ROBOCUP RESCUE. Tokio, 2006. Disponível em: <http://www.robocuprescue.org/>.
Acesso em: 17 mar. 2011.
ROBOCUP RESCUE SIMULATION LEAGUE. Rules and setup. [S.l.], 2010. 21 p.
Disponível em<http://www.aaai.org/AITopics/assets/PDF/AIMag19-02-2-
article.pdf>. Acesso em: 24 maio 2011.
SANTOS, Fernando. eXtreme-Ants: algoritmo inspirado em formigas para alocação de
tarefas em extreme teams. 2009. 69 f. Dissertação (Mestrado em Ciência da
Computação) – Programa de Pós-Graduação em Computação, Universidade Federal
do Rio Grande do Sul, Porto Alegre.
SOURCE FORGE. Robocup rescue simulation project. [S.l.], 2003. Disponível em:
<http://sourceforge.net/projects/roborescue/>. Acesso em: 18 fev. 2011.
WOOLDRIDGE, Michael J. An introduction to multiagent systems. New York: John
Wiley, 2002. 348p.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
56
1. Introdução
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
57
doenças. É importante frisar que o diagnóstico tardio de uma doença pode causar até a
perda total da plantação, ocasionando prejuízos financeiros de grandes proporções
(LOPES e AVILA, 2005).
Os tomaticultores, temendo o aparecimento de doenças, fazem o uso, muitas vezes
desnecessário, de agrotóxicos. O cultivo do tomate é muito suscetível ao aparecimento
de doenças, então, quando o tomaticultor percebe que algo está afetando a plantação, ele
faz a aplicação do agrotóxico sem identificar se realmente é adequado para aquele tipo
de patógeno. Quando, depois da aplicação, o resultado alcançado não foi o esperado, há
uma nova aplicação com outro tipo de agrotóxico. Isso ocorre porque o agricultor não
consegue identificar corretamente a doença, além do fato de que a identificação pode
demorar e, dependendo do fungo que está afetando a lavoura, os danos de produção e
financeiros podem ser muito altos ou, em alguns casos até irreversíveis (LOURENÇO,
2008).
Lourenço (2008) aponta ainda que o aumento da contaminação do tomate, que
cresceu 42% em relação a 2006, se deve ao "uso pouco criterioso" dos agrotóxicos pelos
produtores. “Eles aplicam [agrotóxicos] sem muito critério. Os resíduos permanecem
por causa da frequência com que o produtor aplica, não obedecendo o período de
carência”.
Considerando-se estes fatos e a importância da cultura do tomate, foi constatado,
por especialista da área, a importância do desenvolvimento de uma ferramenta que
pudesse colaborar com os tomaticultores da região sul de Santa Catarina.
De acordo com Khatchatourian e Padilha (2008), técnicas de processamento digital
de imagens aliado a técnicas de reconhecimento de padrões, utilizando inteligência
artificial, vem sendo utilizadas nas mais diversas áreas da agricultura, meteorologia,
médica e astronômica. Uma técnica de reconhecimento de padrões que já é bastante
difundida no reconhecimento de padrões em imagens é a utilização de Redes Neurais
Artificiais, que de modo geral, após um período de aprendizagem (treinamento) passam
a inferir novas situações. Essa dinâmica procura modelar justamente o funcionamento
do cérebro humano.
A partir da extração das características das imagens das folhas contaminadas, as
quais já foram classificadas previamente, é possível treinar uma Rede Neural para que
se possam classificar novas amostras, com base no aprendizado recebido.
Este artigo apresenta uma ferramenta que utiliza os recursos de processamento
digital de imagens e redes neurais para a identificação de doenças fúngicas do tomate,
mais especificamente, a pinta preta, a septoriose e a requeima. Inicialmente é feita uma
breve explanação sobre as características das doenças que são mais frequentes no Sul de
Santa Catarina, além das técnicas de processamento de imagem e reconhecimento de
padrão que podem ser aplicadas em análises similares. Por fim, a metodologia é
descrita e os resultados referente à análise são apresentados.
2. Referencial Teórico
O referencial teórico apresenta alguns conceitos sobre doenças fúngicas, redes neurais
artificiais e processamento de imagens
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
58
Uma das principais doenças do tomateiro, a pinta preta (alternaria solani), ocorre com
mais frequência quando cultivados em campo aberto (LOPES; AVILA, 2005). A
doença é transmitida pela semente, e seus esporos são conduzidos pelo vento. O fungo
pode permanecer no solo por um período próximo a três anos. A folha apresenta
pequenas manchas circulares de cor marrom-escura (pinta preta). Nessa mancha são
formados os esporos do fungo. Com o aumento das lesões são formados anéis
concêntricos na área atingida. Ataques severos resultam em secagem das folhas mais
velhas, pela coalescência das lesões, que pode expor os frutos à queima pelo sol. A
Figura 1 exibe uma folha do tomateiro que está contaminado com a pinta preta:
2.1.2 Requeima
3
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
59
a ela um aspecto de que foi queimada por geada, daí o nome de “requeima” (REIS,
2010). A requeima pode ser constatada através da Figura 2:
2.1.3 Septoriose
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
60
5
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
61
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
62
2.3.3 Negativa
O filtro de negativa faz a inversão da ordem do preto e do branco, de modo que
conforme a intensidade de entrada aumente, a intensidade de saída diminua (NETO,
RIBEIRO e VALERI, 2004).
2.3.4 Limiarização
A limiarização é um processo que separa os pixels de uma imagem utilizando a função
threshold, que consiste em receber um valor limiar e o pixel inferior a esse valor
converte para preto e o superior converte para branco (DUTRA, ERTHA e NETA,
2008).
2.3.5 Dilatação
A dilatação faz com que os objetos aumentem, causando um alongamento do elemento
estruturante dentro da imagem (OLIVEIRA, 2003).
3. Trabalhos Correlatos
7
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
63
A captura das imagens das folhas infectadas na plantação de tomates se deu a partir da
coleta das amostras na própria plantação e a digitalização fotográfica em laboratório.
Uma vez que a folha pode alterar as características em função do tempo da coleta, todas
as imagens foram digitalizadas em um período de no máximo uma hora após a coleta. A
imagem foi capturada com a folha do tomate sobre uma superfície branca porosa para
evitar reflexos na lente da câmera.
Foram coletadas para treinamento da Rede Neural 20 amostras de cada doença, que
já haviam sido diagnosticadas previamente por especialistas agrônomos. A partir da
catalogação das imagens no sistema, as etapas consistem em pré-processamento,
processamento e classificação.
4.1 Pré-processamento
O pré-processamento consiste em uma etapa semi-manual em que o usuário irá
delimitar as manchas mais relevantes na folha da imagem original. Essas marcações são
necessárias uma vez que a variância entre os pixels da cor verde e marrom é muito
pequena, de forma que nenhuma técnica linear de processamento de imagem estudada
foi suficiente para fazer a separação de forma automática.
Após a marcação, o sistema faz a interseção e união dos conjuntos para minimizar a
falha humana na marcação, considerando a média ponderada dos pixels marcados. A
Figura 4 exibe a imagem original (esquerda) e a imagem com a marcação do usuário
(direita). Eventuais falhas na marcação são corrigidas automaticamente nas próximas
etapas.
4.2 Processamento
O processamento consiste em etapas de aplicação de filtros e cálculos para extrair as
características da imagem. São seis etapas de processamento, e todas são feitas de forma
automática:
1 – Separação da área da folha: primeiramente, foi utilizado o algoritmo de segmentação
Mumford & Shah. A primeira aplicação do filtro teve o objetivo de separar a área da
folha (tons de verde) do fundo (tons de branco). Utilizando apenas duas regiões, as
pintas são ignoradas, uma vez que a predominância maior na imagem é verde e branco.
A partir da segmentação foi possível rastrear os pixels verdes para calcular a área total
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
64
9
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
65
Figura 8. Negativa.
Fonte: Elaboração dos autores (2011).
5 – Limiarização: O valor limiar utilizado nesta sequência de processamento foi 220,
assim apenas as marcações feitas pelo usuário assumem o valor branco. A Figura 9
exibe a imagem processada com a limiarização.
Figura 9. Limiarização.
Fonte: Elaboração dos autores (2011).
6 – Dilatação: após a limiarização, a imagem passa pela dilatação, visando preencher
eventuais falhas de marcação feita pelo usuário e suavizar as bordas da imagem como
mostra a figura 10.
4.3 Classificação
Após o processamento têm-se os valores de entrada da rede neural, que representam as
características extraídas da imagem: área da folha, quantidade de pintas na folha, área
total dos pixels que foram identificados como pinta, percentual das pintas em relação à
folha, média dos pixels RGB de cada pinta. Um arquivo é gerado com as características
extraídas, que por sua vez pode ser utilizado no treinamento da RNA como também no
processo de análise de amostra.
A Rede Neural utilizada para classificação é uma rede de arquitetura de múltiplas
camadas com 7 neurônios na camada de entrada, representando as características
extraídas, 4 neurônios na camada intermediária e dois neurônios de saída, que informam
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
66
5. Resultados e Discussões
O teste da rede neural foi realizado de duas formas: teste cruzado e teste generalizado.
No teste cruzado foram utilizadas as amostras do conjunto de treinamento, ou seja, as
amostras utilizadas para o treinamento da rede neural também foram utilizadas para o
teste da rede. No teste generalizado foram utilizadas todas as amostras que não estavam
no conjunto de treinamento, sendo possível nesse caso testar a capacidade de
generalização da rede neural.
A Rede atingiu uma porcentagem de acerto maior que 90% na maioria das
categorias. A Pinta Preta foi a doença que apresentou a menor porcentagem de acerto no
teste cruzado, com 2 de 20 amostras apresentando um resultado incorreto, ainda assim
manteve um nível satisfatório de acerto, com 90% das amostras reconhecidas. A
requeima foi a única categoria de doença a atingir 100% de acerto no teste cruzado.
Para o teste generalizado foram submetidas à rede 32 amostras de Pinta Preta, 24
amostras de Septoriose e 9 amostras de Requeima. A Rede atingiu uma porcentagem
total de acerto de 90,8 %. Desses, 100% de acerto no teste de Pinta Preta. Na Requeima,
atingiu o menor índice de acerto, 77,8%. O número reduzido de amostras da requeima
para o teste generalizado influenciou negativamente no resultado. As Figuras 12 e 13
ilustram os resultados obtidos nos testes:
Teste Generalizado
100
90,8
77,8 83,3
% Acerto
11
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
67
Teste Cruzado
100
95 95
% Acerto
90
6. Conclusões
A ferramenta não chegou a um produto acabado, mas com certeza pode e deve
servir de caminho para outros projetos, de preferência ainda maiores, que possam
contribuir cada vez mais com a melhoria dos produtos envolvidos no agronegócio. O
desenvolvimento desta ferramenta apresentou algumas dificuldades as quais tentou-se
superar da melhor maneira possível. A quantidade de amostras foi uma das dificuldades
encontradas. Não foi possível encontrar amostras em sites, mesmo consultando
empresas especializadas como a EPAGRI. Então foi realizada a coleta em plantações na
cidade de São Ludgero, onde se conseguiu encontrar as amostras, sendo pinta preta (90),
septoriose (64) e requeima (27). Mesmo com o número reduzido de amostras da
requeima, conseguiu-se treinar a rede neural.
O tempo de processamento das imagens foi, sem dúvida, a maior dificuldade
encontrada. Identificou-se que quanto maior a região afetada da amostra, maior o tempo
de processamento necessário. Algumas amostras chegaram a levar dois dias para serem
processadas (amostras de requeima, que contém praticamente toda a folha afetada). Isto
ocorreu devido ao tamanho da imagem, sendo que quanto maior o tamanho, maior o
número de pixels e inevitavelmente se tem uma maior quantidade de dados a serem
analisados para a extração de características da folha. Uma melhora no algoritmo
utilizado para a verificação das manchas é necessária para viabilizar a utilização de
imagens com tamanho maiores. A marcação da área afetada da amostra foi necessária
devido à dificuldade que se encontrou para separar a cor marrom da cor verde presente
nas imagens. Mesmo com as dificuldades encontradas e o reduzido número de amostras
de requeima, os resultados obtidos foram suficientes para comprovar que o uso do
sistema traz como resposta um resultado satisfatório.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
68
7. Referências
ABCSEM. Tomate lidera crescimento e lucratividade no setor de hortaliças.
Disponível em: <http://www.abcsem.com.br/noticia.php?cod=284>. Acesso em: 07 set.
2010.
HAYKIN, Simon. Redes Neurais: Princípios e prática. 2.ed. Porto Alegre: Bookman,
2001.
13
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
69
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
70
1 INTRODUÇÃO
Segundo Kandel (apud Fernandes, 2003), os Sistemas Especialistas (SE) podem ser
caracterizados como sistemas que reproduzem o conhecimento de um especialista adquirido
ao longo de anos de trabalho, devendo ser construídos com o auxílio de um especialista
humano, o qual fornecerá a base de informações através de seu conhecimento e
experiências adquiridas. Dessa forma, pode-se afirmar que os SE são ferramentas que
facilitam o trabalho do especialista humano, visto que não há perda ou esquecimento de
informações, o tempo de resposta é menor e a quantidade de erros diminui em razão da
inferência de informações.
Diante deste cenário, este artigo apresenta um protótipo de Sistema Especialista que
demonstra a prescrição do medicamento fitoterápico mais adequado ao sintoma
diagnosticado a partir da base de conhecimento fornecida pelo especialista da área. Para a
construção da base de conhecimento e definição da inferência do sistema, o
desenvolvimento do mesmo foi acompanhado por um especialista da área de Fitoterapia.
Neste sentido, este artigo inicia apresentando a fundamentação teórica das áreas
envolvidas neste trabalho – seção 2, através de estudos sobre Inteligência Artificial e o
desenvolvimento de sistemas especialistas, bem como informações sobre a Fitoterapia. A
seção 3 apresenta o estado da arte, por meio do estudo de Sistemas Especialistas
desenvolvidos para a área de saúde, além de um comparativo entre os sistemas estudados e
a proposta aqui apresentada. A seção 4 detalha o protótipo implementado, apresentando a
modelagem do SE, as tecnologias empregadas, suas principais funcionalidades e a
validação do mesmo. Finalizando o artigo são apresentadas as considerações finais, bem
como as referências bibliográficas utilizadas.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
71
2 REFERENCIAL TEÓRICO
Esta seção apresenta uma breve revisão teórica da literatura, com o objetivo de obter
fundamentos para justificar a proposta deste artigo. São apresentados conceitos de
Inteligência Artificial, abrangendo principalmente as técnicas dos Sistemas Especialistas e
noções sobre medicamentos fitoterápicos, foco do trabalho desenvolvido.
2.1 Inteligência Artificial
O desenvolvimento de sistemas especialistas constitui-se em uma das áreas de pesquisa
ligadas à Inteligência Artificial. Estes sistemas são baseados em conhecimento, construídos,
principalmente, com regras que reproduzem o conhecimento de um especialista, sendo
utilizados para solucionar determinados problemas em domínios específicos, como é o caso
dos medicamentos fitoterápicos (Nilson, 1982).
A pesquisa na área de inteligência artificial é cada vez mais abrangente, visando a
criação de sistemas inteligentes baseados em modelos pré-definidos. Um dos caminhos
seguidos pela Inteligência Artificial relaciona-se aos Sistemas Especialistas, que é
desenvolvido em conjunto com especialista da área a ser trabalhada (Weiss e Kulikowski,
1988).
Para alcançar os objetivos propostos, a inteligência artificial, fornece diferentes
técnicas que permitem a construção de sistemas que exibam alguma forma de
comportamento inteligente (Luger e Stubblefield, 1993).
Entre as diferentes técnicas de Inteligência Artificial existentes, este artigo
apresenta, com maiores detalhes, os Sistemas Especialistas, que constituem o foco deste
trabalho.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
72
3 ESTADO DA ARTE
Esta seção apresenta um estudo sobre sistemas computacionais semelhantes ao proposto
neste trabalho, a fim de avaliar o que esses sistemas oferecem como são desenvolvidos e
que ensinamentos podem ser retirados desta comparação. Foram estudadas as ferramentas
DXplain, Iliad e Mycin, sistemas especialista no auxílio ao diagnóstico clínico.
3.1 DXplain
Desenvolvido pelo Massachusetts General Hospital, o DXplain é utilizado para ajudar nos
diagnósticos associados às manifestações clínicas. É um sistema de apoio à decisão clínica
que utiliza um rol de manifestações clínicas como sinais, sintomas e informações
laboratoriais para produzir uma lista de diagnósticos prováveis, fornecendo explicações e
sugestões para novas investigações (DXPLAIN, 2010).
Este software possui uma grande base de dados sobre 5000 manifestações clínicas
associadas com mais de 2000 diferentes doenças em um banco de dados Oracle. O
Laboratório de Ciência da Computação do Hospital Geral de Massachusetts vem
desenvolvendo o DXplain há dez anos.
O sistema tem sido utilizado principalmente para educação clínica, através de casos
clínicos, mas também pode ser usado para consultas médicas. O banco de dados e o sistema
estão sendo continuamente aperfeiçoados e atualizados. O DXplain vem sendo utilizado em
vários hospitais e escolas de medicina para educação clínica e como um auxílio educacional
na solução de problemas clínicos. Ele assume o papel de um livro-texto eletrônico em
medicina, pois correlaciona manifestações e doenças e também fornece referências
bibliográficas relevantes.
3.2 ILIAD
O ILIAD foi desenvolvido na Universidade de Utah, em Salt Lake City. O sistema auxilia
na busca por diagnósticos na área de Medicina Interna (especialidade médica que trata de
pacientes adultos, atuando principalmente em ambiente hospitalar) a partir de uma base de
conhecimento que contém 908 doenças, 1.509 síndromes e 11.900 sinais, sintomas e
exames subsidiários, cobrindo atualmente 1500 diagnósticos neste domínio, baseado em
diversos achados (Widmann, 1998).
Um diferencial deste sistema, que vale ser considerado, é a sua máquina de
inferência. Além da lógica implementada no seu motor de inferência, o sistema faz uso
também de uma abordagem probabilística de apoio à decisão (Teorema de Bayes)
fornecendo orientação terapêutica, depois de realizar o diagnóstico.
3.3 MYCIN
O Mycin foi desenvolvido por uma equipe de médicos e especialistas em IA na
Universidade de Stanford. Contém o conhecimento dos mais destacados especialistas no
campo de doenças infecciosas. Foi projetado para auxiliar no diagnóstico e tratamento de
meningite (inflamação das membranas que envolvem o cérebro e a medula espinhal) e
bacteriemia (infecção bacteriana no sangue) (Widmann, 1998).
O MYCIN utiliza o tipo de raciocínio “backward chaining”. Dando-se um conjunto
de sintomas para diagnóstico, o MYCIN utiliza seus conhecimentos para conduzir às
conclusões e então recomendar o apropriado tratamento.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
73
A base de regras do sistema contém 450 regras, que lhe permitem diagnosticar e
prescrever tratamentos para bacteremia (infecção no sangue), meningite e cistite infecciosa.
O conhecimento clínico é representado como um conjunto de regras IF-THEN.
4 DESCRIÇÃO DO SISTEMA
A presente seção apresenta a descrição do protótipo de Sistema Especialista implementado.
Para a modelagem e representação do sistema utilizou-se a UML (Unified Modeling
Language). A base de conhecimento é representada através de técnicas de modelagem de
banco de dados relacionais. Além da modelagem do sistema, também se apresenta a forma
de aquisição de conhecimento junto ao especialista, bem como as tecnologias que foram
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
74
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
75
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
76
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
77
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
78
Caso o terapeuta queira indicar algum medicamento que não foi listado, ele tem a
opção de adicionar, por meio do ícone “+” do quadro, o medicamento que considera
relevante para o tratamento do paciente, e que não foi listado. Com base nos percentuais de
eficiência indicados para cada medicamento, o terapeuta clica na seta (verde) do campo
“Ação”, a opção escolhida como indicado para o diagnóstico e automaticamente este é
enviado para o quadro “Indicações” armazenando assim todos os medicamentos indicados
pelo terapeuta para os sintomas relatados pelo paciente em questão. Caso ocorra de algum
medicamento ser enviado para este quadro por engano, o terapeuta tem a opção de removê-
lo clicando na seta (vermelha) ao lado do mesmo.
O quadro “Exercício” lista os todos os exercícios cadastrados, sendo que a
intensidade dos mesmos é sugerida de acordo com as informações armazenadas na base de
conhecimento referente ao paciente.
No quadro “Observação” o terapeuta tem a opção de relatar algum comentário sobre
o paciente. Após deve clicar no botão “Gerar Indicação”.
A Figura 6 resume o processo de inferência do sistema. O mecanismo de inferência
tem início com a chegada do paciente ao consultório do terapeuta. A seguir, na segunda
etapa do processo, é realizado o cadastro do paciente com seus dados pessoais e suas
restrições a alguns tipos de medicamentos e compostos.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
79
4.4 Validação
Durante a implementação do Sistema Especialista foram realizados testes em vários
módulos do sistema, para verificar o funcionamento adequado de suas funcionalidades.
Além disso, o especialista (fitoterapeuta) acompanhou todo o desenvolvimento do projeto e
realizou testes finais, para validação do sistema. Após a simulação de cada consulta, o
terapeuta analisou todos os tratamentos gerados, considerando que o sistema responde de
maneira satisfatória aos seus resultados.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
80
5 CONSIDERAÇÕES FINAIS
O estudo para realização deste trabalho permitiu constatar que o tema escolhido tem como
um de seus objetivos o desenvolvimento de sistemas computacionais na área da Inteligência
Artificial, que sejam capazes de representar de forma precisa no raciocínio e conhecimento
dos seres humanos. A partir deste estudo foi possível chegar à arquitetura e definir os
métodos e técnicas de inferência do sistema implementado.
As informações prestadas pelo especialista consultado deram um caráter de
veracidade ao projeto, garantindo a sensibilidade e especificidade do tratamento que será
gerado. Através destas informações também foi possível modelar a base de conhecimento.
O ambiente de desenvolvimento PHP, integrado ao sistema de gerenciamento de
banco de dados MySQL, mostrou-se adequado para o desenvolvimento do sistema. A
conexão com o banco de dados demonstrou a eficiente integração entre as ferramentas
utilizadas, auxiliando e agilizando as várias conexões realizadas durante todo o aplicativo.
Dentre as dificuldades encontradas, a principal delas foi encontrar a melhor forma
de representação do conhecimento para armazenamento no banco de dados – tendo-se
optado pelo modelo de frames. Conforme citado no referencial teórico, esta é realmente
uma das tarefas mais complexas de um Sistema Especialista. A formalização desse
conhecimento através de um sistema especialista torna-se uma tarefa árdua, visto que os
profissionais da área de Fitoterapia, além do seu conhecimento, levam em consideração seu
senso comum e intuição para realizar a indicação dos medicamentos e tratamentos mais
adequados a cada paciente.
O objetivo específico de auxiliar a definição do tratamento mais indicado ao qual o
sistema se propôs, foi contemplado, auxiliando o terapeuta na definição de diagnósticos de
acordo com as informações registradas na base de conhecimento.
Para trabalhos futuros sugere-se a implementação de mais funcionalidades
relacionadas ao uso do sistema, como por exemplo, gráficos para acompanhar a evolução
do tratamento do paciente, disponibilizar impressão dos resultados das indicações de
tratamentos e possibilidade de aprendizagem do sistema, para que o sistema possa gerar
indicações de tratamentos e medicamentos com base em alterações realizadas pelo
especialista, a partir das indicações geradas automaticamente.
Considera-se que todos os objetivos propostos no trabalho foram alcançados de
forma adequada, implementando-se um sistema que permitiu o aprendizado científico e
tecnológico, aprofundando temas que não foram estudados durante o curso de graduação.
Além disso, é inovador já que até o presente momento não se viu nenhum outro com o foco
apresentado. Considera-se ainda que, após melhorias e acréscimo de mais funcionalidades,
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
81
REFERÊNCIAS
ABEL, M.: Sistemas Especialistas. Universidade Federal do Rio Grande do Sul, Instituto
de Informática, 1998.
DXPLAIN. :Diagnostic Decision Support. Disponível em:
http://lcs.mgh.harvard.edu/projects/dxplain.html. Acesso em: 01 nov. 2010.
FERNANDES, A. M. R., da.: Inteligência artificial: noções gerais. Santa Catarina: Visual
Books, 2003.
LUGER, F. G. e STUBBLEFIELD, A. W. Atificial Intelligence: Structures ans
Strategies for Complex Problem Solving. The Benjamin/Cumming Publishing Company,
Inc., Redwood City, California, 1993.
NILSON, N. S.: Principles of Artificial Intelligence, Springer Verlag, Berlin, 1982.
REZENDE, S. O. et.al.: Sistemas Inteligentes: fundamentos e Aplicações. Manole, 2003.
SANTOS, D.; FERNANDES, A.: Sistema Especialista para Diagnóstico de Doenças
Periodontais. Inteligência Artificial Aplicada a Saúde. Ed. Visual Books, 2004.
WEISS, S. M.; KULIKOWSKI, C. A.: Guia Prático para projetar Sistemas
Especialistas. Rio de Janeiro: LTC, 1988.
WIDMANN, L. E.: Sistemas especialistas em medicina. Revista Informática Médica,
Campinas. 1998. Disponível em:
<http://www.informaticamedica.org.br/informaticamedica/n0105/widman.htm>. Acesso
em: 28 nov. 2010.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
82
1. Introdução
Os recursos de telecom tornaram-se imprescindíveis às organizações dos mais diversos
domínios de atuação. Seus custos geralmente são elevados e podem consumir uma
parcela significativa de recursos financeiros.
Um Sistema de Informação (SI) para a Gestão de Recursos de Telecom (GRT)
tem o propósito de melhor gerenciar, organizar e controlar os ativos de telecom das
organizações – comunicação de dados, voz e celulares –, contribuindo para a redução de
gastos. O seu principal objetivo é ratear entre os centros de custo de uma organização os
valores gastos em ocorrências de telecom. Esse SI caracteriza-se por mudanças
frequentes nos requisitos para atender a diferentes usuários, resultando em um custo
adicional para as atualizações e evoluções [CPqD 2010].
As Regras de Negócio (RNs) são declarações que definem ou restringem algum
aspecto do negócio [The Business Rules Group 2010b]. O Sistema Gerenciador de
Regras de Negócio (SGRN) pertence a uma nova geração de técnicas e ferramentas que
surgiram para aprimorar o processo de desenvolvimento de sistemas e é responsável pelo
gerenciamento e processamento de RNs. A especificação dos requisitos de negócio é
feita por meio de RNs que são gerenciadas e executadas por uma máquina de RNs
[Browne 2009].
Este trabalho tem como objetivo aplicar um SGRN a um sistema GRT, existente
e implementado em linguagem PL / SQL, para comprovar a sua validade e agilizar as
suas atualizações quando necessárias. Será feita uma engenharia reversa no código de
forma a entender o negócio e a partir desse entendimento especificar as RNs.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
83
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
84
processo são diferentes e, portanto, cada um pode ter uma visão diferente do
entendimento do negócio.
O processo de desenvolver software pode ser demorado devido à dificuldade em
se traduzir os requisitos de negócio para códigos-fonte. Além disso, existe a
possibilidade de alguma informação ser perdida entre o que os especialistas no negócio
definem, os analistas de requisitos interpretam e os implementadores codificam.
Geralmente, isso requer muitas revisões e correções até que o sistema esteja inteiramente
correto e aderente aos requisitos de negócio.
A existência de um mecanismo que garanta aos envolvidos uma visão unificada
do negócio pode contribuir para uma melhor qualidade e rapidez na definição e na
mudança dos requisitos de negócio de um SI. As RNs podem representar um importante
conceito na fase de definição de requisitos organizacionais, facilitando modificações nos
SIs quando essas regras mudam e proporcionando oportunidade para as pessoas de
negócio avaliarem a execução de cada processo [Gottesdiener 1997 apud Dallavalle e
Cazarini 2010].
3.1. RNs
As RNs definem, restringem ou validam algum aspecto – estrutural ou comportamental –
do negócio de uma organização, em uma linguagem compreensível tanto aos técnicos da
área de Tecnologia da Informação (TI) como aos especialistas no negócio [Debevoise
2005; The Business Rules Group 2010b].
Aplicadas a um SI, as RNs controlam os dados, definindo se eles podem ou não
ser criados ou modificados, por meio de condições específicas e de ações a serem
tomadas quando essas condições forem satisfeitas [Debevoise 2005].
Além disso, as linguagens tradicionais de programação são imperativas enquanto
as RNs são declarativas. Um tratamento das ligações telefônicas efetuadas a partir de um
aparelho fixo de voz está exemplificado em linguagem tradicional de programação na
Figura 1 e em RNs na Tabela 1 – supondo-se uma organização na qual as chamadas a
serviço são cobradas dos centros de custo e as chamadas particulares de seus
funcionários são identificadas e cobradas por meio de uma senha ou de uma aprovação
prévia do funcionário.
A seguir, são especificadas as principais características e as respectivas
justificativas de como devem ser as RNs [Morgan 2002; The Business Rules Group
2010a].
Atômica: as RNs devem ser representadas na menor unidade possível, desde que
não ocorra perda de informação ou de semântica;
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
85
3.2. SGRN
Um SGRN pode gerenciar todas as RNs definidas por especialistas no negócio e torná-
las útil ao próprio negócio [Fischer 2010]. Quando se utiliza um SGRN, a
responsabilidade pelo controle da lógica do negócio deixa de ser dos técnicos da área de
TI e passa a ser dos especialistas no negócio [Owen 2004].
As principais vantagens de um SGRN são as seguintes: a especificação dos
requisitos de negócio é simplificada; os envolvidos no processo de desenvolvimento do
sistema têm uma visão unificada do entendimento do negócio; e o desenvolvimento e a
manutenção do sistema se dão de forma mais ágil, rápida e barata em comparação aos
desenvolvimentos tradicionais [Bali 2009; BPM-Focus 2006].
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
86
4. Estudo de caso
Para investigar as características de um SGRN aplicado a um sistema GRT, é proposta
uma metodologia constituída de quatro etapas: entendimento do negócio, definição da
arquitetura da solução, criação de RNs e execução de testes sistêmicos.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
87
Na primeira etapa, busca-se o entendimento do negócio, o que pode ser feito por
meio de estudos e pesquisas sobre o assunto e consultas aos especialistas no negócio. Na
segunda etapa, define-se a arquitetura considerando o SGRN como uma quarta camada
da solução. Na terceira etapa, criam-se as RNs respeitando as suas principais
características e o formato de suas sentenças. E, por fim, na quarta etapa executam-se os
testes sistêmicos para validação do sistema construído com as RNs.
CONDIÇÕES AÇÃO
Tipo da ligação Utilizou senha Aprovada pelo Estratégia de
funcionário cobrança
Particular Não Não Unidade de
estrutura
Particular Não Sim Funcionário
Particular Sim Funcionário
Serviço Sim Funcionário
Serviço Não Unidade de
estrutura
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
88
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
89
Os registros utilizados como entrada para a execução das RNs são denominados fatos.
Uma aplicação, em linguagem Java, executa a extração, a transformação e a carga dos
registros da base de dados do sistema GRT para uma base de fatos.
A definição das RNs é feita em tabelas de decisão e podem ser armazenadas em
planilhas eletrônicas. Devem ser criadas tantas RNs quanto forem os distintos fatos a
serem tratados no SGRN.
As RNs são identificadas automaticamente por meio da DRL quando são
armazenadas em planilhas. A ferramenta Drools JBoss Rules obtém os fatos e identifica
as respectivas RNs, armazenando-as em uma base de dados denominada RNs
identificadas.
Uma segunda aplicação, em linguagem Java, obtém as RNs identificadas, executa
as respectivas ações e armazena ou atualiza os resultados na base de dados do sistema
GRT ou na base de fatos, conforme determinar a ação.
Uma representação gráfica da arquitetura do sistema GRT utilizando um SGRN é
apresentada na Figura 4.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
90
5. Resultados
O sistema foi migrado, em um período de dois meses, para uma nova arquitetura
contendo um SGRN. As 8.248 linhas existentes de código-fonte foram transformadas em
38 RNs, constituídas de 12 condições e 4 ações para atender os distintos tratamentos do
GRT — cobrança por funcionário, rateio de produto, rateio de tronco e centro de custo
prioritário.
As condições identificadas foram — possui empresa prioritária, possui centro de
custo, possui DDR, cobrar particular, rateio de tronco, tipo de item, tipo de ligação,
utilizou senha, aprovada, é chamada, é tronco e classe do produto.
As ações definidas foram — fórmula, estratégia, alterar para não consolidado e
regra. Os objetivos dessas ações foram, respectivamente, definir os valores a serem
persistidos; definir como persistir os valores; possibilitar um fato ser processado por duas
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
91
ou mais RNs, conforme citado no item 4.3; e determinar um identificador único para
cada RN. As ações foram implementadas em linguagem Java.
Na Figura 5 é apresentada uma tabela de decisão de RNs construídas para a
cobrança das ligações telefônicas por funcionário. Para simplificar a ilustração, são
exibidas apenas três condições e duas ações.
Nas linhas 2 a 5, RuleSet identifica o pacote onde serão agrupadas as RNs;
Sequential indica se a forma de analisar as RNs é sequencial; Import define a lista de
classes Java a serem importadas; e Notes é utilizado para comentários.
Na linha 7, é apresentada a identificação da tabela de decisão; e na linha 8, cada
Condition define uma condição e Action indica uma ação a ser executada.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
92
6. Conclusão
Um SGRN aplicado a um sistema GRT demonstrou ser uma técnica eficiente para
agilizar as atualizações no sistema, tanto na definição de novos requisitos de negócio
como na implementação do código-fonte, gerando rapidez na solução e na redução de
custos, além de facilitar a definição dos requisitos de negócio e gerar melhor
entendimento entre técnicos da área de TI e especialistas no negócio.
Os seguintes itens são recomendados para a utilização da técnica SGRN:
Na criação das RNs:
o Todos os fatos devem ser satisfeitos por exclusivamente uma das RNs. Se
existir um fato sendo atendido por mais de uma RN, ocorrerá um conflito,
causando um erro no sistema.
o Cada diferente tipo de fato deve ser identificado por uma única RN.
Se for preciso executar um fato duas ou mais vezes, deve-se utilizar o recurso de
criar uma ação para alterar um ou mais atributos de um fato.
O acesso à tabela de decisão deve ser feito de forma criteriosa, no menor número
de vezes possível, para evitar problemas de desempenho, sobretudo se a base de
fatos for volumosa.
7. Trabalhos futuros
O potencial de aplicações das técnicas de RNs e SGRN é muito vasto e conforme sugere
a literatura, pode ser aplicado em diversos domínios do conhecimento.
Vários outros trabalhos podem ser desenvolvidos para um melhor entendimento e
aplicação dessas técnicas, entre eles pode-se destacar:
Utilização da ferramenta Drools JBoss Rules integrada ao processo jBPM (Java
Business Process Management) de forma a criar um ambiente unificado
integrando a combinação de paradigmas de regras, processos e eventos na lógica
de negócio da aplicação. O jBPM é um processo que permite modelar os
objetivos do negócio, por meio de um workflow, descrevendo os passos a serem
executados e em que ordem para alcançar um determinado objetivo [JBPM
2011]. Enquanto as regras de negócio são especificadas por meio da ferramenta
Drools JBoss Rules, os processos e eventos são especificados por meio do jBPM.
Estudo de metodologias para se empregar nas técnicas RNs e SGRN.
Desenvolvimento de um aplicativo para transformar a planilha em outras
linguagens de programação diferentes da DRL utilizada nesse trabalho, por
exemplo: Java.
Estudo comparativo das ferramentas de RNs e SGRN existentes no mercado.
Aplicação em outros SIs, tais como: Billing de telecom ou energia elétrica tendo
os seus processos de entrada de dados, faturamento, arrecadação e cobrança
baseados em RNs; detecção de fraudes; e controle de fluxo de tráfego utilizando
RNs para melhor gerenciar horários de pico.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
93
Referências
Alvarenga, G. G. (2007) Uma Abordagem para Tratamento de Regras de Negócio
em Sistemas de Informação. Goiânia. 149 p. Dissertação (Mestrado em Ciência da
Computação) – Universidade Federal de Goiás (Instituto de Informática), Goiânia, 27
de julho de 2007.
Azevedo, D. e Campos, R. (2003). Sistematização do Levantamento de Requisitos
em Processos de Desenvolvimento de Software a Partir de uma Arquitetura de
Modelagem de Negócios. Disponível em
<http://www.abepro.org.br/biblioteca/ENEGEP2003_TR0905_1093.pdf>. Acesso
em: 15 ago. 2011.
Bali, M. (2009) Drools JBoss Rules 5.0 Developer's Guide. Birmingham: Packt
Publishing. 320 p.
BPM-Focus. (2006) Business Rules are from Mars & Processes from Venus.
Disponível em
<http://www.waria.com/Documents/Rules_are_from_Mars_&_Processes_from_Venu
s.pdf>. Acesso em: 16 ago. 2011.
Browne, Paul. (2009) JBoss Drools Business Rules. Birmingham: Packt Publishing. 304
p.
Centro de Pesquisa e Desenvolvimento em Telecomunicações (CPqD). (2010) Gestão
de Recursos de Telecomunicações. Disponível em
<http://gestaodetelecom.cpqd.com.br/>. Acesso em: 20 out. 2010.
Debevoise, Tom. (2005) Business Process Management with a Business Rules
Approach. Roanoke, Virginia 24019: Business Knowledge Architects. 224 p.
Drools. (2010) Drools Documentation. Disponível em
<http://downloads.jboss.com/drools/docs/4.0.7.19894.GA/html_single/index.html#d0
e2995>. Acesso em: 20 out. 2010.
Fischer, Layna. (2010) BPM and Workflow Handbook. Lighthouse Point FL 33064
USA: Future Strategies. 284 p.
Gottesdiener, E. (1997) Business Rule Show Power, Promise. Application
Development Trends, v. 4, n. 3, apud Dallavalle, S. I. e Cazarini, E. W. (2010)
Regras do Negócio, um Fator Chave de Sucesso no Processo de Desenvolvimento de
Sistemas de Informação. Disponível em
<http://www.abepro.org.br/biblioteca/ENEGEP2000_E0237.PDF>. Acesso em: 08
jun. 2011.
Jacobson, I., Booch, G. e Rumbaugh, J. (1998) The Unified Software Development
Process. Reading, Massachusetts 01867: Addison-Wesley. 463 p.
JBPM. (2011) jBPM. Disponível em <http://www.jboss.org/jbpm>. Acesso em: 15 ago.
2011.
Lin, B. e Zhang, Y. (2007) The Management and Validation of Business Rules in
Telecom Operator's Settlement and Apportion System. In: 8th ACIS International
Conference on Software Engineering, Artifical Intelligence, Networking, and
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
94
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
95
1. Introdução
Na sociedade contemporânea a informação assume um valor estratégico e as
organizações focam na gestão da informação, utilizando as tecnologias, ferramentas e
técnicas mais avançadas para obter, selecionar, mapear, organizar e disseminar a
informação. Por isso, os sistemas de informação e de banco de dados atrelados aos
rápidos avanços tecnológicos e as exigências competitivas do mercado tornam-se
indispensáveis nas atividades das organizações.
As bibliotecas são organizações que tem a informação como foco de suas
atividades e possuem um importante papel dentro das universidades. Na biblioteca
universitária a disseminação da informação contribui para a produção do conhecimento
no meio acadêmico, incentivando o uso adequado das informações e dos conhecimentos
e minimizando os esforços dos usuários (DIAS, 2005).
A disseminação da informação é um importante veículo de comunicação entre a
biblioteca e seus usuários, que têm necessidades informacionais distintas de acordo com
o perfil e área de atuação. É papel da biblioteca fornecer ao seu usuário o produto
informacional que supra a suas necessidades específicas, quer seja para estudo, para
pesquisa ou para a tomada de decisão (TARAPANOFF; ARAÚJO JÚNIOR;
CORMIER, 2000).
As tecnologias de informação são aliadas na disponibilização dos serviços de
informação. Os usuários necessitam obter informações mais selecionadas em menor
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
96
tempo e para atendê-los com maior agilidade e eficiência as bibliotecas precisam utilizar
as tecnologias disponíveis, tanto para a divulgação dos serviços oferecidos como para
disponibilização de informações de acordo com o interesse dos seus usuários.
Ainda com o intuito de agregar valor na disseminação das informações sobre as
novas aquisições de uma biblioteca universitária foram utilizadas tecnologias como a
mineração de dados, em especial a técnica de regras de associação. Tal técnica é
empregada para detectar informações de correlações ou tendências entre dados de
transações em bases de dados, de modo que possam ser úteis na disponibilização de
serviços de informação.
O principal objetivo neste trabalho foi promover a disseminação de informações
referentes às novas aquisições de livros em uma biblioteca universitária. Em geral as
bibliotecas adotam padrões internacionais de catalogação e classificação para os
materiais bibliográficos, como por exemplo, a classificação Decimal de Dewey (CDD)
que divide o conhecimento em áreas onde cada assunto é representado por um número
que é atribuído as obras de acordo com o assunto destas.
O sistema proposto permite enviar periodicamente informações de livros para os
usuários a partir de um perfil previamente definido com áreas de interesse, incluindo
sugestões de livros de outras áreas, detectadas pelo uso das regras de associação, que
também possam interessar.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
97
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
98
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
99
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
100
Sendo assim, seja uma base de dados de transações qualquer, onde os itens são
algumas áreas (Quadro 1), deseja-se encontrar itens frequentes para extrair regras, cujo
valor do suporte mínimo deve ser de 50% ou mais, (contador do suporte maior ou igual
a 3), e a confiança mínima da regra 70% ou superior.
Quadro 1. Exemplo de uma base de dados com transações
TID Itens
1 Administração, Contabilidade
2 Direito, Administração, Contabilidade
3 Administração, Economia, Direito
4 Administração, Contabilidade
5 Direito, Ciência política
Com base nos conjuntos de itens frequentes gerados, são extraídas então as
regras de associação que possuem relação com outros itens e que satisfaçam a confiança
mínima definida para o problema em questão, de acordo com o Quadro 3.
Quadro 3. Exemplo da extração de regras de associação com base no algoritmo
Apriori.
Das duas regras de associação geradas, podemos verificar que com relação à
base de dados mencionada, a primeira regra mostra que 75% das transações onde há
Administração, encontramos Contabilidade. Já na outra regra, o nível da confiança é
ainda maior, pois 100% das transações contendo Contabilidade também há
Administração.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
101
3. Desenvolvimento do Sistema
O sistema proposto compreende em um portal disponibilizado na internet, desenvolvido
em linguagem de programação PHP com HTML e CSS, hospedado em um servidor
Apache. E ainda um módulo gerencial para promover a disseminação das informações
aos usuários, desenvolvido em ambiente de programação Delphi, e alocado em um
servidor com plataforma Windows Server. O gerenciador de banco de dados utilizado foi
o Oracle 10g e PL/SQL para criação de funções auxiliares do banco.
4. Implementações e Resultados
Para o usuário acessar ou configurar seu perfil no portal, deve-se efetuar o login com
seu nome de usuário e sua senha. Ao se autenticar é apresentado ao usuário o seu perfil,
no qual ele irá selecionar as suas preferências. No topo da página são mostradas
algumas opções, como por exemplo, alteração do e-mail, menu de ajuda ou sair da
página. No centro da página encontram-se as áreas ou assuntos de interesse,
disponibilizadas em um total de cem áreas, na qual o usuário pode optar selecionando
cada uma delas. A Figura 2 apresenta parte da página principal do perfil do usuário.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
102
Para gerar as sugestões foi feita uma adaptação de Apriori no caso específico da
biblioteca. Enquanto Apriori encontra primeiramente os conjuntos de itens frequentes na
base de transações e posteriormente gera as regras a partir dos itens freqüentes, neste
trabalho, foi necessário encontrar as áreas correlatas a partir de cada área disponibilizada
no perfil do usuário. Assim, as áreas do perfil foram tratadas como itens frequentes e
consideradas antecedentes da regra.
Depois de calculado o suporte da área que antecede a regra, são encontradas as
áreas correlatas, os consequentes da regra, que satisfazem o suporte de confiança
mínimo definido previamente pelo administrador. Devido à grande quantidade de áreas
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
103
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
104
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
105
5. Conclusão
Gerenciar a informação em uma biblioteca universitária, especificamente a
disseminação da informação sobre novas aquisições do acervo bibliográfico, mostrou-se
importante para a criação de um canal de comunicação eficaz com seus usuários,
possibilitando a disseminação de informações sobre o acervo diretamente para o e-mail
deles, minimizando tempo gasto com buscas e maximizando o uso dos recursos
tecnológicos.
A utilização da tecnologia de mineração de dados para extração de informações
em base de dados, especificamente da técnica de regra de associação, foi útil também
como ferramenta gerencial, pois permitiu encontrar correlações entre algumas áreas que
ainda eram desconhecidas e em outros casos possibilitou constatar associações que se
acreditava existir.
O emprego das regras de associação para o desenvolvimento do sistema
possibilitou prever possíveis necessidades de informação ao verificar que quem
empresta obras de uma área também empresta de outra determinada área. Isto permitiu
criar um sistema mais elaborado que além de enviar por e-mail as informações de
interesse do usuário, conforme a seleção feita previamente por este, também envia
informações de obras que podem interessar a estes usuários, detectadas pelo uso das
regras de associação.
Entretanto, foram encontradas algumas limitações durante o desenvolvimento do
sistema, como por exemplo, a quantidade restrita de áreas disponível na interface web
para o usuário, áreas estas que já estavam predefinidas pela biblioteca como sendo as
áreas mais gerais da CDD relacionadas aos cursos da universidade, e desconsiderando as
mais específicas.
Por fim, o sistema proposto irá proporcionar que a biblioteca disponibilize um
serviço de disseminação da informação mais condizente com as necessidades dos
usuários. E o usuário se beneficia com a disponibilização do serviço, pois terá um
instrumento de atualização na sua área de atuação.
Referências
AGRAWAL, Rakesh et al. Fast discovery of association rules. In: FAYYAD, Usama M.
et al. Advances in knowledge discovery and data mining. Menlo Park: AAAI:
MIT, 1996. p. 307-328.
CORTES, Márcia Della Flora; LOPES, Marilisa Leite. As bibliotecas universitárias
federais brasileiras e a acessibilidade das informações em seus websites. Revista
ACB: Biblioteconomia em Santa Catarina, Florianópolis, v. 13, n.1, p.117-129,
2008. Disponível em:
<http://revista.acbsc.org.br/index.php/racb/article/viewArticle/552>. Acesso em: 01
jun. 2010.
DIAS, Simone Lopes. A disseminação da informação mediada por novas tecnologias
e a educação do usuário na Biblioteca Universitária. 2005. 138 f. Dissertação
(Mestrado em Ciência da Informação) – Faculdade de Filosofia e Ciências,
Universidade Estadual Paulista, Marília, 2005. Disponível em:
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
106
<http://polo1.marilia.unesp.br/Home/Pos-
Graduacao/CienciadaInformacao/Dissertacoes/dias_sl_me_mar.pdf>. Acesso em 01
jun. 2010.
FAYYAD, Usama M.; PIATETSKY-SHAPIRO, Gregory; SMYTH, Padhraic. From
data mining to knowledge discovery: an overview. In: FAYYAD, Usama M. et al.
Advances in knowledge discovery and data mining. Menlo Park: AAAI: MIT,
1996. p. 1-34.
FERAUD, Genevière. Um século de gestão da informação. In: DAVENPORT, Thomas
H.; MARCHAND, Donald A.; DICKSON, TIM. Dominando a gestão da
informação. Porto Alegre: Bookman, 2004. p. 39-44.
HAN, Jiawei; KAMBER, Micheline. Data Mining: concepts and techniques. 2nd ed.
Amsterdan: Elsevier, 2006.
LUCAS, Elaine R. de Oliveira; SOUZA, Nicole Amboni de. Disseminação seletiva da
informação em Bibliotecas Universitárias sob o prisma do Customer Relationship
Managment. Informação & Informação, Londrina, v. 12, n. 1, p. 1- 17, 2007.
Disponível em:
<http://www.uel.br/revistas/uel/index.php/informacao/article/viewArticle/1745>.
Acesso em: 01 jun. 2010.
MICHAELIS: moderno dicionário da língua portuguesa. 4. ed. São Paulo :
Melhoramentos, 1998.
NEVES, João Manuel Poças Marques das. Ambiente de pós-processamento para
regras de associação. 2002. 118 f. Dissertação (Mestrado em Análise de Dados e
Sistemas de Apoio à Decisão) - Faculdade de Economia, Universidade do Porto,
Porto, 2002. Disponível em:
<http://www.fep.up.pt/cursos/mestrados/madsad/teses/tese_mestrado_joao_pocas_po
s_processamento_ra.pdf>. Acesso em: 30 maio 2010.
SILVA, Terezinha Elisabeth da; TOMAÉL, Maria Inês. A gestão da informação nas
organizações. Informação e Informação, Londrina, v. 12, n. 2, p. 1-2, jul./dez.
2007. Disponível em:
<http://www.uel.br/revistas/uel/index.php/informacao/article/viewFile/1806/1540>.
Acesso em: 01 jun. 2010.
SOUTO, Leonardo Fernandes; PORTELA, Patrícia de Oliveira. O SDI como
instrumento de educação continuada: a responsabilidade das universidades no
treinamento dos usuários. Revista da ACB: Biblioteconomia em Santa Catarina,
Florianópolis, v. 8/9, p. 123-133, 2003/2004. Disponível em: <
http://revista.acbsc.org.br/index.php/racb/article/view/411>. Acesso em 05 mar.
2010.
STAREC, Claudio. A dinâmica da informação: a gestão estratégica da informação para
a tomada de decisão nas organizações. In: STAREC, Claudio; GOMES, Elisabeth;
BEZERRA, Jorge. Gestão estratégica da informação e inteligência competitiva.
São Paulo: Saraíva, 2005. p. 47-64.
TAN, Pang-Ning; STEINBACH, Michael; KUMAR, Vipin. Introdução ao data
mining: mineração de dados. Rio de Janeiro: Ciência Moderna, 2009.
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
107
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
108
Índice de Autores
Adriana Ariati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Adriana S. Zanini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Alessandro A. Ostetto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
André Lara Temple de Antonio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Anita M.R.Fernandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Beatriz T. Borsoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Carlos Alberto Murari Pinheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Celly de Siqueira Martins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Cláudio Ratke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Clavison M. Zapelini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Eliane M. de B. Fávero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Eros Comunello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Felipe S.Vieira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Fernando dos Santos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Leonardo Veronese Soletti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Luiz Eduardo Guarino Vasconcelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Maciel F. da Silva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Marcel Hugo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Mauricio Amorim da Silva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Nelson Paiva Oliveira Leite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Otávio Augusto Salgado Carpinteiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Rafael Paz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Renato Silva Belazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Rúbia E. O. Schultz Ascari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Sidnei Renato Silveira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Sindo Vasquez Dias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Vandir Fernando Rezende . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
_______________________________________________
Grahl, E. A; Reis, D. S. (Eds.). Anais do XX Seminário de
Computação, Blumenau, 22 a 23 de agosto de 2011.
XX SEMINCO - SEMINÁRIO DE COMPUTAÇÃO
XX
SEMINCO
XBr
yrj = mi
yrj >n0
{ Xy {
Bi
ji
SEMINÁRIO DE COMPUTAÇÃO
APOIO
FURB CCEN CENTRO DE COMUNICAÇÃO E MARKETING
PROJETO ACREDITO SOCIEDADE BRASILEIRA DE COMPUTAÇÃO