Model Driven Development (MDD) - (um)a opção?




Por Rui Pedro Saraiva e Marcos Ferreira *


Tendo como propósito enfrentar os actuais desafios inerentes ao mercado de desenvolvimento de software, nomeadamente time-to-market, interoperabilidade, produtividade e evolução tecnológica e complexidade das aplicações, o Model-Driven Development (MDD) surge como uma opção a considerar. Preconizando características de abstracção, interacção e reutilização, esta metodologia visa prestar não só um precioso auxílio às equipas de desenvolvimento, mas também uma garantia de qualidade para os stakeholders de negócio.

O principal conceito associado ao MDD é a capacidade de elevar o nível de abstracção, mudando o foco do desenvolvimento aplicacional da vertente de programação para a vertente de modulação. Este paradigma assenta no princípio de construção de modelos abstractos que representam o negócio, de uma forma totalmente independente das plataformas e tecnologias que poderão vir a ser utilizadas no desenvolvimento. A "linguagem de codificação" utilizada na criação destes modelos procura aproximar-se da linguagem natural, garantindo a facilidade de especificação, entendimento e manutenção por todos os intervenientes no projecto.

[caption]Rui Pedro Saraiva e Marcos Ferreira, da esquerda para a direita[/caption]

Existe naturalmente a necessidade posterior de transformar os modelos conceptualizados em "código computacional" nas plataformas e tecnologias pretendidas, sendo esta a única componente que requer competências mais técnicas (ao nível de programação) para adequação e mapeamento entre as duas realidades.

A utilização desta metodologia por diversos players relevantes da indústria de software permite a identificação de alguns benefícios consideráveis, que encorajam a sua adopção, dos quais se destacam:

- Alinhamento entre IT e Negócio: através da omissão dos detalhes de implementação, é possível a construção de modelos mais próximos do domínio da necessidade em causa, facilitando assim a comunicação entre os responsáveis do desenvolvimento e os stakeholders de negócio, garantindo com isso um papel mais activo destes no processo e, portanto, a entrega de soluções mais próximas dos objectivos do negócio;

- Redução de custos e time-to-market: após um investimento inicial de setup da metodologia, nomeadamente em termos de formação e procedimentos internos, os padrões e processos criados para capturar as melhores soluções práticas para os problemas tendem a ser reutilizados, o que, associado aos processos e frameworks que favorecem a automatização de tarefas repetitivas, potenciam a redução de custos e time-to-market;

- Interoperabilidade e portabilidade: dando ênfase ao conceito de abstracção e modularidade, o modelo poderá ser transformado em código para diferentes plataformas tecnológicas, agilizando a migração entre as mesmas. A partir dos mesmos modelos podem também ser gerados adaptadores e conectores que permitam a comunicação entre plataformas heterogéneas assentes no mesmo modelo; e

- Manutenção e documentação: é senso comum que a documentação deve estar de acordo com o que está implementado, mas nem sempre isso acontece. Nos processos de desenvolvimento convencionais, a urgência inerente às actividades de manutenção conduz à inserção de alterações directamente no "código", tornando a documentação desactualizada. Com o MDD pretende-se que as alterações sejam realizadas no modelo (e não directamente no "código"), onde também se encontra a documentação, existindo assim a garantia que se mantém a coerência com o "código", facilitando as tarefas decorrentes de manutenção. De referir que tal como se gera automaticamente "código" em várias plataformas e tecnologias a partir dos modelos MDD, também se pode gerar automaticamente documentação em vários formatos.

Não obstante a sua já considerável divulgação, a existência de experiências concretas de aplicação/utilização e os potenciais benefícios anteriormente enumerados, a metodologia MDD encontra-se ainda numa fase de afirmação no mercado, devendo considerar-se os seguintes factores indispensáveis para a pretendida adopção generalizada:

- Evolução das ferramentas de suporte à respectiva utilização, de forma a suportarem a gestão integral e integrada das suas várias fases de aplicação e resultados associados, devendo estas garantir i) a automatização das actividades mais complexas associadas à definição de transformações e gestão de metadados e ii) a incorporação de uma framework transversal que facilite a definição e implementação dos modelos a criar; e

- Mudança cultural das Organizações, uma vez que a adopção do MDD implica uma alteração dos papéis e responsabilidades face aos processos de desenvolvimento mais convencionais - em particular no que respeita à maior participação e responsabilização dos "utilizadores finais" na concepção do produto final.

Como qualquer mudança de paradigma, a adopção desta metodologia exige uma fase de aprendizagem e adaptação. É no entanto possível obter-se, num período de tempo reduzido, um retorno do investimento aplicado na adopção desta metodologia, nomeadamente em termos de incremento de produtividade, eficiência e qualidade global dos produtos desenvolvidos.

Por último, de reforçar a mensagem que a adopção do MDD deverá ocorrer de forma faseada e devidamente planeada nas Organizações - decorrente das alterações estruturais que normalmente impõe -, considerando factores como a respectiva maturidade em termos de processo de desenvolvimento aplicacional, cultura e skills existentes, e os recursos humanos, tecnológicos e financeiros disponíveis para investir na respectiva implementação.

* Manager e senior consultant da GMS