UNIVERSIDADE
FEDERAL
DE SANTA
CATARINA
PROGRAMA
DE PÓS-GRADUAÇÃO
EM
ENGENHARIA
ELÉTRICA
UMA
METODOLOGIA
PARA
O
DESENVOLVIMENTO
DE APLICAÇÕES
DIsTRIBUíI›As
BASEADA NA TÉCNICA
DE
DESCRIÇÃO
FORMAL
ESTELLE
Dissertação submetida à Universidade Federal
de
Santa Catarina para a obtençãodo
graude
OMESTRE
EM
ENGENHARIA
ELÉTRICA
ELIESER
BOTELHO
MANHAS
JÚNIOR
EUMA
M
ETODOLOGIA
PARA
O DESENVOLVIMENTO
DE APLICAÇÕES
DISTRIBUÍDAS
BASEADA
NA TECNICA DE
DESCRIÇÃO
FORMAL
ESTELLE
-Elieser
Botelho
Manhas
Júnior
_Esta
dissertação foi julgadaadequada
para
aobtenção
do
títulode
Mestre
em
Engenharia
especialidade
Engenharia
Elétrica,área
de
concentração Controle,
Automação
eInformática
Industrial,e
aprovada
em
suaforma
final peloCurso
de
Pós-Graduação
BANCA
EXAIWINADORA
/70
Q..
-Prof. Vitóri
runo
Mazzola, Dr.Orientador
E
. Prof. Roberto de
Souzä
Salgado, Ph.D.E Coordenador do Curso de Pós-Graduação
em
Engenharia Elétrica
7/00,
VProf. Vitório
Br
.z azzola, Dr. (Presidente)-
E
Orientador
Prof.
Bernardo
Gonçalves Riso, Dr.f
. me (ur ` Prof.J
n-MarieFa
` es 9 . Ing 'P .a,Dr.
\
\
1
A
minha
avo Ivone\
iv
AGRADECIMENTOS
Ao
Prof. Vitório Bruno Mazzola, peloempenho
na orientação deste trabalho epela amizade demonstrada durante o nosso convívio. _
'
Aos
membros
da banca examinadora, pela aceitação de participação e pelascríticas e sugestões que contribuiram para o enriquecimento do trabalho.
Aos
professores e colegas doLCMI,
em
especial ao Roberto Ziller, LeonardoKammer
e Paulo Valim, pela paciência que tiveramcomigo
na solução de inúmeros problemas.Aos
companheiros de repúblicas: Alex; Aldebaro e Eduardo; Alexandre, Idmilsone Luís Otávio que conseguiram
me
agüentar durante todo este tempo.Ao
grande amigo Márcio 'Heidi Suguieda, pela demonstração deum
companheirismo raro e invejável.
-A
À
Galera de Base e a todos aquelescom
quem
pude compartilhar muitosmomentos
de alegria e descontração. 'À
UFSC
e àCAPES
pelo suporte material e financeiro.À
Soraya, por todo o carinho demonstrado e que,mesmo
nosmomentos
maisdificeis, sempre soube
me
incentivar e jamaisme
deixou desistir. iÀ
minha
famíliaeaos meus
amigos, pela confiança que sempreme
foi dada, aqual foi imprescindível para que eu pudesse chegar até aqui.
V
Um
agradecimento especial àminha
mãe, pela dedicação e por tudo o quetem
2.5 - Conclusão
... ... ._
Capítulo 3 -
As
Ferramentas Automatizadas deSuporte à Estellg ... .. 3.1 -Introdução ... ._ 3.2 -
ESTIM
... .Ç ... .. 3.2.1 -A
Simulação noESTIM
... _; ... ..3.2.1.1 - Acesso ao Estado Global da Especificação
... .. 3.2.1.2 - Controle da Simulação ... .. 3.2.1.3 - Estatistica da Simulação ... ._ 3.2.1.4 - Comentários de Qualificação ... .. 3.2.2 -
A
Verificação no ESTIlv1 ... .. 3.2.3 -As
Interfaces doESTIM
... .. 3.3 -EDT
... .; ... .. 3.3.1 -EDB
(Estelle Simulator/Debugger)... .. 3.3.1.1 - Acesso aos Objetos da Especificação
... .. 3.3.1.2 - Controle da Simulação ... _. 3.3.1.3 - Estatística da Simulação ... .. 30 3.3.2 -
EC
(Estelle-to-C Compiler) ... _. 3.4 -ECHIDNA
... .. 3.4.1 -O
Modelo
Estelle doECHIDNA
... .. 3.4.2 -
A
Simulação noECHIDNA
... ..
3.5 - Análise Comparativa das Ferramentas
... ..
3.5.1 - Seleção das Ferramentas Segundo as suas Funcionalidades.. Interface Gráfica de Auxílio às Ferramentas Automatizadas
3.6 - Conclusão
... ..
Capítulo 4 - Apresentação da Metodologia
... .. 4.1 -Introdução ... ...
.. 4.2 -
A
Técnica de Refinamentos Sucessivos... .. 4.3 - Verificação
X
Simulação ... .. 4.4 -A
Metodologia ... _. 4.4.1 -A
Especificação Funcional ... .. -4.4.1.1 -
Mecanismos
de Estelle(*) Utilizados... .. 4.4.1.2 -
A
Validação da Especificação Funcional... .. 4.4.2 -
A
Especificação Orientada aModelo
... .. 4.4.2.1 -
Mecanismos
de Estelle(*) Utilizados... .. 4.4.2.2 -
A
Validação da Especificação Orientada a Modelo..SUMÁRIO
'Siglas ... _.
Resumo
... _.Abstract ... ... _.
Capítulo 1 -Introdução Geral_..; ... _.
'
1.1 _ objetivo do Trabalho ... _.
1.2 - Organização do Trabalho ... ... _.
Capítulo 2 -
A
Concepção
de Aplicações Distribuídas ... _.2.1 -Introdução ... ._ 2.2 -
As
Etapas do Desenvolvimento de Aplicações Distribuídas2.2.1 -
O
Modelo do
Ciclo de Vida ... _. 2.2.2 - Aspectos da Validação de Aplicações Distribuídas. 2.2.2.1 - Verificação ... _. 2.2.2.2 - Simulação ... ... ._ ... _. 2.2.2.3 -'Teste de Implementação' do Protótipo ... _. 2.2.2.4 - Experimentação ... _. 2.3 -As
Técnicas de Descrição Formal ... ... _; ..._. 2.3.1 -
O
Porquê das Técnicas de Descrição Formal ... _. 2.3.2 -Os
Modelos
de Base ... _. 2.3.2.1 - Sistemas de Transições ..._. a)
Máquinas
de Estados Finitas ... _.b)
Redes
de Petri ... _. 2.3.2.2 - Outros Modelos Formais ..._. 2.3.2.3 -
Modelos
Híbridos ... _. 2.4 - Estelle ... ._ 2.4.1 - Conceitos Básicos ... _. 2.4.2 -A
Estrutura Hierárquica e o Paralelismo ... ._ 2.4.3 -A
Comunicação
em
Estelle ... ... _. 2.4.4 -A
Estrutura de Ligações ... _. 2.4.5 -A
Noção
deTempo
em
Estelle ... _. 2.4.6 - Aspectos Sintáticos de Estelle ... _. 2.4.6.1 - Canais e Pontos de Interação ... _. 2.4.6.2 -Módulos
e Instâncias deMódulos
... ._A
Técnica de Análise por Abstração ... .. 46A
Simulação na Especificação Orientada aModelo
... .. 504.4.3 -
A
Especificação Detalhada ... .. 50 4.4.3.1 - Implicações da Transformação doModelo
Estelle*em
EstelleISO
... ._ 51 4.4.3.2 -Mecanismos
de Estelle Utilizados... .. 55 4.4.3.3 -
A
Validação da Especificação Detalhada... .. 55 4.4.4 -
A
Especificação Orientada à Implementação... _. 56 4.4.4.1 - Obtenção do Código de Irnplementação ...
_. 57
Geração Semi-automática do Código de Implementação ... _. 57
_ 4.4.4.2
- Modificações na Especificação Orientada à Implementação
... .. 58 4.4.4.3 -
O
Teste da Implementação ... .. 604.5 - Conclusão
... .. 61
Capítulo 5 -
Um
Exemplo
de Aplicação da Metodologia... .. 62
5.1 -Introdução ... ... ... .. 62 5.2 -
Definição
doExemplo
de Aplicação... .. 62 5.3 -
Modelagem
deuma
CFM
... .. 64 5.3.1 -Modelagem
Funcional daCFM
... .. 64 5.3.2 -Modelagem
Espacial da ... _. 64 5.4 - Aplicação da Metodologia na Especificação doExemplo
... .. 65 5.4.1 - Especificação Infonnal da Tarefa de
Montagem
... _. 65 5.4.2 -
A
Especificação Funcional... .. 66 5.4.3 -
A
Especificação Orientada aModelo
... ..... 68
'
5.4.3.1 - Validação da Especificação Orientada a
Modelo
... ._ 70 5.4.4 -
A
Especificação Detalhada ...... .. 72 5.4.4.1 - Transfonnações nos Corpos dos
Módulos
... .. 73 5.4.4.2 - Validação da Especificação Detalhada
... ... .. 75
Execução de Cenários ... .. 75
Disparo
Randômico
de Transições ... .. 76 5.4.5 -A
Especificação 'Orientada à Implementação... .. 76
'
5.4.5.1 -
A
Utilização dos SoquetesUNIX
... .. 77 5.4.5.2 -
A
Utilização deuma
Biblioteca de Funções para os Soquetes... 78 5.4.5.3 - Preparando a Especificação Estelle do Supervisor da Tarefa deMontagem
para a Implementação ... .._. 795.4.5.4 -
A
Geração Automática do CódigoVIII
5.4.5.5 -
A
Execução Distribuída das Especifi_cações ... .. 825.5 - Conclusão ... .. 84
Capítulo 6 - Conclusões e Perspectivas ... ... ... 85
Anexo
I - Interface Gráfica para Auxílio na Utilização das Ferramentas de Suporte àEstelle ... 95
Anexo
II -A
Especificação Orientada aModelo
do Supervisor da Tarefa de Montagem... 99Anexo
III -A
Especificação Detalhada da Tarefa deMontagem
... .. 103Anexo IV
-A
Biblioteca de Funções para a Utilização dos SoquetesUNIX
... ... .. 108Anexo
V
-A
Especificação do Supervisor da Tarefa deMontagem
Preparada para accs
CFM
csr
EC
Ena
EDS
EDT
SIGLAS
Calculus of Communicating Systems Célula Flexível de
Montagem
Communicating Sequential Processes
4
Estelle to
C
Compiler V~
Estelle simulator/DeBugger _
Estelle Development System
Estelle Development
T
oolset AESTELLE
Extended State TransitionLanguage
A
ESTIM
EWS
FI
Estelle SimulaTor based on an Interpretative
Machine
Estelle WorkStation ~ AForma
IntermediáriaFIFO
first-in-first-out _ gISO
IUT
International Standardization Organization ,
Implementation
Under
TestLAAS-CNRS
Laboratoired
'A utomatique etd
'Analyse des Systèmesdu
CentreLCMI
LOTOS
ML
OSI
PC
PDU
PIPN
SDL
SEDOS
TCP
National
de
la Recherche Scientiƒique (França)'
V
Laboratório de Controle e Microlnformática V
Language
Of
Temporal Ordering SpecificationMeta-Language .
Open
System InterconnectionPersonal
Computer
Protocol
Data
UnitProlog Interpreted Petri Nets -
Specification
and
DescriptionLanguage
~Software Environment for the Design of
Open
distributed SystemsTDF
Técnica de Descrição Fom1alUDP
UserDatagram
ProtocolXl
RESUMO
Este trabalho apresenta
uma
metodologia de desenvolvimento de aplicações distribuídas.Tal metodologia é baseada na técnica de descrição fonnal Estelle, padronizada pela
ISO
(International Standardization Organization). .
A
Primeiramente é introduzida e justificada a utilização de técnicas de descrição fonnal,
após o que são apresentados os .principais conceitos de Estelle e de
uma
versão,chamada
Estelle*.
Em
seguida é discutida a importância da utilização de ferramentas automatizadas baseadas nas técnicas de descrição formal. Neste sentido, são apresentadas três ferramentas desuporte à Estelle, disponíveis-no Laboratório de Controle e Microinformática
(LCMI)
daUFSC.
A
metodologia, fundada sobre os conceitos de abstração e refinamentos sucessivos, é então introduzida, apresentandocomo
as características de Estelledevem
ser utilizadas nasdiferentes etapas do desenvolvimento de
uma
aplicação distribuída.Finalmente, a aplicação da metodologia é ilustrada utilizando
um
exemplo
típico deXII
ABSTRACT
This work presents a methodology for developing distributed applications, which is
based on the use of the Estelle
Formal
DescriptionT
echnique,_
F
irstly, the use ofFormal
Description Techniques for developing distributed applications is discussed. Following, themain
features of Estelleand
Estelle* (an extended versionof
Estelle) are introduced
and a
discussion about the use of software tools based on Estelle iscarried out. In order to support thisndiscussion, several Estelle-based software tools have been
studied
and
introduced in the sequel. `The methodology, which is based on abstraction
and
step-wise refinement concepts isthen proposed, describing
how
the Estelle mechanisms can be applied for each step ofapplication development. -F
Finally, the use .of the proposed methodology is ilustrated by the development
of
a typical-CAPÍTULO
1
I
t
INTRODUÇÃO
GERAL
Os
sistemas distribuídosvêm
assumindo, a cada dia,um
papel de destaque nosdesenvolvimentos
em
informática. Esta evolução se deve, deum
lado, aos grandes avançostecnológicos e, de outro lado, à crescente
demanda
por parte dos usuários destes sistemas.À
medida que os sistemas evoluem, novas necessidades vão surgindo do ponto de vista das
aplicações que
podem
ser desenvolvidasem
tomo
destes sistemas.Dentre os avanços tecnológicossocorridos nos últimos anos, não se pode deixar de
destacar os desenvolvimentos crescentes no dominio da microeletrônica,
bem como
aqueles datecnologia de comunicação e interconexão, que pennitiram o surgimento das redes de
comunicação de dados interligando
um
grandenúmero
de equipamentos infonnatizadosheterogêneos .[Le
Lann
8l]. A `As
motivações para a utilização de' sistemas distribuidos são muitas, entre elas o seumaior desempenho, o aumento da confiabilidade e a melhora ao acesso aos dados
em
uma
áreageograficamente dispersa [Singhal 91]. Existem na literatura diversas definições de sistema
distribuído, algumas mais amplas
como
a de [Liebovvitz 78], outras mais restritascomo
a de[Enslow 78]. [Le
Lann
8l], por sua vez, estabelece algumas caracteristicas lógicas e fisicaspresentes
em
um
sistema distribuído:V
~
número
arbitrário de processosusuários e de sistema;
- arquitetura modular consistindo de
um
número
possivelmente variável deelementos de processamento;
A
~ '
- comunicação através de passagem de mensagens,
sobre
uma
estrutura decomunicação compartilhada (excluindo a
memória
compartilhada); '- controle global do sistema, de
modo
a fomecer urna cooperação dinâmica entre os
Capitulo l - Introdução Geral 2
° atrasos variáveis de transmissão de mensagens entre processos. Existe sempre
um
tempo não nulo entre a produção de
um
evento porum
processo e a materializaçãodessa produção no processo destino (diferente da observação do evento pelo
processo destino). . .
Devido a estas características, a concepção de aplicações distribuídas toma-se umaztarefa
complexa já que diversos fatores, irrelevantes para as aplicações tradicionais, são de grande
importância para as aplicações distribuídas.
Não
somente o comportamento individual de cadacomponente dosistema deve ser considerado,
mas também
o comportamento globaldo
sistemaeas suas interações.
Como
conseqüência, aspectoscomo
o assincronismo, o paralelismo e o não-determinismo entre os componentes do sistema .devem ser observados.
Além
dessas, outrasconsiderações
podem
ser importantes dependendo da aplicação envolvida,como
a questão daconfiabilidade dos dados transmitidos, ou as restrições temporais
em
sistemas detempo
real.1.1 -
Objetivo
do
Trabalho
Os
aspectos levantados anteriormente levam a crer que o desenvolvimento deuma
aplicação distribuída deve ser
fimdado
sobreum
conjunto de regras ouuma
metodologia queseja coerente e, quando possível, suportada por
um
conjunto de_ ferramentas de software para oapoio à concepção.
O
objetivo do presente trabalho consiste, então,em
apresentaruma
metodologia deconcepção de aplicações distribuídas, que permita
uma
exploração racional das vantagensoferecidas por tal sistema, através da consideração dos diversos aspectos característicos desta
classe de aplicações.
A
metodologia a ser apresentada estáfimdada
no trabalho desenvolvidoem
[Mazzola 91] e é baseada na utilização da técnica de descrição formal Estelle, técnica estadefinida pela
ISO
(International Standardizaiion Organization), para a concepção de protocolosde comunicação do
modelo
de referênciaOSI (Open
System Interconnection)[Zimennmann
80].Estelle foi escolhida pelo fato de oferecer
um
conjunto de facilidades de especificaçãoorientadas aos protocolos de comunicação,
mas
que permitem levarem
conta os aspectos erestrições típicos das aplicações distribuídas, de
um
ponto de vista mais global..Trabalhosanteriores. puderam demonstrar a adequação -de técnicasjdedescrição fonnal ao desenvolvimento
de outras aplicações além dos protocolos de comunicação, citando-se por
exemplo
o trabalhorealizado
em
[Mazzola 91] para sistemas de manufatura.Além
disso, aidisponibilidade deCapitulo l - lntrodução Geral 3
de tais ferramentas é de fundamental importância no processo de concepção de
uma
aplicaçãodistribuída.
1.2
-Organização
do
Trabalho
.No
capítulo 2 são introduzidos alguns aspectos referentes ao desenvolvimento deaplicações distribuídas,
como
omodelo
do ciclo de vida e a questão da validação.Em
seguidasão introduzidas as técnicas de descrição fonnal e as justificativas para a utilização das
mesmas.
Estelle é então apresentada, *destacando seus conceitos básicos, mecanismos de comunicação, a
estrutura hierárquica e de ligações, o paralelismo e a noção de tempo. Finalmente,
uma
versão deEstelle
chamada
Estelle* étambém
apresentada. _O
capítulo 3 é referente às ferramentas automatizadas de suporte à Estelle. Trêsferramentas disponíveis no
LCM1
(Laboratório de Controle e Microinfonnática) daUFSC
sãodetalhadas, procurando situá-las no processo de desenvolvimento de aplicações distribuídas e
abordando
também
as facilidades que cadauma
oferece ao usuário.No
capítulo 4 é apresentada a metodologia de desenvolvimento de aplicaçõesdistribuídas. Primeiramente, são introduzidos os conceitos de abstração e refinamentos
sucessivos que
formam
a base da metodologia.A
metodologia, que consisteem
quatro níveisprincipais de especificação, é então introduzida, ressaltando-se principalmente os
mecanismos
de Estelle e os aspectos de validação relevantes para cada nível. .
.
No
capítulo 5,um
exemplo de aplicação da metodologia proposta é apresentado.A
aplicação consiste na especificação da tarefa de
montagem
deuma
Célula Flexível deMontagem.
Tal especificação é desenvolvidaem
níveis, de acordocom
o que propõe aCAPÍTULO
2
O
~
A
CONCEPÇÃODE
APLICAÇÕES
DISTRIBUÍDAS
2.1
-Introdução
No
desenvolvimento de aplicações distribuidasdevem
ser levadasem
consideraçãoalgumas características que normalmente não são relevantes no desenvolvimento
de
uma
aplicação tradicional,
como
questões de paralelismo, comunicação e outras.A
dificuldade deexpressar tais caracteristicas de
uma
maneira informal,como
a linguagem natural, motivou odesenvolvimento de Técnicas de Descrição Formal (TDF). Estas técnicas de descrição formal foram, então, desenvolvidas
com
o objetivo de permitir a produção de especificações completas,sem
ambigüidades, claras e concisas [Vissers 88].'
'
Neste capítulo serão vistas as principais etapas do desenvolvimento de aplicações
distribuídas, apresentando
um
modelo
do ciclo de vida do software e algumas técnicas devalidação.
A
importância da utilização de técnicas de descrição fonnal será justificada,apresentando
em
seguida a técnica de descrição fonnal Estelle, mostrando seus aspectoszsintáticos e semânticos;
uma
atençãotambém
é dada auma
versão de Estelle ,denominada
Estelle*, que permiteum
maior grau de abstraçãoem
relação a algumas' características deEstelle. .
_
2.2
-As
Etapas
do
Desenvolvimento de
Aplicações
Distribuídas
2.2.1 -
O
Modelo
do
Ciclo
de
Vida
O
modelo
do ciclo de vida do software representa as atividades quecomportam
odesenvolvimento e a evolução do software. Existem diversos modelos de ciclo de vida
em
uso,X
Capítulo 2 -
A
Concepção de Aplicações Distribuídas5
descrição das etapas de desenvolvimento do sistema e dos produtos fomecidos por cada
uma
dessas etapas.
As
etapas e osnomes
específicos variam deum
modelo para outro mas,genericamente, as etapas a seguir são adequadas tanto para aplicações tradicionais
como
paraaplicações distribuídas
[Bochmann
90]: 'i
o análise de requisitos; '
o projeto; V
o implementação;
o manutenção.
A
figura 2.1 a seguir mostra as etapas concernentes ao desenvolvimento do softwareapeciƒicação V informal dos requisitos alização da Ziwvífiwrãv
+
` fflflävflfll v.1¿¿¢¡,¿,, ga_
ÀHÂLISE
DE
_, ~ ==1;=°'fi¢z_,ff°REQUISITOS
mpeciƒicação funcional V , realizapãoda fl¡›¢‹-'ifiwcãv azmlluzazz vzzudzzçâa da . wpeáficøpão' dzzzziizmz _ _'_
PROJETO
_ apecificação detalhada ga-ação do código de _.. código de+
implanentação M1138” de -«_
IMPLEMENTÀÇÃO
implementaçãoFigura_2.l -
As
Etapas de Desenvolvimento do SoftwareNa
etapa de análisede
requisitos é realizada a definição do problemaem
função doCapitulo 2 -
A
Concepção de Aplicações Distribuídas 6especificação infomial dos requisitos é apresentada sob a forma textual e normalmente apresenta
diagramas para facilitar a compreensão do problema. Compreendidos os detalhes do problema, desenvolve-se a especificaçãoƒuncional do sistema que deve apresentar
umesboço
da estruturado sistema. .
i' '
L
A
etapa de projeto consisteem
refinamentos sucessivos das especificações até aobtenção da implementação. Existe normalmentevpelo
menos
urna especificação intermediária(mais detalhada) entre a especificação funcional e a implementação,
chamada
especificaçãodetalhada.
Cada
uma
dessas especificações mais-detalhadas deve ser avalidadacom
relação àespecificação mais abstrata,
como
será visto na seção seguinte.A
etapa de implementação consiste na geração do código executável, o qual deverefletir a estrutura do projeto e realizar as funções especificadas para o sistema.
A
validação docódigo de implementação é normalmente realizada através de testes.
2.2.2 -
Aspectos
da
Validação de Aplicações
Distribuídas
Neste trabalho 0 termo "validação" é utilizado
com
amesma
conotação de [Bochrnarm90], ou seja, qualquer atividade realizada
com
o intuito de se obter tuna especificaçãoou
implementação que satisfaçam os seus requisitos mais abstratos e não' contenham erros intemos
ou inconsistências. '
_
' '
`
Como
foi citado na seção anterior, a validação não constitui urna etapa única e isolada,mas
um
passo realizado ao final de cada processo de refinamento,como
pode ser visto na figura2.1. Esses 'processos de validação são de vital importância visto que erros detectados nas
primeiras etapas do desenvolvimento do software são bem,
menos
custososem
terrnos decorreção. Ainda, no caso da detecção de algum erro, algurnas modificações
podem
ser realizadasna especificação mais abstrata, já que esta
servecomo
tuna referência para a validação daespecificação mais detalhada.
As
atividades de validaçãopodem
ser classificadas de acordocom
o tipo de análise queé efetuada sobre urna dada especificação
[Bochmarm
90]:- análise estática: é a análise baseada no texto da especificação. Este tipo de análise
permite a detecção de erros de sintaxe, regras de escopo, confonnidade de tipos e
outras condições semânticas.
A
análise estática é similar ao processo de compilaçãoCapítulo 2 -
A
Concepção de Aplicações Distribuídas 7.ø análise dinâmica: neste tipo de análise é considerado o comportamento dinâmico
do sistema especificado
em
um
determinado ambiente de execução. Apesar daanálise dinâmica ser normalmente mais complexa que a análise estática, ela é capaz
de detectar certos erros que não
podem
ser detectados através da análise estática.As
técnicas de análise dinâmica apresentam característicastipicamente complementaresentre si.
As
principais técnicas utilizadas são av verificação, a simulação e o teste deimplementação do protótipo. Recentemente foi proposta
uma
técnica intermediária entre asimulação e a implementação do protótipo,
chamada
experimentação [Jard 89, Jézéquel 91].A
seguir, serão analisadas as características de cadauma
das técnicas acima. `2.2.2.1 -
Verificação
O
objetivo da verificação é provar *fonnalmente .queuma
especificaçãoou
implementação satisfaz certas propriedades desejadas, utilizando métodos n`gorosos e
matematicamente justificados. Dois diferentes tipos de verificação
podem
ser usados[Emberg
9l]: '
' V
. »
o prova de propriedades individuais de
uma
especificação. Neste caso as propriedadessão formalmente formuladas, utilizando por exemplo
uma
lógica modal, e depoisverifica-se se o sistema satisfaz a essas propriedades. Exemplos deepropriedades
'
que
podem
ser verificadas `desta fonna são: ausência de bloqueio (deadlock),
definição do comportamento da especificação
em
todas as situações e outras;,o comparação de duas especificações diferentes para .provar que elas são
"equivalentes"
ou
queuma
é a implementação correta da outra.2.2.2.2 -
Simulação
_
A
simulação érealizadaem
um
ambiente simulado (na maioria dos casos centralizado)e consiste na observação de
um
modelo
executável do sistema.Ao
contrário da_ven`ficação, asimulação não cobre todas as possibilidades de execução do sistema. Todavia, ela
pode
seraplicada a sistemas bastante complexos e, quando
bem
utilizada, permite a detecção de erroseficazmente.
A
sua principal dificuldade reside na necessidadede
descrever formalmente e'Í r
Capítulo 2 -
A
Concepção de Aplicações Distribuídas_ 3
realista -(nem de interesse) levar
em
consideração todos os parâmetros deum
sistema realcomo,
por exemplo, a influência exata do tamanho da
mensagem
nos atrasos de transmissão [Jard 89].2.2.2.3 -
Teste
de Implementação do
Protótipo
-Esta técnica baseia-se na observação de
um
protótipo (ou do próprio sistema final)em
um
ambiente de execução real e a sua avaliaçãoem
relação à especificação.Um
pontoimportante nesta técnica é a seleção de casos de_ testes. Esses casos de testes
devem
serapropriados de maneira a tentar cobrir os principais aspectos do comportamento .do sistema,
tendo
como
resultadoum
conjunto de testes, algumas vezes chamado de seqüência de testes.Para o caso
em
que a implementação é testada para verificar a sua conformidadecom
a especificação, esses testes são usualmente determinadoscom
base na especificação. Esse tipo deteste é conhecido
como
teste de conformidade e é freqüentemente utilizado no caso deprotocolos de comunicação. t
-
Enquanto na área dos protocolos de comunicação OSI, seqüências de testes padrões são
desenvolvidas para testar a conformidade das implementações
com
os padrões de protocolos, aseleção de casos de testes é ainda
um
item importante, visto que alguns requisitos adicionaiscomo
odesempenho
e a robustez não são cobertos pelos testes de conformidade[Bochmann
90].'
Como
no caso da simulação, o teste de implementação do protótipo não abrange todosos comportamentos possiveis do sistema e, dessafonna, sua função principal és a detecção de
erros eventuais.
Uma
outra dificuldade é a falta de ferramentas que permitem observar ocomportamento de
um
sistema distribuídocomo
um
todo. ..
_O
estudo de técnicas de geração de seqüências de teste a partir de especificaçõesformais é assunto de
um
trabalho realizado noLCMI
para futura integraçãoem
um
ambiente deauxílio ao teste -[Silva 94]. ' V
2.2.2.4 -
Experimentação
A
experimentação é urna fonna de simulação distribuída na qual o comportamento domodelo
em
questão é observadoem
um
arnbiente distribuído. Dessa maneira, o ambiente deexecução não precisa ser modelado
(como
no caso anterior), sendo pois fomecido pela própriar
Capitulo 2 -
A
Concepção de Aplicações Distribuídas 9máquina alvo, além de fomecer indicações de
desempenho
em
relação a critérios de eficáciaou
de qualidade.
Além
disso,opoder
de cálculo desse tipo de máquinatoma
possível a validaçãode algoritmos distribuídos constituídos de milhares de processos.
A
desvantagem principal daexperimentação reside na dificuldade de efetuar medições e -observações distribuídas, as quais necessitam de técnicas especiais [J ard 89, J ézéquel 91].
2.3
-,As
Técnicas
de
Descrição
Formal
2.3.1 -
O
Porquê
das Técnicas de Descrição
Formal
-
As
técnicas informais de descrição,
como
as descrições narrativasem
linguagemnatural, têm-se mostrado ineficientes
como
única forma de especificação de sistemas computacionaisem
geral. Quanto maior a complexidade do sistema,como
no caso dos sistemasdistribuídos, maior ainda é a ineficiência de tais técnicas. Essa ineficiência ocorre,
principalmente, devido à existência de ambigüidades na especificação as' quais
podem
darorigem a diferentes interpretações e, conseqüentemente, a erros de implementação [Sidhu _89].
As
técnicas de descrição formal apresentam ainda outras características que enfatizam aimportância da sua utilização na concepção de qualquer aplicação distribuída
[Azema
87, Sidhu89]: t
- V
`
.
_- possibilitam a análise das especificações e, conseqüentemente, a detecção de erros
desde a fase de definição das necessidades; '
o servem
como
uma
referência a todas as pessoas ou equipes envolvidas naconcepção global da aplicação;
o servem de base
comum
para a utilização de ferramentas automatizadas devalidação, geração de código e geração de seqüênciasde testes.
2.3.2 -
Os
Modelos
de
Base
As
técnicas de descrição formal(TDF)
desenvolvidas baseiam-seem
classes diferentesCapítulo 2 -
A
Concepção de Aplicações Distribuídas 102.3.2.1 -
Sistemas
de
Transições
Um
sistema de transição é caracterizado porum
conjunto(usualmente infinito) depossíveis estados Q, sendo que,
em
um
dado instante qualquer, o sistema se encontraem
um
estado particular q
eQ.
O
sistema pode efetuaruma
transição (considerada instantânea eatômica); para tal escreve-se q -› q' para indicar que o sistema pode fazer a transição do estado
q para o estado q' e dizer que q' é diretamente acessível a partir de-q. Estando
em
um
estado q, osistema pode selecionar, após algum
tempo
finito, alguma transição que é possível de serexecutada a partir de q. Essa liberdade introduz, na maioria dos casos,
um
não-determinismo nocomportamento do sistema.
Um
sistema é dito, então, determinísticose, e somente se, para cadaq
eQ
,existe nomáximo
um
q' tal que q -› q'; caso contrário, o sistema é não-deterrninístico[Bochmann
831.Os
modelos a seguirpodem
apresentaruma
representação semântica de sistemade transições: _
A)
MÁQUINAS
DE
EsTADos
FINITAS
V.
_
-
Uma
máquina de estados finita [Danthine 80] é Luna 5-tupla (X,1,0,N,M) onde
X
éum
conjunto finito de estados; I é
um
conjunto finito de entradas;O
éum
conjuntofinito de saídas;N
é Luna função de transição de estados. eM
éuma
função de saída (e ação).N
eM
expressam'ocomportamento da máquina. Se,
em
qualquer estado,uma
entrada é recebida, a função de saídairá indicar a saída a ser gerada e a função de transição de estados irá indicar o novo estado da
máquina.
Mensagens
recebidas pertencem ao conjunto das entradas e mensagens enviadas aoconjunto- das saídas, sendo
também
permitido introduzir, no conjunto das entradas, "eventosintemos" ou "eventos nulos" que são necessários para modelar eventos que ocorrem fora da
especificação
mas
diretamente relacionadoscom
o seu comportamento; ' .~
B)
REDES
DE
PETRI
_ j ,_
A
rede de Petri [Murata 89] éuma
5-tupla PN=(P,T,F,W,Mo) ondeP
éum
conjuntofinito de lugares,
T
éum
conjunto finito de transições,F
éum
conjunto de arcos,W
é a funçãopeso e
Mú
é a marcação inicial.A
rede de Petri possui dois tipos de nós, chamados lugarese transições, e conectados através e arcos queunem
ou
um
lugar a. urna transição ouuma
transiçãoa Lun lugar.
Na
representação gráfica da rede de Petri, os lugares são desenhadoscomo
círculos e ~as transições
como
barras ou caixas.Os
arcos sao rotuladoscom
os seus pesos (inteirospositivos), onde
um
arco de peso k pode ser interpretadocomo
um
conjunto .de k arcos paralelos.Uma
marcação
(estado) atribui a cada lugarum
inteiro não negativo; seuma
marcação atribui alugar
p
um
inteiro não negativo k, diz-se que 0 lugarp
estámarcado
'com k fichas.Na
Capitulo 2 - A Concepção de_Aplicações Distribuídas ll
Uma
marcação é denotada porM,
um
vetor detamanho
m
onde é o número total de lugares.O
p-ésimo componente de A/L denotado por MÚD), é o
número
de fichas no lugar p.Na
modelagem,
usando o conceito de condições e eventos, os lugares representam as condições e as transições
representam os eventos.
Uma
transição (evento) possuium
certonúmero
de lugares de entrada e de saída representando as pré-condições e as pós-condições do evento, respectivamente.A
representação do comportamento dinâmico de
um
sistema pode ser simuladotporuma
rede' dePetri, através -da
mudança
da marcação da rede, de acordocom
as seguintes regras de disparo dastransições: _
g -
0
uma
transição t é dita estar habilitada se cada lugar de entradap
de t estámarcado
com
pelomenos
w(p,t) fichas, onde wQ2,t)é o 'peso do arcodep
para t;'
-
uma
transição habilitada pode ser ou não disparada (dependendo se o evento de fatoacontece ou não); ç _
- 0 o
disparo de
uma
transição retira w(p,t) fichas de cada lugar de entradap
de t eadiciona w(t, p) fichas
em
cada lugar de saídap
de t, onde w(t,p) é o pesodo
arco det para p. V ._
Um
outro tipo de sistema que «pode ser representadocomo
um
sistema de transição sãoas álgebras de processos, nas quais
um
sistema distribuído é descrito poruma
equação decomportamento citando-se,
em
particular, 0CCS
(Calculusof
Communicating Systems) [Milner80].
2.3.2.2 -
Outros
Modelos
Formais
Outros modelos, que não utilizam explicitamente os sistemas de transições, foram
desenvolvidos, tendo suas -origens- na teoria _de linguagens da lógica; dentre estes modelos,
destacam-se: ~
o as gramaticas formais [Harangozo 78] onde as frases geradas pela gramática
correspondem às seqüências válidas de eventos que caracterizam o sistema; '
o os tipos abstratas de dados algébricos nos quais, pelas regras de escrita
é possível,
de maneira semi-automática (definição 'de esquemas de provas), verificar as
Capítulo 2 -
A
Concepção de Aplicações DistribuídasA
12
o a lógica temporal [Schwartz 82] que pennite derivar seqüências válidas de eventos
~
de
um
sistema a partir de asserçoes de lógica temporal caracterizando a estruturadessa seqüências.
2.3.2.3 -
Modelos
Híbridos
-
Os
modeloshíbridos foram desenvolvidos para especificar as propriedades de ,um
sistema através de duas técnicas complementares - por exemplo, redes de Petri e lógica temporal
[Diaz 83] e, de
uma
maneira mais geral, para responder auma
necessidade de especificar conjuntamente o paralelismo e o tratamento dos dados como, por exemplo,um
modelo
misto rede de Petri/tipos abstratos algébricos [Martin 86].A
i Dentre estes modelos híbridos destacam-se as três
TDFs
(Estelle,LOTOS
e SDL),adotadas
como
padrão intemacional para especificação de protocolos de comunicação.A
seguir,serão apresentadas as características principais da técnica de descrição formal Estelle.
2.4
-Estelle
Estelle (Extended State Transition Language)`[Lirm 85,
Budkowski
87, Courtiat 87a,Estelle 88] é a segunda técnica de descrição formal desenvolvida e padronizada pela
ISO
baseada
em
uma
máquina de estados finita estendida, que utiliza a linguagem de programaçãoPascal para a representação dos dados.
A
seguir serão apresentadas as características principaisde Estelle. `
-
2.4.1 -
Conceitos
Básicos
V
Uma
especificação Estelle é constituída deuma
coleção de componentes comunicantesdenominados módulos.
Cada módulo
apresentaumçnúmero
finito de pontos de interação(extemos
ou
intemos), através dos quaisum
conjunto de interações pode ser enviadas erecebidas. _
'
-O comportamento intemo de
um
módulo
é descrito poruma
máquina de estadosCapítulo 2 -
A
Concepção de Aplicações Distribuídas13
menos
uma
transição.Caso
contrário, omódulo
é dito inativo (ou passivo). Finalmente,um
módulo
pode possuirum
dos seguintes atributos: systemprocess, process, systemactivityou
activity, que serão descritos a seguir. .
V _
`
2.4.2 -
A
Estrutura Hierárquica
eo Paralelismo
Os
módulosqueformam
a arquitetura da especificaçãopodem
ser aninhados,ou
seja,podem
ser refinadosem
submódulos, constituindouma
estrutura hierarquizada euma
relaçãopai/filho entre os componentes da especificação. Essa hierarquia deve respeitar os seguintes
princípios
em
relação aos atributos citados na seção anterior [Budkowski 87]: «ø todo
módulo
ativo deve possuirum
atributo;o subsistemas (módulos systemprocess ou systemactivity) não
podem
seraninhados
no interior de
um
módulo
com
atributo;V
. -
ø módulos process ou activity
devem
ser aninhados no interior deum
subsistema;
- módulos rocess e stem 'rocess só
dem
ser refinadosem
módulos rocessou
P
P
activity; ` . V ' ~ø módulos activity e systemactivity só
podem
ser refinadosem
módulosactivity.
t
Além
disso, por coerênciacom
os princípios acima, qualquer
módulo
que incorpore.subsistemas deve ser inativo e
sem
atributo.Os
atributos acimadefinem
ainda a maneira pelaqual as transições de
uma
especificação serão executadas, .com relação aos aspectos deparalelismo e não-determinismo. Dessa forma são possíveis os seguintes tipos de paralelismo: «
o paralelismo assíncrono entre subsistemas (systemprocess ou
systemactivity).
Cada
um
dos subsistemas selecionaum
conjunto de transições prontas para disparar (nomáximo
uma
por módulo) e as executatem paralelo; de fonna independente. Porexemplo, entre os módulos
A1
eA2
da figura 2.2; ~o paralelismo síncrono entre transições de
um
mesmo
subsistema.O
subsistemaseleciona as transições prontas para disparar (no
máximo
uma
por módulo) e asexecuta simultaneamente.
Somente
após o término da execução de todas as_ transições
uma
próxima seleção de transições pode ocorrer.O
paralelismo síncrono
Capitulo 2 -
A
Concepção de Aplicações Distribuídas 14_ systemprocess.
Os
módulosAll
eAl2
da figura 2.2 apresentam este tipo deparalelismo; '
ç
o não-determinisnw entre' transições de
um
mesmo
subsistema-O
subsistemaseleciona as transições prontas para disparar (no
máximo
uma
por módulo) eexecuta apenas
uma
delas, sendo a escolha dessa transição não-detenninista.O
não- detenninismo ocorre entre módulos activity descendentes deum
subsistemasystemactivity,
como
nos módulosA2]
eA22
da figura 2.2. ~Especificação A (sem atributo)
módulo Al .systemprocçss móduloA2 .systemactivíty
módulo All process módu.loA2l activity
módulo Al2 activity módulo A22 activity
Figura 2.2 -
Exemplo
da Estrutura deuma
Especificação EstelleÉ
importante notar que, independentemente' domodo
como
sao definidos os módulos, a escolha de qual transição - dentre várias selecionadas - será disparada no interior deum
módulo
é sempre não deterrninista. ' A
2.4.3 -
A
Comunicação
em
EstelleA
comunicação entre módulos Estelle pode ser efetuada através de troca de mensagensou através de
um
compartilhamento restrito de variáveis.Um
módulo
pode enviaruma
mensagem
(também chamada
interação) aum
outromódulo
desde que exista Luna ligaçãopreestabelecida entre dois pontos de interação desses módulos.
Uma
interação recebida porum
módulo
no seu ponto de interação é anexada auma
filaFIFO
ilimitada associada a este ponto deinteração.
Uma
filaFIFO
pode pertencer exclusivamente aum
único ponto de interação e, nessecapitulo 2 _
A
concepção de Aplicações Distribuídas15
entre todos os pontos de interação
de
um
módulo, ela échamada
de filacomum
(common
queue).
Uma
interaçãosó pode ser enviada porum
ponto de interação que sejaum
ponto final deuma
ligação de comunicação e, além disso, essa interação será recebida somente pelo outroponto final dessa ligação.
Em
relação ao compartilhamento de variáveis, este só é permitido entreum
módulo
filho e o seu
módulo
pai. Essas variáveisdevem
ser declaradascomo
exported pelomódulo
filho, sendo que o acesso simultâneo a essas variáveis pelos módulos filho e pai é impedido
devido ao princípio da prioridade pai/filho, na qual a execução das transições do
módulo
pai sãoprioritárias
em
relação às domódulo
filho.2.4.4 -
A
Estrutura
de`Ligações
'
V
A
estrutura de comunicação
define
a ligação entre os pontos de interação dosmódulos
que
podem
serconectados (connect) ou vinculados (attach). Dois pontos de interação são ditosconectados quando,ligam dois pontos de interação externos de dois módulos "irmãos" ou, ligam
dois pontos de interação intemos de
um
mesmo
módulo
ou, ainda, ligamum
ponto de interaçãoexterno de
um
módulo
eumponto
de interação intemo do seumódulo
pai. Dois pontos deinteração são ditos vinculados quando ligam
um
ponto de interação extemo deum
módulo
eum
ponto de interação
extemo
do seumódulo
pai.A
figura 2.3 a seguir mostra essas possíveisligações. _ - . ` -' módulo A1 | V módulo Al 1 ' . E legenda: -
.
Q
ponto de interação extemo Í'
Q
ponto de interação intemo2 lnódu.lO 3 i
A
cgnexa
í
víI101110Capitulo 2 - 'A Concepção de Aplicações Distribuídas
ló
Essas ligações entre pontos de interação devem, contudo, obedecer às seguintes
restrições [Budkowski 87]: '
ø
um
ponto de interação pode ser conectado a nomáximo
um
ponto de interação enão pode ser conectado a ele
mesmo;
Vø
um
ponto de interação extemo ,deum
módulo
pode ser vinculado a nomáximo
um
ponto de interação extemo do seu
módulo
pai e a nomáximo
um
ponto de interaçãode seus módulos filhos;
-_
o
um
ponto de interação extemo deum
módulo
vinculado aum
'ponto deinteração
extemo
do seumódulo
pai não pode estar simultaneamente conectado. «-Como
citado anteriormente, módulos que incorporam subsistemas são sempre inativose, sendo assim, a estrutura' dos subsistemas e suas ligações de comunicação, Luna vez
inicializadas, não
podem
ser alteradas, o que lhe atribuium
comportamento estático. Por outrolado, a estrutura intema de cada subsistema pode variar, já que as ações de
um
módulo
podem
incluir
comandos
de criação e destruição de módulos filhos e -de ligações' de comunicação,caracterizando
um
comportamento dinâmico. -` V
' _
V
2.4.5 -
A
Noção
de
Tempo em
EstelleA
noção detempo
é utilizadaem
Estelle para interpretar propriamente os delaysou
atrasos. Tais atrasos são valores dinâmicos atribuídos a algumas transições que indicam o
número
de unidades detempo
que a execução dessas_transições deve ser atrasada.Em
Estelle éassumida a hipótese de que os
tempos
de. execução das ações são desconhecidos, por seremconsiderados dependentes da' implementação.
As
transições Estelle quedevem
ser atrasadasdevem
conteruma
cláusulaçde' atraso da forma "delay(E1, E2)". Essa cláusula indica que aexecução de
uma
transição (se ela estiver habilitada) deve ser atrasada.Os
temposmínimo
emáximo
nos quais a transição pode ser atrasada são especificados pelas expressões inteirasE1
eE2, respectivamente. Nesse caso,
uma
implementação pode escolherum
valor de atraso concretoCapítulo 2 -
A
Concepção de Aplicações Distribuídas 172.4.6 -
Aspectos
Sintáticosde
Estelle2.4.6.1 -
Canais
ePontos de
Interação
Os
canais são construções quedefinem
um
conjunto específico de interações.Os
pontosde 'interação fazem referência a esses canais e, dessa maneira,
definem
precisamente o conjuntode interações que
podem
ser enviadas e recebidasfipelosmesmos,
como
pode ser observado nadefinição do canal a seguir: ~
. _'
~
'
_
channel, IDENT_CANAL (PAPEL1, PAPEL2)
- 'by PAPEL1: IDENT_INTERAÇÃO (LISTA_PARÂMETROS);
|DENT_INTERAÇAO (LISTA_PARÂMETROS);
by
PAPEL:
|DENr_|NrERAçÃo (|_|srA_PARÃMErRos);IDENT_INTERAÇÃO (LISTA_PARÂMETROS);
Pela definição acima, dois módulos- conectados através
de
seus pontos de interação àsextremidades desse canal desempenharão, respectivamente, as funções
PAPEL]
ePAPEL2.
O
ponto de interação do
módulo
que desempenhar afimção
PAPEL1
poderá enviar as primitivasdefinidas
em
PAPEL1
e receber as primitivas definidasem
PAPEL2.
O
contrário deve ocorrercom
o ponto de interação- do segtmdo módulo, o qual desempenhará _a funçãoPAPEL2.
A
definição dos pontos de interação para
ambos
os módulos seria, respectivamente:p1: IDENT_CANAL (PAPEL1) C _
p2: IDENT_CANAL (PAPEL2)
i
Nota-se, para_o caso acima, que ospontos de interação pl e p2
desempenham
papéisopostos, pois
como
estão conectados, tuna interaçao enviada porum
dos pontos de interaçaodeverá ser recebida pelo segundo e vice-versa.
No
casoem
que dois pontos de interação estejam vinculados às extremidades desse canal, eles deverão desempenhar omesmo
papel, já que asinterações recebidas por
um
deles deverão ser -"repassadas" para o segundo. Assim, as deñniçõesde
ambos
os pontos de interação seriam:-i
p1z |DENr_cANAL (PAPEL1)
. pzz IDENT_CANAL (PAPEL1)
Capitulo 2 -`
A
Concepção de Aplicações Distribuídas 13
p1: IDENT_CANAL (PAPEL1)
i
p2: IDENT_CANAL (PAPEL1)
2.4.6.2 -
Módulos
eInstâncias
de
Módulos
^1 0
Uma
instância demódulo
éuma
instância deum
tipo de módulo- genérico,podendo
existir várias instâncias de
um
mesmo
tipo demódulo
simultaneamente durante a execução deuma
especificação.Um
módulo
é especificado através da definição do cabeçalho domódulo
edo corpo do módulo. '
A
definiçãodo
cabeçalho do-módulo especifica o tipo domódulo
cujos valores sãoinstâncias
com
amesma
visibilidade extema, ou seja,com
osmesmos
pontos de interação,mesmas
variáveis exportadas emesmo
atributo. Essa definição contém onome
domódulo
e,opcionalmente,
um
atributo (systemprocess, process, .systemactivityou
activity), Luna lista deparâmetros formais e declarações de pontos de interação e variáveis exportadas.
- Pelo
menos
uma
definição de corpo demódulo
é declarada para cada definição decabeçalho do módulo.
A
definição do corpo domódulo
contém onome
do corpo euma
referência ao
nome
do cabeçalho domódulo
associado.O
corpo domódulo
é composto de trêspartes [Budkowski 87]: v ' V ø parte declaração ' ~ parte inicialização ø parte transição, A _ j -
A
parte declaração contém declarações usuais do Pascal (constantes, variáveis,procedimentos e funções) e declarações de objetos específicos de Estelle
como
canais, módulos,variáveis módulo, estados (e conjuntos de estados) e pontos de interaçãointernos. _
A
parte inicialização deum
corpo demódulo
especifica os valores de algumasvariáveis do
módulocom
os quais cada nova instância demódulo
inicia a sua execução.Em
particular,
podem
ser atribuídos valores a variáveis locais e a variáveis de controle. Variáveismódulo
podem
ser inicializadas, ou seja, instâncias de módulos descendentespodem
ser criadas.-
'
A
parte transição descreve o comportamento intemo
domódulo,
através da declaração deum
conjunto de transições.Cada
transição é composta deum
par condição/ação. 'Capitulo 2 -
A
Concepção de Aplicações Distribuídas 19A
condição da transição .consisteem
uma
ou mais cláusulas do tipo: from, when,provided, priority e delay.
A
cláusula 'fromESTADO"
caracteriza oESTADO
de controle noqual deve-se encontrar a instância de módulo; a cláusula "when p.INT", permite verificar a
presença da interação
INT
no topo da fila associada ao ponto de interação p; a cláusula"provided B", onde
B
éuma
expressão booleana, habilita ou não a transição se a avaliação dessa expressão resulta, respectivamente, verdadeira ou falsa; a cláusula "priority N",.ondeN
éuma
constante não negativa, detennina a prioridade .dessa transição
em
relação .às outras; a cláusula"delay (T1, T2)" especifica
um
tempo minimo
T1 eum
tempomáximo T2
entre os quais atransição pode ser disparada após ter sidohabilitada (contanto que ela permaneça habilitada por
pelo
menos
T1 unidades de tempo).Algumas
dessas cláusulaspodem
ser omitidas e nomáximo
uma
cláusula de cada tipo pode aparecer na condição de urna transição.Além
disso, as cláusulaswhen
e delay são exclusivas entre si. --A
ação deuma
transição é composta deuma
cláusulato`ESTADO"
especificando opróximo
ESTADO
de controle da instância de módulo, após o disparo da transição (se omitida, opróximo estado é o
mesmo
estado corrente) emn
bloco de instruções Pascal ("begin...end") quese ,executam no
momento
do disparo da transição.- f-
As
extensões Estelleem
relação a Pascal consistemem
comandos
adicionais quepermitem: criar instâncias de
módulo
("inít"), destruir intâncias de módulos ("re1ease"), criarligações entre pontos de interação ("connect", "attach"), destruir ligações entre pontos de
interação ("disconnect", "detach") e enviar interações ("output").
Além
desses, outroscomandos
são permitidos ("all", "j'orone", "eJ_cist"). .
A
As
principais restriçõesquanto aousode
Pascal adotadas -em Estelle são as seguintes:- todas as funções declaradas são puras,
ou
seja,sem
efeitos colaterais;`
i
- ponteiros só
podem
ser utilizadosem
construções puramente Pascal;0 uso restrito da função goto;
~ as declarações read e write não
podem
ser utilizadas;0 o tipo file não é permitido; '