Hoje resolvi colocar um post sobre um assunto que me motivou bastante há três anos atrás quando conclui minha graduação: MDA – Model Driven Architecture.

 

Um dos desafios para as empresas produtoras de software é a integração e troca de informações entre plataformas distintas. O mercado de desenvolvimento de software cada vez mais se depara com essa missão de desenvolver as soluções distribuídas para seus clientes, no menor tempo e custo possível e com qualidade.

A diversidade de plataformas tecnológicas exige, das empresas, equipes de desenvolvimento com profissionais especializados em cada uma das tecnologias existentes, elevando consideravelmente os gastos com contratação de especialistas e conseqüentemente aumentando os custos .

Outro fator a ser levado em consideração é o tempo com o qual se deve trabalhar para viabilizar tais integrações de multiplataformas. Por exemplo, qual o tempo necessário para desenvolver um software para consulta de um catálogo de produtos, para dispositivos móveis, com informações em um banco de dados relacional sediado na matriz de uma empresa e com disponibilização dessa mesma consulta para o ambiente da Intranet?

Essas novas características para os sistemas a serem desenvolvidos, como a sua capacidade de distribuição, interoperabilidade, portabilidade, escalabilidade e tolerância a falhas, exige dos engenheiros de software uma especial atenção na modelagem das soluções. O problema é que sempre que uma empresa adotar uma nova tecnologia, todo o trabalho de modelagem terá que ser refeito, e adaptado às novas características tecnológicas.

A nova realidade que faz parte do dia-a-dia da maioria das empresas de desenvolvimento de software é como reaproveitar o modelo de negócios levantado e especificado para uma tecnologia. Garantir que as mudanças para um novo contexto tecnológico, possibilitem aderência a todo o legado existente, permitindo o mínimo de acréscimos de tempo e custo aos projetos.

A modelagem de software exerce um papel de suma importância para viabilizar a integração das diversas tecnologias existentes no mercado, através da modelagem independente de plataforma.

No próximo post, vou tentar resumir e contextualizar os prinicipais conceitos a repeito dessa tecnologia.