Figure 2 - uploaded by Jesús Sánchez Cuadrado
Content may be subject to copyright.
An excerpt of a UML-to-Java transformation. Fields of a UML class are transformed into attributes of a Java class.  

An excerpt of a UML-to-Java transformation. Fields of a UML class are transformed into attributes of a Java class.  

Source publication
Article
Full-text available
Today, the popularity of dynamic languages such as Python and Ruby is growing beyond their use as scripting languages. In fact, Sun, Microsoft, and other companies are supporting some dynamic languages on their development platforms. Developers increasingly find that dynamic languages' features help them enhance their productivity, while common mis...

Contexts in source publication

Context 1
... In addition, the language adds a de- clarative layer on top of Ruby to transform models by means of declarative rules that specify mappings between model elements. Figure 2 shows an excerpt of a transforma- tion definition between a UML class model and a Java class model. The first rule trans- forms every UML class into a Java class (as the from and to keywords specify). ...
Context 2
... a new kind of rule such as toprule (see figure 2) implies both inheriting from the Rule class (which implements the de- fault rule's behavior) and defining a new key- word whose implementation only instantiates a new rule object of the proper type. So, the keyword implementation varies only in the Rule subclass's name, and we'd like to gener- ate it automatically. ...

Similar publications

Conference Paper
Full-text available
The ACTS collection project comprises a set of state-of-theart software tools to speed up the development of High-Performance Computing Applications in science and engineering. We look at the development of High Level user interfaces using scripting languages like Python, to facilitate the access to ACTS technology to a wide community of computatio...
Article
Full-text available
The Anaphe project is an ongoing effort to provide an Object Oriented software environment for data analysis in HENP experiments. A range of commercial and public domain libraries is used to cover basic functionalities; on top of these libraries a set of HENP-specific C++ class libraries for histogram management, fitting, plotting and ntuple-like d...
Article
Full-text available
We present an approach to perform multi-physics simulations by coupling multiple solvers. In order to simplify the coupling process, we have developed the software module CHIMPS (Coupler for High-performance Integrated Multi-Physics Simulations) that han-dles the coupling of two mesh-based solvers. The module is based on the script language python...
Article
Full-text available
Scientific workflow management systems offer features for composing complex com- putational pipelines from modular building blocks, executing the resulting automated workflows, and recording the provenance of data products resulting from workflow runs. Despite the advantages such features provide, many automated workflows continue to be implemented...
Conference Paper
Full-text available
A damage tolerance framework, EBF3PanelOpt, has been developed to design and analyze curvilinearly stiffened panels. The framework is written with the scripting language Python and it interacts with the commercial software MSC. Patran (for geometry and mesh creation), MSC. Nastran (for finite element analysis), and MSC. Marc (for damage tolerance a...

Citations

... HIPA cc [69] (Heterogeneous Image Processing Acceleration) is another DSL for image processing. It is a C++ embedded DSL [70], which uses the LLVM back-end [71] for software code generation, and C code annotated with pragmas for Vivado HLS. ...
Article
Full-text available
Modern embedded image processing deployment systems are heterogeneous combinations of general-purpose and specialized processors, custom ASIC accelerators and bespoke hardware accelerators. This paper offers a primer on hardware acceleration of image processing, focusing on embedded, real-time applications. We then survey the landscape of High Level Synthesis technologies that are amenable to the domain, as well as new-generation Hardware Description Languages, and present our ongoing work on IMP-lang, a language for early stage design of heterogeneous image processing systems. We show that hardware acceleration is not just a process of converting a piece of computation into an equivalent hardware system: that naive approach offers, in most cases, little benefit. Instead, acceleration must take into account how data is streamed throughout the system, and optimize that streaming accordingly. We show that the choice of tooling plays an important role in the results of acceleration. Different tools, in function of the underlying language paradigm, produce wildly different results across performance, size, and power consumption metrics. Finally, we show that bringing heterogeneous considerations to the language level offers significant advantages to early design estimation, allowing designers to partition their algorithms more efficiently, iterating towards a convergent design that can then be implemented across heterogeneous elements accordingly.
... HIPA cc [65] (Heterogeneous Image Processing Acceleration) is another DSL for image processing. It is a C++ embedded DSL [66], which uses the LLVM back-end [67] for software code generation, and C code annotated with pragmas for Vivado HLS. ...
Preprint
Full-text available
Modern embedded image processing deployment systems are heterogeneous combinations of general-purpose and specialized processors, custom ASIC accelerators and bespoke hardware accelerators. This paper offers a primer on hardware acceleration of image processing, focusing on embedded, real-time applications. We then survey the landscape of High Level Synthesis technologies that are amenable to the domain, and present our ongoing work on IMP-Lang, a language for early stage design of heterogeneous image processing systems. We show that hardware acceleration is not just a process of converting a piece of computation into an equivalent hardware system: that naive approach offers, in most cases, little benefit. Instead, acceleration must take into account how data is streamed throughout the system, and optimize that streaming accordingly. We show that the choice of tooling plays an important role in the results of acceleration. Different tools, in function of the underlying language paradigm, produce wildly different results across performance, size, and power consumption metrics. Finally, we show that bringing heterogeneous considerations to the language level offers significant advantages to early design estimation, allowing designers to partition their algorithms more efficiently, iterating towards a convergent design that can then be implemented across heterogeneous elements accordingly.
... Automated model transformation is a core aspect of model-driven development (Cuadrado and Molina, 2007). It uses Model-Driven Engineering (MDE) principles based on metamodeling concepts. ...
Article
Full-text available
Process-based crop models are popular tools to analyze and simulate the response of agricultural systems to weather, agronomic, or genetic factors. They are often developed in modeling platforms to ensure their future extension and to couple different crop models with a soil model and a crop management event scheduler. The intercomparison and improvement of crop simulation models is difficult due to the lack of efficient methods for exchanging biophysical processes between modeling platforms. We developed Crop2ML, a modeling framework that enables the description and the assembly of crop model components independently of the formalism of modeling platforms and the exchange of components between platforms. Crop2ML is based on a declarative architecture of modular model representation to describe the biophysical processes and their transformation to model components that conform to crop modeling platforms. Here, we present Crop2ML framework and describe the mechanisms of import and export between Crop2ML and modeling platforms.
... Automated model transformation is a core aspect of model-driven development (Cuadrado & Molina, 2007 Kurtev et al., 2006). Crop2ML is based on a transformation process through a set of refinement of models and code with some extensible rules defined as templates in Python. ...
Thesis
Full-text available
The heterogeneity of crop modeling platforms in terms of implementation language, design pattern, and software architecture constraints, limits the reuse of model components outside the platform in which they have been developed. Our objective is to propose a reuse approach based on a high level of abstraction of model components. To this end, we have identified some concepts that made it possible to define a component specification language and a minimal domain language for the description of algorithms regardless of platform specificities. A transformation system based on these concepts allowed us to generate seamlessly platform-compliant components. We have shown that a unified description of model components with shared concepts lift constraints of platforms and increases reusability of components.
... Automated model transformation is a core aspect of model-driven development (Cuadrado & Molina, 2007 Kurtev et al., 2006). Crop2ML is based on a transformation process through a set of refinement of models and code with some extensible rules defined as templates in Python. ...
Thesis
The heterogeneity of crop modeling platforms in terms of implementation language, design pattern, and software architecture constraints, limits the reuse of model components outside the platform in which they have been developed. Our objective is to propose a reuse approach based on a high level of abstraction of model components. To this end, we have identified some concepts that made it possible to define a component specification language and a minimal domain language for the description of algorithms regardless of platform specificities. A transformation system based on these concepts allowed us to generate seamlessly platform-compliant components. We have shown that a unified description of model components with shared concepts lift constraints of platforms and increases reusability of components.
... One such driver is the use of domain specific languages (DSLs) to allow engineers to specify systems in terms relevant to their domain, rather than encoding them into general purpose concepts like those of UML. These DSLs are underpinned by metamodels (Cuadrado and Molina 2007), which express the concepts and structure of possible models (i.e., abstract syntax). However, as DSLs grow in complexity, the expressivity of meta-models alone is often not sufficient to accurately specify the domain (Richters and Gogolla 1998). ...
Article
Full-text available
Model-driven engineering (MDE) enables the rise in abstraction during development in software and system design. In particular, meta-models become a central artifact in the process, and are supported by various other artifacts such as editors and transformation. In order to define constraints, invariants, and queries on model-driven artifacts, a generic language has been developed: the Object Constraint Language (OCL). In literature, many studies into OCL have been performed on small collections of data, mostly originating from a single source (e.g., OMG standards). As such, generalization of results beyond the data studied is often mentioned as a threat to validity. Creation of a benchmark dataset has already been identified as a key enabler to address the generalization threat. To facilitate further empirical studies in the field of OCL, we present the first large-scale dataset of 103262 OCL expression, systematically extracted from 671 GitHub repositories. In particular, our dataset has extracted these expressions from various types of files (a.o. metamodels and model-to-text transformations). In this work we showcase a variety of different studies performed using our dataset, and describe several other types that could be performed. We extend previous work with data and experiments regarding OCL in model-to-text (mtl) transformations.
... However, 10 it is important to have a means to estimate the minimum threshold from which to produce 11 new applications with a DSL is more rewarding than with a GPL. 12 Unanticipated difficulties associated with the development of a DSL may impact the 13 break-even point for DSL adoption. Common challenges include effort that is wasted for 14 various reasons, such as the use of bad practices in development, misunderstanding of the 15 domain, or an overemphasis on some of the domain concepts [40]. A common mistake 16 is to assume that the presence of extensive experience in developing languages, such as 17 DSLs, is the most essential success factor. ...
... 11 Subsequently, these evaluations are collected and delivered to each expert to make a new 12 assessment using opinion of other experts [38]. 13 Work Breakdown Structure This method organizes a project into a structure of compo-14 nents or activities, in a hierarchical way so that it is possible to observe the effort required 15 to the completion of the project [12]. ...
... As it is going to be described next in this section, we used three complementary sources of 15 information available in the literature to identify the relevant cost drivers for DSL adoption: 16 General bibliography in Software Engineering; Dedicated textbooks for DSL development; 17 and, Structured Review on DSL development costs. ...
Preprint
Full-text available
Domain-Specific Languages (DSLs) are claimed to bring productivity gains, but the actual Return On Investment, considering development, adoption and evolution costs is often neglected when assessing those gains. Software Language Engineers lack clear guidelines to help in understanding the costs involved in engineering a DSL. In this paper, we aim at charting existing costs identified in the literature. We identified cost components through a literature survey focusing on papers published in journals, as well as authoritative Software Engineering references. We further added elements from existing general Software Engineering cost models. We structured the identified costs in a feature model and further refined it to address commonly hidden or neglected costs particular to Software Language Engineering. The proposed model raises awareness to DSL Engineering costs and can be used as a stepping stone towards a grounded risk analysis when considering the adoption of a DSL.
... Cuadrado and Molina deal with embedded DSLs and its model transformation in their work. [CM07] A key aspect of MDSD is Metamodeling, which defines the abstract syntax of a DSL. Since graphical editors are the most favorable way to define Metamodels, developing one is a time-consuming task. ...
Conference Paper
Full-text available
Domain-specific Languages (DSL) describe applications of particular domains that can be understood by domain experts. However, common users have to learn a new domain language. Moreover, developing similar software products from scratch is a time consuming and tedious task. Therefore, we developed an internal DSL to describe RESTful systems. In order to use that one must have very good knowledge about REST. Feature models are a common paradigm in Product Line Engineering to represent the features of the products as reusable parts. They can be easily communicated with customers. That is why we have extended our approach with a model-to-model transformation. This transformation provides a model for an underlying REST generator. While a model-to-code (M2C) generator is developed domain-specific, excluding expansion by a new domain, our approach is to make it more efficient than developing a M2C generator for every single domain. So that non-experts can configure REST solutions by using feature models without knowledge of REST.
... We use a design inspired by MDE to build a Domain-Specific Language (DSL) of the architecture, as can be seen in the metamodel of Figure 3. This metamodel defines the abstract syntax of our DSL and is described using object-oriented constructs [11] because we use MOF [12] as our metamodeling language. This representation helps us to understand the different parts that make up the architectures. ...
Article
Full-text available
The Internet of Things mechanisms enable the management of home environments since they can be developed as IoT based information systems. From standard smart homes to automated buildings, including other kind of domotics and inmotics solutions, every system must be tested and validated before its installation. The current tools offered by IoT and home automation vendors lack in emulation features close to the real behavior of the devices. In many cases, delaying the verification actions until the hardware is acquired and installed may cause some drawbacks, for example, from the economic point of view. This paper presents a solution for emulating home automation environments which are based on the KNX standard and can be represented by architectures of devices. The emulation consist of developing virtual implementations of real devices which operate and communicate through web technology. The technology implementing these virtual devices allows us to develop components which can provide different type of data related to the installation (audio, video, text, animations, images, etc.). The architectures can be managed using web services and their behavior can be tested through web user interfaces showing the mentioned data. Furthermore, virtual and physical devices are connected to validate the interoperability between the real installation and the emulation.
... The model-to-text transformation (M2T), which is also known as modelto-code, is carried out when the information from user models converts to software code and other textual artefacts. The M2T transformation is commonly referred as code generation (Cuadrado and Molina, 2007). The transformation is not limited to programming languages such as Java and C, but also to the data definitions, deployment configuration, message schemas and other types of files. ...