A Framework for Modernizing Non-Mobile Software: A Model-Driven Engineering Approach

A Framework for Modernizing Non-Mobile Software: A Model-Driven Engineering Approach

Liliana Favre
DOI: 10.4018/978-1-7998-3016-0.ch015
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

New paradigms such as pervasive computing, cloud computing, and the internet of things (IoT) are transforming the software industry and the business world. Organizations need to redesign their models and processes to be sustainable. Smartphones are at the core of these paradigms, letting us locate and easily interact with the world around us. Frequently, the development of mobile software requires of the adaption of valuable and tested non-mobile software. Most challenges in this kind of software modernization 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. This chapter proposes a modernization framework based on model-driven engineering (MDE). It allows integrating legacy code with the native behaviors of the different mobile platform through cross-platform languages. Realizations of the framework for the migration of C/C++ or Java code to mobile platforms through the Haxe multiplatform language are described.
Chapter Preview
Top

Introduction

Today, the use of technology is central to the business world. Organizations need to redesign their processes and models so as not to be left out of the market in the near future. The adoption of new digital technologies offers competitive advantage and performs like a market differentiator. In particular, new paradigms such as Pervasive Computing, Cloud Computing and the Internet of Things are impacting business world.

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 2020, there will be more than 30 billion of IP identifying connected devices and sensors.

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 globalizations of networks (3G, 4G and 5G) facilitating the development of distributed processing to create a network of billions of devices.

Smartphones are being transformed into a service center for different platforms in science, medicine, education, and the media. With the Smartphone through Wi-Fi and the 5G, we will handle all kinds of objects connected to the network. 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. The IoT is arriving at our everyday life. In this scenario, humans and things act synergistically as a whole. 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). In this situation, smartphones will continue to play a crucial role due to they are the main interface connecting people to the Internet.

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 developments. 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 define 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, 2017; 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.

Complete Chapter List

Search this Book:
Reset