• Nenhum resultado encontrado

5.3 Conjun¸c˜ ao de Modelos KMTS

5.3.2 Exemplo de Opera¸c˜ ao de Conjun¸c˜ ao no Desenvolvimento de Software

vista, ´e poss´ıvel unir estes modelos em um ´unico modelo atrav´es da opera¸c˜ao de conjun¸c˜ao definida na se¸c˜ao anterior. Para exemplificar este uso, voltamos ao exemplo apresentado na Se¸c˜ao 5.2.2. Considere que agora, al´em de um car´ater operacional de libera¸c˜ao de recursos, as vistorias precisam de dois tipos de dados: posicionamento GPS do im´ovel, para georreferenciar as ocorrˆencias e utilizar esta informa¸c˜ao na predi¸c˜ao de ´areas de risco e de fotos dos im´oveis, para que t´ecnicos na sede da prefeitura possam analisar os riscos de desabamento dos im´oveis. Suponha que a equipe de desenvolvimento do software foi dividida em duas equipes, cada uma respons´avel por elaborar a solu¸c˜ao para cada um destes requisitos, de forma que as equipes trabalharam isoladamente a partir de um modelo inicial do e-Formul´ario.

As equipes perceberam que recursos de GPS, para o georreferenciamento, e cˆamera fotogr´afica, para as fotos, do dispositivo m´ovel, podem ser utilizados para atender aos requisitos. Cada equipe desenvolveu um modelo, considerando que estes dois recursos necessitavam de acesso exclusivo do software e por isto, podem ou n˜ao estar dispon´ıveis

68 RELAC¸ ˜OES E OPERAC¸ ˜OES PARA MODELOS KMTS

Figura 5.6 Duas vers˜oes do componente e-Formul´ario para atender a requisitos de georrefe- renciamento e fotografia

no momento de uso do aplicativo e que a precis˜ao do GPS ´e melhorada com o acesso `a internet. A equipe de desenvolvimento do georreferenciamento decidiu ent˜ao que o acesso `

a internet ´e necess´ario no aplicativo, e que problemas de sinal devem ser contornados com outras medidas.

A Figura 5.6 mostra os modelos gerados pelas duas equipes, sendo que o modelo (A) representa a equipe do georreferenciamento e o modelo (B) a equipe da fotografia.

Para representar estas duas perspectivas do componente em um ´unico componente, a opera¸c˜ao de conjun¸c˜ao definida ´e aplicada sobre os modelos da Figura 5.6 e o resultado ´

e exibido na Figura 5.7.

No modelo apresentado na Figura 5.7, os estados cinza-claro representam os estados que foram removidos pela fun¸c˜ao poda. ´E poss´ıvel observar que os modelos s˜ao consis- tentes entre si, todavia, na pr´atica, existem casos onde os modelos expressam o mesmo componente, mas n˜ao possuem comportamento em comum porque, durante um ciclo de desenvolvimento, algumas caracter´ısticas de alguns componentes s˜ao pensadas de forma totalmente isolada por uma quest˜ao de separa¸c˜ao de interesse (SOMMERVILLE, 2010)

5.3 CONJUNC¸ ˜AO DE MODELOS KMTS 69

Figura 5.7 Conjun¸c˜ao entre os modelos exibidos na Figura 5.6

ou por se tratarem de equipes (muitas vezes geograficamente distantes) que projetam diferentes aspectos de um mesmo componente. Esta falta de similaridade entre os mo- delos pode impedir o uso da opera¸c˜ao de conjun¸c˜ao pois, como dito anteriormente, a conjun¸c˜ao se baseia em buscar a maior interse¸c˜ao do comportamento obrigat´orio (e do comportamento poss´ıvel) entre os dois componentes. Se n˜ao h´a interse¸c˜ao, n˜ao haver´a conjun¸c˜ao.

Diante deste fato, uma opera¸c˜ao de disjun¸c˜ao entre os modelos pode ser ´util. Esta opera¸c˜ao deve unir o comportamento dos dois modelos em um ´unico modelo, realizando a interse¸c˜ao do que h´a em comum e adicionando as caracter´ısticas ´unicas que cada modelo traz. Na semˆantica dada aos modelos parciais, o que n˜ao ´e especificado como obrigat´orio nem como poss´ıvel ´e comportamento proibido. A disjun¸c˜ao dos modelos deve flexibilizar este entendimento e assumir que apenas o que n˜ao ´e especificado simultaneamente nos dois modelos ´e proibido. Uma outra poss´ıvel (e complementar) solu¸c˜ao ´e criar a modalidade proibido de transi¸c˜ao. Entendemos que especificar o que ´e proibido al´em de ser exaustivo torna o modelo dif´ıcil de ser analisado manualmente devido `a quantidade de detalhes (o modelo ser´a visualmente polu´ıdo). Acreditamos que boas ferramentas de aux´ılio na elabora¸c˜ao e an´alise de modelos podem contornar este problema de visualiza¸c˜ao. Todavia, uma an´alise da flexibiliza¸c˜ao da semˆantica e desta modalidade de transi¸c˜ao s˜ao pontos listados para trabalhos futuros.

Cap´ıtulo

6

JOGO DO REFINAMENTO

Existem diferentes formas de verificar se existe uma rela¸c˜ao de refinamento entre dois modelos quaisquer, entre elas o jogo de refinamento ´e caracterizado entre dois jogadores e verifica a existˆencia de uma rela¸c˜ao de refinamento entre dois modelos de acordo com o jogador que ganha o jogo.

Neste cap´ıtulo analisamos o jogo de refinamento entre modelos KMTS, considerando o refinamento modal forte. A Se¸c˜ao 6.1 apresenta o jogo de refinamento para modelos KMTS de forma intuitiva e prova sua equivalˆencia com a rela¸c˜ao de refinamento. A Se¸c˜ao 6.2 apresenta o jogo de refinamento como um grafo e at´e onde sabemos, esta representa¸c˜ao n˜ao foi realizada em nenhum outro trabalho sobre jogos de refinamentos. A Se¸c˜ao 6.3 apresenta um algoritmo que verifica a rela¸c˜ao de refinamento atrav´es do jogo de refinamento como um grafo. Provamos a corre¸c˜ao, termina¸c˜ao e complexidade deste algoritmo. Por fim, s˜ao apresentados os resultados e as an´alises de uma s´erie de valida¸c˜oes realizadas sobre uma implementa¸c˜ao deste algoritmo.

6.1 DEFINIC¸ ˜AO INTUITIVA DO JOGO DE REFINAMENTO

O jogo de refinamento ´e um jogo baseado em turnos entre dois jogadores, que tem como objetivo descobrir se existe uma rela¸c˜ao de refinamento entre uma especifica¸c˜ao M e um modelo N . Os jogadores s˜ao o spoiler e o duplicator. O objetivo do spoiler ´e tentar executar um movimento que o duplicator n˜ao pode imitar. O objetivo do duplicator ´e tentar imitar todos os movimentos executados pelo spoiler.

O jogo de refinamento para os modelos M e N representa todas as poss´ıveis partidas entre os dois jogadores sobre M e N, onde uma partida ´e uma sequˆencia de estados do jogo. Um estado do jogo ´e um parps, tq onde s e t s˜ao os estados de M e N, respectivamente. O estado corrente de uma partida ´e representado pelo estadopm, nq do jogo, o que significa que m ´e o estado corrente de M e n ´e o estado corrente de N . Uma partida ´e composta por v´arios turnos at´e que um jogador perca a partida. Em cada turno, os jogadores modificam o estado corrente da partida, atrav´es de um movimento por uma transi¸c˜ao em M ou em N, que os levam para um outro estado corrente do jogo. Uma partida ´e caracterizada pelas regras da Defini¸c˜ao 6.1.1:

72 JOGO DO REFINAMENTO

Defini¸c˜ao 6.1.1. Sejam M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN, ΣNSN, sN 0,

RN, RN, LNq dois KMTS, uma partida do jogo de refinamento sobre M e N ´e definida

pelas seguintes regras:

1. O estado inicial de uma partida ´e o parpm0, n0q onde m0 e n0 s˜ao os estados iniciais

de M e de N , respectivamente;

2. Se LMpm0q ¤ LNpn0q n˜ao for verdade ent˜ao o spoiler ganha a partida;

3. Uma partida ´e composta por rodadas, que por sua vez ´e composta por dois turnos: o turno do spoiler e o turno do duplicator, nesta ordem;

4. No seu turno, o spoiler deve escolher um dos modelos e executar um movimento, isto ´e, escolher uma transi¸c˜ao do estado corrente do modelo escolhido e modificar o estado corrente do modelo de acordo com o estado de destino da transi¸c˜ao escolhida. Se o spoiler escolher o modelo M ent˜ao ele deve executar o movimento representado pela transi¸c˜ao t  pm, a, m1q P RM. Se ele escolher o modelo N ent˜ao ele deve executar o movimento representado pela transi¸c˜ao t1  pn, a, n1q P RN;

5. Depois do turno do spoiler, o estado corrente da partida ´e o par pm1, nq se ele se moveu em M ou pm, n1q se ele se moveu em N;

6. No seu turno, o duplicator deve executar um movimento no modelo que n˜ao foi escolhido pelo spoiler no seu ´ultimo movimento. Se ele for executar o movimento em M ent˜ao o movimento deve representar a transi¸c˜ao t  pm, a, m1q P RM tal que LMpm1q ¤ LNpn1q seja v´alido. Se ele executar o movimento em N ent˜ao o

movimento deve representar a transi¸c˜ao t1  pn, a, n1q P RN tal que LMpm1q ¤

LNpn1q seja v´alido;

7. Depois do turno do duplicator, o novo estado corrente da partida ´e pm1, n1q, e a partida continua em uma nova rodada;

8. Uma partida termina em duas situa¸c˜oes: quando ela for infinita, isto ´e todos os poss´ıveis movimentos no estado corrente do jogo leva o mesmo para um estado anterior do jogo e, neste caso, o duplicator ganha o jogo; ou quando um dos jogadores n˜ao pode se mover e, neste caso, o jogador que n˜ao consegue se mover perde o jogo, exceto se a configura¸c˜ao atual for o estado inicial da partida e LMpm0q ¦ LNpn0q;

Para exemplificar o conceito de jogo, vamos observar o exemplo exibido na Figura 6.1. O estado inicial do jogo ´e pm0, n0q e o spoiler come¸ca o jogo, podendo escolher en-

tre jogar em M ou em N. Se ele escolhe jogar em M, sua ´unica op¸c˜ao de movimento ´

e seguir pela transi¸c˜ao com a a¸c˜ao “b”, pois ´e a ´unica transi¸c˜ao must. Se ele escolhe jogar no modelo N, ele pode escolher jogar em qualquer das transi¸c˜oes poss´ıveis, pois, por defini¸c˜ao, todas as transi¸c˜oes s˜ao may (transi¸c˜oes com as a¸c˜oes “a”, “b” e “c”). Su- pomos que nesta partida ele jogou no modelo M, realizando o movimento representado pela transi¸c˜ao pm0, b, m2q. O estado corrente do jogo ser´a pm2, n0q. No turno do dupli-

6.1 DEFINIC¸ ˜AO INTUITIVA DO JOGO DE REFINAMENTO 73

Figura 6.1 Dois KMTS M, N, onde vale M ¨ N.

pela mesma a¸c˜ao do spoiler (a¸c˜ao “b”) e que a transi¸c˜ao v´a para um estado n tal que LMpm2q ¤ LNpnq. Deste modo, o movimento que o duplicator far´a ser´a mover-se pela

transi¸c˜aopn0, b, n2q. Observemos que LMpm2q ¤ LNpn2q vale, caso contr´ario o duplicator

n˜ao poderia jogar e perderia a partida. A nova configura¸c˜ao do jogo ´e pm2, n2q, uma

nova rodada se inicia e ´e a vez do spoiler jogar. Como n˜ao existem transi¸c˜oes dispon´ıveis (nem o estado m2 nem o estado n2 possuem transi¸c˜oes de sa´ıda) o spoiler n˜ao pode jo-

gar e perde a partida. Consideremos agora a partida onde na primeira jogada, o spoiler joga no modelo N. Supomos que o spoiler moveu-se pela transi¸c˜aopn0, b, n1q, obrigando

o duplicator a se mover por pm0, b, m2q, tornando o estado corrente do jogo pm2, n1q.

Mais uma vez, o spoiler n˜ao pode se mover e perde a partida. Consideramos agora mais uma partida poss´ıvel, onde o spoiler move-se pela transi¸c˜aopn0, a, n3q. A ´unica op¸c˜ao do

duplicator ´e se mover pela transi¸c˜ao pm0, a, m1q, levando o jogo ao estado pm1, n3q. Na

vez do spoiler ele pode escolher entre mover-se pela transi¸c˜aopm1, a, m1q levando o jogo

para a configura¸c˜ao pm1, n3q ou mover-se pela transi¸c˜ao pn3, a, n2q levando o jogo para

a configura¸c˜ao pm1, a, n2q. Para qualquer uma das duas alternativas, o duplicator ter´a

um movimento v´alido. ´E f´acil observar que qualquer destas partidas ser´a infinita e final- mente podemos afirmar que o duplicator ganha em todas as partidas. Como mostraremos posteriormente, isto implica que M ¨ N, ou seja N ´e um refinamento de M.

Cada escolha do spoiler pode representar uma partida diferente. Como reduzimos nosso escopo a modelos determin´ısticos, o duplicator nunca pode escolher em qual transi¸c˜ao jogar, se ele puder jogar, sempre existir´a uma ´unica transi¸c˜ao com a a¸c˜ao desejada. Se o duplicator ganha em todas as poss´ıveis partidas do jogo de refinamento sobre os modelos M e N, ent˜ao existe uma rela¸c˜ao de refinamento entre M e N . Caso contr´ario, isto ´e, se o duplicator perde em pelo menos uma partida, n˜ao existe rela¸c˜ao de refinamento entre M e N .

´

E poss´ıvel perceber que as restri¸c˜oes da defini¸c˜ao de refinamento (Defini¸c˜ao 5.1.3) s˜ao refletidos nas regras do jogo de refinamento (Defini¸c˜ao 6.1.1). O Teorema 6.1.1 estabelece uma rela¸c˜ao entre o jogo de refinamento e a existˆencia de uma rela¸c˜ao de refinamento entre dois modelos M e N, ou seja, as regras do jogo determinam as restri¸c˜oes para a existˆencia da rela¸c˜ao de refinamento. Os movimentos, tanto do spoiler quanto do duplicator, representam as transi¸c˜oes nos modelos. A ideia do duplicator ter que repetir

74 JOGO DO REFINAMENTO

todos os movimentos do spoiler representa as restri¸c˜oes sobre as transi¸c˜oes da defini¸c˜ao de refinamento. Quando o spoiler joga por uma transi¸c˜ao no modelo M, ele deve escolher uma transi¸c˜ao must e o duplicator deve mostrar que existe uma transi¸c˜ao semelhante (no sentido de refinamento) no modelo N. Em uma partida, a cada jogada, o spoiler escolher´a apenas uma transi¸c˜ao. Todavia, o jogo representa todas as poss´ıveis partidas e ent˜ao, para todas as poss´ıveis transi¸c˜oes que o spoiler pode escolher no estado m, o duplicator deve achar uma transi¸c˜ao correspondente no estado n. Esta regra representa a restri¸c˜ao “Para todo pm, a, m1q P RM, existe pn, a, n1q P RN com pm1, n1q P <” da defini¸c˜ao de refinamento. Um racioc´ınio an´alogo pode ser aplicado para explicar a rela¸c˜ao entre o jogo e a restri¸c˜ao “ Para todo pn, a, n1q P RN, existe pm, a, m1q P RM com pm1, n1q P <”. Por fim, a restri¸c˜ao “LMpmq ¤ LNpnq” da rela¸c˜ao de refinamento deve valer no in´ıcio do

jogo e sempre ap´os que o duplicator jogar. Observamos que a cada rodada, as restri¸c˜oes s˜ao garantidas. Se o duplicator perde, ent˜ao naquela rodada as restri¸c˜oes n˜ao foram garantidas e por isto n˜ao h´a rela¸c˜ao de refinamento. De forma inversa, se o spoiler perde, ´

e porque n˜ao h´a movimentos poss´ıveis. Como at´e a ´ultima rodada as restri¸c˜oes s˜ao satisfeitas ent˜ao para todas as transi¸c˜oes (e estados) o duplicator imita os movimentos do spoiler, o que representa que as restri¸c˜oes s˜ao satisfeitas em qualquer caso. Partidas infinitas significam que o spoiler voltou a uma configura¸c˜ao onde as restri¸c˜oes j´a foram garantidas anteriormente e que n˜ao h´a uma jogada diferente para ser feita.

Teorema 6.1.1 (Rela¸c˜ao entre Refinamento e um Jogo de Refinamento). Seja M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN, ΣNSN, sN 0, RN, RN, LNq, N ´e um refi-

namento de M , M ¨ N, se e somente se o duplicator ganha em todas as partidas do jogo de refinamento RGM,N  pVS, VD, Eq.

Demonstra¸c˜ao.

(Ñ) Suponha, por contradi¸c˜ao, que existe pelo menos uma partida em que o duplicator perca. Ent˜ao, dois casos podem acontecer:

(a) LMpm0q ¤ LNpn0q n˜ao ´e v´alido: Este caso contradiz a hip´otese porque M ¨ N

(o que implica em LMpm0q ¤ LNpn0q); ou

(b) O duplicator n˜ao pode imitar o movimento do spoiler : seja pm, nq o estado corrente no turno do spoiler. Neste caso, o spoiler pode se mover a partir de: (a) uma transi¸c˜ao t  pm, a, m1q P RM; ou (b) uma transi¸c˜ao t  pn, a, n1q P RN. Em ambos os casos se chega a uma contradi¸c˜ao. Vamos mostrar o caso (a) (caso (b) ´e similar):

O spoiler move-se empm, a, m1q P RM e n˜ao existe transi¸c˜ao em RN tal que o duplicator possa imitar o movimento do spoiler. Como M ¨ N, ent˜ao existe uma rela¸c˜ao de refinamento R entre M e N e pm, xq P R para algum x P SN

((m, x) existe porque m ´e alcan¸cavel a partir de m0no modelo M, caso contr´ario

(m, n) n˜ao poderia ser uma configura¸c˜ao do jogo (hip´otese)). Pela defini¸c˜ao de refinamento, se pm, xq P R ent˜ao para todas as transi¸c˜oes pm, a, kq P RM existe uma transi¸c˜aopx, a, x1q P RN tal que LMpkq ¤ LNpxq onde o duplicator

pode se mover, isto ´e, semrpe existe uma transi¸c˜ao onde o duplicator pode imitar o movimento do spoiler, ou seja, chegamos a uma contradi¸c˜ao