Fighting CPS Complexity by Component-Based Software Development of Multi-Mode Systems

Growing software complexity is an increasing challenge for the software development of modern cyber-physical systems. A classical strategy for taming this complexity is to partition system behaviors into different operational modes specified at design time. Such a multi-mode system can change behavi...

Full description

Bibliographic Details
Main Authors: Hang Yin, Hans Hansson
Format: Article
Language:English
Published: MDPI AG 2018-10-01
Series:Designs
Subjects:
Online Access:http://www.mdpi.com/2411-9660/2/4/39
_version_ 1818417412952817664
author Hang Yin
Hans Hansson
author_facet Hang Yin
Hans Hansson
author_sort Hang Yin
collection DOAJ
description Growing software complexity is an increasing challenge for the software development of modern cyber-physical systems. A classical strategy for taming this complexity is to partition system behaviors into different operational modes specified at design time. Such a multi-mode system can change behavior by switching between modes at run-time. A complementary approach for reducing software complexity is provided by component-based software engineering (CBSE), which reduces complexity by building systems from composable, reusable and independently developed software components. CBSE and the multi-mode approach are fundamentally conflicting in that component-based development conceptually is a bottom-up approach, whereas partitioning systems into operational modes is a top-down approach with its starting point from a system-wide perspective. In this article, we show that it is possible to combine and integrate these two fundamentally conflicting approaches. The key to simultaneously benefiting from the advantages of both approaches lies in the introduction of a hierarchical mode concept that provides a conceptual linkage between the bottom-up component-based approach and system level modes. As a result, systems including modes can be developed from reusable mode-aware components. The conceptual drawback of the approach—the need for extensive message exchange between components to coordinate mode-switches—is eliminated by an algorithm that collapses the component hierarchy and thereby eliminates the need for inter-component coordination. As this algorithm is used from the design to implementation level (“compilation”), the CBSE design flexibility can be combined with efficiently implemented mode handling, thereby providing the complexity reduction of both approaches, without inducing any additional design or run-time costs. At the more specific level, this article presents (1) a mode mapping mechanism that formally specifies the mode relation between composable multi-mode components and (2) a mode transformation technique that transforms component modes to system-wide modes to achieve efficient implementation.
first_indexed 2024-12-14T12:06:23Z
format Article
id doaj.art-0b64e49b917740f6b6b134b4f69e59c7
institution Directory Open Access Journal
issn 2411-9660
language English
last_indexed 2024-12-14T12:06:23Z
publishDate 2018-10-01
publisher MDPI AG
record_format Article
series Designs
spelling doaj.art-0b64e49b917740f6b6b134b4f69e59c72022-12-21T23:01:52ZengMDPI AGDesigns2411-96602018-10-01243910.3390/designs2040039designs2040039Fighting CPS Complexity by Component-Based Software Development of Multi-Mode SystemsHang Yin0Hans Hansson1Zenuity, Lindholmspiren 2, 417 56 Gothenburg, SwedenSchool of Innovation, Design and Engineering, Mälardalen University, Högskoleplan 1, 722 20 Västerås, SwedenGrowing software complexity is an increasing challenge for the software development of modern cyber-physical systems. A classical strategy for taming this complexity is to partition system behaviors into different operational modes specified at design time. Such a multi-mode system can change behavior by switching between modes at run-time. A complementary approach for reducing software complexity is provided by component-based software engineering (CBSE), which reduces complexity by building systems from composable, reusable and independently developed software components. CBSE and the multi-mode approach are fundamentally conflicting in that component-based development conceptually is a bottom-up approach, whereas partitioning systems into operational modes is a top-down approach with its starting point from a system-wide perspective. In this article, we show that it is possible to combine and integrate these two fundamentally conflicting approaches. The key to simultaneously benefiting from the advantages of both approaches lies in the introduction of a hierarchical mode concept that provides a conceptual linkage between the bottom-up component-based approach and system level modes. As a result, systems including modes can be developed from reusable mode-aware components. The conceptual drawback of the approach—the need for extensive message exchange between components to coordinate mode-switches—is eliminated by an algorithm that collapses the component hierarchy and thereby eliminates the need for inter-component coordination. As this algorithm is used from the design to implementation level (“compilation”), the CBSE design flexibility can be combined with efficiently implemented mode handling, thereby providing the complexity reduction of both approaches, without inducing any additional design or run-time costs. At the more specific level, this article presents (1) a mode mapping mechanism that formally specifies the mode relation between composable multi-mode components and (2) a mode transformation technique that transforms component modes to system-wide modes to achieve efficient implementation.http://www.mdpi.com/2411-9660/2/4/39component-based software engineeringmodemode-switch
spellingShingle Hang Yin
Hans Hansson
Fighting CPS Complexity by Component-Based Software Development of Multi-Mode Systems
Designs
component-based software engineering
mode
mode-switch
title Fighting CPS Complexity by Component-Based Software Development of Multi-Mode Systems
title_full Fighting CPS Complexity by Component-Based Software Development of Multi-Mode Systems
title_fullStr Fighting CPS Complexity by Component-Based Software Development of Multi-Mode Systems
title_full_unstemmed Fighting CPS Complexity by Component-Based Software Development of Multi-Mode Systems
title_short Fighting CPS Complexity by Component-Based Software Development of Multi-Mode Systems
title_sort fighting cps complexity by component based software development of multi mode systems
topic component-based software engineering
mode
mode-switch
url http://www.mdpi.com/2411-9660/2/4/39
work_keys_str_mv AT hangyin fightingcpscomplexitybycomponentbasedsoftwaredevelopmentofmultimodesystems
AT hanshansson fightingcpscomplexitybycomponentbasedsoftwaredevelopmentofmultimodesystems