• Nenhum resultado encontrado

1. INTRODUÇÃO

1.4 FORMULAÇÃO DO PROBLEMA

2.1.3 HIERARQUIAS E TIPOS

Segundo Kühne (2005) os metamodelos podem ser vistos como definições de linguagens. O autor representa na figura 2, que qualquer sistema é representado por um modelo que, por sua vez, é uma instância ou ocorrência de um metamodelo. O metamodelo é uma instância do metametamodelo e assim por diante. O modelo é expresso através da linguagem do seu metamodelo. O metamodelo, por sua vez, é expresso através da metalinguagem do seu metametamodelo.

Atkinson e Kühne (2003a) identificaram duas dimensões de metamodelagem, dando nascimento a duas formas distintas de instanciação dos objetos do metamodelo. Uma dimensão é referente à definição da linguagem e faz uso da instanciação lingüística. A outra dimensão é sobre a definição do domínio ou tipo do objeto e usa a instanciação ontológica. Ambas as formas ocorrem simultaneamente e servem para localizar precisamente um elemento do modelo no espaço lingüístico- ontológico.

A figura 2.2 usa a tradicional arquitetura MDD (Model Driven Development) de quatro camadas de abstração (M0 a M3) também seguidas pelos padrões das

linguagens de modelagem UML 2.0 e MOF 2.0. Visualiza-se um metamodelo lingüístico com quatro camadas horizontais, que começam por M0 denotando o nível

mais baixo e M3 o nível mais alto de abstração. Ao mesmo tempo temos a

divisão vertical no nível M1. Ao explicitar as duas metadimensões, a figura 2.2

também ilustra o relacionamento entre os elementos do modelo e do mundo real. O cachorro e a lâmpada (conceito mental) do nível M0 são os elementos do mundo real

que serão modelados. Percebe-se que a Lassie real é “representada” pelo objeto Lassie e não é uma ‘instância de” do objeto Collie. O nível de abstração M1 contém o

primeiro nível de abstração de um objeto do mundo real, junto com o tipo do qual o objeto é uma instância ontológica. Na figura 3 o objeto Lassie (O0) é uma instância

ontológica do tipo Collie (O1). A partir de M1, todo nível é um modelo expressado na

linguagem definida no nível superior. Em M2 temos que o objeto Lassie é uma

instância lingüística do tipo Object, que em M3 é uma instância lingüística do tipo

Class.

Figura 3: Metamodelo Lingüístico (Atkinson e Kühne, 2003a)

Os metamodelos ontológicos usam o relacionamento “instância de” para relacionar os conceitos com seus tipos ou seus metatipos. Estende-se, na figura 4, os níveis ontológicos rotacionando para a direita a figura 3 e acrescentando o nível O2. Desta forma os metaníveis ontológicos são arranjados horizontalmente. Para

Figura 4: Metamodelo Ontológico (Atkinson e Kühne, 2003a)

A utilidade do uso de metaconceitos já é reconhecida há muito tempo. Por exemplo, fazer o uso de metaconceitos como raça e espécie trazem enormes vantagens. A figura 5 mostra um dos mais maduros metamodelos ontológicos, a taxonomia biológica para os seres vivos. Observa-se a criação do nível ontológico O3 mesmo não existindo um estereótipo para dar suporte.

Figura 5: Metamodelo da classificação biológica (Adaptado de Atkinson e Kühne, 2003a)

Dentro da visão lingüística ou gramática, Lassie é um substantivo ou um objeto, ou seja, substantivo e objeto são classificadores lingüísticos para Lassie. De um ponto de vista semântico ou ontológico, a palavra Lassie pode ser entendida como um tipo de cachorro ou um animal artista de cinema. Temos, portanto, que “tipo de cachorro” e “animal de cinema” são classificações ontológicas para Lassie.

O primeiro tipo de classificação se refere à forma e a segunda ao conteúdo do elemento. Estas duas dimensões de classificação podem ser expressas graficamente. Nos modelos visuais, os metamodelos lingüísticos se referem à classificação dos elementos do modelo quanto à sua forma (Objeto, Classe, Associação, Atributo). Os metamodelos ontológicos tratam da classificação do conteúdo dos elementos do modelo (Collie, Raça, Espécie).

De acordo com Atkinson e Kühne (2003b), apesar da validade e utilidade dos metamodelos ontológicos de tipos, para os construtores de ferramentas e membros de consórcios de padronização como a OMG (Object Management Group), o termo metamodelo se refere tipicamente apenas ao metamodelo do tipo lingüístico. Entretanto, da perspectiva de um usuário de uma linguagem, a hierarquia de tipos formada pelos níveis ontológicos é muito mais relevante. Em outras palavras os metamodelos ontológicos são metamodelos para os usuários focados no conteúdo e os metamodelos lingüísticos são um padrão de metamodelos focados na forma.

A pesquisadora Strahringer (1996) estudou como as hierarquias de níveis dos modelos são construídas e cunhou o termo “princípio da metaização” para designar uma operação que é repetidamente aplicada de um nível para o outro, ou seja, o mecanismo primário de abstração para estruturar os objetos nos níveis de hierarquia. A análise de Kühne (2006) é semelhante à de Strahringer (1996), porém usa uma diferente distribuição dos elementos para os níveis e uma diferente terminologia.

O princípio de metaização mais usado nos sistemas de informação é a metamodelagem lingüística. Por exemplo, a sintaxe das linguagens de modelagem está no nível M2, como a da metodologia E/R de Chen (1976) usada para

representar parte dos objetos do mundo real (M0) no nível de um modelo E/R (M1),

onde só podem ser usados os componentes da linguagem (tipo entidade, tipo relacionamento, atributos etc.). A partir deste princípio um nível Mx estrutura a

representação dos objetos do nível M0 no nível M1. Na metamodelagem ontológica

são definidos metatipos no nível Mx, que descrevem os conceitos existentes no nível

Mx-1.

Um exemplo da representação destas hierarquias de níveis de modelos é apresentado na figura 6 por Goeken e Alter (2009) para descrever o princípio de metaização usado na construção do seu metamodelo do framework CobiT. No nível M0 existe uma concreta atividade dentro dos processos de TI (um específico

processo de help desk, # 2009-42). As atividades realizadas são instâncias da atividade do CobiT “detectar e registrar incidentes” dentro do processo “DS 08”. No CobiT as definições de processos e suas atividades estão em linguagem natural, semi-estruturadas no formato de formulário. A partir da metaização ontológica, “detectar e registrar incidentes” pode ser classificada como “Atividade” no nível do metamodelo M2. O modelo CobiT, por sua vez, reside no nível M1. Como foi usada a

metodologia E/R para a construção do metamodelo no nível M2, no nível M3, ou seja,

no metametamodelo, a “Atividade” é um componente do tipo entidade.

Segundo Karagiannis e Kühn (2002), devido à rápida mudança nas demandas de negócio das organizações, como a diminuição do ciclo de vida dos produtos, aumento da dependência entre os parceiros de negócio, a integração entre os sistemas de informação, a complexidade do desenvolvimento de aplicações que produzam soluções de negócio está continuamente crescendo. Portanto, a gerência dos elementos de uma organização é cada vez mais baseada em modelos. Para o autor o estado-da-arte na área de modelagem de organizações está baseado nos metamodelos. Produtos são criados através de ambientes de modelagem de produtos, modelos de processos são criados em ferramentas de modelagem de processos de negócios, a TI faz uso de um grande número de ferramentas de modelagem e a própria organização e seus modelos são monitorados por outras ferramentas de modelagem.

Como pode ser visto na figura 7, a criação de um metamodelo é também realizada por uma linguagem de modelagem, que é chamada de linguagem de metamodelagem. O modelo que define a linguagem de metamodelagem é o metametamodelo ou o meta2-modelo, Karagiannis e Kühn (2002).

Karagiannis e Höfferer (2006) realizaram uma pesquisa sobre o uso de metamodelos na área de sistemas de informação e outras disciplinas da ciência da computação em periódicos Qualis publicados no IEEE, ACM, Springer, Elsevier entre outros. O autor observou três diferentes aspectos das pesquisas sobre metamodelos (ver figura 8).

Figura 8: Diferentes aspectos da pesquisa sobre metamodelos (Karagiannise Höfferer, 2006).

Uma taxonomia para as abordagens de metamodelagem foi proposta por Karagiannis e Höfferer (2006). No eixo Y, estão as tarefas que podem ser auxiliadas pelo uso de metamodelos, design e a integração de modelos. No eixo X, estão os níveis de metamodelos. Observa-se, na figura 9, que para o autor, existe uma relação entre o nível meta2-modelo e a tarefa de integração de metamodelos.

Figura 9: Demandas de design e integração dos metamodelos (Karagiannise Höfferer, 2006).

Concepção

Como os metamodelos são representados?

Uso

Como os metamodelos são aplicados?

Implementação

Como as aplicações de

metamodelos são implementadas?

M E T A M O D E L A G E M