Padrões da OMG com suporte à MDA

Na publicação anterior mostrei um resumo do que é MDA, suas características e benefícios. Nesta publicação irei discutir sobre o que existe de concreto para realizar o desenvolvimento utilizando este padrão arquitetural da engenharia de software.

Os seguintes padrões: UML (Unified Modeling Language), MOF (Meta Object Facility), QVT (Query, View and Transformation), OCL (Object Constraint Language) e XMI (XML Metadata Interchange) compõem as especificações do OMG para desenvolver software utilizando a arquitetura MDA.

UML e OCL
A OMG define um número de linguagens de modelagem apropriadas para a escrita de modelos PIM e
PSM. A mais utilizada é a UML, difundida nos cursos de TI apenas como uma linguagem para criar diagramas que tornem possível a visualização do desenho do sistema e a comunicação entre objetos.

A OCL é uma linguagem para pesquisas e inserção de restrições em modelos UML e é parte integrante da própria UML. É uma linguagem declarativa para descrever as regras que se aplicam aos modelos UML, desenvolvida na IBM e que agora é parte do padrão do OMG. OCL, inicialmente, era apenas uma extensão de UML para especificações formais de modelos. Atualmente a OCL pode ser utilizada com qualquer metamodelo baseado em MOF, incluindo os próprios modelos criados em UML.

A OCL é uma linguagem de texto precisa que fornece restrições e expressões de consulta para objetos em qualquer modelo MOF ou metamodelo que não possa ser expressado de outra forma numa notação em diagrama. Além disso, é também um componente chave do novo padrão de recomendação da OMG para transformação de modelos, que discutiremos ainda nesta publicação, a especificação QVT.

MOF
Todas as linguagens de modelagem usadas no paradigma da MDA seguem uma definição formal. Somente desta forma é que as ferramentas (as transformações) serão capazes de interpretar o modelos implementados. Esta definição formal é especificada pelo OMG através de uma linguagem especial, denominada MOF. A MOF é usada para especificar todas as outras linguagens de modelagem.

A criação de linguagens baseadas em MOF garante que todas as ferramentas que seguem o paradigma MDA serão capazes de manipular estas linguagens. Como visto na sub-seção de UML e OCL, a própria UML é baseada em MOF.

QVT
Voltada para a transformação entre modelos, possui um nome autoexplicativo. É uma linguagem que consulta (Query) um metamodelo, visualiza um modelo (View) e o transforma (Transformation) em outro modelo, baseado também num metamodelo de saída. É o padrão OMG que define as linguagens que irão implementar as regras de transformação.

XMI
Para armazenar os modelos, o OMG definiu o padrão XMI, onde toda a descrição do modelo irá estar presente em um documento neste padrão. Isto permite a interoperação entre modelos. Por exemplo, modelos UML pode ser trocados entre diferentes ferramentas CASE que suportem o padrão XMI. Fica claro o benefício principal trazido por este tipo de padronização, onde um único modelo criado pode ser utilizado em várias ferramentas sem a necessidade de alteração do modelo para atender uma especificação diferente daquela que foi padronizada.

Na próxima publicação da série sobre MDA irei mostrar um exemplo prático de desenvolvimento, utilizando tudo que foi falado até aqui sobre este paradigma.

Felipe Alencar

Felipe Alencar é doutorando em Ciência da Computação na UFPE, professor, desenvolvedor e acredita que só não virou jogador de futebol, surfista ou músico profissional por falta de tempo e talento.

Nenhum comentário:

Postar um comentário