| Através das redes
de Petri compactas é possível modelar os aspectos dinâmicos de um sistema
de informação.
A modelagem de um sistema de informação a ser
desenvolvido contempla três visões: a estática, a funcional e a dinâmica. A visão
estática é atendida pela modelagem de dados ou objetos, a visão funcional é atendida
pela modelagem das funções e fluxos de dados, e a visão dinâmica é atendida, em
muitas abordagens metodológicas, pela modelagem de estado dos objetos.
A modelagem de dados ou objetos descreve a
estrutura de entidades ou objetos do sistema, identificando as classes, os relacionamentos
entre as classes, os atributos e, em orientação a objetos, também as operações das
classes.
A modelagem funcional descreve as
transformações que os dados sofrem no interior do sistema. A notação gráfica mais
utilizada é o clássico diagrama de fluxo de dados.
A modelagem dinâmica descreve os aspectos
de controle do sistema, especificando em que momento e em que condições as transições
de estado dos objetos podem ocorrer. A notação gráfica mais utilizada é o Diagrama de
Transição de Estados,
O presente artigo mostra como aplicar as
redes de Petri compactas, descritas por Carlos A. Heuser em /HEU 90/, na modelagem
dinâmica de um sistema de informação em lugar dos clássicos diagramas de transição
de estados. As redes de Petri compactas são derivadas das redes de Petri elementares,
encontrando nestas a sua fundamentação teórica.
Redes de Petri elementares
Uma rede de Petri é um grafo que possui
dois tipos de nós. O primeiro, representado por um pequeno círculo, é denominado lugar
e serve como depósito dos tokens ou marcas. O segundo, representado por um retângulo, é
conhecido como conexão. Os arcos que ligam os nós do grafo são conhecidos como ramos.
Os ramos ligam lugares a conexões, nunca lugares a lugares ou conexões a conexões, A
figura 1 mostra uma rede de Petri elementar do tipo condição/evento, extraída de /HEU
90/, que modela um mercado de trabalho que, para efeito de simplificação, contém apenas
duas vagas (v1 e v2) e uma pessoa (p). A rede apresentada contém os lugares: v1 no
mercado, v2 no mercado, v1 livre, v2 livre, p detém v1, p detém v2, p livre e p no
mercado e as dez conexões c1 a c10. A conexão c1 ao ser efetivada provoca o surgimento
de um token ou marca nos lugares v1 no mercado e v1 livre. A efetivação de uma conexão
é chamada de alteração. A ocorrência de uma alteração afeta apenas os lugares
ligados à conexão, fazendo com que surjam e/ou desapareçam marcas destes lugares
conforme estejam indicando as setas existentes nos ramos. Para que uma alteração possa
ocorrer é necessário que a conexão esteja habilitada, isto é, que existam marcas
presentes em todos os seus lugares de entrada e que os seus lugares de saída estejam
vazios, isto é, as marcas estejam ausentes.
O conjunto de todos os lugares marcados
(aqueles que possuam uma marca presente) é chamado de marcação da rede. Cada marca
refere-se a um estado local do sistema modelado e a marcação representa o seu estado
global. Cada vez que ocorre uma alteração na rede esta passa a apresentar uma nova
marcação.
A fim de se compreender melhor o conceito
de habilitação, tome-se como exemplo a conexão c5 da figura 1 que representa a
ocupação da vaga v1 pela pessoa p. Esta conexão para ser efetivada necessita que as
seguintes condições de habilitação sejam verdadeiras:
a) exista uma marca no lugar p livre, isto
é, que a pessoa p esteja disponível;
b) exista uma marca no lugar v1 livre, isto
é, que a vaga v1 não esteja ocupada;
c) não exista marca no lugar p detém v1,
isto é, este lugar deve estar vazio:

A abordagem condição/evento
Uma forma de traduzir os conceitos formais das redes de Petri elementares, visando
adequá-las a tratar as peculiaridades de um sistema de informação, é através da
abordagem condição/evento. Conforme está em /HEU 90/ "dentro da interpretação
Condição/ Evento, cada uma das marcas representa uma condição no modelo; a presença
de uma marca na rede representa o vigorar da correspondente condição, enquanto que a
ausência representa o não vigorar da correspondente condição: cada alteração
definida pela rede é interpretada como sendo um evento da realidade modelada ... tomando
como exemplo o mesmo caso do mercado de trabalho, verifica-se que as alterações
representam os eventos do mercado de trabalho (Criar Vaga, Entrar no mercado, Fechar
contrato, Rescindir contrato, etc.) e as marcas existentes ou não nos lugares representam
condições do mercado (vaga livre, contrato em vigor, esc.)''. A tabela abaixo, extraída
de /HEU 90/, mostra a correspondência entre a terminologia usada nas redes elementares e
a terminologia dos modelos Condição/ Evento.
Rede Elementar
Interpretação C/E
marca
condição
presença da marca
vigorar de condição
ausência de marca
não vigorar de condição
marcação da rede
estado do modelo
alteração
evento
ocorrência de alteração ocorrência de evento
marca de entrada / saída condição de entrada / saída
Redes de Petri compactas
As redes compactas sob a abordagem condição/evento nada mais são que a consolidação
de várias redes elementares, Enquanto que nas redes elementares os lugares e as conexões
identificam explicitamente as entidades a que se referem, como pode ser visto na figura 1,
as redes compactas generalizam lugares e conexões. Apoiadas em uma linguagem de
anotação auxiliar, permitem referenciar em um mesmo lugar ou conexão todas as entidades
que são afetadas por um determinado evento modelado.
As redes elementares, embora mais simples, são impraticáveis para modelar sistemas de
informação. Neste tipo de sistema existem normalmente grandes quantidades de entidades
de uma mesma classe que são afetadas pelos mesmos eventos. As redes elementares
resultantes seriam enormes e proibitivas, como pode ser deduzido pelo exemplo do mercado
de trabalho modelado na figura 1 que, se em vez de tratar apenas duas entidades (v1, e v2)
da classe Vaga e uma entidade (p) da classe Pessoa, modelasse centenas de vagas e centenas
de pessoas. Entretanto, são as redes elementares que dão sustentação formal às redes
compactas. Qualquer rede compacta deve permitir que dela se derivem redes elementares. as
quais são denominadas de redes elementares subjacentes.
As redes compactas só são possíveis porque aproveitam os padrões repetidos,
resultantes dos eventos da realidade modelada. Por exemplo, o evento Rescindir contrato de
um sistema de mercado de trabalho, em tese, é equivalente para todas as pessoas
empregadas. Se, para cada empregado, este evento exigisse uma configuração diferente de
rede, a compactação da rede teria resultado nulo pois produziria uma rede em relação a
este evento de tamanho
semelhante à rede elementar subjacente, Contudo este tipo de personalização de um
evento é raro em sistemas de informação, o que possibilita que se empregue
satisfatoriamente a rede de Petri compacta para modelar os seus aspectos dinâmicos.
A figura 2, extraída de /HEU 90/, mostra uma rede compacta dentro da abordagem
condição/evento que modela a aplicação do mercado do trabalho para quaisquer
quantidades de vagas e pessoas que componham o universo do discurso. Como pode ser notado
pelos nomes atribuídos aos lugares e conexões, não se explicita mais quais vagas e
pessoas são tratadas pela rede. Isto fica implicitamente indicado pelas variáveis
anotadas junto aos ramos. Todas as variáveis de todos os ramos ligados a uma determinada
conexão são as variáveis desta conexão, as quais podem assumir qualquer valor dentro
do especificado pelo domínio dos lugares que os respectivos ramos conectam. A conexão
Fechar contrato, da figura 2. envolve as variáveis v e p. Supondo que o domínio C_Vaga
contenha as entidades v1 e v2 e o domínio C-Pessoa contenha apenas a entidade p, esta
rede é equivalente à rede elementar modelada na figura 1, o que significa que a rede
elementar da figura 1 é a rede subjacente da mostrada na figura 2.
Na rede compacta. em vez de marcas o que vai ser "depositado` nos lugares são as
próprias entidades, Por exemplo, caso a conexão Criar vaga seja efetivada para as duas
vagas do domínio C-Vaga acima descrito, será provocado o surgimento das entidades v1 e
v2 nos lugares vaga no mercado e vaga livre.

Tipos de ramos
Os ramos que ligam conexões a lugares possuem setas que determinam se o lugar, em
relação à conexão, é de entrada ou de saída. Além disto, existem ramos que
especificam alterações nos lugares e existem ramos que especificam apenas consultas aos
lugares sem modificar o seu conteúdo. A figura 3 mostra as quatro possibilidades de ramos
existentes.
Em uma rede compacta. um ramo alterador de entrada provoca a exclusão do conjunto de
entidades especificado junto a ele do lugar conectado; um ramo alterador de saída, ao
contrário, provoca a inclusão no lugar conectado. Os ramos restauradores não afetam o
conteúdo dos lugares conectados. O ramo restaurador de entrada especifica que o conjunto
de entidades anotado junto a ele deve existir no lugar respectivo. já o ramo restaurador
de saída determina que o conjunto de entidades anotado junto a ele deve estar ausente do
lugar respectivo.

Linguagem de anotação
Para consolidar várias redes elementares em uma rede compacta é necessário o auxílio
de uma linguagem de anotação que formalize as anotações dos lugares, conexões e ramos
da rede.
Heuser faz a seguinte introdução em /HEU 90/ sobre a linguagem de anotação (LA) e a
sua utilidade:
"Quando criamos um modelo de sistema, identificamos, na realidade modelada, coisas,
objetos, sobre os quais queremos falar em nosso modelo. A estes objetos damos a
denominação de entidades. O conjunto de todas as entidades, que consideramos em um
modelo, forma o Universo de Discurso (UD) deste modelo. Se estivéssemos, por exemplo,
modelando um sistema de contas correntes, entre outras entidades, o UD poderia conter:
contas correntes, saldos, lançamentos, pessoas, datas, agências bancárias e endereços.
Uma LA serve para escrever expressões acerca das entidades que compõem o UD. Estas
expressões são de dois tipos:
- fórmulas, que designam os valores lógicos Falso e
Verdadeiro, e
- termos, que designam, cada um, uma entidade do UD.
Assim, uma expressão que diga 'o saldo da conta 1025 é
negativo', é uma fórmula. pois só pode designar um dos valores lógicos, Falso ou
Verdadeiro. Já uma expressão que diga algo como 'o saldo da conta 1025' é um termo,
pois designa uma das entidades do UD, no caso um saldo de conta corrente.
Em /HEU 90/ é descrita a sintaxe completa da Linguagem de Anotação, bem como a sua
semântica. As formas de representação empregando LA mais utilizáveis são:
a) Individualização de uma entidade, que pode ser feita colocando uma variável entre
chaves. É o caso da variável v anotada junto ao ramo que liga a conexão Fechar contrato
ao lugar vaga livre da figura 2. Uma variável é uma palavra composta exclusivamente de
letras minúsculas.
b) Especificação de conjuntos não fixos de entidades, representada através de
variáveis que não estejam entre chaves. Por convenção devem ser representadas por
palavras contendo exclusivamente letras minúsculas e eventualmente os símbolos
"-" ou "_ " entre as letras. Um exemplo deste tipo de variável é
cj_esp contido no modelo mostrado na figura 4, que representa um subconjunto de
especialistas que irão avaliar um artigo.
c) Produto cartesiano entre dois termos cuja representação é a seguinte: <termo
1> x <termo2>, onde termo1 e termo2 podem ser variáveis, resultados de
funções, constantes, etc.
d) Funções cuja representação é uma palavra contendo apenas letras maiúsculas. É o
caso de AUTORES (art) que devolveria todos os autores que elaboraram o artigo indicado
pela variável art.
e) Constantes que simbolizam entidades específicas. Devem ser representadas por palavras
entre apóstrofos, exceto quando a constante for numérica. Exemplo de constantes deste
tipo: 'amarelo', 1995, 'Diretoria'.
f) Constantes que representam conjuntos de entidades. São constantes especiais que devem
ser simbolizadas por palavras antecedidas pelo prefixo C-. É o caso de C-Vaga e C-Pessoa
da figura 2. Este tipo de constante representa um conjunto prefixado de entidades.
Geralmente servem para especificar o domínio de lugares e, quando for necessário, para
especificar o conjunto inicial de entidades de um lugar.
g) Especificação de entidades complexas compostas de outras entidades. Um exemplo é o
elemento composto { pessoa, congr, } existente em dois ramos da figura 4. A forma de
representar elementos compostos de outros é colocá-los entre o sinal < e o sinal >
.

Habilitação e efetivação de alterações
Em uma rede de Petri, para que uma alteração definida em uma conexão ocorra,
é necessário que as condições de habilitação sejam verdadeiras no momento
da efetivação, caso contrário a conexão é considerada não habilitada e
a alteração correspondente fica inibida.
As redes de Petri compactas, como qualquer rede de Petri, também apresentam
regras de habilitação da alteração definida em uma conexão, quais sejam:
a) As entidades definidas nos ramos de entrada da conexão, sejam eles
alteradores ou restauradores, devem estar presentes nos respectivos lugares.
b) As entidades definidas nos ramos de saída da conexão, sejam eles alteradores
ou restauradores, devem estar ausentes dos respectivos lugares.
c) A fórmula da conexão, caso presente, deve resultar, sob a valoração
em questão, em verdadeiro.
Só após cumpridas as regras de habilitação, uma alteração pode ocorrer,
fazendo com que o conjunto de entidades especificado em cada ramo alterador
de entrada desapareça do lugar respectivo e o conjunto de entidades especificado
em cada ramo alterador de saída seja incluído no lugar respectivo.
dante@celepar.gov.br

|