• No results found

Participant-default rules and procedures

In document NORGES BANK' S (sider 82-90)

O problema da inferˆencia de padr˜oes num modelo n˜ao ´e novo, pelo contr´ario, ´e um problema j´a abordado por v´arios autores, havendo at´e v´arias ferramen- tas capazes de o fazer sendo a sua utilidade j´a reconhecida. Resumidamente ´e um n´ıvel de abstrac¸c˜ao superior que ir´a contribuir para o processo de an´alise. Esta abstrac¸c˜ao permite perceber quais as “pe¸cas” que constituem um software. Percebendo de que forma essas “pe¸cas” interagem ´e poss´ıvel perceber qual o ob- jectivo de um software, a sua organiza¸c˜ao conceptual e ainda alguns aspectos sobre o seu funcionamento. Essas “pe¸cas” correspondem no fundo a padr˜oes de concep¸c˜ao que existem ao longo c´odigo fonte de um software. As abordagens des- critas por outros autores identificaram alguns dos problemas encontrados neste processo, contudo esta funcionalidade no contexto apresentado vai diferir das abordagens apresentadas. Esta varia¸c˜ao reside no facto de que este reconheci- mento vai ser feito com base em informa¸c˜ao j´a inferida e utilizada para outros fins nomeadamente gerar o diagrama PIM. Outros autores prop˜oem que a an´alise de padr˜oes seja feita directamente a partir do c´odigo fonte sem qualquer rela¸c˜ao com modelos abstractos. Contudo, de forma a tirar proveito do trabalho j´a feito, a inferˆencia de padr˜oes ser´a feita com base nos modelos inferidos. Face a esta especifica¸c˜ao, o problema da inferˆencia de padr˜oes modelo PSM contar´a com

4.2. ENQUADRAMENTO DO PROBLEMA 57 quatro componentes. O primeiro ser´a o modo como a an´alise do c´odigo, ou mais em espec´ıfico do modelo ser´a feita. O segundo componente ser´a a defini¸c˜ao da forma como a pesquisa dos padr˜oes ser´a feita. O terceiro componente a analisar ser´a de que forma a identifica¸c˜ao de padr˜oes poder´a ser flex´ıvel e facilmente ex- tens´ıvel. O quarto e ´ultimo componente a analisar ser´a o j´a abordado problema da representa¸c˜ao visual.

Figura 4.3: Representa¸c˜ao do processo de inferˆencia de padr˜oes.

O primeiro passo do processo de identifica¸c˜ao de padr˜oes consiste em criar uma base de conhecimento com a informa¸c˜ao contida no projecto, representado na Figura 4.3 `a esquerda. S´o desta forma ´e poss´ıvel come¸car a an´alise sobre os dados contidos no modelo. Este problema ser´a apresentado e detalhado mais `

a frente. Depois de definido concretamente um padr˜ao de concep¸c˜ao a n´ıvel computacional, fica especificado tamb´em quais os elementos tˆem de ser extra´ıdos da representa¸c˜ao do projecto. ´E poss´ıvel concluir que tendo o metamodelo dos padr˜oes definido, a sua identifica¸c˜ao depende de dois aspectos: em primeiro lugar de uma defini¸c˜ao correcta e precisa dos padr˜oes, e em segundo lugar de uma base de conhecimentos (com factos) que permita a pesquisa de padr˜oes. Existem diversas abordagens sugeridas por diferentes autores que permitem concluir que a mais adequada depende sobretudo do contexto do problema.

A representa¸c˜ao interm´edia do projecto, da base de conhecimento e dos padr˜oes est˜ao relacionadas entre si. Existe uma forma de transforma¸c˜ao di- recta entre elas na ordem apresentada. A base de conhecimento com informa¸c˜ao sobre o programa ´e o ponto de partida para solucionar o problema da identifica- ¸c˜ao de padr˜oes. ´E proposto por alguns autores utilizar o metamodelo do PSM como base de conhecimento. Desta forma ´e poss´ıvel reaproveitar o trabalho j´a feito, juntamente com uma compara¸c˜ao estrutural como processo de pesquisa de padr˜oes. Uma outra abordagem ´e a utiliza¸c˜ao de uma tecnologia externa. Utilizando uma tecnologia externa ´e poss´ıvel tirar partido de todas as suas fun- cionalidades por´em necessita de uma adapta¸c˜ao dessa tecnologia ao contexto em quest˜ao. Neste caso ´e necess´ario tamb´em definir qual a tecnologia em quest˜ao (e uma ferramenta que a implemente) bem como as regras de transforma¸c˜ao de

informa¸c˜ao para esta tecnologia. Por fim ser´a necess´ario desenvolver uma fer- ramenta que implementa as funcionalidades de mapeamento, interac¸c˜ao e troca de informa¸c˜ao.

Uma das necessidades encontradas ´e a de ter uma forma concreta de de- finir um padr˜ao. Esta defini¸c˜ao tem uma elevada importˆancia pois s´o assim o processo de identifica¸c˜ao ser´a bem definido e controlado. De uma boa defini¸c˜ao e implementa¸c˜ao desta funcionalidade depende a extensibilidade do projecto e a sua utilidade pr´atica. Uma defini¸c˜ao est´atica ao n´ıvel de implementa¸c˜ao dos padr˜oes identific´aveis resulta numa funcionalidade r´ıgida, dificilmente extens´ı- vel e facilmente fica desactualizada. Uma defini¸c˜ao de padr˜oes num formato parametriz´avel ser´a em princ´ıpio uma tarefa mais complexa para analisar e im- portar estas defini¸c˜oes. Apesar da parametriza¸c˜ao ser mais complicada, ´e a que permite que este m´odulo seja posteriormente estendido e adaptado a contextos espec´ıficos. Tendo em conta as limita¸c˜oes da primeira alternativa, a segunda ser´a o problema escolhido para resolver. Resumido, ´e necess´ario implementar um m´odulo que permita reconhecer defini¸c˜oes de padr˜oes externas, importar essas defini¸c˜oes e aplic´a-las ao projecto em an´alise, utilizando uma ferramenta externa para fazer a pesquisa de padr˜oes. Na Figura 4.3 ao centro ´e mostrado de que forma este cat´alogo entra no processo de identifica¸c˜ao de padr˜oes.

O formato externo onde s˜ao definidos os padr˜oes ´e chamado “cat´alogo de padr˜oes”. Este cat´alogo consiste na defini¸c˜ao de um conjunto de padr˜oes (possi- velmente com alguma informa¸c˜ao adicional). S´o desta forma o utilizador pode definir um cat´alogo personalizado e identificar esses padr˜oes no software em an´a- lise. Esta defini¸c˜ao ter´a de ser feita num ficheiro externo e que possa facilmente ser editado pelo utilizador. Assim, ´e necess´ario especificar um formato de defi- ni¸c˜ao de padr˜oes, uma forma de importar e interpretar esse cat´alogo e por fim utilizar essas regras na pesquisa de padr˜oes.

O ´ultimo problema a abordar ´e a representa¸c˜ao visual sendo que esta ser´a feita de forma an´aloga `a representa¸c˜ao do PIM e do PSM. Comparando as Fi- guras 4.1 e 4.3 (`a direita) podemos constatar que a representa¸c˜ao ´e similar em ambos os casos, tendo uma ligeira altera¸c˜ao no caso dos padr˜oes. Isto permite perceber que o mesmo m´odulo, devidamente ajustado, poder´a ser usado em am- bas as representa¸c˜oes. Desta forma ser´a vantajoso tirar partido do trabalho feito para a representa¸c˜ao dos outros modelos, fazendo apenas as altera¸c˜oes estrita- mente necess´arias. O ideal seria reaproveitar todo o trabalho feito por´em existem algumas altera¸c˜oes que s˜ao realmente necess´arias, nomeadamente na representa- ¸c˜ao dos padr˜oes, uma vez que este problema n˜ao foi tido em conta previamente. Uma abordagem poss´ıvel a este problema seria ter uma representa¸c˜ao igual `a dos outros modelos (PIM e PSM), real¸cando os elementos que pertencessem a um padr˜ao. Desta forma seria apenas necess´ario fazer uma pequena altera¸c˜ao na re- presenta¸c˜ao, que permitisse marcar (por exemplo) os elementos que sejam parte de um padr˜ao. Uma varia¸c˜ao a esta abordagem consiste em reduzir a informa¸c˜ao mostrada neste diagrama, ignorando por exemplo informa¸c˜ao de m´etodos e atri- butos. Esta varia¸c˜ao pode ser ´util pois abstrai pormenores irrelevantes quando

4.3. CEN ´ARIOS DE UTILIZA ¸C ˜AO 59

In document NORGES BANK' S (sider 82-90)