MDA ( Arquitetura orientada a Modelos ) é uma abordagem que usa modelos para o desenvolvimento de software aumentando o poder de modelos naquele trabalho. Apesar de ser desenvolvida pela OMG a mesma que desenvolveu CORBA MDA não é um framework para a construção de softwares de sistemas distribuídos ou qualquer framework.

O MDA ( Arquitetura orientada a modelos ) começa com a idéia de separar as especificações das operações do sistema dos detalhes da maneira de como ele será construído. Sendo assim o sistema ( que pode ser qualquer coisa como um programa, um mini sistema computacional, um bd, ou um junção de módulos e etc. )

 

Veja resumidamente como funciona um processo MDA

Um desenvolvedor usando MDA inicia uma aplicação descrevendo os requerimentos e funcionalidades na criação de um modelo baseado na UML. Neste momento não deve existir a preocupação com a tecnologia que será empregada, o banco de dados que será utilizado ou mesmo a linguagem ou o servidor de aplicações que será adotado, pois a única preocupação que o desenvolvedor tem neste momento é em descrever da maneira mais fiel possível a necessidade do usuário. Desta maneira é criado um modelo de classes, um modelo de atividades e um modelo de seqüência que no seu conjunto servem para se criar a aplicação desejada independente da linguagem disponível que será a mais adequada naquele momento.

Em um determinado momento, quando estes modelos já forem devidamente refinados e validados o próximo passo previsto na metodologia é a transformação destes modelos em outras formas de representação que aí sim definem o banco de dados que será utilizado, a linguagem em que será implementada a solução e a arquitetura em que será definido o sistema. O que diferencia o MDA de outras abordagens (ferramentas) de desenvolvimento é como é feita esta transformação, ou seja com o MDA as transformações deverão ser feitas usando-se padrões (Patterns) que necessariamente são códigos previamente testados e adotados pelo mercado como as melhores práticas de programação. Este compromisso é esperado do fornecedor que se propõe a desenvolver uma ferramenta em conformidade com o MDA.

Continuando no processo de desenvolvimento o que temos após a primeira transformação é um modelo mais próximo do sistema final, pois já existe a representação dos objetos específicos da linguagem adotada na implementação e também já existe as definições de tabelas e conexões à base de dados que receberá o sistema. O desenvolvedor precisa apenas trabalhar no refinamento destas informações garantindo que no próximo processo de transformação esteja criado um sistema quase totalmente acabado.

Como já ficou claro o desenvolvedor aplica uma nova transformação no modelo trabalhado e conseguimos um código na linguagem desejada já disponível para testes e validações de funcionalidades.

O que queremos dizer com tudo isso que está sendo apresentado, várias coisas, mas principalmente produtividade. Em avaliações feitas por empresas independentes pelo mundo já existem alguns comparativos para o desenvolvimento utilizando a abordagem do MDA e a forma tradicional que demonstram uma economia apenas durante o desenvolvimento de mais de 30%, chegando em alguns casos a eliminar a necessidade de escrever códigos. Isto significa muito em um mundo como o atual, além do dinheiro, o fator principal é conseguir atender o cliente com mais qualidade em um espaço de tempo menor, garantido sua satisfação e fidelidade.

Com isso o MDA é capaz de:

— Especificar um sistema independentemente da plata forma que o suporta,

— Especificar Plataformas

— Escolher uma plataforma particular do sistema

— Transformar a especificação do sistema em uma plataforma particular.

 

As três primeiras metas do MDA são: Portabilidade, interoperabilidade e reusabilidade.

Com essas medidas o MDA ganha um pouco mais na parte de Projeto e codificação. Hoje em dia o projeto é concebido em 6 fases:

•  Conceitualização e Coleta de requisitos

•  Analise e Descrição funcional

•  Projetar

•  Codificar

•  Testar

•  Distribuição

 

O MDA tem as seguintes passagens:

•  Modelo Independente de Plataforma (PIM)

-  Expressado em UML

-  Representa as funcionalidades e o comportamento do negócio

-  Pode utilizar serviços pervasivos e facilidades do domínio

•  Especifico de Plataforma (PSM)

-   Expressado com extensões de UML (UML profiles)

-  Possuem decisões estratégica e restrições escopo

•  Dimensões de Modelagem

-  PIM (abstrato) ® PSM (Concreto)

•  Pode ser aplicado várias vezes (PIM ® PSM)

•  Transformações

-  de modelo (ex.: Refactoring, Normalização)

- de linguagem (ex.: Traduções de Meta-model)

-  Pode-se usar XSLT.

•  Definição de Transformação e Regras

 

Com isto o MDA pode gerar algum código, que provavelmente será refinado por um programador, dando um ganho de tempo na implementação da aplicação.