Beruflich Dokumente
Kultur Dokumente
{pos.nrafaela,lopespaz,emersonportela}@gmail.com
1. Introducao
Model-Driven Engineering (Engenharia Dirigida por Modelos - MDE) esta concentrada
na utilizacao sistematica de modelos como o artefato primario da Engenharia. Esta abor-
dagem considera os modelos nao apenas como artefatos de documentacao mas, sendo seu
principal elemento, podem ser usados atraves de todas as disciplinas da Engenharia, em
qualquer domnio de aplicacao.
Os principais objetivos de MDE estao calcados na melhoria da qualidade do
software, reducao da complexidade e melhoria no reuso, atraves da concentracao do
trabalho dos desenvolvedores em um nvel mais alto de abstracao, ignorando detalhes
desnecessarios. Alem disso tambem sao apontadas melhorias na produtividade, com
menor tempo sendo despedindo para desenvolvimento do software.
MDE e melhor classificada como um paradigma de engenharia de software nao
tendo, portanto, qualquer suporte de ferramentas concretas. Silva [Silva 2015] propoe
uma classificacao hierarquica das abordagens dirigidas a modelo, iniciando no nvel mais
abstrato com MDE e descendo aos nveis concretos, como Model-Driven Test (Testes
Dirigidos por Modelos - MDT), Model-Driven Development (Desenvolvimento Dirigido
por Modelos - MDD), e assim por diante, conforme a Figura 1.
MDD tem seu foco principal nas disciplinas de requisitos, analise e
implementacao. MDT centra sua atencao na disciplina de automacao de testes, com mod-
elos de teste sendo utilizados para representar o comportamento esperado de um sistema,
estrategias e ambientes de teste.
Model-Driven Architecture (Arquitetura Dirigida por Modelos - MDA) e a abor-
dagem proposta pelo Object Management Group (OMG). Seu foco principal esta con-
centrado na definicao de modelos e suas transformacoes, dando suporte a modelagem em
diferentes nveis de abstracao. Embora nao seja uma abordagem concreta, ja que nao es-
pecifica linguagens concretas de modelagem e ferramentas associadas, MDA defende o
uso de varias especificacoes concretas, definidas pelo proprio OMG.
2. Aplicacoes
O uso de cada tipo de modelo requer habilidades especficas para produzir e evoluir MDD
de forma eficaz. Aumentar o nvel de abstracao para modelos permite aos especialistas
trabalharem com abstracoes que atendem melhor as suas tarefas e competencias.
E importante observar que a inter-relacao entre varios tipos de modelos, e, es-
pecialmente, diferentes formalismos de modelagem, pode ser dificultoso para qualquer
das partes interessadas (por exemplo, casos de uso desenvolvedor, arquiteto, implemen-
tador, tester) no sentido de entender o impacto de uma proposta de mudanca em todos os
artefatos relacionados.
O desenvolvimento MDD nao pode confiar em equipes pequenas e unidas como,
por exemplo, offshore outsourcing e desenvolvimento de codigo aberto. O desenvolvi-
mento distribudo de equipes e criado de modo que diferentes nveis de especializacao
pode ser explorada com base em conjuntos de habilidades em diferentes locais de de-
senvolvimento, tais como os designers de exigencia que consultam diretamente com
um cliente, arquitetos que criam projetos comuns a serem utilizados ao longo uma
organizacao, programadores em um back-office e testadores que pode estar em uma
quarta localizacao. Dessa forma acontece a ausencia de interacoes imprescindveis, tal
qual comunicacoes face-a-face,
Diferentes modelos MDD podem auxiliar na comunicacao entre estas diferentes
subequipes, mas tambem implica que diferentes subequipes podem nao ser especialista
em apenas seu proprio desenvolvimento. Dessa forma, artefatos resultante a partir de
qualquer fase do ciclo de vida pode impactar aqueles produzido em qualquer outra fase.
O conhecimento das diferentes tecnologias e terminologias deve existir no modelo para
cada ambiente.
3. Desafios
Embora MDE venha crescendo e se tornando mais conhecida, e uma abordagem que ainda
tem desafios a serem enfrentados:
Ida e volta (round-trip problem): Alteracoes feitas em partes dos modelos podem
impactar em outras partes do proprio modelo ou ainda no codigo gerado, por
exemplo. O contrario tambem pode ocorrer, com alteracoes no codigo fonte
gerado precisando ser refletidas nos modelos. Alem do custo embutido, falhas na
identificacao e tratamento desses impactos podem trazer problemas ao software.
5. Analise Crtica
MDE apresenta-se com um novo paradigma de desenvolvimento de software que e
promissor. A despeito de ja ter quase duas decadas de existencia, ainda nao se tornou
um padrao de facto na industria. Muitos desafios ainda existem e, ate aqui, a grande
massa de desenvolvimento de software ainda esta embasada na forma de desenvolvimento
tradicional, com codificacao de codigo textual e sua compilacao/execucao.
Uma reflexao importante e levantada por [Hailpern and Tarr 2006]: MDE esta
realmente reduzindo a complexidade do desenvolvimento de software ou simplesmente
mudando-a de lugar? Fases iniciais de desenvolvimento sao mais simples mas as fases
subsequentes podem ser muito mais complexas, tornando impossveis (ou proibitivamente
caras) a manutencao, debug ou alteracao dos artefatos no futuro.
A despeito dessa argumentacao, o campo de pesquisa para MDE ainda e vasto e
apresenta varias possibilidades e caminhos para aqueles que desejam enveredar por esse
(nao tao) novo paradigma.
References
Hailpern, B. and Tarr, P. (2006). Model-driven development: The good, the bad, and the
ugly. IBM systems journal, 45(3):451.
Silva, A. R. d. (2015). Model-driven engineering: A survey supported by the unified
conceptual model. Computer Languages, Systems & Structures, 43:139155.
Van Deursen, A., Visser, E., and Warmer, J. (2007). Model-driven software evolution:
A research agenda. Technical report, Delft University of Technology, Software Engi-
neering Research Group.