Você está na página 1de 9

Oportunidades de Desenvolvimento e Pesquisa sobre

Projeto de Bancos de Dados usando IDEF1X


Vincius Medina KERN
Professor da UNIVALI/Campus de So Jos/UNITEC-Grupo de Pesquisa em Tecnologia e Sistemas
E-mail: kern@sj.univali.rct-sc.br

Mrcio Umberto BRAGAGLIA


Mestrando do PPGEP-Programa de Ps-Graduao em Engenharia de Produo
E-mail: marciob@floripa.com.br

Resumo
IDEF1X uma linguagem e mtodo para modelagem da informao publicada como padro
norte-americano. Um novo processo de especificao da linguagem IDEF1X, usando a
abordagem objeto-orientada, est em curso. Este artigo sumaria as principais diferenas entre a
verso original de IDEF1X e a nova verso. Resultados de um esforo de desenvolvimento de
ferramentas grficas para projeto de bancos de dados usando IDEF1X so apresentados.
Questes de pesquisa surgidas a partir deste esforo de desenvolvimento so aventadas e
discutidas.
Palavras-chaves: IDEF1X, modelagem da informao, bancos de dados orientados a objeto

Abstract
IDEF1X is an information modeling language and method published as American standard.
This paper summarizes progresses in IDEF1X developed by a new specification team, using the
object-oriented approach, in comparison to the original version of IDEF1X. Results from a
development initiative on graphic tools for IDEF1X design are outlined. Research issues that
arise from this development initiative are discussed.
Keywords: IDEF1X, information modeling, object databases

INTRODUO
A fora area norte-americana empreendeu, em meados da dcada de 1970, um esforo para
aumentar a produtividade da indstria de manufatura atravs do uso sistemtico de tecnologia
computacional. Durante a realizao deste trabalho, conhecido como programa ICAM
(Integrated Computer Aided Manufacturing), reconheceu-se a necessidade da modelagem da
informao para a construo de esquemas de bancos de dados.
O programa ICAM desenvolveu uma srie de tcnicas conhecidas como Mtodos IDEF,
que incluem (IEEE 1998):

IDEF0, dedicado modelagem dos processos ou atividades em um ambiente.


IDEF1, dedicado modelagem da estrutura e semntica da informao em um ambiente.
IDEF2, dedicado modelagem das caractersticas de comportamento dinmico, variante no
tempo, de um ambiente.

KERN, Vincius Medina, BRAGAGLIA, Mrcio Umberto. Oportunidades de Desenvolvimento e Pesquisa sobre Projeto de Bancos
de Dados usando IDEF1X. Revista Alcance ano VI no 3, 50-57. Itaja: Editora da UNIVALI, Novembro de 1999.

Dentre os trs mtodos, IDEF1 (Integration Definition for Information Modeling) o


que alcanou maior disseminao. IDEF2 foi descontinuado e IDEF0 ainda usado em
indstrias e instituies governamentais, embora no seja a tcnica mais popular para
modelagem funcional. IDEF1 foi publicado em 1981, tendo como base o modelo relacional
(Codd 1970) e o modelo Entidade-Relacionamento (Chen 1976).
O governo norte-americano publicou o padro IDEF1X (IDEF1 Extended) baseado em
IDEF1 e em outra especificao conhecida como LDDT (Logical Database Design Technique)
(Brown 1982). Alm de definir a sintaxe e semntica da linguagem, o padro IDEF1X inclui
uma definio da linguagem usando lgica de primeira ordem e a especificao de um mtodo
de modelagem.
As principais construes da linguagem IDEF1X so entidades, relacionamentos e
atributos. Os relacionamentos so implementados segundo a abordagem do modelo relacional,
atravs da migrao de chaves. IDEF1X permite modelar as caractersticas (atributos) das
entidades, mas no prev a modelagem do comportamento (mtodos) associado a entidades.
A orientao a objetos, por outro lado, uma tecnologia que vem recebendo ateno
crescente, tendo como caracterstica a concepo de objetos, instncias de classes (da mesma
forma que ocorrncias so instncias de entidades) que encapsulam atributos e mtodos.
Relacionamentos, segundo esta abordagem, so estabelecidos atravs de ponteiros, sem
migrao de chaves (que funcionam, no modelo relacional, como ponteiros lgicos).
Por causa destes avanos, e pela demanda crescente pela aplicao da tecnologia de
orientao a objetos em bancos de dados, um novo esforo de padronizao foi lanado, com o
objetivo de produzir uma especificao de IDEF1X adequada modelagem de bancos de dados
orientados a objeto (BDOO). Esta nova especificao, conhecida como IDEFobject (IEEE
1998), debatida a seguir. Na seqncia, relatada a experincia de desenvolvimento da
interface grfica IDEFClasses para projeto de BDOO, e so discutidas questes de pesquisa
surgidas a partir deste esforo de desenvolvimento.

A LINGUAGEM IDEFOBJECT
Uma nova especificao IDEF1X est em desenvolvimento pelo IEEE (The Institute of
Electrical and Electronics Engineers). A nova especificao conhecida como IDEFobject ou
IDEF1X97, para diferenciar da especificao original, tambm conhecida como IDEF1X93.
A figura 1 ilustra as mudanas operadas sobre a verso original da linguagem para
produzir a nova verso. Algumas das construes sintticas de IDEF1X93 continuam sendo
importantes em IDEFobject, tais como: classe (entidade), relacionamento e atributo. Outras
construes so desnecessrias, como chave primria e relacionamento identificador.

Figura 1 - Correspondncia de conceitos nas duas verses de IDEF1X (IEEE 1998)

Chaves primrias so desnecessrias porque o conceito de identidade de objeto exclui a


necessidade de haver atributos chaves cujo valor identifica uma ocorrncia (objeto). Os
relacionamentos so estabelecidos atravs de ponteiros; no dependem de migrao de chaves.
Portanto, os relacionamentos identificadores (aqueles que incluem os atributos chaves da
entidade genitora na chave da entidade filha) so desnecessrios, tambm.
Embora desnecessrias, as construes citadas foram mantidas como parte da
linguagem IDEFobject, para manter a compatibilidade retroativa. possvel construir modelos
completamente objeto-orientados, bem como modelos que mantm caractersticas da verso
relacional. Esta possibilidade visa a garantir a transio gradual de uma abordagem para a
outra.
As principais diferenas entre a abordagem objeto-orientada de IDEFobject e a
abordagem baseada em dados e processos de IDEF1X93 so:

As classes IDEFobject encapsulam atributos e mtodos, enquanto as entidades IDEF1X93


descrevem apenas atributos.
No h processo independente em IDEFobject. Todo processo disparado por um mtodo
de uma classe e manipula atributos de um objeto da mesma classe. Em IDEF1X93, os
processos esto isolados e podem acessar quaisquer atributos.
No existe o conceito de identidade em IDEF1X93. preciso que haja um ou mais atributos
cujo valor identifica uma ocorrncia. Em IDEFobject, dois objetos podem ter os mesmos
valores de atributos. A identidade intrnseca a cada objeto.
As principais construes de IDEFobject so (IEEE 1998):

Classe: uma abstrao sobre o conhecimento (atributos) e comportamento (mtodo) de um


conjunto de objetos de mesma natureza. Uma classe pode se de estado, quando representa
objetos mutveis, ou de valor, quando representa objetos que so puramente valores,
imutveis. Classes de valor tm significado semelhante ao de domnios em IDEF1X93.
Generalizao: uma abstrao que estabelece a herana entre subclasses e uma superclasse.
Relacionamento: uma conexo entre duas classes de estado.
Responsabilidade: o conjunto de caractersticas representadas pelos atributos, mtodos e
regras de cada objeto de uma classe.
Requisio: uma mensagem enviada a partir de um objeto emissor para um objeto receptor.
Realizao: uma sentena lgica que estabelece as condies necessrias e suficientes para
que uma responsabilidade seja atendida. A realizao de uma responsabilidade especifica
como esta atingida.
Construes de infra-estrutura: elementos de suporte organizao e documentao: vises,
nveis, ambientes, glossrios, modelos de informaes.

DESENVOLVIMENTO DE FERRAMENTAS GRFICAS


O documento original de IDEF1X (NIST 1993) previa a implementao de ferramentas grficas
para o suporte modelagem da informao. As ferramentas comerciais existentes suportam, em
parte, a linguagem IDEF1X original. ERwin, a interface grfica mais difundida, no suporta a
documentao da equipe de projeto, da lista indexada de material-fonte, e da declarao de
propsito e escopo, documentos fundamentais para a interpretao de um modelo da
informao.
Na UNIVALI, o desenvolvimento de ferramentas grficas para modelagem da
informao com suporte completo a IDEF1X tem sido tema de alguns trabalhos de concluso do
Curso de Cincia da Computao. Scheidt (1998) abordou o problema de oferecer ao
modelador uma interface grfica de apoio ao projeto usando IDEF1X em sua verso original
(NIST 1993). Bragaglia (1999) tratou do projeto grfico de bancos de dados objeto-orientados,
conforme a nova especificao de IDEF1X (IEEE 1998).
O primeiro trabalho teve como plataforma de desenvolvimento o ambiente Delphi, que
usa a linguagem de programao Object Pascal. Delphi bastante usado para a construo de

aplicaes de processamento de dados, mas revelou-se pouco apropriada nas etapas mais
avanadas deste projeto, pois a construo de uma ferramenta grfica requer funcionalidades
que esto muito alm daquelas providas (ainda que se procedesse a uma busca, aquisio e
experimentao de componentes dedicados manipulao grfica).
O segundo trabalho foi implementado usando Visual C++. O desenvolvimento em C++
demandou esforo maior na etapa inicial, principalmente porque era objetivo criar uma
ferramenta portvel para outras plataformas de software e hardware. Para tanto, os programas
fontes foram codificados em ANSI C++. O software IDEFClasses (Bragaglia 1999), ilustrado
na figura 2, o principal resultado deste trabalho, que implementa uma interface grfica de
apoio modelagem da informao com IDEFobject.

Figura 2 - Janela de IDEFClasses, interface para modelagem IDEFobject


A verso atual (Beta 6, de Junho de 1999) de IDEFClasses tem como caractersticas um
tamanho de arquivo executvel e um tempo de resposta aproximadamente iguais a um dcimo
daqueles relativos s primeiras verses escritas em Delphi. IDEFClasses permite ao modelador
de banco de dados executar as seguintes tarefas:

Desenhar classes e suas responsabilidades (atributos, mtodos, relacionamentos), sem limite


de tamanho do modelo, mantendo a sintaxe da linguagem IDEFobject.
Especificar e editar detalhes acerca das classes e responsabilidades.
Manipular graficamente as construes do modelo.
Incluir notas e referncias a notas, bem como comentrios na forma de caixas de texto.
Gravar o modelo e imprimir cpia do diagrama.
Especificar um sistema de gerncia de banco de dados e um nome de usurio para a gerao
de definio de dados a partir do modelo.
Gerar um script SQL com a definio de dados para um modelo e criar uma conexo com o
sistema de gerncia, implementando o catlogo do sistema.

Alm das funcionalidades j disponveis, uma srie de desenvolvimentos futuros vir a


complementar a interface. Em especial, o modelador deve ser capaz de realizar as seguintes
tarefas com auxlio de IDEFClasses:

1. Documentar a Fase 0 (iniciao de projeto), incluindo a declarao de propsito e escopo, a


definio da equipe de projeto, e a organizao da lista indexada de material-fonte.
2. Especificar as definies relativas s fases 1, 2, 3 e 4 (entidades, relacionamentos, chaves e
atributos).
3. Projetar classes e relacionamentos compatveis com a especificao relacional de IDEF1X,
utilizando chaves e migrao de chaves.
4. Representar vises e reas de domnio em um modelo.
5. Reorganizar o leiaute de um modelo atravs de uma funo de redesenho automtico.
6. Produzir um modelo da informao a partir da engenharia reversa de uma definio de
banco de dados existente.
Em adio s atividades de desenvolvimento para o suporte completo linguagem e
mtodo IDEF1X, IDEFClasses enseja oportunidades para a conduo de pesquisa inovadora
envolvendo vrias disciplinas, especialmente modelagem da informao, teoria de grafos e
processamento de linguagem natural. Alguns tpicos de pesquisa so discutidos a seguir.

TPICOS DE PESQUISA
Vrios autores (Chen et al. 1998, Kusiak et al. 1997) discutem direes de pesquisa promissoras
na rea de modelagem da informao. A experincia da utilizao de IDEF1X como linguagem
e tcnica de modelagem da informao e a construo de IDEFClasses oportunizaram o
surgimento de algumas perguntas de pesquisa. Especificamente em relao a IDEFClasses, as
seguintes questes devem fazer parte dos futuros esforos de investigao:
1. Como oferecer suporte aprendizagem da linguagem e mtodo IDEF1X a peritos em rea
de interesse de modelagem (isto , aqueles que revisam e aceitam um modelo e, portanto,
precisam interpret-lo) e modeladores novatos?
2. Quais as tcnicas melhor adequadas tarefa de redesenho de um modelo, de modo que seja
possvel oferecer em tempo adequado equipe de projeto um diagrama IDEF1X cujo
leiaute facilita a leitura?
3. Como detectar a existncia de relacionamentos de caminhos duais em um modelo e
conduzir a ao do modelador para detalhar as regras do negcio associadas?
A primeira pergunta diz respeito correspondncia na forma de expressar regras de
negcios em IDEF1X e em linguagem natural. Por exemplo, algumas das regras do negcio
que podem ser vertidas para o portugus a partir do modelo na figura 3 so: um departamento
administra zero, um, ou vrios cursos; um curso no pode existir a menos que exista o
departamento que o administra; possvel que a administrao de um curso seja transferida de
um para outro departamento; etc. Como classificar estas regras? Como conduzir peritos na
aprendizagem da interpretao de modelos? Como orientar modeladores novatos de forma a
facilitar sua aprendizagem sobre as regras de negcio expressas em modelos IDEF1X?

Figura 3 - Caminhos duais e assero de caminhos em IDEF1X


A segunda pergunta de pesquisa corresponde ao item 5 listado entre os
desenvolvimentos futuros na seo anterior. A abordagem tradicional para o problema do
redesenho de um modelo da informao IDEF1X usa teoria de grafos, atribui nveis de
precedncia s entidades, e impe a regra entidade genitora ou genrica acima e/ou esquerda
da entidade filha ou categoria (o modelo da figura 3, por exemplo, atende a esta regra). Uma
inovao digna de investigao a abordagem do problema atravs de algoritmos genticos,
como proposto por Mangano (1994). Esta nova abordagem poderia ser comparada com a
tradicional quanto ao desempenho e eficcia para a obteno de redesenhos legveis.
O problema da deteco e projeto de relacionamentos de caminhos duais, objeto da
terceira pergunta, pode ser explicado com o apoio da figura 3, que ilustra a organizao de
currculos de cursos de graduao em uma universidade com organizao departamental, onde
cada curso tem um currculo composto por disciplinas oferecidas por vrios departamentos, e h
restries de precedncia de disciplinas. Pode-se observar que h, para a entidade Prrequisito, dois caminhos de relacionamentos especficos desde Curso, Disciplina e
Disc-Curso, e quatro caminhos desde Departamento.
Relacionamentos de caminhos duais podem ser iguais, diferentes, ou indeterminados,
conforme as ocorrncias especficas da entidade ancestral associadas a uma ocorrncia da
entidade descendente em questo sejam necessariamente iguais, diferentes, ou no haja qualquer
imposio. Por exemplo, na figura 3, uma ocorrncia de Pr-requisito deve estar
associada, necessariamente, a ocorrncias distintas de Disc-Curso, bem como a ocorrncias
distintas de Disciplina. Portanto, os caminhos duais so diferentes. J os caminhos duais
entre Pr-requisito e Curso so iguais, pois s faz sentido haver restrio de prrequisito entre disciplinas em um mesmo currculo de curso. Por outro lado, os caminhos duais
entre Pr-requisito e Departamento e entre Disc-Curso e Departamento so
indeterminados, pois um curso administrado por um departamento pode ter disciplinas
oferecidas pelo mesmo ou outros departamentos, sem restrio.
As regras de negcios envolvendo caminhos duais em IDEF1X so expressas usando
migrao de chaves e notas. No ltimo caso, diz-se que a nota enuncia uma assero de
caminho. No modelo da figura 3, os caminhos diferentes foram projetados usando migraes de
chaves distintas, o que foi expresso atravs da criao de diferentes nomes de papis para os
atributos chaves migrados (por exemplo, noDisc-ant e noDisc-post para o atributo-base
noDisc) e uma nota que registra que as chaves migradas devem, necessariamente, ter valores
diferentes em uma ocorrncia.
Os caminhos iguais na figura 3 foram implementados atravs da unificao dos dois
atributos chaves idCurso em Pr-requisito, de forma que no h como especificar cursos
diferentes em uma restrio de pr-requisito. Os caminhos indeterminados no necessitam de

qualquer anotao, pois representam a falta de restrio quanto aos caminhos duais. Nos casos
de caminhos duais nos quais a chave da entidade genitora migra at a chave da entidade
descendente, nomes de papis distintos (sem usar nota) resolvem o problema de permitir a
associao com ocorrncias distintas da entidade ancestral.
A soluo tradicional para a deteco de caminhos duais usa tcnicas da teoria de
grafos, concebendo o modelo da informao como um digrafo acclico (isto , um grafo dirigido
e sem ciclos, com a exceo de auto-relacionamentos opcionais um-para-vrios). Tambm
neste caso, no entanto, possvel abordar o problema utilizando algoritmos genticos, segundo
Mangano (1994), e comparar esta soluo com a tradicional.
Quanto forma de oferecer suporte ao projeto dos caminhos duais, IDEFClasses dever
interrogar o modelador sobre o carter igual, diferente ou indeterminado dos caminhos. Porm,
a forma de conduzir esta interao leva a outra questo que merece investigao: vlido
particionar o problema, reduzindo uma malha de caminhos duais a uma configurao mais
simples?
No exemplo da figura 3, vlido analisar apenas os caminhos duais entre DiscCurso e Pr-requisito, e entre Departamento e Disc-Curso? Esta questo
necessita de uma abordagem formal, usando Lgica. A alternativa proceder a um
detalhamento exaustivo dos caminhos duais para cada par de entidades no modelo, sendo que,
apenas na figura 3, h caminhos duais para cinco pares de entidades.

Trades
Um tipo peculiar de relacionamento de caminhos duais a estrutura conhecida como trade,
ilustrada na figura 4, onde um dos caminhos estabelecido por um relacionamento direto entre a
entidade ancestral e a descendente. Em alguns destes casos, o relacionamento direto
redundante e deve ser eliminado do modelo (figura 4 (a)), enquanto em outros o relacionamento
no pode ser eliminado sob risco de perda de informao. No exemplo da figura 4 (b), a
Filial onde est lotado um Funcionrio pode mudar, mas a Filial que emitiu
determinada Nota Fiscal nunca muda, nem o Funcionrio que imprimiu (processou) a
Nota Fiscal. Portanto, os caminhos so indeterminados.

Figura 4 - Trades com (a) e sem (b) relacionamento redundante


Modeladores novatos tm maior propenso para projetar relacionamentos redundantes
(NIST 1993). Uma ferramenta grfica de modelagem como IDEFClasses deve oferecer suporte
ao projeto de trades, de forma a facilitar o aprendizado e aumentar a produtividade do esforo
de modelagem.
Uma vez detectada uma trade, seu detalhamento deve levar em conta as dependncias
de identificador das entidades descendentes, e tambm o carter dinmico ou esttico (isto ,
mutvel ou imutvel) das ocorrncias dos relacionamentos envolvidos na trade, para determinar
se os caminhos so iguais, diferentes ou indeterminados.
A figura 5 representa uma trade genrica, com n entidades e relacionamentos
participantes. A tabela 1 determina como detalhar o projeto de trades para cada caso, em

funo dos tipos de relacionamentos identificador ou categorizao (casos em que a chave da


entidade filha ou categoria depende da chave da entidade pai ou genrica), ou no-identificador
(caso em que a chave da entidade filha ou categoria no inclui qualquer chave de entidade pai
ou genrica).
O esquema para a anlise e projeto de trades apresentado na tabela 1 foi obtido de
modo emproco. O resultado obtido, entretanto, no oferece uma soluo genrica para o
problema de projeto de caminhos duais, que continua sendo tema para investigao.

Figura 5 - Trade hipottica


Tabela 1 - Anlise e projeto de trades em IDEF1X
Anlise do tipo dos relacionamentos
R1
R2...Rn-1
Rn
Identificador
ou
categorizao
Identificador
ou
categorizao
Identificador
ou
categorizao
NoIdentificador
NoIdentificador
NoIdentificador

Todos
identificadores
ou categ.
Todos
identificadores
ou categ.
Pelo menos um
noidentificador
Todos
identificadores
ou categ.
Todos
identificadores
ou categ.
Pelo menos um
noidentificador

Identificador
ou categ.
Noidentificador
(No importa
o tipo)
Identificador
ou categ.
NoIdentificador
(No importa
o tipo)

Projeto dos caminhos duais ou eliminao do relacionamento direto


Caminhos iguais
Caminhos diferentes
Caminhos
indeterminados
Usar nomes de papis
Eliminar R1
Usar nomes de papis
distintos
distintos; Usar nota para
enunciar caminhos diferentes
Usar nomes de papis
Usar mesmo ou nenhum nome do Usar nomes de papis
distintos
papel; unificar chave da ancestral distintos; Usar nota para
enunciar caminhos diferentes
na chave da descendente
Usar nota para enunciar caminhos Usar nota para enunciar
Usar apenas as
iguais
caminhos diferentes
construes bsicas
de IDEF1X
Usar nomes de papis
Eliminar R1
Usar nomes de papis
distintos
distintos; Usar nota para
enunciar caminhos diferentes
Usar nomes de papis
Eliminar R1
Usar nomes de papis
distintos
distintos; Usar nota para
enunciar caminhos diferentes
Eliminar R1
Usar nota para enunciar
Usar apenas as
caminhos diferentes
construes bsicas
de IDEF1X

CONSIDERAES FINAIS
Este artigo discutiu brevemente a evoluo da linguagem IDEF1X para modelagem da
informao. O desenvolvimento de uma nova especificao baseada na orientao a objetos,
conhecida como IDEFobject, foi introduzido. As principais diferenas entre as verses
relacional e objeto-orientada de IDEF1X foram sumariadas.
O desenvolvimento de ferramentas grficas para modelagem da informao com
IDEF1X foi relatado, apresentando o estado atual e as oportunidades de desenvolvimento futuro
da interface IDEFClasses. Foram apresentados tpicos de pesquisa envolvendo a analogia entre
linguagem natural e IDEF1X no enunciado de regras de negcios, a comparao de tcnicas
alternativas para o redesenho de um modelo, e o projeto de caminhos duais. Resultados iniciais
sobre o projeto de caminhos duais, nos casos de trades, foram detalhados.

REFERNCIAS
M.U. Bragaglia. Software para Modelagem de Bancos de Dados Objeto-Orientados usando IDEFobject.
Trabalho de Concluso do Curso de Cincia da Computao. So Jos: UNIVALI, Junho de 1999.
R.G. Brown. Logical Database Design Techniques. Mountain View, CA: The Database Design Group, Inc., 1982.
P.P. Chen. The Entity-Relationship Model - Toward a Unified View of Data. ACM Transactions on Database
Systems 1 (1), pp. 9-36, 1976.

P.P. Chen, B. Thalheim & L.Y. Wong. Future Directions of Conceptual Modeling. In: Conceptual Modeling:
Current Issues and Future Directions. P.P. Chen et al. (eds.). Berlin: Springer-Verlag, Lecturing Notes in
Computer Sciences, No. 1565, 1998, pp. 294-308.
E.F. Codd. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM 13 (6),
1970, pp. 377-87.
IEEE (Institute of Electrical and Electronic Engineers) IDEF1X Standards Working Group. Standard for
Conceptual Modeling Language Syntax and Semantics for IDEF1X97 (IDEFobject). IEEE 1320.2 Standards
Committee, document P1320.2. Release Draft 0.91 May 1, 314 p., 1998.
A. Kusiak, T. Letsche & A. Zakarian. Data modelling with IDEF1x. International Journal of Computer Integrated
Manufacturing, vol.10, no.6, p. 470-86. Iowa City, USA, Nov.-Dec. 1997.
S. Mangano. Algorithms for Directed Graphs: A Unique Approach Using Genetic Algorithms. Dr. Dobbs
Journal, April 1994.
NIST (National Institute of Standards and Technology). Federal Information Processing Standards Publication
184. Integration Definition for Information Modeling (IDEF1X). Gaithersburg, MD (USA), December 1993.
L.S. Scheidt. Desenvolvimento de uma Ferramenta Grfica de Modelagem da Informao Baseada na
Metodologia IDEF1X. Trabalho de Concluso do Curso de Cincia da Computao. So Jos: UNIVALI,
Novembro de 1998.