scholarly journals Extracting Interactive Actor-Based Dataflow Models from Legacy C Code

2021 ◽  
pp. 361-377
Author(s):  
Niklas Rentz ◽  
Steven Smyth ◽  
Lewe Andersen ◽  
Reinhard von Hanxleden

AbstractGraphical actor-based models provide an abstract overview of the flow of data in a system. They are well-established for the model-driven engineering (MDE) of complex software systems and are supported by numerous commercial and academic tools, such as Simulink, LabVIEW or Ptolemy. In MDE, engineers concentrate on constructing and simulating such models, before application code (or at least a large fraction thereof) is synthesized automatically. However, a significant fraction of today’s legacy system has been coded directly, often using the C language. High-level models that give a quick, accurate overview of how components interact are often out of date or do not exist. This makes it challenging to maintain or extend legacy software, in particular for new team members.To address this problem, we here propose to reverse the classic synthesis path of MDE and to synthesize actor-based dataflow models automatically from source code. Here functions in the code get synthesized into nodes that represent actors manipulating data. Second, we propose to harness the modeling-pragmatic approach, which considers visual models not as static artefacts, but allows interactive, flexible views that also link back to textual descriptions. Thus we propose to synthesize actor models that can vary in level of detail and that allow navigation in the source code. To validate and evaluate our proposals, we implemented these concepts for C analysis in the open source, Eclipse-based KIELER project and conducted a small survey.

Author(s):  
Mohsin Shaikh ◽  
Chan-Gun Lee

Although object-oriented programming (OOP) methodologies immensely promote reusable and well-factored decomposition of complex source code, legacy software systems often show symptoms of deteriorating design over time due to lack of maintenance. Software systems may have different business and application contexts, but most of these systems require similar maintenance mechanism of understanding, analysis and transformation. As a consequence, intensive re-engineering efforts based on the model driven approach can be effective ensuring that best practices are followed during maintenance and eventually reducing the development cost. In this paper, we suggest detailed framework of re-engineering which includes: (i) rigorous and automated source code analysis technique for identification, characterization and prioritization of most prominent and threatening design flaws in legacy software, (ii) migration of existing the code to aspect-oriented programming (AOP) code by exploiting current state of art for aspect mining mechanism and incorporating behavioral knowledge of cross-cutting concerns. To exemplify how the approach works a case study has been conducted to experimentally validate the idea and analyze the effect of process on specific software quality spectrum. An explicit analysis of prevalent work on the subject and their critical reviews are also presented to further enhance the recognition of proposed re-engineering framework.


IEEE Access ◽  
2019 ◽  
Vol 7 ◽  
pp. 158931-158950 ◽  
Author(s):  
Umair Sabir ◽  
Farooque Azam ◽  
Sami Ul Haq ◽  
Muhammad Waseem Anwar ◽  
Wasi Haider Butt ◽  
...  

Author(s):  
Luis Costa ◽  
Neil Loughran ◽  
Roy Grønmo

Model-driven software engineering (MDE) has the basic assumption that the development of software systems from high-level abstractions along with the generation of low-level implementation code can improve the quality of the systems and at the same time reduce costs and improve time to market. This chapter provides an overview of MDE, state of the art approaches, standards, resources, and tools that support different aspects of model-driven software engineering: language development, modeling services, and real-time applications. The chapter concludes with a reflection over the main challenges faced by projects using the current MDE technologies, pointing out some promising directions for future developments.


Author(s):  
W. ERIC WONG ◽  
JENNY LI

Object-oriented languages support many modern programming concepts such as information hiding, inheritance, polymorphism, and dynamic binding. As a result, software systems implemented in OO languages are in general more reusable and reliable than others. Many legacy software systems, created before OO programming became popular, need to be redesigned and updated to OO programs. The process of abstracting OO designs from the procedural source code has often been done with limited assistance from program structural diagrams. Most reengineering focuses on the functionality of the original program, and the OO redesign often results in a completely new design based on the designers' understanding of the original program. Such an approach is not sufficient because it may take a significant amount of time and effort for designers to comprehend the original program. This paper presents a computer-aided semi-automatic method that abstracts OO designs from the original procedural source code. More specifically, it is a method for OO redesign based on program structural diagrams, visualization, and execution slices. We conducted a case study by applying this method to an inventory management software system. Results indicate that our method can effectively and efficiently abstract an appropriate OO design out of the original C code. In addition, some of the code from the original system can be automatically identified and reused in the new OO system.


Author(s):  
María-Cruz Valiente ◽  
Cristina Vicente-Chicote ◽  
Daniel Rodríguez

Currently, few projects applying a Model-Driven Engineering (MDE) approach start from high-level requirements models defined exclusively in terms of domain knowledge and business logic. Ontology Engineering (OE) aims to formalize and make explicit the knowledge related to a particular domain. In this vein, this paper presents a modeling approach, formalized in ontological terms, for defining high-level requirements models of software systems that provide support for the implementation of Information Technology Service Management Systems (ITSMSs). This approach allows for: (1) formalizing the knowledge associated to the ITSM processes contained in an ITSMS; (2) modeling the semantics of the activities associated to these processes in terms of workflows; (3) automatically generating the high-level requirements models of the workflow-based software systems needed to support (part of) the ITSM processes; and (4) from the latter, obtaining lower-level models (and eventually code) by means of automated model transformations. A real case study describing the use of this proposal to model an Incident Management System is also included to demonstrate the feasibility and the benefits of the proposed approach.


Author(s):  
Luis Costa ◽  
Neil Loughran ◽  
Roy Grønmo

Model-driven software engineering (MDE) has the basic assumption that the development of software systems from high-level abstractions along with the generation of low-level implementation code can improve the quality of the systems and at the same time reduce costs and improve time to market. This chapter provides an overview of MDE, state of the art approaches, standards, resources, and tools that support different aspects of model-driven software engineering: language development, modeling services, and real-time applications. The chapter concludes with a reflection over the main challenges faced by projects using the current MDE technologies, pointing out some promising directions for future developments.


Author(s):  
Sara Gotti ◽  
Samir Mbarki

Graphical user interfaces (GUIs) present a powerful part of software systems that allows a simplified assimilation and manipulation by users throw visual objects such as text, image and button. however, with the increasing complexity of GUIs and the diversity of their interaction mode required by users to access information anywhere and anytime, the need for designing efficient and more adaptive user interfaces has become a necessity. Therefore, UIs researchers have attempted to address these issues by designing user interfaces at a high level of abstraction to separate GUI’s specification from its implementation. Besides, the OMG (Object Management Group) adopted the Interaction Flow Modeling Language (IFML) as a standard in March 2013 for this purpose. In this paper, we present a new model driven development approach to efficiently execute the abstract representation of software’s front-end with focus on navigation between the views. We introduce a IFML virtual machine IFVM which executes user interfaces by passing from IFML models to be translated into an intermediate bytecode representation proposed as the instruction set of IFVM virtual machine.


Author(s):  
María-Cruz Valiente ◽  
Cristina Vicente-Chicote ◽  
Daniel Rodríguez

Currently, few projects applying a Model-Driven Engineering (MDE) approach start from high-level requirements models defined exclusively in terms of domain knowledge and business logic. Ontology Engineering (OE) aims to formalize and make explicit the knowledge related to a particular domain. In this vein, this paper presents a modeling approach, formalized in ontological terms, for defining high-level requirements models of software systems that provide support for the implementation of Information Technology Service Management Systems (ITSMSs). This approach allows for: (1) formalizing the knowledge associated to the ITSM processes contained in an ITSMS; (2) modeling the semantics of the activities associated to these processes in terms of workflows; (3) automatically generating the high-level requirements models of the workflow-based software systems needed to support (part of) the ITSM processes; and (4) from the latter, obtaining lower-level models (and eventually code) by means of automated model transformations. A real case study describing the use of this proposal to model an Incident Management System is also included to demonstrate the feasibility and the benefits of the proposed approach.


Author(s):  
Michael Hafner ◽  
Barbara Weber ◽  
Ruth Breu ◽  
Andrea Nowak

Model Driven Architecture is an approach to increase the quality of complex software systems by creating high-level system models and automatically generating system architectures and components out of these models. We show how this paradigm can be applied to what we call Model Driven Security for inter-organizational workflows in e-government. Our focus is on the realization of security-critical inter-organizational workflows in the context of Web services, Web service orchestration and Web service choreography. Security requirements are specified at an abstract level using UML diagrams. Out of this specification security relevant artifacts are generated for a target reference architecture based on upcoming Web service security standards. Additionally, we show how participants of a choreography use model dependencies to map the choreography specifications to interfaces for their local workflows.


Sign in / Sign up

Export Citation Format

Share Document