MDD e DSML, O Potencial da Modelagem no Desenvolvimento de Software

MDD com DSML possui foco em problemas específicos
 de um determinado domínio.
Apesar de não ter realizado uma publicação exclusiva falando sobre MDD (Model-Driven Development), grande parte da sua definição está contida na MDA (Model-Driven Architecture). O Desenvolvimento Orientado a Modelos é um paradigma que envolve todo processo de criação de software, gerando código a partir de modelos (semelhante à arquitetura MDA). Este paradigma, cada vez mais aplicado no meio acadêmico e nas empresas, abstrai a complexidade das linguagens de programação e seus códigos-fonte, já que os sistemas são desenvolvidos a partir de modelos criados para serem transformados automaticamente em código executável. Geralmente a criação destes modelos e a transformação para código executável é realizada a partir de uma ferramenta CASE (Computer-Aided Software Engineering).


MDD
A IDE permite criar/atualizar modelos, que antes só serviam
de documentação, interferindo diretamente no código.
É possível seguir o paradigma MDD a partir duas maneiras: a primeira, semelhante ao que foi falado sobre MDA aqui no blog, utiliza uma linguagem de modelagem de propósito geral (ex.: UML), a segunda faz uso de uma linguagem de propósito específico (ou Domain Specific Modeling Language, DSML). Diferente da primeira, ao utilizar uma DSML, fica estabelecida uma classe específica de problemas que, composta por abstrações e notações apropriadas, oferece maior precisão e expressividade para modelar um problema de um determinado domínio. Esta segunda maneira visa aumentar a qualidade e a produtividade da atividade da modelagem e do desenvolvimento.

DSML
A definição de uma DSML requer a especificação de três elementos: 1) sintaxe abstrata (um metamodelo que descreve os conceitos e as regras de modelagem da DSML, equivalente à gramática de uma linguagem de programação), 2) sintaxe concreta (relativa à notação gráfica da DSML, ex.: ícones e formas), 3) semântica (fornece significado para cada elemento gráfico da DSML). Além disso, a definição de uma DSML também requer a construção de uma ferramenta CASE a partir de um framework de modelagem (ex.: Eclipse Modeling Framework - EMF, Eclipse Graphical Modeling Framework - GMF e Epsilon).


Como recomendação de leitura, indico o livro "Domain-Specific Modeling: Enabling Full Code Generation". Para mais informações acesse o site http://dsmbook.com/.

Particularmente, acredito neste paradigma de desenvolvimento, principalmente em fábricas de software e processos de desenvolvimento que envolvam linhas de produto. O MDD, principalmente quando desenvolvido com DSML, pode trazer grandes benefícios e abrir muitas possibilidades, reduzindo tempo, custo e complexidade no desenvolvimento de sistemas de informação. Em MDD, o explícito conhecimento do domínio é crucial para desenvolver com sucesso uma DSML. Mas, para comprovar isso, na próxima publicação irei mostrar na prática o que pode ser feito utilizando este paradigma com DSML.

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