Você está na página 1de 5

EspecificaoeVerificaodeSistemas:RelatrioFinal

PlnioFinkenauerJunior
ControllingCarsonaBridge:
EstratgiadeRefinamento:
Modeloinicial(m0):limitaronmerodecarros
PrimeiroRefinamento(m1):Introduzirapontedemonica
SegundoRefinamento(m2):Introduodosemforo
TerceiroRefinamento(m3):IntroduodosSensores.
*SegundoRefinamento(m2):
Compreendeosrequisitosligadosaoequipamento,responsveispelainserodedoissemforos
comduascorescada(verdeevermelho),quecontrolamapassagemdoscarrosnaponte.
Figura1:Refinamento2
I)OrefinamentocriaumnovoconjuntoCOLOReduasnovasconstantes:greene
red(representandoascoresdosemforo).Nessenovocontexto(Figura2)sogeradosdoisnovos
axiomas:axm2_1:COLOR={green,red},definindoqueasconstantesgreeneredsoelementosdo
conjuntoColoraxm2_2:green#redgarantindoqueascoresdosemforosejamdiferentes.
Inserequatrovariveis:ml_tl,it_tl(querepresentamosemforoparaaterraprincipaleailha,
respectivamente),ml_pass,il_pass(representamomesmo,pormassumemvaloresbinrioseso
sobrepostassvariveisa,b,cdorefinamento1).Diversasinvariantesforamincludas:@inv1ml_tl
{red,green},@inv2il_tl{red,green}quegarantemqueasnovasvariveis(representandoos
semforos)assumemosvaloresredougreen(requisitoEQ1).Asinvariantes@inv3ml_tl=greenc=0
e@inv12ml_tl=greena+b+c<dgarantemquequandoosemforodaterraprincipalestgreen,no
hcarrosnaponteindoparaaterraprincipal(c=0)enemqueolimitedecarrostenhasidoatingido.
Figura2:NovocontextocriadonorefinamentoII.
Jasinvariantes@inv4il_tl=greena=0e@inv11il_tl=greenb>0asseguramosemelhanteas
anteriores,pormparaocasodosemforodailhaestivercomovalorgreen.
OseventosML_outeIL_out,querepresentamasadadecarrosdaterraprincipaledailha,
foramrefinados,permitindo(atravsdeguardas)asadadecarrosdedeterminadareaapenasquandoo
semforodarespectivareaestivercomovalorgreen.Doisnovoseventossocriados:ML_tl_green:
transformaosemforodaterraprincipalemverde,quandoascondiessovlidas,eIL_tl_greenque
mudaosemforodailhaparaverde.
II)Obrigaesdeprovageradas:
Oseventosanterioresquenoforamrefinados(ML_ineIL_in)saotriviaisdeseremprovados.Oque
deveserprovado:
ML_out/inv2_4/INV:
ILout/inv23/INV
sendoINV2_4:il_tl=green=>0<b^a=0eINV2_3:ml_tl=green=>a+b<d^c=0geramse
conflitos,impedindodeprovlaspoistaisprovasassumemqueambosossemforospossuemvalorgreen,
oqueinvibializaavalidade.Portantoacrescentaseumanovainvariante:INV2_5:mt_tl=redvit_tl=
red,garantindoqueambossemforosnomaisassumirogreensimultaneamente.
MLout/inv23/INV
Garantirquequandoumcarrosaidaterraprincipalnenhumestchegando(sentidonico)enoatingeo
limitedecarrosnaponterumoilha.Talobrigaocontmumaparticularidadeparaocasodeolimitede
carrossupracitadoseratingido,obrigandoosemforoaficarvermelho(ml_tl=red)enquantoo(ltimo)
carroentranailha.DessaformaML_outdividoemML_out1eML_out2.
ILout/inv24/INV
Preservarapropriedadequepermitecarrossaremdailhaenquantohajacarrosnamesmaecarrosno
estejamchegandoilha.Apresentaaparticularidadederestarapenasumcarronailha,oqueobrigariao
semforoaficarvermelho(il_tl=red)depoisqueesseltimosair.AssimcomoML_outessaobrigao
dividaemduas.
Asobrigaesgeradaspelanovainvarianteintroduzidaexigemqueoseventosintroduzamnovasaoes:
MLtlgreen/inv25/INV
Paragarantirqueosemforodaterraprincipalmudaparaverdedadasdeterminadascondieseodailha
fiquevermelho(act2:iltl:=red)
ILtlgreen/inv25/INV
Paragarantirqueosemforodailhamudeparaverdedadasdeterminadascondieseodaterraprincipal
fiquevermelho(act2:ml_tl:=red)
MLout/inv26/INV MLout/inv27/INV
ILout/inv26/INV ILout/inv27/INV
MLtlgreen/inv26/INV MLtlgreen/inv27/INV
ILtlgreen/inv26/INV ILtlgreen/inv27/INV
sendo@inv6il_pass{0,1}e@inv7ml_pass{0,1}garantemquecadasemforossetornaverde
depoisquepelomenosumcarrotenhapassadonaoutradireo.Evitaqueossinaisfiquemsealternado
rapidamentequandonohcarrosnemchegandonemsaindodailha(outerraprincipal).
Paraprovardeterminadaobrigaodeprovanecessrioainclusodetaisinvariantes:@inv8ml_tl=red
ml_pass=1e@inv9il_tl=redil_pass=1.
*TerceiroRefinamento(m3):
Compreendeosrequisitosligadosaoequipamento,responsveispelainserodequatrosensores
comdoisestadoscada(oneoff),quedetectamapresenadecarrosentrandoousaindodaponte.
Figura3:Sistemafsicodoterceirorefinamento.
I)Oterceirorefinamentoampliaosistemacomumnovocontexto(Figura4),emqueumnovo
conjuntoSENSORcriadocomduasnovasconstantes:on,off.Semelhanteaocontextodascoresdo
semforo,socriadosdoisaxiomas:@axm1Sensor={on,off},@axm2on=offqueespecificam
queosvaloresoneoffsoelementosdiferentesentresiepertencentesaoconjuntoSENSOR.
Figura4:contextoSENSORcriadonorefinamentoIII.
Nesse refinamento so identificados o controlador, o ambiente e a comunicao entre
ambos(Figura 5). Assim so criadas as seguintes variveis: A, B, C(nmero fsico de carros: na ponte
indo pra ilha na ilha e na ponte indo pra cidade, respectivamente), os quatros sensores: ML_OUT_SR,
ML_IN_SR(sada e entrada da terra principal), IL_OUT_SR, IL_IN_SR(sada e entrada da ilha) e os
respectivos fios enviando o estado para o controle: ml_out_10, ml_in_10, il_out_10, il_in_10. Para
cada varivel criase uma invariante, designando o tipo da varivel: inv3_1:ML_OUT_SR SENSOR,
inv3_2:ML_IN_SR SENSOR, inv3_3:IL_OUT_SR SENSOR e inv3_4: IL_IN_SR SENSOR.
inv3_5 : A N, inv3_6 : B N e inv3_7 : C N representam as a, b, c sobrepostas. inv3_8 :
ml_out_10BOOL,inv3_9:ml_in_10BOOL,inv3_10:il_out_10BOOLeinv3_11:il_in_10
BOOL (sensores on or off). As demais invariantes so: detectam a presena de carros atravs dos
sensores(um dos requisitos de equipamento), se os sensores esto on ento h carros neles: @inv1
IL_IN_SR = on A>0, @inv2 IL_OUT_SR = on B>0, @inv3 ML_IN_SR = on C>0 garantem
que os motoristas respeitem o semforo(outro requisito de equipamento), se um carro passou a luz deve
estar verde: @inv4 ml_out_10 = TRUE ml_tl=green, @inv5 il_out_10 = TRUE il_tl = green
garantem que quando um sensor est on, a informao prvia tratada(requisito funcional): @inv6
IL_IN_SR = on il_in_10 = FALSE, @inv7 IL_OUT_SR = on il_out_10 = FALSE, @inv8
ML_IN_SR = on ml_in_10 = FALSE, @inv9 ML_OUT_SR = on ml_out_10 = FALSE. As
invariantes @inv22 A=0 C=0, @inv23 A+B+C d garante as propriedades bsicas para os carros
fsicos tambm. As demais invariantes fazem a conexo entre as variveis lgicas e fsicas: @inv10
il_in_10 = TRUE ml_out_10 = TRUE A = a, @inv11 il_in_10 = FALSE ml_out_10 = TRUE
A = a+1, @inv12 il_in_10 = TRUE ml_out_10 = FALSE A = a1, @inv13 il_in_10 =
FALSE ml_out_10 = FALSE A = a, @inv14 il_in_10 = TRUE il_out_10 = TRUE B=b,
@inv15 il_in_10 = TRUE il_out_10 = FALSE B = b+1, @inv16 il_in_10 = FALSE
il_out_10 = TRUE B = b1, @inv17 il_in_10 = FALSE il_out_10 = FALSE B=b, @inv18
il_out_10 = TRUE ml_in_10 = TRUE C=c, @inv19 il_out_10 = TRUE ml_in_10 = FALSE
C=c+1, @inv20 il_out_10 = FALSE ml_in_10 = TRUE C=c1, @inv21 il_out_10 =FALSE
ml_in_10=FALSEC=c.
Figura5:Canaisdecomunicao:ControleXambiente.
Emrelaoaoseventos,sorefinados:ML_out_1,ML_out_2,IL_out_1,IL_out_2,ML_in,
IL_in,ML_tl_greeneIL_tl_greenadicionandocondiesdeguardaeaesrelacionadasasvariveis
lgicas,querepresentamosfiosdaconexocontroleXambiente.Outroseventos(fsicos)socriados:
ML_out_arr,ML_in_arr:alteraoestadodossensoresquandoumcarroquersairdaterraprincipalou
estnaponteparaentrarnaterraprincipalIL_in_arr,IL_out_arr:consistenomesmofuncionamento
daML_out|in_arrpormnadireodailhaML_out_dep,ML_in_deep,IL_in_dep,ILoutdep.As
obrigaesdeprovasogeradasepodemserprovadasautomaticamente.