Pular para o conteúdo principal

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.

Comentários

Postagens mais visitadas deste blog

Utilizando o padrão de referências da ABNT no Word

Uma importante funcionalidade do Microsoft Word é o seu Gerenciador de Fontes Bibliográficas. Para aqueles que estão escrevendo algum trabalho acadêmico ou científico, é possível cadastrar todas as referências do trabalho e no final gerar a listagem já enumerada dos documentos que foram consultados na pesquisa. Essa postagem traz os arquivos necessários e as instruções para facilitar essa etapa da elaboração.

Programação Paralela e por que você deveria se preocupar com isso (Parte 1)

Creio que a maioria dos desenvolvedores já deve ter ouvido falar de threads, aprendeu um pouco sobre semáforos, monitores e travas. Partindo desse meu pensamento, imagino que essa mesma maioria não utiliza nenhuma forma de programação paralela em suas aplicações. A pergunta que fica é: utilizar paralelismo e lidar com concorrência tem baixa popularidade entre os desenvolvedores porque não tem utilidade ou porque os cursos de graduação em computação estão carentes de uma disciplina que ensine aos graduandos os reais benefícios em ter uma base sólida nesta área?

Esta série de publicações irá trazer uma visão básica sobre Parallel Programming, os exemplos serão baseados em Java e muito do que mostro aqui pode ser encontrado de maneira mais aprofundada no livro "The Art of Multiprocessor Programming", dos autores Maurice Herlihy e Nir Shavit.

Mininet: Uma Rede Virtual Instantânea no Seu PC

Baseado no texto de introdução presente no site oficial do Mininet (www.mininet.org) apresento esta ferramenta que possibilita a desenvolvedores e pesquisadores a criação de uma rede virtual realista, executando um kernel real, switch e código de aplicação, em uma única máquina (VM, cloud ou nativa), em segundos, com comandos simples.

A rede virtual criada pelo Mininet é escalável, uma rede definida por software em um único PC utilizando processos do Linux. Isso possibilita um meio inteligente de realizar testes e simulações de uma rede antes de implementá-la em meio físico, caso esse seja o objetivo.