• No results found

Settlement finality

In document NORGES BANK' S (sider 73-78)

A abstrac¸c˜ao de modelos est´a normalmente associada `a simplifica¸c˜ao e/ou redu- ¸c˜ao dos mesmos. Esta simplifica¸c˜ao tem de ser um processo controlado e com l´ogica, caso contr´ario poderemos remover elementos essenciais ao programa tor- nando essa abstrac¸c˜ao in´util. O processo de abstrac¸c˜ao de modelos tem elevada importˆancia na an´alise de um sistema. ´E mais f´acil obter informa¸c˜ao de um sistema com menos componentes, pois quanto maior for o n´ıvel de abstrac¸c˜ao, menos informa¸c˜ao espec´ıfica existe para analisar. Se pensarmos em concreto num projecto de software Java vemos que o primeiro passo para compreender o que um projecto faz ´e normalmente pelo seu nome. A leitura de um resumo sobre esse mesmo projecto (por exemplo num manual) d´a nos uma vis˜ao global sobre o projecto. S´o depois de uma contextualiza¸c˜ao se analisa a informa¸c˜ao mais espec´ıfica. No caso da an´alise de modelos o mesmo se aplica. Na an´alise de um projecto uma abordagem poss´ıvel ´e come¸car a um mais alto n´ıvel, neste caso PIM, e ir aumentando o n´ıvel de informa¸c˜ao com o aumentar da especifici- dade dos diagramas (diminuindo a abstrac¸c˜ao) passando para o PSM. Este ´e a motiva¸c˜ao que leva ao problema de abstrac¸c˜ao de um PIM em PSM.

A abstrac¸c˜ao de um modelo PSM para PIM (neste caso) ´e parte do processo MDA. Neste caso estamos perante o aumentar do n´ıvel de abstrac¸c˜ao de um modelo. Isto ´e conseguido por redu¸c˜ao do n´umero de elementos, da informa¸c˜ao contida nos elementos ou at´e mesmo altera¸c˜ao dessa informa¸c˜ao. Este problema ´e apenas composto por este ponto, que corresponde a abstrac¸c˜ao de um modelo mais espec´ıfico e com mais informa¸c˜ao, o PSM num outro modelo mais gen´erico, que proporciona um ponto de vista de mais alto n´ıvel, o PIM.

4.2. ENQUADRAMENTO DO PROBLEMA 55 Existem trˆes requisitos a ter em conta. Em primeiro lugar ´e necess´ario ter um m´etodo de abstrac¸c˜ao que pode ser um processo de filtragem, ou um processo de transforma¸c˜ao. Em segundo lugar ´e necess´ario considerar a necessidade de ter uma representa¸c˜ao visual, tal como existe para o PSM. O terceiro e ´ultimo requisito ´e a implementa¸c˜ao das funcionalidades de modo a que permitam a extensibilidade das funcionalidades no futuro.

Das funcionalidades previstas, a abstrac¸c˜ao ´e a que requer maior aten¸c˜ao e especifica¸c˜ao. Esta funcionalidade necessita que v´arias decis˜oes sejam tomadas previamente. Em primeiro lugar ´e necess´ario definir qual o significado de um PIM neste contexto, isto ´e, que elementos, rela¸c˜oes e atributos fazem parte deste modelo e de que forma. Depois de especificado o metamodelo do PIM ´e neces- s´ario definir como v˜ao ser feitas as transforma¸c˜ao dos elementos do PSM para o respectivo PIM. Estas transforma¸c˜oes podem ser conseguidas de v´arias formas e variam de acordo com as abordagens. Uma abordagem consiste num processo interactivo em que o utilizador selecciona quais os elementos que pretende pre- servar no PIM destino. De seguida, de forma automatizada ser˜ao ajustadas as liga¸c˜oes e dependˆencias necess´arias [84]. Uma outra abordagem ´e a automati- za¸c˜ao completa do processo de transforma¸c˜ao. Esta abordagem surge com base na especifica¸c˜ao feita em MDA Explained [49]. Devido `a natureza das transfor- ma¸c˜ao de PIM para PSM definidas por este autor percebe-se que naturalmente pode existir uma forma inversa para as mesmas. Esta abordagem permite uma automatiza¸c˜ao completa do processo de transforma¸c˜ao. A forma como estas transforma¸c˜oes ocorrem tem de ser bem definida para que o processo ocorra com sucesso. Definindo uma transforma¸c˜ao como um m´etodo que recebe um elemento e retorna um (novo) elemento do mesmo tipo pode ser uma aborda- gem demasiado simplista.

public Jelement formatElement(JElement in) { if (in.getClass() == JInterface.class)

return null; else

return in; }

Figura 4.2: Exemplo de transforma¸c˜ao simples.

Pensando em qualquer regra aplicada a uma classe que seja dependente de uma outra classe, vemos que um m´etodo que receba uma classe e retorne uma outra classe, n˜ao vai ser suficiente. Este m´etodo n˜ao ´e suficiente para resolver o problema uma vez que o seu contexto ´e limitado `a classe que est´a a analisar e n˜ao consegue aceder `a informa¸c˜ao de outras classes no sistema. Podemos ver um exemplo de uma regra simples e insuficiente na Figura 4.2, onde facilmente se percebe que a transforma¸c˜ao est´a limitada a transforma¸c˜oes no

elemento que ´e passado como argumento ao m´etodo (JElement in). Desta forma ´e poss´ıvel ver que um dos problemas a abordar ser´a a decis˜ao de como proceder `

as transforma¸c˜oes dos elementos, de forma a que o contexto da transforma¸c˜ao seja global, e n˜ao relativo apenas ao elemento a transformar. Por fim ´e necess´ario ter em conta que o processo de transforma¸c˜ao deve ser implementado de forma a que possa facilmente ser refinado, estendido ou alterado, caso necess´ario.

O problema da representa¸c˜ao visual ser´a em tudo similar ao problema da representa¸c˜ao visual de um PSM, problema esse j´a apresentado. Uma das di- feren¸cas neste caso ´e que ´e poss´ıvel aproveitar algumas propriedades visuais do PSM caso estas tenham sido processadas previamente. Se o processo de com- puta¸c˜ao das propriedades visuais for bem implementado vai permitir que essa funcionalidade seja utilizada para processar as propriedades visuais do metamo- delo PIM.

A necessidade da extensibilidade deste componente ´e baseada sobretudo no processo de transforma¸c˜ao. A relevˆancia de permitir a extens˜ao deste compo- nente baseia-se na necessidade do utilizador poder refinar ou alterar este pro- cesso. Este problema surge por poder existir a necessidade do utilizador querer uma forma de abstrac¸c˜ao diferente, de propor um PIM diferente, ou querer um maior n´ıvel de abstrac¸c˜ao no PIM gerado. Assim, este problema, consiste na existˆencia da necessidade de o utilizador poder definir as suas pr´oprias regras de transforma¸c˜ao. Dessa forma este componente pode a qualquer altura ser alterado e estendido de acordo com as necessidades do utilizador n˜ao ficando limitado `a especifica¸c˜ao inicial.

In document NORGES BANK' S (sider 73-78)