Bidirectional Transformations with QVT-R: A Case Study in Round-trip Engineering UML Class Models and Java Source Code

Author(s):  
Sandra Greiner ◽  
Thomas Buchmann ◽  
Bernhard Westfechtel
Keyword(s):  
Author(s):  
Sandra Greiner ◽  
Thomas Buchmann

Model transformations constitute the key technology for model-driven software development, a software engineering discipline which became more and more important during the last decade. While tool support for unidirectional batch transformations is rather mature, bidirectional and incremental transformations are only weakly investigated. Nevertheless, several usage scenarios demand for incremental and bidirectional transformations, like round-trip engineering between UML class models and Java source code. This paper presents a bidirectional transformation between UML class models and a Java model which is obtained from Java source code. The transformation is written in QVT Relations, a declarative model transformation language provided by the OMG. While the case study demonstrates that it is possible to specify bidirectional transformations between heterogeneous metamodels in a single relational specification, it also reveals some inherent limitations of the language and the corresponding tool support.


2017 ◽  
Vol 9 (6) ◽  
pp. 949 ◽  
Author(s):  
Ying Hui ◽  
Mengtao Ding ◽  
Kun Zheng ◽  
Dong Lou
Keyword(s):  
Gps Data ◽  

2016 ◽  
Vol 9 (12) ◽  
pp. 4491-4519 ◽  
Author(s):  
Aurélien Gallice ◽  
Mathias Bavay ◽  
Tristan Brauchli ◽  
Francesco Comola ◽  
Michael Lehning ◽  
...  

Abstract. Climate change is expected to strongly impact the hydrological and thermal regimes of Alpine rivers within the coming decades. In this context, the development of hydrological models accounting for the specific dynamics of Alpine catchments appears as one of the promising approaches to reduce our uncertainty of future mountain hydrology. This paper describes the improvements brought to StreamFlow, an existing model for hydrological and stream temperature prediction built as an external extension to the physically based snow model Alpine3D. StreamFlow's source code has been entirely written anew, taking advantage of object-oriented programming to significantly improve its structure and ease the implementation of future developments. The source code is now publicly available online, along with a complete documentation. A special emphasis has been put on modularity during the re-implementation of StreamFlow, so that many model aspects can be represented using different alternatives. For example, several options are now available to model the advection of water within the stream. This allows for an easy and fast comparison between different approaches and helps in defining more reliable uncertainty estimates of the model forecasts. In particular, a case study in a Swiss Alpine catchment reveals that the stream temperature predictions are particularly sensitive to the approach used to model the temperature of subsurface flow, a fact which has been poorly reported in the literature to date. Based on the case study, StreamFlow is shown to reproduce hourly mean discharge with a Nash–Sutcliffe efficiency (NSE) of 0.82 and hourly mean temperature with a NSE of 0.78.


2018 ◽  
pp. 5-7 ◽  
Author(s):  
Vincent Podeur ◽  
Damien Merdrignac ◽  
Morgan Behrel ◽  
Kostia Roncin ◽  
Caroline Fonti ◽  
...  

A tool dedicated to assess fuel economy induced by kite propulsion has been developed. To produce reliable results, computations must be performed on a period over several years, for several routes and for several ships. In order to accurately represent the impact of meteorological trends variations on the exploitability of the kite towing concept, a time domain approach of the problem has been used. This tool is based on the weather database provided by the ECMWF. Two sailing strategies can be selected for assessing the performance of the kite system. For a given kite area, the simulation can be run either at constant speed or at constant engine power. A validation has been made, showing that predicted consumption is close from in-situ measurement. It shows an underestimation of 11.9% of the mean fuel consumption mainly due to auxiliary consumption and added resistance in waves that were not taken into account. To conclude, a case study is performed on a 2200 TEU container ship equipped with an 800m² kite on a transatlantic route between Halifax and Le Havre. Round trip simulations, performed over 5 years of navigation, show that the total economy predicted is of around 12% at a speed of 16 knots and around 6.5% at a speed of 19 knots.


2021 ◽  
Vol 23 (07) ◽  
pp. 23-34
Author(s):  
Mrs. Vani Dave ◽  
◽  
Mr Sanjeev Kumar shukla ◽  

In this study, we propose a method to quickly search for similar source files for a given source file as a method to examine the origin of reused code. By outputting not only the same contents but also similar contents, it corresponds to the source file that has been changed during reuse. In addition, locality-sensitive hashing is used to search from a large number of source files, enabling fast search. By this method, it is possible to know the origin of the reused code. A case study was conducted on a library that is being reused written in C language. Some of the changes were unique to the project, and some were no longer consistent with the source files. As a result, it was possible to detect the source files that were reused from among the 200 projects with 92% accuracy. In addition, when we measured the execution time of the search using 4 files, the search was completed within 1 second for each file.


2021 ◽  
Vol 16 (1) ◽  
pp. 11
Author(s):  
Klaus Rechert ◽  
Jurek Oberhauser ◽  
Rafael Gieschke

Software and in particular source code became an important component of scientific publications and henceforth is now subject of research data management.  Maintaining source code such that it remains a usable and a valuable scientific contribution is and remains a huge task. Not all code contributions can be actively maintained forever. Eventually, there will be a significant backlog of legacy source-code. In this article we analyse the requirements for applying the concept of long-term reusability to source code. We use simple case study to identify gaps and provide a technical infrastructure based on emulator to support automated builds of historic software in form of source code.  


Author(s):  
Masahide Nakamur ◽  
Hiroshi Igaki ◽  
Takahiro Kimura ◽  
Kenichi Matsumoto

In order to support legacy migration to the service-oriented architecture (SOA), this paper presents a pragmatic method that derives candidates of services from procedural programs. In the SOA, every service is supposed to be a process (procedure) with (1) open interface, (2) self-containedness, and (3) coarse granularity for business. Such services are identified from the source code and its data flow diagram (DFD), by analyzing data and control dependencies among processes. Specifically, first the DFD must be obtained with reverse-engineering techniques. For each layer of the DFD, every data flow is classified into three categories. Using the data category and control among procedures, four types of dependency are categorized. Finally, six rules are applied that aggregate mutually dependent processes and extract them as a service. A case study with a liquor shop inventory control system extracts service candidates with various granularities.


Author(s):  
Natarajan Meghanathan ◽  
Alexander Roy Geoghegan

The high-level contribution of this book chapter is to illustrate how to conduct static code analysis of a software program and mitigate the vulnerabilities associated with the program. The automated tools used to test for software security are the Source Code Analyzer and Audit Workbench, developed by Fortify, Inc. The first two sections of the chapter are comprised of (i) An introduction to Static Code Analysis and its usefulness in testing for Software Security and (ii) An introduction to the Source Code Analyzer and the Audit Workbench tools and how to use them to conduct static code analysis. The authors then present a detailed case study of static code analysis conducted on a File Reader program (developed in Java) using these automated tools. The specific software vulnerabilities that are discovered, analyzed, and mitigated include: (i) Denial of Service, (ii) System Information Leak, (iii) Unreleased Resource (in the context of Streams), and (iv) Path Manipulation. The authors discuss the potential risk in having each of these vulnerabilities in a software program and provide the solutions (and the Java code) to mitigate these vulnerabilities. The proposed solutions for each of these four vulnerabilities are more generic and could be used to correct such vulnerabilities in software developed in any other programming language.


Sign in / Sign up

Export Citation Format

Share Document