UNIVERSIDADE
FEDERAL
DE
SANTA CATARINA
PROGRAMA
DE
PÓS-GRADUAÇÃO
EM
ENGENHARIA
ELÉTRICA
UMA
ABORDAGEM
PARA A
REPRESENTAÇÃO,
SIMULAÇÃO
E
IMPLEMENTAÇÃO DE
sIsTEMAs
BASEADA
NA
REDE DE
PETRI
A
OBJETOS
ODISSERTAÇÁO
SUBMETIDA
À
UNIVERSIDADE
FEDERAL
DE
SANTA
CATARINA
PARA OBTENÇÃO
DO GRAU
DE
MEsTRE
EM
ENGENHARIA
ELETRICA
EVANDRO CANTÚ
ll
UMA
ABORDAGEM
PARA
A
REPRESENTAÇÃO,
SIMULAÇÃO
E
IMPLEMENTAÇAO DE
SISTEMAS
DASEADA
NA
REDE DE
PETRI
A
OBJETOS
EVANDRO
CANTÚ
ESTA DISSERTAÇÃO
EOI
JULGADA
ADEQUADA
PARA
OBTENÇÃO
DO
TÍTULO
DE
`
MESTRE
EM
ENGENHARIA
ELETRICA
ESPECIALIDADE
ENGENHARIA
ELÉTRICA,
ÁREA DE CONCENTRAÇÃO
SISTEMAS
DE
GONTROLE,
E
APROVADA
EM
SUA
FORMA
FINAL
PELO
PROGRAMA
DE
PÓS-
GRADUAÇÃO
E
:M Cv:
Prof.
JEAN
E
F~S,
Dr. Ing.Orientador
'ø_-A ON ,_
Prof .
JOSE'
L
MOR RAE MUDE
Z, Ph. D.Coordenador do Curso
d ós-Grad ção e ngenharia ElétricaBANCA EXAMINADORA
I
M4.
Ê?-
Pmf.
JEAN
IE
FARÊÊSÍDL
Ing.Orientador
Xé
zy,-|z\z‹>.,‹z~SSW
PIOf.
HER
ERIC
GARNOUSSET,
Dr.'
Co-orientador
, ln
Prof.
JOSE
ED
u'Í› ' 9 0 R.CURY,
Dr. D'EtatProfä. S ii'
"BIENER,
Dra.'_
au??
iii
iv
AGRADECIMENTOS
Ao
Prof.Jean Marie
Farines pela orientação e dedicação ao longodo
desenvolver deste trabalho, ao Prof.Hervé
Garnousset pelo apoio e contribuição, ao Celso Kaestnerpelo auxílio, aos
membros
da
Banca
Examinadora
e aos demais professores e colegas doLCMI
pelaamizade
e convívio neste período.Também
agradeço aCAPES
pelo auxílioSUMÁRIO
RESUMO
...ABSTRACT
... ._ ixCAPÍTULO
1-INTRODUÇÃO
... .. 1CAPÍTULO
2 -MODELAGEM
DE
SISTEMAS
COMPLEXOS
2.1. Introdução ... ..42.2.
As
Técnicasde
DescriçãoFormal
... ._4 2.3. Escolhada
Rede
de Petricomo
Modelo
... ..62.3.1.
O
modelo
deRede
de Petri ... ..72.3.2. J ustificativas para a Escolha
da
Rede
de Petri ... ..72.3.3.
Uso
Atualda
Rede
de Petri ... .. 102.4.
Rede
de
Petri a Objetos ... .. 112.4.1. Extensões à
Rede
de Petri Clássica ... _. 11 i)Rede
de Petri Colorida ... ..11ii)
Rede
Predicado/Transição ... _. 12 iii)Rede
de PetriNumérica
... 13iv)
Rede
de Petri a Objetos ... .. 142.4.2.
Exemplo
de
Modelagem
deuma
Célula Flexívelde
Usinagem
porRPO
... .. 172.5.
Conclusão
... .. 18CAPÍTULO
3 -PROPOSTA DE
UIVIALINGUAGEM
PARA
ESPECIFICAÇÃO
'FORMAL
DE
SISTEMAS
BASEADA
NA
REDE
DE
PETRI
A
OBJETOS
(LRPO)
3.1. Introdução ... .. 203.3. Apresentação
da
Linguagem
- Sintaxe e Semântica ... ..3.3.1. Tipos
de
Dados
Utilizadosna Linguagem
... ..3.3.2. Estruturação e
Modularidade
... ..3.3.3.
Rede
de Petri a Objetos Associada aoMódulo
... ..3.3.4.
Mecanismo
de
Comunicação
... ..3.3.5.
Temporizações
... ..3.4.
Exemplos
... _.3.5. Conclusao ... ..
CAPÍTULO
4 -SIMULADOR DE REDE DE
PE'I`RIA
OBJETOS
(SRPO)
4.1. Introdução ... ..
4.2.
Formas
deExecução
deum
Modelo
deRede
de Petri ... ..4.3. Simulador de
Rede
de Petri a Objetos(SRPO)
... ..4.3.1. Descrição
do
Protótipodo
Simulador ... ..' '
4.3.2. Simulação de
um
Sistema Distrubuído Representadopela
Linguagem
LRPO
... ..4.3.3.
Exemplos
de Utilizaçãodo
Simulador ... _.4.4. Algoritmo de Interpretação para a
RPO
... ..4.4.1. Sistemas de
Produção
e asRedes
de Petri ... ... ..4.4.2. Eficiência Computacional
do
Mecanismo
de Evoluçao ... ..4.4.3. Descrição
do
Algoritmo de Filtragem ... ..i)
A
rede de unificação ... ..ii)
A
Rede
de junçao ... ..iii)
Compilação
das conclusões ... ..4.4.4. Outras Características Oferecidas pelo
Mecanismo
Proposto .... ..i)
Implementação
em
Ambientes
Distribuídos ... ._ii) Procura dos Invariantes da
RPO
... _.iii)
Geração
do Grafo de Estados daRPO
... ..CAPÍTULO
5 -coNcLUsÃo
... ..vii
... .. 67
BIBLIOGRAFIA
... .. 69APÊNDICE
1 -.Especificaçãoda
Célula Flexível deUsinagem
... ..APÊNDICE
2 - Especiñcaçãodo
ProtocoloAbracadabra
... .. 74APÊNDICE
3 -Forma
Gráficada
RPO
Modelando
cada Fasedo
... .. 73
Protocolo
Abracadabra
... ._ 77viii
RESUMO
A
presente dissertação visa propor, para o formalismoRede
de Petri a Objetos(RPO),
metodologiasie ferramentas aserem
utilizadasno
desenvolvimento de aplicaçõespara
Automação
Industrial e Sistemas Distribuídos.São
apresentados os principais aspectos sintáticos e semânticos deuma
linguagem de descrição formal de sistemas baseadana
Rede
de Petri a Objetos. Tal linguagem permite descrever ocomportamento
dinâmicodo
sistema e representar os dadosna forma
de objetos,
além
de possuir características de estruturação e modularidade.Apresenta-se
também
um
interpretador para a execução das especificaçõesem
RPO,
baseado na
analogiado
algoritmo de evolução damarcação
daRede
de Petricom
oMecanismo
de Inferência deum
Sistema deProdução
(SP) de primeira ordem. Este interpretadorpode
ser utilizado paraa
simulação, prototipagem eimplementação
diretadas especificações, através de
um
mecanismo
de inferência baseadoem
um
algoritmo de filtragem eficiente.ix
ABSTRACT
This dissertation suggests, for the Petri
Net
with Objects(PNO)
model, methodologiesand
tools tobe
usedon
thedevelopment
of IndustrialAutomation and
Distributed Systems Applications.
The
main
sintacticand
semantíc aspects of a system formal description languagebased
on
PN
O
are presented.Such
language supports the dinamic behavior description and data representation as objects,and
have structureand
modularity features.We
show
the similaritybetween
the net marking evolution algorithmand
first orderProduction
System
(PS) InferenceMechanism.
From
this analogy, aPNO
interpreter which canbe
usedon
simulation, prototyping and specification implementation is built, basedon
1
CAPÍTULO
11NTRoDUÇÃo
Este trabalho visa desenvolver
um
conjunto de metodologias e ferramentas paraauxiliar
no
desenvolvimento de Sistemasde
Automação
Industrial e de SistemasInformáticos Distribuídos.
Os
Sistemasde
Automação
Industrial visam integrar deforma
automatizada osdiversos níveis de decisão dentro
do
ambiente industrial, envolvendo atividades que vão desde o controle localde
uma
máquina, até o planejamento [Valette, 1986].O
projeto eimplementação
destes sistemas éuma
tarefa complexa; cada nível hierárquicono
qual o sistema édecomposto
apresentaproblemas
distintos aserem
resolvidos,porém
estesproblemas
tem
uma
interdependência, existindo portanto a necessidade de se integrar cadaum
desses níveisde forma
a haveruma
perfeita coerência entre a produção e 0 planejamentoda
empresa.Seguindo as tendências atuais
da
informática, os Sistemas Informáticos Distribuídospermitem
a decentralização dos centros de decisão, oferecendo aos utilizadores asvantagens de
compartilhamento
de recursos, melhoriado
desempenho
graças ao paralelismo ede
'melhoriada
disponibilidade globaldo
sistema [Courtiat, 1987]. Esses sistemas são utilizadosem
muitoscampos
de aplicação, dentre os quaisem
aplicações ligadas àAutomação
Industrial.Estas duas áreas
de
aplicação apresentam alguns pontosem
comum,
em
particularno que
diz respeitoao
alto graude
paralelismo ecomunicação
entre seus componentes.Como
veremos no
desenvolver deste trabalho, esta característica permitirá pensar na solução dosproblemas
encontradosem
ambas
as aplicações, através deuma mesma
técnica. V
O
processode
desenvolvimento de sistemas eem
especial para as aplicações2
pelo usuário.
Para
solucionarmos este problema, é indispensávelque o
desenvolvimento desses sistemas baseie-senuma
Técnica de DescriçãoFormal (TDF),
deforma
a descrever deforma
completa, clara esem
ambigüidades as especificações.A
utilização deTDF
permite ofereceruma
base parauma
metodologia de desenvolvimento e para a constmção de ferramentas automatizadas para auxílioem
cadauma
das etapas desta metodologia.A
Fig. 1 apresenta as várias etapasda
metodologia de desenvolvimento de sistemasadotada neste trabalho. Ela consiste primeiramente
em
descrever as especificações informaisdo
sistemausando
um
modelo
formal.A
partirdo
modelo
formal obtido, pode- se analisar e validar estas descrições, demodo
apoder
detectar erros de concepção. Informações sobre ocomportamento do
sistema e a possibilidade de urna avaliação dedesempenho,
também
podem
ser obtidas através de técnicas de análise e simulação.Em
seguida, a partir das especificações validadas, e através de
um
procedimento
muitas vezes automatizado, será possível a implementação. Finalmente, realiza-se o testede
conformi-ESPECIFICAÇÃO
INÍORMAL
DO
SISTEMA
Modelo Formal
ESPECIFICAÇÕES
FoRMA1s
Verificação, Validação
Avaliação de Desempenho
V .
EsPEc1FrcAÇÃo
EORMAL
VALIDADA
. \ Implementação Automatizada I š
SISTEMA
IMPLEMENTADO
V
Testes de Conformidade3
dade da implementação
resultantecom
a especificação inicial.Ao
finalde
cadauma
destasetapas
pode
haver revisões,quando
erros, i-ncoerênciasou
mau
desempenho
forem
detectados.
Dentre
os diversosmodelos
formais nos quais as Técnicas de DescriçãoFormal
(TDF)
se baseiam, aRede
de Petri(RdP)
foi omodelo
escolhido, sendoque
nestetrabalho, utilizar-se-á
uma
das suas extensões, aRede
de Petri a Objetos(RPO)
[Sibertin-Blanc, 1985].
O
problema da
representação de sistemas é introduzidono segundo
capítulo.Após
ter levantado as características principais dasTDF,
justifica-se a escolha daRede
de Petria Objetos
(RPO) como
modelo
de base para as aplicaçõesde
interesse neste trabalho.No
terceiro capítulo é propostauma
linguagem de representação de sistemasbaseada
no
formalismoRede
de
Petri a Objetos(LRPO),
atravésda
qual introduzimos osconceitos
de
estruturação e modularidade.A
sintaxe e a semântica desta linguagem são apresentadasinformalmente
neste capítulo. ~No
quarto capítulo é apresentadoum
simulador(SRPO)
para sistemas descritospela
linguagem baseada
na
Rede
de
Petri a Objetos, vista anteriormente.O
simulador desenvolvido baseia-sena
execução deum
Sistema deRegras
equivalente aomodelo
deRede
de
Petri.O
mecanismo
de execuçao é similar àMáquina
de Inferência deum
Sistema deProdução
(SP) de primeira ordem. Neste trabalho, será apresentadoum
algoritmo paramelhorar
a eficiência destemecanismo.
A
abordagem
proposta oferece suporte para a simulação, prototipagem eimplementação
direta das especificaçõesdo
sistema. Finalmente, serãotambém
discutidas algumas das característicasque
o algoritmo oferece para facilitar a análise das especificações e para possibilitar a implementaçãoem
Ambientes
Distribuídos.cAPíTUno
2MODELAGEM
DE
SISTEMAS
COMPLEXOS
2.1. Introdução
Neste
capítulo será discutido oproblema da
representaçao de Sistemas Complexos,com
particular interesse nas áreas de aplicação de Sistemas deAutomação
Industrial e de Sistemas Informáticos Distribuídos, procurando identificarum
modelo
formalque
possasatisfazer os dois tipos de aplicações.
Após
ter levantado as principais características das Técnicas de DescriçãoFormal
(TDF)
e dos formalismos nos quais elas estão baseadas, justifica-se a escolhada
Rede
dePetri
(RdP)
como
modelo
de base para este trabalho. Serão apresentadas as característicasda
Rede
de
Petri e discutida algumas extensões deste modelo,em
especial aRede
de Petria Objetos
(RPO),
utilizada neste trabalho, devido ao grande potencial destemodelo
para aplicaçoes nas áreas já citadas.2.2.
As
Técnicas de DescriçãoFormal
(TDF)
O
primeiro passoda
metodologia de desenvolvimento adotada neste trabalhoconsiste
em
descrever ocomportamento
dos sistemas demaneira
completa, consistente, concisa,sem
ambigüidades e precisa.As
Técnicas de DescriçãoFormal
(TDF)
tem
cumprido
este papel, sendo reconhecidoque
asmesmas devem
apresentar requisitos de expressividade, abstração, grau de formalizaçãomatemática
e estmturação [ISO/DIS,1987, 1988].
A
expressividade deuma
TDF
é entendidacomo
a capacidade de representar todasIndustrial e Sistemas Distribuídos). Destaca-se
em
particular todas as noções associadas a representaçãode
sistemascom
paralelismo,como
[Bougé, 1988]:- a sequencialidade (dependência causal); - a concorrência (independência causal);
à
-
o
conflito(uma
causapode
ter vários efeitos diferentes);- a sincronizaçao (várias causas independentes
devem
ser produzidas antesque
o efeitoseja percebido);
- e a
comunicação
(transferência de informação).As
estruturasde
dados, restriçõesde
tempo
ede
desempenho
devem
também
poder
serexpressas [Bruijning, 1987].
A
característica de abstração deuma
TDF
permiteque
em
cada etapado
desenvolvimento,
o
usuário possa se abstrair de detalhes irrelevantes para esta etapa egarantir
uma
independênciacom
relação a implementação.O
formalismomatemático
suportado pelasTDF
deve oferecer plenas condições para a análise das especificações, para a prototipagem e implementação, para deterrninar a conformidadeda implementação
em
relação a especificação inicial e, para a construção das ferramentas correspondentes.Outrossim, as
TDF
devem
apresentar características de estruturaçãoque
permitem
a construção
de
sistemas atravésda
composição de sub-sistemas, facilitando igualmente alegibilidade das especificações. À
Existe hoje
um
grandenúmero
de abordagens,ou modelos
de base, para asTDF,
baseadas
em
formalismos diversos, dos quaispodemos
destacar [Courtiat, 1987]:- as
máquinas
de estado finita(MEF), onde
o sistema éem
geral representadona
forma
deuma
composição
demáquinas
de estado finitas descrevendo ocomportamento
de cadaparte
do
sistema,com
a interconexão de cada partepodendo
ser através demecanismos
defilas
FIFO
("First In, First Out")ou
diretamente por fusão de transições; as técnicas deanálise são baseadas
na
análisedo
grafo de acessibilidade resultante;- as gramáticas formais,
onde
as frases geradas pela gramáticacorrespondem
a seqüênciasválidas de eventos caracterizando o sistema; as técnicas
de
validação sãofundamentadas
sobre as propriedades formais das gramaticas;
- a álgebra de processos (p.ex.
abordagem
algébricaCCS), onde
o sistema é descrito poruma
equação de comportamento;
as técnicas de validaçãofazem
referência a equivalência observacional entre modelos;- os tipos abstratos de dados,
onde
por regras de escrita eesquemas
dededução
é possível,de maneira
semi-automática verificar as propriedadesda
especificação;'
- a lógica temporal,
que
permite porexemplo
verificar sequências válidas de eventos apartir de asserções
da
lógica temporal; -- e formalismos híbridos, baseados nos formalismos anteriores.
V
Em
particular cabe destacar os esforços de padronização de Técnicas de DescriçãoFormal
efetuados pelaISO
(linguagens Estelle e Lotos) e peloCCITT
(linguagem SDL),na
áreade
Sistemas Distribuídos e Protocolos deComunicação.
Lotos éfundamentada na
álgebra de processosCCS
e nos tipos abstratos de dados. Estelle eSDL
são fundamentadasna
máquina
de estado finita, comunicando-se por fila FIÇFO; Estelle faz uso de estruturasda
linguagemPASCAL
para a representação dos dados eSDL
representa os dadospor
tipos abstratos algébricos e possui
uma
forma
gráfica normalizada [Courtiat, 1987; Diaz,1989].
`
2.3.
A
Escolhada Rede
de Petricomo Modelo
Dentre
os diversos formalismos existentes paraTDF,
aRede
de Petri(RdP)
foi omodelo
escolhido, motivado pelo seupoder
de expressão(em
particularna
representaçãodo
paralelismo), abstração, facilidade de uso e principalmente pela capacidade de construçãode
ferramentas automatizadas para a verificação, validação e avaliação de7
2.3.1.
O
modelo
de rede de PetriA
Rede
de Petri(RdP)
[Peterson, 1981] éum
tipo particular de grafo orientado,constituído de dois tipos de nós: as transições
que correspondem
aos eventosque
caracterizam as
mudanças
de estadodo
sistema e os lugaresque correspondem
ascondições
que
devem
ser verificadas para os eventos acontecerem.A
presença (ou não) defichas
num
lugar indica a verificação (ou não)da
condição associada a este lugar.A
distribuição das fichas nos lugares
do
modelo
indica o estado, sendochamada
marcação.A
Fig. 2 ilustra a regrade
disparo das transiçõesda
RdP.
.
p2°
p2(8) (b)
Fig. 2. Regra de disparo da RdP: a) antes do disparo; b) depois do disparo.
2.3.2.
J
ustiticativas para a Escolhada
Rede
de PetriA
partir dos requisitos que asTDF
devem
apresentar,apontamos
a seguir asqualidades
do
modelo
RdP
para ser utilizadocomo
formalismo de base parauma
descrição formal etambém
suas limitações, indicando para estas últimas as possibilidadesde
contorna-las. ~Primeiramente, a expressividade
do
modelo
deRdP
permite descrever precisamente as relações de causalidade encontradas nas aplicações consideradas,como
a sequencialidade (Fig. 3a); o conflito (Fig. 3b)`; a concorrência (Fig. 3c) e a sincronizaçãoz
(Fig. 3d).
As
restrições detempo
e possibilidade de avaliaçãode
desempenho
também
podemser
obtidas a partirbdo usode
extensõescomo
asRedes
de
PetriTemporizadas
[Merlin, 1976],
ou
outras.As
limitações de expressividadeda
RdP
vem
no
sentidoda
representação dos dados,
sendo
necessário a introdução de outras estruturasque permitam
uma
representação maisadequada
dos dadosdo
sistema.ÍÉQDGD
p g
ââi.
<>+@+@
w\
oà/@<D~l<®
Fig. 3. Relações de causalidade modeladas por RdP: a) sequencialidade; b) conflito; c) concorrência; d)
sincronização. ~
A
RdP
apresentaum
bom
nível de abstraçãoem
comparação
com
outros modelos, oque
-garanteuma
independênciaem
relação a implementação.O
formalismomatemático
no
qual aRdP
baseia-se permite a análise dasespecificações,
sendo
possível a análise das propriedades geraisdo
modelo
(correção), daspropriedades específicas
(comportamento)
e a avaliaçãodo desempenho,
conformeveremos
a seguir.Um
dosmétodos
de análiseda
RdP
estábaseado
na
geraçãodo
grafo de estadosacessíveis
da
rede,que quando
é finito, permite fornecer as respostas às propriedadesgerais (limitação, vivacidade, reinicialização)
ou
específicas (exclusão mútua,acessibilidade,...). Existem várias técnicas de análise
do
grafo de acessibilidade, baseadasno
conceito de equivalência,na noção
de projeção e sobre a lógica temporal [Diaz, 1989].A
RdP
permitetambém
realizar a análise estrutural, através da determinação dosespecíficas,
como
a conservação, a acessibilidade e as sequências cíclicas de 'disparo detransições. Esta
forma de
análise é interessante poisnão
necessita gerar o grafo de estados,cuja limitação se deve a explosão
do
espaço de estadosno
casode
redes complexas.A
simulaçao étambém
uma
opçao de
interesse parauma
verificaçao parcial das propriedadesdo modelo
deRdP.
Para
a avaliaçãodo desempenho,
a associaçãode
densidadesde
probabilidades aointervalo de disparo das transições
da
RdP
(Rede de
PetriTemporizada
Extendida) permite avaliar odesempenho
temporaldo
sistema descrito, atravésde medidas
como
tempo médio
entre eventosou
a probabilidade de ocorrênciade
eventos [Roux, 1987].Para
estas técnicas de análiseda RdP,
existem muitas ferramentas automatizadas.Ao
nosso alcançe,no
Laboratóriode
Controle e Microinformática(LCMI)
foidesenvolvido
um
Ambiente
paraConcepção
de Sistemasbaseado na
RdP
(ARP)
[Farines,1989b]
que
apresentaum
conjunto de ferramentasde
análise, simulaçao e avaliaçao dedesempenho.
A
Fig. 4 apresenta as ferramentas oferecidas peloARP.
' Especificacao em RdP Clássica Editor RdP ~ ¬L
4
__
` d Avahad°r e Analisador-Simulador RdP DesempenhoGrafo de Estados) lnvariantes)
Prova de Tempo Medio.
i r
Equivalencia Estatisticas Propriedades
Fig. 4. Conjunto de Ferramentas do Ambiente ARP.
Outrossim, o
modelo
RdP
não
oferece possibilidades de estruturação das especificações,»sendo necessário neste caso apresentar soluções externas ao formalismo.10
Todas
as características apresentadasmostram
as potencialidadesda
RdP
para ser utilizadacomo
modelo
de
base deuma
TDF. Os
pontos negativosda
RdP
contudo são afalta
de
expressividadeno
que
se refere a descrição dos dados e a dificuldade deestruturação. Partindo destas limitações, existe a necessidade
de
se extender o formalismoRdP
introduzindouma
forma
de representação dos dados,que
será apresentadana
seção2.4, e propor extensões
que permitem
estruturar a especificação, sendo esteum
dosobjetivos deste trabalho
conforme
será vistono
capítulo 3.2.3.3.
Uso
Atualda
Rede
de PetriEm
aplicaçõesde
Automação
Industrial, aRdP
tem
boa
aceitação, sendo utilizadacom
maior
ênfase nos níveis mais baixosda
automatização.Dos
cinco níveis hierárquicoscomumente
encontrados nos Sistemas deAutomação
Industrial (o controle local; acoordenação
de sub-sistemas; a coordenação global e monitoraçãoem
tempo-real; 0ordenamento
eo
planejamento), aRdP
vem
sendo utilizada nos três primeiros.No
controle local, o
modelo
RdP, na
suaforma
clássicaou
atravésda
representaçãoGRAFCET,
é utilizadona programação do
controlede equipamentos
[Valette, 1986].No
nível
de coordenação de
sub-sistemas, aRdP
e suas extensõespermitem modelar
deforma
eficiente sistemas
de
transporte, Células Flexíveis deUsinagem
etc. Neste caso, os lugaresda
RdP
representam estoques de peças, grupo de máquinas, pontos de recepção demensagens
etc; às fichaspodem
ser associadas estruturas de dados relativas a peças,ferramentas
ou
máquinas,ou mensagens
trocadas entre tarefas, oque
torna necessário o uso de extensõesque
permitam
esta associação [Alanche, 1984; Valette, 1986; Bako, 1989].Nas
aplicaçõesem
Sistemas Distribuídos, aRdP
têm
sido utilizada para especificare validar protocolos
de
comunicação.Os
mecanismos
decomunicação
(sincronaou
assíncrona) e as restrições de tempo,
comumente
empregados na
modelízação de protocolos,podem
ser representados a partir destemodelo
ou das suas extensões [Diaz,1982, 1989; Courtiat, 1987].
11
2,5,
Reg
de Petri a Objetos2.4.1. Extensões à
Rede
de
Petri ClássicaA
modelagem
completa de
um
Sistema deAutomação
Industrialou
deum
Protocolo de
Comunicação
necessitade
uma
maior
expressividadeno que
se refere a descrição dos dados,do que
àquela suprida pelasRdP
clássicasque
representam apenas aestrutura de controle
do
sistema. Estas limitaçoesda
RdP
clássicaforam compensadas
apartir de extensões,
que permitem
a individualização das fichas fazendocom
que
asmesmas
possam
transmitiruma
informação.A
Rede
de
Petri Colorida, aRede
Predicado/Transição (PrT) [Genrich, 1987], a
Rede
de PetriNumérica
[Billington, 1988] e aRede
de
Petri a Objetos(RPO)
[Sibertin-Blanc, 1985] são as principais propostas de extensoes.i)
Rede
de Petri ColoridaNo
modelo
de
Rede
de
Petri Colorida as fichaspodem
ser distingüidas através deuma
cor, que' indicaa
sua identidade. Assim, a cada lugar,bem
como
a cada transição, éassociado explicitamente
um
conjunto de cores.Os
arcos são etiquetados por funções das coresda
transição nas coresdo
lugar.Para exemplificar, a Fig. Sa [Di`az, 1982] mostra o
exemplo
do
Almoço
dos Filósofosmodelado
poruma
RdP
clássica.No
caso apresentado,um
filósofopode comer
quando
dois palitos quaisquer estiverem livres. Esta solução contudo
não
resolve oproblema
deque
um
filósofosomente
pode
comer quando
estiverem livres os palitos imediatamente asua direita e esquerda.
Para
uma
solução corretausando
RdP
clássica será necessário representar cada filósofo e cada palito porum
lugar,conforme
apresentadoem
[Peterson, 1981].Usando
aRede
de
Petri, Colorida,conforme
apresentadona
Fig. Sb,obtemos
uma
solução correta e mais compacta; para a transição t1 disparar, deve existir
um
filósofo f¡no
12 Filosofo Pensando pi. pi+1
L
L
plP3
p2 p3p4 P2 P5 P2 Fllosofo C°mend° Palitos ' Livres (a) pi. pi+1Fig. 5. Problema do Almoço dos Filósofos: a) modelado por
RdP
clássica; b) modelado por Rede de PetriColorida.
ii)
Rede
Predicado/'I`ransição (Pr'I`)A
Rede
Predicado/Transição (PrT) [Genrich, 1987] éum
dosmodelos
deRdP
demaior
utilização atualmente, sendoempregada
em
várias áreas -em
Protocolos deComunicação
destaca-se os trabalhos deAzema
[1989] e Lloret [1987], utilizados nestadissertação.
Ao
nível conceitual, a redePrT
éfundamentada
no
formalismo matemático dalógica de predicados de primeira ordem. Neste modelo, o conceito de ficha colorida é extendido, sendo permitido aos lugares conter fichas parametradas por n-uplas de constantes e variáveis. Estas n-uplas
guardam
a identidade de cadaum
de seus elementos etambém
representam claramente as relaçoes dinâmicas entre osmesmos.
Os
arcos sao etiquetados porsomas
formais de variáveis definindo a configuração de fichas que seráconsumida ou
produzidaem
um
lugar. Sobre as transiçõespodem
ser escritas fórmulaslógicas utilizando as variáveis dos arcos de entrada das transiçoes. Assim, para a transiçao disparar, ela deve estar sensibilizada por
uma
substituição consistente das variáveis pelasn-uplas
que
constituem amarcação
e o predicado associado deve ser verificado.13
<a>
<a>
<b>
<b><b>
ZX
<y,z>
gx
<Y›Z>
<x,y>+<x,z>
<X›Y>+<X~Z>
‹z› <b> tFig. 6. Disparo na Rede Predicado/Transição: a) antes do disparo; b) depois do disparo.
iii)
Rede
de PetriNumérica
AA
Rede
de
PetriNumérica
éuma
extensão às redes PrT, utilizada sobretudo paramodelagem
de Protocolosde Comunicação
[Billington, 1988]. Nestemodelo
é possível associarum
conjuntode
variáveisdo
tipodado
(inteiro, booleano, string etc) a rede. Estasvariáveis
permitem modelar
objetoscomo
dados de controle, contadores etc, epodem
sermanipuladas através
de
condições e ações associadas a cada transição.O
teste a 0(inexistência
de
fichaem
um
certo lugar)também
pode
ser representado de maneiraexplícita.
Na
Rede
de Petri Numérica, os arcosapresentam
três formas de inscrições: 1)condições
que
devem
ser satisfeitas pela coleção de n-uplas (fichas) associada aos lugaresde entrada; 2) n-uplas
que
serão removidas dos lugares de entrada; e 3) n-uplasque
serão criadas nos lugaresde
saídaquando
a transição disparar. Estas inscrições diferenciam a condição de sensibilização,da
movimentação
de fichas durante 0 disparo14
j iv)
Rede
de Petri a Objetos(RPO)
A
Rede
de
Petri a Objetos(RPO)
[Sibertin-Blanc, 1984, 1985, 1988] éum
modelo
semelhanteao
modelo
da
rede PrT,mas
que
utiliza anoção
de objetos para a representação dos dados. Conceitualmente ela é derivadada
teoriade
base de dados relacionais e das linguagens orientadas a objetos, oque
atoma
um
formalismo maisacessível ao usuário
menos
habituado à lógica de predicados de primeira ordem.Em
particular, a
RPO
éadequada
para amodelagem
de
aplicações ligadas àAutomação
Industrial. Nestas aplicaçoes o usoda noçao
de objetos permiteuma
melhor
estruturaçao dos dadosdo
sistema e facilita omapeamento
direto dos objetos físicos manipulados[Vallete, 1988].
No
modelo
deRPO,
amarcação
édada
por fichas individualizadas, representadas por Objetos,que
modelam
os elementos manipulados pelo sistema.Cada
Objeto éidentificado
por
um
nome
e é consideradocomo
uma
instância da Classede
Objetos a qual pertence.A
fim
de
identificar os objetossem
ambigüidades, cadaum
deles teráum
atributo identificador e cada objeto terá
um
valor diferente para este atributo.Uma
Classe de Objetos éuma
estruturacom
um
nome
de classe euma
lista dedimensão
variável de propriedades (ou atributos), cadauma
com
um
domínio
de valores.A
cada lugarda
RPO,
é associadoum
conjunto de n-uplas de classes de objetos, esomente
instâncias de objetos destas n-uplaspodem
ser depositadasou
removidas destelugar. .
Para poder
manipular os objetos, é declaradoum
conjunto de variáveis,explicitando para cada variável a classe de objetos
que
elapoderá
capturar.As
transiçõesda
RPO
permitem
selecionar os objetos nos lugares de entrada.
V .
através das variáveis sobre os arcos.
O
disparo destas transiçõesdependem
da
existênciadesses objetos e
de
condições a 'serem verificadas sobre os objetos capturados. Se as15
que modificam
a semântica desses objetos eem
uma
nova
distribuiçao destes nos lugaresde saída
da
transição.A
Fig. 7 ilustra aforma
gráficada
RPO,
mostrando
a partede
condição e ação de3121 $2 <P, M>
uma
transição. `Condicao
<P>
<M>
~Ó
_ Fig. 7. Forma gráfica da RPO.
Uma
definição formalda
RPO
édada
no
QUADRO
1.Dentre
osmodelos
citados, optou-se pelaRede
de Petri a Objetos, e justificamos sua escolha nos seguintes pontos. Primeiro, por apresentaruma
melhor
estruturação dos dadosdo
sistema atravésda noção
de objetos. Esta característica permiteum
mapeamento
direto dos objetos físicosno
caso de aplicaçõesem
Automação
Industrial.Também
nas aplicaçõesem
Protocolos e Sistemas Distribuídos existeum
interesse crescente nautilização
da noção de
objetos. Segundo, pela facilidadeque
anoção de
objetos oferece para a construçãode
ferramentas automatizadas.E
finalmente, pelo fato de serum
QUADRO
1. Definição Formal daRPO
[Siberin-Blanc, 1988]Seja
O
um
conjunto de objetos, notaremos porO*
o conjunto das n-uplasde objetos, e por P(O*) 0 conjunto das partes de O*.
Definigo
1:Uma RPO
é definida por:1)
Um
conjunto finitoC0
de Classes de Objetos. _2)
Um
conjunto finitoT
de transições.3)
Um
conjunto fmito P de lugares, euma
função cl 'P->P(CO*), queespecifica os conjuntos de n-uplas de
C0
que cada iiigar pode conter;4)
Um
conjuntoV
de variáveis euma
função clv:V-> CO, que especificaaClasse de Objeto que cada variável pode capturar;
5)
Uma
função de incidência de entrada: Pre: P xT ->
P(V*)e
uma
fimção de incidência de saída: Pos: P xT ->
P(V*)que respeitam a dimensão e a classe dos lugares; .
se v 6 Pre(t,p) então v (resp. p) é
uma
variável (resp. lugar) deentrada de t;
se v e Pos(t,p) então v (resp. p) é
uma
variável (resp. lugar) desaída de t.
6)
A
cada transição pode-se associarum
conjunto de predicados,chamados condições, cujas variáveis sejam as variáveis de entrada de t.
7)
A
cada transição pode-se associarum
conjunto de ações, da forma:v.atr
<-
Expr onde:v é
uma
variável de saída de t;atr é
um
atributo desta variável;Expr é
uma
expressão onde suas variáveis são as variáveis de entradade t.
8)
Um
conjunto de registros globais, que são partilhados por todas astransições, podendo figurar nas condições e nas ações das transições.
Definição 2: Seja
O
um
conjunto de identificadores para os objetos. Um'estado da
RPO
é chamado marcação e é definido por:1)
Uma
função distributiva m: P --> P(O*)que indica para cada lugar os conjuntos de n-uplas de objetos que ele
contém;
2)
Um
valor para cada atributo dos objetos que figuram nos lugares.Definição 3: Seja
M
uma
marcação e tuma
transição deuma
RPO, t édita sensibilizada pela marcação M, se existe objetos que são disponíveis
nos seus lugares de entrada e que satisfaçam as condições associadas a t.
Ou
mais formalmente, se existeuma
substituição S:V
->
O
, tal que:1) para todo lugar p, S(Pre(t,p)) Q M(p),
2) se Pc(v ,...,vn) é a pré-condição de t, se a variável vi captura o objeto o¡
(i= 1..n1), então a proposição Pc(o1,...,on) é verdadeira.
O
disparo deuma
transição sensibilizada depois da marcação M, leva anova marcação M”.
O
estado M' é atingido pelos seguinte passos:1) Retirar dos lugares de entrada de t as n-uplas de objetos capturados
pelas variáveis;
2) Criar
um
novo objeto para cada variável de saída de t, que não seja aomesmo
tempo uma variável de entrada, de tal forma que cada variávelcapture
um
objeto;3) Executar
em
paralelo cada uma das ações de t;4) Depositar nos lugares de saída de t as n-uplas de objetos capturados
pelas variáveis de saída.
17
2.4.2.
Exemplo
deModelagem
deuma
Célula Flexível deUsinagem
porRPO
Para ilustrar a
modelagem
porRPO,
vamos
considerar oexemplo
de aplicaçãoem
Automação
Industrial, apresentadona
Fig. 8.O
sistema representauma
Célula Flexível deUsinagem, formada
porum
par deMáquinas
deComando
Numérico
(M1
e M2), queprocessam
peças transportadas poruma
mesa
rotativacomposta
de quatro bandejas("pallets") nas quais as peças são depositadas.
As
peças são retiradas deum
estoque ecarregadas
na
mesa
na
posição 1, e descarregadas após 0 términoda
usinagem na
posição4 e depositadas
no
mesmo
estoque.As
peças são usinadas pelamáquina
M1
(oumáquina
M2)
quando
presentesna
bandejada
posição (respectivamente posição 3).A
cada peça éassociado
um
conjunto de tarefas ("job"),definido
poruma
sequência deusinagem
sobre asmáquinas
M1
eM2,
como
porexemplo
a seqüência(M1
M2
M1).Peça
job
=
()E7
Peça
job
=
(Mi)Fig. 8. Célula Flexível de Usinagem.
O
modelo
deRPO
equivalente é mostradona
Fig. 9,onde
o lugar pl representa 0estoque das peças,
p2
representa amesa
rotativa,p3
representa asmáquinas
livres e p4 representa asmáquinas
usinando.As
transiçõesENTRADA
eSAÍDA
representam asoperações de carga e descarga das peças
da
mesa.A
rotação damesa
éirepresentada pelatransição
ROTAÇÃO,
e o início e fim deusinagem
pelas transiçõesINICIO_e FIM.
Na
18
No
exemplo, identificamos três Classesde
Objetos (Peça, Pallet e Máquina), escolhidas pelo simplesmapeamento
dos objetos físicosdo
sistema. Associado ao gráficoda
RPO,
é apresentadona
Fig. 9 a declaração das classes de objetoscom
seus respectivos atributos (precedidos pelo símbolo "^"), dos lugares e das variáveis.A
marcação
inicial érepresentada pela distribuição dos objetos nos lugares
da
rede, identificados pelo símbolo$n,
mas
os valores para os atributos dos objetosdevem
ser dados separadamente.2.5. Conclusão
Neste capítulo foi tratado
o problema da
representação dos Sistemas Complexos.Após
a descrição das características e das várias abordagens utilizadas pelas Técnicas de Descrição Formal, foi escolhido omodelo
deRede
de
Petricomo
formalismo de base paraeste trabalho.
Para fazer face as limitações de expressividade
da
Rede
de Petrino que
se refere a representação dosdados
foi apresentado omodelo
Rede
de Petri a Objetos, escolhido paraeste trabalho
devido
a sua capacidade de representaruma
estrutura dedados
maiscomplexa
e pelo interesseda
representação de objetos, tanto a nível demodelagem
para aplicaçõesem
Automação
Industrial e Sistemas Distribuídos,como
para o desenvolvimento das ferramentas associadas.`
As
limitaçõesdo modelo
deRPO
no que
se refere a estruturação serão tratadasno
capítulo seguinte,onde
está sendo propostauma
linguagem baseadana
Rede
de Petri a Objetos(LRPO),
atravésde
uma
extensão deste modelo.<"U°-10
O
= { Peça, Pallet, Máquina)= {P1› P2› P3:
= {P¢¢, Mzq,i>z1, Par, Pal", Pzz1'"}
Atributos:
Peça -> ^ident "job
Pallet -> ^posição ^cstado V
Máquina -> ^nome ^posição
= {EN'rRADA, SAIDA,
ROTAÇÃO,
1Níc1o, F1M}clvz
Pcc : Peça
Maq
: MáquinaPal, Pal”, Pal", Pal'”
pl
sv clp: pl: <Peça> p2: <Pallet>, <Peça> p3: <Máquina>p4: <Pa1let, Peça, Máquina>
<Pec> 38 <Pec> Pec.job <> () Palposiçâo = 4 Pal.posição=1 Pal.estado=Pec.idenl Pa1.zsLa‹1z›=zú1 l
NTRADA
Pe¢.j‹›b = ()SAIDA
Pal.esLado:=Pec.iden Pal.estado:=nil <Pal> <Pec> <Pal> <Pu> ‹Pal› ‹Pal > ‹Pul > ‹Pal> <Pnl> <Pa!"> <Pnl"`> Pal.posição = 1 Pal'.posição = 2 Pa1".posição = 3 Pal"'.posição = 4 Palposição = 2 Pal'.posição = 3 Pal".posição = 4 Pal"`.posição = 1ROTAÇÃO
Marcação:$1 : (Pallet ^posição 1 ^estado nil)
$2:
$3:
(Pallet ^posição 2 ^estado nil)
(Pallet ^posiçâo 3 ^estado nil) $3 : (Pallet "posição 4 ^cstado nil)
$5 : (Máquina ^nome
M1
^posição 2)$6 : (Máquina "nome
M2
"posição 3)$7:
$8 : (Peça ^ident P2 ^job (M2 M1))
<Pa1> 31 ss *Z só , 34 <Pal> <Pec> 36
p2
p3
< Pal> < Pec> <Maq>T
Palposição = Maq.posiçaoMaq.nome = (primeiro Pec.job)
Pal.estado=Pec.ident INICIO
'
Pec.job := (resio Pec.job)
| (Peça "ident P1 "j0b (M1
M2
M1))p4
<Pal> <Pec>» <Pal.Pec.Maq> <Maq> <Pal.Pec.Maq>FIM
2 0
CAPÍTULO
3 APROPOSTA
DE
UMA
LINGUAGEM
PARA
ESPECIFICAÇÃO
DE
SISTEMAS
BASEADA
NA REDE DE
PETRI
A
OBJETOS
(LRPO)
3.1. Introdução
Neste capítulo são apresentadas as características principais
da Linguagem
de Especificação de Sistemas proposta neste trabalho(LRPO),
que
tem
como
formalismo de base aRede
de Petri a Objetos(RPO).
A
necessidade de atender aos requisitos de estruturação e modularidade, desejadosnuma
Técnica de DescriçãoFormal (FDT),
motivou a proposição feita neste trabalho deuma
linguagemque além do
formalismoRede
de Petri a Objetos, descritono
capítulo anterior, inclui estas características.Após
ter discutido a introdução dos conceitosde
estruturação e modularidade nas linguagens de especificação, será descrita a sintaxe e a semânticada
linguagemLRPO.
Dois
exemplos demodelagem
são apresentados para facilitar o entendimentoda
linguagem.
No
finaldo
capítulo algumas perspectivas de evolução e modificação dalinguagem
são discutidas.3.2. Estruturação e
Modularidade
Quando
os sistemas são muito complexosou quando
suascomponentes
sãodistribuídas fisicamente,
uma
das formas de realizar o projeto consisteem
construir 0 sistema global a partirda composição
de sub-sistemas,que
podem
ser refinadossucessivamente e interligados entre si por
um
mecanismo
de comunicaçao. Este paradigma21
[Budkowski, 1987] e
na
linguagemmodular baseada na
rede Predicado/Transição propostaem
[Lloret, 1988].A
linguagem propostaLRPO
seguetambém
o princípioda decomposição modular
descrito anteriormente e se apresenta
na forma
deuma
estrutura demódulos
organizados hierarquicamenteconforme
apresentadona
fig. 10a [Budkowski, 1987].Cada módulo
é ligadocom
outrosmódulos
atravésda
sua interface,formada
de portos de entrada/saída(chamados
também
de pontos de interaçãoem
outras linguagens).Dois
tipos de ligação são possíveis entre eles,conforme
apresentadona
Fig. 10b:1) Ligação de dois
módulos
irmãos, para representar acomunicação
(linhasJcheias);2) Ligação de
um
módulo
com
seumódulo
pai, para representar a hierarquia (linhas tracejadas).A
1 92 10
E
(6)
(b)
Fig. 10. Estruturação Modular: a) hierarquia de módulos; b) ligações possíveis entre os módulos.
H
E
"11 03 PII m U'\ CD «I vbO
›-» ›-› (\) s-I»O
mecanismo
decomunicação
adotado para a troca demensagens
entre osmódulos
é a
comunicação
síncrona,do
tipo "rendez-vous".A
escolha do "rendez-vous" se justifica apartir dos seguintes pontos:
este
mecanismo
permite a composição entre osmódulos
deforma
similar ao utilizadono
22
- permite representar outros tiposde
interações entre módulos, inclusive acomunicação
por
fila, simulando o funcionamentoda
mesma
porum
módulo
especial [Courtiat, 1988];-
o
"rendez vous"impoe
restriçoes entre as entidades comunicantes, restringindo de fato acombinatória
do
produto de seus conjuntos de estados oque
facilita a verificação [Lloret,19881
'O
comportamento
de cadamódulo
é descrito poruma
Rede
de Petri a Objetos, desta forma, cadacomunicação
síncronapode
ser interpretada demaneira
simples pela fusão de transições.A
representaçãoda
fusão de -transições será introduzidana
linguagem através de cláusulas de sincronizaçãona
guardade
cada transição a ser fusionada.A
linguagemde
especificação *propostaLRPO,
permite então descreveruma
especificação
na forma de
uma
esflura
hierárquicade
módulos, cujo corpo éuma
Rede
de
Petri a Objetos,com
acomposição
entre osmódulos
sendo realizada porum
mecanismo
de sincronizaçãoque
permite fusionar as transiçoes.Concluindo, a linguagem
LRPO
inclui os formalismosRede
de
Petri a Objetos para descriçãodo comportamento da
especificação e das estruturas de dados manipuladas, permitindo destaforma
utilizar as ferramentasde
análise/ simulação permitidas pelaRdP
e introduzir outras extensões sobre omodelo
inicial (como: temporização, densidades deprobabilidades etc).
Do
ponto
de vistada composição
entre módulos, a linguagemLRPO
apresenta similaridadecom
os formalismosCCS
e Lotos, oque
facilita a verificação.Do
ponto
de vistada
inclusãona
linguagem de características de estruturação e modularidade, leva a linguagemLRPO
auma
similaridade sintática e semânticacom
a linguagem Estelle23
3.3. Apresentação
da
linguagem - Sintaxe eSemântica
A
descrição sintáticada
linguagem é apresentadana forma
BNF
(BackusNaur
Form)
simplificada. NestaBNF
os sírnbolosnao
terminais serao encerrados por <" e por ">" e os elementosem
negrito caracterizam caracteres e símbolos definidosna
linguagem.Também
são utilizados os meta-símbolos ":: =" (édefinido
por), "*" (repetição zeroou
maisII N - II II |I Il II II
1
vezes),
+
(repetiçaouma
ou
mais vezes), I (ou), { e } (quecercam
eementos
opcionais).
3.3.1. Tipos de
Dados
Utilizadosna
Linguagem
i) Objetos
Os
dados
básicos manipuladosna
linguagem são Objetos físicosou
conceituais.Cada
objeto éuma
instância deuma
Classe de Objetos(CLASS)
caracterizada através listade
dimensão
variável de propriedades (ou atributos); cada propriedade é definida porum
nome
epor
um
valor.Por
exemplo, o objeto:(Peca
^nome
pl^tamanho
1/2 ^quantidade 10)é
uma
instânciada
Classe de Objetos Peça.Como
será visto adiante, dentro de cadamódulo
da
estnitura,devem
ser declaradasas Classes de Objetos a
serem
utilizadas,caracterizando destaforma
a estrutura dos dados manipulados.Uma
Classe de 'Objetos é defininda pelonome
da
classe e porum
conjuntode
propriedades (ou atributos)
que
caracteriza os objetos desta classe. -<
declaração_classe__objetos>
::=
(CLASS
(<nome_classe_objeto>
^ <nome_atríbuto>
*)+
)'onde: V'
O
“ '
<nome_classe_'objeto> é o
nome
da
Classe de Objeto;24
Obs:
Na
frentedo
nome
do
atributo coloca-seo
sinal "^", para diferenciarcorretemente os atributos
da
sua classe e dos seus valores.ii) Registros
Além
de objetos,podemos
definirum
certonúmero
de registros(REGISTER)
que
contenham
um
valor. Estes registros são considerados objetos globais para omódulo
no
qual são declarados e para todos os
módulos
internos a este. Estes registros são utilizadospara representar dados de controle, declarar constantes,
ou
outros indicadoresdo
processo(relógios etc).
Os
valores dos registrospodem
ser modificados pelas transiçõesda
RPO
associada ao
módulo.
<declaração_registros
>
::=
(REGISTER
<registro> +
)onde: '
<
registro>
::=
@
<
nome_registro>
~< valor><nome_registro
>
é onome
do
registro;<valor> é
um
valornumérico ou
simbólico qualquer,ou
outro registro já definido.Obs:
A
declaração deum
registro deve sersempre
acompanhada
poruma
atribuiçao de
um
valor inicial para omesmo.
O
nome
do
registro é pré fixado por "@", visando sua fácil identificação dentroda
linguagem.iii) Variáveis
Dentro da
linguagem variáveis(VAR)
podem
ser utilizadas, para fazer referência a objetosque poderão
ser instanciados dentro das transiçõesou
pelas primitivas decomunicação
dos módulos.Todas
as variáveis aserem
utilizadas dentro deum
módulo
deverão ser declaradas25
que
esta variávelpoderá
capturar.Cada
variávelpoderá
capturar objetos deuma
únicaclasse.
<declaração_variáve11s> ::=
(VAR
<van`ável> +_ )onde:
<van°âvel> ::= <nome_van'ável> <nome__classe__objeto> <nome__variável
>
éo
nome
da
variável. -3.3.2. Estruturação e
Modularidade
Na
linguagem
LRPO, uma
especificaçãopode
estar constituída porum
únicomódulo, ou
porum
conjuntode
módulos
aninhados deforma
hierárquica. Várias instânciasde
um
mesmo
módulo
podem
ocorrernuma
mesma
especificaçao.i)
Módulo
RaizA
estruturaçaode
uma
especificação é iniciadacom
a declaraçao de seumódulo
rgz
(STRUCTURE)
que
representa a estruturado
sistema especificado. Estemódulo
não
possui interface externa e assume-se
que
existesomente-uma
instânciado
mesmo,
sendo constituído poruma
parte de declaração de dados e deum
corpo.O
corpodo
módulo
raiz consistena declaração de eventuaismódulos
filhos eem
uma
configuração inicial para sua estruturamodular
atravésda
definição das suasinstâncias de
módulos
filhos ativas e as ligações entre estas.No
casoda
ausência de estrutura modular, este corpopode
contersomente
uma
parte de transiçõesque
descreveocomportamento do
sistema globalna forma
deuma
Rede
de Petri a Objetos(RPO),
26
<declaração_módulo_raiz> ::=
_
(STRUCTURE
<nome
estrutura><
declaração_dados>
<
corpo_dq_estrutura>
) onde: -<
declaração_dad0s>
::=
{<
declaração_classe_objetos>
} {<
declaração_registros>
} {<
declaraçao_van_`âve1ls>
}<
corpo__da_estrutura > ::=
<
declaração_modulo> +
<
instancíação >*<
ligação_connect >* I <rede_de_petri__objeto> . ii)Módulo
Por
sua _vez, cadamódulo
(MODULE)
contém,além da
declaração de dadosinternos e de seu corpo,
como
no
módulo
raiz,uma
interfaceque
caracteriza a visibilidadeexterna
do
mesmo
e atravésda
qual é realizado o acesso ao módulo. <declaração_módulos>
::=
(MODULE
<nome
módul0>
<
declaraçã0_dad0s>
<
ínterƒace_do_módulo>
V p
< corp0__c_lo_módulo à ) .
A
interfacedo
módulo
consistena
declaração deum
conjunto de portos de entrada/saída(PORTS) com
os respectivos tiposde
interações permitidosem
cadaum
delesem
termosde
emissão(OUT)
ou de recepção (IN).27
Cada
declaraçãodo
tipode
interação é identificada pelonome
desta (identificadorda
interação) e eventualmente porum
parâmetro, representado poruma
variavel,que
vai indicar o tipoda
mensagem
(i.e. definir a classe de objetos)que poderá
ser trocada entreas entidades conectadas, através deste porto. <ínte:ƒace
módul0>
::=(PORTS
<declaraçao_porto>+
) onde: <declaração_porto> ::= (<nome_p0rto> IN
( <tipo__interação> * )OUT
( <tipo_interação>
' ) ) <tipo interação> ::= <nome_interaça0>
{( <nome_variâvel>
+
)}A
declaraçãodo
corpodo
módulo
é similar àdo
corpodo
módulo
raizem
termosde composição: declaração
de módulos
filhos; configuração inicialcom
a definição dasinstâncias filho ativas, das ligações entre elas e, das ligações entre estas instâncias filho e o
módulo
pai;ou
uma
parte descrevendo ocomportamento do
mesmo
através deuma
RPO.
No
caso deuma
estruturamodular
estática, cadamódulo
terminal da hierarquia(módulo
folha) conterá
uma
partede
transições - a possibilidade de se associaruma
RPO
aum
módulo
não
terminalnão
é utilizada, pois amesma
pode
sersempre
definidaem
um
módulo
filho [Lloret, 1988]. -<corpo
módul0>
::'=<
declaraçao_m0dulo> +
<instanciação>
*<
lígação_connect>
* -<
lígaçã0_attach>
* <rede_de_petri_objeto>28
A
definição das instâncias demódulos
ativas(INSTANCE)
é feitacom
a atribuiçãode
um
módulo
a cadauma
das instâncias criadas.<instanciação> ::
=
(INSTANCE
<nome_instâ¡zcia>WITH
<nome_módulo>
)As
ligações entre as instânciasde módulos vão
permitir a abertura de canais decomunicação
entre elas,sendo
possívelsomente
dois tipos de ligação, citadosanteriormente:
i
1) Ligação para
comunicação
(CONNECT)
entre duas instâncias demódulos
demesmo
nível hierárquico e filhos
do
mesmo
pai (módulos irmãos) (na Fig. 10b os pares (5,6), (4,7),(1,9) e (2,10) ligados
por
linhas cheias).É
necessárioque
os portos dos doismódulos
aserem
conectados sejamde
sentido oposto, pois as interações emitidaspor
um
módulo
deverão ser recebidas pelo outro; `
<ligação_connect> ::=
(CONNECT
<n0me_instâncía > .<nome_porto >
TO
<nome_instância>.<nome_porto>
)2) Ligação para hierarguização
(ATTACH)
entreum
módulo
e seu «módulo paiestabelecendo
uma
relação ascendente/descendente (na Fig. 10b os pares (1,3), (2,8),(9,11) e (10,12) ligados
por
linhas tracejadas).É
necessárioque
os portos dos doismódulos
a
serem
ligados sejamde
mesmo
sentido, pois a operação consistesomente
numa
renomeação
deum
portodo
pai para o seu filho;'
<l1`gação_attach> ::=
(A'I'I`ACH