An excerpt of the Generic Abstract Syntax Tree Metamodel (GASTM) and PL/SQL Specialized Abstract Syntax Tree Metamodel (SASTM) metamodels. It shows only the syntax elements.  

An excerpt of the Generic Abstract Syntax Tree Metamodel (GASTM) and PL/SQL Specialized Abstract Syntax Tree Metamodel (SASTM) metamodels. It shows only the syntax elements.  

Source publication
Article
Full-text available
Model-driven software development (MDD) is gaining increasing acceptance, mainly because it can raise the level of abstraction and automation in software construction. MDD techniques (see the sidebar "MDD Basic Concepts"), such as metamodeling and model transformation, not only apply to the creation of new software systems but also can be used to e...

Context in source publication

Context 1
... the case of our tool, the SASTM metamodel extends the GASTM metamodel to represent spe- to represent spe- cific PL/SQL concepts, such as document descrip- tion language statements. Figure 3 shows an excerpt of these metamodels in which SASTM metaclasses inherit from GASTM metaclasses. ...

Similar publications

Article
Full-text available
NoSQL technologies have become a common component in many information systems and software applications. These technologies are focused on performance, enabling scalable processing of large volumes of structured and unstructured data. Unfortunately, most developments over NoSQL technologies consider security as an afterthought, putting at risk pers...
Conference Paper
Full-text available
Bidirectional model transformation is useful for maintaining consistency between two models, and has many potential applications in software development including model synchronization, round-trip engineering, and software evolution. Despite these attractive uses, the lack of a practical tool support for systematic development of well-behaved and e...
Conference Paper
Full-text available
Model-driven engineering (MDE) can be used both to create new software systems and to evolve or modernize existing software systems. In model-driven software evolution, models are extracted from the system and then MDE techniques are applied to make it evolve. Most evolution scenarios involve dealing with existing source code written in some progra...

Citations

... ADM defines a set of standard meta-models supportive in reverse engineering under umbrella of ADM task force. Abstract Syntax Tree Metamodel (ASTM) [10], Knowledge Discovery Meta-model (KDM) [11] and Software Metrices Meta-Model (SMM) [12] are standardized meta-models used for extracting information from legacy systems. In another research, Ricardo P. et al [11] expressed the knowledge discovery meta-model KDM in detail. ...
Article
Full-text available
Legacy systems are large applications which are significant in performing daily organizational operations and cannot be upgraded easily especially in the absence of architectural and design documentation. Software modernization is an emerging field of software engineering, which transforms the legacy systems into new one according to the specified requirements of stakeholders. It mainly deals with improving the architecture, features, rules and data sources of existing system. It always remained a challenging task to achieve high-level representation of legacy systems. In order to achieve this high-level representation, Reverse Engineering (RE) plays an integral role. The issues of traditional RE are overcome with the help of Model Driven Reverse Engineering (MDRE) such as it generates model-based view of the legacy systems, which is comprehensible and easy to understand for practitioners. MDRE is an active research area but it provides limited tool support to extract and model both structural and behavioral aspects of legacy systems. In this paper, a novel MDRE framework named as “Source to Model Framework (Src2MoF)”is proposed to generate Unified Modeling Language (UML) structural (class) and behavioral (activity) diagrams from the Java source code. Src2MoF is based on the principles of Model Driven Engineering (MDE), which use models as first-class citizens alleviating the complexity of software systems. The contributions of this paper are as follows; first, an Intermediate Model Discoverer (IMD) is developed using source code parser to get the intermediate representation of the system from the existing Java code. Second, an open source transformation engine named “UML model generator” is implemented using Java, which takes these intermediate models as input, and produce high-level UML models of the subject legacy system. Finally, the two benchmark case studies are presented to depict the relevance and usability of Src2MoF.
... In the literature, several reengineering approaches describe how to transform a KDM instance into a particular technology using specific components and mapping. For example, from KDM-Extend to SQL-DML [17], from KDM to KD model [25] or from KDM to Metrics Model [8]. These works transform KDM instances in other metamodel instances in conformance with proprietary metamodels, hindering the reuse in other similar projects. ...
Conference Paper
Full-text available
Architecture-Driven Modernization (ADM) is a type of software reenginering that employs standard metamodels along the process and deals with the whole system architecture. The main metamodel is the Knowledge-Discovery Metamodel (KDM), which is language, platform independent and it is able to represent several aspects of a software system. Although there is much research effort in the reverse engineering phase of ADM, little have been published around the forward engineering one; mainly on the generation of Platform-Specific Models (PSM) from KDM. This phase is essential as it belongs to the final part of the horseshoe cycle, completing the reengineering process. However, the lack of research and the absence of tooling support hinders the industrial adoption of ADM. Therefore, in this paper we propose an approach to support engineers in creating Transformation Engines (TE) from KDM to any other PSM. This approach was emerged from the experience in creating a TE called RUTE-K2J, which aims at generating Java Model from KDM. The transformation rules of RUTE-K2J were tested considering sets of common code structures that normally appears when modernizing systems. The test cases have shown the transformation rules were able to generate correctly 92% of the source code that was submitted to the transformation.
... Moreover, we replace work summary papers such as a summary of a Ph.D. work with their complete version papers. We perform the full analysis and remove 6 more papers from the list, leaving 44 papers (Ebert 2008;Bergmayr and Wimmer 2013;Naik and Bahulkar 2004;Chirila and Jebelean 2010;Molina 2010, 2014;Martinez et al. 2014: Owens andAnderson 2013;Soden and Eichler 2007;Antoniol et al. 2003;Vidács 2009;Strein et al. 2006;Lethbridge et al. 2004;Lin and Holt 2004;Knodel and Calderon-Meza 2004;Brühlmann et al. 2008;Tripathi et al. 2009;Lanza 2003;Pinzger et al. 2005;Mens and Lanza 2002;Tichelaar et al. 2000;Antoniol et al. 2005;Gȯmez et al. 2009;Reus et al. 2006;Reus et al. 2004;Cho 2005;Heidenreich et al. 2010;Kollmann and Gogolla 2001;Favre 2008;Pėrez-Castillo et al. 2013;Santibȧnėz et al. 2015;Durelli et al. 2014;Izquierdo and Molina 2010;Martinez et al. 2014;Arcelli et al. 2010;Guėhėneuc and Albin-Amiot 2001;Harmer and Wilkie 2002;Wu 2010;Gȯmez and Ducasse 2012;Alikacem and Sahraoui 2009;Ossher et al. 2009;Keller et al. 2001;Abdi et al. 2006;Krasovec and Howell 1995;Sora 2012a, b). We remove two papers because (Chirila and Jebelean 2010) presents details about the proposed reverse engineering approach employing the logic-based program representation that is common in those three papers. ...
... -Castillo et al. 2013;Santibȧṅez et al. 2015;Durelli et al. 2014;Izquierdo and Molina 2010;Martinez et al. 2014) FAMIX(Bruhlmann et al. 2008;Tripathi et al. 2009; Lanza 2003;Pinzger et al. 2005; Mens and Lanza 2002; Tichelaar et al. 2000; Antoniol et al. 2005; Gȯmez et al. 2009) MARPLE model in ECORE/EMF (Arcelli et al. 2010) Meta-model for design patterns and source code (Guėhėneuc and Albinschema (Keller et al. 2001; Abdi et al. 2006) System Engineering Technology Interface metamodel (Krasovec and Howell 1995) UNIQ-ART Meta-model (Sora 2012a, b) Fig. 17 Classification results using ProMeTA (M1: ASTM, M2: KDM, M3: FAMIX, M4: SPOOL Metamodel, M5: UNIQ-ART Metamodel, X: supports the characteristic indicated, ++: particularly satisfies the characteristic/requirement indicated, +: satisfies the characteristic/requirement indicated, -: sacrifices or does not satisfy the characteristic/requirement indicated, Exp: Explicit, Imp: Implicit, Ext: External, Int: Internal) -M4. SPOOL Metamodel: two papers (Keller et al. 2001; Abdi et al. 2006) 13 -M5. ...
Article
Full-text available
To support program comprehension, maintenance, and evolution, metamodels are frequently used during program reverse engineering activities to describe and analyze constituents of a program and their relations. Reverse engineering tools often define their own metamodels according to the intended purposes and features. Although each metamodel has its own advantages, its limitations may be addressed by other metamodels. Existing works have evaluated and compared metamodels and tools, but none have considered all the possible characteristics and limitations to provide a comprehensive guideline for classifying, comparing, reusing, and extending program metamodels. To aid practitioners and researchers in classifying, comparing, reusing, and extending program metamodels and their corresponding reverse engineering tools according to the intended goals, we establish a conceptual framework with definitions of program metamodels and related concepts. We confirmed that any reverse engineering activity can be clearly described as a pattern based on the framework from the viewpoint of program metamodels. Then the framework is used to provide a comprehensive taxonomy, named Program Metamodel TAxonomy (ProMeTA), which incorporates newly identified characteristics into those stated in previous works, which were identified via a systematic literature review (SLR) on program metamodels, while keeping the orthogonality of the entire taxonomy. Additionally, we validate the taxonomy in terms of its orthogonality and usefulness through the classification of popular metamodels.
... For example, an established body of work in this area flourishes in the form of EU projects such as REMICS 4 and ARTIST 5 . Also, considerable standardisation efforts exist such as the OMG Architecture-Driven Modernisation taskforce [43,27]. Finally, there has been research on discovering the Ground-Truth of architectures, such as Medvidovic et al. [19]. ...
Article
Full-text available
Software architecture is a critical artefact in the software lifecycle. It is a system blueprint for construction, it aids in planning teaming and division of work, and it aids in reasoning about system properties. But architecture documentation is seldom created and, even when it is initially created, it is seldom maintained. For these reasons organisations often feel the need to recover legacy architectures, for example, as part of planning for evolution or cloud migration. But there is no existing general architecture recovery approach nor tool that can be applied to any type of system, under any condition. We will show that one way of achieving such generality is to apply systematic code inspection following a Grounded Theory (GT) approach. Though relatively costly and human-intensive, a GT-based approach has several merits, for example: (a) it is general by design; (b) it can be partially automated; (c) it yields evidence-based results rooted of the system being examined. This article presents one theoretical formulation of a general architecture recovery method–called REM–and reports on the evaluation of REM in the context of a large architecture recovery campaign performed for the European Space Agency. Our results illustrate some intriguing properties and opportunities of GT-based architecture recovery approaches and point out lessons learned and venues for further research.
... Metamodels encapsulate the lexicon (the canonical constructs of a language) and the syntactic rules (the relations between the elements) that are allowed in the construction of a certain type of model. Models necessarily need to conform to their respective metamodels (CANOVAS;MOLINA, 2010;CICCHETTI et al., 2008), and this is analyzed during a validation of a model against its metamodel. After the model is validated, a transformation can be performed. ...
... Metamodels encapsulate the lexicon (the canonical constructs of a language) and the syntactic rules (the relations between the elements) that are allowed in the construction of a certain type of model. Models necessarily need to conform to their respective metamodels (CANOVAS;MOLINA, 2010;CICCHETTI et al., 2008), and this is analyzed during a validation of a model against its metamodel. After the model is validated, a transformation can be performed. ...
Thesis
Full-text available
Context: Software-intensive systems have been increasingly interoperated forming alliances termed as “Systems-of-Systems” (SoS). SoS comprises a collection of systems joined to achieve a set of missions that none of the systems can individually accomplish. Each constituent system keeps its own management, goals, and resources while coordinating within the SoS and adapting to meet SoS goals. Applications of SoS range from traffic control to emergency response and crisis management. As SoS often support critical domains, such systems must be trustworthy by dealing with malfunction or defects and avoiding failures that could cause extensive damage and losses to the users.Problem: Correct SoS operations depend on a precise specification of the SoS structure and a rigorous attestation of its behaviors. However, besides limitations on languages to jointly capture SoS structure and behavior, predictions on the SoS emergent behaviors rely on constituent systems not totally known at design-time. Therefore, SoS have been developed and deployed without evaluating their operation, since current languages do not support such precision in evaluation.Objectives: This PhD project provides solutions founded on a formal architectural description language to support an early evaluation of SoS behaviors regarding its inherent SoS structure and dynamics through simulations.Contribution: The main contributions of this project comprise (i) a model transformation approach for automatically producing simulation models from SoS software architecture descriptions, combining SoS structure and behavior description in a same solution, (ii) a SoS software architecture evaluation method for SoS operation prediction considering the inherent changes that can occur, (iii) environment modeling and automatic generation of stimuli generators to sustain the SoS simulation, delivering data to feed such simulation, and (iv) a method for the automatic synchronization between the runtime descriptive architecture (changed at runtime due to dynamic architecture) and its original prescriptive architecture based on model discovery and recovery mechanisms and a backward model transformation.Evaluation: We conducted case studies to assess our approaches using Flood Monitoring SoS and Space SoS.Results: Our approaches show a high accuracy to (i) produce fault-free and operational simulations for SoS software architectures, (ii) support a reliable evaluation and prediction of SoS operation at design-time, (iii) automatically generate stimuli generators to sustain and feed the simulation execution, and (iv) maintain the synchronization between descriptive and prescriptive versions of the SoS architecture.Conclusions: We concluded that the proposed approaches advance the state of the art in SoS software architecture evaluation by offering solutions to predict the SoS operations effectiveness to maintain a continuous operation despite architectural changes, providing more trust for users that in the future shall rely on SoS services.
... In each case, the system was installed on a server and configured with an Oracle or MySQL database. The experimental results (detailed later in the paper) show that our tool can extract models from a broader range of systems and with lower overheads than the leading existing tool (Gra2MoL) [10]. Furthermore, we carried out a case study which showed that our database modelling tool could be extended to support a Microsoft SharePoint schema with less effort than Gra2MoL. ...
... A key difference between DBLModeller's 'T2M Transformation' step and Gra2MoL [10] is our use of executable annotations to restructure (i.e., refine) the model. As such, during the text-to-model transformation (shown Fig. 2) annotations are introduced into the KDM and SMM models. ...
... We evaluated the extensibility of DBLModeller by comparing it against Gra2MoL [10,45], the leading SQL-to-KDM extraction tool. For this purpose, we carried out a case study where we extended both toolsupported methods to accommodate a Microsoft Share-Point schema. ...
Article
Full-text available
A key challenge in porting enterprise software systems to the cloud is the migration of their database. Choosing a cloud provider and service option (e.g., a database-as-a-service or a manually configured set of virtual machines) typically requires the estimation of the cost and migration duration for each considered option. Many organisations also require this information for budgeting and planning purposes. Existing cloud migration research focuses on the software components, and therefore does not address this need. We introduce a two-stage approach which accurately estimates the migration cost, migration duration and cloud running costs of relational databases. The first stage of our approach obtains workload and structure models of the database to be migrated from database logs and the database schema. The second stage performs a discrete-event simulation using these models to obtain the cost and duration estimates. We implemented software tools that automate both stages of our approach. An extensive evaluation compares the estimates from our approach against results from real-world cloud database migrations.
... Metamodels are special models that guides and restricts how to construct other models. Models necessarily need to conform to their respective metamodels [26,27]. Model transformers are considered model compilers which receive models and their respective metamodels as input and, through the use of model transformations, they transform source models in target models. ...
Article
Software engineering is a young discipline. Despite efforts in recent decades, some elements still require further development, research, and systematization. One of these elements are methods for software engineering. They consist of a set of well-defined activities used in a software development to guide how the work should be performed to achieve the expected results. However, there is a lack of systematic knowledge that effectively guide how work should be done in a variety of areas. Despite the knowledge available in Software Engineering Body of Knowledge (SWEBOK), only the classical methods are comprised there, while emerging topics such as Agent-Oriented Software Engineering (AOSE), Aspect-Oriented Software Development (AOSD), and Model-Based Software Development (MBSE) are only briefly mentioned. We claim that it is also necessary to investigate methods for those emerging software engineering subtracks. In this direction, this paper presents a a speculative and preliminary emerging results on the establishment of methods for MBSE. We report some insights on the conception of methods for MBSE.
... Specifically, metamodelling and model transformations have proven to be useful in the automation of many basic activities in software evolution processes, such as representing source code [8] and data [9] at a higher level of abstraction or obtainhttps://doi.org/10.1016/j.is.2017. 10.004 0306-4379/© 2017 Elsevier Ltd. ...
... ing information such as metrics [10] . In recent years, some modeldriven reengineering (a.k.a. ...
... According to the above discussion and our previous experience in, for example, the works presented in [8,10,39] , we have identified the following main benefits of using MDE in data reengineering, some of which are also applicable to software reengineering. ...
Article
Model-Driven Engineering (MDE) emphasizes the systematic use of models to improve software productivity and some aspects of the software quality such as maintainability or interoperability. Model-driven techniques have proven useful not only as regards developing new software applications but also the reengineering of legacy systems. Models and metamodels provide a high-level formalism with which to represent artefacts commonly manipulated in the different stages of a software evolution process (e.g., a software migration) while model transformation allows the automation of the evolution tasks to be performed. Some approaches and experiences of model-driven software reengineering have recently been presented but they have been focused on the code while data reengineering aspects have been overlooked. The objective of this work is to assess to what extent data reengineering processes could also take advantage of MDE techniques. The article starts by characterising data-reengineering in terms of the tasks involved. It then goes on to state that MDE is particularly amenable as regards addressing the tasks previously identified. We present an MDE-based approach for the reengineering of data whose purpose is to improve the quality of the logical schema in a relational data migration scenario. As a proof of concept, the approach is illustrated for two common problems in data re-engineering: undeclared foreign keys and disabled constraints. This approach is organised following the three stages of a software reengineering process: reverse engineering, restructuring and forward engineering. We show how each stage is implemented by means of model transformation chains. A running example is used to illustrate each stage of the process throughout the article. The approach is validated with a real widely-used database. An assessment of the application of MDE in each stage is then presented, and we conclude by identifying the main benefits and drawbacks of using MDE in data reengineering.
... Tras aplicar esta estrategia, se ha pensado que podría ser más sencillo definir test unitarios que validen modelos de idioms muy simples que cubran todos los casos y usar el visor de grafos para comprobar que esos tests son correctos, en vez de validar grafos grandes. La comprensión de cómo representar en KDM código de un determinado lenguaje no es nada trivial y existe poca información al respecto [2]. Como parte del proyecto se ha elaborado un tutorial que explica cómo representar sentencias PL-SQL en KDM (paquetes Action y Code). ...
Conference Paper
Full-text available
Resumen. El alto coste de mantenimiento de las aplicaciones legacy promueve en las empresas iniciativas de modernización a nuevas platafor-mas y tecnologías. La modernización de software, en especial la ingeniería inversa, es uno de los escenarios de aplicación de las técnicas de la In-geniería del Software Dirigida por Modelos (MDE), con el fin de autom-atizar las tareas manuales y reducir costes. En este trabajo se presenta una solución MDE para la extracción de modelos del código PL/SQL de aplicaciones Oracle Forms. En concreto, se ha implementado un enfoque propuesto en un trabajo previo del grupo Modelum dentro de una colab-oración con la empresa Open Canarias en el marco de un proyecto CDTI destinado a la automatización de aplicaciones Oracle Forms a Java. Los principales retos que se han debido afrontar han sido el uso extensivo del metamodelo KDM, la implementación de transformaciones modelo a modelo complicadas y la validación de estas transformaciones que gen-eran modelos grandes y complejos. A lo largo del trabajo se discutirá sobre estas cuestiones. Palabras clave: Ingeniería del Software Dirigida por Modelos, Inge-niería Inversa, Modernización, KDM, PL/SQL, Oracle Forms 1 Introducción El coste de mantenimiento de las aplicaciones legacy es muy alto y las empresas abordan con frecuencia proyectos de modernización (normalmente migraciones a nuevas plataformas). Dado que los procesos de modernización suelen tener un coste elevado existe un alto interés en automatizar el mayor número posible de tareas involucradas. En lá ultima década, las técnicas de la ingeniería del software dirigida por modelos (MDE) han sido utilizadas para este propósito y algunas experiencias han sido publicadas como se discute en [7]. Cabe destacar la ini-ciativa ADM (Architecture-Driven Modernization) [3] que lanzó OMG en 2003 y cuya finalidad es ofrecer un conjunto de metamodelos estándares para repre-sentar información comúnmente manejada en modernización. KDM (Knowledge
... In the set of 62 papers obatained by the SLR, the following five program metamodels are adopted to concrete reverse engineering techniques or tools in multiple papers: papers [73], [74], [75], [76] • M3. FAMOOS Information Exchange Model (FAMIX): five papers [77], [78], [79], [80], [81] • M4. ...
Conference Paper
Metamodels are frequently used during program reverse engineering activities to describe and analyze constituents and relations between the constituents of a program for supporting program comprehension, maintenance, and extension. Reverse engineering tools often define their own metamodels according to their own purposes and intended features. These metamodels have all advantages, and limitations that might have been solved by others. Although there are some existing works on the evaluation and comparison of these metamodels and tools, none of them consider all the possible characteristics and limitations to provide a comprehensive guidance for classification, comparison, reuse and extension of program metamodels. To guide practitioners and researchers to classify, compare, reuse, and extend program metamodels and their corresponding reverse engineering tools according to their goals, we first establish a conceptual framework with definitions of program metamodels and related concepts. Based on this framework, we provide a comprehensive taxonomy named Program Metamodel TAxonomy (ProMeTA), which incorporates characteristics that are newly identified into those that have already been stated in previous works identified by a systematic literature survey on program metamodels, while keeping the orthogonality of the entire taxon-omy. We validate the taxonomy in terms of its orthogonality and usefulness through the classification of popular metamodels.