Please use this identifier to cite or link to this item: https://hdl.handle.net/1822/36788

TitleA comparison betwee DSLs and GPLs for the implementation of unidirectional and bidirectional transformations
Other titlesComparação entre DSLS e GPLS para a implementação de transformações unidirecionais e bidirecionais
Author(s)Murta, Daniel R.
Advisor(s)Cunha, Alcino
Perestrelo, Marco
KeywordsEngenharia
Software
Modulação
Transformação
Modelo
Linguagem
DSL
Abstração
Issue date10-Dec-2014
Abstract(s)Ian Sommerville states in his famous "Software Engineering" book the following: "Some organisations still rely on software systems that are more than 20 years old. Many of these old systems are still business-critical. (...) These old systems have been given the name legacy systems." Legacy systems represent a real problem for some organisations. On the one hand, they are and always were their revenue generator, on the other hand, keeping them stale as their are today will not make that trend sustainable. System disruption is rarely the solution for this problem. A gradual software migration towards modernization is the less risky solution, and i2S, an Insurance Software company, has adopted this approach, guided by Model-driven Engineering principles. For a system migration to be executed following this methodology, low level models (close to code) of the system will do, however, the full potential will not be seized. For an easier maintenance of the system in the long term, higher level abstractions are incontrovertibly a means to an end. The main aim of this thesis is to integrate this higher abstraction level into the current migration process implemented by i2S.
Model-Driven Engineering (MDE) is a software development paradigm based on two building concepts: models and transformations. In an early stage, software is abstracted by models, which gradually evolve into the final product by the application of transformations. This dissertation focus essentially on transformations. Initially, a general categorisation of transformations is given by presenting the several aspects on which they can be distinguished. One of those aspects is directionality, where transformations are split into one of two categories: unidirectional; or bidirectional. Then two distinct problems are presented, for which a transformation is proposed as a solution for each. For the first problem, a unidirectional transformation is recommended and for the latter a bidirectional transformation is recommended. For each transformation, two different implementations are conceived and discussed. One of the implementations is achieved by recurring to a DomainSpecific Language (DSL) specifically tailored for the specification of the transformation in case, and the other implementation is materialised by recurring to a General-Purpose Programming Language (GPPL). The main aim of this thesis is to compare between DSLs and GPPLs as possible alternatives to specify model transformations. This comparison is done by taking into consideration both the unidirectional and bidirectional case scenarios, and by having as comparison guidelines performance and maintainability
MDE é um paradigma de desenvolvimento de software assente em duas pedras basilares: modelos e transformações. Numa primeira fase, o software é abstraído através de modelos, que depois evoluem gradualmente na direcção do produto final pela aplicação de transformações. Inicialmente é apresentada uma categorização geral do conceito de "transformação" no âmbito do MDE, apresentando os vários fatores nos quais as transformações se distinguem umas das outras. Um destes factores é designado de direcionalidade, segundo o qual as transformações podem ser unidirecionais ou bidirecionais. Esta tese apresenta dois problemas distintos, para os quais uma transformação é proposta como solução para cada. No caso do primeiro problema, recomenda-se uma transformação unidirecional, enquanto que para o segundo problema é proposta uma transformação bidirecional. Para cada transformação proposta, duas implementações diferentes sãoconcebidas e discutidas. Uma das implementações é conseguida recorrendo a uma linguagem de domínio específico talhada especificamente para a implementação da transformação em causa, e a outra implementação é obtida através do desenvolvimento de um programa através de uma linguagem de programação genérica. O principal objetivo desta dissertação é comparar entre as linguagens de domínio específico e as linguagens genéricas como duas alternativas na especificação de transformações entre modelos. Esta comparação é feita tendo em consideração os cenários de estudo unidirecional e bidirecional, sendo que os termos de comparação usados foram a noção de performance e manutenção das implementações.
TypeMaster thesis
DescriptionDissertação de mestrado em Engenharia Informática
URIhttps://hdl.handle.net/1822/36788
AccessOpen access
Appears in Collections:BUM - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
eeum_di_dissertacao_pg23205.pdf1,2 MBAdobe PDFView/Open

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID