Este artigo trata sobre Model Driven Architecture (MDA), uma abordagem para o desenvolvimento de software com grande potencial para resolver questões com relação a tempo, custos, produtividade, portabilidade, manutenção e adaptação às mudanças tecnológicas. Este artigo apresenta uma visão geral sobre MDA, revisando conceitos, tendências e a usabilidade desta abordagem.
Em que situação o tema é útil:
O uso de MDA agrega qualidade ao código, e consequentemente ao software, pois os ambientes MDA incorporam padrões e boas práticas de desenvolvimento à geração de código. Além disso, reduz os custos de desenvolvimento e manutenção do sistema, e aumenta a produtividade dos desenvolvedores. A redução no tempo de desenvolvimento e ganho de produtividade pode não ser substancial para a primeira aplicação, mas é notável para as subsequentes.
Resumo DevMan:
Este artigo apresenta alguns conceitos sobre o MDA, uma abordagem para desenvolvimento de sistemas dirigido a modelos, enfocando o seu surgimento, características, objetivos, funcionamento e sua utilização pelas organizações.
Autores: Guilherme Vaz Pereira e Fábio Sarturi Prass
Durante décadas, a Engenharia de Software permanece sendo uma área em evolução. Os desenvolvedores de software ainda estão atrás das abordagens de desenvolvimento que alcancem a reutilização de mais níveis de abstração. Os projetistas de software precisam de um framework de modelagem que permita à engenharia de processo acumular serviços reutilizáveis. Além disso, a abordagem de desenvolvimento deve habilitar partes da empresa a reagir de forma rápida e confiável às mudanças nos requisitos e nas tecnologias disponíveis.
Tecnologias Model Driven (dirigidas a modelos) incluem modelagem e captura de ontologias sobre o ambiente, a informação, os processos e tecnologias de apoio. O modelo da abordagem orientada a modelos captura o significado dos elementos dos diagramas e dos seus relacionamentos e utiliza essa compreensão para compor elementos de projeto, testes de performance e até geração automática de partes do código da aplicação, fornecendo a informação correta para as partes interessadas no momento adequado.
Além de fornecer informações, a abordagem obtém um maior valor do conteúdo (fazendo uso de modelos) por ser capaz de usá-lo para apoiar os processos automatizados e o desenvolvimento tecnológico. Ser capaz de utilizar esta abordagem dirigida a modelos torna as organizações mais ágeis, mais eficientes e menos dispendiosas para operar.
Model Driven Architecture (MDA) é uma nova abordagem para o desenvolvimento de software, definida pelo Object Management Group (OMG), que vem recebendo atenção da comunidade acadêmica e industrial, já apoiada por grandes companhias como IBM e Motorola. MDA visa separar a lógica do negócio da lógica da aplicação, as mantendo em diferentes níveis de abstração.
Object Management Group (OMG): É um consórcio internacional da indústria de software fundado em maio de 1989 com a finalidade de nomear padrões para permitir a interoperabilidade e a portabilidade das aplicações distribuídas empregando a tecnologia de objetos. O OMG não visa a produção de software, somente especificações.
Hoje em dia a indústria de software trabalha com várias tecnologias e plataformas diferentes, e acompanha frequentes mudanças tecnológicas, tornando as aplicações já desenvolvidas obsoletas e inúteis com o passar do tempo. MDA tem objetivos de proporcionar maior longevidade para as aplicações, evitando um grande retrabalho para implementar uma aplicação em tecnologias diferentes, e auxiliar a indústria de software em outras questões como custo e tempo do processo de desenvolvimento de novas aplicações, produtividade, qualidade e manutenção de software, portabilidade das aplicações, entre outras.
A abordagem MDA leva o foco do desenvolvimento com escrita de código para a construção de modelos, tornando estes o centro do processo de desenvolvimento. Um modelo é uma especificação formal da função, estrutura e comportamento de um sistema, sob um ponto de vista, e dentro de um determinado contexto. Em MDA, um modelo é a representação do sistema por uma linguagem com sintaxe e semântica bem definidas, capazes de serem interpretadas por computador. Por exemplo, a UML.
MDA trata a funcionalidade do sistema e questões de implementação em níveis de abstração diferentes. Para isso, utiliza modelos independentes da plataforma e modelos específicos para a plataforma na qual o sistema será implementado, conhecidos como Platform Independent Model (PIM) e Platform Specific Model (PSM), respectivamente. O PIM modela as funcionalidades e comportamentos do sistema, enquanto o PSM modela informações de implementação para convertê-las em código-fonte. O modelo PIM é transformado em um ou mais modelos PSM, e esse em código-fonte através de regras de transformações, com apoio de tecnologias como mapeamentos, marcas, metamodelos, etc.
...