Non-Mobile Software Modernization in Accordance With the Principles of Model-Driven Engineering

Non-Mobile Software Modernization in Accordance With the Principles of Model-Driven Engineering

Liliana Maria Favre
DOI: 10.4018/978-1-7998-6463-9.ch002
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Smartphones are at the core of new paradigms such as cloud computing, pervasive computing, and internet of things. Frequently, the development of mobile software requires adaptation of valuable and tested non-mobile software. In this context, most challenges are related to the diversity of platforms on the smartphones market and to the need of systematic and reusable processes with a high degree of automation that reduce time, cost, and risks. To face these challenges, this chapter presents an analysis of non-mobile software modernization through an integration of MDE (model-driven engineering) with cross-platform development. Two approaches are analyzed. One of them is a lightweight process that combines MDA (model-driven architecture) with traditional static and dynamic analysis techniques of reverse engineering. The other approach is based on ADM (architecture-driven modernization) standards. A scenario for the migration of C/C++ or Java software through the multiplatform Haxe language is described.
Chapter Preview
Top

Introduction

The adoption of new software technologies in organizations such as Cloud Computing, Pervasive Computing and the Internet of Things, offers competitive advantages and performs like a market differentiator.

Pervasive Computing, also called Ubiquitous Computing is the idea that almost any device can be embedded with chips to connect the device to a network of other devices. The goal of Pervasive Computing, which combines current network technologies with wireless computing, voice recognition and Internet capability, is to create an environment where the connectivity of devices is unobtrusive and always available. Cloud Computing is an Internet-based computing for enabling ubiquitous, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly supplied with minimal management effort. Cloud Computing has long been recognized as a paradigm for Big Data storage and analytics providing computing and data resources in a dynamic and pay-per-use model. Finally, there is no single universal definition for the IoT which could be defined as the interconnection via the Internet of computing devices embedded in everyday objects, enabling them to send and receive data. The IoT is becoming so pervasive and several studies predict that, in 2021, the number of mobile devices integrated to IoT is expected to exceed 1.5 billion.

Pervasive Computing, Cloud Computing and the IoT face similar problems related to similar use cases, including smart cities, environmental monitoring, agriculture, home automation, and health. These technologies are possible thanks to the advances in mobile computing and electronic miniaturization that allow cutting-edge computing and communication technology to be added into very small objects. On the one hand, Mobile Computing promoted the globalization of networks (3G, 4G and 5G) facilitating the development of distributed processing to create a network of billions of devices.

The IoT is arriving at our every life. Smart objects such as smartphones through Wifi and 5G will handle all kind of objects including sensors that collect date, interact with the environment and communicate over the IoT, the network of these connected objects. For instance, IoT is being optimized to fit smartphones that can be viewed as a service center for different platforms in science, medicine, education, and the media. Just as smartphones have already displaced the camera, the GPS, the music player and the wallet, they will be on-ramp for a new IoT revolution. In this scenario, people are at the center of these paradigms through their smartphones that allow sensing their activities, location and consulting them to define interactions with the surrounding environment. Miranda et al. (2015) state that in a more desirable IoT scenario, technology would take the context of the people into account moving from the IoT to the Internet of People (IoP).

Frequently, the development of software component and applications aligned to these new paradigms requires adapting existing non-mobile software to mobile platforms. For instance, there exist valuable software components and libraries implemented in C/C++ or Java that need to be adapted for mobile applications. Most challenges in this kind of software migration are related, on the one hand, to the proliferation of mobile platforms that makes mobile development very difficult and expensive and, on the other hand, to the need to define systematic, reusable processes with a high degree of automation that reduce risks, time and costs.

With respect to the first challenge, the ideal situation is to use multiplatform development. New languages are emerging to integrate the native behaviors of the different platforms targeted in development projects. In this direction, the Haxe language is an open-source high-level cross-platform programming language and compiler that can produce applications and source code for many different platforms from a single code base (Haxe, 2020; Dasnois, 2011).

With respect to the systematic modernization process, novel technical frameworks for information integration, tool interoperability and reuse have emerged. Specifically, Model- Driven Engineering (MDE) is a software engineering discipline which emphasizes the use of models and model transformations to raise the abstraction level and the degree of automation in software development. Productivity and some aspects of software quality such as maintainability or interoperability are goals of MDE.

Key Terms in this Chapter

ATL (Atlas Transformation Language): A model transformation language and toolkit developed on top of the Eclipse platform that provides ways to produce target models from source models.

Haxe: An open-source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities.

Model-Driven Architecture (MDA): An initiative of the OMG for the development of software systems based on the separation of business and application logic from underlying platform technologies.

Model Transformation: A mechanism for automatically creating target models based on information contained in existing source models.

ADM (Architecture Driven Modernization): The process of understanding and evolving existing software assets of an existing system in the context of MDA.

Metamodeling: The process of generating a “model of models”; the essence of model-driven development approaches.

KDM (Knowledge Discovery Metamodel): The core metamodel of ADM, a language-independent metamodel for representing assets of software legacy.

Model-Driven Engineering: Software engineering discipline that emphasizes the use of models and model transformations to raise the abstraction level and the degree of automation in software development.

Complete Chapter List

Search this Book:
Reset