Вы находитесь на странице: 1из 241

ITALO GIOV ANI A.

STEF ANI

wyhy hi ipsxewixy wegr sxe

Belo Horizonte Maro de 2007

Universidade Federal de Minas Gerais Instituto de Cincias Exatas Programa de Ps-Graduao em Cincia da Computao

wyhy hi ipsxewixy wegr sxe

hisserto presentd o gurso de sE qrduo em gini d gomputo d niversidde pederl de wins qeris omo requisito pril pr oteno do gru de westre em gini d gomputoF

ITALO GIOV ANI A. STEF ANI

Belo Horizonte Maro de 2007

esumo
y modelo de wquin de istdo estrt @ew E estrt tte whine A vem sendo mplmente utilizdo pr espei(o forml de diversos tipos de sistems devido o seu lto gru de stro e rigor mtemtioD o que filit ompreender o sistem modeldo e veri(r formlmente sus proprieddesF odeEse utilizr um lingugem sed no modelo ew pr esrever um espei(o em lto nvelD onheid omo wodelo fsioD e posteriormente sumetEl um proesso de trnsformo sedo no wtodo de e(nmento ew pr oter implemento vlidd e veri(dF y prinipl ojetivo do trlho wtodo de e(nmento wh @wwA propor %n um mtodo de espei(o em lto nvel que represente spetos de ew e om possiilidde de vlidr e veri(r o modelo onstrudo independente d implementE oF y proesso de re(nmento permite oterD utomtimenteD o digo exeutvel em wh e relizr veri(o utilizndo ferrment xuwF essimD podeEse %n veri(r utomtimente implemento de ordo om espei(oF

estrt
he estrt tte whine @ewA hs een used s lnguge for forml spei(tion to vrious systems due to the high level of strtion nd the mthemtil rigorF st filittes to understnd the modeled system nd to formlly verify propertiesF sing n ew lngugeD is possile to mke high level spei(tionD lled qround wodelD to e trnsformedD sed on he ew e(nement wethodD in n exeutle odeD vlidted nd veri(edF he min gol of he wh e(nement wethod is to propose high level speiE %n (tion method tht represents spets of ew with the possiility to vlidte nd to verify the uilded model independent of the implementtionF he re(nement proess utomtilly genertes the exeutle wh ode nd to rry through the veri(E %n tion using the xuw toolF husD the implementtion n e utomtilly veri(ed in ordne with the spei(tionF

iii

egrdeimentos
egrdeo os meus pisD stlo e wri do grmoD pelo poio e rinhoY o professor figonh pel on(nY os migos do vv pel ompnhiD e vind pelo rinhoD ompreensoD poio e toridF

umrio
I sntroduo
IFI IFP IFQ IFR wtodo de e(nmento F F F F F F F F F F F F F F F F F F F F F F F F F F istdo d erte F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F yjetivos do rlho F F F F F F F F F F F F F F F F F F F F F F F F F F F yrgnizo heste exto F F F F F F F F F F F F F F F F F F F F F F F F F F

I
I R S V

P wodelo porml ew
PFI wquin de istdo estrt F F F F F F F F F F F F F F F F F F F F F F F F PFIFI PFIFP PFIFQ PFIFR PFIFS PFIFT PFIFU PFP PFPFI PFPFP PFPFQ PFPFR PFQ PFQFI PFQFP PFQFQ PFQFR PFQFS PFQFT PFQFU PFQFV egrs fsis F F F F F F F F F F F F F F F F F F F F F F F F F F F ispei(o ew F F F F F F F F F F F F F F F F F F F F F F F F F egrs evnds F F F F F F F F F F F F F F F F F F F F F F F F F F ixemploX istem yperionl F F F F F F F F F F F F F F F F F F ew wultigentes F F F F F F F F F F F F F F F F F F F F F F F F F wquin de istdo pinit F F F F F F F F F F F F F F F F F F F F F gonluses F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F wodelo fsio F F F F F F F F F F F F F F F F F F F F F F F F F F F F ipos de e(nmento F F F F F F F F F F F F F F F F F F F F F F F y roesso F F F F F F F F F F F F F F F F F F F F F F F F F F F F F eplio do wtodo de e(nmento ew F F F F F F F F F F F F wdulos de rogrm F F F F F F F F F F F F F F F F F F F F F F F egr de trnsio F F F F F F F F F F F F F F F F F F F F F F F F F wenismos de isiilidde F F F F F F F F F F F F F F F F F F F F snterfes de egentes F F F F F F F F F F F F F F F F F F F F F F F F he(nies de wh %n F F F F F F F F F F F F F F F F F F F F F F F ees F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F gomunio entre egentes F F F F F F F F F F F F F F F F F F F F ixemploX westreEisrvo F F F F F F F F F F F F F F F F F F F F F vii

W
W II II IP IR IS IU IW IW PP PS PU PV PW QH QI QP QR QS QT QU QW

wtodo de e(nmento ew F F F F F F F F F F F F F F F F F F F F F F F

e vingugem wh %n F F F F F F F F F F F F F F F F F F F F F F F F F F F

PFQFW PFR

ixemploX rodutorEgonsumidor F F F F F F F F F F F F F F F F F F

RR RU SH

PFQFIH ixemploX emforo F F F F F F F F F F F F F F F F F F F F F F F F F gonluses F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

Q wtodo de e(nmento wh %n
QFI vingugem de wodelgem wh %n F F F F F F F F F F F F F F F F F F F F QFIFI QFIFP QFIFQ hesrio extul F F F F F F F F F F F F F F F F F F F F F F F F F F ipo estrto de hdos F F F F F F F F F F F F F F F F F F F F F F higrm de rnsio de istdos F F F F F F F F F F F F F F F F QFIFQFI QFIFQFP QFIFQFQ QFIFQFR QFIFQFS QFIFQFT QFIFQFU QFIFQFV QFIFQFW QFIFR QFIFRFI QFIFRFP QFIFS QFIFT QFIFU QFP QFPFI QFPFP QFPFQ QFQ QFQFI QFQFP QFQFQ QFQFR istdos F F F F F F F F F F F F F F F F F F F F F F F F F F istdo snterno F F F F F F F F F F F F F F F F F F F F F F rnsies F F F F F F F F F F F F F F F F F F F F F F F F F ees de trnsio F F F F F F F F F F F F F F F F F F F F gondies F F F F F F F F F F F F F F F F F F F F F F F F F etividdes F F F F F F F F F F F F F F F F F F F F F F F F F istdo iniil F F F F F F F F F F F F F F F F F F F F F F F istdo (nl F F F F F F F F F F F F F F F F F F F F F F F F gontrole qlol F F F F F F F F F F F F F F F F F F F F F F lger F F F F F F F F F F F F F F F F F F F F F F F F F F estres F F F F F F F F F F F F F F F F F F F F F F F F

SI
SI SP SQ SR SS SS ST SU SU SW SW TH TI TP TQ TR TR TT TT TU TU UI UR VQ VQ VR VS VV VV VV VW WH WI

qlossrio F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

wenismos de isiilidde F F F F F F F F F F F F F F F F F F F F lvrs eservds F F F F F F F F F F F F F F F F F F F F F F F F houmento F F F F F F F F F F F F F F F F F F F F F F F F F F F

ixemplos de istems F F F F F F F F F F F F F F F F F F F F F F F F F F F ilh e pil F F F F F F F F F F F F F F F F F F F F F F F F F F F F F esquis finri F F F F F F F F F F F F F F F F F F F F F F F F F F tntr dos pilsofos F F F F F F F F F F F F F F F F F F F F F F F F F ropriedde de istdo F F F F F F F F F F F F F F F F F F F F F F F r e s gondies de ees F F F F F F F F F F F F F F F F F F F higrm de d de istdo F F F F F F F F F F F F F F F F F F F roprieddes F F F F F F F F F F F F F F F F F F F F F F F F F F F F QFQFRFI QFQFRFP QFQFRFQ yperdores vgios F F F F F F F F F F F F F F F F F F F F yperdores emporis F F F F F F F F F F F F F F F F F F yutros yperdores F F F F F F F F F F F F F F F F F F F F

eursos evndos d vingugem de wodelgem wh F F F F F F F %n

QFR QFS

lido F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F egrs de e(nmento wh F F F F F F F F F F F F F F F F F F F F F F %n viii

QFSFI QFSFP QFSFQ QFSFR QFSFS QFT

ipo estrto de hdos F F F F F F F F F F F F F F F F F F F F F F higrm de rnsio de istdos F F F F F F F F F F F F F F F F higrm de d de istdo F F F F F F F F F F F F F F F F F F F

WP WS WV

qlossrio F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IIH wenismo de isiilidde F F F F F F F F F F F F F F F F F F F F F IIR

gonluses F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IIS

R eri(o eutomti de roprieddes


RFI RFIFI RFIFP RFIFQ RFP RFQ RFR

IIU

eri(o de wodelos @wodel gheking A F F F F F F F F F F F F F F F F F IIV

ymoli wodel eri(er @wA F F F F F F F F F F F F F F F F F F IPP


xuw F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IPQ eri(dor de wodelos pr ew F F F F F F F F F F F F F F F F F IQH

eri(o wtodo de e(nmento wh F F F F F F F F F F F F F F F IQQ %n gEwh F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IQR %n wpemento de wh gEwh %n %n F F F F F F F F F F F F F F F F F F IQS RFRFI RFRFP RFRFQ RFRFR RFRFS RFRFT e(nmento d lgerX tipos F F F F F F F F F F F F F F F F F F F IQS e(nmento d lgerX funes F F F F F F F F F F F F F F F F F IRI e(nmento d lgerX import F F F F F F F F F F F F F F F F F F IRI e(nmento d lgerX inlude F F F F F F F F F F F F F F F F F F IRP e(nmento de expresses F F F F F F F F F F F F F F F F F F F F F IRS e(nmento de regrs de trnsio F F F F F F F F F F F F F F F F IRT e(nmento de tipos F F F F F F F F F F F F F F F F F F F F F F F F ISW e(nmento de gentes F F F F F F F F F F F F F F F F F F F F F F ITH e(nmento d regr de trnsio F F F F F F F F F F F F F F F F F ITP roprieddes e invrintes F F F F F F F F F F F F F F F F F F F F F ITR

RFS

wpemento de gEwh xuw F F F F F F F F F F F F F F F F F F ISV %n RFSFI RFSFP RFSFQ RFSFR

RFT

gonluses F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ITS

S evlio do wtodo roposto


SFI SFP

ITU

y rolem d gldeir por F F F F F F F F F F F F F F F F F F F F F ITU niddes psis F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ITV SFPFI SFPFP SFPFQ niddes de wedid F F F F F F F F F F F F F F F F F F F F F F F F ITW lvul F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUP foms F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUR

SFQ SFR

gontroldor de unidde fsi F F F F F F F F F F F F F F F F F F F F F F F IUV istem de gontrole d gldeir por @fgA F F F F F F F F F F F F F IVP SFRFI SFRFP gontrole qlol F F F F F F F F F F F F F F F F F F F F F F F F F F F IVS hiEinitilwode F F F F F F F F F F F F F F F F F F F F F F F F F F IVV ix

SFRFQ SFRFR SFRFS SFRFT SFS SFT SFU

hiEnorml F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWI hiEdegrded F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWI hiEresue F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWI roprieddes F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWQ

higrm eh F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWR esultdos F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWR gonluses F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWW

T gonluso
TFI TFP TFQ

PHQ

smplemento d perrment F F F F F F F F F F F F F F F F F F F F F F F PHS rlhos eliondos F F F F F F F F F F F F F F F F F F F F F F F F F F F PHT rlhos puturos F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PIH

efernis filiogr(s

PIQ

vist de pigurs
IFI IFP IFQ PFI PFP PFQ PFR PFS QFI QFP QFQ QFR QFS QFT QFU QFV QFW ssos do re(nmentoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F rios proessos de re(nmentoF F F F F F F F F F F F F F F F F F F F F F F F isquem do wtodo de e(nmento wh %n F F F F F F F F F F F F F F F F ixemplo de um digrm pw F F F F F F F F F F F F F F F F F F F F F F F F ixemplo de digrm pw tipo sF F F F F F F F F F F F F F F F F F F F F F F ixemplo de digrm pw tipo ssF F F F F F F F F F F F F F F F F F F F F F F isquem do wtodo de e(nmento ewF F F F F F F F F F F F F F F F F F F roesso de projeto de sistems em lto nvelF pigur dptd de fHQ F itps de espei(o de sistemsF F F F F F F F F F F F F F F F F F F F F F F xoto pr ipo estrto de hdos F F F F F F F F F F F F F F F F F F F F epresento de um estdoD stte indi o nome do estdoF F F F F F F F F epresento de trnsio de estdoF F F F F F F F F F F F F F F F F F F F F F epresento de um oF F F F F F F F F F F F F F F F F F F F F F F F F F F epresento de um ondioF F F F F F F F F F F F F F F F F F F F F F F F F eninhmento de ondiesF F F F F F F F F F F F F F F F F F F F F F F F F F F itues de onorrni de )uxosF F F F F F F F F F F F F F F F F F F F F F F epresento e de(nio de tividdeF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q R U IV IV IW PI PV SQ SR SS ST SU SV SV SW TH TH TH TI TI TP TP TT TV UP UP UR

QFIH epresento do estdo iniilF

QFII epresento do estdo (nlF F F F F F F F F F F F F F F F F F F F F F F F F F QFIP gontrole qlolX devolve o )uxoF F F F F F F F F F F F F F F F F F F F F F F F QFIQ gontrole qlolX desvi o )uxoF F F F F F F F F F F F F F F F F F F F F F F F F QFIR gontrole qlolX omposioF F F F F F F F F F F F F F F F F F F F F F F F F F QFIS etuo do gontrole qlolF F F F F F F F F F F F F F F F F F F F F F F F F F F QFIT wenismos de visiiliddeF F F F F F F F F F F F F F F F F F F F F F F F F F F QFIU eh de um pilhF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QFIV eh pr pesquis inriF F F F F F F F F F F F F F F F F F F F F F F F F F F QFIW higrm pw pr esquis finriD primeir ordgem F F F F F F F F F QFPH higrm pw pr esquis finriD segund ordgemF F F F F F F F F xi

QFPI higrm de rnsio de istdos pr hilosopherF F F F F F F F F F F F F QFPP eh pr (lsofoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QFPQ eh pr host de (lsofoF F F F F F F F F F F F F F F F F F F F F F F F F F F F QFPR higrm de rnsio de istdos pr rostF F F F F F F F F F F F F F F F F QFPS higrm ehF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QFPT epresento de um propriedde de estdoF F F F F F F F F F F F F F F F F QFPU r e s ondies de um oF F F F F F F F F F F F F F F F F F F F F F F F QFPV gontrole qlol d gldeir porF F F F F F F F F F F F F F F F F F F F F F QFPW pormo do hiF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QFQH his pr mdulo de pilsofoF F F F F F F F F F F F F F F F F F F F F F F F F QFQI ixemplo de ipo estrto de hdosF F F F F F F F F F F F F F F F F F F F F F QFQP istdo iniilD prepro de um genteF F F F F F F F F F F F F F F F F F F F QFQQ istdo f D (nliz exeuo de um genteF F F F F F F F F F F F F F F F F F

US UT UV UV VI VQ VR VS VT VU WQ WT WU

QFQR rnsio de estdoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHH QFQS rnsio om origem igul o destinoF F F F F F F F F F F F F F F F F F F F F IHH QFQT gondio om um )uxo de sdF F F F F F F F F F F F F F F F F F F F F F F F IHI QFQU gondio om dois )uxos de sdF F F F F F F F F F F F F F F F F F F F F F F IHP QFQV eqni de ondiesF F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHQ QFQW itues de onorrni de )uxosF F F F F F F F F F F F F F F F F F F F F F F IHR QFRH r e ps ondies de oF F F F F F F F F F F F F F F F F F F F F F F F F F F IHT QFRI etividde de um estdoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHT QFRP ropriedde de estdoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHU QFRQ gontrole qlolF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHV QFRR higrm ehF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IIR RFI RFP RFQ SFI SFP SFQ SFR SFS SFT SFU SFV SFW higrm finrio de heisoF F F F F F F F F F F F F F F F F F F F F F F F F F IPI epresento de um estrutur uripke em yfhhF F F F F F F F F F F F F F IPI itps de re(nmento de wh pr xuwF F F F F F F F F F F F F F F IQR %n eh wesuring nitF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUH

wesuring nit F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUH


eh lveF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUP

lve F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUQ
eh ump F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUS hi ump F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUS gontrole qlol ump F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUT eh hisilnitgontrol F F F F F F F F F F F F F F F F F F F F F F F F F F F IUW hi hysilnitgontrolF F F F F F F F F F F F F F F F F F F F F F F F F F F F IVH xii

SFIH gontrole qlol hisilnitgontrolF F F F F F F F F F F F F F F F F F F F F F IVH SFII eh fgF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IVQ SFIP gontrole qlol fg F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IVT SFIQ hiEinitilwodeF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IVW SFIR hiEnormlF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWI SFIS hiEdegrdedF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWP SFIT hiEresueF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWP SFIU hi temfoilergontrol ompletoF F F F F F F F F F F F F F F F F F F F F F F IWS SFIV higrm ehF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWT

xiii

gptulo I sntroduo
y trlho wtodo de e(nmento wh tem omo ojetivo presentr propost %n de um mtodo pr espei(o em lto nvel utilizndo um lingugem sed em digrms e onsiderndo spetos do modelo ewF y mtodo desrito permite vlidr o sistem durnte fse de projeto eD por meio de trnsformesD otmEse o digo wh exeutvel e relizEse utomtimente veri(oF hess formD s trefs %n de soluionr um prolem e identi(r possveis erros de projeto so mis filmente relizdsF iste ptulo ontextuliz o proesso de re(nmento e it s diferentes ordgens pr o temF or (mD presentdo o resumo d propost do wtodo de e(nmento wh %nF

IFI

wtodo de e(nmento

es di(ulddes enontrds n espei(o e desenvolvimento de sistems om os onheidos mtodos de desenvolvimento e implemento lolizmEse n enorme fiE lidde de se ometer erros nos vrios estgios que devem ser umpridos ferHPF isse fto tem motivdo pesquiss sore diversos mtodos nos quis tni de implemenE to ou desenvolvimento sej seprd ompletmente dos estgios de espei(o e soluo do prolemF odem ser itdos trs prinipis estgiosF xo primeiroD so relizds nlises sore o prolem no qul possvel identi(r s responsiliddes que o futuro sistem dever suportrD sus proprieddesD s prtes que o ompem e os possveis pontos de intero om o miente onde o sistem estr presenteF odeEse dizer que este estgio present o prolem que se desej resolver e o motivo pelo qul o sistem neessrioF xo segundo estgioD relizd espei(oD que onsiste n represento em lto nvel do sistem onde so onsiderds pens rterstisD proprieddes e funE ionliddes ligds soluo do prolemF ssso signi( strir os detlhes de impleE I

gptulo IF sntroduo

mento devido s rterstis de lingugem e d pltform de desenvolvimentoF heveEse vlidr s funionliddes modelds de ordo om s que form identi(ds no primeiro estgio e prevists pr o sistemF ortntoD um mtodo de desenvolviE mento deve prover reursos que permitm vlido durnte o estgio de espei(E oF hess formD podeEse trlhr isoldmente n soluo do prolem dndoElhe devid teno e grntir que s neessiddes reonheids n nlise do prolem sejm stisfeitsF xo ltimo estgioD oorre implemento do modelo que foi espei(do no seE gundo estgioF e espei(o trnsformd em um digo exeutvel ondeD entoD so onsiderds s rterstis de pltform e lingugemD otendo um repreE sento do sistem om s funionliddes e proprieddes equivlentes s de(nids nteriormenteF heveEse seguir um mtodo sistemtio pr relizr implemento que sej possvel grntir formlmente orret orrespondni entre o modelo sE trto e su represento exeutvelF im qulquer um dos estgiosD possvel ometer erros que podem resultr em um funionlidde no identi(dD usni de um determindo omportmento n espeE i(oD desrespeito um propriedde ou odi(o equivod de funionliddesF ulquer que sej o erro existenteD o sistem pode no orresponder s expettivs ouD pior indD gerr resultdos inorretosF e sepro em de(nid dos estgios de desenvolvimento permite identi(r e trtr os erros om mior preiso e melhores ondiesF or exemploD um implemento errd de um funionlidde pode fzer om que desenvolvedores perm um tempo preioso prourndo pelo erro no lugr errdoD n espei(o por exemploD so os estgios no estejm em de(nidosF elm dos trs estgios meniondosD etp de veri(o fundmentl pr grntir que implemento estej orret de ordo om o modelo strtoF e veri(o deve estr presente durnte todo o proesso de implementoD ssim possvel ssegurr que d trnsformo relizd em direo o digo exeutvel preserv s proprieddes onforme desrito n espei(oF m mneir muito e(iente de ordr esss etps de desenvolvimento utiliE zndo um mtodo de re(nmentoF e(nmento um proesso no qul um represenE to de lto nvel trnsformd em outr de nvel mis ixoD visndo um digo exeutvelF iss trnsformo oorre por meio do uso de regrs que sustituem onsE trues strts por outrs om miores detlhesF es regrs so de(nids prtir dos tipos de re(nmento elordos em d mtodoF gomumenteD s regrsD lm de relizrem s pssgens de nveisD germ provs origtris pr grntir orret orrespondni entre o modelo strto e o modelo re(ndoF ys tipos de re(nmento so pdres do mtodo normlmente reonheidos pel experini om o usoD e por isso um mpo ind em erto pr pesquiss em muitos dos mtodos de re(nmentoF

IFIF

wtodo de efinmento

desejvel que esse proesso sej relizdo de form utomtizdD om menor prtiipo possvel dos desenvolvedoresD (m de no somente evitr erros de interE preto ou implementoD ms tmm minimizr o trlho humnoD elerndo o proesso de odi(oF or issoD os pdres reonheidos no mtodoD que do origem os tipos de re(nmentoD so de fundmentl importni pr utomtizo tnto d plio ds regrs qunto pr veri(o ds proprieddes do sistemF eE se que omplet utomtizo difil por us ds diferentes interpretes que podem ser dds n soluo de um prolem frHQD fHQF es provs podem ser feits utilizndo provdores de teoremD ms s estrtgis de provs devem ser inforE mds pelo desenvolvedor ieHTF m outr possiilidde utilizr veri(dores de modelosD que so ferrments de uxlio pr veri(o utomti wwWQF y prinipl resultdo de um mtodo de re(nmento implemento do sistem em um digo exeutvelD hmdo de digo lvoF y digo exeutvel fz prte do mtodo do re(nmento omo rtefto de implemento do sistem que foi espei(do e no deve interferir no mtodo omo um todo pr preservr propriedde de indepenE dni de pltformF ilementos do miente de desenvolvimentoD omo pltform ou lingugem de desenvolvimentoD devem estr presente no mtodo de re(nmento de form disret pr no gerr preoupes om omportmentos indesejveis qundo se trlh n espei(o em lto nvelF
passos do refinamento
---nveis de abstrao

Especificao

Cdigo Executvel

pigur IFIX ssos do re(nmentoF e prtir de um espei(o de lto nvelD o proesso de re(nmento pss por vrios nveis de stro t oteno do digo lvoD omo mostr pigur IFI de form em simplesF imor o ojetivo do re(nmento sej oter o digo exeutvelD podem existir digos lvo que sejm entrds de outros proessos de re(nmentoD rterizndo um proesso de re(nmento intermedirioF e unio destes proessos intermedirios resultm n implemento orret e omplet do sistem espei(do iniilmente no nvel mis strtoF or exemploD possvel modelr um sistem em wv eD om o uso de um ferrment dequdD o projeto pode ser trnsformdo em um esqueleto de digo tv posteriormente ompletdo pelo desenvolvedorF im seguidD o digo tv ompildo pr su represento em fytegodeD queD por (mD interpretd pel tw exeutndo instrues de mquin fsi orrespondente os

gptulo IF sntroduo

omndos reeidosF intoD existem qutro proessos de re(nmentoD sendo o segundo om interveno humnD onde sd de um entrd pr outroD ou o digo lvo de um espei(o em lto nvel do seguinteD onforme ilustrdo n pigur IFPF
Modelo UML ---Cdigo Java

interveno do

Cdigo Java

---desenvolvedor

Cdigo Java

Cdigo Java

----

ByteCode

ByteCode

interpretao JVM

----

Cdigo Mquina

pigur IFPX rios proessos de re(nmentoF

IFP

istdo d erte

y re(nmento psso psso @tepwise e(nement A foi iniilmente proposto por hijksE tr hijTVD hijUT e irth irUIF roposts seguintes desrevem um rouo pr diferentes mtodos de re(nmentoD que se diferenim n lingugem de espei(o em lto nvelD regrs de re(nmentoD mtodo de veri(o e no digo gerdoF m mtodo stnte onheido foi desritoD em prleloD por fk fVHD worris worVU e worgn worWRD que presentm trlhos semelhntes em re(nmento de lulos @e(nement glulus AF o plids s teoris de re(nmento e s regrs so de(nids em termos de lulo de predidoF ixistem vris ferrments que propem um suporte este mtodoD omo por exemplo o trlho de wnuel vier e en gvlnti gHSD que desrevem ferrment e(ne e ompr om outrs de rterstis semelhntesF y trlho de pitelsonD elh e hvies phHS tmm relizdo sore e(nement glulus e utiliz s notes formis e f omo se pr desrever operes em modelos de ojetosD mis preismenteD rmzenmento de ddos os quis so orgnizdos omo olees de ojetosF hesries em esquemsD ou desenhosD gr(os proporionm um lto nvel de sE troF e wvD por exemploD utilizd pr este (m e foi rido um mtodoD hE mdo de roesso ni(do @ni(ed roess exHSAD que desreve omo trnsformr

IFQF

yjetivos do rlho

desrio em lto nvel em elementos mis detlhdosF hentro deste proessoD exisE tem ordgens direionds diverss lingugensD omo tvD gD gCCD g5D portrnD isul fsi e gyfyvF m ferrment de desenvolvimento de sistems stnte diE fundid hmEse tionl sfwHUD onde espei(o wv trnsformd em digo tvF odos estes mtodos de re(nmento so desritos om o ojetivo de resentr determindo formlismo propost de hijkstr hijTVD hijUTD tornndo espei(oD vlido e veri(o de sistems um tref mis simples por meio de um mtodo sistemtioF e miori ds desries de re(nmento so seds no prinpio d sustituio1 hfHID pF RUF eitvel sustituir um progrm por outroD ontndo que sej

impossvel pr um usurio do progrm pereer que sustituio oorreuF


rios oneitos de re(nmento so de(nidos n litertur pr tender este prinpioD e omo resultdoD so restringidos em vris formsD limitndo su utilizoF iste fto foi onsttdo por frger frHQD fHQ o nlisr os prinipis mtodos de re(nmento erWTD fVID fvWVD hfHID diWVD pvWVD hWTF e vntgem do wtodo de e(nmento ew frHQD fHQ que ele fornee um rouo que greg oneitos destes prinipis mtodos de re(nmentoF e lierdde de stro forneid em ew prov o instrumento neessrio pr melhor orresE pondni entre mquin strt e re(ndD de form que ms s exeues possm ser oservds qunto equivlniF y foo do mtodo ew no prover noes genris de re(nmento que sej plivel qulquer ontextoD ms sim forE neer suporte utilizo disiplind do re(nmento no qul ptur orretmente e doument expliitmente o projeto desejdoF

IFQ

yjetivos do rlho

y modelo de wquin de istdo estrt @ew E estrt tte whine A qurWS vem sendo mplmente utilizdo pr espei(o forml de diversos tipos de sistems devido o seu lto gru de stro e rigor mtemtioD o que filit ompreender o sistem modeldo e veri(r formlmente sus proprieddesF odeEse utilizr um lingugem sed no modelo ew pr esrever espei(o em lto nvelD onheE id omo wodelo fsioD que posteriormente sumetid um proesso sedo no
of substituitivity: it is acceptable to replace one program by another, provided it is impossible for a user of the programs to observe that the substitution has taken place.
1 Principle

gptulo IF sntroduo

wtodo de e(nmento ew frHQ pr oter implemento vlidd e veri(E dF gom se nestes ftosD o prinipl ojetivo do trlho wtodo de e(nmento wh @wwA propor um mtodo de espei(o em lto nvel que represente %n spetos de ew e om possiilidde de vlidr e veri(r o modelo onstrudo independente d implementoF y proesso de re(nmento permite oter utomtiE mente o digo exeutvel veri(do e vliddo de ordo om espei(oF y wtodo de e(nmento wh omposto deX um lingugem de espei(o %n pr esrit do wodelo fsio hmd de vingugem de wodelgem wh %nY um onjunto de de(nies de tipos e regrs de re(nmento om proprieddes de(nids serem omprovdsY suporte vlido mnul durnte fse de projetoY e suporte veri(o utomtiF gomo lingugem exeutvel lvo utilizEse wh %nD que um lingugem ew desenvolvid no vortrio de vingugens de rogrmo d niversidde pederl de wins qeris fsfHSF e vingugem de wodelgem wh @vwwA possui reursos gr(os pr espeE %n i(o em lto nvel e de(nid por um semnti em de(nidD ou sejD livre de migiddesF fsed em digrms de ontrole de )uxo e de(nio de tipos strE tos de ddosD vww possiilit vlido ind durnte espei(o e filit prtiipo de projetistsD desenvolvedores e possveis usurios do sistemD que nem sempre so d re d gomputoF e vww ompost de elementos que permitem trlhr em vrios nveis de stroD representr elementos do mundo relD modeE lr omportmento de gentes e reles entre elesF elm dissoD possvel desrever preoupes ortogonis simples de form modulr e de(nir proprieddes inerentes o prolemF im vwwD esreveEse o wodelo fsio de(nindo os memros envolvidos no proE lemD rterstisD seus omportmentos e relo entre elesF y desenvolvimento feito em prtes e permite oter viso lol e glol do prolemF intoD o wodelo fsio re(ndo om plio itertiv ds regrs de(nids no mtodo proposto prtir dos tipos de re(nmento identi(dosF o otidos diversos nveis de stro t o digo wh %nF eo longo do proesso de re(nmento de wwD formd um oleo de propriedE des que podem ser dividids em gruposD de ordo om s grntis que produzemF y primeiro formdo pels proprieddes que provm o orreto re(nmentoD extrds ds plies ds regrsF y segundo grupo otido pel unio ds proprieddes de(nids n espei(o em lto nvel om s proprieddes implits espei(o vwwD que tmm so extrds prtir ds plies de regrsD pr relizr veri(o do wodelo fsioF pz prte do ojetivo de ww relizr veri(o d espei(o de form

IFQF

yjetivos do rlho

utomtiF ortntoD o wodelo fsio trnsformdo utomtimente no formto de entrd pr o veri(dor de modelos xuw ggq+ HPD ggy+ HTD onde possvel onferir s proprieddes do sistemF pigur IFQ ilustr o esopo deste trlhoD onde o wodelo fsio onstrudo prtir d vww eD om o uso do mtodo de re(nmentoD otmEse o digo wh %n e represento em xuwF y resultdo d veri(oD junto o digo exeutvel gerdoD o wodelo fsio e su vlidoD formm doumento omplet de um sistem espei(doF
Modelo Bsico
LMM Especificao Textual TAD DSE + DTE + Controle Global Mecanismo de Visibilidade

+ validao

Documentao

Glossrio

Propriedades

vericao

--

Cdigo Machna

--

C-Machna

--

NuSMV

Regras de Renamento

pigur IFQX isquem do wtodo de e(nmento wh %n r vlio do trlho propostoD implemento do wtodo de e(nmento wh rnge represento intern do wodelo fsioD plio ds regrs e %n tipos de re(nmento pr oter o digo wh orrespondente e su trnsformoD %n em dois pssosD pr um entrd de xuwF e ferrment desenvolvid represent o nleo prinipl de wtodo de e(nmento wh e extenses pr miente gr(o %nD podem ser inserids posterioremnte de form simplesF or meio do wtodo de e(nmento wh %nD pretendeEse oter s seguintes onE triuiesX

de(nio de um lingugem de espei(o de lto nvel sed em digrmsD voltd o modelo de wquin de istdo estrtD intuitiv e om lto poder de expressoY sepro em de(nid dos nveis de stres utilizdos n espei(oY filidde n vlido do prolem espei(doY

gptulo IF sntroduo

de(nio de um mtodo de re(nmento pr lingugem wh %nD no qul o proesso de trnsformes relizdo utomtimenteY veri(o trnsprente e utomti de sistems desritos em wh %nF

IFR

yrgnizo heste exto

gptulo P present o modelo forml ewD seu mtodo de re(nmento e lingugem de espei(o forml wh %nD que sed no modelo ewF y wtodo de e(nE mento wh desrito no gptulo QD onde so de(nidos os elementos d lingugem %n propost e s regrs de re(nmentoF xo gptulo RD presentEse o mtodo de veri(E o utomti pr o wtodo de e(nmento wh %nD e vlido deste trlho relizd no gptulo SF or (mD os resultdos otidos e proposts de trlhos futuros so resumidos no gptulo TF

gptulo P wodelo porml ew


wquin de istdo estrt @ew E estrt tte whine A um modelo forml de espei(o e veri(o de sistems proposto por qurevih F VSD qurWS e perE feiodo por frger fHQF fsedo em oneitos onheidos d mtemtiD ew proporion filidde de ompreenso e permite demonstrr formlmente propriedE des ontids n espei(oF iste ptulo present de(nio do modelo ew eD em seguidD so presentdos os oneitos do mtodo de re(nmento ew fHQF or (mD presentd de(nio d lingugem de espei(o forml wh %nD que sed no modelo ewF

PFI

wquin de istdo estrt

m wquin de istdo estrt @ewA um modelo de trnsio de estdo que onsiste em um mquin strt formd por nomes de funes e relesD que de(E nem seu voulrio F odo voulrio possui impliitmente os smolos oolenos

true e flse e seus operdores usuisD ssim omo o sinl de iguldde e o vlor undefD indindo vlor no de(nidoF
m onjunto U hmdo de universo de um nome do voulrio se todos os seus elementos stisfzem um reloD ou podem ser ssoidos um funoD n qul o nome se refereF m estdo S um onjunto X D denomindo superonjunto de S D onstitudo dos nomes do voulrio e sus interpretes em um determindo instnteF e f um nome de um funo de ridde rD ento f interpretd omo

f : Xr X
e f um nome de relo de ridde rD ento f interpretd omo

f : X r {true | false}
W

IH

gptulo PF wodelo porml ew

endo U o nome de relo pertenendo D ento o onjunto

U = {x : U (x) = true}
um universo ontido em X F xeste soD

U (x) = true
equivlente

xU
or exemploD suponh o nome d relo P rimos omo pertenente o voulrio

D ento o onjunto Primos = {x : Primos(x) = true}


um universo ontido em X F elteres n interpreto dos nomes no voulrio so provods pels tuE lizesD ontids n regr de trnsioD que ssoi um nome um vlor e produz um novo estdoF m ds regrs de trnsio pode ser de(nid omo um onjunto de onstrues

if cond then update


onde ond um expresso oolen e updte um list de tulizoD que tem seu efeito pereido pens no estdo seguinteF ortntoD sej i o estdo orrente e R regr de trnsioD s tulizes pertenentes R relizds no estdo iD somente tero vlidde no estdo j seguinteF y pr (f, v) indi um tulizo no nome f de ridde r om o vlor v D e ser onsistente se existir n list de tulizes pens um pr (f, v) ouD n presen de dois pres (f, v) e (f, v )D onde v = v F gso ontrrio tulizo inonsistenteF m inonsistni n list de tulizes fz om que trnsio tmm sej inonsistenteD e o modelo ew de qurevih deix em erto qul o trtmento ser ddo neste soF e de(nio de frger fHQ estelee que um trnsio inonsisE tente no permite oteno do estdo seguinteF xeste so mquin interrompe exeuo em um situo de erroF m rtersti notvel de ew usni de omndos de repetioD pois este oneito implito o modeloF m omputo d mquin onsiste em exeutr repetids vezes regr de trnsio otendo sempre um novo estdoF odeEse de(nir diferentes ritrios pr termino nturl d exeuo d mquinF or exemploD se no for mis possvel exeutr nenhum tulizoY ou mquin determin um tulizo vziY ou os estdos no mis se lterm n presen de tulizesF

PFIF

wquin de istdo estrt

II

PFIFI

egrs fsis

he(nemEse s seguintes regrs sis pr onstruir regr de trnsioF

egr de etulizo
m tulizo d form

f (t1 . . . tr ) := t
onde f um nome de funo rEri e tD t1 . . . tr so termosF xo estdo seguinteD f ser interpretd omo um funo que no ponto t1 . . . tr tem o vlor tF

egr floo
e regr loo um regr d form

R 1 , R2
onde R1 e R2 so regrs de tulizoF e semnti exeutr R1 e R2 em prleloD sendo o efeito de sus tulizes pereids pens no estdo seguinteD desde que no existm tulizes inonsistentesF importnte ressltr que no existe sequeniE mento de regrs em um trnsioF e ordem reltiv entre R1 e R2 no diferenid no modeloF

egr gondiionl
e regr ondiionl permite exeuo de R1 ou R2 dependendo d vlio de um expresso oolen g e dd d seguinte formX

if g then R1 else R2 end

PFIFP

ispei(o ew

m espei(o ew de(nid pel tupl

(, A, S0 , R)
onde o voulrio om os nomes de funes e relesD A o onjunto de estdosD

S0 o onjunto de estdos iniiis tl que S0 A eD por (mD R regr de trnsioF e instni de um espei(o ew hmd de genteF
e seguir presentdo um exemplo pr funo ftorilD extrdo de fsfHSF he(neEse o voulrio ontendo os nomes i e ftD e seus vlores iniiis onforme

IP

gptulo PF wodelo porml ew

S0 F im seguidD regr de trnsio R onstitud de um loo ontendo dus tulizesF = {i, fat} S0 = i 0 fat = x.x = 0 1, undef R = fat(i + 1) := (i + 1) fat(i) ,

i := i + 1

eo exeutr regr R prtir do estdo iniil S0 D otmEse os seguintes pssosX istdo

2
undef undef 2 2 2 F F F

3
undef undef undef 6 6 F F F

4
undef undef undef undef 24 F F F

FF F

n
undef undef undef undef undef F F F

S0 S1 S2 S3 S4 F F F Sn

1 undef 1 1 1 1 1 1 1 1 F F F F F F 1 1

24

n!

eo exeutr regr no estdo S1 D otmEse um novo estdo S2 D no qul i interpreE tdo omo 2 e interpreto de f D no ponto 2D pss ser igul 2F h mesm formD otemos os estdos S3 , S4 e ssim por dinteF sntuitivmenteD no estdo Sk D k iD interpreto de f um funo queD plid iD retorn i!F ist interpreto pode ser provd por meio de induo mtemti sore o onjunto dos nturisF

PFIFQ
sioF

egrs evnds

e seguirD so presentds outrs onstrues que omplementm um regr de trnE

punes ixterns
ys sistems espei(dos em ew podem se relionr om o mienteD por exemploD entrd de ddos forneids pelo usurio ou sd de resultdosF r issoD de(nemE se s funes externsD que se omportm omo orulosD ou sejD um espei(o fornee os rgumentos e o orulo retorn o resultdo de form trnsprente pr o sistemF

PFIF

wquin de istdo estrt

IQ

egr smport
possvel estender o voulrio do estdo S utilizndo regr importD que possui seguinte formX

import v R0 endimport
pr v sendo o novo nome em e R0 regr ser exeutd onde v pree livreF y exemplo seguir estende om um novo nodo v de um rvore inri e de(ne seus (lhos d esquerd e direit omo inde(nidosF
import v Nodo ( v ) := true Esquerda ( v ) := undef Direita ( v ) := undef endimport

egr ghoose
ew permite exeuo no determinsti por meio d regr choose om seguinte formX

choose v in U satisfying c R0 endchoose


eu signi(do esolher no deterministimente um elemento v pertenente o uniE verso U que stisf ondio cF intoD v utilizdo n regr R0 D onde pree livreF or exemploD o treho seguir triui o vlor I um nodo do universo xodos de um rvoreF
choose v in Nodos Valor ( v ) := 1 endchoose

xeste soD ondio foi omitidD ento esolh de v qulquer um dentre os elementos pertenentes xodosF

egr r
e regr var tem seguinte formX

var v ranges over U R0 endvar


eu signi(do exeutr regr R0 pr d v U de form independente e em prleloF y nome v deve preer livre dentro de R0 F iss regr equivle rir um

IR

gptulo PF wodelo porml ew

instni de R0 pr d v U F or exemploX
var v ranges over UmDoisTres f ( v ) := 0 envar

onde mhoisres o onjunto {IDPDQ}D equivlente fzer


f (1) := 0 , f (2) := 0 , f (3) := 0

PFIFR

ixemploX istem yperionl

y exemplo seguirD extrdo de fsfHS model o nleo de um sistem operionl simples e tem o ojetivo de ilustrr utilizo ds regrs presentdsF r issoD espei(mEse s seguintes operesX E rio de um novo proessoY E eslonmento de um proessoY E difuso de um mensgem pr todos os proessos tivosY E reeimento de um sinl de interrupoF y voulrio pr o sistem operionl pode ser de(nido d seguinte formX E y universo roessesD o onjunto dos proessos ridos no sistem operionlY E e funo idD ssoi d proesso su identi(oY E e funo numroD ontiliz o nmero de proessos ridosY E e funo messgesD ssoi os proessos s sus ixs de mensgensY E e funo ownerD ssoi d reurso o proesso que est utilizndoY E e relo witingD relion reursos os proessos que esto esperndo pr utilizE losF

PFIF

wquin de istdo estrt

IS

essimD podeEse de(nir s regrs de tulizo onforme seguirX grio de novo proesso pX
import p Processes ( p ) := true , id ( p ) := numProc + 1 , numProc := numProc + 1 endimport

islonmento de proessosY
choose p in Processes satisfying waiting (p , resource ) owner ( resource ) := id ( p ) endchoose

hifuso de mensgemX
var p ranges over Processes if ativo ( p ) then messages ( id ( p )) := append ( messages ( id ( p )) , msg ) endif endvar

eeimento de interrupoX
if interrupted then // catch // continue operations endif

else

ys oneitos e regrs presentdos resumem o modelo ew proposto por qurevih e perfeiodo por frgerF gomo foi mostrdo nos exemplosD possvel espei(r sistems em lto nvel de form simples e elegnte devido o grnde poder de expresso de ew ssim omo su filidde de ompreensoF

PFIFS

ew wultigentes

m ew wultigente M qurWSD tmm onheid omo ew histriudD ontm um nmero (nito gentes omputionis que exeutm onorrentemente um nmero

IT

gptulo PF wodelo porml ew

(nito de progrmsF e d gente est ssoido um progrmF pormlmenteD um ew wultigente M um tupl

(M , A, C0 , P )
tl que M um voulrio que ontm os nomes de funo que preem ns regrs de P D om exeo de elfF ertenem M os nomes de funes de zero rgumento que representm os nomes de mdulos @elementos de P A e um funo unriD wodD que represent relo entre gentes e mdulosF m elemento a um gente em um ddo estdo S se houver um nome de mdulo m tl que

S |= Mod (a) = m
h mesm formD o progrm de a

Prog(a) = m A um onjunto de estdos e C0 um oleo de estdos denomindos estdos iniiis de M F odos os elementos de C0 omprtilhm s mesms interpretes dos nomes de funo de M D om exeo de elfD que interpretdo omo o gente ssoido o estdoF or (mD P um onjunto (nito indexdo de progrms m @os mdulosAD identi(E dos pelos nomes de mdulos m Y d progrm pertenente P um regr de trnsioF e funo espeil de zero rgumento elf permite utoEidenti(o de gentesF elf interpretdo omo a por d gente a e pode ser usdD por exemploD pr modelr lgum estdo lol dos gentesF hizEse que um gente a reliz um trnsio em S se o onjunto de tulizes Updates(a, S) = Updates(Prog(a), Viewa (S))
disprdo em S D isto D se regr que form o progrm do gente a for disprd no estdo Viewa (S)D que expnso do estdo S D em que vrivel elf interpretd omo aF ore est de(nio de trnsioD podeEse de(nir diversos tipos de exeuoF e seguirD temEse de(nio de exeuo prilmente ordendD que um imporE tnte noo de omputo distriudF qurevih qurWS de(ne um exeuo prilmente ordend de um ew wulE tigentes M omo sendo um tripl (M, A, ) que stisfz s seguintes ondiesX IF M um onjunto prilmente ordendoD no qul todos os onjuntos de trnsio

PFIF

wquin de istdo estrt

IU

{y : y x}, x M D so (nitosX os elementos de M representm trnsies relizds pelos vrios gentes durnte exeuoF hus trnsies x e y so tis que y xD se trnsio x iniiou ps o trmino de y F
PF A um funo sore M tl que todo onjunto noEvzio {x : A(x) = a} linermente ordendoX A(x) o gente que reliz trnsio x @supeEse que s trnsies de um nio gente sejm linermente ordendosAF QF um funo que ssoi um estdo de M d segmento iniil de M D tl que () um estdo iniilX pr d segmento iniil X de M D (X) o estdo que result d relizo de todos os movimentos em X F m segmento iniil de um onjunto prilmente ordendo P um suEestrutur X de P tl que

x X y < x y X.
RF e ondio de oerniX se x um elemento mximl em um segmento iniil (nito X de M e Y = X {x}D ento A(x) um gente em (Y ) e (X) otido prtir de (Y ) disprndo A(x) em (Y )F ist de(nio grnte que no hver inonsistnis n exeuo de dois ou mis gentesD pois d trnsio exeutd por um gente de mneir tmiF

PFIFT

wquin de istdo pinit

y modelo de wquin de istdo estrt @ew E estrt tte whine A qurWS desreve um lsse espe( de mquin n qul os estdos so (nitosF iss lsse reee o nome de wquin de istdo pinit @pw E pinite tte whine A frHQD frHQD fHQD iF WW e el represent um digrm de estrutur de ontrole que posE siilit o mnuseio de estrutur de ddos que de(nem o sistemF y digrm pw sedo no digrm de tividdes d wv tfHRD ftHSD e su noto mostrd seguirF m rulo rotuldo represent um estdo d mquinD e sets entre os estdos representm o )uxo de ontroleF m hexgono reE present um ondio @ond A e um retngulo represent regr @rule A ser exeutd pr trnsio de estdosF m retngulo ssoido um hexgono signi( que exeuo d regr est ondiiond restrio representdF m retngulo inz rotuldo represent o nome d trnsioF y esquem gerl de um trnsio em um digrm pw mostrdo n pigur PFIF ixistem dois estdosD i e j F y )uxo i j exeut regr ruleI desde que ondio ondI sej stisfeitF

IV

gptulo PF wodelo porml ew

cond_1 i name_1 rule_1 j

pigur PFIX ixemplo de um digrm pw m trnsio do pw de(nid omo s regrs de um mquinD podendo ter o seguinte formtoD onsiderndo tlstte omo sendo o estdo interno de um pwX
if ctl_state = i then if cond_1 then rule_1 , ctl_state = j_1 endif , . . . if cond_n then rule_n , ctl_state = j_n endif endif

hdo o estdo iD d ondio ondk stisfeitD pr i k nD fz om que mquin exeute respetiv regr rulekD e o ontrole interno @tlstte A sej tulizdo pr jkF e nenhum ondio ondk for stisfeitD nenhum trnsio de estdo oorreF y digrm orrespondente este digo mostrdo n pigur PFPF y digrm mostr gr(mente o funionmento norml d mquinF m set indi qul o estdo de origem e destino em um trnsioF istdos iniiis e (nis podem no ser identi(dos diretmente n represento gr(D portntoD devem ser expliitdos n espei(oF
cond_1 rule_1 j_1

...

con_n

rule_1

j_n

pigur PFPX ixemplo de digrm pw tipo sF pigur PFQ exempli( outro tipo de digrm no qulD pr o estdo iD ruleI exeutd e tulizo do estdo depende ds ondies representds no hexgonoF

PFPF

wtodo de efinmento ew

IW

cond_1

j_1

rule_1

...

cond_n

j_n

pigur PFQX ixemplo de digrm pw tipo ssF y digo orrespondente o digrm d pigur PFQ mostrdo seguirF
if ctl_state = i then rule_1 , if cond_1 then ctl_state = j_1 endif , . . . if cond_n then ctl_state = j_n endif endif

PFIFU

gonluses

m ds grndes vntgens do modelo ew possiilidde de se exeutr um espeE i(oD o que pode filitr tref de enontrr errosF y modelo possui tmm reE ursos pr modelr onorrni e noEdeterminismoD exeuo snron e ssnronF elm dissoD podeEse itr tmm existni de um teori mtemti sujenteD teori de lgers ivolutivsD que permite prov de proprieddes d espei(o fsfHSF

PFP

wtodo de e(nmento ew

y wtodo de e(nmento ew @he ew e(nement wethod A frHQD fHQD iF WW proveitEse do poder de stro e do rigor mtemtio ofereidos pelos oneitos de wquin de istdo estrt @estrt tte whine E ew AD de(nidos por qurevih em F VS e perfeiodos em qurWSF he ordo om frger frHQD o mtodo ew de re(nmento proporion um metEfrmework que integr oneitos mis espe(os de re(nmentoF gomo o modelo mtemtio dividido em prtes mis sisD o nvel

PH

gptulo PF wodelo porml ew

de stro e modulrizo podem ser de(nidos livremente pr melhor representr o sistemD desde que o modelo sej respeitdoF es prinipis rterstis que fzem do re(nmento ew um mtodo stnte utilizdo soX @A o fto d veri(o @provr que verddeA estr inlus no proE essoD de form que s trnsformes grntm o orreto funionmento e respeitem s proprieddes imposts n espei(oY @A possiilidde deD ind n fse de projetoD vlidr o sistemD ou sejD provr que o sistem relmente reliz s trefs que lhe form designdsY @A espei(o do prolem legvel projetists e desenvolvedoresD independente do digo exeutvel e pltform de desenvolvimentoF xo mtodo ewD o re(nmento ind um proesso mnul sujeito interpreE tes do desenvolvedorF es regrs formm um menismo de uxlio s provs de proprieddes e s trnsformes entre os nveis de stroF y primeiro estgio do re(nmento ew vis desrio do funionmento do sistem de ordo om o proE lem ser resolvidoF o identi(dos os requisitos e s proprieddes do sistemD e om esss informes onstriEse o modelo em lto nvelD hmdo de wodelo fsio @qround wodel A frHQD frHQD fHQD iF WWD que deve ser legvel qulquer memro envolvido om o projetoF y segundo estgio onsiste n trnsformo do wodelo fsio em representes mis detlhds pels plies de regrs em de(nids dentro do modeloF xormlE menteD o ojetivo oter o digo exeutvel d plioD ms tmm pode ser desejvel oter um outr represento strt que sirv de wodelo fsio pr outro proesso de re(nmento om tipos e regrs diferentesF es regrs no mtodo de re(nmento ew so diretivs pr s orrets trnsforE mes entre os nveis e so plids de ordo om os tipos de re(nmento de(nidos no mtodoF gd tipo sugere um onjunto de regrs de trnsformo podendo ser utomti ou exigindo interpreto do desenvolvedorF gd plio de regr ger um onjunto de proprieddes que devem ser grntids o longo de todo o proesso de re(nmentoF eo (nlD otmEse mquin re(nd orrespondente mquin strt desrit no wodelo fsioF pigur PFR ilustr o esquem de re(nmento ew em termos d equivlni de estdos e exeuesF hd um mquin strt M e um estdo iniil S D relizEse um onjunto de m pssos @1 ... m A pr se oter o estdo seguinte S 9F x mquin re(nd M BD deve existir um estdo S BD orrespondente o S de M D e um onjunto diferente de n pssos @1 ... n A que lev um estdo S B9D que deve ser orrespondente o S 9F y smolo no digrm signi( equivlni entre os estdos de M e M BD sendo S S B e S 9 S B9F y digrm d pigur PFR onheido omo digrm omuttivo frHQD hHID onde os estdos e operes ds mquins strt e re(nd so reliondosF tilizE

PFPF

wtodo de efinmento ew
m passos de M

PI

Estado S

1 . . . m

Estado S'

Estado S*

1 . . . n
n passos de M*

Estado S*'

pigur PFRX isquem do wtodo de e(nmento ewF se noto m : n pr dizer que prtir de S hegEse S om m pssos de exeuo de M e que de S B hegEse S B9 om n pssos de exeuo de M BD grntindo que

S S B e S 9 S B9F into o digrm d pigur PFR um digrm omuttivo m : nD ou pens digrm m : nF e relo existente entre um trnsio de estdo de M e outr de M BD logo deveEse oter quntos digrms omuttivos forem neessrios pr representr mquin strt pr que o re(nmento pr M B sej ompletoF
r de(nir um mtodo de re(nmento sedo no mtodo ewD deveEse de(nir iniilmente lingugem do wodelo fsio de fil legiilidde e om rterstis pr melhor proveitmento dos tipos de re(nmento j identi(dos neste mtodoF gonforme frHQD tmm devem ser de(nidos os seguinte oneitosX

estdo strto S Y estdo re(ndo S BY estdos de interesseD que so os estdos serem oservdos no re(nmento inE luindo oneitos de estdos iniiis e (nisY orrespondni @A entre estdosX S S BY omputo strt 1 ... m D onde i represent um psso de exeuo mquin strt M Y omputo re(nd orrespondente 1 ... n D onde i represent um psso de exeuo de M BD um omputo deve levr mquin strt de um estdo de interesse outroY

PP

gptulo PF wodelo porml ew

espo de interesse e espos orrespondentesD espos so onjuntos strtos de ddosF or exemploD pres de espos que se desej relionr nos estdos orrespondentesY equivlni de ddos nos espos de interesseD normlmente de(nid junto equivlni de estdos de interesseF

PFPFI

wodelo fsio

y desenvolvimento de sistems exige o umprimento ds etps de identi(o ds neessiddesD projeto e espei(o ntes d efetiv implemento do softwreF e primeir etp onsiste em identi(r e ompreender s neessiddes que o sistem deve stisfzerF xos diversos mposD de trlho existem pessos om s mis vrids neessiddesX melhorr o ontrole de produoY reduzir usto de vendsY umentr divulgo dos produtos e serviosY integrr s uniddes d empres esplhds pelo mundoF elm de ompreender s neessiddesD um projetist deve nlisr quem e quis prtes d instituio sero fetdos pr de(nir o prolem e propor um soluo dequdF xormlmenteD s desries de neessiddes so feits em lingugem nturl so o ponto de vist de quem no projet softwres @lientesAD e devem ser ompreendids por quem provvelmente no onhee o prolem @projetists e desenvolvedoresAD que por su vez podem desrever soluo que deve estr lr pr os lientesF pi lro o envolvimento de pessos pertenentes grupos distintosD e els devero trlhr em onjunto pr rterizr o prolem e propor um soluoD que posteriormente ser onvertid em um softwreF heveEse ter um uiddo espeil nest etp e esolher um modelo dequdoD pois divergni de interpretes pode levr um sistem no stisftrio ferHPD pfVUF es desries ds neessiddes e d soluo relizds n primeir etpD emor esseniisD so omumente feits de mneir informl e no dequds um interE preto preisF ortntoD segund etp onsiste em projetr o que ser feito presentndo soluo sem migiddes em modelos formisD que onstituem s rterstis do sistem @y que fzerA vWWF or exemploD pr tender s neE essiddes de reduzir ustos de vend e umentr divulgo de produtos e serviosD podeEse projetr soluo omo um weEsiteF possvel dizer que o projeto repreE sent soluo que ir stisfzer s neessiddes reonheids e nlisds n primeir etpF elm de desreverem om preiso o sistemD os modelos devem ser simples e su(ientemente strtos pr serem ompreendidos por todos os envolvidos no trE lhoD lientesD projetists e desenvolvedoresD e permitir onferir se s neessiddes form

PFPF

wtodo de efinmento ew

PQ

tendidsF or esse motivoD ess etp deve presentr pens detlhes d soluo independentes do softwre que ser gerdoF es rterstis do sistem no trtm de detlhes neessrios o funionmento do softwre @gomo fzerAD que so d tereir etpF endo sido feit desrio ds neessiddes n primeir etp e rterstis do sistem n segundD deveEse dizer omo o sistem se omportrD informndo os requisitos do softwreD que onstituem tereir etpF ys requisitos do softwre so mis detlhdos que s rterstis do sistemD emor mos possum um lto nvel de stroF iles ilustrm diferen entre y que fzer e gomo fzerF or exemploD o weEsite projetdo n segund etpD pode ser espei(do omo um implemento de um gomrio iletrnio omo onheido tulmenteF ys requisitos de softwre trtm de ssuntos direiondos o proesso de re(nmento pr oter o digo exeutvel utomtimenteD devendo ser trnsprente pr o lienteF henominEse wodelo fsio frHQ espei(o em lto nvel de um sistem que rnge s tividdes de identi(o ds neessiddesD projeto d soluoD de(niE o de requisitos e proprieddes do softwreD sendo o ojeto pr vlido e ponto de prtid d veri(o e plio ds regrs de re(nmentoF y wodelo fsio deve ser ompreensvel dois domnios diferentesF y primeiro hmdo em ew de homnio d eplio frHQD frHQD fHQ e ontm os lientesD que possuem neessiddes e normlmente no tm onheimento em desenvolE vimento de softwreF iste grupo tmm pode ser hmdo de homnio do rolem vWWF y segundo grupoD denomindo homnio dos wodelosD onstitudo de proE jetists e desenvolvedoresD que so d re de omputo e devem ompreender s neessiddes dos lientes e trduzir soluo em um softwreF mm pode ser hmdo de homnio d oluoF frgerD em frHQD desreve s seguintes proprieddes pr o wodelo fsio exerer o seu ppelF

reisoX presentr os detlhes neessrios ompreenso do sistem sem migiE


ddesD minimizndo o impto no sistem existenteF

estrtoX presentr soluo sem se prender detlhes externos o prolemY ser


ompreensvel no homnio d eplio e no homnio dos wodelosF

plexvelX suportr lteres e expnses de projeto sem diionr informes desE


neessris o projetoF

gompletoX desrever s rterstis do sistem e os requisitos do softwre tenE


dendo tods s neessiddes identi(dsF

PR

gptulo PF wodelo porml ew

lidoX permitir que o sistem sej vliddo ind n fse de projetoD filitndo
identi(o e orreo de errosY grnte que soluo estej ompletF

emnti preisX possuir rigor forml que permit veri(o do sistem e do


re(nmentoF y wodelo fsio deve onter relo ds neessiddes identi(ds presentndo sus de(nies e rterstisD rindoEse ento um introduo o prolem que o sistem dever resolverF im seguidD deveEse presentr qul soluo dotd e omo se hegou nelD preservndo s iniitivs e deises tomds pel equipe de projetoF e prtir desses ddosD relizEse espei(o do sistem destndo omo s funE ionliddes resolvem os prolemsD em termos ds neessiddesF or (mD no wodelo fsioD determinEse omo s funionliddes sero relizds no sistemD onsiderndo spetos omputionisF gom o ojetivo de prover fil legiiliddeD normlmente utilizmEse desries textuis pr introduzir o prolem e o sistem ser desenvolvidoF e esolh de um lingugem de espei(o proprid importnte pr oter lto nvel durnte o projetoD que grnte prtiipo de lientes n vlidoF essimD podeEse reduzir s possiiliddes de um item importnte ter sido esqueidoF m tni stnte e(iente utilizo de lingugens gr(sD pois so stnte intuitivs e tm grnde poder de expresso om onstrues em simplesF ormD esss vntgens tm preoY espei(o ( inomplet e informl pr ser sumetid um proesso utomtio de re(nmentoF intoD s funionliddes podem ser desrits em um lingugem onde possvel expressr miores detlhes sore o que ser relizdo em d prteF iss formlidde vntjos pr plio ds regrs de re(nmento e veri(o do sistemF essimD onstrudo prtir do homnio d eplioD o wodelo fsio exere seu ppel de registrr s neessiddes e presentr s rterstis do sistemF endo fil de ompreender e modi(rD ontriui pr nlise de requisitos de softwre ind em lto nvelD no sendo neessrio gurdr o (nl do desenvolvimento pr que outr equipe @de homologo por exemploA ou usurios (nis identi(quem prolems reliondos om espei(oF gom issoD o wodelo fsio sumetido vlidoD veri(o e so plids s regrs de re(nmentoF y wodelo fsio tem um ppel de doumentoD pois ontm tods s desries formis e informis do prolem e detlhes d soluo independente do softwre e de pltformF gomo ele onstrudo em diversos nveis de stresD possvel que n presen de pessos om per(s diferentesD omo projetists e desenvolvedoresD ou mesmo n usni d equipe originlD sej possvel ompreender filmente propost que o wodelo fsio espei(F

PFPF

wtodo de efinmento ew

PS

PFPFP

ipos de e(nmento

e experini em desenvolvimento em lto nvel de sistems utilizndo ew permite identi(r ertos pdres em espei(es que do origem os tipos de re(nmento frHQF iss um mneir de lssi(r s regrs de re(nmento de ordo om s rterstis do mtodo ontriuindo om utomtizo do proesso de re(E nmentoF imor existm lguns tipos j de(nidosD este um tem em erto pr nlise e pesquiss om (nlidde de identi(r novos tipos de re(nmento ewF frger frHQD fHQ present os prinipis tipos de re(nmento ew e lguns deles so detlhdos por hellhorn hHIF e seguirD so presentds s rtersE tis prinipis de d um delesF

ixtenso gonservtiv
y tipo de re(nmento ixtenso gonservtiv @gonservtive ixtension A diion um novo omportmento um mquin j existenteD omo trtmento de exeo ou rterstis de roustezF mm onheido omo e(nmento snrementl @snE

rementl e(nement A
y primeiro psso de(nir ondio gond pr o novo omportmentoD indindo em que estdo de um mquin wD j de(nidD o novo omportmento deve turF im seguidD de(neEseD em um nov mquin fD o omportmento ser diiondo em

wD por exemploD o trtmento de exees ou medids de segurnF or (mD s dus mquins devem ser integrds restringindoEse exeuo de w por gondD ondeD entoD f pss tur e depois permite ou no que w retome su exeuoF
ixtenso gonservtiv ger um mquin mis omplet e roustD portnto mis omplex em termos de funionliddeD onde s novs rterstis diionds poE dem ter o mesmo nvel de stro que mquin originlF iste efeito deorrente d sepro entre o omportmento norml e situes no prevists ou de ontrole d exeuoD resultndo em um nov mquinF

e(nmento de hdo
y e(nmento de hdo @ht e(nement A onsiste no mpemento de estdos e regrs strts em representes onretsD preservndo relo operoEddo existente no modelo strtoF e form mis simples relizr o mpemento sem tror ssinturs ds operes e preservndo s proprieddes existentes @sem diionr ou lterr lgum delsAF preqentementeD utilizEse exempli(o de um ewD onde sus regrs so preserE vds e pens s esD normlmente s utilizds externmenteD so posteriormente

PT

gptulo PF wodelo porml ew

espei(ds sem tro d ssinturF ssso possiilit o re(nmento preservndo E rterstis de modulrizoF

e(nmento de uErotins
y e(nmento de uErotins @roedurl e(nement AD tmm onheido omo e(E nmento de uEmquins @umhine e(nement AD onsiste em sustituir um mE quin por outr mis omplexF y resultdo um espei(o mis detlhd onde possvel pereer novs rterstis no presentes no nvel de stro nteriorF m so notvel deste tipo o e(nmento de gontrole de istdo ew @roeE

durl e(nement of gontrol tte ews AD plido sore pws @eo PFIFTAF hd semnti do digrmD presentd n eo PFIFTD podeEse de(nir s trnsies de um pw por meio d stro

FSM (i, if cond then rule, j)


ssso signi( queD estndo no estdo iD se ond for stisfeitD regr rule exeutdD e o estdo lterdo pr jD so ontrrioD nd feitoF into temEse um stro omo est pr d trnsio representd no digrm pwD ou sejD pr 1 k n pr todo estdo i existe

FSM (i, if condk then rulek , jk )


representndo d trnsioF heveEse grntir exluso mtu de tods s ondies

condk que possuem o mesmo estdo i de origemF


y re(nmento ge sore est de(nio sustituindo if condk then rulek por um nov suEmquin Mk om mis detlhes e respeitndo s restries nteriores exisE tentesF e mquin Mk pode onter inmers outrs es que so exeutds tomiE mente em prleloF xo e(nmento de gontrole de istdo ewD esss es so pdronizds omo snrons e so sej neessrio representr ssinronismoD o mesmo deve ser feito expliitmenteD rterizndo o e(nmento essnrono de ees @esynE

hronous roedurl e(nement of etomi etions AF


y e(nmento de uErotins tro um de(nio strt por outr om mis operesD que ntes erm suposts omo existentes ou verddeirsF e plio dest regr de re(nmento em um pw represent leitur de seu digrm e o detlhE mento de sus regrsD podendo ter onjuntos de es exeutndo de form snron ou ssnronF

PFPF

wtodo de efinmento ew

PU

PFPFQ

y roesso

hd um espei(o de um sistemD devem ser feitos testesD espeilmente simulr situes de usoD de form onfrontr s neessiddes existentes om s funionE liddes desritsF ist um prti relizd om o ojetivo de vlidr o sistem pernte o mienteD mundo relD no qul est inseridoF wuits vezesD possvel modeE lr um sistem prtir dos sos de usoD tendo s funionliddes de(nids prtir de simules no wodelo fsioF essimD possvel de(nirD ntes d implementoD um eito mis preis do projetoD j que o lto gru de stro do wodelo fsio permite filmente prtiipo dos lientes e usurios do sistemF m espei(o ew possui um rtersti operionl que prov noes implits de exeuoF odem ser relizds simules mnulmente ou utilizndo lgums ds ferrments de exeuo ew desrits em iF WWD gptulo VF essimD o wodelo fsio ew pode ser utilizdo pr identi(r proprieddes pertenentes o homnio d eplio que sero utilizds pr veri(r o sistem de ordo om su espei(oF ortntoD utilizEse o wodelo fsio pr espei(o de requisitos e modelo de testesD onde ondies do mundo rel so onsiderdsF elm dissoD proprieddes so identi(ds e possvel de(nir pontos de oservoD elementos importntes pr de(nio do modelo e noes de relo entre mquins strt e re(ndF y wodelo fsio inspeiondo no homnio d eplio pr grntir que ele pture s pretenses iniiis de soluo do prolemF e relo de um prolem e um sistem desrit em termos ds funionliddes e proprieddesD e onsistni dest relo deve ser grntid em todos os nveis de stroF e veri(o de um mtodo de re(nmento ew um proesso que deve ser formlmente relizdo (m de mostrr que d regr plid o wodelo fsio preserv relo prolemE sistemF hess formD grnteEse que implemento resultnte est de ordo om o modelo strtoF e pigur PFS ilustr de form simples omo um re(nmento deve proeder e omo seus elementosD desritos nteriormenteD se intergemF e de(nio do wodelo fsio feit prtir dos modelos e ddos d plioF e vlido pode ser relizd ntes @ind no wodelo fsioA e depois d gero do digo lvoD por meio de simulo e exeuoD respetivmenteD omprndo os resultdos otidos nos dois momentosF gd psso do re(nmento deve ser veri(do provndoEse s proprieddes de(nids t oteno do digo exeutvelF gom isso grnteEse que d nvel de stro tingido est orretoF

PV

gptulo PF wodelo porml ew

Modelos

Dados da Aplicao

Modelo Bsico
SIMULAO

PROVAS OBRIGATRIAS

Validao

PASSOS DO REFINAMENTO

Verificao

EXECUO

Cdigo

pigur PFSX roesso de projeto de sistems em lto nvelF pigur dptd de fHQ

PFPFR

eplio do wtodo de e(nmento ew

possvel enontrr inmers solues de prolems reis que fzem uso do mtodo de re(nmento ew om diferentes (nliddesD omo espei(o de softwreD hrdwreD veri(o de lingugensD desrio de lgoritmos e protoolosF or exemploD o trlho de gstillo e ppinghus gHP desreve o desenvolvimento em lto nvel do nleo de funionmento de um entidde de rede de telefoni e present o re(nmento pr digo gCCF t o reltrio de frgerD ppinghus e hmid fHH mostr o uso de ew n iemes eq pr espei(o de um proesso do pevuyD modelo de orgnizo de um estrd de ferro n elemnhF e prtir do wodelo fsio desritoD utilizndo he ew orkenh helWWD mostrouEse em hHI o esquem de ompilo pr o re(nmento em gCCD preservndo estrutur d espei(o e sem gerr digo ine(ienteF xo mito de veri(o de lingugensD os trlhos fHID fWVD fWV preE sentm desrio omplet em lto nvel de tv e d twD onde so presentds nlises @veri(o e vlidoA mtemti e experimentl lm de mostrr ompiE lo de progrms tv pr o digo d twF r desrio em ewD foi utilizd ferrment esmqofer hF eind trtndoEse de lingugens de progrmoD formlizo de rolog preE sentd nos rtigos frWHD frWHD frWP em termos de ew e seguindo o modelo de pdronizo de rolog @qIU of syGsig tgs gPPAF e espei(o propost de(ne lingugem e reliz o re(nmento psso psso onde so desrits e provds rterstis ortogonis por meio de onjuntos modulres de regrsF

PFQF

e vingugem whn %

PW

y trlho hisWW present modelgem do sistem operionl wsxs e d rquitetur xVT utilizndo ewD e posteriormente re(nds em um implemento orrespondente em tv e em gF gonsiderndo espei(o de hrdwreD podeEse itr o so de estudo do ontrole de ilumino @he vight gontrol gse tudy AD prolem presentdo em fqHH pliE ndo o ontrole em um ndr de um universiddeF gonsiderndo rquitetur do prdio e implnto de hrdwresD o trlho fHH present disusso e soluE o em ewD onde so pturds rterstis informis e relizds doumento do sistemF intoD o wodelo fsio re(ndo utilizndo esmqoferD podendo vlidr e veri(r implnto do sistem de ontroleF m onheido prolem de espei(o de hrdwre o sistem de ontrole de produo @rodution gell AD que em weWUD desreveEse espei(o em ew e o re(nmento pr digo gCCF yutro trlho stnte onheidoD e muito utilizdo omo exemplos em vris desE ries em lto nvelD espei(o de um ldeir vpor onforme desrio de eril erWTF xo trlho ffh+ WTD presentd de(nio em ew pr ldeir vporD ilustrndo omo espei(o em lto nvel e veri(o de sisE tems omplexos podem ser explords pr um desenvolvimento em doumentdo e vliddoD preservndo inspeo forml e eitndo lteres futursF y wodelo fsio modulrizdo permite oter um espei(o om diverss vises do prolem e presentd trnsformo pr gCCF y prolem d ldeir foi presentdo no seminrio hgstuhl eminr on wethods for emntis nd pei(tion em tunho de PHHS om o des(o de oter melhor espei(o em lto nvelF ys resumos dos prinipis resultdosD inluindo ffh+ WTD esto listdos em efvWSF istes so exemplos de plio do wtodo de e(nmento ewD onde mostrE se espei(o em lto nvel de diferentes tipos de sistemD inluindo softwreD

hrdwreD lgoritmosD lingugens e protoolosF possvel mostrr filidde de se expressr e re(nr sistems simples e omplexosD possiilitndo fil doumento e vlido enqunto de(neEse o wodelo fsioF y rigor forml exigido pelo modelo ewD sem prejudir legiiliddeD permite veri(o do sistem e prov do orreto re(nmentoF essimD o wtodo de e(nmento ew utilizdo pr espei(o de sistems reis ontriuindo pr solues de prolems enontrdos tulmenteF

PFQ

e vingugem wh %n

e lingugem wh foi rid pelo grupo de pesquis do vortrio de vingugens %n rogrmo d niversidde pederl de wins qeris @vv E pwqAD e tulmente

QH

gptulo PF wodelo porml ew

se enontr n verso PFH fsfHSF il sed no oneito de wquin de istdo estrt @ewA qurWS e possui suporte modulriddeD rio de novos tipos e onstrues de lto nvelF xest seo so orddos os elementos relevntes pr o trlho presentdoF r omplet de(nio d lingugem wh %nD deveEse onsultr fsfHSF m progrm onsiste n de(nio de um voulrioD do estdo iniil e d regr de trnsio que promove mudn de estdosF elm dissoD h tmm n linguE gem onstrues pr de(nio de invrintes de exeuoD ontrole de visiilidde intermdulos e omunio entre gentesF e lingugem wh possui omo rterstis prinipisX %n

estruturs pr modulrizo e menismos de visiilidde e proteoY extensiilidde de tiposY seqenidores de regrsY sistem fortemente tipdoD om um rio onjunto de tipos prde(nidosY invrintes pr exeuo d regr de trnsio d mquin strtY regrs de trnsio de estdoY multigentesD om pidde de utonomiD independniD onsini de onE texto e soiiliddeD introduzid n lingugem de mneir simples e diretY exeuo multigentes snron e ssnronY stro de regrs de trnsioD inluindo es e iteresD que podemD por exemploD ser exeutds prtir de outrs mquinsD rindo noo de sumE quinsF

PFQFI

wdulos de rogrm

m mdulo de progrm espei( regr que um gente exeutD seu voulrioD interpreto do voulrio no estdo iniil e o invrinte d exeuoF m mdulo ontm um menismo de ontrole de visiiliddeD permitindo orgnizr o voulrio de um gente em uniddes enpsuldsD reduzindo su omplexiddeF m mdulo de progrm tem seguinte formX

PFQF

e vingugem whn %

QI wdulo em wh %n

funes e tipos abstractions : aes i n i t i a l state : inicializaes de funes dinmicas transition: regras invariant : invariantes de execuo end nome-do-mdulo

module nome-do-mdulo import elementos importados i n c l u d e elementos includos algebra :

e prte import olo no esopo do mdulo interfe dos gentes om os quis o gente do mdulo desej se omunirF e interfe de um gente ontm s ssinturs de stres de regrs que o mdulo disponiiliz pr uso de outros gentesF e prte inlude de(ne os mdulos seundrios e seus elementos que devem ser inorpordos o mduloF ist lusul tem importnte ppel n formo do voE ulrio dos gentesF e lusul inlude tmm serve pr ontrole de visiilidde de elementos delrdos plios em um mduloF e seo lger de(ne os elementos d lger sujente o modeloD ontendo os tipos e s funes do mduloF e seo initil stte serve pr iniilizo de funes dinmisF e seo strtions de(ne stres de regrs de trnsioD que podem ser utilizds lolmente ou exportdsF e seo trnsition de(ne regr de trnsio de estdo do genteD n qul exeuE td repetidmente de um s vezD ou em um seqni de pssosD qundo o gente disprdoF ist seo represent o orpo do progrm dos gentes ssoidos o mduloF e seo invrint de(ne ondio envolvendo os elementos de um mdulo que deve ser invrinte durnte su exeuoF intre dus iteres d regr de trnsio do mduloD o invrinte veri(do pelo sistem de exeuo wh %nF gso sej violdoD um mensgem de erro emitid e exeuoD interrompidF

PFQFP

egr de trnsio

e regr de trnsio de um gente de(nid n seo trnsition de um mduloF ode ser um regr de trnsio de um nio psso ou ento um seqni de pssos de

QP

gptulo PF wodelo porml ew

exeuoF xo primeiro soD regr exeutd repetidmente qundo o gente disprdo e (nliz qundo se tinge um ondio de terminoF xo so de mltiplos pssosD regr exeut um psso de d vezD indidos pel lusul stepD iniindo om step Xa IF e tulizo diret de step no permitid em wh %nD pr isso utilizEse vrivel implit nextD iniilmente IF entes de d psso de trnsioD next utomtimente inrementdD e ps tod trnsioD fzEse step Xa nextF e no houver um psso espei(doD ou sejD se for um psso omissoD nd feito n trnsio no ser o inremento de next e triuio step

Xa nextF
y vlor de step pode ser expliitmente lterdo em um psso triuindoEse um vlor nextD o qul ento prevlee sore o inremento utomtioF e trnsio dit onlud ps exeuo do ltimo pssoD neste soD o vlor orrente de step super de(nio do ltimo pssoD ento s funes implits step e next so reiniids om o vlor I e regr se repeteD relizndo o mesmo proessoF gonsidere seguinte regr de trnsio om seqni de pssos e s regrs I e PX egr om seqni de pssos
1 2 3 4 5
. . .

transition: step 1: R1 ; step 2: R2 ; step 4: i f g then next

:= 2;

end

xeste exemploD regr se inii om exeuo de I e depois de PF xo tereiro pssoD o omissoD nd feitoD exeto inrementr funo next e triuir stepF xo qurto pssoD gurd g vlidD se for verddeirD next tulizd pr exeutr o psso PF undo g for flsD nd feito eD no psso seguinteD step vle SD exedendo os pssos de(nidosF intoD step e next so reiniids e o proesso reome do psso IF

PFQFQ

wenismos de isiilidde

ys elementos @funes e tiposA que ompem lger de um gente so nturlmente privdosD ou sejD visvel pens no mdulo onde so delrdosF e lssi(o puli signi( que funo de um mdulo A ser inorpordo lger de um mdulo B que inlui A pel lusul inludeF xeste soD h duplio ds funes inludsD fzendo os mdulos A @inludoA e B @que inluiA terem diferentes interpretes desss funesF

PFQF

e vingugem whn %

QQ

punes delrds omo omprtilhdsD lssi(o shredD possuem mesm interpreto entre os gentes de um mesmo mduloF gso sejm plisD duplio no oorreD hvendo ssim o omprtilhmento desss funes entre os gentes dos mdulos que s delrou e dos mdulos que s inluemF e lusul inlude inorpor em um mdulo os elementos plios de outroD devendoE se quli(Elos qundo utilizdosF odeEse expliitr os elementos inludos sendo posE svel utilizElos diretmente sem neessidde de quli(oF y exemplo seguir mostr lger de um mdulo AF x linh QD de(neEse funo fune privdF e funo pli funf n linh R pode ser inorpord lger de outros mdulosF x linh SD delrEse funo seD qul omprtilhd entre os gentes do mdulo eF im seguidD n linh TD delrEse funo pseD que omprtilhd entre os gentes de e e gentes de mdulos que inluem eF wdulo A

1 2 3 4 5 6 7 8

module A algebra :
funcA

. . . end A

p u b l i c funcB shared sA p u b l i c shared

: : : psA :

Y; T; T; T;

e seguirD o mdulo B inlui o mdulo AD sendo ssimD B tem visiilidde dos elementos plios de A @ funo funf A e omprtilh funo pseF ys demis elementos de A no so visveis em B F xeste so de inlusoD os elementos de A devem ser utilizdos em B om quli(oD omo mostrdo n linh WF wdulo B inlui A
A;

1 2 3 4 5 6 7 8 9 10 11 12

module B include algebra :

funcD : T ;

abstractions : action actB i s


. . . end B

end

funcD := A . funcB ;

QR

gptulo PF wodelo porml ew

y mdulo C seguir inlui funo f uncB pli de A expliitmenteD linh PD portntoD no preiso quli(El n linh WF wdulo C inlui A
A ( funcB );

1 2 3 4 5 6 7 8 9 10 11 12

module C include algebra :

funcE : T ;

abstractions : action actC i s


. . . C

end

funcE := funcB ;

end

y menismo de visiilidde permite enpsulo de um mdulo de wh %nD um vez que um gente no pode essr livremente ddos de outrosF ssso reduz omplexidde dos mdulos e ontriui pr reusiliddeF

PFQFR

snterfes de egentes

m gente pode disponiilizr servios esteleendo um omunio entre gentesD ontriuindo pr modulriddeF ssso relizdo por meio d de(nio d interfeD que deve ter o mesmo nome do mdulo e pode onter tipos d lger e stres de regrsD hmds de oF y exemplo seguir mostr um possvel de(nio pr interfe de um mdulo AF snterfe do mdulo A

1 2 3 4

interface A type T ; action actA ; end A

m mdulo B import interfe de A por meio d lusul import d seguinte formX wdulo f import A
A;

1 2

module B import

PFQF

e vingugem whn %

QS

3 4

end

. . . B

essimD um gente do mdulo A disponiiliz seus servios @stres e tiposA e um gente de B os utiliz pel importo d interfe de AD linh P do mdulo B F

PFQFS

he(nies de wh %n

essoidos um espei(oD pode hver um ou mis mdulos de de(nio wh %nD os quis rim e disprm os prinipis gentes que exeutm de form utnom s regrs de trnsio de estdo dos mdulosF m mdulo de de(nio mhin onsiste n espei(o de seu nome e de diE retivs pr rio dos gentes e dispro de su exeuoF e prtir deste mduloD o sistem de exeuo wh ri um gente espeilD denomindo supergenteD que %n exeut s diretivs espei(ds no mdulo mhinD dndo inio o proesso de rio e exeuo dos gentesF e diretiv gent of wD dentro do mdulo de de(nio mhinD ri um genteD prtir do mdulo M D e dispr su regr de trnsioF y voulrio do gente formdo por um pi prpri de tods s delres ontids no mdulo M e nos mdulos prtir dele inludos vi diretiv inludeF e intero entre gentes possvel medinte tro de mensgens medid pelo supergente ou por esso funes omprtilhds shredF eps rio de todos os gentes no mdulo mhinD exeuo de d um iniidF es regrs de trnsio dos gentes so exeutds repetidmente em prlelo e simultnementeF gd ilo de exeuo d regr de trnsio de estdo de um gente tmioD sem qulquer tipo de interrupo ou loqueioF omente entre um exeuo d regr d trnsio e seguinte que gentes podem ser loquedosD por exemploD por flt de reursos soliitdos de outros mdulosD soliito explit ou lgum inonsistniF y exemplo seguir ilustr o mdulo mhin que ri o supergente X D em seguidD ri um gente do mdulo A e seis gentes de B D todos independentes entre siF wdulo de he(nio machina
A; B (5); B;

machina X agent of agent of agent of end

QT

gptulo PF wodelo porml ew

PFQFT

ees

ees so stres de regrs pr de(nio de tipos strtos de ddos om o seguinte esqueletoX eo

action A ( X ) i s r e q u i r e : P; ensure Q ;
L; // body

end

e exeuo em ody ontm um onjunto de regrs de trnsio sore s funes do voulrio glol e lolF m o A pode reeer um onjunto X de prmetros tipdosD que podem ser quli(dos om inD pssgem por vlorD out ou inoutD mos so pssgem por nome @ll y nme AF ypionlmenteD um o pode onter um onjunto L de delres loisF es tulizes relizds em A somente sero pereids no estdo seguinteF E lores ds funes lois so preservdos pr prxim hmd de S D so no exist iniilizo de funes lois em LF e lusul require exige que A sej hmd stisfzendo prEondio P F e lusul ensure mostr o que o A deve grntir ps su exeuoD ou sejD o (nl d trnsioD psEondio Q deve ser stisfeitF ulquer flh em P ou Q termin exeuo do gente em um situo de erroF y esopo de P e Q rnge o esopo do mdulo mis os prmetros formis ontidos em X F helres lois no fzem sentido nesss expressesD um vez que enquire e

ensure so lusuls que relionm o om o ontexto que el est imersoD onde os elementos de L no so visveisF
e prEondio P de um o A vlid no momento d hmdD e os vlores ds funes utilizds so otids no estdo orrenteF xo so d psEondio QD o supergente rmzen expresso de Q em um list de psEondiesF eo (nl d trnsioD o supergente veri( tods s ondies rmzends e os vlores ds funes e reles so otidos no estdo seguinteF e o in mostrd seguir inrement um o rgumento x pssdoF e prE ondio omitidD portnto in pode ser hmd sem nenhum restrio diionlF e psEondio diz que ess o grnteD o (nl de su exeuoD que o vlor de

x otido ser um unidde mior que o vlor de x nteriorD pr issoD utilizEse o

PFQF

e vingugem whn %

QU

quli(dor oldF eo

action inc ( out x : I n t ) i s ensure x = old x + 1; end


x := x + 1;

uponh um trnsio i j D onde i e j so estdosD e o vlor de x no estdo iD

xi D sej IHF eps exeuo de in otmEse o estdo j e o vlor de xj igul IIF y omndo old n psEondio se refere o vlor de xi enqunto xj j foi luldoF ortntoD lusul ensure x = old x + 1;
equivlente fzer n trnsio i j

ensure xj = old xi + 1;
sustituindo os vlores

ensure 11 = 10 + 1;
ees de(nids om ssintur A(X) sugestiv e ssoid s pr e psEondies permitem um viso em lto nvel de su trefF gom issoD possvel indir sus ondies de hmd e grntis sem onheer profundmente su exeuoF

PFQFU

gomunio entre egentes

egentes podem se omunir de dus formF e primeirD vi hmds stres de regrs @tion A que so delrds n interfe dos mdulos prinipisF hurnte exeuo de su regr de trnsioD um gente a pode soliitr exeuo de um stro de regr disponiilizd vi interfe por um outro gente bF iste proesso entendido omo o envio de um mensgem do gente a o gente bD soliitndo exeuo do servio de(nido pel stro hmdD ujos prmetros servem pr trnsmitir informes o gente b ou dele reeElsF odo gente possui o ontdor endingenswers e s (ls equestseeived e enswersE

eeivedD ontroldos pelo superagente pr oordenr s tros de mensgens entre gentesF imor esss estruturs oupem o espo de ddos do genteD no h meios de

QV

gptulo PF wodelo porml ew

mnuseEls diretmente em wh %nF e (l equestseeived rmzen os pedidos de exeuo de stresD e seus respetivos prmetrosD feitos por outros gentesF e (l

enswerseeived tem o formto de um list de tulizes e seu ontedo reltivo o vlor de retorno de prmetros out e inout ds requisies envids outros genE tesF y ontdor endingenswers ontiliz o nmero de requisies om prmetros do tipo out e inout feits outros gentesF m gente somente pode reEexeutr su regr de trnsio qundo endingenswers estiver zerdoF
undo um gente a soliit exeuo de um stro de um outro gente bD o supergente olo o pedidoD e seus prmetrosD n (l equestseeived de bF e houver prmetros do tipo out ou inoutD o endingenswers de a inrementdo e este gente ontinu su trnsio orrenteD ms ser impedido de iniir prximF undo o gente b tende soliito de aD o superagente retir requisio d (l equestseeived de b eD no so de prmetros out e inoutD os vlores destes prmetros so luldos e olodos n (l enswerseeived de a e seu ontdor

endingenswers derementdoF into o gente a tuliz seus ddos de ordo om (l enswerseeived e ome prxim iteroF e (l equestseeived de b pode onter vris requisies de diversos gentesD ssimD d pedido tendido um umD de form tmiF
es hmds stres de regrs de outros gentes so ssnrons em relo exeuo d trnsio orrenteD isto D o envio de mensgens no us loqueio do gente durnte trnsio orrenteD porm prxim trnsio somente ser retomd ps o reeimento ds informes soliitds pels mensgens envids durnte ltim itero d regr de trnsioD isto D qundo o endingenswers for igul zeroF y loqueio de exeuo d trnsio seguinte evit erros de esso vlores ind no disponveisD preservndo propriedde de que s tulizes tero vlidde n itero seguinteF e (m de evitr o loqueio d prxim trnsioD um servio pode ser soliitdo de form ssnron mrndo hmd stro orrespondente om plvr synhronouslyF y exemplo westreEisrvo seguirD eo PFQFVD ilustr este omportmentoF y supergente ontrol utomtimente s soliites de servios relizds pelos gentesD e este o nio meio de ontrole existenteF y supergente responsvel por relizr o ontrole de onorrni de ddos de form trnsprente o progrm esrito em wh %nD (ndo de ordo om o modelo de wquin de istdos estrtD qurWSF essimD prolems omo ondio de orrid e dedlok so mis filmente resolvidos nest lingugemF yutr form de omunio entre gentes vi funes omprtilhds @shred AD s quis sus interpretes so s mesms pr todos os gentesF m funo delrd pens omo shred em um mdulo e omprtilhd entre os gentes de eF e for

PFQF

e vingugem whn %

QW

puli shredD o omprtilhmento ontee entre os gentes de e e gentes dos demis mdulos que inluem eF
gomo os gentes exeutm em prleloD ( evidente possiilidde d existni de ondio de orridD e os meio neessrios pr este ontrole devem ser relizdo pelo desenvolvedorF

PFQFV

ixemploX westreEisrvo

y lgoritmo westreEisrvo stnte utilizdo n re de redesF gonsiste n exeuo prlel de um determindo nmero de proessosD denomindos esrvos @slves AF m proesso mestre @mster A oorden o momento do inio d exeuo dos esrvos e gurd (nlizo de todos elesF iste um exemplo de exeuo ssnron e ser mostrdo omo implementdo em wh %nF y lgoritmo funion d seguinte formX ntes do proesso mestre dr ordem de exeuo os proessos esrvosD ele pergunt se todos esto disponveis e gurd respostF gso verddeiroD o mestre orden que todos exeutem su tref prlelE mente e de form ssnronD so ontrrio dd ordem pr nelr exeuoF ode ser possvel que o mestre exeuteD tmm em prleloD su prpri tref durnte o tempo de exeuo dos esrvosF r simpliidde do exemploD so onsiderds omunies mestreEesrvo sem flhs e o mestre ( in(nitmente tentndo dr ordem de exeuo os demis proessosF e soluo qui presentd foi sed n desrio de frger em fHQD gptulo TF e seguirD de(neEse o mdulo pr esrvoD denomindo lve om os seguintes elementosX

Order

ipo plio simolizndo ordem de exeuo @jo A ou nelmento @nE

el AY

Answer order

ipo plio simolizndo possvel respost do esrvoD informndo que

est disponvel @ept A ou indisponvel @refuse AY puno que represent ordem reeidF

y mestre pergunt os esrvos por meio d stro qetenswer @linh ISAD onde respost dd no prmetro nsD pssdo omo outF y gente esrvoD iniilmenteD gurd pel ordem do mestre @linh QQAF eo reeer ordemD o gente exeut su trefD de(nid n o skD se ordem for joD so ontrrio nd feitoF osteriormenteD (nlizEse exeuo @linhs QS e QTAF

RH

gptulo PF wodelo porml ew

eo informr o mestre que exeuo foi (nlizd @linh QTAD o gente esrvo utiliz stro eportesultD em um hmd ssronD que importd d interfe do mdulo que de(ne o mestre @linh PAF wdulo Slave
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

module Slave import Master ; algebra : p u b l i c type p u b l i c type


Order = Answer =

enum enum

{ job , cancel } { accept , refuse }

d e f a u l t undef ; d e f a u l t undef ;

order : Order ;

abstractions : action Clear i s order := undef ; end action GetAnswer ( out choose a : Answer do ans ( s e l f ) := a ; end end action end
ans : Slave -> Answer )

is

SetOrder ( i n ord : Order ) order := ord ;

is

action end

Task i s // doSomething

i n i t i a l state :
Clear ;

transition: step 1: i f order = undef then next := 1; e l s e i f order = job then Task ; end end

Clear ; Master . ReportResult ( s e l f )

asynchronously ;

end

Slave

PFQF

e vingugem whn %

RI

y mdulo lve de(ne omo nl de omunioD que ser utilizdo pelo gente mestreD os tipos yrder e enswerD s stres qetenswerD utilizd pr oter um respost sore disponiilidde do esrvoD e etyrderD utilizd pr dr ordem de exeuo ou nelmentoF sntefe lve

1 2 3 4 5 6

i n t e r f a c e Slave p u b l i c type Order ; p u b l i c type Answer ; action GetAnswer ( out action SetOrder ( i n ord end Slave

ans : Slave -> Answer ); : Order );

y mdulo mestreD denomindo wsterD presentdo seguir om os seguintes elementosX

slaves n order

qrupo de proessos esrvosY

xmero de proessos esrvos de(nidos externmenteY yrdem ser dd os esrvosY wpei um esrvo n su respetiv respostY

answersArrived resultsArrived allReported

wpei um esrvo n su ondio de exeuoY

sndi se todos os esrvos terminrm su exeuoF

sniilmente so ridos os n gentes esrvos que (m gurdndo pel perguntF eo iniir su regr de trnsioD o proesso mestre pergunt todos os esrvos se possvel exeutr vi o inquire @linh SPAF isse proedimento relizdo requisitndo o qetenswer do mdulo lve @linh PRAD e omo hmd snronD o gente mestre ( gurdndo que todos os esrvos respondm pr seguir o psso seguinteF iste psso tem o ppel de sinronizr o mestre om todos os esrvosF im seguidD erto que tods s resposts hegrm o mestreD ento o mestre s vli veri(ndo se existe lgum respost reusd e de(ne qul ordem ser dd n o ivlenswerserrived @linh PUAF xo psso seguinteD ordem envid os esrE vosD utilizndo o etyrder de(nid em lveF gomo hmd feit de form ssnronD no oorre loqueio pr prxim itero do mestreD que exeut su prpri tref @wstersk n linh SSA t que todos os esrvos tenhm termindo @linh STAF or (mD o mestre reinii o lgoritmo @linh SUAF

RP

gptulo PF wodelo porml ew

wdulo M aster
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

module Master import Slave ; algebra :


slaves order answersArrived resultsArrived derived allReported : agent of Slave ; : Int ; : Order ; : Slave -> Answer ; : Slave -> Bool ; : Bool := a l l s : slaves s a t i s f y i n g resultsArrived ( s ) := true ;

external

abstractions : action Clear i s order := undef ; alReported := f a l s e ; f o r a l l s : slaves do answersArrived ( s ) end end

:= resultsArrived ( s ) :=

undef ; false;

action Enquire i s f o r a l l s : slaves do s . GetAnswer ( answersArrived ); end end action EvalAnswersArrived i s i f e x i s t s s : slaves s a t i s f y i n g then order := cancel ; e l s e order := job ; end
answersArrived ( s ) = refuse

action SendOrder i s f o r a l l s : slaves do s . SetOrder ( order ) asynchronously ; end end action end
MasterTask i s // master does something while wait for slaves

action end

ReportResult ( i n s : Slave ) resultsArrived ( s ) := true ;

is

PFQF

e vingugem whn %

RQ

45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

i n i t i a l state : create agent

slaves ( n );

transition: step 1: f o r a l l step step step step step step

s : slaves

2: 3: 4: 5: 6: 7:

Clear ; Enquire ; EvalAnswersArrived ; SendOrder ; MasterTask ; i f not allReported then Clear ; next := 2;

do dispatch

s;

end

next

:= 5;

end

Master

e noti(o envid o mestre informndo que um esrvo terminou su tref relizd pel o eportesultF eportesult delrd n interfe de wsterD onforme seguirD pr ser orretmente utilizd em lveF il tmm no us nenhum loqueio de iteresD pois su hmd feit om mr synhronouslyD portnto preserv s exeues em prlelo e de form ssnron dos gentes esrvos e o mestreF

sntefe wster
1 2 3

i n t e r f a c e Master action ReportResult end Master

( i n s : Slave );

iste exemplo ilustr um exeuo multigentes implementd em wh %nF e rtersti prinipl do prolem exeuo prlel e ssnron ds trefs relizds pelo mestre e demis esrvosD ssim omo possvel rir pontos de sinroE nizo dos proessosF y psso Q @linh SQA d trnsio do proesso mestre represent um ponto de sinroni do sistemD onforme exigni d espei(o de que todos os esrvos devem estr disponveis pr exeuo de sus trefs no mesmo instnteF xos demis pontos ds regrs de trnsioD tnto de lve qunto de wsterD exeE uo ssnron em relo os demis gentes do sistemD omo propost do lgoritmoF essimD foi possvel mostrr omo wh ord exeues ssnrons %n om determindos pontos de sinronizoF

RR

gptulo PF wodelo porml ew

PFQFW

ixemploX rodutorEgonsumidor

y prolem rodutorEgonsumidor onsiste em um u'erD um onjunto de produtores responsvel por inluir elementos no u'er e um onjunto de onsumidores responsvel por retirr elementos inludos pelo produtorF heveEse ontrolr o esso o u'er pr evitr leitur inorret de ddo e soresrit de um ddo ind no onsumidoF e seguir presentd um soluo em wh %nF y mdulo fu'er de(ne os seguintes elementosX

buer empty full

vist de vlores que o u'er rmzenY mnho mximo do u'erD privdo e no pode ser lterdo @stti AY

maxSize

puno derivd que indi se o u'er est vzioY

puno derivd que indi se o u'er est ompletmente heioF

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

module Buffer algebra :


buffer

wdulo fu'er

: l i s t of I n t ; s t a t i c maxSize : I n t := 10; derived empty : Bool := length ( buffer ) = 0; derived full : Bool := length ( buffer ) = maxSize ;

abstractions : p u b l i c action Write ( i n x : Int , out i f full then ok := f a l s e ; e l s e ok := true ; end end
buffer := buffer :: x ; ok :

Bool ) i s

p u b l i c action Read ( out i f empty then ok := f a l s e ; else ok := true ; end end

x :

Int , out

ok :

Bool ) i s

x := head ( buffer ); buffer := tail ( buffer );

end

Buffer

PFQF

e vingugem whn %

RS

es es rite e ed do mdulo fu'er provm um mneir de um rodutor inluir o elemento produzido e um gonsumidor o lerF or isso so delrds n interfe do mduloF possvel notr usni de regr de trnsioD rterizndo

fu'er omo um mdulo provedor de serviosF


snterfe fu'er
1 2 3 4

i n t e r f a c e Buffer p u b l i c action Write ( i n p u b l i c action Read ( out end Buffer

x : x :

Int , out Int , out

ok : ok :

Bool ); Bool );

y mdulo gonsumer de(ne o omportmento de um onsumidorF rimeirmenteD de(nid um funo unitD linh TD que rmzen o vlor reuperdoF e funo

ok utilizd pr indir se leitur foi relizd qundo soliitd e u'er um referni o gente de fu'erF gonsumer import o mdulo fu'erD onforme mostrdo n linh PD tendo esso os seus servios disponiilizdosF e regr de trnsio de(ne que um gente onsumidor tent ler os elementos de u'er in(nitmenteF undo soliitEse leitur de u'erD este retorn em ok se foi ou no possvelD ssimD um onsumidor pode proessr o ddo lido ou relizr nov tenttivF
wdulo Consumer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

module Consumer import Buffer ; algebra :


ok : Bool := f a l s e ; unit : I n t := 1; buffer : Buffer := Buffer . theAgent (1);

transition: i f ok then else end end

// processa unit ok := f a l s e ; buffer . Read ( unit , ok );

Consumer

y mdulo roduer de(ne o omportmento de um produtor e possui rtersE tis muito semelhntes o mdulo gonsumerD om diferen que tentEse esrever ontinumente o novo ddo produzidoD onforme desrito n regr de trnsioF

RT

gptulo PF wodelo porml ew

wdulo roduer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

module Producer import Buffer algebra :

( buffer , full );

ok : Bool := f a l s e ; unit : I n t := 1; buffer : Buffer := Buffer . theAgent (1);

transition: i f ok then else end end

unit := unit + 1; ok := f a l s e ; buffer . Write ( unit , ok );

Producer

e mquin rost de(ne um nmero ritrrio de gentes onsumidores e gentes produtoresF odos sero exeutdos em prlelo e de form independenteF y gente de fu'er tmm ridoD e pel de(nio nos mdulos gonsumer e roduerD mos possuem mesm referni o gente de fu'erF es funes numeryfgonsumers e numeryfroduers so funes externsD permitindo rir quntiddes vrids de onsumidores e produtoresF wquin Host
1 2 3 4 5

machina Host agent of Buffer ; agent of Consumer ( numberOfConsumers ); agent of Producer ( numberOfProducers ); end

hess formD possvel ontrolr o esso o fu'er sem rir ondio de orridF gd pedido pr esrever ou ler rmzendo n list de requisies do mdulo fu'er e proessds um um tomimenteF e grnti de suesso n operoD de ordo om disponiilidde @heio ou vzioA do u'erD ddo n funo ok pssd omo prmetro out ns es rite e edF e omunio entre gentes relizd vi tro de mensgens snrons grnte que o sistem ser exeutdo de form orret e segurD no que diz respeito o omprtilhmento de informes de fu'erF

PFQF

e vingugem whn %

RU

PFQFIH

ixemploX emforo

yutr possvel soluo pr o prolem rodutorEgonsumidor pode ser dd vi omE prtilhmento de funesF essimD deveEse ontrolr o esso pr evitr ondio de orridF intoD utilizEse implemento de um semforoD onforme desrito seguirF y mdulo fu'er omprtilh s funes u'erD empty e full entre produtores e onsumidoresF wdulo fu'er
1 2 3 4 5 6 7 8 9

module

Buffer

algebra : s t a t i c maxSize : I n t := 10; p u b l i c shared buffer p u b l i c shared derived empty p u b l i c shared derived full

: : :

l i s t of I n t ; Bool := length ( buffer ) Bool := length ( buffer )

= 0; = maxSize ;

end

Buffer

r o ontrole de esso s funes omprtilhdsD utilizEse de(nio de semE foro seguirF e funo resoures permite generlizo pr um nmero qulquer de reursos omprtilhdosD no so de rodutorEgonsumidorD existe pens umD o u'erF undo um gente neessit de um reursoD ele fz soliito vi o e respost dd em permissionF eo (nl d seo rtiD o gente lier o reurso vi o F emphore
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

module Semaphore algebra :


resources :

Int

:= 1;

abstractions : p u b l i c action P ( out permission i f resources > 0 then permission := true ; else end end
resources permission :=

Bool ) i s

:= resources - 1;

false;

RV
16 17 18 19

gptulo PF wodelo porml ew

p u b l i c action end end


Semaphore

V is resources := resources + 1;

y mdulo gonsumer import os servios de emphore e inlui expliitmente os elementos u'er e empty do mdulo fu'erF elm de unitD delrEse semD otendo o gente de emphore delrdo n mquin de exeuoF or (mD permitted funo que rmzen respost dd qundo feit soliito do reursoF e regr de trnsio dividid em dois pssosD no primeiroD fzEse soliito do reurso vi hmd do servio do gente semF xo segundo pssoD respostD dd em premittedD nlisdF gso permisso tenh sido onedidD o onsumidor tem esso exlusivo os elementos omprtilhdosD podendo ento oter um elemento de u'erD so o mesmo no estej vzioD e tulizEloF eo (nlD lirEse o reurso e triuiEse flso permittedF wdulo Consumer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

module Consumer import Semaphore ; i n c l u d e Buffer ( buffer , algebra :


unit :

empty );

Int

:= 0;

sem : Semaphore := Semaphore . theAgent (1); permitted : Bool := f a l s e ;

transition: step 1: step if

sem . P ( permitted ); 2: permitted and not empty unit := head ( buffer ); buffer := tail ( buffer ); sem . V ; permitted :=

then

end

Consumer

end

false;

y mdulo roduer possui s mesms rterstis de ontrole ds funes omE

PFQF

e vingugem whn %

RW

prtilhdsD omo pode ser visto em su regr de trnsioF wdulo roduer


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

module Producer import Semaphore ; i n c l u d e Buffer ( buffer , algebra :


unit :

full );

Int

:= 0;

sem : Semaphore := Semaphore . theAgent (1); permitted : Bool := f a l s e ;

transition: step 1: step if

sem . P ( permitted ); 2: permitted and not full then buffer := buffer :: unit ; unit := unit + 1; sem . V ; permitted :=

end

Producer

end

false;

e mquin rost de(ne o gente de semforoD responsvel por ontrolr o esso o reurso omprtilhdoD e os gentes de onsumidores e produtoresF wquin rost
1 2 3 4 5
machine Host create Semaphore ; create Consumer ( numberOfConsumers ); create Producer ( numberOfProducers ); machine

iste exemplo mostr um segund soluo pr o prolem rodutorEgonsumidor relizndo omunio entre os gentes por meio de funes omprtilhdsF ys proE lems reliondos onorrni so soluiondos vi implemento de semforoD e de(nio d seo rti deve ser feito pelo desenvolvedor

SH

gptulo PF wodelo porml ew

PFR

gonluses

e stro presente em ew torn o modelo legvelD e possiilidde de exeutr um espei(o filit depuro do sistemF y modelo tmm dispe de reursos pr desrio de onorrniD noEdeterminismo e exeuo snron e ssnronF y formlismo existente em ew fundmentl no uxlio provs de proprieddes d espei(oF y onjunto de mquins ns quis os estdos so (nitosD s pwsD so importntes pr de(nio de estruturs de ontrole que possiilitm o mnuseio de estruturs de ddos do sistemF essimD podeEse tornr modelgem legvel e intuitivD simpli(ndo tref de vlido do sistemF irndo proveito do rigor mtemtio e d legiilidde do modelo ewD o wtodo de e(nmento ew tem s rterstis de veri(o inlus no proesso de re(E nmentoD vlido ind durnte o projeto e espei(o legvel e independente de pltformsF y wodelo fsio o reurso de espei(o de sistemsD que deve ser ompreensvel os domnios d eplio e do wodeloF elm dissoD su onstruo ontm rterstis de ertos pdres de re(nmento que filitm plio ds regrs de trnsformoD que so lssi(ds e podem forneer proprieddes serem grntidsF wh um lingugem sed no modelo ew que possui suporte modulE %n riddeD fortemente tipd e possui onstrues em lto nvelF elm dissoD possiilit extenso de tipos e de(nio de invrintes de sistemF e exeuo multigente inE dependente e pode ser snron ou ssnronF e hern de rterstis do modelo ew permite de(nio de um mtodo de re(nmento pr est lingugemD sed ns de(nies do wtodo de e(nmento ewF

gptulo Q wtodo de e(nmento wh %n


y wtodo de e(nmento wh @wwA proposto nest disserto sedo no %n wtodo de e(nmento ew de igon frger frHQF ww tem omo ojetivos propor um lingugem em lto nvel pr desrio do wodelo fsioD que permit vE lidr espei(o ind durnte o projetoD desrever s regrs de re(nmento pr oter o digo wh orrespondente e propor um mtodo de veri(o utomE %n tiF hevido su omplexiddeD veri(o no ww desrit seprdmente no gptulo RF xeste ptuloD presentd lingugem de ww pr espei(o do wodelo fsioF im seguidD desreveEse omo relizr vlido do wodelo fsio e so presentds s regrs de re(nmento pr oter o digo wh %nF

QFI

vingugem de wodelgem wh %n

vingugem de wodelgem wh @vwwA um lingugem de espei(o pr %n um wodelo fsio fundmentd em digrms de )uxo de ontrole e de de(nio modulr por meio de tipos strtos de ddosF elm ds rterstis omuns de wodelo fsioD vww suport espei(o de proessos ssnronos e sed em desenhos gr(os de represento em lto nvelF odos os oneitos inerentes d espei(o d lingugem wh %nD de(nid em fsfHS e resumid n eo PFQD so plids vwwD inlusive plvrs hves e sintxe de desrioF vingugem de wodelgem wh de(nid om os seguintes elementosX %n

hesrio extulX gontm desrio em lingugem nturl do prolem e


ds solues dotdsF gd prte d soluo deve onter o texto que desreve eD em seguidD formlizo onstitud pelo higrm de rnsio de istdosD que model o omportmento do sistemD e pelo qlossrioF ixpress s neessiddes que o softwre deve stisfzer e pertene o homnio d eplioF

ipo estrto de hdos @ehAX hesreve s rterstis de novos tipos de


SI

SP

gptulo QF wtodo de efinmento whn %

ddos de ordo om interpreto ds neessiddes identi(dsF hesreve os eleE mentos do mundo rel em termos de requisitos do sistemF wodel spetos esttios e pertene o homnio dos wodelosF

higrm de rnsio de istdos @hiAX wodel o omportmento de prte


do sistem ou o sistem inteiroF wostr o )uxo de ontrole ds tividdes e s trnsies @e sus esA relizds entre os estdosF gonsiste n represento dos requisitos e formliz soluo dotd de mneir strtD sendo o nvel mis lto de stro no modelo formlF wodel spetos dinmios e pertene o homnio dos wodelosF

qlossrioX onde de(nemEse ondies e es utilizds no higrm de rnE


sio de istdosF ejud ontrolr o gru de stro nos digrms e tmm o primeiro psso de re(nmentoD ssim omo primeir interveno humn no proesso de re(nmentoF wodel spetos esttios e pertene o homnio dos wodelosF y qlossrio dividido em dus prtesF e primeir hmd de lgerD onde so de(nids s estruturs de ddos e funes que onstituem um ehD e segund hmd de estresD onde de(nemEse s es que form desrits no higrm de rnsio de istdosF

wenismo de isiiliddeX higrm que model omposio de mdulos e


intero entre gentes @instnis de mdulosAF m mdulo @ehA pode inorporr elementos delrdos omo plios em outro mdulo pr formr seu voulrioF egentes podem se omunir utilizndo servios disponiilizdos n interfe de seus mdulosF y primeiro menismo est vinuldo de(nio d snterfe n desrio de ehD e o segundo diz respeito lger no qlossrioF e espei(o de todos esses elementos de(ne mquin de exeuo que repreE sent todo o sistemF essimD vww permite formulo de um wodelo fsio om lto nvel de stroD portnto fil legiiliddeD lto poder de expresso e stnte )exvelF e pigur QFI mostr omo vww ord d etp de espei(o de sistems e omo se relion om os dois domnios presentdosF im seguidD dd noto pr vwwF

QFIFI

hesrio extul

y prolem ser soluiondo desrito informlmente em textos que expressm sus rterstis e neessiddesF intoD de(neEse e doumentEse propost de soluE oD deises e estrtgis utilizdsF isss informes ontriuem fortemente pr o reonheimento e rterizo dos ipos estrtos de hdosD que representm os mdulos que iro ompor o sistemF x desrio do wtodo de e(nmento wh neessrio de(nir um formtE %nD
A o pdro pr o texto resultnteF ortntoD utilizEse noto v i unuVR pr

QFIF

vingugem de wodelgem whn %

SQ

Descrio Textual Necessidades

Domnio da Aplicao

ou

Domnio do Problema

TAD + Diagrama DTE

Caractersticas do sistema

Domnio dos Modelos

ou

Domnio da Soluo

Glossrio + Mecanismo de Visibilidade

Requisitos do software

pigur QFIX itps de espei(o de sistemsF edio do texto devido sus rterstis de independni de mienteD pltform livre e filidde de uso unuVQF

QFIFP

ipo estrto de hdos

m ipo estrto de hdos @ehA represento em vww de um elemento do mundo rel onstitudo de um onjunto de rterstis e proprieddesD identi(ds e orgnizds n espei(o informlF gd eh de(ne um determindo mdulo om ertur pr futurs espei(es de sus funionliddesF epliEse o onE eito de progrmo por ontrto pr de(nir s operesD strds por es em vwwD que o mdulo deve prover weyWUF hemis es e rterstisD importntes internmente o ehD so de(nids posteriormente no qlossrioD eo QFIFRF ys seguintes elementos so neessrios pr se de(nir um eh em vwwX

nomeX identi( o eh dentro do sistem e deve ser sugestivo su funionliE ddeY lgerX mnim represento do voulrio que rteriz o ehF o de(E nidos nomes de funes e tipos strtos sem preoupo om tipgemD pois o ojetivo oter um represento strt e ser independente de lingugensY invrinteX onjunto de invrintes de exeuo de um genteY interfeX stres @tions AD que representm s operesD e tipos strtos que so visveis externmente o mdulo pr o umprimento de seu ontrtoF em importnte ppel n omunio entre gentesD pois de(ne os servios e tipos que podem ser utilizdos por outros gentesF

SR

gptulo QF wtodo de efinmento whn %

e noto de ipo estrto de hdosD pigur QFPD dd por um retngulo reE presentndo o mduloD o nomeD que pree no nto superior esquerdoD e possui dus regiesF e primeirD hmd lgerD desreve minimmente os prinipis elementosD funesD reles e tipos strtosD que rterizm o ehF y segundoD hmdo de

invrintD de(ne os invrintes em funo d lger e deve seguir mesm sintxe do loo invrint de wh %nF
tadName algebra: abstractType abstractType abstractType action action action

....
invariant:

....

pigur QFPX xoto pr ipo estrto de hdos

direit do retngulo existem dois tipos de segmentos de ret que podem ser utiliE zdos pr de(nio d interfe do ipo estrto de hdosF ys segmentos opldos por um rulo heio de(nem os tipos strtos que sero visveis externmenteF m vez que um tipo foi utilizdo no segmentoD ele no preis estr n seo lger do ehF ys segmentos opldos por um rulo vzio de(nem os nomes dos servios providos pelo ehF im vwwD os ipos estrtos de hdos expressm s rterstis sis do onjunto de elementos responsveis pels trefs do sistemF osteriormenteD durnte o proesso de re(nmentoD d ipo estrto de hdos ser mis detlhdo em su estruturD )uxo de ontrole e reles entre gentes de outros mdulosF

QFIFQ

higrm de rnsio de istdos

higrm de rnsio de istdos @hiA um derivo de pw @eo PFIFTA pr se dequr s neessiddes e espei(es d vingugem de wodelgem wh %nF his so utilizdos pr modelr o omportmento e desrever s rterstis de mdulos em lto nvel om o ojetivo de ser filmente interpretdo por qulquer um que estej envolvido no projetoF m digrm trt de spetos dinmios d espei(o e o elemento pertenente o homnio dos wodelos que est mis prximo do homnio d eplioF or issoD onstrudo em um lto gru de stro sem deixr de ldo spetos formis do modeloF

QFIF

vingugem de wodelgem whn %

SS

gd higrm de rnsio de istdos est ssoido um ipo estrto de hdos e represent o omportmento de seus gentesF onstitudo de um onjunto de estdos reliondos pels trnsiesD que ontm ondies e esF y estdo orrente do digrm tmm pode ser hmdo de estdo internoD e possvel estr em pens um nio estdo em um determindo instnteF es ondies e es devem estr de ordo om o modelo ew e seguir sintxe d lingugem lvo dotd no mtodo de re(nmentoF e noto hi derivd d noto de digrms de estdos de wv tfHRD ftHS e pw om lgums lteres om o ojetivo de tender melhor o modelo ew e permitir um mtodo de re(nmento direiondo lingugem wh %nF e seguirD de(nid noto do digrm presentndo d prte que o ompeF

QFIFQFI

istdos

m estdo de um hi represent situo que stisfz lgum ondioD reliz um tividde ou gurd que um ondio sej stisfeitF omposto deX

xomeX identi( unimente um estdoY etividdeX o exeutd d itero enqunto o gente permneer em um determindo estdoF y nome d tividde ddo expliitmente n form tvX tvttexmeD podendo vir dentro ou for do rulo que represent o estdoD omo mostr pigur QFQF es es so de(nids n eo QFIFQFRF

state
atv: atvState

state
atv: atvState

(a)

Nome

da

atividade

(b)
fora

Nome

da

atividade

dentro.

pigur QFQX epresento de um estdoD stte indi o nome do estdoF

QFIFQFP

istdo snterno

odo mdulo ontm um nio estdo internoD hmdo de tlstteD que design o estdo orrente dentre os possveis que se pode ssumirF y ontrole sore ess funo totlmente relizdo pelo wtodo de e(nmento wh %nD no sendo permitido seu uso n espei(o em lto nvel vwwF e funo prede(nid urrentstte permite oter o vlor de tlstte pr onsultD ms no eit tulizes explitsF

ST

gptulo QF wtodo de efinmento whn %

QFIFQFQ

rnsies

m trnsio um relo entre dois estdosF epresentd por um setD sendo ompost deX

ondiesX ftos que devem ser stisfeitos @gAY es de trnsioX onjunto de es serem exeutds @eAY estdo de origem @iAY estdo de destino @jAY nomeX opionlD representdo por um retngulo preenhidoF
e pigur QFR@A exempli( represento gr( de um trnsio entre dois estdos do hiF y )uxo de um trnsio onsiste n ordeno temporl de seus elementos seguindo oriento origem destino F gomo s es so exeutds em prleloD ess ordeno determin o ontrole do )uxoD ou sejD quis es sero exeutds e qul ser o estdo de destinoF e o primeiro elemento for um ondio C D trnsio iond qundo C stisfeit no estdo de origem do )uxoF essimD C pode ser onsiderd o disprdor d trnsioF gso o primeiro elemento sej um oD trnsio ser ftlmente disprdF y gente pens lter seu estdo se o )uxo tingir o estdo de destinoF e ltero de estdo e o efeito d exeuo ds es somente so pereidos n itero seguinteD estndo de ordo om o modelo ewF m trnsio pode onter o mesmo estdo pr origem e destinoD omo o exemplo d pigur QFR@AF wuito emorD no ontexto do digrmD o estdo no sej lterdo ness trnsioD o estdo interno do mdulo @tlstte A tulizdo om o mesmo vlor de ntesF essimD s trnsies representds ns pigurs QFR@A e QFR@A onorrem pel tulizo de tlstteF iste ssunto ser melhor orddo posteriormente n eo QFIFQFSF

C i A

Nome da Transio

(a) Transio e elementos

(b) Origem igual destino

pigur QFRX epresento de trnsio de estdoF

QFIF

vingugem de wodelgem whn %

SU

QFIFQFR

ees de trnsio

es es de trnsio representm um onjunto de tulizes do voulrio reliE zds durnte um trnsio de estdoF ods s es que devem ser exeutds em um trnsio tm o seu efeito pereido pens n prxim iteroF
i A j Atualizaes de 'A' so percebidas apenas em j

pigur QFSX epresento de um oF m o representd por um retngulo e um nomeD omo n pigur QFSF iste nome deve ter um orrespondente em estro no qlossrio pr um de(nio mis detlhdF gso no hjD o mtodo de re(nmento deve relizr o trtmento deE qudo ou reportr o erroF or exemploD o A mostrd n pigur QFS poderi tulizr o voulrio do mdulo omo mostr o digo wh seguirF %n ixemplo de um eo

1 2 3 4

action end

A is f ( t ) := x ; h ( t ) := y ;

QFIFQFS

gondies

m ondio um expresso oolen presente n trnsioF u vlio deterE min pssgem do )uxoF ys )uxos de entrd e sd so determindos pelos estdos de origem e destino d trnsioF m ondio deve onter um nio )uxo de entrd e deve existir pelo menos um )uxo de sdD eFgF pigur QFT@AD permitindo ou no su ontinuiddeD e no mximo doisD eFgF pigur QFT@AD rmi(ndo o )uxo em d so de vlio @verddeir ou flsAF xo so de um nio )uxo de sd vlio verddeir d ondio permite ontinuiddeD enqunto que vlio fls impede que trnsio sej efetudD onseqentemente o estdo no lterdoF xo so de dois )uxos de sdD o digrm ter rmi(es e deveEse expliitr qul )uxo se refere vlio verddeir @T A e fls @F AF m seqni de ondies em um trnsio orresponde o ninhmento dests e ltero de estdo somente relizd se o )uxo tingir um estdo de destinoF ssso possiilit exeuo de es sem efetiv ltero do estdoF pigur QFU@A ilustr ess situoD e pr melhor ompreenso do que oorreD pigur QFU@A mostr

SV

gptulo QF wtodo de efinmento whn %

T
rule C rule C

(a) Um uxo de sada

(b) Dois uxos de sada

pigur QFTX epresento de um ondioF o pseudo digo orrespondenteF epre que tulizo de tlstte feit pens n ondio mis internF
i
C1 A1 C2 A2

(a) Seqncia de condies


Pseudo cdigo correspondente if C1 then A1 if C2 then A2 ctl_state j end end

(b) Pseudo cdigo correspondente

pigur QFUX eninhmento de ondiesF m estdo pode ser origem de vris trnsiesD sendo ssimD pode ser possvel exeutr mis de um )uxo em um trnsio de estdoF ormD se os destinos forem diferentesD primeir ondio de d )uxo lterntivo deve ser mutumente exlusivD so ontrrioD trnsio de estdo invlidD pois poder hver um inonsistni n tulizo do estdo interno do mduloF y modelo ew no espei( o que deve ser feito dinte de um inonsistni n tulizo qurWSF gonsiderEse trnsio omo invlidD pois um propriedde do higrm de rnsio de istdos que somente podeEse estr em um nio estdo em um ddo instnteF y ontrole ds ondies mutumente exlusivs deve ser feito pelos projetists e desenvolvedoresF x pigur QFVD s ondies C1 e C2 podem gerr inonsistnis e devem ser mutumente exlusivsF undo os )uxos de mesm origem possuem o mesmo estdo de destino inonsisE tni no oorreF y omportmento serim )uxos opionis pr exeuo de es om um gurdD e neste soD mis de um )uxo opionl pode ser exeutdoF x pigur QFVD s ondies C2 e C3 no germ inonsistnisF le lemrr que s onsideres feits sore ondies so vlids tnto pr trnsies om origem diE

QFIF

vingugem de wodelgem whn %

SW

ferente de destino omo pr trnsies om origem igul o destinoD j que neste tipo de trnsio o estdo interno do mdulo tulizdoF ssso quer dizer queD sejm iD j1 e

j2 estdosD primeir ondio de um trnsio i j1 e primeir ondio de um trnsio i j2 ou i i devem ser mutumente exlusivsF
pode gerar inconsistncia C1 A1

j1

C2

A2

j2

C3 no gera inconsistncia

A3

pigur QFVX itues de onorrni de )uxosF wostrouEse quiD inonsistni no higrm de rnsio de istdos no moE mento d trnsio de estdoF possvel tmm oorrer inonsistnis ns es que tulizm lger do mduloF isss podem no ser visveis no digrm e sim no qlossrioD devendo ser ontrolds por desenvolvedores e projetists pr estr de ordo om o modelo ewF

QFIFQFT

etividdes

m tividde um o ssoid um estdo que exeutd d iteroD enqunto o gente permneer no mesmoF e tividde opionl e semelhnte um )uxo que possui origem igul o destinoD porm no tuliz o estdo interno do gente tlstteF u exeuo independente dos )uxos de sd do estdoD ou sejD d itero exeutd ntes de vlir qul )uxo seguirF yutr diferen que omo tividde no possui estdo de destinoD el no ri situo de inonsistniF qunto tulizo de tlstteF m tividde ssoid o estdo esrevendoEse seu nome ps plvr reserE vd tv seguido de 9X9D omo mostr pigur QFW@AF intoD deveEse de(nir tividde no qlossrioD n prte de estresD de ordo om o nome ddoD pigur QFW@AF

QFIFQFU

istdo iniil

odo higrm de rnsio de istdos deve onter um estdo espeil no qul exeE uo tem inioF iste deve ser um estdo de preproD onde s es de iniilizo

TH

gptulo QF wtodo de efinmento whn %

state
atv: atvState

action atvState is ....... end

(a) Estado.

(b) Denio no Glossrio.

pigur QFWX epresento e de(nio de tividdeF do voulrio do gente devem ser relizdsF y estdo iniil representdo om um pequeno rulo heio om letr I no meioD destndoEse dos demis estdosD pigur QFIHF ile origtrio e nio pr d digrmD no pode ser destino de nenhum )uxoD no ontm tividde e o gontrole qlolD desrito n eo QFIFQFWD no tem efeito sore eleF heve existir um nio )uxo de sd sem presen de ondiesD pens es so permitidsF

A1

pigur QFIHX epresento do estdo iniilF

QFIFQFV

istdo (nl

m estdo (nl de um higrm de rnsio de istdos identi(do no modelo omo um estdo que no origem de nenhum )uxoF iss de(nio fz sentido um vez que se no h nd ser feito em um estdoD s iteres seguintes no fetm s funes e reles do genteF ormD um estdo (nl pode onter um tividde omo rtifio de o prE(nlizoD e ess tividde exeutd um ni vez ntes d exeuo do gente ser (nlizdF eo ontrrio do estdo iniilD o estdo (nl no origtrio nem nioD e no existe neessidde de um plvr reservdF e pigur QFII exempli( um estdo (nlD pereeEse que no h )uxos sindo do estdoF

state
atv: atvState

pigur QFIIX epresento do estdo (nlF

QFIF

vingugem de wodelgem whn %

TI

QFIFQFW

gontrole qlol

y gontrole qlol ontm ondies e es que devero ser plids tods trnE sies de estdosD exeto que tem o estdo iniil omo origemF o restries de prioridde miorD ou sejD so relizds ntes de quisquer tividdeD o ou restrio do )uxo norml do hiF r su representoD utilizmEse digrms hi reduE zidosF o ditos reduzidos pois desrevem um pequeno treho do sistem seguindo s de(nies de hiD podendo no onter expliitmente o estdo de destinoF tilizEse

urrentstte omo estdo de origem indindo que todos os estdosD origem de lgum )uxoD sero sumetidos o gontrole qlolF
hdo o estdo orrente urrentstteD podem ser de(nidos dois tipos de exeuo glolF y primeiro diion um hi reduzido todos os estdos e o )uxo ontinu onforme desrito no hi priniplF odeEse notr que su represento n pigur QFIP no mostr o estdo de destinoF iste tipo de ontrole glol devolve o )uxo pr o hi priniplF
C1 Cn

current_state

A1

An

pigur QFIPX gontrole qlolX devolve o )uxoF y segundo tipo de exeuo glol desvi o )uxo d trnsio de estdos pr um estdo de(nidoD omo mostrdo n pigur QFIQF xeste soD s regrs e restries de(nids no )uxo norml do hi podem no ser vlidsF
C1 Cn

current_state

A1

An

state

pigur QFIQX gontrole qlolX desvi o )uxoF x re glolD pens permitido um nio hi reduzido de form evitr inonsistnis n trnsio de estdosF ormD possvel fzer omposio dos his reduzidos neessriosD rindo ssim um onjunto de ondies e es que ser exeutdo ntes de qulquer )uxo do hi priniplF ods s onsideres feits pr o hi so vlids tmm pr o digrm reduzidoF e pigur QFIR mostr um esquem de omposio de his reduzidos utilizndo os dois tipos exempli(dos ns pigurs QFIP e QFIQF hdo o estdo orrente urrentstteD ntes de seguir o )uxo normlD ondio gI veri(dF e for verddeirD desvi o )uxo pr o estdo

TP

gptulo QF wtodo de efinmento whn %

stteiD so ontrrioD ondio gP vlid e se for verddeir exeut o eID se for flsD exeut o ePD e em mos os sosD o )uxo retorn o )uxo norml do hi priniplF

current_state

C1

F T

C2

stateE

A1

A2

pigur QFIRX gontrole qlolX omposioF y gontrole qlol de um hi exeutdo n sd de d estdoD exeto o iniilD de um gente de um mduloF ys rulos inzs mostrdos n pigur QFIS indim os pontos onde o digrm reduzido do gontrole qlol exeutdoF

C1

j1

j2

prepare

C2

j3

j4

pigur QFISX etuo do gontrole qlolF

QFIFR

qlossrio

ys his modelm o omportmento e desrevem s rterstis de gente de um mdulo em lto nvelD om o ojetivo de ser filmente ompreendidos por qulquer pessoF isss informes so esseniis pr o entendimento do prolem e soluo dotdD porm no forneem informes su(ientes pr implemento diret do sistemF y qlossrio trt de spetos esttios do modeloD tendo o ppel de de(nir funesD stresD estruturs de ddos e expresses presentds nos digrms ssim omo em outrs de(nies do prprio qlossrioF gom esss de(nies mis detlhdsD possvel ontrolr o nvel de stro doE td nos digrmsD deixndo detlhes neessrios implemento pr o qlossrioF

QFIF

vingugem de wodelgem whn %

TQ

essimD temEse o primeiro psso de re(nmento mpendo os nomes de esD tividE desD funes e expresses presentes em um hi em trehos mis propridos pr trduo n lingugem lvo do re(nmentoF y mtodo de re(nmento deve ser o mis utomtizdo possvelD pormD so neesE srios lguns pontos de interveno humn pr que se onsig oter um espei(o do sistem em lto nvel de stroF y qlossrioD entoD o primeiro ponto de inE terveno humn no proesso de re(nmentoD permitindo plio posterior ds regrs de re(nmento pr oter o digo exeutvel de form utomtizdF es prtes que formm o qlossrio tm relo om lingugem lvo dotd no mtodo de re(nmentoF eguemD portntoD mesm sintxe de ordo om d loo que representF im vwwD s de(nies do qlossrio seguem sintxe d lingugem wh %nF

QFIFRFI

lger

hi model o omportmento de um gente de um mdulo e sus tividdes sE trindo su onstruo internD o que desejvel t este momentoF ormD existem elementosD que no so relevntes no digrm strtoD ms so fundmentis pr tender os requisitos do sistemF isses elementos so de(nidos n lger omo funE esD tipos e estruturs de ddo seguindo sintxe de wh no loo lgerF %n es ondies desrits nos )uxos do hi so de(nids n lgerF elm ds ondiesD lger deve tmm tender s es de(nids em estresD ou sejD funes presentes em ondies e es devem estr espei(ds nest prte do qlosE srioF ys elementos presentes n desrio do eh @eo QFIFPA tmm devem ser de(nidos n lgerF ys itens d lger so de(nidos em um ix rotuld de qlossrioX lgerF qlossrio X lger
1 2 3 4 5 6 7

type type

Name1 ; Name2

p u b l i c functionF1 : I n t ; functionF2 : Bool ; e x t e r n a l functionF3 : I n t ; ......

es de(nies d lger trtm de spetos esttios do mduloD um vez que determinm su estrutur intern e ontrolm visiilidde dos elementosD interferindo

TR

gptulo QF wtodo de efinmento whn %

nos wenismos de isiilidde @eo QFIFSAD qundo diz respeito o menismo de inlusoF

QFIFRFP

estres

gd o que de(nid no )uxo de trnsio ou omo tividde de um estdo no hi deve ser de(nid no qlossrio n prte de estresF es es podem fzer uso de outrs esD que tmm devem ser de(nidsF y loo orrespondente em wh %n denomindo strtions e deveEse seguir mesm sintxeD inlusive onsiderndo pr e ps ondiesF he ordo om o modelo ewD um inonsistni oorre qundo existem dus tulizes diferentes pr um mesmo elemento d lger n mesm trnsio de estdoF ortntoD desenvolvedores e projetists devem ter o uiddo de no gerr inonsistnis durnte espei(o do qlossrioF gso exist um inonsistni em um trnsioD est pode ser ortdD e mquin tem su exeuo interrompidF es stres so de(nids em um ix rotuld de qlossrioX estresF qlossrio X estres
1 2 3 4 5 6 7

action actionName r e q u i r e : P; ensure : Q ;


doSomething ; ......

( actionParams )

is

end

es es desrevem s espei(es de softwre neessris pr implemento em digo lvoF e regr de trnsio de um mdulo de wh ompostD lm ds %n funes estruturis do hiD de um onjunto de es de(nids em estresF snonE sistnis devem ser trtds pr evitr interrupes no funionmento d mquinF

QFIFS

wenismos de isiilidde

m mdulo pode inorporrD por um menismo hmdo snludeD elementos delrE dos omo plios em outro mdulo pr formr seu voulrioF egentes podem se omunirD por meio do menismo smportD utilizndo servios disponiilizdos n inE terfe de seus mdulosF elm dissoD neessrio informr qul mdulo dr origem mquin que represent o sistemF y digrm de wenismos de isiilidde model esss reles onforme seguirF

QFIF

vingugem de wodelgem whn %

TS

snlude X wenismo no qul um mdulo A inorpor em seu voulrio eleE mentos @lgerA de(nidos em outroD por exemplo B F undo A inlui B D tods s funes plis de B (m visveis em A e devem ser quli(ds qundo utilizdsF e inluso mtu entre dois mdulos no permitid no modelo e deve ser ontornd pelo projetist om fuso destes mdulosY smport X wenismo no qul um gente de um mdulo B estelee um nl de omunio om outro gente de um mdulo A por meio d interfe de B F endo ssimD podeEse dizer que gentes de A utilizm os servios disponiilizdos por B D ou A import interfe de B Y wquin X he(ne unimente mquin que represent o sistemF
r modelgem dos menismos itdosD utilizEse o higrm eh om seguinte notoX

ehX o representdos por ixs e devem ser identi(ds pelo mesmo nome do ehF or exemploD pigur QFIT mostr os possveis relionmentos entre eh e om o eh fF eloX elion dois ehs e representd por um set de sentido nio d inlusoD ou sejD B A signi( que A inlui B D se set tiver n origem um rulo preenhidoD pigur QFIT@AF r importo podeEse utilizr set de sentido nio B AD om um rulo vzio n origemD indindo que A import interfe de B D pigur QFIT@AD ou de mos os sentidosD indindo que tnto A import interfe de B qunto B de AD pigur QFIT@AF e utilizo de um menismo no impede existni do outroD ou sejD possvel que e inlu os elementos plios e importe interfe de f o mesmo tempoF xeste soD utilizEse set om mos os sentidosD por exemplo A B F wquinX m ix inz indi qul eh represent mquin do sistemF e de(nio d mquin ni e origtriF or exemploD se o eh e for representdo por um ix inzD rid mquin ontendo um nio gente do tipo e que tem su regr de trnsio disprdF undo existe pens um mdulo no sistemD o digrm eh no existeD portnto riEse mquin de ordo om este nio mduloF
y higrm eh vis modelr o relionmento entre ipos estrtos de hdos por meio de wenismos de isiilidde e de(nir mquin do sistemF hess formD podeEse esteleer omposio de mdulos por inorporo de elementos ou oE munio entre gentes por utilizo de servios disponiilizdosF e ontriuio

TT

gptulo QF wtodo de efinmento whn %

(a) Mdulo
B

A inclui B
A

(b) Agentes de
B

A importam servios de B
A

(c)

A importa B e B importa A

pigur QFITX wenismos de visiiliddeF um lto gru de modulridde e reso de omportmentos modeldos em diversos sistemsF

QFIFT

lvrs eservds

elm ds plvrs reservds de wh %nD vingugem de wodelgem wh possui %n s seguintesX E tlstte X funo que represent o estdo interno de um mdulo no higrm de rnsio de istdosD seu uso no permitido em nenhum lugrY E urrentstte X funo derivd que permite onsultr o vlor de tlstteD seu uso permitido pens pr leitur e visvel externmente o mduloY E snsternlte X tipo enumerdo que de(ne os vlores que tlstte pode ssumirY E initiltte X vlor pdro do tipo snternltte Y E tv X indi o nome d o que represent tividde de um determindo estdoY E qlolgontrol X utilizd omo nome d stro que represent o gontrole qlolF

QFIFU

houmento

m wodelo fsio ontm todos os registros do prolem e d soluo dotdD priE meirmente sendo um desrio textul e posteriormente formlizd n noto de vwwF ortntoD nd mis nturl que do wodelo fsio se extri doumento

QFPF

ixemplos de istems

TU

omplet do sistemF iss um propost de unuth no trlho sore viterte roE

grmming unuVQF iss tni trz vntgem de sistem e doumento serem otidos prtir d mesm origemD mntendo mos omptveisD onsistentes entre siF
egundo s diretivs de viterte rogrmmingD todo prolem deve ser soluiondo por prtesF im vingugem de wodelgem wh %nD sugereEse que d prte sej um estdoD entoD desreveEse o treho do prolem e sus respetivs rterstis e solues n hesrio extulF y hi pode ser mostrdo om o foo no estdo em questoD omo ser presentdo n eo QFQFQD de(nindo pens seus )uxos de sdD deixndo o modelo forml mis legvelF gonsequentementeD prte do qlossrio onter somente s de(nies ds tividdes do estdo e elementos dos )uxos mostrdosD e que no tenhm sido de(nidos nteriormenteF isse proesso deve ser relizdo pr d mduloD e o (nlD so presentdos os digrms e os glossrios ompletosF hepois de tods s espei(es relizdsD desrevemEse s reles entre os ipos estrtos de hdos por meio do higrm ehF hess formD soluo presentd ( mis legvel e onentrd nos estdos e sus es sem perder viso gerl de um sistemF el )exiilidde do wodelo fsioD novos requisitos podem ser filmente inludos e modi(es podem ser filmente relizdsF e utilizo d tni de viterte rogrmming grnte (delidde d doumento pernte s lteresF ys exemplos d eo QFP mostrm plio dest tniF

QFP

ixemplos de istems

r exempli(r vingugem de wodelgem wh %nD presentmEse seguir lguns prolems onheidos d omputoF imor lguns detlhes de re(nmento sejm utilizdos nos exemplosD eles pens sero detlhdos n eo QFSD onde o wtodo de e(nmento wh presentdoF %n

QFPFI

ilh e pil

ilh e pil pspy so dus estruturs de ddos sis d omputo om semelhns estruturis e pequens diferens em sus operesF y ojetivo deste exemplo mostrr de(nio de um ipo estrto de hdos e omo su stro permite rir esss dus estruturs de form simples e elegnteF

TV

gptulo QF wtodo de efinmento whn %

ilh
he ordo om vgHPD um pilh um onjunto dinmio no qul o elemento removido o mis reentemente inseridoD norm onheid omo LIF O E @vst sn

E pirst yut AF odeEse de(nir um tmnho mximo permitido no onjunto e pode ser neessrio veri(r se pilh est vzi ou heiF intoD de(nemEse os seguintes elementos de um pilhX
E elementsX elementos pertenentes pilhY E nX tmnho tul d pilhY E mxX tmnho mximo permitidoF m pilh possui s operes sis de insero e retird de um elemento e veri(o se est hei ou vziD ento de(nemEse s seguintes operesX E insert@xAX insere o elemento x n pilhY E remove@xAX remove um elemento d pilh e o olo em xY E ispull@tAX veri( se pilh est hei e olo o resultdoD verddeiro ou flsoD em tY E isimpty@tA veri( se pilh est vzi e olo o resultdoD verddeiro ou flsoD em

tF
el de(nio de um pilhD o tmnho orrente n no pode ser mior que o tmE nho mximo mx de(nido e omo no existe onjunto om rdinlidde menor que zeroD n deve ser sempre mior ou igul zeroF essimD pigur QFIU mostr repreE sento do eh em vingugem de wodelgem wh pr um pilhF possvel %n pereer que so desritos pens os elementos neessrios pr utilizr um pilhD sem se importr om operes internsF
StackQueue algebra: elements n max invariant: max >= n > 0 insert(x) remove(x) isEmpty(t) isFull(t)

pigur QFIUX eh de um pilhF

QFPF

ixemplos de istems

TW

r (ns de implementoD devem ser detlhdos os elementos e operes no qlossrioF ys itens elementsD tmnho n e tmnho mximo mx so ssoidos um tipo onforme sintxe de wh %nF r (ns de simpliiddeD de(niuEse um pilh de inteirosF hus novs funes so inludsD empty vli se pilh est vzi e full se est heiF ils so pr utilizo internD por isso no fzem prte d desrio do ehF qlossrio X lger
1 2 3 4 5
elements : n , max :

l i s t of I n t ; Int ; Bool Bool


:= n = 0; := n = max ;

derived derived

empty : full :

x interfe do eh d pilhD form de(nids qutro operesF rimeiro sero detlhds s operes que provm informes sore o preenhimento d pilhD ento rimEse s stres isimpty e ispullF odeEse notr o uso interno ds funes derivds empty e fullF qlossrio X estres
1 2 3 4 5 6 7

action end

isEmpty ( out t : t := empty ;

Bool ) i s

action

end

isFull ( out t : t := full ;

Bool ) i s

or (mD so de(nids s dus operes que relmente rterizm estrutur omo pilhF e opero insert olo o elemento x reeido por prmetro no omeo d list elements e inrement rdinlidde nF gomo prEondioD exigeEse que pilh no estej heiD e grnteEse n psEondio que dio de um elemento n pilh ument rdinlidde em umD onde old se refere o vlor de n no estdo de origem d trnsioF e opero remove retir o elemento que est no omeo d list elements e derement rdinlidde nF gomo prEondioD pilh no pode estr vziD e deveEse grntir que remoo de um elemento d pilh diminui rdinlidde em umF

UH

gptulo QF wtodo de efinmento whn %

qlossrio X estres
8 9 10 11 12 13 14 15 16 17 18 19 20

action insert ( i n x : I n t ) i s r e q u i r e : not full ; ensure : n = ( old n ) + 1; end


elements := x :: elements ; n := n +1;

action remove ( out x : I n t ) i s r e q u i r e : not empty ; ensure : n = ( old n ) - 1; end


x := head ( elements ); elements := tail ( elements ); n := n -1;

gom este exemplo possvel mostrr filidde de se expressr um mdulo utiE lizndo vingugem de wodelgem wh em termos de um ipo estrto de %n hdosF e stro otid n de(nio do eh su(iente pr ompreender estruE tur si relevnte de um pilh e seus servios disponveisF hetlhes internos so enpsuldos e somente trtdos em um nvel mis detlhdoD seprndo lrmente o ojetivo do ontrto de um eh de sus rterstis de implementoF y mesmo proesso de progrmo por ontrto utilizdo n de(nio de esD onde seu nomeD prmetros formisD pr e ps ondies mostrm o seu propsitoF eo (nl temEse um espei(o de um ipo estrto de hdos legvel om os nveis de stro em seprdos e ojetivosF

pil
e de(nio de pil em vgHP semelhnte de um pilhD sendo tmm um onjunto dinmioD porm o elemento removido o primeiro inseridoD norm onheid omo pspy E @pirst sn E pirst yut AF possvel proveitr tod de(nio de eh e qlossrio feit pr pilh e pens lterr stro insert pr qlossrio X estres
21 22 23 24 25 26

action insert ( i n x : I n t ) i s r e q u i r e : not full ; ensure : n = ( old n ) + 1; end


elements := elements :: x ; n := n +1;

QFPF

ixemplos de istems

UI

onde pereeEse que o elemento inserido no (nl d listF eo retirr um elemento n o removeD o primeiro que entrou n (l ser o esolhidoF gom ess simples ltero foi possvel de(nir dus estruturs de ddos sis e muito utilizds n omputoF y lto nvel de stro ddo de(nio permite reutilizo de mdulos om os diferentes omportmentos de pilh e list detlhdosF iste exemplo mostr filidde de expressr elementos do mundo rel em termos de eh dentro de vww om tods s proprieddes neessris progrmo por ontrtoD forneendo legiilidde e eslilidde os mdulos ssim de(nidosF

QFPFP

esquis finri

e esquis finri onsiste em prourr por um elemento em um onjuntoD rmzendo omo um list ordendF e d pssoD omprEse o elemento om o registro que est n posio do meio d listD hmdo de pivF e o elemento for menorD ento o registro prourdo est n primeir metdeD ontendo os vlores menores que o pivF e for miorD o registro prourdo est n segund metdeD ontendo vlores miores que o pivF iste proesso deve ser repetido t que se enontre o elemento prourdo ou o onjunto eD indindo que pesquis no oteve suessoF

oluo I
r soluoD ssumeEse que o onjunto pr pesquis j estej ordendoD e su rdinlidde n e o elemento prourdo k sejm forneidosF intoD rimEse dois delimitdores do suonjunto no qul deveEse prourr o elementoD sendo representdo por inf pr o limite inferior e sup pr o limite superiorF e posio que indi o piv otid pel funo middleF iss funo fornee posio do meio onsiderndo os limites inferiores e superioresF x esquis finriD deveEse resgurdr que o limite inferior nun ultrpsse o limite superiorD seno pode oorrer situes indesejds omo erro no lulo do pivF elm dissoD os limites devem ser miores que zero e menores que rdinlidde do onjunto utilizdo n pesquisF e prtir dos elementos sios de um mdulo que reliz pesquis inriD possvel de(nir o eh onforme pigur QFIVD onde so presentdos estrutur si intern e os invrintesF e pesquis inii omprndoEse o piv om o elemento prourdoD se for igulD pesquis oteve suessoD so ontrrio veri( se o (nl do onjunto foi lndo omprndo os limites inferiores om superioresF gso verddeiroD pesquis no oteve suessoF gso ontrrioD veri( se o elemento prourdo menor ou mior que o pivF e for menorD tuliz o limite superior pr onter posio do nteessor do pivF e for mior ou igulD tuliz o limite inferior pr onter posio do suessorF

UP

gptulo QF wtodo de efinmento whn %

BinarySearch algebra: array k inf sup middle invariant: inf > 0 sup <= n inf <= sup

pigur QFIVX eh pr pesquis inriF xeste momentoD o suonjunto dividido pel metdeD e deveEse oter o novo piv tulizndo funo middleF into repeteEse o proesso t que sej lndo um dos estdos (nisF e pigur QFIW mostr o hi pr esquis finriF or se trtr de um prolem pequenoD no dividiuEse o digrm em prtesD omo sugere o wtodo de e(nmento wh %nF
start

I
F T
lessMiddle

searching

found

reachEnd

success

failed

updateSup

updateInf

updateMiddle

dividing

pigur QFIWX higrm pw pr esquis finriD primeir ordgem

e seguirD podeEse de(nir n lger os elementos ontidos no eh e no hiF r (ns de simpliiddeD s funes keyD n e orderederry so de(nids pr serem utilizE ds omo entrd de ddos pr hve ser prourdD rdinlidde do onjunto e o onjunto ordendoF

QFPF

ixemplos de istems

UQ qlossrio X lger

1 2 3 4 5 6 7 8 9

k , inf , sup , middle array : I n t -> I n t ;

Int ; Int ;

external external derived derived derived

key : I n t ; external n : orderedArray : I n t -> I n t ; found : reachEnd : lessMiddle :

Bool Bool Bool

:= array ( middle ) = k ; := inf = sup ; := k < array ( middle );

es es presentds no digrm e explids nteriormente so de(nids onE forme estres no qlossrioF ereeEse que o onjuntoD su rdinlidde e hve ser lolizd so iniilizds onforme entrd de ddos pel funo extern orrespondenteF qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

action end

start i s array := orderedArray ; k := key ; inf := 1;

sup := n ;

middle : = (1+ n )/2;

action end

updateInf i s inf = middle + 1;

action end

updateSup i s sup = middle - 1;

action

end

updateMiddle i s middle = ( inf + sup )/2;

oluo P
y wodelo fsio permite espei(r o prolem em nveis de stro diferentesF ist segund soluo stri do digrm veri(o do piv pr tulizr os limitesF intoD onde hvi ondio lesswiddle existe o updtesnfupD onde o teste e tulizo dos limites so relizdosF e pigur QFPH ilustr o hi om est nov interpretoF y eh mostrdo n soluo nterior permnee extmente o mesmoF

UR

gptulo QF wtodo de efinmento whn %

start

I
F updateInfSup

searching

found

reachEnd

success

failed

updateMiddle

dividing

pigur QFPHX higrm pw pr esquis finriD segund ordgemF

e seguirD mostrd inluso d o updtesnfup em estresD preservndo s demis de(nies do qlossrioF odeEse notr que o teste e tulizo dos limites form trnsferidos pr o updtesnfupD linh PF qlossrio X estres
1 2 3 4 5 6 7 8
. . .

action updateInfSup i s i f lessMiddle then else


updateSup ; updateInf ;

end end

x primeir soluoD foi dd nfse n tulizo dos limites de ordo om veri(o se o elemento prourdo menor ou mior que o pivF ist segund soluo no ord este item no higrm de rnsio de istdosD deixndo ess nlise pr o qlossrioF gomo pode ser vistoD ms solues possuem o mesmo funionmentoD e se diferenim no nvel de stro do higrm de rnsio de istdosD mostrndo o que interess de ordo om um determindo ontextoF

QFPFQ

tntr dos pilsofos

y prolem do tntr dos pilsofos um prolem lssio d ini d omputo que ilustr onorrniF gonsiste de um grupo de (lsofos que podem estr em trs

QFPF

ixemplos de istems

US

situes diferentesX pensndoD omendo ou om fomeF ys (lsofos esto dispostos em um mes irulr e pr omer eles devem estr de posse de dois grfosD um esquerd e outro direitD que so omprtilhdos om seus vizinhosF essimD qundo um (lsofo omeD seu vizinho d direit e o d esquerd devem esperrF undo um (lsofo de omerD ele lier os grfos e pss pensrF xo momento em que sente fomeD ele gurd que os grfos d esquerd e direit estejm lierdos pr ele omerF heveEse impedir que todos os (lsofos peguem somente o seu grfoD por exemploD d esquerdD pois isso ir fzer om que todos (quem gurdndo o outro grfo ser lierdo e oorre um situo de dedlokF ode ser desejvel ontrolr situo de strvtionD onde um (lsofo nun onsegue vez pr omerF e seguirD so presentds dus solues pr o prolem do tntr dos pilsofos utilizndo vingugem de wodelgem wh %nF

oluo I
r primeir soluoD so ridos dois mdulosD o primeiro represent um (lsofo e o segundoD hmdo de hostD de(ne on(guro do sistemF

wdulo

Philosopher X

desreve s es e estdos de um (lsofoF e prtir do

estdo iniilD oloEse o (lsofo pr pensr @estdo thinking AF eps um tempo no determindoD o (lsofo ome sentir fome @estdo hungry AD e entoD tent pegr os grfos enqunto permneer neste estdoF e os grfos estiverem lierdosD o (lsofo os peg e ome omer @estdo eting AD se noD gurdF eps um determindo tempoD o (lsofo termin de omer e lier os grfos que utilizv e pss pensr novmenteF e pigur QFPI mostr o higrm de rnsio de istdos pr o mdulo orrespondenteF

thinking

freeForks

delay

delay

hungry
atv: tryGetForks

canEat

eating

pigur QFPIX higrm de rnsio de istdos pr hilosopherF

e estrutur intern de hilosopher deve onter dois indidores de uso dos grfosD um pr o d esquerd e o outro pr o d direitF rost identi( o gente de rost

UT

gptulo QF wtodo de efinmento whn %

que ontrol o sistemF es es setighpork e setveftpork so de(nids pr triuir s refernis os grfos d direit e esquerd de um (lsofoD ssim omo setrost determin o identi(dor do gente de rostF hesejEse que isso sej feito pelo gente de rostD entoD olomEse esss es n snterfeF gom issoD presentEse o eh pr hilosopher n pigur QFPPF m ondio importnte jmis pegr somente um grfo enqunto gurd o outroF emos devem ser tomdos o mesmo tempoD ou sejD o vlor de leftpork deve ser o mesmo de rightporkF iss um propriedde que deve ser grntid pr todos os (lsofosD e ser disutid n eo QFQFRF
Philosophers algebra: leftFork rightFork host setRightFork(f) setLeftFork(f) setHost(h)

pigur QFPPX eh pr (lsofoF e seguirD so feits s de(nies dos elementos presentes no eh e hi de hiE

losophersF e ondio de dely pens ontrol o tempo que o (lsofo pens ntes de omer e o tempo em que ele omeF r simpliidde do exemploD ser de(nid omo um funo externF y tipo porksd importdo do mdulo rostD que ser de(nido posteriormenteF e funo nit um de(nio pr uso interno pr uxilir em lgums esD omo ser visto n de(nio de estresF e funo host indi o gente de mdulo rost que responsvel por oordenr oteno orret dos grfos pelos gentes de (lsofosF
qlossrio X lger
1 2 3 4 5 6
leftFork , rightFork : ForkId ; canEat :

external

Bool ;

delay :

Bool ;
Host ;

host :

agent of

e tenttiv de pegr os grfos feit enqunto o (lsofo permnee no estdo

hungryD ento de(neEse tividde tryqetporks pr pegr os grfos neessriosF gomo o ontrole de esso os grfos feito por hostD utilizEse o servio setporks que este

QFPF

ixemplos de istems

UU

disponiilizF ys dois primeiros prmetros so pr informr quis so os grfos d esquerd e direitD respetivmenteF e funo nitD tereiro prmetroD onter o retorno d vlio dos grfosD permitindo ou no que o (lsofo entre no estdo

hungryF eps omerD o (lsofo soliit liero dos grfosD tmm ontrold pelo hostD informndo seus grfos d direit e esquerdD e triui o vlor flso su permisso pr omerD funo nitF
essimD no qlossrioD podeEse de(nir s seguintes estres de hilosophersF

qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

action end

tryGetForks i s host . getForks ( leftFork , rightFork , canEat );

action end

freeForks i s host . freeForks ( leftFork , rightFork ); canEat := f a l s e ;

setRighFork ( i n f : ForkId ) rightFork := f ; end setRight setLeftFork ( i n f : ForkId ) leftFork := f ; end setLeft

p u b l i c action

is

p u b l i c action

is

p u b l i c action setHost s e l f . host := h ; end

( i n : h)

is

wdulo

Host X

tem o ojetivo de preprr o sistem pr exeuo de(nindo o

nmero de gentesD iniilizndo seus elementos e posteriormente os disprndoF o de(nidos ino estdosD lm do estdo iniilD numerdos de um inoF r ompor estrutur intern deste mduloD de(neEse iniilmente um tipo de ddo porksd pr rterizr um grfoF r referenir todos os (lsofosD de(nido um gente de hilosophersD denomindo philosophersF gomo elementos uxiliresD so de(nidos trs gentes de hilosophersD pD t e (rstD e o ontdor ggount pr ontrole do nmero de gentes ridosF e funo fork indi se um grfo est ou no disponvelF y tipo porksd disponiilizdo n interfe pr ser utilizdo por hilosophersF e o getporks um servio disponiilizdo pr que um (lsofo requisite permisso

UV

gptulo QF wtodo de efinmento whn %

pr omer de ordo om seus grfosF e respost dd n funo nitF e o

freeporks lier os grfos so soliito de um (lsofoF ods esss informes esto retrtds no eh d pigur QFPQF
Host algebra: philosophers p, t, rst agCount fork
forkId

getForks(left, right, canEat) freeForks(left, right)

pigur QFPQX eh pr host de (lsofoF rimeiroD rimEse os gentes de (lsofos de ordo om um nmero desejdoF ssso feito pel o retehilosophersF pormtmEse os ddos do primeiro (lsofoD o

(rsttepD e em seguidD os demis (lsofos so iniilizdos respeitndo ordeno d mes e omprtilhmento dos grfosD es seondtep e thirdtepF y qurto pssoD o forthtepD termin s iniilizes on(gurndo o primeiro grfo fehndo o ilo d mes dos (lsofosF
or ltimoD um gente de rost dispr os gentes de (lsofos n o dispthhiE

losophersF xotEse que el tividde do estdo SD reonheido omo (nl por no ser origem de nenhum )uxoF endo ssimD tividde exeutd um ni vez e o gente de rost termin su exeuoD deixndo os proessos de hilosophers tivos e gurdndo por soliites de serviosF e pigur QFPR mostr o hi pr o mdulo rostF
rstStep 1 createPhilosophers

I
4

lessPhilosophers T

thirdStep

secondStep

forthStep

5 atv: dispatchPhilosophers

pigur QFPRX higrm de rnsio de istdos pr rostF

QFPF

ixemplos de istems

UW

he(neEse funo numeryfquestsD que determin externmente o nmero de onE viddos sentr mesF or ltimoD funo lesshilosophers veri( se o nmero de (lsofos rido menor que o nmero de onviddos desejdoF e seguirD presentEse lger om s de(nies dos elementos do eh e s funes diionis uxiliresF odeEse notr que philosophersD pD t e (rst so delrdos omo gentes de hilosophersD vi gent ofF e rio do gente e o dispro de su regr de trnsio dentro deste mdulo so posteriormente relizdosD por meio ds diretivs rete e dispthD resE petivmenteF xo momento d rio de um genteD podeEse de(nir se ele represent um nio genteD omo o so de pD t e (rstD ou omo um oleo de gentesD omo o so de philosophers n o retehilosophersF qlossrio X lger

1 2 3 4 5 6 7 8 9 10

ForkId = I n t ; philosophers : agent p , t , first : agent agCount : I n t ; fork : ForkId ->

type

of of

Philosophers ; Philosophers ;

Bool ;

e x t e r n a l numberOfGuest derived lessPhilosophers

: Int ; : Bool i s agCount < philosophers . numberOfAgents ;

e seguirD enontrmEse s de(nies ds es que esto representds no hi e s disponiilizds n interfe de rostF y servio getporks vli disponiilidde dos grfos do (lsofo que soliitou permisso pr omer e o resultdo ddo no prmetro nitF gonforme de(nio de wh %nD todo pedido de um (lsofo snronoD de form que este gente no reliz prxim trnsio de estdo enqunto

host no responderF unto o servio freeporksD foi visto que o prprio gente de (lsofo uid d funo nit qundo lier os grfosD ssim no existe o loqueio e liero relizd de form ssnronF e stro setporks um o uE xilir que reserv ou lier os grfosD sempre o mesmo tempoF odeEse pereer que lgums stres utilizm es pertenentes o mdulo hilosophersD por exemplo setveftpork e setightporkF y ontrole de utilizo dos servios disponiilizdos por mos os mdulos ser formlizdo mis dinteF
qlossrio X estres
Philosophers ( numberOfGuests );

1 2 3

action createPhilosophers i s create philosophers : agent of end

VH
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

gptulo QF wtodo de efinmento whn %

action

end

firstStep i s p := philosophers (1); first := p ; agCount := 2; forkId := 2; p . setHost ( s e l f ); secondStep i s t := philosophers ( agCount ); t . setHost ( s e l f ); agCount := agCount + agCount ;

action

end

action

end

thirdStep i s p . setRightFork ( forkId ); forkId := forkId + 1; p := t ;

t . setLeftFork ( forkId ); fork ( forkId ) := f a l s e ;

action end

forthStep i s fork (1) := f a l s e ;

p . setRightFork (1);

firt . setLeftFork (1);

action dispatchPhilosophers i s f o r a l l p : philosophers do dispatch end action end


setForks ( i n left : ForkId , fork ( left ) := v ; fork ( right ) := v ;

p;

end in
v :

in

right : ForkId ,

Bool ) i s

p u b l i c action end

freeForks ( i n left : ForkId , setForks ( left , right , f a l s e );

in

right : ForkId )

is

p u b l i c action

end end

getForks ( i n left : ForkId , i n right : ForkId , out canEat : Bool ) i s i f not ( fork ( left ) or fork ( right )) then setForks ( leftFork , rightFork , true ); canEat := true ;

QFPF

ixemplos de istems

VI

wenismo de visiiliddeX egentes de mos os mdulos utilizm servios que


form disponiilizdos em sus interfesF tilizEse o digrm eh indindo o tipo de relionmento entre hilosophers e rostF e pigur QFPS mostrD por meio d set idireiondD que um mdulo import interfe do outroF e ix inz indi que mquin ser ridD que represent o sistemD em funo de rostF

Philosopher

Host

pigur QFPSX higrm ehF

gontrole de onorrni
odos os gentes de hilosophers exeutm sus regrs de trnsio em prlelo e tm os grfos omo reursos omprtilhdosF undo um (lsofo tent oter os grfos pr omer ele no o fz diretmenteD feit um requisio o gente host pel stro

getporksF y gente (lsofo entoD esper pel respost pr poder ontinurF y gente host reee tods s requisies eD o (nl de d trnsioD s exeut tomimente n ordem em que esto n list de requisiesF y resultdo forneido n funo nit eD so no tenh reeido permissoD o (lsofo tent novmente n prximo interoD so ontrrioD seu estdo lterdo pr etingF gom issoD o ontrole relizdo pel sinroni ds requisies dos (lsofos e o proessmento em ordem e tmio dels pelo hostF
ys dois grfos so reservdos pr um (lsofo de um s vezD no mesmo ilo d regr de trnsioD om isso o prolem de dedlok resolvidoF ormD possvel que um (lsofo (que eternmente no estdo hungry sem oter os grfos pr omerD ess situoD onheid omo strvtionD resolvid n oluo P seguirF

oluo P
e primeir soluo presentd grnte que no oorrer dedlokD porm no onsider o prolem de strvtionF r grntir que todos os (lsofos possm omerD deveEse rir um list de prioriddesD onde mis fome signi( mior prioriddeF isse ontrole pode ser relizdo om rio d funo hungryvevelD que ontiliz o nvel de fome de um (lsofoD sendo inrementd d intero em que se permnee no estdo

hungryF undo tentEse pegr os grfos deveEse veri(r tmm se existe lgum outro (lsofo om o nvel de fome miorD se no existirD lhe onedido o direito de omerF

VP

gptulo QF wtodo de efinmento whn %

e existirem dois (lsofos om mesm prioridde disputndo por um mesmo grfoD o primeiro n list de requisies ser tendidoD e no estdo seguinte o outro ter mis prioriddeD grntindo que em um determindo momento lhe ser onedido o direito de omerF ist veri(o feit no hostD ento deveEse pssr omo prmetro pr

getporks o nvel de fome do (lsofo que fz requisioF


xo mdulo hilosophersD resentd funo hungryvevelD que sempre inreE mentd enqunto se permnee no estdo hungryF eo lierr os grfosD deveEse zerr o nvel de fome e o soliitr permisso pr omerD deveEse informr o nvel de fome tulF xo mdulo rostD stro getporks resid do prmetro hungryvevel e lm de veri(r os grfosD veri(Ese o nvel de fome em relo os demis (lsofosF ereeEse que o hi dos dois mdulos so extmente os mesmos d oluo IF es lteres em hilosophers soX qlossrio X lger

hungryLevel :

Int ;

qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11

action end

tryGetForks i s host . getForks ( leftFork , rightFork , canEat ); hungryLevel := hungryLevel + 1;

action

end

freeForks i s host . freeForks ( leftFork , rightFork ); canEat := f a l s e ; hungryLevel := 0;

es lteres em rost soX qlossrio X estres

1 2 3 4 5 6 7 8

p u b l i c action

end

getForks ( i n left : ForkId , i n right : ForkId , i n hungryLevel , out canEat : Bool ) i s i f not ( fork ( left ) or fork ( right )) and not ( exist p : philosophers s a t i s f y i n g p . hungryLevel > hungryLevel ) then setForks ( leftFork , rightFork , true ); canEat := true ;

QFQF

eursos evndos d vingugem de wodelgem whn %

VQ

end

es lteres relizds n oluo P grntem que todos os (lsofos tero su vez de omerD eliminndo o prolem de strvtionF ereeEse que form lterdos pens elementos do qlossrioD de form que o higrm de rnsio de istdos de d mdulo permnee o mesmoF essimD o trtmento de strvtion trnsprente pr quem trlh om o digrmD preservndo interpreto do prolem feit no homnio d eplioF

QFQ

eursos evndos d vingugem de wodelgem wh %n

x eo QFI form presentdos os oneitos sios d vingugem de wodelgem wh %nD no qul possvel relizr de(nio omplet de um sistemF ormD existem outros elementos n vww responsveis por desrever rterstis do sistem om miores detlhesF m mdulo de de(nio pode onter um onjunto de restries serem respeitds durnte exeuo do sistemF im vwwD esse onjunto de(nido omo invrintesD onforme mostrdo n eo QFIFPD e qulquer flh em su vlio exeuo interrompidF he form semelhnteD possvel de(nir restries estdos e es pr grntir o orreto funionmento e uxilir veri(o de proprieddes do sistemF

QFQFI

ropriedde de istdo

odo estdoD exeto o iniilD pode estr ssoido um ondio que deve ser stisE feit durnte permnni do gente de um mdulo neste estdoF gso ondio no sej stisfeitD exeuo interrompid em ondio erroF e noto pr propriedde de estdo dd onforme pigur QFPTD onde Ci expresso oolen representndo propriedde do estdo iF
i Ci

pigur QFPTX epresento de um propriedde de estdoF undo um gente heg um estdo iD deveEse veri(rD se existirD o invrinte Ci F gso sej stisfeitoD prossegueEse om exeuo normlF e permneer no mesmo

VR

gptulo QF wtodo de efinmento whn %

estdoD o invrinte novmente veri(do n intero seguinteF gso vlio d propriedde flheD mquin interrompid em ondio de erroF

QFQFP

r e s gondies de ees

m o A exeutd so erts ondies que podem ser expliitmente de(nids no wodelo fsio n form de prEondio e psEondioF e prEondio represent um expresso oolen RA que deve ser stisfeit imeditmente ntes d exeuo de AF im vwwD vlio de RA feit om os vlores presentes no estdo origem do )uxo n qul A perteneF e psEondio represent expresso oolen EA ser stisfeit ps exeuo de A e vlio de EA feit om os vlores do estdo de destinoF e seguirD presentd n pigur QFPU noto pr pr e ps ondies de um oF

RA

EA

pigur QFPUX r e s ondies de um oF xo so de flh de lgum desss ondiesD o onsiderd invlid e mquin termin su exeuo om erroF ist de(nio diz respeito restries em determindos pontos de um trnsio de estdoD e ssim omo invrintes @eo QFIFPAD se difere d de(nio do gontrole qlol no ponto de vist em que veri(m situes de errosF snvrinte e rEs gondies de ees so voltdos prolems no homnio dos wodelosD enqunto o gontrole qlol interept prolems ligdos o homnio d eplio e possvel tomr medids pr orrigiElos e retomr exeuo normlF m exemplo dess diferen pode ser visto no prolem d gldeir por ffh+ WTF hdo um nvel de gu nD restrio N1 < n < N2 de(ne os limites inferior e superior de funionmento normlF gso estes limites sejm ultrpssdosD o sistem tom medids pr reuperElosF ys limites M1 < n < M2 de(nem os nE veis rtios de gu em que mquin deve prr imeditmente o funionmentoF gomo ests so restries de(nids n plioD els podem ser trtds pelo gontrole qlolD omo mostr pigur QFPV seguirF gom issoD deveEse de(nir propriedde que relion os limites normis e rtiosD devendo mnter os limites normis dentro dos limites rtiosF iss de(nio est ligd o domnio dos modelos e pode ser de(nid d seguinte formX

QFQF

eursos evndos d vingugem de wodelgem whn %

VS

ctl_state

M1 < n < M2

N1 < n < N2

stop

A2

pigur QFPVX gontrole qlol d gldeir porF roprieddes d gldeir por

1 2 3

invariant :

M1 < N1 ; M2 > N2 ;

imor sej um oservo trivilD el importnte pr grntir modelgem orret e uxilir veri(o do sistemF

QFQFQ

higrm de d de istdo

m espei(o de um mdulo em vww pode onter um nmero onsidervel de estdos e demis elementos de um higrm de rnsio de istdosF ediionlmenteD podeEse resentr propriedde de estdo e pr e ps ondies de esF odos esses elementos podem resultr em um digrm densoD que di(ult legiilidde e ompreenso do higrm de rnsio de istdos e onsequentemente do prolem espei(doF m higrm de d de istdo @hiA um treho de um higrm de rnsio de istdos @hiA no qul o foo ddo um nio estdo i e s trnsies que possuem origem em iF e noto e semnti de higrm de d de istdo mesm de hiF m espei(o de um mdulo vww ontm um hi pr d estdo identiE (doD om exeo do estdo iniil devido su simpliiddeD estndo ele inluso no hi de seu estdo de destinoF ys estdos (nis de um hi no so origem de nenhum )uxoD onforme su de(nioD portnto no existiro his pr elesF y higrm de d de istdo de um estdo i denomindo hii e onstrudo prtir ds trnsies que possuem i omo origem e todos seus elementosF etividdesD propriedde do estdo i e pr e ps ondies ds es so desejveis neste digrmF odo estdo que se relion om iD ou sejD todo estdo que destino de um trnE sio om origem em iD estr presente no hii pens omo destino de trnsio e presentndo pens informes neessris pr ompreenso deste treho de espeE

VT

gptulo QF wtodo de efinmento whn %

i(oF eo (nlD todos os his so unidos pr formr o hi priniplD que pode ser visulizdo om menos detlhes pr (ns de legiilidde e interpreto glol do mduloF pigur QFPW mostr de form simples um onjunto de his formndo o hi omE pletoF ixistem trs estdosD iD j e (nlF y hi pr o estdo iD pigur QFPW@AD mostr su propriedde gi e os )uxos de sdsD e o mesmo oorre pr o estdo jD pigur QFPW@AF ereeEse que no hijD o estdo (nl no pree pois no existe trnsio de j pr (nlF i o estdo (nl no present hi por ser um estdo (nlF y estdo iniil indido no hii e no hi omletoD pigur QFPW@AF
I

RA3

i Ci

RA1

C1

A1

EA1

j Cj

A3

EA3

C3

i Ci
RA2 EA2

j Cj
RA4

C4
EA4

C2

A2

nal

A4

(a) DSE para o estado

(b) DSE para o estado j.

I
RA3

A3

EA3

C3

i Ci

RA1

C1

A1

EA1

j Cj
RA4

C4
EA4

A4

RA2

EA2

C2

A2

nal

(c) DTE completo.

pigur QFPWX pormo do hiF iss deomposio permite espei(r o prolem em prtes menoresD n qul onentrEse teno em um nio estdo e es pertenentes os seus )uxos de sdF intoD um mdulo no visto omo um grnde loo de es e sim omo um onjunto de pequenos loosD mis simples de serem gerenidos e ompreendidos unuVQF e soluo de um prolem pode ser dividid de vris forms diferentesD e isso depende do modelo de espei(oF e noo de sepro em vww sed nos estdosD que devem ser identi(dos de ordo om interpretes de nomes do voE ulrioF essimD um estdo represent no mundo rel um onjunto de trefs serem

QFQF

eursos evndos d vingugem de wodelgem whn %

VU

relizdsF or exemploD os estdos de um gente (lsofoD representdo no prolem tntr dos pilsofos n eo QFPFQD so pensndo @thinking AD om fome @hungry A e omendo @eting AF gd um represent um tividde que um (lsofo deve relizr de ordo om s ondies @interpretoA de seus triutos @voulrioAF pigur QFQH represent o hi de d estdo do mdulo pr hilosophersF y estdo thinking representdo n pigur QFQH@AD o estdo hungry n pigur QFQH@A e o estdo eting n pigur QFQH@AF odeEse notr que tividde tryqetporks do estdo hungry somente pree em seu hiF

module

module

thinking

delay

hungry
atv: tryGetForks

canEat

eating

hungry

(a) DSEthinking
module thinking freeForks

(b) DSEhungry.

delay

eating

(c) DSEeating.

pigur QFQHX his pr mdulo de pilsofoF

gom ess de(nioD os estdos de um hi representm pontos ideis pr oserE vo no sistem e exeuo de trefsF or issoD um higrm de d de istdo nlis um estdo de d vez e tods s sus trnsiesD onde present um nmero menor de elementos permitindo que sejm presentds mis informesD sendo ento um digrm mis detlhdoD porm om viso pril do prolemF ssso signi( ter um nvel de stro mis ixo que um hi @que tem viso glol do prolemAD onforme desejvel no wodelo fsio frHQF e unio de todos os his form o higrm de rnsio de istdos ompletoD forneendo viso glol d regr de trnsio de um mduloD e este hi que utilizdo no re(nmento e oteno d doumentoF

VV

gptulo QF wtodo de efinmento whn %

QFQFR

roprieddes

imor sej possvelD utilizndo vingugem de wodelgem wh %nD espei(r em lto nvel um sistemD existem ind proprieddes no homnio d eplio que devem ser grntids no modelo e preservds no re(nmentoF intoD de(nido em vww um mneir de se expressr proprieddes onsiderndo s trnsies de estdosF m noto muito utilizd em semnti forml gv @gomputtionl ree

vogi A gqHHD gptulo QF gv um lgi temporl que utiliz preposies em sus onstrues pr fzer (rmes em um sistem de trnsio de estdosF isE ss preposies so espei(ds em termos de operdores lgios e temporisF im vwwD utilizmEse s funes d lger do mdulo pr esrever s frmuls gvF importnte ressltr que roprieddes no utiliz sintxe wh em su de(nioD %n portnto s plvrs hves dest lingugemD e tmm de vingugem de wodelgem wh %nD no so vlids neste trehoF essim possvel utilizr s plvrs hves de(nids em gv sem prolems de olisoF

QFQFRFI

yperdores vgios

ys operdores lgios em gv so os omumente onheidosF o presentdos em su noto utilizd em vwwD e su noto usul desrit entre prntesesD se for diferenteF

3 @A X negoY 8 @A X onjunoY xor @ A X exluso mtuY | @A X disjunoY > @A X implioY < >@A X dupl implioY true X expresso verddeiroY flse X expresso flsoF

QFQFRFP

yperdores emporis

ys operdores temporis podem ser lssi(dos em operdores que tum sore os possveis minhos e os que tum sore os estdosF intendeEse minho omo um sequni de estdos vlidosF e seguirD so de(nidos os dois grupos de operdores de

QFQF

eursos evndos d vingugem de wodelgem whn %

VW

ordo om de(nio de gvD e diionlmente form inludos operdores onveniE entes espei(o de vingugem de wodelgem wh %nF

yperdores de gminho
hd um preposio pD os operdores de minho soX

e p X preposio p deve ser grntid em todos os minhos prtir do estdo orrenteY i p X deve existir pelo menos um minho prtindo do estdo orrente no qul preposio p grntidF

yperdores de istdo
gonsiderndo p e q omo preposiesD os operdores de estdo soX

p X preposio p deve ser grntid no estdo seguinteY q p X preposio p deve ser grntid em todos os estdos seguintesY p p X preposio p deve ser grntid em lgum estdo seguinteY p q X preposio p deve ser grntid t que q onteD om grnti de que q ser vlidF

QFQFRFQ

yutros yperdores

r filidde de expressoD riEse um operdor que interge sore um determindo onjunto (nito de elementos podendo ser de(nido d seguinte form

forll
1

forall e in {low ..

high} : CTL_formule_using_e

gonsiderndo e omo um ndieD low e high omo limites inferior e superiorD respeE tivmenteD e gvformuleusinge omo sendo um frmul gvD onde e ndie de lgum funoF or exemploD dd propriedde seguir
1

forall e in 0 .. 2 :

p(e)

equivlente seguinte onjunoD sendo p@eA um predidoF


1

p(0)

and

p(1)

and

p(2)

WH

gptulo QF wtodo de efinmento whn %

im gvD sempre utilizEse um operdor de d grupoD sendo o primeiro de E minho seguido de um operdor de estdoF or exemploD no prolem do tntr dos pilsofosD um (lsofo deve pegrD e lierrD os dois grfos o mesmo tempo pr evitr situo de dedlokD onde todos os (lsofos tm um grfo n mo e esper pelo outroD que nun ser lierdo pelo seu vizinhoF iss propriedde pode ser esrit no mdulo

rost d seguinte formX


tntr dos pilsofosX veri( dedlok
1 2

forall p in 0..numberOfGuests : AG(fork(philosophers(p).leftFork) = fork(philosophers(p).rightFork))

odeEse entender ess propriedde d seguinte formX em todos os minhos posE sveis @operdor eA prtir do estdo orrenteD fork@leftporkA a fork@rightporkA deve ser verdde em todos os estdos seguintes @operdor q AD ou sejD fork@leftporkA a

fork@rightporkA sempre verddeF


yutr propriedde neste prolem que se um (lsofo estiver om fomeD estdo

hungryD ele deve omerD estdo etingD lgum vez no futuroF gom isso podeEse veri(r situo de strvtionF odeEse esrever ess propriedde omo
tntr dos pilsofosX veri( strvtion
1

AG(current_state = hungry -> AF(current_state = eating))

iss propriedde lid d seguinte formX sempre verdde que se o estdo interno de um (lsofo for hungryD em todos os minhos seguintes o estdo ser eting em lgum ponto no futuroF essimD podeEse veri(r se o prolem do tntr do pilsofo respeit esss dus proprieddes eD no so de flhD seEse qul flh oorreu e possvel oter um exemplo que mostre os prolemsF e veri(o disutid om mis detlhes n eo RD e ser mostrdo omo s propriedde so vlids e omo os exemplos so otidosF

QFR

lido

e vlido no wtodo de e(nmento wh relizd de form mnulF hevido %n o lto gru de stro e legiilidde de his e hisD possvel relizr simules que grntm um eito stisftri do sistem no momento d espei(oF es proprieddes identi(ds so filmente expresss em gvD eo QFQFRD que um

QFSF

egrs de efinmento whn %

WI

mneir legvelD porm formlD de trnsportEls o longo do re(nmento pr uxilir n veri(oF e prpri onstruo do wodelo fsio ww de(ne os prinipis elementosD os pontos de oservo eD durnte o re(nmentoD s proprieddes implits vww so formlizdsD de(nindoEse ssim s reles entre o modelo strto e implemento em wh %nF hesejEseD futurmenteD de(nir um mtodo utomtio pr vlidoD ondeD dd um determind entrd de ddosD podem ser feits simules no wodelo fsio e oter resposts que podem ser omprds om os resultdos otidos om exeuo do sistem implementdoF gomo vingugem de wodelgem wh sed em %n digrmsD pode ser til desenvolver um ferrment que ilustre exeuo por meio de nimo do hi e his d espei(oF essimD ser possvel relizr depuro do sistem e oter melhores resultdos no que diz respeito extro de informes do wodelo fsio e vlio dos requisitos neessriosF

QFS

egrs de e(nmento wh %n

eps espei(o do sistem utilizndo vingugem de wodelgem wh %nD o wodelo fsio sumetido o proesso de re(nmento no qul forneer o digo exeutvelF es egrs de e(nmento wh form de(nids de ordo om d %n elemento d vww e so seds ns desries de frger em frHQD fHQD reE sumids n eo PFPFPF m regr pode forneer proprieddes serem grntids o longo do re(nmentoF ists sero posteriormente veri(ds utilizndo um veri(E dor de modelos propridoF gso lgum no sej grntidD signi( um erro de espei(o e podeEse mostrr um exemplo de exeuo que use o prolemF elm de presentr omo feito o re(nmentoD s egrs de e(nmento wh %n de(nem formlmente noto d vww so spetos do modelo ewF ortntoD possvel mostrr semnti de d elemento retirndo qulquer migidde n ompreenso dos mesmosF e seguirD presentd d regrD n ordem em que deve ser plidD em termos de su trnsformo no wodelo fsio e sus proprieddesF e primeir tu sore de(nio de um eh gerndo estrutur de um mdulo de wh %nF im seguidD o higrm de rnsio de istdos e higrms de d de istdo so re(ndos pr indir novos elementos e o omportmento do mduloF osteriormenteD o qlossrio de(ne @ou ompletA o ontedo dos loos d estrutur e por (mD o wenismo de isiilidde ter efeito sore formo dos mdulos e intero entre seus gentesF

WP

gptulo QF wtodo de efinmento whn %

QFSFI

ipo estrto de hdos

m ipo estrto de hdos representdo por um mdulo de de(nio em wh e %n su interfeF r filitr leiturD um loo do mdulo pode ser referenido neste texto pens pelo seu nome em negritoD om (nlidde de difereniElo ds sees do eh om os mesmos nomesF wdulo em wh %n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

module nome-do-mdulo import elementos importados i n c l u d e elementos includos algebra :


funes e tipos

abstractions : i n i t i a l state : transition: invariant :

aes

inicializaes de funes dinmicas regras

end

invariantes de execuo nome-do-mdulo

snterfe de um wdulo em wh %n
1 2 3 4
nome-do-mdulo declaraes de tipos declaraes de aes end nome-do-mdulo

interface

rimeirmenteD um ipo estrto de hdos de(ne o nome que o mdulo por ele espei(do ter por meio do mpemento direto de seu nomeF im seguidD seo lger do eh determin os prinipis elementos que rterizm um mduloD sendo estes ento prilmente de(nidos no loo lgerF e de(nio pril signi( onter pens o nome ou ssinturD sendo ind neessri um de(nio detlhdD que ser relizd posteriormente em outr regrF e seo de invrintes do eh orresponde o loo invrintD portnto d expresso oolen de(nid no eh diretmente mped em um invrinte n lingugem lvoF essimD um ipo estrto de hdosD omo o d pigur QFQID de(ne o mdulo em wh mostrdo seguirF %n

QFSF

egrs de efinmento whn %

WQ

NoduleA algebra: x, y z w invariant: x>y y>0,z<0

typeT1 typeT2

service1(a) service2(a,b) service3

pigur QFQIX ixemplo de ipo estrto de hdosF

wdulo em wh %n
1 2 3 4 5 6 7 8 9 10

module ModuleA algebra :


x, y; z; w;

invariant :
x > y;

y > 0;

z < 0;

end

ModuleA

e interfe de um mdulo rid om o mesmo nome do mdulo e seus elementos so otidos prtir d interfe do ehF ys tipos so mpedos pr lger e os servios pr strtions omo stres plisF istes elementos so tmm prilmente delrdosD omo mostrdo no digo do mdulo seguirF wdulo em wh %n
1 2 3 4 5 6 7 8 9 10 11 12 13

module ModuleA algebra :

// elementos da interface typeT1 ; typeT2 ; // lgebra do TAD x, y; z; w;

WR
14 15 16 17 18 19 20 21 22 23 24 25

gptulo QF wtodo de efinmento whn %

abstractions :

// elementos da interface p u b l i c action service1 ( a ); p u b l i c action service2 (a , b ); p u b l i c action service3 ;

invariant :

// lgebra do TAD x > y; y > 0; ModuleA

z < 0;

end

essimD riEse um orrespondni entre s ssinturs d interfe e sus de(niE es no qlossrioF e prtir dissoD podeEse de(nir seguinte interfe do mduloD ind om elementos inompletosF

qlossrio X snterfe
1 2 3 4 5 6 7 8

interface

ModuleA

typeT1 ; typeT2 ;

action service1 ( a ); action service2 (a , b ); action service3 ; end ModuleA

y ipo estrto de hdos responsvel por indir o nome do mduloD s prinipis funesD os invrintes e interfeF nto lger qunto interfe do mdulo rido presentm elementos om de(nies pendentesF ssso signi( onter pens os nomes ou s ssinturs sem de(nio de tiposD orpo ou lssi(oF isses frgmentos sero posteriormente detlhdos n regr de re(nmento plid sore o qlossrioF utilizdo o re(nmento de ddo om instnioD onde so de(nidos os ddos prinipis do mdulo e desritsD n interfeD s es utilizds externmenteF elm dissoD o invrinte determin s restries que estrutur prinipl do mdulo deve respeitrF e regr de trnsio preservd e isso ser mostrdo posteriormente n eo QFSFQF

QFSF

egrs de efinmento whn %

WS

QFSFP

higrm de rnsio de istdos

y re(nmento de um higrm de rnsio de istdos resent elementos n lE

ger do mdulo referente su estrutur intern de ontroleD de(ne o loo initil stte e present o trtmento pr os estdos (nisF elm dissoD s ondies e es presentes em sus trnsies so indids n lger e strtions pr posteriores
re(nmentosF es regrs de re(nmento que sero presentds seguir fzem prte do re(nE mento de suErotinsD presentdo n eo PFPFPD onde um mdulo do wodelo fsio sustitudo por um de wh om mis detlhes e novs rterstis so preE %n sentsD omo proprieddes e de(nies de tiposF

istdos e istdo snterno


y loo lger resido de um tipo enumerdoD snternltteD onde os possveis vlores so ddos pelos nomes dos estdos presentes no hiF y estdo iniil re(ndo pr o vlor initiltteD que de(nido omo vlor pdroF istdos
1 2 3 4 5

algebra : type InternalState

enum

{ initialState , state1 , state2 , ... , stateN } d e f a u l t initialState ;

y estdo interno do hi ddo pel funo dinmi tlstte do tipo snterE

nltteF iss um funo pr ontrole interno visvel pens no mdulo onde foi delrdF e vww no permite o uso explito de tlstteD logoD pr oter o vlor do estdo internoD deveEse sempre utilizr funo derivd urrentstteD que re)ete pulimente o vlor de tlstteF e um mdulo A inluir outro B D B.urrentstte ser visvel em AD pens pr onsultF
istdo snterno
1 2 3

algebra :

ctl_state : InternalState ; p u b l i c derived current_state : InternalState := ctl_state ;

es lteres interns so relizds pels es que de(nem s trnsies do hiD omo ser mostrdo n eo QFSFQD e no loo initil stteF od tulizo relizd so o ontrole do wtodo de e(nmento wh %nF essimD grnteEse que

WT

gptulo QF wtodo de efinmento whn %

o estdo interno ter pens um dos possveis vlores de estdo em um determinndo instnteD onforme propriedde de hiD que pode ser desrit onforme seguirF
1

AG(ctl_state = {initialState, state1 stateN})

wltipls triuies tlstte em um mesm trnsio ger inonsistni e este fto utomtimente pereido em wwD por meio de um veri(dor de modelosD omo ser disutido n eo RF r onsult do estdo interno por outros mdulosD existe funo urrentstteD que re)ete o vlor de tlstteF e lusul derived grnte que seu vlor no pode ser lterdo diretmente om triuiesD preservndo o orreto vlor de tlstteF hepenE dendo de futuros re(nmentos e veri(dores de modelos utilizdosD ess propriedde pode ser utomtimente grntidD omo ser mostrdo n eo RF ormD pr grntiEl em qulquer irunstniD el pode ser representd d seguinte formF
1

AG(ctl_state = current_state )

es de(nies dos estdos e estdo interno fzem prte d estrutur de ddos que ser utilizd pr ompletr o re(nmento plido sore o hiD onforme mostrdo ns sees seguintesF

istdo sniil
y estdo iniil onsiste em preprr um gente pr su exeuoF xo possui tiviE ddeD no pode ser destino de nenhum )uxo e no sofre tuo do gontrole qlolF e presen de ondies no )uxo de sd no permitidD pois serim vlidos terE mos ind inde(nidos e mquin no seri orretmente iniilizdF or issoD deve existir pens um )uxo de sd no estdo iniil sem presen de ondiesF y estdo iniil de um hi de(ne o loo initil stte de wh onde so feits %nD s iniilizes de funes e tulizo do estdo interno tlstte pr o estdo de destinoF e pigur QFQP mostr um exemplo de um estdo iniil om um o de prepro em um trnsio pr o estdo iF y digo orrespondenteD resultdo do re(nmento de suErotinsD mostrdo em seguidF

A1

pigur QFQPX istdo iniilD prepro de um genteF

QFSF

egrs de efinmento whn %

WU

istdo sniil
1 2 3

i n i t i a l state :

A1 ; ctl_state := i ;

istdo pinl
ys estdos (nis de um digrm tm funionlidde de exeutr su tividdeD se existir umD e (nlizr exeuo do genteD utilizndo funo stopF r o estdo (nl fD representdo n pigur QFQQD riEse o seguinte digoD que ser posteriormente inludo n regr de trnsio do mduloF estEse o estdo internoD se for o estdo (nlD exeutEse su tividdeD se existirD e exeut regr stop pr (nlizr exeuo do genteF

f
atv: atvState_f

pigur QFQQX istdo f D (nliz exeuo de um genteF

istdo pinlX treho d regr de trnsio


1 2 3 4 5

transition: i f ctl_state end

= f

atvState_f ; stop ;

then

ys estdos (nis terminm exeuo do gente utilizndo lusul stopF orE tntoD se um gente estiver um vez em um estdo (nlD impli que no estdo seguinte vrivel implit do mduloD stteD ter o vlor stoppedF r todo estdo (nl fD ess propriedde pode ser express omo
1

AG((ctl_state = f ) -> (next(state) = stopped))

xovmente utilizdo o re(nmento de suErotins de(nindo s operes que devem ser relizds qundo um exeuo de um gente for (nlizdF gom trnsE formoD surge propriedde meniondF

WV

gptulo QF wtodo de efinmento whn %

gondies e ees
es ondies e es enontrds nos )uxos de trnsies representdos no hi so prilmente delrds em lger e strtions respetivmenteD e posteriorE mente sero detlhds no re(nmento de higrms de d de istdoD eo QFSFQ e qlossrio QFSFRF gso lgum destes elementos j tenh sido delrdoD nd feitoF

QFSFQ

higrm de d de istdo

e prtir de d higrm de d de istdoD possvel oter regr de trnsio de estdoD de(nir pr e ps ondies ds es do hiD tividdes e propriedde de estdosF gd um destes itens presentdo seguirF es regrs de re(nmento fzem prte do tipo re(nmento de suErotinsD omplementndo o proesso iniido ns regrs plids sore o higrm de rnsio de istdosD mostrdo n eo QFSFPF

egr de rnsio
r d )uxo de sd de um estdo no (nl iD gerd um o )owprominD sendo n o ndie do )uxoD om pr ondio tlstte a i ser respeitdF xeste moE mentoD seu orpo ind se enontr vzio e ser posteriormente re(ndoF or exemploD trnsio d pigur QFQRD pgin IHHD re(nd no seguinte digoD onde h pens su ssintur e prEondioD ou sejD seu ontrtoF rnsio de istdo

1 2 3 4

abstractions : action flowFrom_i_1 i s r e q u i r e : ctl_state = end

i;

r d higrm de d de istdoD gerd um o )owpromi que seu orpo omposto do onjunto de es )owpromin ser exeutdo so ondio

tlstte a iF endo este o nio lol de hmd s stres )owprominD pr todo nD pr ondio dests es sero sempre respeitdsF essimD pr um estdo i om n )uxos de sdsD ser gerdo o seguinte digoF

QFSF

egrs de efinmento whn %

WW

)owpromi
1 2 3 4 5 6 7 8

abstractions : action flowFrom_i i s i f ctl_state = i then


flowFrom_i_1 ; . . . flowFrom_i_n ;

end end

e regr de trnsioD loo trnsitionD onstrud hmndo tods s es de )uxo )owpromiD pr 1 i k D onde k o nmero de estdos no (nisD e operes de (nlizo orrespondentes os estdos (nisF gomo tlstte possui pens um vlorD regr de trnsio ir esolher orretmente o de (nlizo ou o onjunto de )uxos ser vlido de ordo om o estdo orrenteF osteriormenteD s es )owpromin devem onter exluso mtu ds ondies disprdors pr que o )uxo orreto sej exeutdoD ess propriedde ser trtd mis dinteF essimD o loo trnsition de(nido d seguinte formD onsiderndo k estdos no (nis e

m estdos (nis F
egr de rniso
1 2 3 4 5 6 7 8 9 10 11 12 13 14

transition:

flowFrom_1 ; . . . flowFrom_k ;

if

. . . i f ctl_state = fm atvState_fm ; stop ;

end

ctl_state = f1 atvState_f1 ; stop ;

then

then

end

e regr de re(nmento presentd trnsform s trnsies do higrm de rnE sio de istdos ompleto n regr de trnsio do mduloD onde so residos deE tlhes que ntes erm implitos no hiD omo pr ondies de )owpromin e veri(o do estdo interno em )owpromiF iste o re(nmento de suErotinsD que omplet o re(nmento de ddos desrito n eo QFSFIF e seguirD presentmEse s

IHH

gptulo QF wtodo de efinmento whn %

regrs que ompletm s stres de trnsio @)owprominFA

rnsies
m trnsioD omo mostrd n pigur QFQRD orresponde um tion om o nome pdro de )owpromin e pr ondio tlstte a i ser respeitdD onde i origem e n o ndex do )uxoD ontilizdo de ordo om nmero de )uxos de sd do estdo

iF endo ess de(nio sido feit n regr de re(nmento mostrd nteriormenteD fzE se o detlhmento de seu orpo prtir dos elementos @ondies e esA d trnsioD representdo n pigur QFQR por ontD que sero otidos om os re(nmentos seguintesF

contT

pigur QFQRX rnsio de estdoF

rnsio de istdo pendente de ont


1 2 3 4 5

abstractions : action flowFrom_i_1 i s r e q u i r e : ctl_state =

i;

end

// contT

m trnsio pode ter o mesmo estdo omo origem e destinoF r o exemplo d pigur QFQSD otmEse o digo mostrdo seguirF xotEse que funo tlstteD que represent o estdo internoD tulizd pr o estdo i n linh UD que tnto origem omo destinoF or issoD este tipo de trnsio onorre om os demis )uxos de sd de um estdoF evlio de ondies @C1A ser disutid mis dinteD ssim omo de es @A1AF
A1

C1

pigur QFQSX rnsio om origem igul o destinoF

QFSF

egrs de efinmento whn %

IHI

yrigem sgul o hestino


1 2 3 4 5 6 7 8 9

abstractions : action flowFrom_i_1 i s r e q u i r e : ctl_state = if


C1 then A1 ; ctl_state := i ;

i;

end end

gondies
es ondies so responsveis por ontrolr pssgem do )uxo em um trnsioF ssso signi( queD dependendo d vlio d expressoD trnsio pode exeutr es diferentes ou mesmo no se ompletrF es ondies so mpeds pr omndos

ifEthenEelse dentro de um trnsioF omndo omo exemplo pigur QFQTD podeE se ter o seguinte treho de digoF evliEse ondio C D so verddeirD o )uxo prossegue vlindo ontD so ontrrio trnsio interrompid sem tulizr o estdo internoF e tulizo do estdo interno no mostrd pois depende de ontF gomo est um ondio om um nio )uxo de sdD prte else omitidF

contT

pigur QFQTX gondio om um )uxo de sdF

gondio ifEthen
1 2 3 4 5 6 7 8

abstractions : action flowFrom_i_1 i s r e q u i r e : ctl_state = if


C then // contT

i;

end end

IHP

gptulo QF wtodo de efinmento whn %

gso hj lterntivs no )uxoD pigur QFQUD o digo gerdo orresponde o mosE trdo seguirD ontendo prte elseF gso vlio sej verddeirD vliEse ontD so ontrrioD vliEse ontpF

contT
T

C
F

contF

pigur QFQUX gondio om dois )uxos de sdF

1 2 3 4 5 6 7 8 9 10 11

abstractions : action flowFrom_i_1 i s r e q u i r e : ctl_state = if


C then // contT // contF

gondio ifEthenEelse

i;

else end end

im mos os sos itdos de ondioD tulizo do estdo interno do mE dulo depende ds ondies seguintesD ont ou ontpF xo so de um seqni de ondies em um mesmo )uxoD omo mostr pigur QFQVD o digo orrespondente seri um ninhmento de omndos ifEthenEelseF e tulizo do estdo orrente efetivd somente se o )uxo lnr um estdo de destinoD ou sejD relizd em um dos omndos ifEthenEelse mis internosF y digo orrespondente pigur QFQV presentdo seguirF

QFSF

egrs de efinmento whn %

IHQ

1 2 3 4 5 6 7 8 9 10 11 12 13 14

action flowFrom_i_1 i s r e q u i r e : ctl_state = if


C1 A1 ;

gondies eninhds
i;

then

if

else end end end

C2 then A2 ; ctl_state := j ; A3 ; ctl_state := k ;

C1

A1

C2
F

A2

A3

pigur QFQVX eqni de ondiesF rnsies om mesm origem e destinos diferentes podem usr inonsistniD de ordo om propriedde de um digrm estr somente em um nio estdo em um determindo instnteF ssso pode ser mis em eslreido om o digo seguirD gerdo prtir d pigur QFV d pgin SWD que por questes de legiilidde est reproduzid n pigur QFQWF e indexo dos )uxos feitD neste soD de im pr ixoF snonsistnis em gondies
i;

1 2 3 4 5 6 7 8 9 10 11

action flowFrom_i_1 i s r e q u i r e : ctl_state = if


C1 then A1 ; ctl_state := j1 ;

end end

IHR
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

gptulo QF wtodo de efinmento whn %

action flowFrom_i_2 i s r e q u i r e : ctl_state = if


C2 then A2 ; ctl_state := j2 ;

i;

end

action flowFrom_i_3 r e q u i r e : ctl_state if


C3 then A3 ; ctl_state := j2 ;

= i;

end end

pode gerar inconsistncia C1 A1

j1

C2

A2

j2

C3 no gera inconsistncia

A3

pigur QFQWX itues de onorrni de )uxosF es hmds desss es so feits no loo trnsition de wh e exeuo %n depende do estdo orrenteF gomo ms possuem o mesmo estdo de origemD sendo

C1 verddeirD se C2 ou C3 tmm foremD tulizo d linh T ser inonsistente om tulizo IU ou PSF


odeEse pereer que s es )owpromiP e )owpromiQ podem onter s vlies de C2 e C3 no disjuntsD pois s tulizes no estdo interno ns linhs IU e PS ssoim o mesmo vlor tlstteD no gerndo inonsistniD de ordo om o modelo ew qurWSF gso exist um erro dest nturezD o mtodo de veri(o deve indir onde se enontr o prolemF gom issoD de(neEse propriedde de exluso mtu de ondies d seguinte formF hdo um hi e onsiderndo pens s ondies do

QFSF

egrs de efinmento whn %

IHS

)uxoD identi(Ese todos os minhos possveis i jmF e de(nio destes minhos feit pel onjuno n ds ondies pertenentes o )uxoF gso no exist um ondioD ssumeEse n omo sendo verddeiroF ssso pode ser representdo pel tupl

(i, cn, jm)


ods s tupls que possuem mesmo estdo de origem e de destino so grupds relizndo disjuno de sus ondiesF or exemploD s tupls

(i, c2, j2) (i, c3, j2)


so grupds omo

(i, (c2 c3), j2)


intoD ddo um estdo iD s ondies que levm os diferentes estdos seguintes devem ser mutumente exlusivs e podeEse representr ess propriedde d seguinte form ixluso wtu
1

AG((ctl_state = i) -> (c1 xor (c2 c3) xor cn ))

essimD possvel veri(r inonsistnis n tulizo do estdo interno de um genteD e de(nindo propriedde dest formD tornEse possvel identi(r o momento em que o prolem oorre em um veri(dor de modelosD onde podeEse presentr um exemplo de exeuo pr que sej relizd nliseF gom est regrD s es de trnsio de estdo tm seu orpo de(nido de ordo om su represento no wodelo fsioF es proprieddes extrds indim s novs rterstis que devem ser oservdsF es hmds s stres pertenentes o )uxo so delrds e ind devem ser re(nds posteriormenteF

r e ps ondies de es
xo hiD s es podem estr ssoids pr e ps ondiesF r tod o presente em todos os hisD su de(nio pril em strtions resid d lusul require e ensure de ordo om s de(nies no wodelo fsioF essimD mis detlhes so inseridos n de(nio ds esD onforme previsto no tipo re(nmento

IHT

gptulo QF wtodo de efinmento whn %

de suErotinsF or exemploD o mostrd n pigur QFRH re(nd pr o digo mostrdo seguirF

RA

EA

pigur QFRHX r e ps ondies de oF

1 2 3 4 5

abstractions : action A i s require : ensure : end

r e ps ondies de o

RA ; EA ;

etividde de estdo
m tividde desreve o que ser relizd durnte permnni de um gente em um estdoF il independente dos )uxos de sdD ento su hmd deve estr for de qulquer omndo ondiionlD omo ifEthenEelseF xo possvel tulizr o estdo interno n tividdeD portnto no existe inonsistnis om os )uxos de sdF eu efeito s pereido n itero seguinteD ssim omo qulquer outr o do modeloF endo omo exemplo pigur QFRID o digo em wh representdo %n seguirF es es so formlizds n eo QFSFRF

i
atv: atvState_i

contT

pigur QFRIX etividde de um estdoF

1 2 3 4 5 6

abstractions : action flowFrom_i i s i f ctl_state = i then end


atvState_i ; // actions of contT

etividde de um istdo

QFSF

egrs de efinmento whn %

IHU

ist regr fz prte do tipo re(nmento de suErotins e qundo existir um tiviE dde ssoid um estdo iD o que representD se ind no existirD delrd prilmente em strtions e su hmd olod omo primeir regr d sE tro )owpromiD logo ps veri(o do vlor de tlstteF ssso grnte que o de tividde do estdo i ser exeutd qundo tlstte for igul i e ntes de exeutr qulquer )uxo de sd ou opero de trmino d regr de trnsio do genteF

ropriedde de estdo
e propriedde de estdo propi represent um ondio que deve ser stisfeit qundo o gente em exeuo permneer em um determindo estdo iD pigur QFRPF y re(nE mento de suErotin trnsform represento de propriedde de estdo no wodelo fsio em um propriedde gvD d seguinte formD pr que sej possvel relizr veri(o dequdmenteF ropriedde de estdo
1

AG(ctl_state = i -> prop_i )

i
prop_i

pigur QFRPX ropriedde de estdoF hess formD podeEse veri(r exeuo do sistem de ordo om su espei(E oD e no so de flhD podeEse mostrr um exemplo de qundo o erro oorreF

gontrole qlol
y gontrole qlol tu sore o )uxo de sd de todos os estdosD exeto o estdo iniilF ile opionl eD se existirD deve ser nio pr d mduloF e represento em wh dos digrms reduzidos segue s mesms regrs do hi priniplD om %n exeo de que o estdo de origem no testdo e de que o digrm reduzido que no desvi o )uxo prinipl no tuliz o estdo interno tlstteF m o espeilD denomind qlolgontrolD gerd pr representr o omE portmento do gontrole qlolF m mdulo que possui um gontrole qlol tem su regr de trnsioD loo trnsition de wh %nD relizd em dois pssosF y primeiro

IHV

gptulo QF wtodo de efinmento whn %

hm o qlolgontrol e o segundo onsiste em exeutr o )uxo prinipl do hiD omo mostrdo nteriormenteF r exempli(r o gontrole qlolD utilizEse o exemplo d pigur QFIR n pgin TPD reproduzido n pigur QFRQ por questes de legiiliddeF y digo pr o

qlolgontrol mostrdo seguirF

current_state

C1

F T

C2

stateE

A1

A2

pigur QFRQX gontrole qlolF

eo pr gontrole qlol
1 2 3 4 5 6 7 8 9 10 11 12

abstractions : action GlobalControl i s i f C1 then else if


C2 A1 ; A2 ;

ctl_state := stateE ;

then

else end end end

ereeEse que o estdo orrente no veri(doD j que o gontrole qlol tu sore todos os estdos possveisF e o qlolgontrolD primeirmenteD veri( onE dio C1 eD so verddeirD o )uxo prinipl desvido pr stteiD por isso funo

tlstte tulizd n linh RF gso C1 sej flsD vliEse C2 pr determinr qul o ser exeutdD A1 ou A2D e o )uxo devolvido pr o digrm priniplF or isso no existe tulizo do estdo interno no loo do omndo ifEthen d linh T nem seu respetivo elseD n linh VY
hd regr de trnsio de um mdulo desrit pelo hi prinipl e o gontrole qlol d pigur QFRQD podeEse gerr o seguinte treho de digo pr regr de

QFSF

egrs de efinmento whn %

IHW

trnsioD onsiderndo ontplow omo sendo tods s es dos )uxos possveis no digrmF egr de rnsio
1 2 3 4 5 6

transition: step 1: step

GlobalControl ; 2: // contFlow next := 1;

gomo o loo trnsition relizdo em dois pssosD s tulizes feits no gontrole qlol so vists ns es de trnsio representds por ontplowF hess formD um desvio de )uxo pereido pel tulizo d funo tlstteD ssim omo s tulizes relizds pels es A1 e A2F r evitr (nlizo inesperd do genteD o omndo next Xa I n linh T relizdo pr queD n prxim iteroD o gontrole qlol sej exeutdo novmenteF ssso fz om que o primeiro pssoD do gontrole qlolD sej novmente exeutdoD preservndo semnti de(nid pr o higrm de rnsio de istdosF iste re(nmento sedo no tipo de re(nmento extenso onservtivD onde um novo omportmentoD so determinds ondiesD diiondo exeuo normlF im vwwD isso pode ser feito sem ter que lterr o omportmento j onstrudo no hiD ontriuindo pr melhor reproveitmento do mduloF e regr de trnsio lterd pr preservr semnti do gontrole qlol e suportr exeuo em dois pssosF

gom s desries presentds nest seoD de(nemEse funo de estdo interno om seus possveis vloresD tividde de um estdo e s trnsies de estdo om s ondies e esF mm so de(nidos os omportmentos dos estdos iniil e (nisD ssim omo o pr representr o gontrole qlolF e estrutur de um mdulo e o omportmento de seus gentes podem ser de(nidos pel desrio do ipo estrto de hdos e pel regr de re(nmento que tu sore o hiD mostrd nest seoF ys loos initil e trnsition j se presentm ompletos neste momentoD e os loos lger e strtions prilmente onstrudosF y qlossrio e wenismo de isiilidde ompletm estes loos e de(nem os outros existentes em um mduloF

IIH

gptulo QF wtodo de efinmento whn %

QFSFR

qlossrio

y qlossrio omplet s de(nies dos loos lger e strtionsF gd prte do qlossrio inserido em seu loo orrespondente n estrutur de wh %nD de form que lger omplet lger e estres omplet strtionsF omndo o exemplo de eh d pigur QFQI ddo n eo QFSFID pgin WQD supemE se um hi e o gontrole qlolD omitidos por questes de simpliiddeD de(neEse um possvel qlossrio d seguinte formF odem existir outros elementosD no desritos no ehD ms utilizdos de lgum form pelo mduloF essimD estes tmm devem ser de(nidos n lgerD omoD por exemploD mD n e p n linh IIF qlossrio X lger
1 2 3 4 5 6 7 8 9 10 11
// elementos da interface p u b l i c type typeT1 : I n t ; p u b l i c type typeT2 : I n t ; // lgebra do TAD x, y : typeT1 ; p u b l i c z : typeT2 ; p u b l i c w : typeT2 ; // elementos internos m, n, p : Int ;

es stres disponiilizds omo servios no eh e s utilizds no hi devem ser de(nidsD ssim omo s demis que possm ser teis dentro de outrs esD omo mostr o exemplo seguirF qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13
// elementos da interface action service1 ( a : I n t ) . . . .

is

end

action end

service2 ( a : . . . .

Int ,

b :

Int ) is

action end

service3 incXY ; . . . .

is

QFSF

egrs de efinmento whn %

III

14 15 16 17 18 19

// elementos internos action incXY i s x := x + 2; y := y + 1;

end

isss de(nies ompletm os loo lger e strtions nteriormente mostrdosF intoD om de(nio do qlossrio presentd e omitindo o hi e o digrm de gontrole qlolD um suposto digo em wh gerdo seriX %n gdigo wh pr wodulee %n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

module ModuleA algebra :

// estrutura interna DTE type InternalState i s

enum

ctl_state

i s InternalState ; p u b l i c derived current_state

{ initialState , state1 , . . . stateN } d e f a u l t initialState ; : InternalState := clt_state ;

// elementos da interface p u b l i c type typeT1 : I n t ; p u b l i c type typeT2 : I n t ; // lgebra do TAD x, y : typeT1 ; p u b l i c z : typeT2 ; p u b l i c w : typeT2 ; // elementos internos m, n, p : Int ;

abstractions :

// controle global action GlobalControl . . .

is

end

// transies de DSEs action flowFrom_state1_1 i s r e q u i r e : ctl_state = state1 ; . . .

end

IIP
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77

gptulo QF wtodo de efinmento whn %

. . . // transies de um estado do DSEs action flowFrom_state1 i s i f ctl_state = state1 then incXY ; // atividade de state1 . . .

. . . // elementos da interface p u b l i c action service1 ( a : . . . .

end end

Int ) is

end

p u b l i c action end
. . . .

service2 ( a :

Int ,

b :

Int ) is

p u b l i c action end
incXY ; . . . .

service3

is

// elementos internos action incXY i s x := x + 2; y := y + 1;

end

transition: step 1: step

GlobalControl ; 2: flowFrom_state1 ; . . . i f ctl_state = final1 stop ; . . .

then

end

next

:= 1;

invariant : end

// lgebra do TAD x > y; y > 0; ModuleA

z < 0;

QFSF

egrs de efinmento whn %

IIQ

x de(nio do mduloD os primeiros elementos n lger form otidos prtir d estrutur intern do higrm de rnsio de istdosD sendo de(nio do tipo

snternltteD ns linhs de R TD funo de estdo interno tlstte n linh U e funo derivd urrentstte n linh VF es de(nies d linh IS t IU form otids do detlhmento ds delres do ehD e d linh PH n lger no qlossrioF
xo loo de stresD n linh PRD de(neEse o pr o gontrole qlol e linh PW orresponde o inio ds delres ds es de trnsies otids utoE mtimente prtir do higrm de rnsio de istdosD ssim omo n linh QSD dEse inio s delres orrespondentes s es d regr de trnsioF h linh RQ t TH enontrmEse s es que form de(nids no qlossrioD n prte estresD e o loo de invrintD linh URD foi otido do ehD omo mostrdo nteriormenteF e regr de trnsioD trnsition n linh TPD gerd em dois pssosD sendo o primeiro psso exeuo do gontrole qlolD linh TRD e o segundo onsiste ns hmds ds es de trnsio de estdoD que inii n linh TTD e trtmento de estdos (nisD n linh TVF r impedir termino no esperd d regr de trnsio do genteD fzEse n linh UP o psso seguinte ser o primeiro novmenteF or (mD os invrintes so de(nidos n linh UR prtir d delro do ehF y qlossrio omplement de(nio de es e funes presentes no hi ompleto e no digo wh gerdo t o momentoF gso existm es om mis de um %n de(nio pr pr e ps ondiesD fzEse onjuno ds expresses oolensD sej presente nos higrm de d de istdos ou n de(nio do qlossrioF e interfe possui um orrespondni de seus elementos om sus de(nies no qlossrioF endo ssimD podeEse ompletr interfe de wodulee d seguinte formF snterfe de wodulee
1 2 3 4 5 6 7 8 9

i n t e r f a c e ModuleA p u b l i c type typeT1 p u b l i c type typeT2 p u b l i c action p u b l i c action p u b l i c action

: :

Int ; Int ; I n t ); Int , b


:

service1 ( a : service2 ( a : service3 ;

I n t );

end

ModuleA

hess formD o ipo estrto de hdosD o higrm de rnsio de istdos e o qlossrio de(nem estrutur e o omportmento de um mdulo em wh tl omo %n su interfe pr prover servios gentes de outros mdulosF ixistem s onstrues sis do modeloD omo o estdo interno e seu tipoD e s de(nids pelo usurioD omo

IIR

gptulo QF wtodo de efinmento whn %

trnsies e elementos do eh e qlossrioF y gontrole qlol deve ser relizdo ntes de qulquer trnsio de estdoD e pr ter vlidde deve ser relizdo no primeiro psso d regr de trnsioD deixndo exeuo norml no segundo pssoF ist penltim regr do tipo re(nmento de suErotinsF

QFSFS

wenismo de isiilidde

y menismo de visiilidde determin o relionmento entre dois mdulos e inteE ro entre gentes de ordo om o digrm eh mostrdo n eo QFIFSF y efeito de(nir os loos import e inlude de um mdulo wh %nF or exemploD ddo o digrm d pigur QFRRD tmEse os seguintes loos pr woduleeF

ModuleB

ModuleA

ModuleC

pigur QFRRX higrm ehF

he(nio de inlude e import


1 2 3 4 5

. . . . . end ModuleA

module ModuleA import : ModuleB ; i n c l u d e : ModuleC ;

xo digrmD o eh que represent wodulee est mrdo omo sendo mquin do sistemF ssso signi( rir um mquin om um nio gente de wodulee e disprr su regr de trnsio d seguinte formX grio d mquin do sistem
1 2 3
machine ModuleA agent of ModuleA ; end ModuleA

y exemplo mostr wodulee importndo os servios de wodulef e inorporndo os elementos plios de wodulegF elm dissoD riEse mquin que represent o sistem do wodelo fsioF hess formD ompletEse espei(o de um mdulo de(nindo relo entre mdulos e intero entre gentes no sistemF

QFTF

gonluses

IIS

QFT

gonluses

y wtodo de e(nmento wh de(ne vingugem de wodelgem wh @vwwA %n %n pr de(nio em lto nvel do wodelo fsioF vww sed em digrms de )uxo de ontrole e os diferentes nveis de stro do wodelo fsio (m em seprdos em seus omponentesD ontriuindo pr oter um lingugem intuitivD mior poder de expresso e mior legiilidde nos domnios d eplio e dos wodelosF e vww possui higrm de rnsio de istdos @hiA e higrms de d de istdo @hisA omo reursos gr(osF y qlossrio de(ne os elementos destes digrms e permite expressr formlmente proprieddes pertenentes o homnio d eplioF y lto nvel de stro presente em vww permite vlidr espei(o so superviso de lientes e desenvolvedoresF es regrs de(nids em ww so seds nos tipos de re(nmento identi(dos no wtodo de e(nmento ew e germ um espei(o em wh omo digo lvoF %n rerdndo s rterstis de wh %nD vww permite de(nir sistems multigentes om exeues snrons e ssnronsF gom esss rterstisD ww permite relizr filmente desries de sistems de pequeno e grnde porte om grnde quntidde de informesD ontriuindo pr um espei(o ompletD preis e que ptur s rterstis mis relevntes do prolem ser soluiondoF

gptulo R eri(o eutomti de roprieddes


y wtodo de e(nmento wh suport onstruo do wodelo fsio e su trnsE %n formo pr lingugem wh %nD onforme mostrdo ns ees QFI e QFSF ormD ind neessrio veri(r se s proprieddes do sistem esto sendo respeitds no modeloD ou sejD preiso grntir que implemento estej de ordo om espeiE (o do prolemF im wwD propeEse veri(o utomti e trnsprenteD o que signi( no ontr om prtiipo humn nem exigir o pleno onheimento ds tnis de veri(o utilizdsF ixistem diferentes mneirs de se provr que s proprieddes desrits no wodelo fsio so preservds o longo do re(nmentoF y wodelo fsioD por exemploD poE deri ser trnsformdo em um lingugem de entrd de um determindo provdor de teorems onde seri utomtimente veri(doF y trlho de preek iedijkD he

eventeen rovers of the orld ieHTD relt e ompr os IU prinipis provdores de teorem existentes mostrndo um exemplo de exeuo em d um delesF hentre os presentdosD estoX
ryv ytterGsvy ho vego winlog ist list ontm IU menismos de prov de teorems e form seleiondos so os ritrios de serem desenvolvidos pr formlizo mtemtiD e possurem um espeiliddeD ou sejD d um melhor so lgum ponto de vist e so onsiderdos lderes n su reF wiores detlhes sore est lssi(o enontrmEse em ieHTF IIU wizr sselleGssr sw xuprl elfGegd wetmth goq egvP heorem f method

meg

IIV

gptulo RF erifio eutomti de roprieddes

y exemplo utilizdo pr mostrr e omprr s ferrments foi o prolem d prov de que riz qudrd de dois um nmero irrionlF he ordo om frger em fHQD s prinipis ferrments utilizds n veri(E o utomti de modelos ew so us eiWPD eiWSD f+ HHD ygWVD yWP e sselle xHTD lm de veri(dores de modelos @wodel ghekers AD que seE ro desritos seguirF hentre estes provdores itdosD pens o us no preeu n relo de ieHTF istes provdores de teorems so ferrments podeross que uxilim veri(oD porm neessrio informr s estrtgis em determindos pontosD exigindo onheE imento do modelo e d lingugem do provdorF imor os provdores possiilitem ordr um grnde vriedde de prolemsD ess rtersti impede veri(o ompletmente utomti e trnsprente dentro do wtodo de e(nmento wh %nF eri(o de wodelos @wodel gheking A um mtodo de veri(o forml de sistems onde possvel oter representes mis strts que provdores de teoE rem e so mis indidos pr modelgem de ontrole de )uxo gqHHF imor esse mtodo no onsig ordr mesm vriedde de prolems que os provdores onseguemD possvel trtrD segundo glrkeD quse todos os prolems que so reE lmente desenvolvidos n prti gqHHF elm dissoD veri(dores de modelosD no so de flh n veri(oD podem forneer exemplos de trnsies que levrm o erroD possiilitndo depuro do sistemF e seguir so presentdos os trlhos reliondos om wodel gheking e seu uso em ewF

RFI

eri(o de wodelos @Model

Checking A

eri(o de wodelos @wodel gheking gqHHA um mtodo que permite veri(r utomtimente proprieddes de um sistem de trnsio de estdoF m estdo ddo pel situo de tods s vriveis do modelo em um determindo instnteF iste mtodo enumer todos os estdos lnveisD ddos os estdos iniiis e regr de trnsioD e veri( s proprieddes de ordo om s espei(es ddsF ssso ftlE mente ger um exploso de estdos serem veri(dosD porm pidde de lidr om tl fenmeno um rtersti notvel de veri(o de modelosF m veri(dor de modelos @wodel gheker A implement um mtodo de veri(E o de modelos e possvel enontrr vrios deles n litertur qe+ WTD g+ WUD p+ WRD rruWTD rolWUD uxHPD vtdWUF xeste trlho foi utilizdo um veri(E dor sedo no ymoli wodel eri(er @wA uFvWPD que ser mostrdo seguirF e desrio de outros veri(dores e sus lssi(es @omo sw uxHPD s qe+ WTD i p+ WRD whq g+ WUD sx rolWUD gyex rruWT e ph

RFIF

erifio de wodelos @wodel gheking A

IIW

vtdWUA fogem do esopo deste trlhoF m veri(dor de modelos reee omo entrd um espei(o de um sistem de trnsio de estdosD onde so de(nids sus vriveisD omo d um iniilizd e omo so tulizds o longo ds trnsies de estdosF e represento do sistem dd por meio d estrutur de uripke gqHHD gptulo PD de(nid pel tupl

(S, S0 , R, L) ondeX S o onjunto de estdosY S0 S o onjunto de estdos iniiisD freqentemente omitido por questes de simpliiddeY R S S relo de trnsioY L : S 2AP funo que rotul d estdo om um onjunto de proprieddes verddeirsD onde e @etomi repositions A so s vriveis de estdo do sistemF
snternmente em um veri(dor de modelosD estrutur de uripke representd por digrms inrios de deiso ordendos @yfhh E yrdered finry heision hiE

grms A gqHHD gptulo SD que so derivdos de rvores inris de deisoF m rvore inri de deiso um rvore dirigid pr representr funes oolensF gd nodo interno represent um vrivel v do sistemD dd pel funo vr@vAF gd nodo interno possui dus restsD um que represent triuio do vlor H vD hmd de low@vAD e outr represent triuio de ID hmd de high@vAF e rest low@vA pode ser representd por um rest pontilhdF ys nodos externosD terminisD so representdos pelos vlores H ou ID otidos por vlue@vAF gd minho n rvore represent um triuio d vr@vAD e o resultdo ddo pelo vlor do vrtie terminlD vlue@vA a H ou IF
rvores inris de deiso no possuem um represento onis de um frmul oolenF ils possuem o mesmo tmnho que um tel verddeF ormD existem erts rterstis de redundnis que podem ser explords (m de se oter melhores representesD omo por exemplo juno de suErvores idntisF eo juntr suErvores iguisD otmEse um grfo orientdo lio @hiret eyli

qrph E heqA om um riz niD rterizndoEse em um fhh @finry heision higrm AF m fhh dito ordendoD yfhh @yrdered finry heision higrm AD se todos os minhos prtir d riz respeitm mesm ordem ds vriveisF m yfhh dito reduzidoD yfhh @edued yrdered finry heision higrm A so s seguintes ondiesX

IPH

gptulo RF erifio eutomti de roprieddes

qundo no existem dois nodos distintos u e v que representem mesm vrivel e possum os mesmos (lhos low e highD ou sej (var (v ) = var (u) & low (v ) = low@uA & high(v ) = high(u)) v = u um vrivel v no ontm os mesmos (lhosD ou sej
low@vA = high@vA
gonsiderndo trs vriveisD xID xP e xQD podeEse onstruir rvore inri de deiso mostrd n pigur RFI@A de ordo om um funo f@xIDxPDxQAD n qul tem tel verdde representd n pigur RFI@AF odeEse notr que todos os possveis minhos sempre tero mesm ordem de vriveisF im seguidD pigur RFI@A mostr o yfhh pr est mesm funoF gomo pode ser vistoD um digrm om menos estdos e somente dois nodos terminisD representdos pels ixs ontendo H ou IF gonsiderndo um estrutur uripke M = (S, R, L)D pr representEl em um yfhh neessrio desrever o onjunto de estdos S e relo RF or questes prtisD o rtulo L foi omitidoF hdo que v um vrivel oolen pertenente o onjunto de vriveis do sistem V e v um vetor de vriveis v d um om seu vlorD um estdo pode ser desrito por um represento de v D que plid um funo oolen f otmEse o vlor IF or exemploD pr o exemplo d pigur RFI@AD existirim os trs estdos ( x1, x2, x3), ( x1, x2, x3) e (x1, x2)D otidos prtir dos minhos do yfhh que resultm no nodo terminl IF r represento de R utilizEse mesm odi(o de S D onsiderndo v um vrivel pertenente o onjunto V D que signi( o vlor de v no estdo seguinteD e v um vetor de v F intoD relo R de(nid omo (v, v )D onde um vetor de vriveisD d um om determindo vlorD mpedo em outro vetor om seus respetivos vlores no estdo seguinteF essimD podeEse representr um relo de trnsio por um onjuno dos vlroes tuis om os vlores do prximo estdoF upondo um onjunto de trnsies pr o exemplo d pigur RFI@AD podeEse desrevElo em frmuls lgis onforme seguirF e pigur RFP mostr represento gr( dests trnsiesF e disjuno de tods s trnsies represento de relo de trnsio R ompletF

( x1 x2 x3 x1 x2 x3 ) ( x1 x2 x3 x1 x2 ) ( x1 x2 x3 x1 x2 x3 )

RFIF

erifio de wodelos @wodel gheking A

IPI

x1

x2

x2

x3

x3

x3

x3

(a) rvore binria de deciso.


x1

x1 x2 x3

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

1 0 0 1 0 0 1 1

x2

x2

x3

x3

(b) Tabela verdade para funo f.

(c) ROBDD

pigur RFIX higrm finrio de heisoF

(x1 x2 x1 x2 x3 )

x1 x2 x3

x1 x2 x3

x1 x2

pigur RFPX epresento de um estrutur uripke em yfhhF e veri(o relizd no pelo ompnhmento dos estdosD ms sim por perE gunts que so feits o modeloD s quis so desrits normlmente em frmuls temE

IPP

gptulo RF erifio eutomti de roprieddes

poris gv e vvF is frmuls expressm s proprieddes que devem ser grntids pelo sistem e so desrits em funo d ordem temporl dos estdos ou minhos pr se hegr determindos estdosF e nlise dos estdosD relizd pels pergunts feits o sistemD proporion um veri(o de form simplesD sem neessidde de onferir d estdo existenteF possvel expressr diverss forms de proprieddes e um veri(dor de modelos resE ponde verddeiro ou flsoD e no so de ser flsoD possvel que sej mostrdo um exemplo de tl situoF iste um importnte reurso pr depuro do sistem modeldoF

RFIFI

Symbolic Model Verier @wA

ymoli wodel eri(er @wA uFvWPD wwWQ um veri(dor de modelos om linE gugem prpri pr espei(o de sistems de trnsio de estdos onde os estdos so (nitosD ou mquin de estdos (nitos @pinite tte whine AF y w utiliz lgoE ritmos simlios @ymoli wodel gheking sitHSA sedos em yfhh @yrdered finry heision higrm AD um melhormento de fhh @finry heision higrm A gqHHD gptulo SF gom issoD possvel veri(r sistems om grnde nmero de estdosD eFgFD n ordem de 10120 D omo demonstrdo nos exemplos tihWID tih+ WRF
m exeuo de w veri( d proprieddeD de(nid em gv @gomputtionl

ree vogi A ou vv @vogil emporl vogi AD utilizndo lgoritmos sore o yfhhF retorndo um resultdo verddeiro ou flso pr d um delsF xo so de um resultdo flsoD e sempre que possvelD ddo um ontrEexemplo onde mostrEse um exeuoD prtir do estdo iniilD que viol proprieddeF iste rtifio muito til pr depuro do sistem sumetido veri(oF
y w foi iniilmente desenvolvido n grnegie wellon niversity @gwAD e (ou onheido omo gw wF xovs proposts pr w form feits om o ojetivo de oter mior desempenho e prover funionliddes mis poderossF hestmEse os trE lhos gdene w wwWW e xuw ggy+ HTF emos so reimplementes do gw wD gdene w foi desenvolvido pelo houtor uF vF wwilln no gdene

ferkeley vsF xuw foi desenvolvido no sgEsF istes dois trlhos preE sentm melhoris onsiderveis sore o gw w e so muito semelhntesD emor presentem sintxe diferenteF r o wtodo de e(nmento wh %nD esolheuEse trlhr om xuw pel similridde om sintxe de gw w e filidde em oter mnul de onsults e exemplosF x eo RFIFPD so presentds s prinipis rterstis de xuwF

RFIF

erifio de wodelos @wodel gheking A

IPQ

RFIFP

xuw

y veri(dor de modelos xuw ggy+ HTD ggy+ HSD ggy+ HS resultdo d reimplemento e extenso do gw w wwWQF xuw fz prte de um proE jeto estruturdo e em doumentdo om o ojetivo de ser mplmente utilizdo em esls industriisF or issoD su verso tulD xuw PFRD distriud so lien

ypenoureD que permite qulquer interessdo livremente utilizr e prtiipr do deE senvolvimentoF
xuw permite representr sistems de estdos (nitos snronos e ssnronosD e espei(r proprieddes utilizndo gomputtion ree vogi @gvA e viner emporl

vogi @vvA gqHHD gptulo QF e seguirD dd um reve desrio de omo se espei( um sistem utilizndo xuwF gomo exemploD ser mostrd espei(o de um ontdor inrio de trs itsF gd it modeldo por um lul de ontgem e o sistem tem omo ojetivo somr onstntemente o vlor I o vlor nteriormente otidoF

wyhvi
wdulo um enpsulmento de delres de vriveis de estdoF gd mdulo pode onter regr de trnsio de estdos e espei(es de proprieddesD estes e outros elementos sero explidos seguirF possvel delrr um mdulo om prmetrosD no qul pssgem por referniF or exemploD riEse seguir o mdulo pr um lul de um ontdor inrio que reee omo prmetro o viEum d somF gontdor finrio
1

MODULE counter_cell(carry_in)

e
es delres de vriveis de estdo so relizds no loo eF odem ser do tipo enumerdoD intervloD ooleno e instnis de outros mdulosF xo exemplo do ontdor inrio delrEse vrivel vlue omo oolenF gontdor finrio
1 2 3
MODULE counter_cell(carry_in) VAR value : boolean;

IPR

gptulo RF erifio eutomti de roprieddes

esqx
e regr que determin iniilizo e trnsies de um vrivel de estdo so de(niE ds por triuies no loo esqxF e triuio diret estelee o vlor d vrivelD

init@vrileA indi qul o vlor iniil d vrivel de estdoD e next@vrileA fornee o vlor no estdo seguinte prtir do estdo orrenteF e triuio em next@vrileA pode ser feit utilizndo regr seD onde possvel determinr o prximo vlor de vE rile em funo de um determind ondioF essimD next@vrileA pode filmente determinr regr de trnsio so perspetiv de um vrivelF e seguirD de(nemEse o vlor iniil e regr de trnsio de vlue no exemplo do ontdor inrioF
gontdor finrio
1 2 3 4 5 6 7
MODULE counter_cell(carry_in) VAR value : boolean; ASSIGN init(value) := 0; next(value) := value + carry_in mod 2;

y vlor iniil pr vlue HD e trnsio feit lulndo vlue C rryinD onde rryin otido pel som de dgitos de ordem menor @menos signi(tivosAF pzEse mod P d som pr evitr esso um vlor invlidoD por exemplo PD que no eito em um vrivel oolenF odeEse utilizr regr se pr de(nir next@vrileAD onforme o digo seguirD supondo um mdulo om um vrivel tlstte enumerd om os vlores stteID

stteP ou stteQF
ixemplo de gse
1 2 3 4 5 6 7 8 9 10 11 12
MODULE case_example VAR ctl_state : {state1, state2, state3}; ASSIGN init(ctl_state) := state1; next(ctl_state) := case ctl_state = state1 : state2 ctl_state = state2 : state3 ctl_state = state3 : state1 1 : state1 esac;

RFIF

erifio de wodelos @wodel gheking A

IPS

e triuio o prximo vlor de tlstte ondiiond o seu vlor orrenteF e for stteID o prximo vlor ser sttePF e for sttePD ser stteQ e se for stteQD voltEse o vlor stteIF e vlio feit n ordem que s lusuls preem e triuio feit qundo se enontr primeir lusul verddeirD independente ds seguintesF gso no sej indido o prximo vlor de um vrivel ou nenhum ds lusuls de um regr se for verddeirD triuiEse um vlor no determinstio dentre os possveis vlores que vrivel pode ssumirF im xuwD isso signi( que existiro tntos estdos seguintes possveis quntos forem os vlores possveis pr quel vrivelF or issoD n linh II do digo ixemplo de gseD ondio I e triuiEse o vlor stteIF ssso signi( queD se nenhum ds lusuls nteriores for verddeirD o prximo estdo d vrivel tlstte ser stteIF

hipsxi
r tornr espei(o xuw mis onisD podeEse ssoir um vrivel um expresso por meio do loo hipsxiF m vrivel em hipsxi sempre sustitud pel su de(nio qundo enontrd n espei(oF odeEse notr que no rid um nov vrivel no yfhh que gerdoF xo exemplo do ontdor inrioD riEse vrivel rryoutD que indi se viEum ou noF gontdor finrio
1 2 3 4 5 6 7 8 9 10
MODULE counter_cell(carry_in) VAR value : boolean; ASSIGN init(value) := 0; next(value) := value + carry_in mod 2; DEFINE carry_out := value & carry_in;

wdulo prinipl @main A


od espei(o xuw deve onter um mdulo priniplD sem prmetrosD que deve representr o sistemF r o ontdor inrioD de(nemEse s trs luls de ontgem onde o rryin d primeir sempre umD indindo que sempre somdo umD pois este o vlor ser somdo d trnsio de estdoF r s demisD o

rryin o rryout d nteriorD simolizndo omunio entre s lulsD omo

IPT

gptulo RF erifio eutomti de roprieddes

oorre em um hrdwre que represent este sistemF xote que tods s vriveisD neste soD so instnis do mdulo ounterell ridoF wdulo prinipl
1 2 3 4 5
MODULE main VAR bit0 : counter_cell(1); bit1 : counter_cell(bit0.carry_out); bit2 : counter_cell(bit1.carry_out);

gd it exeutr prlelmente e de form snron su regr de trnsio que foi espei(d no loo esqxF

ig
es proprieddes gvs so espei(ds preedids d plvr hve igF gso sejm frmuls vvD deveEse utilizr vvigF es demis forms de espei(es no fzem prte deste trlho e podem ser enontrds no mnul de xuw ggy+ HSF es proprieddes em xuw so n verdde pergunts relizds o sistem moE deldo pelo yfhhF essimD no exemplo do ontdor inrioD podeEse perguntr se sempre verdde que em lgum estdo no futuro rryout do itP ser verddeiroF iss propriedde de(nid n linh V do digo roprieddes seguirF gomo veri(o do ontdorD podeEse perguntr seD otendo o vlor HHHD o prximo ser HHID onsiderndo itH omo o menos signi(tivoF ist propriedde mostrd pel frmul vv n linh II do digo roprieddes seguirF roprieddes
1 2 3 4 5 6 7 8 9 10 11
MODULE main VAR bit0 : counter_cell(1); bit1 : counter_cell(bit0.carry_out); bit2 : counter_cell(bit1.carry_out); SPEC AG AF bit2.carry_out LTLSPEC G((!bit0.value & !bit1.value & !bit2.value) > X bit0.value)

RFIF

erifio de wodelos @wodel gheking A

IPU

essimD ompletEse espei(o xuw de um ontdor inrio de trs itsF e exeuo deste modelo retorn verddeir pr ms s pergunts relizdsD forE mlizds pels frmuls gv e vv mostrdsF e seguirD so presentds outrs onstrues importntes pr veri(o em wtodo de e(nmento wh %nF

sxe
possvel de(nir invrintes do sistem vi o loo sxeF iste loo restringe o domnio no qul um vrivel de estdo perteneF eu impto n veri(o um reduo do yfhh qunto os possveis vloresF imor o tmnho do yfhh no tenh relo diret om desempenhoD os ortes podem eliminr minhos que no so desejveis em um determindo pontoF

se
im lguns sosD pode ser neessrio que mdulos omprtilhem lgums de sus prtes om outros mdulosF im xuwD isso pode ser feito seprndo s prtes omuns em mdulos e utilizr delres se pr importEls pr delro de outros mdulosF se funion omo um mro que expnde o orpo do mdulo importdo no lol d delroD opindo s de(niesF or exemploD o mdulo modulee seguir ontm um vrivel e um proprieddeF ixemplo de se
1 MODULE moduleA 2 VAR 3 va : boolean; 4 5 SPEC AG(va | !va);

m outro mdulo modulef pode ser de(nido d seguinte formD om delro se moduleeF ixemplo de se
1 MODULE moduleB 2 VAR 3 vb : boolean; 4 5 ISA moduleA 6 7 SPEC AG(vb | !vb);

IPV

gptulo RF erifio eutomti de roprieddes

ssso equivlente espei(r o mdulo modulef d seguinte formD onde moduE

leeFv diferente de modulefFvF odeEse notr que t mesmo s propriedde so importdsF


ixemplo de se
1 MODULE moduleB 2 VAR 3 va : boolean; 4 vb : boolean; 5 6 SPEC AG(va | !va); 7 SPEC AG(vb | !vb);

xo so de um mdulo moduleg importr o mdulo modulef utilizndo seD este tmm import os elementos do moduleeF or exemploD o mdulo ixemplo de se
1 MODULE moduleC 2 VAR 3 vc : boolean; 4 5 ISA moduleB 6 7 SPEC AG(vc | !vc);

equivlente seguinte espei(oF ixemplo de se


1 MODULE moduleC 2 VAR 3 va : boolean; 4 vb : boolean; 5 vc : boolean; 6 7 SPEC AG(va | !va); 8 SPEC AG(vb | !vb); 9 SPEC AG(vc | !vb);

RFIF

erifio de wodelos @wodel gheking A

IPW

proess
hus instnis de mdulos exeutm regr de trnsio em prlelo e de form snronF gso sejm delrds omo proesso @proess AD els simulm um exeuo ssnronD onde d trnsio de estdoD esolheEse no deterministimente qul proesso ser exeutdoF ys demis proessosD que no form esolhidos pr exeuoD no lterm o vlor de sus vriveisF y exemplo seguir mostr trs portes lgios que invertem entrd reeidF e sd de um porto entrd do seguinteD formndo um nelF e delro dos trs portes omo proesso simul o trso no iruitoD pois d porto tem su vez de exeutr no deterministimenteF e delro pesxi runningD n linh IWD grnte que o proesso que simoliz o porto lgio ser exeutdo pelo menos um vezF orto inverte
1 MODULE main 2 VAR 3 gate1 : process inverter(gate3.output); 4 gate2 : process inverter(gate1.output); 5 gate3 : process inverter(gate2.output); 6 7 SPEC 8 (AG AF gate1.output) & (AG AF !gate1.output) 9 10 11 MODULE inverter(input) 12 VAR 13 output : boolean; 14 15 ASSIGN 16 init(output) := 0; 17 next(output) := !input; 18 19 FAIRNESS running

gom estes elementos sios de xuwD podeEse mostrr omo um espei(o wh pode ser trnsformd em um espei(o xuwD e om issoD ser possvel %n oter um mtodo de veri(o pr wtodo de e(nmento wh %nF

IQH

gptulo RF erifio eutomti de roprieddes

RFIFQ

eri(dor de wodelos pr ew

ixistem vrios trlhos que propem veri(o diversos modelos de espei(o de sistemsF or exemploD existem extenses ligds wvD omo presentdo por tohn vilius e svn ltor em vWWD vWWD que relizm veri(o utomti do modeloD neste so utilizmEse os veri(dores de modelos sx e ywiveF e ordgem enontrd em ffu+ HR tmm reliz veri(o de digrms de estdosD porm relizEse prov por exeuo simli de premisss utilizndo o provdor de teorems us eiWPF yutr ordgem muito utilizdD ind sore wvD presento de um seE mnti formlD priniplmente de digrms de trnsio de estdos e tividdesD que possm ser posteriormente veri(dos yeHQD uwHPD fgHHD fgHHF gomo ww est imerso no modelo ew e vww sed em digrmsD so mostrdos trlhos que relionm wvD lingugem gr(D om o modelo ewF or exemploD slen yer yeHQ de(ne um semnti pr wv por meio de um metEmodelo utilizndo ewD enqunto elexnder unpp e tephn werz uwHP propem um gero de digo ew prtir de mquins de estdos wvF frgerD gvrr e ioene tmm desE revem um semnti forml pr wv em termos de ewD possiilitndo utilizrEse do rigor mtemtio deste modelo pr elimino de migiddes e veri(o do sistem fgHHD fgHHF r o modelo ewD so presentds lgums mneirs de veri(o utomtiD omo os trlhos de pielmnn piWWD piHH e uirsten inter inHID utilizndo veri(o de modelos vi trnsformes de um espei(o ew pr um entrd de um veri(dor de modelosF e prinipl pesquis que pli veri(dor de modelos ew relizd por uirsE ten inter e hel gstillo inWUD gHHD inHID onde foi desenvolvido um mdulo dentro de he ew orkenh helWWD um frmework pr desenvolvimento ewD pr veri(o utomtiF xesse trlhoD so presentds regrs de re(nmento sore um espei(o ewD feit n lingugem ewEvD om o ojetivo de oter um lingugem intermediriD hmd de ewEsvF i prtir d pode ser feito um segundo proesso de trnsformes pr oter entrds de diferentes veri(dores de modelosF xo soD form presentdos w e o pote whq @wultiwy heision

qrphs A g+ WUF
hurnte o re(nmento de um lingugem ew pr wD devem ser resolvidos qutro prinipis prolemsD que so explidos seguirX

estdos de ew devem ser (nitos @pwAY expnso de dinmi de voulrio deve ser trtd @regr ew import AY

RFIF

erifio de wodelos @wodel gheking A

IQI

funes devem ser tods sem rgumentosY regr de trnsio deve ser plni(dF
eri(dores de modelos representm pens sistems de trnsio de estdos (niE tosD portnto um espei(o ew deve ser sempre um mquin de estdos (nit @pw E pinite tte whineD eo PFIFTA ou ser onvertid pr tlF m propost de onverso presentd em qqHPF im wtodo de e(nmento wh %nD o wodelo fsio sempre desrito em termos de um pwD representdo pelo higrm de rnsio de istdosF gom issoD ess trnsformo no neessri em wwF es vriveis presentes n espei(o de um veri(dor de modelos devem ser onheids ntes de su exeuoD sendo ssimD regrs que expndem dinmimente o voulrio d mquin devem ser previmente trtdsD ssim omo funes om ridde mior que zeroF xo so do trlho de uirstenD regr import de ew qurWS no onsiderd e foi desrito omo trlhos futurosF xo so de funes om rgumentosD foi gerd por uirsten um vrivel pr d vlor possvel do rgumento pssdo no momento de seu usoD onsiderndo regr de juste @pitness gonstrints A determind nquele pontoF egr de juste determin quis os possveis vlores de um vrivel em um determindo ponto do progrmD sendo ssimD onsidere o seguinte treho de ewF ew

1 2 3

if

end

a < 3 then f ( a ) := 2* a ;

odeEse determinr regr de juste pr vrivel D que pode ssumir os vlores ID PD ou QD no treho presentdo d seguinte formF

a : {1, 2, 3}
essimD riEse um vrivel pr d vlor de possvel no ponto de uso d funo

f e otmEse o seguinte treho de ewEsvD onde a Q no tuliz fF


ewEsv

1 2 3 4 5

end

a = 1 then f1 := 2*1; else i f a = 2 f2 := 2*2;

if

then

IQP

gptulo RF erifio eutomti de roprieddes

ist ordgem ftlmente ger um exploso de estdos no yfhh de wD porm o tmnho do yfhh no tem relo om desempenho d exeuo gqHHF essimD este trtmento tornEse vivel pr eliminr rgumentos ds funesF im wD regr de trnsio desrit em termos de d vrivelD enqunto que em ew trnsio desrit em termos ds tulizesF or exemploD onsidere o treho ew seguirF ew

1 2 3 4 5 6 7

transition: i f C1 then

end end

a := 1; i f C2 then c := 3;

y equivlente em w seriD no loo esqxD ddo pr d vrivelF w


1 2 3 4 5 6 7 8 9 10 11 12
ASSIGN

next ( a ) case

:=

C1 : 1; 1 : a; esac ; :=

next ( c ) case

C1 & C2 : 3; 1 : c; esac ;

odeEse pereer que o ninhmento de regrs ifEthen em ew deve ser re(nd pr um represento equivlente em wF ssso signi( que regr de trnsio ew deve ser plni(dD ou sejD estruturs omplexs @ninhdsA devem ser repreE sentds de form onter somente regrs do tipoX

if C then simple update


y proesso desrito por uirsten inHI reliz trnsformo ewEv @ewE

oure vnguge A pr w em dus etpsF x primeirD estes qutro prinipis

RFPF

erifio wtodo de efinmento whn %

IQQ

prolems so resolvidos pr oter um lingugem intermediriD hmd de ewE sv @ewEstermedite vnguge AD om s seguintes rterstisX

simplesX estruturs omplexsD omo funes om rgumentosD so desdordsY plni(dX regr de trnsio representd pens por regrs ifEthen sem niE nhmentoF
o presentdosD em inHID os seguintes pssos pr se oter ewEsv prtir de ewEvX

desdormento de funes @puntions nfolding AY desdormento de regrs @ules nfolding AY simpli(o de termos @implifying erms AY simpli(o de regrs @implifying ules AF
el simpliidde de ewEsvD el funion omo um interfe entre ew e veriE (dores de modelosF intoD o segundo psso relizdo trnsformndo ewEsv em um entrd de um veri(dor de modelos esolhidoF e veri(o no wtodo de e(nmento wh sed nos trlhos de uirsE %n ten e gstillo inWUD gHHD inHI e s regrs form plids so s mesms persE petivsD porm relizndo s deques lingugem wh %nD onforme mostrdo n eo RFPF

RFP

eri(o wtodo de e(nmento wh %n

e veri(o de sistem propost dentro do wtodo de e(nmento wh reE %n lizd sore o digo wh gerdo e utilizndo o veri(dor de modelos xuwD %n desrito nteriormenteF heveEse onverter espei(o wh em um espei(E %n o xuw orrespondente de form utomtiF gonsiderndo s diferens entre um lingugem ew e de xuwD ddo um sistem em wh %nD ww o trnsform em um lingugem intermediriD denomind gEwh @goreEwh %n %nAD eo RFQF e pigur RFQ represent s etps de re(nmento que onvertem o digo wh %n em um represento equivlente em xuwF gom ess ordgem de gero de um lingugem intermediriD possvel oter um interfe pr veri(dores de modelos que sejm sedos em sistems de trnsio e utilizm ordgem lgiF xo fz prte do esopo deste trlho vlidr ess interfe om outrs ferrments lm de xuwD deixndo em erto possveis trlhos futurosF

IQR

gptulo RF erifio eutomti de roprieddes

Machna

Planificao Simplificao (1 etapa)

C-Machna

Transformao NuSMV (2 etapa)

NuSMV

pigur RFQX itps de re(nmento de wh pr xuwF %n rimeirmenteD relizd simpli(o dos termosF r issoD tipos elordos so re(ndosD medid do possvelD pr onstrues mis simples e s funes om ridde mior que zero so trnsformds em representes equivlentes om ridde igul zeroF osteriormenteD trtEse d formo dos mdulos prtir d inluso de elementos pertenentes outros mdulosF intoD plni(o relizd sustituindoEse regrs do tipo hooseD with e regrs em mltiplos pssos por de(nies simples ifEthenEelseF or (mD s regrs ondiionis so simpli(ds pr serem pens ifEthen sem ninhmentoF

RFQ

gEwh %n

gEwh @goreEwh %n %nA um suonjunto d lingugem wh onde existem %n onstrues e regrs mis simplesF us rterstis soX

tods s regrs so plni(dsD ou sejD omndos ninhdos so trnsformdos em regrs simples do tipo if g then Y endD inlusive sequenidores de regrs e hmds stres simples @stres que no possuem prmetrosD delE res loisD loops e nem seqni de pssos de exeuo @stepAAY funes om ridde mior que zero so trnsformds em um represento equivlente que sej delrd e vlid ntes d exeuoD ou sejD no existe vlio dependente de estdoD tods s funes devem ter ridde zeroY pens existem os tipos sios foolD sntD ghrD intervloD enumero e o tipo genteY modulrizoD menismo de visiilidde e lusuls inlude e import so mnE tidos em gEwh om mesm semnti que em wh %n %nY revitur de termos e stres regrs no so permitids em gEwh %nY s regrs de dministro de gentes so relizds por meio de funes explE itsD e no om regrs e funes implits omo em wh %nY de(nies de regrs em mltiplos pssos no so permitidsY

RFRF

wpemento de whn gEwhn % %

IQS

no so permitids s regrs hooseD forllD se ou with Y expresses elordsD omo ll e existD no so permitidsY gentes possuem mesm semnti de delro e exeuo que em wh %nY de(nio d mquin de exeuo relizd d mesm form que em wh %nF
gEwh um importnte reurso n eri(o wtodo de e(nmento wh %n %nD pois su simpliidde permite trnsformr mis filmente um progrm wh em %n um espei(o de veri(dores de modeloF xeste trlhoD pens ordd ferrment xuwD ms trlhos futuros podem utilizr gEwh omo interfe %n pr outros veri(dores de modelosD permitindo o uso de outrs ferrmentsF

RFR

wpemento de wh gEwh %n %n

y re(nmento de wh pr gEwh onsider prolems sinttiosD semntiosD %n %n veri(o de tipos e ontrole de visiilidde j resolvidosF

RFRFI

e(nmento d lgerX tipos

ys tipos em wh devem ser trnsformdos em estruturs equivlentes mis simplesD %n priniplmente os tipos estruturdosF he ordo om o re(nmento de ddosD no somente estrutur lterdD ms tmm s operes devem ser re(nds de form preservr o efeito sore o ddoF

fsios
ys tipos sios de wh so foolD ghrD sntD elD tring e intervlosF xo %n re(nmento de wh pr gEwh sus representes so mntidsF ormD %n %n stres de operesD omo sD mx e minD su e pred devem ser sustituds por operes mis sisF hemis operes existentes so mntidsF r o tipo ghrD existem s operes strtsX

ord @ X ghrAXsntD retorn o vlor egss do rtere Y hr @i X sntAXghrD retorn o rtere om o digo egss i Y su @ X ghrAXghrD retorn o suessor de ou undef Y pred @ X ghrAXghrD retorn o predeessor de ou undefF

IQT

gptulo RF erifio eutomti de roprieddes

es operes ord e hr so mntids em gEwh %nF t s operes su e pred so re(nds respetivmente ns seguintes expressesF rimeiro vliEse se esto no intervlo de rteres vlidos e retornm o suessorD ou predeessorD e so ontrrio retornm o rtere om digo egss zeroD que equivlente o undefF le lemrr que digo egss do intervlo vlido de rteres de QP IPTD ento QP no tem predeessor e IPT no tem suessorF

1 2 3 4 5

if

else

ord ( c ) >= 32 and ord ( c ) < chr ( ord ( c )+1); chr (0);

su
126

then

end

1 2 3 4 5

if

else

ord ( c ) > 32 and ord ( c ) <= chr ( ord ( c ) -1); chr (0);

pred
126

then

end

r o tipo snt existem s operes strtsX

s @i X sntAXsntD retorn o vlor soluto de i Y mx @i X sntD j X sntAXsntD retorn o mior vlor entre dois nmeros inteirosD i ou jY mx @i X sntD j X sntAXsntD retorn o menor vlor entre dois nmeros inteirosD i ou jY sqr @i X sntAXsntD retorn o qudrdo de iF
gd um dels so respetivmente re(nds em expresses onforme seguirF

if

i >= 0

then

else

s
( -1 * a )

end ;

if

i >= j

then

else

end ;

mx

RFRF

wpemento de whn gEwhn % %

IQU

if

i <= j

then

else

end ;

min

sqr
1

i * i;

y mesmo oorre om s operes strts do tipo elD preservndo s onverE ses integerD que trnsform um rel em um inteiroD e relD que onverte um inteiro em um relF

gompostos
ys tipos ompostos so enumeresD unio disjuntD tuplsD onjuntosD listD nodo de rvoreD funionlD genteD stro de regrsD rquivo e tipos de(nidos pelo progrmE dorF ys tipos enumeroD listD nodo rvoreD funionlD gente e stro de regrs so mntidos inlterdosF e seguir so presentdos os re(nmentos dos demisF y tipo c de(nido omo unio disjunt de todos os tipos possveisD ento esse re(nmento relizdo onsiderndo os tipos visveis dentro do mduloF e unio disjunt deompost rindo um funo pr d tipo que form unioF im wh %nD d funo tem um triuto interno type que indi qul o seu tipo em termos de um inteiroF xo so de um unio disjuntD este triuto ssume um vlor de ordo om triuio que feit funoF r este ontroleD de(neEse um funo diionl que deve sempre re)etir o omportmento d unio disjuntF essimD unio disjunt X I | P re(nd pr os seguintes termosF nio disjunt
1 2 3
aT1 : T1 ; aT2 : T2 ; aType : I n t ; // funo para T1 // funo para T2 // controla o tipo de a, T1 ou T2

e oteno do vlor de ddo pel regr withD ser disutid mis dinteF undo houver um triuio Xa D o seguinte re(nmento relizdoF odeEse pereer que nlisdo qul o tipo de D ento triuio orretmente relizd e o ontroldor do tipo de tulizdoF

IQV

gptulo RF erifio eutomti de roprieddes

etriuio em unio disjunt


1 2 3 4 5 6 7
b . type = T1 then aT1 := b ; aType := aT1 . type ; e l s e i f b . type = T2 then aT2 := b ; aType := aT2 . type ;

if

end

he form semelhnte unio disjuntD o tipo tupl deomposto de ordo om seus elementos e s operes so re(nds preservndo semntiF intoD onsiderndo s de(nies ds tupls p e q e s operes seguirF upls
1 2 3 4 5
p , q : tuple ( x : . . . q := p ; q . x := p . y ; p := (1 ,2);

Int ,

y :

I n t );

y re(nmento ddo d seguinte formF e(nmento de tupls


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// declarao da tupla p tuple_p_x : I n t ; tuple_p_y : I n t ; // declarao da tupla q tuple_q_x : I n t ; tuple_q_y : I n t ; // refinamento da operao da linha 3 tuple_q_x := tuple_p_x ; tuple_q_y := tuple_p_y ; // refinamento da operao da linha 4 tuple_q_x := tuple_p_y ; // refinamento da operao da linha 5 tuple_p_x := 1; tuple_p_y := 2;

y tipo onjunto denot um oleo de elementos do mesmo tipoF endo ssimD

RFRF

wpemento de whn gEwhn % %

IQW

podeEse interpretr onjuntos omo um reloD e o re(nmento relizdo pr um funo que mpei o tipo do onjunto em um vlor oolenoD indindo se o elemento pertene ou no oleoF gonjunto
T;

s =

set of

e delro do onjunto presentd ento trnsformd em um funo onE forme seguirF re(nmento de onjunto

s : T ->

Bool ;

es operes sore onjuntos soX

sI C sPD unioY sI E sPD diferenY sI B sPD interseoY x in sD pertinniY s@xAD pertinniF


e seguirD presentEseD respetivmenteD o re(nmento de d um delsD onsideE rndo os onjuntos sID sP e sQ do tipo F e pertinni dd por x sintxe de s@xAD que preservdF e unio sI C sP seleion todos os elementos pertenentes o domnio que stisfzem relo sI ou sP e triui sQF nioX sI C sP
s2 ( x )

in s trtd om

1 2 3 4

f o r a l l x:T s a t i s f y i n g s1 ( x ) or do s3 ( x ) := true ; end

e diferen sI E sP seleion todos os elementos pertenentes o domnio que stisfzem relo sI e no stisfzem sPD ento s triui sQF

IRH

gptulo RF erifio eutomti de roprieddes

1 2 3 4

f o r a l l x:T s a t i s f y i n g s1 ( x ) and not do s3 ( x ) := true ; end

hiferenX sI E sP
s2 ( x )

e interseo sI B sP re(nd de form semelhnteD porm inlui em sQ os eleE mentos que stisfzem tnto relo sI qunto sPF snterseoX sI B sP
s2 ( x )

1 2 3 4

f o r a l l x:T s a t i s f y i n g s1 ( x ) and do s3 ( x ) := true ; end

xo so de um triuio de expresso sQ Xa {D D } fzEse expnso relioE nndo d elementoF etriuio

1 2 3

s3 ( a ) := s3 ( b ) := s3 ( c ) :=

true ; true ; true ;

punes de(nids omo rquivos tm seu usoD ldo direito d expressoD sustitudo pel regr no determinsti hooseD onde o domnio orresponde o tipo do rquivoF iste re(nmento onsider rquivos omo sendo um intero om o miente externo e o ord omo um vlor no determinstioF xo treho de digo seguirD onsiderE se red funo que l um elemento do rquivo fD que possui o tipo D e o triui

xF
erquivo

1 2 3 4

f : f i l e of T ; x : T; . . . readT (f , x );

y re(nmento ento ddo pel seguinte regrD pereeEse que no existe mis delro do rquivoF reservndo delro de xD pens re(nEse oteno do vlorD red n linh RF

RFRF

wpemento de whn gEwhn % %

IRI

e(nmento de rquivo
1 2 3 4 5

choose f : do x := f ; end

x : T; . . .

elguns tipos podem ser de(nidos pelo progrmdor (m de melhorr legiilidde do digoF imor wh permit de(nio de tipos om prmetrosD isto no %n trtdo neste trlhoD ssim omo de(nio de tipos mutumente reursivosF y re(nmentoD entoD pens sustitui o tipo rido pel su de(nioF xovo tipo

1 2

T = a : T;

type

Int ;

a :

Int ;

e(nmento

RFRFP

e(nmento d lgerX funes

es funes so re(nds plindo o mtodo proposto por uirsten e gstillo inWUD gHHD inHID onforme desrio n eo RFIFQD onde so ridsD pr d funo om rgumentosD tods s possiiliddes de ordo om o domnio do prmetroF xeste soD regr de juste pitness gonstrint pr d ponto de hmd de funo deve ser informd pelo desenvolvedorF gom issoD o proesso de trnsformo exige interveno humn neste pontoD impedindo que veri(o no wtodo de e(nmento wh sej um tref ompletmente utomtiF %n poge do esopo deste trlho o trtmento d plio d regr de justeF imE or sej neessrio interveno do desenvolvedorD os gnhos om s demis regrs de re(nmento pr oter entrd de um veri(dor de modelos so onsiderveisF puturos trlhos podem ser relizdos pr tornr plio d regr de juste um proesso utomtioF

RFRFQ

e(nmento d lgerX import

e lusul import tem ppel fundmentl no ontrole de visiilidde de tipos e sE tres exportds por um mduloD no hvendo neessidde de ser re(nd em gE

IRP

gptulo RF erifio eutomti de roprieddes

wh %nD onsiderndo que qulquer prolem reliondo esso invlido j tenh sido resolvido em wh %nF

RFRFR

e(nmento d lgerX include

ilementos plios
r todo mdulo eD fzEse expnso d lusul inlude d seguinte formF r d mdulo inludo em eD veri(Ese su lusul inlude e diionD se ind no existirD os mdulos por este inludo n lusul inlude de eF isse proesso deve ser repetido t que se elimine tod dependni de inluses existentesF imor semnti d lusul inlude em gEwh sej mesm que em wh %n %nD ess expnso fundmentl pr o re(nmento de wh em xuwD omo desreve %n eo RFSFPF osteriormenteD riEse um segundo mduloD hmdo pulieD que ontm os eleE mentos plios de eD om exeo dos elementos omprtilhdosF intoD pr todo mdulo fi presente n lusul inlude de eD relizEse tro pr inluir pulifiD e tmm fzEse inluir pulieF gonsiderndo o seguinte treho de digo wh %n
B;

1 2 3 4 5 6 7

module A include end A module B include end B

C;

y resultdo d expnso presentdo seguirF gEwh %nX expnso de inlude


B, C;

1 2 3 4 5 6 7

module A include end A module B include end B

C;

RFRF

wpemento de whn gEwhn % %

IRQ

in(mD o resultdo do re(nmento presentdo no seguinte digoF gEwh %n


publicA , publicB , publicC ;

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

module A include end A module B include end B module

publicB , publicC ;

publicA // elementos pblicos de A end publicA publicB // elementos pblicos de B end publicB publicC // elementos pblicos de C end publicC

module

module

iste re(nmento simpli( o trtmento d lusul inludeF eo gerr um re omumD no so pulieD pr os mdulos que inluem e e o prprio eD possvel trtr todos eles d mesm formF e vntgem ( evidente no re(nmento de gEwh %n pr xuwD eo RFSFPF

ilementos omprtilhdos
gonsiderndo expnso relizd nteriormenteD pr todo mdulo eD s funes omprtilhds @shred A so trnsferids pr um mdulo prteD denomindo shE

redeD e s funes omprtilhds plis @puli shred A so trnsferids pr outro mduloD denomindo pulihredeF intoD o mdulo e pss inluir tnto shrede qunto pulihredeD e pr os demis mdulos pulifi presentes n lusul inlude de eD diionEse o mdulo pulihredfiF ortntoD onsiderndo o seguinte treho de digoD onde o mdulo g possui eleE mentos omprtilhdosF

IRR

gptulo RF erifio eutomti de roprieddes

gEwh %nX mdulo g possui elementos omprtilhdosF


1 2 3 4 5 6 7 8 9 10 11 12

module A include end A module B include end B module C include end C

publicA , publicB , publicC ;

publicB , publicC ;

publicC ;

. . .

y resultdo do re(nmento presentdo seguirF gEwh %n


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

module A include end A module B include end B module C include end C module

publicA , publicB , publicC , publicSharedC ;

publicC , publicSharedC ;

publicC , sharedC , publicSharedC ;

publicA // elementos pblicos de A end publicA publicB // elementos pblicos de B end publicB publicC // elementos pblicos de C end publicC sharedC // elementos compartilhados de C end sharedC

module

module

module

RFRF

wpemento de whn gEwhn % %

IRS

28 29 30 31

publicSharedC // elementos pblicos e compartilhados de C end publicSharedC

module

e rio de mdulos seprdos ontendo os elementos d lger preserv mesm semnti de wh qunto os elementos pliosD omprtilhdos e pliosEomE %n prtilhdosF y ojetivo destes re(nmentos trtr estes trs grupos de funes deE qudmenteF essimD formo do mdulo pel lusul inlude relizd igulmente pr todos os mdulos e d grupo reeer os uiddos neessrios qundo for feito o re(nmento pr xuwD presentdo n eo RFSF

RFRFS

e(nmento de expresses

es expresses seD ifEthenEelse e withD qundo preem omo ldo direito de um triuioD so re(nds pr su regr orrespondenteD relizndo triuio no orpo d regrF or exemploD onsiderndo o digo seguirF ixpreses

a :=

if

then

else

end ;

rnsformEse est triuio n seguinte regr ifEthenEelseF es demis expresses itds so trtds d mesm formF e(nmento

1 2 3 4 5

if

else

x then a := 1; a := 2;

end

gso s expresses prem omo gurdsD ou sejD so vlids omo expresso oolenD fzEse onjuno onforme o exemplo seguirF ixpresses oolens
q

1 2 3

if if

end

R;

then

else

end then

IRT

gptulo RF erifio eutomti de roprieddes

1 2 3

if

end

(g R;

and

p)

or ( not

and

e(nmento
q)

then

iste segundo trtmento somente possvel pois p e q so expresses oolensD e onsiderEse este prolem j resolvido n espei(o em wh %nF es expresses exists e ll soD por de(nioD expresses oolensF ems so re(nds relizndo expnso de seus elementosD onstruindoEse um frmul lgi prtir d expresso ontid em stisfyingF hd seguinte expresso exists e onsiderndo o domnio do tipo omo sendo {ID PD Q}F ixpresses
x > 0;

a :=

exists

x : T

satisfying

y re(nmento reliz expnso vi disjunoD ou onjuno no so d expresso

llD de tods s expresses possveis formds pel sustituio de xD onforme seguirF

a := (1 > 0)

or

(2 > 0)

or

e(nmento
(3 > 0);

e seguirD mostrdo um exemplo onde expresso onstitud de mis de um elementoD x e yF ixpresses


x > 0

b :=

exists

x : T, y : T

satisfying

and

y < 5;

1 2 3

b := (1 > 0 (2 > 0 (3 > 0

and and and

1 < 5) 1 < 5) 1 < 5)

or or or

e(nmento
(1 > 0 (2 > 0 (3 > 0

and and and

2 < 5) 2 < 5) 2 < 5)

or or or

(1 > 0 (2 > 0 (3 > 0

and and and

3 < 5) or 3 < 5) or 3 < 5);

RFRFT

e(nmento de regrs de trnsio

erevitur de termos
hd um regr onforme seguirD tod oorrni de v trod pel su de(nio

exp onsiderndo o esopo orrespondenteF

RFRF

wpemento de whn gEwhn % %

IRU

1 2

v := exp ; a := v ;

let

let

e(nmento
1

a := exp ;

istdo de exeuo
im wh %nD todo gente tem um triuto implito stteD do tipo tte que indi o estdo orrente do genteF y tipo prEde(nido tte equivlente tte a enum

{newD tiveD stoppedD lokedD destroyed} e represent os possveis estdos de


exeuo de um genteD serX

new E gente ridoD ms ind no disprdoY tive E gente em exeuo e no loquedoY stopped E gente que enerrou exeuo de su regr de trnsioD ms ind pto responder requisies de outros gentes e pode ser novmente disprdoY loked E gente em exeuoD ms loquedo esper de lgum mensgemY destroyed E gente destrudoD inpz t de responder requisies de outros gentes e de ser disprdo outr vezF
ediionlmenteD todo gente tem um funo self que retorn su identi(oF xo re(nmento de wh pr gEwh %n %nD funo self ( inlterdF y triuto implito stte re(ndo pr funo enumerd stte onde os vE lores possveis so newD tiveD stoppedD loked e destroyed e o vlor pdro newF essimD regr de trnsio envolvid pel ondio stte a tiveF e seguirD so mostrds de(nio d funo stte e ltero relizd n regr de trnsio em gEwh %nF
1 2 3 4 5 6 7

algebra :

state :

p u b l i c enum

{anew, active, stopped, blocked, destroyed} d e f a u l t anew;

transition: i f state =

active

then

RT ;

end

IRV

gptulo RF erifio eutomti de roprieddes

edministro de gentes
r dministrr um gente em wh %nD existem s regrs reteD dispthD stopD

destroy e returnF ods els podem ser ompreendids omo r sinttio pr triuies de vlores funo stteD que represent o estdo de exeuo de um
genteD omo mostrdo seguirF

rete gnt
1

agnt . s t a t e := anew ;

dispth gnt
1 2 3

if

end

agnt . s t a t e != blocked agnt . s t a t e := active;

and

agnt . s t a t e != destroyed

then

stop
1 2 3

i f s e l f . s t a t e != anew and s e l f . s t a t e s e l f . s t a t e := stopped; end

!= destroyed

then

destroy gnt
1

agnt . s t a t e := destroyed;

e rio de um gente relizd somente um vez e ntes de qulquer outr opeE ro sore stteF ists ondies so resolvids durnte espei(o em wh %nF y dispro de um gente somente pode ser relizdo se este j estiver ridoD e ind no exeutndoD ou se estiver prdoF e estiver em exeuoD o dispro no tem efeitoD pois o vlor de stte no se lterF m gente destrudo no pode voltr exeuoF xo so de estr loquedoD o gente se enontr em exeuo gurdndo um respostD por isso no se pode lterr o vlor de stte pr tive neste momentoF omente fz sentido prr exeuo de um gente se o mesmo estiver em exeuoD tivo ou loquedoF or (mD destruio de um gente pode ser relizd em qulquer irunstniF intoD ests regs so ssim re(ndsF xo so de gnt ser um list de gentesD deveEse gerr um regr pr d a agntF e regr return trtd durnte o

RFRF

wpemento de whn gEwhn % %

IRW

re(nmento ds stresF importnte ressltr que return somente utilizdo dentro do orpo de stres que ontm loopF

estres simples
y re(nmento de wh em gEwh deve sustituir s hmds de stres %n %n simplesD pertenentes o genteD pelo seu orpo de exeuoF m stro simples qundo no possui prmetrosD delres loisD loop e nem seqni de pssos de exeuo @stepAF essimD seu digo pode ser introduzido no lol de su hmdF gso stro possu um prEondioD deveEse gerr um mrdor indindo que ess prEondio deve ser stisfeit nquele momentoF gomo prEondio de stres so formulds om funes do mduloD no existe prolem de esopo e

expression ntes do loo que represent o orpo d oF y mesmo oorre pr psEondioD e ms se tornm sseres durnte s trnsiesF or exemploD o tione tem regr omo orpoD omo prE ondio e omo psEondioF
podeEse olor o termo ees imples
1 2 3 4 5

requireX

action actionA r e q u i r e P; ensure Q ;

end

R;

undo houver um hmd tioneD est ser sustitud pelo digo seguirF e(nmento
1 2 3
R;

require

P; Q;

ensure

estres
es stres que possuem prmetrosD delres lois ou seqni de regrs devem ser re(nds em um espei(o xuw seprdD e s demis regrs de re(nmento so plids normlmenteF gso hj lgum funo delrd no mduloD est deve ser reproduzid n nov espei(o xuwF e psEondio d o deve estr em desrit e indir o efeito n lger do mduloF essimD s lteres relizds pel o so preservds em seu ponto de

ISH

gptulo RF erifio eutomti de roprieddes

hmdF or exemploD o in demonstrd seguir tem o efeito de inrementr o vlor d funo pssd omo prmetro vi o rgumento xF e funo iniid om o vlor H @zeroA e regr de trnsio inrement onstntemente o seu vlorF ees
1 2 3 4 5 6 7 8 9 10 11 12

algebra : a : Int

:= 0;

abstractions : action inc ( out x : I n t ) i s ensure x = old x + 1; end


x := x + 1;

transition:

inc ( a );

odeEse notr que lusul ensureD que represent psEondio de inD indi o efeito n lgerF xo re(nmento pr gEwh %nD el sustitui o orpo d oD onde o prmetro x trodo pel funo F gom issoD utilizo de old no se fz mis neessriF elm dissoD lusul ensure preservdD d mesm form que foi feito pr es simplesD onforme mostrdo seguirF e(nmento
1 2 3

transition:

a := a + 1; ensure a :=

old

a + 1;

ees om loop no sero trtds neste trlho e podem ser relizdos trlhos futuros pr oter seu orreto re(nmentoF

egrs om seqni de pssos de exeuo @stepA


undo regr de trnsio for exeutd em mis de um psso @lusul stepAD deveEse relizr o re(nmento pr um regr ifEthen equivlenteF im wh no %n permitido ninhmento ds seqnisD ou sejD n presen de um lusul stepD erto de que somente existir um seqniF y mesmo oorre em regrs om mis de um psso dentro de esD e por serem es no simples tero um trtmento dequdo no re(nmento de form no violr ess restrioF

RFRF

wpemento de whn gEwhn % %

ISI

intoD pr trnsformo de wh em gEwh %n %nD riEse um funo step do tipo intervloD que tem seus limites de(nidos de ordo om o nmero de pssos possveis e o vlor iniil IF essimD o onjunto de regrs que erm exeutds em um determindo psso iD pss ser exeutdo so ondio de step possuir o vlor iF im wh %nD next utilizdo pr tulizr o vlor de step indiretmenteD uE xilindo no ontrole de visiiliddeF im gEwh isso no mis neessrioD ento %n sempre que preer next omo regr em um pssoD el sustitud pel tulizo explit d funo step F y limite inferior do intervlo step D por de(nioD IF gonsidere o limite superior omo sendo nD iniilmente ID o onjunto de pssos de(nidos e funo mx@xDyDnA que retorn o mior vlor entre xD y e zF intoD pr tod lusul step wh %n
1

step

x : Rx ;

next

:= y ;

gerEse o treho em gEwh %n gEwh %n


1

i f step

= x

then

Rx ;

step

:= y ;

end

y re(nmento deve ind relizr os seguintes lulosD esrits em notes mE temtiD onde o limite superior n de(nido tomndoEse o mior vlor entre o psso

xD triuio y e o prprio nF y onjunto resido do psso x vlidoF

n max (x , y, n) X X + {x}
x usni de tulizo next wh %n
1

step

x : Rx ;

gerEse o seguinte treho em gEwh %n gEwh %n


1

i f step

= x

then

Rx ;

end

ISP

gptulo RF erifio eutomti de roprieddes

es operes relizds so s mesms om diferen que no existe yD ento n reee o mior vlor entre o psso x e o prprio nF

n max (x , 0 , n) X X + {x}
gom issoD tods s regrs de tulizo @x A dos pssos de(nidos so trnsformE ds em exeues so ondio de stepF gso no exist tulizo vi nextD nd feito por enquntoF eo (nl dest etpD o limite superior do intervlo step ddo por n e o onjunto ontm todos os pssos de(nidosF possvel omitir pssosD por exemplo de(neEse o psso I e depois o QD omitindoEse ssim o psso PF hdo o intervlo de I nD o onjunto y formdo pelos pssos omitidosD queles no presentes em F

O {1..n} X
intoD pr todo o OD riEse um regr ondiionl d mesm form que foi feito pr os pssos de(nidosF ormD ni regr presente tulizo de step pr o vlor seguinteD omo mostr o digo seguirD onde o um elemento de yF gEwh %n
1

i f step

= o

then step

:=

step

+ 1;

end

or (mD tods s regrs ondiionis gerds que no ontm next devem ser resids d regr de tulizo step Xa step C IYF ormD possvel que regr de trnsio sej repetidD isso oorre qundo el estiver mrd om trnsition ou

loopF xeste soD o ltimo pssoD psso nD deve tulizr step pr ID ms isso somente
feito se no houver outr tulizo j de(nidF iss ltim etp permite que step tinj o vlor nCI qundo regr de trnsio no demrd omo repetioD pois no psso n ter tulizo step Xa step C IYF ortntoD o limite superior do intervlo de step em gEwh deve ser lterdo pr %n

nCIF
hess formD orrespondni om semnti de step em wh preservdF %n e seqni se inii no psso I e tod trnsio tuliz o vlor de step om o vlor de nextD e este sempre inrementdo n usni de um tulizo explitF y exemplo seguir mostr plio dests regrs de re(nmentoF hdos os pssos

RFRF

wpemento de whn gEwhn % %

ISQ

equenimento de egr
1 2 3 4 5 6 7 8
. . . . .

transition: step 1: R1 ; step 3: R3 ; next step 4: R4 ; next step 5: R5 ; next

:= 4; := 8; := 3;

. . . . .

e primeir etp ger o seguinte treho de digo e(nmentoX etp I


1 .. n ;

1 2 3 4 5 6 7 8 9 10

algebra step : initial step :=

1; 1 3 4 5

. . . . . i f step = i f step = i f step = i f step =

then then then then

R1 ; R3 ; R4 ; R5 ;

step step step

:= 4; := 8; := 3;

end end end end

e prtir dissoD o re(nmento lul os seguintes vlores pr n e

n=8 X = {1, 3, 4, 5}
intoD determinEse o onjunto y de pssos omitidos

O = {2, 6, 7, 8}
im seguidD o digo resido ds regrs ondiionis orrespondentes os pssos omitidos om tulizo de step pr o psso seguinteF xote que no psso VD possvel tingir o vlor WD entoD por segurnD o intervlo de step deve ser um unidde mior que o n de(nidoF or (mD os pssos que no ontm tulizes de

step so residos d regr step Xa step C ID omo o so do primeiro pssoF

ISR

gptulo RF erifio eutomti de roprieddes

e(nmentoX etp P
1 2 3 4 5 6 7 8 9 10 11

. . . . . i f step = i f step = i f step = i f step = i f step = i f step = i f step = i f step =

algebra step :

1 .. 9; 1 2 3 4 5 6 7 8

then then then then then then then then

R1 ; R3 ; R4 ; R5 ;

step step step step step step step step

:= := := := := := := :=

2; 3; 4; 8; 3; 7; 8; 9;

end end end end end end end end

e regr de trnsio em wh no for repetidD este o resultdo (nlF gso %n ontrrioD deveEse lterr o psso V pr reiniilizr step e reomer exeutr s regrsF essim temEse e(nmentoX etp Q
1 2 3 4 5 6 7 8 9 10 11

. . . . . i f step = i f step = i f step = i f step = i f step = i f step = i f step = i f step =

algebra step :

1 .. 9; 1 2 3 4 5 6 7 8

then then then then then then then then

R1 ; R3 ; R4 ; R5 ;

step step step step step step step step

:= := := := := := := :=

2; 3; 4; 8; 6; 7; 8; 1;

end end end end end end end end

isse re(nmento preserv semnti de regrs em mltiplos pssos de(nid em wh %nF possvel relizr um trtmento no digo (nl gerdo pr (ns de otiE mizesF or exemploD os pssos PD T e U nd fzem e poderim ser exludos e s tulizes pr eles lterd pr o psso seguinteF ormD isso no prte deste trlhoD podendo ser futurmente relizdoF h form presentdD preiso pens grntir que nos pssos omissos pens sej tulizd funo step e nenhum outr mis do voulrio do mduloF

egr

choose

r elementos om tipos siosD omo inteiro e oolenoD regr hoose pode ser re(nd pr um funo externD onde o tipo o mesmo do elementoD e expresso

RFRF

wpemento de whn gEwhn % %

ISS

em stisfying se trnsform em um invrinte do sistemF

1 2 3

choose i : I n t satisfying i > do f ( i ) := i *

hoose
0 and i < 10 2;

y exemplo im re(ndo d seguinte formD onsiderndo x omo ndie d regr

hooseD de(nido pel ordem em que form enontrdsF


e(nmento
1 2 3 4 5 6 7 8 9 10 11

algebra :

// funo que representa a regra choose e x t e r n a l iChoose_x : I n t ; . . . transition: // regra de transio de choose f ( iChoose_x ) := iChoose_x * 2; . . . invariant : // invariante a partir de satisfying iChoose_x > 0 and iChoose_x < 10;

egr

with

e regr with pode ser utilizd em dois momentosD pr elementos de um vlor omE postoD omo listD tupl ou nodo de rvoreD ou ento pr inspeionr o tipo de um unio disjuntF gonsiderndo pens o segundo soD re(nEse with pr um regr ondiionlD onde d ifEthen orresponde um lusulF y elemento ser ompE rdo o ontroldor do tipo d unio disjunt e regr ser relizd tem o pdro sustitudo pel funo orrespondenteD de ordo om o tipoF

with
1 2 3 4 5 6 7
a : T1 | T2 ; . . . with a as a1 : T1 = > f := a1 ; as a2 : T2 = > g := a2 ; otherwise = > f := 0; g := 0;

end

IST

gptulo RF erifio eutomti de roprieddes

y exemplo im re(ndo pr seguinte regr ondiionlF e(nmento


1 2 3 4 5 6 7 8 9 10 11 12 13
// refinamento da unio disjunta aT1 : T1 ; aT2 : T2 ; aType : I n t ; // refinamento da regra with i f aType = T1 . type then f := aT1 ; e l s e i f aType = T2 . type then g := aT2 ;

else

end

f := 0; g := 0;

egr

forall

e regr forll expndid rindoEse um regr ondiionl pr d possvel vlor do domnio de seus elementos e ondiiond expresso ontid em stisfyingF nto regr qunto expresso tem os elementos sustitudos pelo vlor otido n expnsoF

1 2 3

f o r a l l x : 1..3 , s a t i s f y i n g x %2 = do f (x , y ) := x +

forll
y : 4..6 1 y;

xo exemplo imD o elemento x pertene o domnio {ID PD Q} e y o {RD SD T}F e expresso de stisfying restringe pens os vlores de xF e seguirD presentEse um re(nmento pr est regrF e(nmento
1 2 3 4 5 6 7 8
// x = 1 e i f 1%2 = i f 1%2 = i f 1%2 = // x = 2 e i f 2%2 = i f 2%2 = i f 2%2 = valores 1 then 1 then 1 then valores 1 then 1 then 1 then de y f (1 ,4) f (1 ,5) f (1 ,6) de y f (2 ,4) f (2 ,5) f (2 ,6) := 1 + 4; := 1 + 5; := 1 + 6; := 2 + 4; := 2 + 5; := 2 + 6;

end end end end end end

RFRF

wpemento de whn gEwhn % %

ISU

9 10 11 12

// x = 3 e i f 3%2 = i f 3%2 = i f 3%2 =

valores 1 then 1 then 1 then

de y f (3 ,4) := 3 + 4; f (3 ,5) := 3 + 5; f (3 ,6) := 3 + 6;

end end end

egr

case

e regr se diretmente trnsformd em um regr ifEthenEelse equivlenteD onde omprEse expresso eD onforme o digo seguirD om s expresses de d lusulD e exeutEse regr de ordo om est vlioF e lusul otherwiseD se existirD orresponde o else do ltimo omndo ifEthenF

1 2 3 4 5 6

case of of end

se

e e1 = > R1 ; e2 = > R2 ; . . . otherwise = > Rk ;

y digo de exemplo de regr se mostrdo re(ndo n seguinte regr ondiiE onlF

1 2 3 4

. . .

if e else else

= e1

if

e = e2

then

ifEthenEelse
R1 ;

then

R2 ;

Rk ;

egr

if-then-else

es regrs do tipo ifEthenEelse devem ser re(nds pr regrs ondiionis do tipo

ifEthen @sem else AF ortntoD dd um regr ifEthenEelse

if

then

RLT ;

else

RLF ;

end

onde v e vp so lists de regrs simples ou outr regr ondiionlD deveEse seprr s dus prtes gerndo dus regrs ondiionis d seguinte formX

ISV

gptulo RF erifio eutomti de roprieddes

ifEthen list de regrs


1 2

if i f not

C C

then then

RLT ; RLF ;

end end

osteriormenteD riEse um regr ifEthen pr d v e p vpF upondo v om n regrs e vp om mD temEse

ifEthen simples
1 2 3 4 5 6 7
. . . . . if C then RT_n ;

if

then

RT_1 ;

end end end end

i f not C then RF_1 ; . . . . . i f not C then RF_m ;

egrs

if-then

ninhds

e existir lgum regr ondiionl em ou pD deveEse eliminr o ninhmento fzendo onjuno ds ondiesD omo mostr o exemplo

ifEthen ninhdo
1 2 3

then i f C2 then end


C1

if

R;

end

ifEthen sem ninhmento


1 2 3

if

end

C1 R;

and

C2

then

RFS

wpemento de gEwh xuw %n

hevido simpliidde de gEwh trnsformo pr xuw quse diretF o %nD neessrios o re(nmento dos tiposD presentndo um nov estrutur e preservndo s operesD e do re(nmento d regr de trnsioD onforme presentdos seguirF

RFSF

wpemento de gEwhn xuw %

ISW

RFSFI

e(nmento de tipos

ys tipos em wh %nX relD stringD listD nodo rvore e stro de regrsD no form re(ndos pr gEwh em nenhum dos tipos qui presentdosF iste um trlho %n ind ser relizdoF yutr possiilidde preservElos em gEwh e presentr %n um re(nmento pr xuwF ys tipos serem re(ndos soX

sntY ghrY foolY sntervloY inumeroY egenteF


elguns tipos so re(ndos em estruturs ontendo seu vlor e um vrivel que inE di o tipoD possiilitndo su inspeoF yutrosD que existem em xuwD so pens representdos n sintxe orretF e rio dest estrutur relizd por mdulos que pens possuem delres de vriveisD portnto no exeutm nenhum regr de trnsio e so ompreendidos pens omo stro de estrutursF y tipo genteD devido sus peuliriddes de formo prtir de outros mdulosD presentdo seprdmente n eo RFSFPF ys tipos snt e ghr so re(ndos em termos de intervlos onforme seguirF y intervlo de ghr orresponde os possveis vlores d tel egssF r sntD o intervlo de(nido entre EPFIRUFRVQFTRV e PFIRUFRVQFTRUD onforme de(nio de wh fsfHSD gptulo PF %n

snt
1 2 3 4
MODULE Int VAR value : -2147483648 .. type : 1; 2147483647;

ITH

gptulo RF erifio eutomti de roprieddes

ghr
1 2 3 4
MODULE Char VAR value : 0 .. 255; type : 2;

ys tipos oolenoD intervlo e enumero existem d mesm form em xuwF y tipo fool representdo pel estrutur d mesm form que snt e ghrF ys demis so representdos om o mesmo tipo em xuwD sendo neessrio pens oloElos n sintxe orretF

fool
1 2 3 4
MODULE Bool VAR value : boolean; type : 2;

sntervlo
1

variable :

inf ..

sup;

inumero
1

variable :

{e1, e2 ...

en};

RFSFP

e(nmento de gentes

y tipo gente re(ndo em um instni de mdulo em xuwD porm formo d lger do mdulo deve ser onsiderd neste momentoF essimD d mdulo de gEwh trnsformdo em um mdulo em xuwF %n r formo do voulrioD neessrio trtr inluso de elementos plios e omprtilhdosF xo so de elementos pliosD todo mdulo que inlui pulie resido d lusul se pulieF y omndo se de xuw opi s vriveis de um mdulo em outroF xo so dos elementos omprtilhdosD os mdulos que inluem shrede ou puE

lihrede so ridos om um prmetro pr d funo omprtilhd existente nestes dois mdulosD e isso se repete pr tods s demis inluses relizdsF essimD os gentes dos mdulos que inluem eD onforme modeldo em wh %nD omprtilhm

RFSF

wpemento de gEwhn xuw %

ITI

s funes puli shred e pens os gentes de e iro omprtilhr s funes shred e puli shredF es vriveis rids omo prmetro de mdulosD representndo s funes omE prtilhdsD tero um omportmento no determinstio d trnsio de estdoF essimD possvel simulr o omprtilhmento de informesF heveEse ressltr queD om ess ordgemD ondio de orrid no veri(d em xuwD devendo est ser grntid previmente pelo desenvolvedorF gonsiderndo o exemplo em gEwh dos mdulos e e f seguirD mos inluem %n

pulie e pulihredeD e somente e inlui shredeF sniilmente em wh %nD o mdulo e tem s funes pliD omprtilhd e pliD e omo omprtilhdF
wdulos em gEwh %n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

module A include end A module B include end B module

publicA , publicSharedA , sharedA ;

publicA , publicSharedA ;

publicA a : Int ; end publicA publicSharedA b : Int ; end publicSharedA sharedA c : Int ; end sharedA

module

module

odeEseD entoD relizr o seguinte re(nmento pr xuwD sendo um vrivel omprtilhd entre gentes de e e omprtilhd entre gentes de e e de fF wdulos em xuw
1 MODULE A(b, c) 2 ISA publicA 3 4 MODULE B(b) 5 ISA publicA 6

ITP

gptulo RF erifio eutomti de roprieddes

7 MODULE publicA 8 VAR a : Int; 9 10 MODULE publicSharedA 11 VAR b : Int; 12 13 MODULE sharedA 14 VAR c : Int;

or (mD o mdulo prinipl rido om se n mquin de de(nio de gE wh %nD que mesm de wh %nF intoD pr o digo seguir wquin de de(nio
1 2 3

create agent of end mX

machine mX

mX ;

o mdulo min em xuw de(nido d seguinte formF grimEse os gentes que tero sus regrsD loo esqxD disprdos em exeuoF wdulo prinipl
1 2

MODULE main agent : mX;

RFSFQ

e(nmento d regr de trnsio

rimeirmenteD iniilizEse d vrivel de ordo om o seu estdo iniil de(nido em gEwh %nF gso um funo no tenh sido iniilizdD triuiEse em xuw seu vlor pdro de ordo om o domnioF e exeo no so de um funo externD onde nd feitoD ssim podeEse oter o omportmento no determinstioF intoD pr d vrivel delrd em eD riEse em esqx o seguinte digoF sniilizo em xuw
1 2

ASSIGN init(variable) := initialValue;

e regr de trnsio em gEwh formd de um onjunto de regrs do tipo %n

if g then R

RFSF

wpemento de gEwhn xuw %

ITQ

onde um regr de triuio simplesD ou sejD pens um vrivel tulizd de d vezF egrupmEse ento tods s regrs ondiionis onde possui o mesmo ldo esquerdo e riEse um regr se em xuw om s respetivs gurdsF r evitr o omportmento no determinstioD que no desejdoD ltim lusul do

se onstrud om gurd I @verddeirA e triuiEse o mesmo vlorF essimD se nenhum outr ondio nterior for stisfeitD vrivel no se lterF s funes externs no so triudos vlores em xuw pr poder ter o efeito no determiE nstioF y exemplo seguir mostr o re(nmento de um suposto onjunto de regrs onde preem s funes e F
gEwh %n
1 2 3 4 5 6
. . .

transition: i f g1 then i f g2 then i f g3 then i f g4 then

a a b b

:= := := :=

x; y; w; z;

end end end end

e(nmento pr xuw
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
. . . ASSIGN init(a) := 0;  valor padro init(b) := 2;  valor em initial state next(a) := case g1 : x; g2 : y; 1 : a;  preserva valor de a caso g1 e g2 sejam falsos esac; next(b) := case g3 : w; g4 : z; 1 : b;  preserva valor de b caso g3 e g4 sejam falsos esac;

e existir lgum regr que indi prEondio de um o @requireAD riEse um propriedde que veri( se sempre que ondio g oorrerD prEondio dever ser stisfeitF essimD ser possvel veri(rD vi xuwD se prEondio de um o

ITR

gptulo RF erifio eutomti de roprieddes

stisfeit no momento de su hmdF eps rio d proprieddeD regr desrtd e no vi pr o loo esqxF essimD dd regr rEondio de eo
1

if

then r e q u i r e

P;

end

ser rid propriedde pr xuw ropriedde


1

SPEC AG(C -> P);

r lusul de ps ondio de um oD deveEse gerr seguinte propriedde ropriedde


1

LTLSPEC G(C -> X Q);

que signi( sempre que ondio g for stisfeitD ou sej sempre que um o retornr de su exeuoD em qulquer estdo imeditmente seguinteD ondio deve ser stisfeitF r se provr que est propriedde vlidD deveEse mostrr que ser verdde no prximo estdoF gso regr de trnsio ontenh mltiplos pssos e o psso seguinte sej um omissoD ou sejD psso no delrdo expliitmente n regr de trnsioD nd feito n lger lm de lterr o vlor de stepF into se for verdde no psso seguinte @o omissoAD tmm ser verdde no seguinte do omissoF vemrndoEse que semnti de step om pssos omissos no fzer nd nestes pssos e o usurio deve ter onsini dissoF elm dissoD deveEse mostrr que um trnsio de estdo em wh tem orresE %n pondni um pr um em gEwh %nD isso signi( que no existem estdos intermeE diriosF ssso fil de ser pereidoD um vez que plni(o de regrs pens reliz onjuno ds ondies existentes em regrs ifEthenEelse ninhds e regrs seF e simpli(o de termos pens sustitui regr de tulizo por um onjunto de tulizes ondiionds orrespondenteF im mos os sosD no so ridos estdos intermediriosD preservndo vlidde d propriedde imF

RFSFR

roprieddes e invrintes

es proprieddes e invrintes de(nidos no wodelo fsio e s proprieddes extrds ds regrs de re(nmento so diretmente mpedos pr os loos orrespondentes

RFTF

gonluses

ITS

em xuwF r proprieddesD preiso nlisr su nturez pr de(nir em qul de(nio ser inludD igD vvig ou vigF r os invrintesD o mE pemento direto pr d expressoD preedid de sxeF gompletEse ssim espei(o xuw do wodelo fsioF

RFT

gonluses

poi mostrdo o re(nmento de wh pr xuwD otendo entrd ser veriE %n (dD onde onferemEse s proprieddes de(nids de ordo om o wodelo fsioD representdo pel espei(o xuw otidF y resultdo (nl pode presentr um sistem orretoD ou entoD flh em um ou mis proprieddesF xeste segundo soD se for possvelD mostrEse um exemplo de exeuo pr d propriedde no grntidF essimD lolizo de erros se torn um tref mis filF es orrees so relizds no wodelo fsio e deve ser relizdo todo o proesso de re(nmento t ser novmente possvel relizr veri(oF gomo o proesso utomtio e tods s informes neessris esto no wodelo fsioD o digo exeE utvel e veri(o podem ser sempre otidos prtir do wtodo de e(nmento wh %nF elm dissoD os ddos forneidos pel exeuo xuw fzem prte d douE mentoD servindo omo omprovnte d orret espei(o e podem ser utilizdos pr futurs nlises do sistemF eri(o de wodelos @wodel gheking A um mtodo que permite veri(r uE tomtimente proprieddes de um sistemF y veri(dor xuw utiliz lgoritmos simlios sedos em yfhh @yrdered finry heision higrm A e desreve um lingugem pr espei(o de sistems de trnsio de estdos onde os estdos so (nitosF m rtersti notvel do mtodo eri(o de wodelos filidde de lidr om o grnde nmero de estdos possveis que um sistem pode lnrF im xuwD s proprieddes de um sistem podem ser de(nids em frmuls gv @gomputtionl ree vogi A ou vv @vogil emporl vogi AF e vntgem poder relizr veri(o no pelo ompnhmento dos estdosD ms sim por pergunts que so feits o modeloF gso um ds proprieddes flheD xuw pode forneer um ontrEexemploD provendo ssim um possiilidde de depuroF r tods s onstrues de wh %nD om exeo de es om loopD foi possE vel oter um represento equivlente em xuwD inluindo funes de ontroles implits lingugemD omo funo stte e stepF poi possvel tmm preservr modulridde e omunio entre os gentesD ssim omo exeuo ssnronF ormD pr lguns tipos de wh %nD omo lists e tipo stro de regrsD no onseguiuEse enontrr um represento em xuwF gom ordgem dotd

ITT

gptulo RF erifio eutomti de roprieddes

pr funes omprtilhdsD no possvel veri(r ondio de orridD (ndo rgo do desenvolvedorF e primeir di(uldde no re(nmento pr xuw foi soluionr o prolem de funes om ridde mior que zeroD onde prourouEse lgums lterntivs diferentes ds presentds por uirsten inHID porm nenhum tingiu um resultdo stisftE rioF intoD prevleeu mesm soluo presentd por elD om o mesmo prolem de gerr exploso de estdos no fhh o utilizr regr de restrio de justeF imor um veri(dor de modelos sej pz de trtr exploso de estdos de form e(ienteD reditEse que lguns dos prolems enontrdos durnte vlioD gptulo SD podem estr ligdos exploso de estdos gerdF yutr di(uldde foi modelr omunio e exeuo entre os gentesD priniplE mente qunto vriveis omprtilhdsF wh de(ne exeuo de gentes omo %n sendo ssnron e prlelD enqunto em xuw ests dus so possveis ms no o mesmo tempoF e melhor lterntiv foi exeuo ssnron por dois motivosX primeiroD de ordo om frger fHQD nenhum miente ew present exeuo ssnronD sendo ssimD wh o nio miente de exeuo ew snrono e %n ssnronoD e pode ser veri(doY segundoD o prejuzo seri minimizdoD pois ni perd seri veri(o de essos onorrentes vriveis omprtilhdsD j que s demis omunies so relizds vi tros de mensgens e wh de(nid om %n rterstis modulresF eo relizr vlioD mostrd no gptulo SD pereeuE se que somente seri possvel oter um respost d veri(o se os mdulos fossem veri(dos seprdmenteD simulndo omunioF i ess simulo somente foi possvel devido esolh de exeuo ssnron em xuwF y re(nmento de wh pr xuw tem omo enefio prover veri(o %n semiEutomti o wtodo de e(nmento wh %nF gomo s regrs so pliE ds utomtimenteD o proesso de veri(o em ww tende ser trnsprente pr o desenvolvedorF yutro enefio foi de(nio de um lingugem intermediE riD goreEwh %n@gEwh %nAD que mis simples que wh %nF essimD trlhos de desenvolvimento de ompildores e expnso d lingugem podem ser mis filmente relizdosF y resultdo otido om exeuo de xuw prov um reurso importnte pr depurr espei(o desrit em wwF m possvel ontrEexemplo pode ser utiliE zdo omo entrd de ddos pr simulr um exeuo no wodelo fsio e filitr identi(o do prolemF iste ind um proesso mnulD ms trlhos futuros podem ser relizdos pr tornr est tref mis intertiv e utomtiF

gptulo S evlio do wtodo roposto


r (ns de vlio do wtodo de e(nmento wh %nD presentEse neste ptulo espei(o de um sistem pr ontrole de um ldeir vporF y ojetivo vlir vingugem de wodelgem wh qunto o poder de expressoD legiilidde %n e sepro dos nveis de stroF o modelds rterstis omo inluso de novos omportmentos pelo gontrole qlolD omunio entre gentesD de(nio de proprieddes do sistem e no determinismoF unto plio de regrs e veri(o utomtiD ser possvel vlir oteno utomti de proprieddesD trnsprni pr o desenvolvedor e resultdos d veri(oF

SFI

y rolem d gldeir por

y prolem tem foiler erWTD trtdo neste ptuloD foi desrito por tenE ymond eril em gosto de IWWR omo sugesto de trlho pr os prtiipntes do hgstuhl weeting wethods for emntis nd pei(tionD que foi relizdo em tunho de IWWSF poi espei(do o funionmento de um progrm de ontrole de nvel de gu dentro de um ldeir vporF ys prtiipntes deverim presentr um de(nio em lto nvel e o orreto re(nmento pr um digo exeutvelF m ldeir deve trlhr om o nvel de gu dentro de limites onsiderdos normis de funionmento e nun ultrpssr os nveis de riso de(nidosF m proE lem om relo esses ftos pode usr srios dnos ldeirF eril desreve iniilmente o miente fsio existente no qul o progrm deve intergirF gd uniE dde fsi presentdD ssim omo sus restries e ondies de funionmentoF o de(nids lgums onstntes e vriveis que devem ser veri(ds e ontrolds o longo do funionmento do sistemF im seguidD eril presentD de form gerlD omo o progrm se omuni om s uniddes fsis e quis so s fses de omunioF osteriormenteD so detlhdos ITU

ITV

gptulo SF evlio do wtodo roposto

os ino modos de opero que o progrm pode ssumirF e espei(o determin os tipos de mensgens envids e reeids pelo progrm eD (nlmenteD desreve deteo de erros nos equipmentosF im efvWTD efvWSD form presentds PQ solues ordndo diferentes mtoE dos de re(nmentoF m dels foi propost por frger ffh+ WTD onde foi presentdo um modelo em lto nvel @wodelo fsioA fundmentdo n lger ivolutivF gomo lingugem pr o wodelo fsio foi utilizdo o modelo ew e presentouEse o re(nE mento t oteno do digo exeutvel em gCCF iste ptulo present de(nio do wodelo fsioD esrito em vingugem de wodelgem wh %nD pr o prolem d ldeir vporF intoD pliEse o wE todo de e(nmento wh otendo o digo wh orrespondente e relizndo %n %n veri(o do sistemF e espei(o de eril permiteD em lguns momentosD divergnis ns interpretesF r melhor vlido e presento do wtodo de e(nmento wh %nD muits ds deises form tomds seguindo soluo presenE td em ffh+ WTD j que mos so derivdos do modelo ew de re(nmentoF

SFP

niddes psis

y progrm de ontrole d ldeir vpor deve se relionr om lgums uniddes fsisD que form listds omo sendoX

ldeir vporY unidde medidor de guY unidde medidor de vporY qutro oms de gu pr ldeirY qutro ontroldores de om @um pr d omAY operdor de mesY sistem de mensgemF
y operdor de mes no fz prte dess modelgemD ms so onsiderds funes provinds do miente externo que so ionds pelo operdor de mesF y sistem de mensgemD omo ser vistoD modeldo om omunio entre gentes relizds por servios disponiilizdosF ortntoD erros de mensgens no so onsiderdos nest de(nioF

SFPF

niddes psis

ITW

e ldeir vpor onstitud de um vlvul pr liero de guD que utilizd pr esvzir ldeir pens n fse iniilF e pidde totl de gu C indid em litrosD e M1 e M2 so os limites inferiores e superioresD respetivmenteD tmm em litrosF e o nvel de gu estiver ixo de M1 om liero de vpor sem o devido suprimento de guD ou se o nvel estiver im de M2 om s oms forneendo gu e pou liero de vporD ldeir pode estr em perigo ps ino segundosF o estipuldos os nveis inferior N1 e superior N2 pr o funionmento normlD que devem ser mntidos durnte o funionmentoF hevemEse preservr s ondies M1 < N1 e M2 > N2 F e quntidde mxim W de vpor sindo d ldeir medid em litrosGseg e o grdiente de umento U1 e diminuio U2 de vpor ddo em litrosGsegGsegF e el SFI resume s vriveis e onstntes do sistem de ontrole d ldeir vporF

nidde
g wI wP xI xP I P q v
litros litros litros litros litros litrosGseg litrosGsegGseg litrosGsegGseg litros litrosGseg

gomentrios untidde de gu n ldeir


gpidde mxim vimite mnimo de riso vimite mximo de riso vimite mnimo norml vimite mximo norml

viero de vpor

untidde mxim qrdiente mximo de umento qrdiente mximo de diminuio

lores orrentes

untidde de gu n ldeir untidde de vpor dissipdo

el SFIX esumo de vriveis e onstntesF e ldeir vpor formd por ests uniddes fsis que possuem omunio diret om o sistem de ontroleF ortntoD pr (ns de simpliiddeD modelgem d ldeir no explitD e qundo for neessrio mesm representd por um funo no sistem de ontrole d ldeir vporF e seguirD so presentdos d unidde fsiD o ontroldor pr uniddes fsis e o progrm ontroldor d ldeir vporF

SFPFI

niddes de wedid

e unidde medidor de gu @wter level mesuring unit E wm A mede quntidde

q em litros de gu n ldeir em um determindo instnteD ssim omo unidde medidor de vpor @stem level mesuring unit E sm A mede quntidde u de vpor

IUH

gptulo SF evlio do wtodo roposto

que si d ldeir em litrosGsegF ists dus uniddes podem ser modelds de form semelhnteF essimD o ipo estrto de hdos presentdo em pigur SFI mostr o identi(dor id pr diferenir s uniddes de medids e o vlor lido mesureF x interfeD presentmEse os servios etsdD pr triuir o orreto identi(dorD e

etfgD pr indir o sistem de ontrole d ldeirF qetirror prov em e situo de erro d uniddeF or (mD o pedido pr unidde prr seu funionmento pode ser relizdo om topF
MeasuringUnit algebra: id measure SetId(i) SetSBC(sbc) GetError(e) Stop

pigur SFIX eh wesuring nitF gd uniddeD em um funionmento normlD mnd onstntemente um mensE gem pr o progrm de ontrole ontendo o vlor qD ou vD lidoF x presen de lgum erroD unidde ( gurdndo o reproF iste omportmento pode ser onferido n pigur SFP@A or questes de simpliiddeD erros nests uniddes so simuldosF gomo um erro pode onteer qulquer momentoD est simulo relizd no gontrole qlolD onforme pigur SFP@AF elm dissoD relizd veri(o se tods s funes de

wesuring nit form orretmente iniilizdsD so flsoD unidde permnee no estdo de defeitoF
SendMssg

I
Start normal
current_state started F SimulateError

F error T not error defective

SetErrorTrue

defective

(a) DTE Measuring

Unit.

(b) Controle Global

Measuring Unit.

pigur SFPX wesuring nit elm ds dus funes que preem no eh de wesuring nitD existem outrs

SFPF

niddes psis

IUI

dusD errorD pr ontrole de erroD e system que refereni o sistem de ontrole d ldeirF or (mD de(neEse funo que veri( se s demis form orretmente iniilizdsF essimD lger pode ser de(nid onforme seguirF qlossrio X lger
1 2 3 4 5
id measure error system

derived

: SBC . MeasuringId ; : Int ; : Bool ; : SBC ; started : Bool := system !=

undef and

id > 0;

e funo strted poderi desrever um invrinte no mdulo wesuringnitD ms isso poderi provor interrupo do progrm em so de strted ser flsoF rtd no gontrole qlolD veri(o de system e id relizd om o ojetivo de ontornr o prolem durnte exeuo do sistemF e o trt tem o ojetivo de iniilizr s funes mesure e error d unidde medidorF es funes id e system devem ser on(gurds ntes d exeuo d regr de trnsioD utilizndo os servios etsd e etfgF gomo foi mostrdo no gontrole qlolD iniilizo inorret dests funes olo unidde medidor em estdo de defeitoF e o endwssg envi pr o progrm de ontrole d ldeirD systemD informo lid e qul uniddeD pssndo o seu idF e simulo de erro feit triuindoEse um vlorD verddeiro ou flsoD no deterministimente funo errorF

qetirror um servio que prov informo em e d funo errorF or (mD top interrompe exeuo d uniddeF y qlossrio seguir present ests de(niesF
qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

action end

Start i s measure := 0; error := f a l s e ; SendMssg i s system . RecieveMeasuring ( id , measure );

action end

action SimulateError i s choose e : Bool do error := e ; end end

IUP
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

gptulo SF evlio do wtodo roposto

action end

SetErrorTrue error := true ;

is

p u b l i c action end
id := i ;

SetId ( i n i : SBC . MeasuringId )

is

p u b l i c action end

SetSBC ( i n sbc : SBC ) system := sbc ;

is

p u b l i c action end

e := error ;

GetError ( out e :

Bool ) i s

p u b l i c action stop ; end

Stop

is

SFPFP

lvul

e vlvulD mdulo lveD d ldeir vpor tem omportmento semelhnte ds uniddes de medidsF y eh pr vlvul presentdo n pigur SFQ e mostr funo openedD que indi se vlvul est ou no ertD e os servios que disponiilizD sendo os pedidos pr rir e fehrD referni pr o sistem de ontrole d ldeirD oteno do estdo de erro e o pedido de interrupo d exeuo d vlvulF elm dissoD de(ne os servios pr rir e fehr vlvulD orrespondendo s mensgens envids pelo progrm de ontroleF
Valve algebra: opened Open Close SetSBC(sbc) GetError(e) Stop

pigur SFQX eh lveF gomo podeEse veri(r ns pigurs SFR@A e SFR@AD vlvul tem o omportmento semelhnte s uniddes de medidF e diferen est n lger e n mensgem envid

SFPF

niddes psis

IUQ

o sistemD que no so d vlvulD envi informo se est ert ou fehdF essimD so de(nids lger e estres pr lveF
SendMssg

I
Start normal
current_state started F SimulateError

F error T not error defective

SetErrorTrue

defective

(a) DTE Valve.

(b) Controle Global

Valve.

pigur SFRX lve

qlossrio X lger
1 2 3 4
opened : Bool ; error : Bool ; system : SBC ; derived started :

Bool

:= system !=

undef ;

qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

action end

Start i s opened := f a l s e ; error := f a l s e ; SendMssg i s system . RecieveValve ( opened );

action end

action SimulateError i s choose e : Bool do error := e ; end end action end


SetErrorTrue error := true ;

is

IUR
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

gptulo SF evlio do wtodo roposto

p u b l i c action Open i s opened := true ; end p u b l i c action Close i s opened := f a l s e ; end p u b l i c action end
SetSBC ( i n sbc : SBC ) system := sbc ;

is

p u b l i c action end

e := error ;

GetError ( out e :

Bool ) i s

p u b l i c action stop ; end

Stop

is

SFPFQ

foms

gd um ds qutro oms de gu d ldeir possui su pidde P medid em litrosGseg e vzo orrente p tmm em litrosGsegF y ontroldor trl de d om indi se existe ou no irulo de gu no sentido omEldeirF elm dos trdiionis servios de identi(o etfg do sistemD oteno do estdo de erro qerirror e requisio de prd topD so disponiilizdos os servios de ligr e desligr omD urnyn e urny'D respetivmenteF ods esss informes podem ser onferids no eh de ump representdo n pigur SFSF m om ontm os modos de funionmento ligdo on e desligdo o'F gso exist lgum erroD om entr em estdo defeituosoD defevtiveF undo iniilizdD om gst em torno de ino segundos pr omer prover gu ldeirD e qundo el desligdD o efeito instntneoF iste efeito representdo no hiEpumpD mostrdo n pigur SFTD pel veri(o do tempoD (veeondsD ntes de simulr pssgem de gu d om pr ldeirD reonheimento relizdo pelo ontroldor

trlF inqunto om est ligdD estdo onD el reliz leitur d vzoF ssso modeldo pel tividde deste estdo edF ys estdos desligdoD o'D e defeituosoD defetvieD possuem propriedde pumpy'D que ser de(nid posteriormenteF
he form semelhnte s outrs uniddes fsisD deveEse veri(r se om foi

SFPF

niddes psis

IUS
Pump algebra: P p turnOn ctrl invariant: 0 <= p <= P timeOn > 0

TurnOn TurnOff SetSBC(sbc) GetError(e) Stop

pigur SFSX eh ump

Start

SetCtrlOn

veSeconds and not (turnOff or ctrl)

off
turnOn
pumpOff atv: ReadP

SetTimeOn

on

SetCtrlOff

turnOff

defective not error


pumpOff

pigur SFTX hi ump

orretmente iniilizdF xo funionmento normlD om envi onstntemente seus ddos pr o sistem de ontrole d ldeir vporF gso exist lgum erroD o funionmento d om imeditmente interrompido e el desligdF ists ondies e operes so mostrds no gontrole qlolD pigur SFUD pois devem ser sempre onferids e exeutdsF e seguirD de(neEse lger pr ump onsiderndo s funes do eh e timeyn omo indidor do momento que om foi ligdF e ondio (veeondsD presente no hiD veri( se j se pssrm ino segundos desde que om foi ligdF e funo turnyn um inditivo de que houve um requisio pr que se ligsse om e turny' pr que desligsseF

IUT

gptulo SF evlio do wtodo roposto

current_state

started F

SimulateError

error T

SendMssgs

TurnOff

SetCtrlOff

defective

SetErrorTrue

pigur SFUX gontrole qlol ump qlossrio X lger


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
P : Int ; // capacidade total p : Int ; // vazo corrente ctrl : Bool ; // controlador

derived
turnOn :

pumpOff :

Bool Bool

:= p = 0

and not

ctrl ;

derived derived

turnOff :

Int ;

:=

not

turnOn ;

timeOn :

Bool ; fiveSeconds :

Int

:= ( Timer . time - timeOn ) > 5;

error : Bool ; system : SBC ; derived started :

Bool

:= system !=

undef and

P > 0;

elm ds de(nio dos elementos do eh e hi possvel notr de(nio d propriedde pumpy' n linh SF ist ondioD de(nid omo propriedde nos estdos

o' e defetiveD indi que se om no est ligdD vzo orrente deve ser zero e o ontroldor flsoD indindo no pssgem de gu n omF
e o trt iniiliz s funes de umpD onsiderndo system previmente onE (gurd omo referni pr o sistem de ontrole d ldeirF etimeyn mr o tempo em que soliito pr ligr om oorreuD possiilitndo simulr o trso de ino segundos pr om omer jogr gu n ldeirF eps os ino segundosD om inii o despejo de gu e qundo for soliitdo o desligmentoD o proesso deve ser inversoF r isso existem s es etgtrlyn e etgtrly'F istndo ligdD tividde ed simul leitur d vzo orrenteD

SFPF

niddes psis

IUU

desde que exist gu pssndo pel omF hus informes so envids pr o sistemD um vzo orrente e outr situo do ontroldorD indindo se existe ou no )uxo de guF intoD endwssgs envi s mensgens endumptte e

endumpgtrlF essim omo nos sos nterioresD o erro simuldo em imulteirrorF e seguirD presentmEse stres ontendo ests de(nies e s de(nies dos servios disponiilizdos por umpF
qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

action

end

Start i s p := 0; ctrl := f a l s e ; turnOn := f a l s e ; error := f a l s e ; timeOn := Timer . time ;

action end

SetTimeOn i s timeOn := Timer . time ;

action ReadP i s choose i : I n t s a t i s f y i n g ctrl and do p := i ; end action end


SetErrorTrue error := true ;

i > 0

and

i < P;

is

action end

SendMssgs SendPumpState ; SendPumpCtrl ;

is

action SendPumpState i s i f current_state = on then else end end

system . RecievePumpState ( s e l f , true ); system . RecievePumpState ( s e l f , f a l s e );

IUV
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

gptulo SF evlio do wtodo roposto

action end

SendPumpCtrl i s system . RecievePumpCtrl ( s e l f , ctrl );

p u b l i c action TurnOn i s turnOn := true ; end p u b l i c action TurnOff i s turnOn := f a l s e ; end p u b l i c action end
SetSBC ( i n sbc : SBC ) system := sbc ;

is

p u b l i c action end

e := error ;

GetError ( out e :

Bool ) i s

p u b l i c action stop ; end

Stop

is

gomo proprieddes de um omD podem ser de(nids s seguintesX

se o ontroldor indir que no existe )uxo de gu n omD vzo orrente deve ser zeroY se um erro for enontrdoD o estdo interno serD em lgum momento no futuroD defetiveF

qlossrio X roprieddes
1 2

AG not ctrl -> p = 0; AG error -> AF current_state = defective;

SFQ

gontroldor de unidde fsi

imor no tenh sido meniondo n espei(o de erilD foi rido um ontroE ldor pr d unidde fsiD de form lidr om envios e reonheimentos ds

SFQF

gontroldor de unidde fsi

IUW

mensgens de erroF essimD possvel ssoir d unidde fsiD lm de seus estE dos nturisD os estdos de funionmento regulrD defetiveD e knowledgedD onforme foi originlmente desrito por erilF y eh d pigur SFV mostr que d ontroldor tem um unidde unit ssoiE d e prov os servios de reeimento do modo de exeuo do sistem de ontrole d ldeirD eievewodeD e d mensgem informndo que este est prontoD eieveE

rogedyD estndo de ordo om espei(o de erilF elm dissoD os servios etnit e etfg on(gurm qul unidde e o sistem orrespondentesF
PhysicalUnitControl algebra: unit RecieveProgReady(p) RecieveMode(m) SetUnit(u) SetSBC(sbc)

pigur SFVX eh hisilnitgontrol gonsiderndo ssoio do sistem e d unidde ns respetivs refernis j relizdsD o ontroldor gurd pel mensgem informndo que o progrm est pronto pr exeuoF essim feitoD iniiEse o funionmento d unidde e retorn mensgem de que unidde est pontF xo estdo regulrD veri(Ese todo insE tnte se existe lgum erro em unitD so existD enviEse ontinumente um mensgem reportndo deteo do erro t que se otenh um respost de reonheimento do prolem pelo progrmF y estdo ento de erro reonheidoD knowledgedD e gurdEse t o repro d uniddeF undo isso oorrerD envid um mensgem o progrm indindo o repro e unidde volt o estdo norml de funionmentoF udo isso mostrdo no hi d pigur SFW y gontrole qlol n pigur SFIH model veri(o que vli se o sistem de ontrole d ldeir est prontoD desde que o estdo no sej strtedD onde gurdEse mensgem do sistemF gso o progrm no estej prontoD unidde interrompidF e lger seguir mostr de(nio de unit em eh e demis elementos presentes no hi e gontrole qlolF e funo strtedtte orresponde veri(r se o estdo interno do hi strtedF

IVH

gptulo SF evlio do wtodo roposto

programReady

started

Start

StartPhysicalUnit

SendMssgPhysicalUnitReady

error regular SendMssgFailureDetected defective

atv: GetError

SendMssgFailureDetected

transmitted SendMssgRepaired T

repaired

aknowledged atv: GetError

pigur SFWX hi hysilnitgontrolF

current_state

not startedState and not progReady F

StopUnit

started

pigur SFIHX gontrole qlol hisilnitgontrolF

SFQF

gontroldor de unidde fsi

IVI

qlossrio X lger
1 2 3 4 5 6 7 8 9 10 11 12
unit : PhysicalUnit ; transmitted : programReady : error : Bool ; system : SBC ;

Bool ; Bool ;

derived repaired : Bool := not error ; systemMode : SBC . InternalState ;

derived

startedState :

Bool

:= current_state = started ;

es es endwssghysilnitedy e endwssgepired indim pr o sistem que determind unidde fsi est pront e que foi reprdD respetivmenteD enqunto o endwssgpilureheteted vis que unidde tem um erro e gurd on(rmo de envioF y servio eievewssgrogedy reee informo de que o progrm est pronto e eievewssgwode o modo de opero do sistemF od vez que o ontroldor onsult funo error de um unidde fsiD deveEse ssinlr que est nov onsult ind no foi envid o sistemD onforme mostrdo n o qerirrorD n linh ISF ists e s demis es so de(nids seguir em estresF qlossrio X estres

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

action

Start

end

error := transmitted := programReady :=

is

false; false; false;

action StartUnit i s dispatch unit ; end action end


StopUnit unit . Stop ;

is

action end

GetError i s unit . GetError ( error ); transmitted := f a l s e ;

IVP
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

gptulo SF evlio do wtodo roposto

action end

SendMssgPhysicalUnitReady i s system . RecievePhysicalUnitReady ( unit );

action end

SendMssgFailureDetected i s system . RecieveFailureDetected ( unit , transmitted );

action end

SendMssgRepaired i s system . RecieveRepaired ( unit );

p u b l i c action end

RecieveProgReady ( i n p : progReady := p ;

Bool ) i s

p u b l i c action end

RecieveMode ( i n m : SBC . InternalState ) systemMode := m ;

is

p u b l i c action end
unit := u ;

SetUnit ( i n u : PhysicalUnit )

is

p u b l i c action

end

SetSBC ( i n sbc : SBC ) system := sbc ;

is

m vez que o progrm de ontrole no est prontoD o ontroldor deve interE romper o funionmento d unidde fsi e se mnter no estdo strtedF ist um propriedde que pode ser de(nid d seguinte formF qlossrio X roprieddes
1

AG(!progReady -> AF (current_state = started));

SFR

istem de gontrole d gldeir por @fgA

y sistem de ontrole d ldeir @tem foiler gontrol E fg A ontm s vriveis onforme listds n el SFID pgin ITW e reee s mensgens omo listdo n interfe do eh de fgD pigur SFIIF im seguidD so presentds s de(nies ds funes do eh de fg e servios de su interfeF

SFRF

istem de gontrole d gldeir por @fgA

IVQ

SBC algebra:
numberOfPumps valve pumps sm wm C M1, M2 N1, N2 W U1, U2 waterLevel steamLevel

PhysicalUnit MeasuringId

RecieveMeasuring (id, measure) RecieveValve (o) RecievePumpState (p, s) RecievePumpCtrl (p, c) RecievePhysicalUnitReady (u) RecieveFailureDetected (u) RecieveRepaired (u)

invariant:
M1 <= N1 <= N2<= M2 <= C U1 <= W U2 <= W waterLevel <= C steamLevel <= W

pigur SFIIX eh fgF qlossrio X lger


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
PhysicalUnit : MeasuringUnit | Valve | Pump ; MeasuringId : p u b l i c enum { waterM , steamM }; numberOfPumps : Int

p u b l i c type p u b l i c type

derived

numberOfUnits

Int

:= ( numberOfPumps + 3)

// Unidades fsicas valve : agent of Valve ; pumps : agent of Pump ; sm : agent of MeasuringUnit ; wm : agent of MeasuringUnit ;

// // // //

vlvula bombas na caldeira steam measuring water measuring

// Controladores de unidades fsica physicalUnitControl : agent of PhisicalUnitControl ; // Constantes C : M1 , M2 : N1 , N2 : W : U1 , U2 : waterLevel : steamLevel :

Int ; Int ; Int ; Int ; Int ; Int ; Int ;

// // // // // // //

capacidade total nveis crticos nveis normais quantidade mxima de vapor gradientes de vapor nvel de gua (q) nvel de vapor (v)

IVR

gptulo SF evlio do wtodo roposto

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

p u b l i c action if elseif end end

RecieveMeasuring ( i n id : MeasuringId , i n measure : I n t ) i s id = waterM then waterLevel := measure ; id = steamM then steamLevel := measure ;

qlossrio X estres

p u b l i c action end

RecieveValve ( i n o : valveOpened := o ;

Bool ) i s

p u b l i c action end

RecievePumpState ( i n p : Pump , isPumpOn ( p ) := s ;

in

s :

Bool ) i s

p u b l i c action end

RecievePumpCtrl ( i n p : Pump , pumpCtrl ( p ) := c ;

in

c :

Bool ) i s

p u b l i c action end

RecievePhysicalUnitReady ( i n u : PhysicalUnit ) ready ( u ) := true ; RecieveFailureDetected ( i n u : PhysicalUnit ) failure ( u ) := true ; RecieveRepaired ( i n u : PhysicalUnit ) failure ( u ) := f a l s e ;

is

p u b l i c action end

is

p u b l i c action

is

end

gomo pode ser vistoD os servios so responsveis por lterr os vlores de lgums funes de fgD que so de(nids seguirF qlossrio X lger
1 2 3 4 5 6 7
ready : PhysicalUnit -> failure : PhysicalUnit -> valveOpened : Bool ; pumpCtrl isPumpOn

Bool ; Bool ;

derived

: Pump -> Bool ; : Pump -> Bool ; isPumpOff ( p : Pump ) :

Bool

:=

not

isPumpOn ( p );

SFRF

istem de gontrole d gldeir por @fgA

IVS

y sistem fg oper em ino diferentes modos de operoX iniilizoD normlD degrddoD reupero e emergniF e seguirD presentEse d um deles em termos de seus higrms de d de istdo e o gontrole qlol que relizdoF eo (nlD mostrmEse s proprieddes pr o mdulo fgF y modo de opero stopped no possui hi por ser um estdo (nl e presentdo om su tividde de (nlizo no hi ompletoF

SFRFI

gontrole qlol

gonstntementeD veri(Ese se o nvel de gu n ldeir est dentro dos limites norE misF m vez que ess ondio sej desrespeitdD o progrm tent justr o nvelD so ontrrioD tommEse s providnis pr mnter o nvel d guF heveEse resslE tr que mensgens vlvul somente devem ser envids no estdo iniil e est deve permneer fehd nos demis modos de operoF elm dissoD todo momento o sistem de ontrole envi s uniddes fsis qul o estdo orrenteF xeste modeloD mensgem envid pr o ontroldor de d uniddeF undo se identi( um erro grveD por meio d funo emergenytopD o sistem deve ser imeditmente trnsferido pr o estdo de emergni stoppedD e gurdr que o miente externo tome s providnis neessrisF hess formD desreveEse o digrmD pigur SFIPD pr gontrole qlol de fgF estres no qlossrio seguir de(nem s es onforme desrio presentdD serX

endwssgwode X envi todos os ontroldores de unidde fsiD physilnitgE trlD o estdo orrenteY etintervevel X deslig tods s oms eD se estiver no estdo iniilD feh vlvulY edjusttervevel X se o nvel de guD wtervevelD estiver ixo no nvel inferior normlD xID ddo ordem pr umentr o nvel de guD so ontrrioD diminuiE se o nvelY toprogrm X tom s providnis neessris pr (nlizr orretmente o progrmX envi mensgens tods os ontroldores de unidde fsiF

IVT

gptulo SF evlio do wtodo roposto

qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

action SendMssgMode i s f o r a l l c : physicalUnitControl do c . RecieveMode ( current_state ); end end action end


RetainWaterLevel i s StopPumps ; i f current_state = initialMode

then

CloseValve ;

end

action AdjustWaterLevel i s i f waterLevel < N1 then RaiseWaterLevel ; e l s e ReduceWaterLevel ; end end action StopProgram i s f o r a l l c : physicalUnitControl do c . RecieveProgReady ( f a l s e ); end end

current_state

SendMssgMode

emergencyStop F waterLevelAdjusted T

stopped
atv: StopProgram

RetainWaterLevel

AdjustWaterLevel

pigur SFIPX gontrole qlol fg es de(nies de es do gontrole qlol presentds sugerem novs stresD que so ento de(nids seguirD serX

topumps X envi mensgem pr tods s omsD pumpsD soliitndo seu desE ligmentoY

SFRF

istem de gontrole d gldeir por @fgA

IVU

gloselve X mensgem envid vlvul vlveD no estdo iniilD pr que est sej fehdY ypenlve X mengem envid vlvul vlveD no estdo iniilD pr que est sej ertY isetervevel X tom s devids providnis pr que o nvel de gu suD tivndo lgums oms eD se estiver no estdo iniilD feh vlvulY eduetervevel X tom s devids providnis pr que o nvel de gu sej reduzidoD fehndo lgums oms eD se estiver no estdo iniilD re vlvulF

qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

action StopPumps i s f o r a l l p : pumps do p . TurnOff ; end end action end


CloseValve valve . Close ;

is

action end

OpenValve valve . Open ;

is

action end

RaiseWaterLevel i s ActiveSomePumps ; i f current_state = initialMode

then

CloseValve ;

end

action end

ReduceWaterLevel i s StopSomePumps ; i f current_state = initialMode

then

OpenValve ;

end

hus outrs novs es preemF o referentes o envio de mensgem pr lgums oms om o ojetivo de que sejm ligds ou desligdsF xest modelgemD esolheEse no deterministimente um om que estej desligdD ou ligdD pr exeutr opero orrespondenteF e funo isumpyn mpei um om em seu estdo ligdo e isumpy' no estdo desligdoF

IVV

gptulo SF evlio do wtodo roposto

1 2 3 4 5 6 7 8 9 10 11 12 13

action ActiveSomePumps i s choose p : pumps s a t i s f y i n g isPumpOff ( p ) do p . TurnOn ; end end action StopSomePumps i s choose p : pumps s a t i s f y i n g isPumpOn ( p ) do p . TurnOff ; end end

qlossrio X estres

e seguirD so presentds lgums de(nies n lger pr melhor ompreenso do gontrole qlolF qlossrio X lger
emergencyStop waterLevelAdjusted : :

1 2 3 4

derived derived

Bool Bool

external

reachingLimitLevel :

Bool ;

:= reachingLimitLevel ; := N1 <= waterLevel and N2 >= waterLevel ;

xo ( lro n espei(o de eril de(nio de rehingvimitvevelF or issoD neste modeloD est ondio modeld omo um funo externF

SFRFP

hiEinitilwode

xo modo de opero initilwodeD o sistem de ontrole d ldeir gurd o sinl de que ldeir vpor est prontF xest modelgemD isso simuldo e ssume que

stemfoileriting reee o sinl envido pel ldeirF intoD deveEse gurdr que o nvel de gu estej orretoF peito issoD o progrm envi onstntemente mensgens pr tods s uniddes fsis indindo que est pronto t que ree on(rmo de que tods els tmm estoF e houver lgum flh em um ds uniddes vitisD medidor de nvel de guD wmD e vporD smD o progrm entr no estdo de emergniD hmdo de stoppedF e for enontrdo lgum erro ns demis uniddes fsisD o sistem entr no estdo degrddoD hmdo de degrdedF gso ontrrioD ele entr no estdo norml de exeuoD omo pode ser onferido n pigur SFIQF
odeEse pereer que do estdo iniil t o estdo initilwode existem dus es e um outro estdoD strtingF iste um estdo seundrio utilizdo pens pr uxlio

SFRF

istem de gontrole d gldeir por @fgA

IVW

s iniilizesF or no ser desrito por erilD no existe foo espeil destindo eleF

I
Start

initialMode

steamBoilerWaiting and waterLevelAdjusted

stopped
atv: StopProgram

T SendMssgProgReady F physicalUnitsReady T failure(wm) or failure(sm) F T

normal

allPhysicalUnitsOK F

degraded

pigur SFIQX hiEinitilwodeF e o endwssgrogedyD presente no hiEinitilwodeD envi pr todos os ontroldores de uniddes fsis mensgem de que o sistem de ontrole d ldeir est prontoF hess formD o ontroldor pode iniir tividde d unidde ssoid eleF qlossrio X estres

1 2 3 4 5

action SendMssgProgReady i s f o r a l l c : physicalUnitControl do c . RecieveProgReady ( true ); end end

e seguirD de(neEse lger pr o hiEinitilwode presentdoF qlossrio X lger

1 2 3 4 5

steamBoilerWaiting :

Bool ;

derived

physicalUnitsReady :

Bool

:=

a l l u : PhysicalUnit s a t i s f y i n g ready ( u );

IWH
6 7

gptulo SF evlio do wtodo roposto

derived

allPhysicalUnistOK :

Bool

:=

a l l u : PhysicalUnit s a t i s f y i n g not failure ( u );

or (mD de(neEse o trtD onde s funes deste mdulo so iniilizdsD s ssoies ds uniddes fsis om seus ontroldores e estes so disprdosF qlossrio X estres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

action step

Start i s 1: numberOfPumps := 4;

create create create create create


C M1 N1 W U1 := := := := :=

valve ; pumps ( numberOfPumps ); sm ; wm ; physicalUnitControl ( numberOfUnits ); 255; 10; M2 := 245; 15; N2 := 235; 200; 100; U2 := 100;

waterLevel := 0; steamLevel := 0;

f o r a l l u : PhysicalUnit do ready ( u ) := f a l s e ; failure ( u ) := f a l s e ; end


valveOpened :=

false;

f o r a l l p : pumps do pumpCtrl ( p ) := f a l s e ; isPumpOn := f a l s e ; end


steamBoilerWaiting :=

true ;

step

2: physicalUnitControl (1). setUnit ( valve ); physicalUnitControl (2). setUnit ( sm );

SFRF

istem de gontrole d gldeir por @fgA

IWI

38 39 40 41 42 43 44 45 46

physicalUnitControl (3). setUnit ( sw ); physicalUnitControl (4). setUnit ( pump (1)); physicalUnitControl (5). setUnit ( pump (2)); physicalUnitControl (6). setUnit ( pump (3)); physicalUnitControl (7). setUnit ( pump (4));

step 3: forall end

p : physicalUnitControl

do dispatch

p;

SFRFQ

hiEnorml

y modo norml represent o funionmento pdro d ldeir vpor om tods s uniddes fsis funionndo orretmenteF x presen de lgum erro n unidde medidor de nvel de guD o progrm pss pr o modo de reuperoD estdo

resueF ulquer erro em lgum outr unidde fsi lev o progrm pr o modo degrddoD estdo degrdedF y hiEnorml mostrdo n pigur SFIRF
normal not allPhysicalUnitsOK T failure(wm) F

rescue

degraded

pigur SFIRX hiEnormlF

SFRFR

hiEdegrded

xeste modo de operoD o progrm tent mnter o nvel norml de gu mesmo n presen de flhs de lgums uniddes fsisF essumeEse que unidde medidor de nvel de gu estej funionndo orretmenteF gso sej detetdo um flh n uniE dde medidor de nvel de guD o progrm pss pr o modo de reuperoD estdo

resueF m vez que tods s uniddes tenhm sido reuperdsD o funionmento volt operr normlmenteF ists onsideres so mostrds no hiEdegrded n pigur SFISF

SFRFS

hiEresue

y modo de reuperoD estdo resueD tem o ojetivo de mnter o nvel de gu qundo unidde medidor de nvel de gu estiver om prolemsF intoD pr mnter o

IWP

gptulo SF evlio do wtodo roposto

degraded

allPhysicalUnitsOK F

normal

failure(wm)

rescue

pigur SFISX hiEdegrdedF orreto nvel de gu n ldeirD neessrio relizr um lulo utilizndo medio do vpor e s informes d vzo de d omF vogoD unidde medidor de vpor e d om no podem presentr prolemsF gso um desss dus ondies flheD onsiderEse um erro grve e o progrm levdo o estdo de emergniD stoppedF essim que unidde medidor de nvel de gu for reprdD o progrm tent retornr pr o modo normlF into veri(Ese se tods s uniddes fsis esto funionndoF gso exist lgum om prolemsD retornEse pr o modo degrddoF pigur SFIT mostr o hiEresueF
anyPumpFailure or failure(sm) F

rescue
atv: CalculateWL

stopped
atv: StopProgram

not failure(wm) F

allPhysicalUnitsOK T

degraded

normal

pigur SFITX hiEresueF e espei(o de eril no deix lro omo relizdo o lulo pr deduo do nvel de guD entoD ness modelgemD este lulo simuldo otendo o vlor no deterministimenteF heveEse oter um vlor que sej possvel infringir os limites inferior e superior wI e wPD podendo ssim simulr vlores de risoF y lulo relizdo sempre que se permnee no estdo resueD modeldo ento om tividde

glultevD de(nid seguirF


qlossrio X estres
1 2 3 4

action CalculateWL i s choose i : 0..( M2 + 1) do waterLevel := i ; end end

SFRF

istem de gontrole d gldeir por @fgA

IWQ

e seguirD de(neEse lger pr hiEresueF qlossrio X lger


anyPumpFailure :

1 2

derived

Bool

:=

exists p : satisfying

pumps failure ( p );

SFRFT

roprieddes

hurnte espei(o de erilD possvel identi(r lgums proprieddes pr o sistem d ldeir vporF e seguirD presentmEse esss proprieddes e depois els so formlizds em frmuls gvF e tro de mensgens entre s uniddes fsis form trtds utilizndo os servios disponiilizdos n interfeD portnto s propriE eddes que dizem respeito flhs de mensgens no se plim est modelgemF IF e vlvul ert somente no estdo iniilD e deve permneer fehd nos demis estdos de funionmentoD exluindo o estdo stopped Y PF vlvul deve ser fehd ntes de rir qulquer um ds omsY QF um vez for do estdo initilwodeD o progrm jmis retorn este estdoY RF se o progrm reeeu s mensgens iewEfysviEessxq e rsgevE xsEiehD o proesso de iniilizo terminY SF se o nvel de gu estiver entre xI exPD ento tods s oms devem ser fehE dsF e seguirD de(nio em vwwF

qlossrio X roprieddes
1 2 3 4 5 6 7 8 9 10
// P 1 AG(curent_state != initialMode curent_state != stopped -> ValveClosed); // P 2 AG(not ValveClosed -> allPumpsClosed); // P 3 AG(current_state != initialMode -> AF current_state != initialMode);

IWR
11 12 13 14 15 16 17

gptulo SF evlio do wtodo roposto

// P 4 AG (current_state = initialMode steamBoilerWaiting physicalUnitsReady -> AF current_state != initialMode); // P 5 AG (waterLevelAdjusted -> AF allPumpsClosed);

wesmo em roprieddesD lgums novs funes preem e so de(nids d seE guinte formX qlossrio X lger
valveClosed : allPumpsClosed :

1 2 3

derived derived

Bool Bool

:= :=

not valveOpened ; a l l p : pumps s a t i s f y i n g isPumpOff ( p );

SFS

higrm eh

y digrm eh d pigur SFIV mostr omo os mdulos esto reliondosF essumeE se imer omo sendo um mdulo que ontiliz o tempo do miente externoF

SFT

esultdos

y re(nmento do wodelo fsio pr o istem de gontrole d gldeir porD presentdo neste ptuloD gerou o digo wh e espei(o xuw orresE %n pondenteF intoD foi relizd veri(o ds proprieddes pernte o wodelo fsioF e espei(o xuw gerd onsiste n represento de um nio sistem que ord todos os mdulos espei(dosD seus respetivos gentes e sus interesD inE lusive tros de mensgensF ormD no foi possvel oter um respost do miente de veri(oF im lguns sos isso possvelD e veri(o no retorn se s proE prieddes formD ou noD grntidsF odndo o sistem xuw em um mquin epple ifook IFRPqhzD no sistem operionl wy e om Iq de memri ewD esperouEse por mis de qutro hors sem respostsF e exeuo xuw de um gente de um mdulo ger um determindo nmero de estdos no fhh internoF undo o nmero de gentes e mdulos umentD quntiE dde de estdos rese de form exponenilF ssso se deve form omo s exeues podem se relionrF xo so de wh %nD relo determind pel omunio entre os gentesF ereditEse que est omunio ger um fhh omplexo ponto de

SFTF

esultdos

F F
atv: StopProgram

physicalUnitsReady T

failure(wm) or failure(sm)

T stopped

SendMssgProgReady

I
initialMode T allPhysicalUnitsOK

Start

steamBoilerWaiting and waterLevelAdjusted

normal F

T allPhysicalUnitsOK

degraded

F allPhysicalUnitsOK

not allPhysicalUnitsOK failure(wm)

failure(wm)

T rescue

pumpCtrlFailure or failure(sm) T

not failure(wm)

pigur SFIUX hi temfoilergontrol ompletoF


atv: CalculateWL

IWS

IWT

gptulo SF evlio do wtodo roposto

Valve

Pump

SBC

PhysicalUnitControl

Timer

MeasuringUnit

pigur SFIVX higrm ehF

no ser possvel oter um respost do modelo em tempo hilF imor veri(dores de modelos tenh grnde pidde de lidr om exploso de estdosD no foi possvel mostrr este fto om os testes relizdosD rindo espeules sore rel us d flt de respost n exeuo xuwF m justi(tiv pode ser o tmnho do fhhD que pode ter utilizdo um quntidde exessiv de memriD sendo neessrio relizr operes rs no ponto de vist de hierrqui de memriF yutr possiilidde seri omplexidde d estrutur do fhhD tornndo veri(o ine(ienteF m lterntiv pr ompletr veri(o foi lterr o digo xuw gerdo pr que d mdulo fosse onferido seprdmenteD ssim s tros de mensgens form simulds por funes externsD que possuem omportmento no determinstio no veri(dor de modelos utilizdoF iste mtodo preserv o mesmo efeito de ntesD um vez que d gente ompreende outro que om ele relion vi tro de menE sgensD sem neessidde de onheer su estrutur intern nem sus proprieddesD que se referem pens os elementos internos o mduloF essimD form gerds inE os espei(es xuwD um pr d mduloD prtir do digo originlmente otido no re(nmentoD e tods els retornrm um respost pr s proprieddesF e seguirD el SFP mostr os estdos lnveis dentre os possveisD de ordo om espei(o xuw de d mduloD e o tempo gsto pr veri(r s proprieddesF odeEse notr queD onforme s rterstis de veri(o de modelosD quntidde de estdos no est diretmente reliond om o tempoF istes ddos form oletE dos om veri(o de um nio gente de d mduloF estes mostrrm que exeuo de um nmero mior de gentes present vlores mis elevdos de estdos e tempoD omo o so de pumpFsmvD queD qundo veri(do om qutro omsD gstouEse um tempo superior PH minutosF

SFTF

esultdos

IWU

erquivo
mesuringunitFsmv vlveFsmv pumpFsmv puFsmv sFsmv

istdos lnveis otl de istdos empo


TFIRR RR 221 = IFRRH UQHFRQP QTFVTR QTH 252 = QFTHH 221 =

Is = Is = > Qmin Is = Is =

el SFPX ispei(es xuwF r nlise ds proprieddesD foi onsiderdo pens o mdulo prinipl sFsmvD ms s onluses form s mesms proprieddes pr s demis de todos os mdulosF gonsiderndo propriedde PD que diz que vlvul deve ser fehd ntes de rir qulquer omD ou sejD se vlvul estiver ertD tods s oms devem estr fehdsF ropriedde P
1 2

// P 2 AG(not valveClosed -> allPumpsClosed);

ist propriedde foi veri(d omo flsD e o seguinte ontrEexemplo foi presenE tdoF gontr exemplo pr propriedde P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 specification AG (valveOpened -> allPumpsClosed) IN sbc is false  as demonstrated by the following execution sequence Trace Description: CTL Counterexample Trace Type: Counterexample -> State: 1.1 <sbc.ctl_state = initialMode sbc.step = 1 sbc.valveOpened = 0 sbc.waterLevel = 0 sbc.emergencyStop = 0 sbc.P1on = 0 sbc.P2on = 0 sbc.P3on = 0 sbc.P4on = 0 sbc.ready = 0 sbc.failurePump = 0 sbc.failureWL = 0 sbc.failureSL = 0 sbc.allPumpsClosed = 1 sbc.allPhysicalUnitsOk = 1

IWV
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
sbc.waterLevelAdjusted = 0 sbc.M2 = 90 sbc.M1 = 10 sbc.N2 = 80 sbc.N1 = 20 sbc.C = 100 -> State: 1.2 <sbc.step = 2 sbc.P1on = 1 sbc.allPumpsClosed = 0 -> State: 1.3 <sbc.step = 1 sbc.waterLevel = 4 -> State: 1.4 <sbc.step = 2 sbc.waterLevel = 0 sbc.P2on = 1 -> State: 1.5 <sbc.step = 1 sbc.waterLevel = 85 -> State: 1.6 <sbc.step = 2 sbc.valveOpened = 1 sbc.waterLevel = 0 sbc.P1on = 0

gptulo SF evlio do wtodo roposto

es dus primeirs linhs mostrm propriedde veri(d e o resultdoD no so flsoD e s dus linhs seguintes indim que h um ontrEexemplo ser mostrdo onE forme um propriedde gvF gd estdo tte indido por um ndexD por exemplo

tte IFI n linh S indi o primeiro estdo d exeuo ID pois em um inspeo mis detlhdD podeEse onferir mis de um exeuoF xo exemplo presentdoD este o estdo iniilD onde s vriveis so pens iniilizdsD portnto tods s vriE veis so mostrdsF x trnsio de estdosD pens preem s vriveis que form lterdsD ssimD no estdo IFPD linh PUD preem pens trs vrveisD indindo que s demis permneem om o mesmo vlorF e listgem (nlizd om o estdo em que propriedde no stisfeitF
odeEse notrD que no estdo IFRD om P ligdD linh QUF undo vlvul ert no estdo IFTD linh RQD om P ind permnee ligdF gonforme o ontrE exemploD seu vlor no se lter entre os estdos IFR e IFTF enlisndo este ontrE exemplo no wodelo fsioD foi possvel identi(r o erroF x o eduetervevelD feit soliito de desligr lgums oms eD se estiver no estdo initilwodeD vlvul deve ser ertF

SFUF

gonluses

IWW

eduetervevel
1 2 3 4

action end

ReduceWaterLevel i s StopSomePumps ; i f current_state = initialMode

then

OpenValve ;

end

he ordo om espei(o de erilD tods s oms deverim ser fehdsD so o estdo do ontroldor d ldeir fosse initilwodeD ento est o foi modi(E d pr seguinteF

eduetervevel
1 2 3 4 5 6 7 8

action ReduceWaterLevel i s i f current_state = initialMode then else end end


OpenValve ; StopPumps ;

StopSomePumps ;

hess formD veri(o d propriedde P pde ser grntidD e isto presenE tdo no miente xuw onforme seguirF ropriedde P grntid
1

 specification AG (valveOpened -> allPumpsClosed) IN sbc is true

gom o uxlio de ontrEexemplos forneidos pelo modelo xuwD foi possvel inspeionr filmente o wodelo fsio e lolizr e orrigir o prolem pontdoF hemis proprieddes que flhrm n veri(o tmm form filmente orrigidsD vlindo e(i d integro do wtodo de e(nmento wh om veri(o %n de modelosF

SFU

gonluses

gom o exemplo do prolem d ldeir vporD desrito por erilD foi possvel mosE trr omo utilizr vingugem de wodelgem wh em um prolem relD ssim %n omo plir o wtodo de e(nmento wh otendo os resultdos de implemenE %n toD doumento e veri(oF poi possvel vlir o lto gru de stro do digrms hi e hisD lm dissoD desrio textul presente no wodelo fsio uE

PHH

gptulo SF evlio do wtodo roposto

xili n ompreenso do prolem presentdo e priniplmente d soluo propostF poi possvel utilizr tnto o hi diretmenteD por exemplo pr uniddes fsisD omo su onstruo prtir de hisD omo n espei(o do sistem de ontrole d lE deir @fg AF essimD o volume de informo nestes digrms pode ser ddo de form legvel e pode ser dd devid onentro em d estdo dos mdulosD que so os pontos de oservo no wwF ys nveis de stro em de(nidos n vww foE rm fundmentis pr oter solues dequds em d domnio e d etp do desenvolvimento de sistemsF poi onsttdoD n miori dos testesD que neessrio relizr um prepro iniil ntes de tivr exeuo do sistemF odeEse itr omo exemplo neessidde do gente rost no prolem do tntr dos pilsofosD eo QFPFQD eD no prolem d gldeir porD neessidde d o trt ser de(nid em mltiplos pssos pr onstruo orret ds reles entre s uniddes fsisD eo SFRFPF iste um omportmento que no est diretmente reliondo om soluo do prolemD ms est presente n espei(o em um nvel mis elevdo de stroF or exemploD no so do tntr dos pilsofosD o mdulo rost destdo por meio de eh e hiF ists so onstrues de vww voltds o homnio d eplioD ou sejD pr ompreenso de lientesF i neste soD esto modelndo requisitos de softwreD que so spetos de nveis pertenentes o homnio dos wodelosF ortntoD trlhos futuros podem inorporr um trtmento mis dequdo este trtmento de iniilizo do sistemD preservndo distino dos nveis de stroD que um rtersti importnte no wodelo fsioF hurnte modelgem de sistems onde existe grnde nmero de tro de mensE gens entre gentesD omo o prolem d gldeir porD pereeuEse neessidde de um melhor represento deste fenmeno nos nveis mis elevdos d vwwD no soD os digrms hi e hisF wuito emor s es que relizm s tros de mensE gens tenhm nomes sugestivosD no ( evidente omo omunio relizdF xo exemplo do tntr dos pilsofosD o tryqetporks quem reliz omunio om o gente host pr soliitr os grfosD eD prentementeD isso no ( muito lro no hi de hilosophersF oderiEse soluionr este prolem utilizndo o orpo d funo

tryqetporksD hostFgetporks@leftporkD rightporkAD no hiF ws podem hver situes onde omunio um ds regrs ser exeutdD lm dissoD reditEse que um estudo sore representes gr(s de omunio entre gentes pode presentr um resultdo melhorF
y gontrole qlol model omportmentos trnsversis o sistemD porm somente permitido um digrm reduzidoF r representes de vrios omportmentosD pode oorrer um mistur de informesD prejudindo legiiliddeF or exemploD o gontrole qlol do istem de gontrole d gldeir porD eo SFRFID trt de trs

SFUF

gonluses

PHI

situesF e primeirD diz respeito o envio do modo de exeuo do sistem tods s uniddes fsisD indido pel o endwssgwodeF osteriormenteD veri(Ese se existe um situo de erro grveD podendo desvir o )uxo do hi priniplF or (mD o nvel d gu nlisndo e reee o trtmento dequdoD de ordo om o resultdoF im lguns sosD pode ser onveniente presentr s situes modelds no gontrole qlol de form distint e independenteD omo podeEse notrD o envio d mensgem endwssgwode independente dos demis elementosD que so integrdosF m possvel melhormento seri permitirD sem usr inonsistnis no modeloD diE o isold de novos omportmentosD ou sejD d novo omportmento teri um digrm reduzido espe(oF xeste soD seri neessrio de(nir um mtodo de omE posio dos trehos do gontrole qlolF hess formD este reurso presentri mior legiilidde e ontriuiri pr um mior resoF gonstrudo o wodelo fsio d ldeir vporD form plids s regrs de re(E nmento presentes em wwD otendo orretmente o digo wh e espei(o %n xuw orrespondentesF intoD est espei(o xuw foi sumetid o miente de veri(oF y resultdo no foi o esperdoD pois o sistem xuw no retornou nenhum respost qunto nlise do sistem omo um todoF intoD foi neessrio lterr o digo gerdo (m de inspeionr seprdmente d mduloD onde omunio entre gentes foi simuldF essimD grntiuEse lguE ms proprieddesD e pr s outrs form forneidos ontrEexemplosD queD por meio de nlisesD hegouEse onluses stisftris e orreo do prolemD onforme deE monstrdo om propriedde P do mdulo fgD que represent o sistem de ontrole d ldeir vporF wesmo om os prolems de veri(o enontrdosD onsidermEse stisftrios os resultdos otidosD omo no exemplo presentdoD priniplmente no que diz respeito stroD onseqentemente legiiliddeD do wodelo fsio nos domnios d eplio e dos wodelosD ssim omo poder de doumento e veri(oD ps ltero do digo gerdoF

gptulo T gonluso
iste texto presentou o wtodo de e(nmento wh %nD no qul possvel relizr espei(es de prolemsD de pequeno grnde porteD em um nvel de stro deE qudo interpreto em mos os domnios d eplio e dos wodelosD filitndo vlido de projetosF poi propost um lingugem de lto nvel sed em higrm de rnsio de istdos @hiA e higrm de d de istdo @hiA pr esrit do wodelo fsio e regrs de re(nmento que o trnsform em lingugem wh %nF y mdulo de veri(o permite trnsformr wh em um entrd de veri(dor de %n modelosD sendo possvel relizr utomtimente veri(o do sistem em termos de su espei(o no wodelo fsioF essimD possvel evitr erros futuros ou flt de funionliddesF osteriormenteD em um nvel um pouo mis detlhdoD utilizndo os higrms de d de istdoD possvel desrever mis rterstis e oservr o sistem em prtesD onentrndo teno em pontos importntes do sistem seprE dmenteF e diferen de grnulridde de stro entre hi e his importnte pr pturr e expressr s primeirs neessiddes e os prinipis omportmentos do sistemF e desrio gr(D sed em digrmsD ontriui pr mior legiiliddeD onsequentementeD mior preiso o representr s neessiddesF e noto de hi e his strt o su(iente pr ser utilizd em outrs lingugens do modelo forml ewF elm dissoD vww stnte intuitivD n qul grnteEse um grnde poder de expresso e fil prendizdoF e utilizo do qlossrio filit o desenvolvimentoD seprndo ompletmente o omportmento gerl d plio de detlhmento de rterstis mis prxims d implementoF es de(nies no qlossrio dos elementos dos digrms representm primeir etp do re(nmentoD relizdo por sustituio de mquins @re(nmento de suErotinsAD que orresponde s tnis omumente enontrds nos mientes estuE ddosF im prtiulrD de(nio de proprieddes e elementos de pr e psEondies so fundmentis pr veri(r utomtimente implemento em termos d esE PHQ

PHR pei(oF

gptulo TF gonluso

eo estudr o modelo de exeuo d lingugem wh %nD onsttouEse su exeE uo ssnron e seus pontos de sinronizoF gomo vingugem de wodelgem wh herd rterstis dest lingugemD foi possvel desrever um lingugem %n em lto nvel de desrio do wodelo fsio que model omportmentos snronos e ssnronosF ereditmos que o poder de expressoD legiilidde e o formlismo presentes n vww pr desrio do wodelo fsio possiilitm ordgem didtiD omo n nE lise de omportmento de lgoritmosD e espei(o de protoolos pr vlido e veri(o ntes de su implntoF elm dissoD sistems de pequenos e grndes porE tes podem ser de(nidos modelndo omunies entre gentes e exeues snrons e ssnronsD e por (mD hrdwre podem ser veri(dos e o ww pode gerr um simuldorD filitndo vlido do mesmoF e espei(o de sistems no wodelo fsio e o resultdo gerdo pelo veri(dor de modelos onstituem doumento omplet do sistemF gomo o digo exeuE tvel otido d mesm fonteD implemento e doumento so mntids sempre oerentes entre siF eo relizr veri(o do wodelo fsioD foi neessrio plir tnis de re(nE mento no digo wh que represent o sistemD e ns proprieddes de(nidsF gom %nD o propsito de oter um mdulo de veri(o utomti n vingugem de wodelgem wh %nD foi possvel estender o enefio tmm pr lingugem wh %nF elm dissoD o re(nmento de wh pr um lingugem de veri(dor de modelos exigiu %n de(nio de um lingugem intermediri mis simplesD denomind goreEwh %nD onde possvel relizr trlhos de extenso n lingugem wh %nF y re(nmento de wh pr xuw um proesso semiEutomtio dentro do %n wtodo de e(nmento wh %nD ontriuindo pr mior trnsprni n veri(E o do wodelo fsioF hentre os proessos que propem plir veri(o de modelos em ewD nenhum ord o re(nmento de tipos strtos de ddos omo foi relizdo em wwF or (mD veri(o em ww utilizndo xuwD por meio de ontrE exemplosD possiilit oteno de ddos de entrd do sistem pr depuroD no so de lgum ds proprieddes reonheids no ser stisfeitF imor form enonE trdos lguns prolemsD os resultdos enontrdos utilizndo veri(o de modelos form stisftriosD e mostrEse possiiliddes de trlhos futurosF odeEse resumir s ontriuies deste trlho d seguinte formX

de(nio de um lingugem de lto nvel pr espei(o de sistemsY de(nio de um lingugem gr( pr desrio do wodelo fsio dentro do modelo de wquin de istdos estrtY

TFIF

smplemento d perrment

PHS

distino dos nveis de stro utilizdos pr desrever o wodelo fsioY miente que proporion fil vlido do sistem em mos os domniosD d eplio e dos wodelosY miente de espei(o de sistems ssnronosD voltdos pr o modelo de wquin de istdo estrtY de(nio de um mtodo de re(nmento pr lingugem wh %nY implemento do wtodo de e(nmento wh %nD tornndo o proesso de trnsformo utomtioY oteno d doumento oerente om implementoD pois mos so exE trdos d mesm fonte de informoY proesso de veri(o do wodelo fsio de form semiEutomtiD proporioE nndo mior trnsprni pr o desenvolvedorY re(nmento de tipos strtos de ddos pr oter um represento pr veE ri(dores de modelosY possiilidde de utilizr o resultdo d veri(o omo entrd pr depuro do sistemD om o intuito de relizr novs vlidesF

TFI

smplemento d perrment

r plio ds regrs de re(nmento presentds nest dissertoD foi desenE volvid um ferrment qul os exemplos deste trlho form sumetidosF sniiE lmenteD foi espei(o um wv hem pr de(nir represento intern do wodelo fsio em wvF osteriormenteD s regrs de re(nmento so plids sore est represento do wodelo fsio t oter os digos wh e xuw (nisF %n y resultdo de d regr express em outro wvD que utilizdo pr plio d regr seguinteF essimD implemento registr pssoEEpsso o proesso de re(nE mentoF y ponto de prtid pr o proesso de re(nmento represento intern em wv do wodelo fsioD sendo ssimD interfe gr( pr o wtodo de e(nmento wh pode ser inorpord posteriormenteF gom est ferrmentD prtir do wv %n ddoD gerEse o digo wh e espei(o xuw orrespondenteF e douE %n mento omplet no gerd ness implementoD pois depende d represento

PHT

gptulo TF gonluso

gr( de higrms de rnsio de istdos e higrms de d de istdoD queD neste trlhoD form espei(dos seprdmenteF y ojetivo d implemento foi vlir o wtodo de e(nmento wh em %n um miente relF poi possvel resolver lguns dos prinipis prolems enontrdos durnte vlio relizd no gptulo SF r o prolem d restrio de juste @pitness gonstrint AD foi rido um loo onde s restries podem ser mnulmente desrits n form de expresses ondiionis ifEthenD onsiderndo os estdos do hiD seus )uxos e de(nies ds esF isss expresses so diionds o loo de invriE ntes do sistemF essimD o impto d de(nio mnul minimizdo qundo relizEse o re(nmento utomtio de wh pr gEwh %n %nF yutro prolem resolvido n ferrment foi de(nio de um espei(o xuw pr d mdulo om simulo d omunio entre os gentesD possiilitndo veE ri(o em prtes do modelo ompletoF ist ordgem est melhor desrit n eo SFTF e ferrment implementd pode ser onsiderd o nleo d plio do wtodo de e(nmento wh %nD sendo possvel desenvolver futurmente os mdulos fltntes om fil integro o nleo existenteF

TFP

rlhos eliondos

elguns trlhos tiverm mior in)uni pr de(nio do wtodo de e(nmento wh e vingugem de wodelgem wh %n %nF rimeirmenteD he ew e(nement

wethod frHQ serviu omo um gui pr de(nir o wtodo de e(nmento wh %nD enqunto o trlho he ew qround wodel wethod s poundtion for equirements ingineering frHQ presentou s prinipis rterstis e o ppel que um wodelo fsio deve onterD que form plids vingugem de wodelgem wh %nF
osteriormenteD lgums onstrues d vww form in)uenids pel desrio d ldeir vpor relizd em e(ning estrt whine pei(tions of the tem

foiler gontrol to ell houmented ixeutle gode ffh+ WTD trlho que tmm teve ppel importnte n vlido d lingugem propost de onstruo do wodelo fsioF ys digrms hi e his form inspirdos nos digrms de estdos de wv exHSD tfHRD ftHS e o gui do usurio ni(ed wodeling vnguge ser quide ftHS teve importnte ppel n presento d noto de vwwF
y livro de ewD onheido omo he ew fook @estrt tte whinesX e

wethod for righEvevel ystem hesign nd enlysis fHQA foi prinipl referni pr o trlho wtodo de e(nmento wh %nD pois ontm s desries omplets do modelo ewD do wtodo de e(nmento ewD trnsformo ew pr pw e

TFPF

rlhos eliondos

PHU

pont os prinipis prolems existentes no wtodo de e(nmento ewD lm de doumentr inmers refernis que form utilizds pr de(nio de wwF or (mD he ew orkenh helHID helWW serviu omo inspiro de ojetivos n de(nio do miente de wwD e o livro wodel gheking gqHH presentou o modelo pr veri(o utomtiD ssim omo o trlho wodel gheking estrt

tte whines inHI desreveu trnsformo de ew pr wD in)uenindo o mdulo de veri(o utomti pretendido pelo wtodo de e(nmento wh %nF
possvel enontrr vrios trlhos que propem mientes pr se plir o wtodo de e(nmento ewF o presentds lingugens pr desrio do wodelo fsio em diversos nveis e trlhos omplementres mostrm utilizo do mtodo de re(nmentoF e seguirD presentmEse os prinipis mientes que in)uenirm o trlho wtodo de e(nmento wh %nF e lingugem esmv @estrt tte whine vnguge A qHRD fHID esHT foi desenvolvid om propost de espei(rD simulr e testr interfes de omponentes gyw d wirosoft n pltform FxiF ist lingugem oferee desrio sed em omponentes e oriento ojetosF esmv suport pr e ps ondies de funesD geE rndo exees so lgum desss lusuls no sej respeitdF u utilizo omo wodelo fsioD e no mtodo de re(nmento ewD permite que esmv sej exeutdD ntes que se gere o digo exeutvelD por meio d esmv est oolF gomo reurso de doumento do sistemD possvel utilizr wirosoft ord pr desrever e espeiE (r o sistemD e posteriormente sumeter este doumento ferrment esmv est

ool esHT ou o ompildor d lingugemD que ger digo g e pode ser ssoido pltform FxiF
ew @ixtensile ew A enlHHD euHI um projeto ypen oure onde possvel espei(r sistems no modelo ew om possiilidde de depurr em miente visul e nimr psso psso exeuoF ispeilmente pr espei(o de grmtisD um viso diferenid presentd onde mostrmEse vlores de funes referentes os nodos d rvore de prserF presentdo um ompildor pr g onde possvel ompilr mdulos seprdmente e olodos em iliotes pr posterior usoD uE mentndo reusilidde de omponentesF ew oferee um interfe pr g onde possvel de(nir funes em g pr serem utilizds omo esttis ou omo funes ew monitordsD e de(nies de funes externsF elm dissoD est lingugem onE tm um reurso sedo n propost de unuthD viterte rogrmming unuVQD onde
A um rquivo ontendo espei(o e doumento em v i sumetido diretE mente o ompildor ewD gerndo doumento e o digo em g prtindo d

mesm fonteF possvel enontrr diverss espei(es que plim o mtodo de re(nmento ew utilizndo ew omo wodelo fsioF

he ew orkenh helWW de(ne um lingugem de spei(o ewD hmd

PHV

gptulo TF gonluso

ewEv @ew pei(tion vnguge AD e um rquitetur pr um ferrmentD ew

orkenhF y miente desenvolvido um rouo pr desenvolvimento ew e inlui funionliddes sisD omo prserD represento intern do modelo em um rvore sintti strtD veri(o de tiposD um interpretdor pr simulo e nimes de exeuoF m mdulo de grnde relevni reliz trnsformo do wodelo fsio em um pwD otendo um lingugem intermediriD ewEsv @ew sntermedite vnguge AD e seu respetivo re(nmento pr um entrd de veri(dor de modelosD no so o wF l mdulo pode ser onferido em inHIF
esmqofer hD h um sistem pr espei(o em ew onstrudo omo um extenso d lingugem funionl qofer peHT onde form introduzidos oneitos de estdos e tulizes prlelsF ist ferrment present um interfe gr( om filidde pr depuro e suporte tnis de viterte rogrmmingF ys onE eitos de estruturs e omposio implementds em esmqofer filitm estruturo e omposio de suEmquinsD filitndo plio dos diferentes tipos de re(nE mentoF e lingugem goreew pqqHTD pqqHSD pqqwHTD prHT foi reentemente desenE volvid pr estr o mis prximo possvel d de(nio ew no vipri quide qurWSF essimD seu ojetivo proporionr um miente de lto nvel pr espei(o de sisE temsD om um emsmento mtemtioD modelos strtos e sem tiposD permitindo o re(nmento psso psso pr implementoF y projeto goreew onsiste em um

prserD um interpretdorD um eslondor e um menismo strto de rmzengemF essim possvel exeutr s mquins ews espei(dsF e estrutur d ferrment sed em pluginsD filitndo extenses lingugem so neessrioF
imor nenhum destes mientes desrev um lingugem gr( de espei(oD existem trlhos que propem um semnti forml pr digrm wvD priniplE mente de digrms de trnsio de estdos e tividdesD omo o so dos trlhos de slen yer yeHQD de elexnder unpp e tephn werz uwHP e frgerD gvrr e ioene fgHHD fgHHF hest formD surgem inditivos pr integres dos mientes presentdos om um lingugem gr(D omo o so do trlho gvHHD que estende esmqofer pr ser um simuldor de mquins de estdos de wvF xo so dos trlhos de slen yer yeHHD yeHQ e no trlho gHQD utilizouEse ew

orkenh pr de(nir um semnti pr digrms wvF yutros detlhes sore utilizo de digrms wv pr desrio ew podem ser enontrdos no livro sore ew fHQD eo TFSFIF
odos estes trlhos se seim n espei(o de wvF imor tenh um propost de modelgem universlD os esforos nest lingugem soD n mioriD direioE ndos lingugens impertivs e orientds ojetosF hess formD utilizo diret

TFPF

rlhos eliondos

PHW

de wv pr modelr sistems em ew pode rretr em representes desneessE risD omo o so de de(nies de exeuo em prleloD prinpio no qul implito o modelo ewF elm dissoD oneitos presentes em ew podem no ter um de(nio espe( em wvF im deorrni destes ftosD o wtodo de e(nmento wh %n prope su lingugem de espei(o de wodelo fsioD vingugem de wodelgem wh %nD sed em digrms de estdos de wvD porm om representes mis simples e om onstrues direionds o modelo ewF gonsiderndo esmvD ewD he ew orkenh e esmqoferD meniondos nE teriormenteD frger relt dois prinipis prolems em fHQD eo VFQF rimeiroD estes mientes pens suportm tnis de re(nmento onsiderndo suEmquinsD re(nmento de ddos e suErotinF y segundoD nenhum deles present o modelo ew ssnronoF imor goreew no estej nest vlio de frgerD este sistem tmm no resolve nenhum desses dois prolemsF gom utilizo de higrm de rnsio de istdosD higrm de d de istdo e gontrole qlolD ees QFIFQD QFQFQ e QFIFQFW respetivmenteD em vwwD possvel utilizr utomtimente o re(nmento de uEotins e ixtenso gonservE tivD e om ipo estrto de hdosD relizEse o e(nmento de hdosD que no esto presentes nos mientes meniondos nteriormenteF essimD possvel ordr todos os tipos de re(nmento meniondos n eo PFPFPF e de(nio de proprieddes no qlossrio de vww fundmentl pr expressr rterstis do homnio d eplio e s demis ferrments itds no presenE tm tl possiilidde emutid n desrio do wodelo fsioF sntegrd lingugem de esrit do wodelo fsioD s proprieddes tm importnte ppel n veri(o uE tomti e trnsprente d espei(oF elm dissoD vww de(nid em termos d lingugem wh e herd sus rE %n terstisD sendo ssimD vww permite modelr exeues ssnrons nturlmenteD e pontos de sinronismo so de(nidos por omunio entre gentes onde se enontrm prmetros lssi(dos omo out ou inoutF eind no est ompletmente de(nido um miente de exeuo rel pr linE gugem wh %nF ys trlhos relizdos por wrio vodo voHT e uristin ntos dHT tm o ojetivo de onstruir um ompildor de wh pr gerr digo em %n gCC om determinds otimizes de digoF ormD lteres om novs onstruE es n lingugem impedirm o uso dequdo deste ompildorF x eo de trlhos futurosD TFQD este tem ser novmente orddo om novs propostsF

PIH

gptulo TF gonluso

TFQ

rlhos puturos

gonforme desrito no gptulo SD ind existem lguns estudos que podem ser relizE dos pr melhorr represento gr( do wodelo fsioF possvel propor um mneir mis dequd e no intrusiv pr desrever prepro iniil do sistemD ssim omo pr expressr em lto nvel omunio entre os gentes vi servios disponiilizdosF m outr melhori possiilidde de sepro de omportE mentos representdos no gontrole qlol de um mduloD visndo mior legiilidde e resoF elm dissoD tulmenteD s stres presentds pelos higrms de d de istdo e pelo higrm de rnsio de istdos possiilitm vlido mnul do sistem relizd so superviso de lientes e desenvolvedoresD isto D relizd nos domnios d eplio @lienteA e dos wodelos @desenvolvedoresAF m possvel trlho seri possiilitr exeuo do wodelo fsio intertivmente reeendo omo entrd ddos do usurio ou sds de ontrEexemplo do veri(dor de modelosF yutro tem interessnte nimo em im dos digrms de vww enqunto o sistem exeutdoF istes rteftos terim o ojetivo de filitr depuro do sistem e tornr vlido um proesso mis migvelF hurnte o re(nmento de wh pr um entrd de veri(dor de modelosD %n lguns pontos d lingugem no form possveis de serem trtdosF odeEse itr o trtmento d regr de juste no re(nmento de funes om vrios rgumentosD es om regr de trnsio om loop e lguns tipos de wh que no form trtdosF %n hurnte os estudos de veri(o utomtiD foi possvel onsttr densidde do tem e di(uldde qundo plid o modelo ewF iste ssunto que ind pode ser stnte explordoD priniplmente pr o miente do wtodo de e(nmento wh desritoF %n e trnsformo pr xuwD representndo o sistem omo um todoD usou um situo onde no foi possvel oter um respost do modelo xuwF es lterE es relizds mostrrm que deomposio dos mdulos pr oter veri(o seprd form stisftrisD indindo um nov ordgem melhor que iniilF hurnte o re(nmento de wh pr um entrd de veri(dor de modelosD %n gerEse um lingugem intermediri hmd de gEwh %n@goreEwh %nAF ist pode ser onsiderd o nleo d lingugem wh %nF endo ssimD possvel reduzir o trlho de onstruo de um ompildor ou interpretdor se estes forem desenvolE vidos pr gEwh %nD que um lingugem mis simples e om menos onstrues serem vlidsF elm dissoD futurs onstrues em wh podem ser de(nids %n sem neessidde de lterr o ompildorD stndo pens presentr o re(nmento wh pr gEwh orrespondenteD onforme presentdo n eo RFR pr %n %n

TFQF

rlhos puturos

PII

verso tul de wh %nF yutr vntgem d lingugem gEwh su proximidde om lingugens de %n entrd de veri(dores de modelosF intoD possvel relizrD om ert filiddeD o re(nmento d espei(o em gEwh pr outrs ferrments lm de xuwF %n mm seir interessnte vlir um trnsformo pr provdores de teorem e onfrontr esss ordgens em termos de mientes e ferrments pr ontriuir om melhores resultdos n veri(o de sistemsF odeEse resumir os trlhos futuros d seguinte formX

desrio mis dequd d prepro do sistemD de form no intrusiv e utilizndo um represento proprid o homnio dos wodelosY oter um represento gr( pr modelr omunio entre gentes de form simples e ojetivY inorporo de novos omportmentos o sistem de form independente entre siD melhorndo legiilidde do gontrole qlolY desenvolvimento de um miente pr vlido intertiv e ilustrtivY re(nmento de wh pr gEwh dos itens fltntesX lguns tipos e es %n %n om loop Y trtmento pr reonheimento utomtio d regr de justes em funes om rgumentosY espei(o d lingugem gEwh %nD onde onstrues de wh so de(niE %n ds em termos de onstrues mis simplesY desenvolvimento de um ompildorD interpretdor ou miente de exeuo pr gEwh %nD de form simpli(r este trlhoY trnsformo wh pr xuw deompost em mdulosD que so veri(E %n dos seprdmente simulndo s omunies entre gentesF trnsformo de gEwh em entrds pr diferentes veri(dores de modeE %n losD permitindo melhor vlio dos mtodos formis de veri(oF

efernis filiogr(s
efvWS tenEymond erilD igon frgerD nd rns vngmkD reliminr

report for the hgstuhlEeminr WSPQX wethods fors emntis nd peiE (tionD IWWSF
efvWT tFEF erilD iF frgerD nd rF vngmkD he stem oiler se studyX

gompetition of forml progrm spei(tion nd development methodsD porml wethods for sndustril epplitionsF peifying nd rogrmming the temEfoiler gontrol @tFEF erilD iF frgerD nd rF vngmkD edsFAD veture xotes in gomputer ieneD volF IITSD pringerEerlgD IWWTD ppF I!IPF
erWT erWT tFEF erilD he EookD gmridge niversity ressD gmridgeD IWWTF tenEymond erilD temEfoiler gontrol pei(tion rolemD porE ml wethods for sndustril epplitionsD peifying nd rogrmming the tem foiler gontrol @the ook grow out of hgstuhl eminrD tune IWWSAF @vondonD uAD pringerEerlgD IWWTD ppF SHH!SHWF euHI

sm ypen oureD e pges t httpXGGwwwFxsmForgGD PHHID httpXGGwwwFxsmForgGF


wF enlu' nd F uutterD tim erlow nd sl xeustdtD wv P nd the ni(ed roessX rtiE

exHS

l yjetEyriented enlysis nd hesignD Pnd edFD eddisonEesley yjet ehnology eriesD eddisonEesley rofessionlD PHHSF
enlHH wF enlu'D ew ! en ixtensileD gomponentEfsed estrt tte wE

hines vngugeD estrt tte whinesX heory nd epplitions @F qurevih nd F uutter nd wF ydersky nd vF hieleD edFAD vxgD volF IWIPD pringerEerlgD PHHHD ppF TW!WHF
fVH lphEtohn fkD gorretness preserving progrm re(nementsX roof

theory nd pplitionsD wthemtil genter rtsD volF IQID wtheE mtil gentreD emsterdmD he xetherlndsD IWVHF
PIQ

PIR fVI

ipixgse fsfvsyqpsge

lphEtohn fkD yn orret re(nement of progrmsFD tF gomputF ystF iF PQ @IWVIAD noF ID RW!TVF

ffh+ WT

gF feierleD iF frgerD sF hurdnoviD F qlsserD nd iF ioeneD e(E

ning estrt whine pei(tions of the tem foiler gontrol to ell houmented ixeutle godeD porml wethods for sndustril epplitiE onsF peifying nd rogrmming the temEfoiler gontrol @tFEF erilD iF frgerD nd rF vngmkD edsFAD vxgD noF IITSD pringerD IWWTD ppF TP!UVF
ffu+ HR wihel flserD imon fumlerD elexnder unppD olfgng eifD nd endres humsD sntertive veri(tion of uml stte mhinesD roF Tth sntF gonfF porml ingineering wethods @sgpiw9HRAD volF QQHVD PHHRD ppF RQR!RRVF fgHH igon frgerD elessndr gvrrD nd ilvini ioeneD en sm semnE

tis for uml tivity digrmsD ewe 9HHX roeedings of the Vth snterE ntionl gonferene on elgeri wethodology nd oftwre ehnology @vondonD uAD pringerEerlgD PHHHD ppF PWQ!QHVF
fgHH D wodeling the dynmis of uml stte mhinesD ew 9HHX roeeE dings of the snterntionl orkshop on estrt tte whinesD heory nd epplitions @vondonD uAD pringerEerlgD PHHHD ppF PPQ!PRIF ferHP hniel wF ferryD he inevitle pin of softwre developmentD inluE

ding of extreme progrmmingD used y requirements voltilityD snterE ntionl orkshop on imeEgonstrined equirements ingineering PHHP @gi9HPA @PHHPAD W!IWF
fqHH iF frger nd F qotzheinD he light ontrol se studyD tF niversl gomE puter iene T @PHHHAD noF UD SVH!SVSF frWH iF frgerD e vogil ypertionl emntis for pull rologF rt sX eleE

tion gore nd gontrolD gv9VWF Qrd orkshop on gomputer iene vogi @iF frgerD rF uleine fningD wF wF ihterD nd F hnfeldD edsFAD vxgD volF RRHD pringerD IWWHD ppF QT!TRF
frWH D e vogil ypertionl emntis of pull rologF rt ssX fuiltE

in redites for htse wnipultionD wthemtil poundtions of gomputer iene @fF ovnD edFAD vxgD volF RSPD pringerD IWWHD ppF I! IRF

PIS frWP D e vogil ypertionl emntis for pull rologF rt sssX fuiltE

in redites for pilesD ermsD erithmeti nd snputEyutputD vogi prom gomputer iene @F woshovkisD edFAD ferkeley wthemtil ienes eserh snstitute ulitionsD volF PID pringerD IWWPD ppF IU!SHF
frHQ iF frgerD he ew e(nement wethodD porml espets of gomputing

IS @PHHQAD PQU!PSUF
frHQ igon frgerD he ew qround wodel wethod s poundtion for equiE

rements ingineeringFD eri(tionX heory nd rtieD PHHQD ppF IRS! ITHF


fHH iF frgerD F ppinghusD nd tF hmidD eport on rtil eppliE

tion of ews in oftwre hesignD estrt tte whinesX heory nd epplitions @F qurevih nd F uutter nd wF ydersky nd vF hieleD edFAD vxgD volF IWIPD pringerEerlgD PHHHD ppF QTI!QTTF
ftHS qrdy foohD tmes umughD nd svr tosonD ni(ed wodeling

vnguge ser quideD Pnd edFD eddisonEesley yjet ehnology eriesD eddisonEesley yjet ehnology eriesD PHHSF
f+ HH wihel flserD olfgng eifD qerhrd hellhornD uurt tenzelD nd enE dres humsD porml system development with kivFD peiD PHHHD ppF QTQ! QTTF fHH iF frgerD iF ioeneD nd tF hmidD gpturing requirements y esE

trt tte whinesX he light ontrol se studyD tF niversl gomputer iene T @PHHHAD noF UD SWU!TPHF
fWV iF frger nd F hulteD he(ning the tv irtul whine s ltE

form for rovly gorret tv gompiltionD wthemtil poundtions of gomputer iene IWWVD PQrd snterntionl ymposiumD wpg9WVD frnoD gzeh epuli @vF frim nd tF qrusk nd tF ltuskD edFAD vxgD noF IRSHD pringerD eugust IWWVF
fWV D rogrmmer priendly wodulr he(nition of the emntis of

tvD porml yntx nd emntis of tv @tF elvesEpossD edFAD vxgD noF ISPQD pringerD IWWVF
fHI wF frnett nd F hulteD he efgs of pei(tionX esmvD fehviorD

nd gomponentsD xovemer PHHIF

PIT fHQ

ipixgse fsfvsyqpsge

iF frger nd F trkD estrt tte whinesX e wethod for righEvevel

ystem hesign nd enlysisD pringerEerlgD PHHQF


fsfHS F F figonhD pF ireloD F yF hi sorioD nd wF eF F figonhD e linE

gugem de espei(o forml whn PFHD ehF eport HHIGPHHSD % vvGhggGpwqD xovemro PHHSF
fvWV F tF F fk nd tF von rightD e(nement lulusX e systemti inE

trodutionD pringerEerlgD IWWVF


gvHH eF gvrrD epplying estrt tte whines to formlize nd integrte

the wv lightweight methodD hFhF thesisD niversity of gtniD iilyD stlyD PHHHF
ggq+ HP eF gimttiD iF glrkeD iF qiunhigliD pF qiunhigliD wF istoreD wF oE veriD F estiniD nd eF hellD xuw ersion PX en ypenE

oure ool for ymoli wodel ghekingD roF snterntionl gonferene on gomputerEeided eri(tion @ge PHHPA @gopenhgenD henmrkAD vxgD volF PRHRD pringerD tuly PHHPF
ggy+ HS oerto gvdD elessndro gimttiD imnuele ylivettiD qvin ueighE renD wro istoreD wro overiD imone empriniD nd enE drey hltsevD xusmv PFQ tutorilD ehF reportD sgEsD PHHSD httpXGGnusmvFirstFitFitGF ggy+ HS D xusmv PFQ user mnulD ehF reportD sgEsD PHHSD httpXGGnusmvFirstFitFitGF ggy+ HT

xusmv home httpXGGnusmvFirstFitFitGF


D

pgeD

vD

xovemer

PHHTD

gqHH

idmund wF glrkeD yrn qrumergD nd horon eF eledD wodel hekingD he ws ressD PHHHF

gHP

qF hel gstillo nd F ppinghusD hesigning softwre for internet teE

lephonyX experienes in n industril development proessD heory nd epplitions of estrt tte whines @eF flssD iF frgerD nd F quE revihD edsFAD hloss hgstuhlD sntF gonfF nd eserh genter for gomE puter ieneD PHHPF
gHQ eF gvrrD iF ioeneD nd F ndurrD sntegrting wv stti nd

dynmi views nd formlizing the intertion mehnism of wv stte

PIU

mhinesD estrt tte whines PHHQ!edvnes in heory nd eppliE tions @iF frgerD eF qrgntiniD nd iF ioeneD edsFAD veture xotes in gomputer ieneD volF PSVWD pringerEerlgD PHHQD ppF PPW!PRQF
gHH qiuseppe hel gstillo nd uirsten interD wodel heking support for

the ew highElevel lngugeD ools nd elgorithms for gonstrution nd enlysis of ystemsD PHHHD ppF QQI!QRTF
g+ WU prniso gorellD F houD ioyu ongD wihel vngevinD nd idurd gernyD wultiwy heision qrphs for eutomted rrdwre eri(tionD porml wethods in ystem hesign IH @IWWUAD noF ID U!RTF g+ WU D wultiwy deision grphs for utomted hrdwre veri(tionD porml wethods in ystem hesign IH @IWWUAD noF ID U!RTF hfHI tF herrik nd iF foitenD e(nement in z nd ojetEzD porml epprohes to gomputing nd snformtion ehnologyD pringerEerlgD PHHIF helWW qF hel gstilloD owrds gomprehensive ool upport for estrt tte

whinesX he ew orkenh ool invironment nd erhitetureD epE plied porml wethods " pwErends WV ITRI @IWWWAD QII!QPSF
helHI D he ew workenhF tool environment for omputerEided

nlysis nd vlidtion of strt stte mhine modelsD hFhF thesisD niversitt derornD qermnyD PHHIF
hijTV iF F hijkstrD e onstrutive pproh to the prolem of progrm orE

retnessD fs V @IWTVAD noF QD IUR!IVTF


hijUT iF F hijkstrD e disipline of progrmmingD rentieErllD IWUTD hst e UTXI IFixF hisWW F histefnoD erhitettur VT e sistem dei proessi di wsxs dll speiE

( sm l odie eseguiileD wster9s thesisD niversity of gtniD iilyD stlyD IWWVGWWF


diWV F F de oever nd uF ingelhrdtD ht re(nementX wodelEoriented

proof methods nd their omprisonD gmridge niversity ressD gmE ridgeD IWWVF
dHT uristin wgnni dos ntosD m rouo pr otimizes em mquiE

ns de estdo strtsD wster9s thesisD niversidde pederl de wins qerisD PHHTF

PIV iF WW

ipixgse fsfvsyqpsge

iF frgerD righ vevel ystem hesign nd enlysis using estrt tte

whinesD gurrent rends in epplied porml wethods @pwErends WVA @hF rutter nd F tephn nd F rverso nd wF llmnnD edFAD vxgD noF ITRID pringerEerlgD IWWWD ppF I!RQF
prHT pqqHS oozeh prhodD goreew ser wnulD eptemer PHHTF F prhodD F qervsiD nd F qlsserD hesign nd pei(tion of

the goreew ixeution ingineFD ehF eport pEgwEEPHHSEHPD gomputing ieneD imon prser niversityD furnyD fFgFD gndD peE rury PHHSF
pqqHT PHHTF pqqwHT F prhodD F qervsiD F qlsserD nd wF wemonD hesign nd peE D goreewX en ixtensile ew ixeution ingineD eptemer

i(tion of the goreew ixeution ingineF rt IX he uernelD ehF eport pEgwEEPHHTEHWD gomputing ieneD imon prser niE versityD furnyD fFgFD gndD wy PHHTF
pvWV tF pitzgerld nd F qF vrsenD wodeling systemsF prtil tool nd tehE

niques in softwre developmentD gmridge niversity ressD gmridgeD IWWVF


pfVU trF prederik F frooksD xo silver ulletX essene nd idents of softwre

engineeringD gomputer PH @IWVUAD noF RD IH!IWF


p+ WR F pilkornD rF eF hneiderD eF holzD eF trsserD nd rkentinD i

ser9s quideD ehF eport pi i ID hEVIUQHD iemens eqD wunhenD qermnyD IWWRF
phHS hvid pitelsonD tmes elhD nd tim hviesD prom predites to proE

grmsX the semntis of method lngugeD impsio frsileiro de wtoE dos pormis @fwpA @PHHSAF
qqHP olfgng qrieskmpD uri qurevihD olfrm hulteD nd wrgus eE nesD qenerting (nite stte mhines from strt stte mhinesD se 9HPX roeedings of the PHHP egw sqyp interntionl symposium on oftwre testing nd nlysis @xew orkD xD eAD egw ressD PHHPD ppF IIP!IPPF

PIW qHR uri qurevihD fenjmin ossmnD nd olfrm hulteD emnti isE

sene of esmvD ehnil eport wEEPHHREPUD wirosoft eserhD wrh PHHRF


qurWS F qurevihD ivolving elgers IWWQX vipri quideD pei(tion nd liE dtion wethods @iF frgerD edFAD yxford niversity ressD IWWSD ppF W!QTF rruWT rolWU F rF rrdinD F rr9ilD nd F F uurshnD gyexD RPQ!RPUF qerrd tF rolzmnnD he wodel gheker sxD siii rnstions on oftwre ingineering PQ @IWWUAD noF SD PUW!PWSF sfwHU sfwD sm softwre E rtionl method omposer E rtionl uni(ed proessD perury PHHUD httpXGGwwwEQHTFimFomGsoftwreGwdtoolsGrupGF sitHS urmnin uF syerD heshis hooD iF ellen imersonD nd twhr tinD yn prtitioning nd symoli model hekingFD pw @tohn pitzgerldD sn tF ryesD nd endrzej rlekiD edsFAD veture xotes in gomputer ieneD volF QSVPD pringerD PHHSD ppF RWU!SIIF tihWI tFF furhD iFwF glrkeD nd hFiF vongD ymoli model heking with

prtitioned trnsition reltionsD snterntionl gonferene on ery vrge le sntegrtion @IWWIAD RW!SVF
tih+ WR tFF furhD iFwF glrkeD hFiF vongD uFvF wwillnD nd hFvF hillD ymE

oli model heking for sequentil iruit veri(tionD siii rnstions on gomputerEeided hesign of sntegrted giruits nd ystems IQ @IWWRAD noF RD RHI!RPRF
uFvWP uFvF wwillnD he w systemD ehF eport gwEgEWPEIQID gwD IWWPF uwHP elexnder unpp nd tephn werzD wodel heking nd ode genertion

for uml stte mhines nd ollortionsD roF Sth shF ools for ystem hesign nd eri(tion @PHHPAD TW!TRF
uxHP wrt F uwitkowskD qethin xormnD nd hvid rkerD swX roE

ilisti symoli model hekerD gomputer erformne ivlution G yyvD PHHPD ppF PHH!PHRF
unuVQ honld iF unuthD viterte progrmmingD ehnil report exEgEVQE WVID tnford niversityD heprtment of gomputer ieneD IWVQF

PPH unuVR

ipixgse fsfvsyqpsge

D he eookD spirl edition edFD eddisonEesley rofessionlD tE nury IWVRF

voHT

wrio gelso gndin votoD m rouo pr ompilo de linguE

gens de espei(o smD wster9s thesisD niversidde pederl de wins qerisD PHHTF
vWW tohn vilius nd svn ltorD he prodution ellX en exerise in the forE

ml veri(tion of uml modelD ehF reportD urku gentre for gomputer ieneD IWWWF
vWW tohn vilius nd svn orres ltorD vwvX tool for verifying wv

modelsD ehF eport gEEPUPD urku gentre for gomputer ieneD IWWWF
vgHP ghrles iF veisersonD gli'ord teinD onld vF ivestD nd homs rF gormenD elgoritmosX eori e rtiD trduo d segund edio edFD gmpusD PHHPF vtdWU porml ystems @iuropeA vtdFD pilure hivergene e(nementX phP

ser wnulD IWWUF


vWW hen ve0ngwell nd hon idrigD wnging oftwre equirements E e

ni(ed epprohD Ist edFD eddison esley rofessionlFD ytoer IWWWF


wwWQ uF vF wwillnD ymoli model hekingD hFhF thesisD uluwer edemi ulishersD IWWQF wwWW D qetting strted with wD ehF eport ge WRUHRD gdene ferE keley vsD IWWWF weWU vF werelliD e(ning n ew spei(tion of the prodution ell to gCC

odeD tF niversl gomputer iene Q @IWWUAD noF SD TTT!TVVF


weyWU fertrnd weyerD yjetEoriented softwre onstrutionD Pnd edition edFD rentieErllD snFD pper ddle iverD xtD eD IWWUF worVU toseph wF worrisD e theoretil sis for stepwise re(nement nd the proE

grmming lulusD iF gomputF rogrmF W @IWVUAD noF QD PVU!QHTF


worWR grroll worgnD rogrmming from spei(tions @Pnd edFAD rentie rll snterntionl @uA vtdFD rertfordshireD uD uD IWWRF

PPI yeHH sF yerD wore meningful wv modelsD roF yyv @ydneyD eustrliAD siii gomputer oiety ressD PH!PQ xovemer PHHHD ppF IRT!ISUF yeHQ slen yerD en ew semntis for wv derived from the metEmodel nd

inorporting tionsD estrt tte whines E edvnes in heory nd epplitionsFD vxgD volF PSVWD roeedings IHth snterntionl orkshopD ew PHHQD PHHQF
yWP F ywreD tF wF ushyD D nd xF hnkrD X e prototype veri(tion

systemD IIth snterntionl gonferene on eutomted hedution @gehiA @rtogD xA @heepk upurD edFAD veture xotes in erti(il sntelliE geneD volF THUD pringerEerlgD jun IWWPD ppF URV!USPF
ygWV m ywreD tohn ushyD xF hnkrD nd hvid tringerEglvertD X

n experiene reportD epplied porml wethods"pwErends WV @fopprdD qermnyA @hieter rutterD erner tephnD olo rversoD nd wrkus llmnD edsFAD veture xotes in gomputer ieneD volF ITRID pringerE erlgD ot IWWVD ppF QQV!QRSF
peHT qofer puntionl progrmming environmentD qofer ! funtionl progrmE

ming environmentD heemer PHHTD httpXGGwwwFseFogiFeduG mpjGgofeE rrGindexFhtmlF


xHT vrry ulson nd ois xipkowD sselleD vD xovemer PHHTD httpXGGwwwFlFmFFukGreserhGhvgGsselleGF eiWP F eifD he us ystemX ystemti gonstrution of eri(ed oftwreD IIth gonferene on eutomted hedutionF roeedings @hF upurD edFAD veture xotes in gomputer ieneD elnyD xD eD pringerD IWWPF eiWS D he us epproh to oftwre eri(tionD uorsoX wethodsD vngugesD nd ools for the gonstrution of gorret oftwre @wF froy nd F thnihenD edsFAD veture xotes in gomputer ieneD volF IHHWD pringerD IWWSF esHT wirosoft eserhD he strt stte mhine lngugeD vD heemer PHHTD httpXGGreserhFmirosoftFomGfseGsmlGF qe+ WT F uF frytonD qF hF rhtelD eF ngiovnniEinentelliD pF omenziD eF ezizD F EF ghengD F idwrdsD F uhtriD F uukimotoD eF rdoD F E deerD F uF njnD F rwryD F F hipleD qF wmyD nd F illD sX

PPP

ipixgse fsfvsyqpsge

system for veri(tion nd synthesisD roeedings of the iighth snternE tionl gonferene on gomputer eided eri(tion ge @xew frunswikD xtD eA @jeev elur nd homs eF renzingerD edsFAD volF IIHPD prinE ger erlgD G IWWTD ppF RPV!RQPF
tfHR tmes umughD svr tosonD nd qrdy foohD ni(ed wodeling

vnguge eferene wnulD Pnd edFD eddisonEesley yjet ehnology eriesD eddisonEesley rofessionlD PHHRF
h tF hmidD ixeuting ew spei(tions with esmqoferD e pges t httpXGGwwwFtydoFdeGesmqoferF h hHI tohim hmidD esmgoferD httpXGGwwwFtydoFdeGesmqoferGF qF hellhornD eri(tion of ew e(nements sing qenerlized

porwrd imultionD tournl of niversl gomputer iene U @PHHIAD noF IID WSP!WUWF
hHI tF hmidD gompiling estrt tte whines to gCCD tournl of niE versl gomputer iene U @PHHIAD noF IID IHTV!IHVUF piWW wF pielmnnD eutomti eri(tion of estrt tte whinesD roeE edings of IIth snterntionl gonferene on gomputerEeided eri(tion @ge WWAD vxgD volF ITQQD pringerEerlgD IWWWD ppF RQI!RRPF piHH wF pielmnnD wodel gheking estrt tte whines nd feyondD snE terntionl orkshop on estrt tte whines ew PHHHD vxgD pringerEerlgD PHHHD ppF QPQ!QRHF fHI F trkD tF hmidD nd iF frgerD tv nd the tv irtul whineX

he(nitionD eri(tionD lidtionD pringerEerlgD PHHIF


hWT tF gF F oodok nd tF hviesD sing zX pei(tionD re(nementD nd

proofD rentieErllD IWWTF


ieHT preek iedijkD he seventeen provers of the worldD veture xotes in gomE puter ieneD volF QTHHD pringerD PHHTF inWU uF interD wodel heking for strt stte mhinesD tournl of niverE sl gomputer iene Q @IWWUAD noF SD TVW!UHIF inHI uirsten interD wodel heking strt stte mhinesD hFhF thesisD eE hnil niversity of ferlinD PHHIF

PPQ irUI xiklus irthD rogrm development y stepwise re(nementD gommunF egw IR @IWUIAD noF RD PPI!PPUF gHS wnuel vier nd en gvlntiD wehnised re(nement of proeduresD impsio frsileiro de wtodos pormis @fwpA @PHHSAF F VS F qurevihD e xew hesisD estrtsD emerin wthemtil oiety @IWVSAD QIUF

Вам также может понравиться