Logotype Mälardalenn University
This web site has been moved.
Please visit our new and improved web site at: http://www.es.mdh.se/
Startpage www.mdh.se

The Componentization of Legacy Research Direction

Researchers involved

Thomas Nolte (Professor), Moris Behnam (PostDoc), Insik Shin (PostDoc), Farhang Nemati (PhD Student).

Context and research overview

This research direction provides methods and techniques that assist in integrating legacy code in the component-based development, and in providing faithful execution of legacy code in the new component-based setting. The research direction has two main objectives. Firstly, methods for generating legacy components are to be provided. By using wrapping techniques, a legacy component can be populated with proper parameters and contents through the usage of model extraction, model analysis and model validation techniques provided by the Legacy Property Prediction research direction. Secondly, run-time mechanisms have to be provided ensuring proper and predictable execution of these legacy components. Over the past 5 years we have given most focus to the latter with a special attention on what is called "open real-time systems" (an overview of such research is given in [72]). A complex embedded software system (the system) is constructed of a set of parts (denoted subsystems or "components"). These subsystems are the containers enabling legacy software to execute along with PROGRESS software. In open real-time systems these subsystems may be developed in parallel without knowledge of each other. They may contain 100% legacy software, 100% PROGRESS software, or a mix. Subsystems can be added or removed without causing any unpredictable interference with other subsystems, and hierarchical scheduling techniques will guarantee correct function of these subsystems when the system is executing. A complicating fact is that the subsystems may share resources requiring mutual exclusive access. Hence, appropriate run-time mechanisms and protocols are necessary.

Major results

Highlight 25 - Hierarchical scheduling and synchronization [Show]

Not many software systems are constructed of software parts that are fully independent. To guarantee predictable execution of software systems that contain dependencies among software parts, we need synchronization protocols. We have developed a synchronization protocol allowing for mutual exclusive resource access in two-level hierarchically scheduled real-time systems for single processors [73]. We have developed a corresponding schedulability analysis allowing for hard real-time applications to use the protocol [74, 75]. Moreover, we have analysed three approaches to handle mutual exclusive resource access between subsystems, and we have developed corresponding algorithms and associated analysis that shows under what circumstances one or the other is preferred [76, 77, 78, 79]. Finally, we have developed algorithms for (1) system-independent synthesis of timing-interfaces for subsystems and (2) system-level selection of interfaces to minimize CPU load. We show that resource-locking times can be traded for CPU allocation, and we have presented a methodology where such a tradeoff can be effectively explored [80, 81].

Highlight 26 - Hierarchical scheduling and implementation [Show]

It is important to also realize theoretical techniques and protocols by implementing them. We have implemented hierarchical scheduling frameworks in several operating systems, e.g., VxWorks [82] and Linux [83], together with several synchronization protocols for mutual exclusion of shared logical resources [84]. Moreover, we have applied and integrated hierarchical scheduling in the context of AUTOSAR for automotive applications [85, 86], grouping runnables inherent in specific functions into dedicated subsystems; simplifying concurrent development of automotive functions. Finally, we have developed an approach for early prototyping [87, 88], and formal verification and synthesis [89] of hierarchically scheduled systems, allowing for correct-by-construction development of embedded software systems running on VxWorks.

Highlight 27 - Compositional communications[Show]

Many legacy systems are distributed. Hence we need techniques to encapsulate network, fieldbuses and other communication protocols. We propose to enable network components through the usage of resource reservation techniques. For this we have developed hierarchical scheduling techniques for Switched Ethernet networks [90], implemented and demonstrated [91, 92, 93] these techniques in a fully operational Ethernet Switch [94, 93], and we have developed corresponding timing analysis [95, 96].

Highlight 28 - Migration to multiprocessors[Show]

Most legacy systems are constructed for single-core architectures. However, there is a trend among chip-providers towards having only multicore architectures in their portfolio. Hence, industry is facing a situation where existing software systems have to be migrated to new multicore architectures. For this we envision the usage of componentization techniques to introduce a predictable encapsulation of legacy software that then can be partitioned on a multicore architecture. We have developed techniques for migration of industrial software systems to new multicore platforms [97]. These techniques allow an engineer to give weight to certain cost-related features of the legacy system, minimizing overall system cost.

Highlight 29 - Multicore and synchronization[Show]

Not many software systems are constructed of software parts that are fully independent. To guarantee predictable execution of software systems that contain dependencies among software parts, we need synchronization protocols. This is particularly important on multicore architectures where the level of parallelism is high. We have developed solutions for synchronization on multiprocessors, for regular real-time systems [98, 99] and for (open) real-time systems consisting of (possibly) independently developed subsystems [100, 101, 102].

  • Mälardalen University |
  • Box 883 |
  • 721 23 Västerås/Eskilstuna |
  • 021-101300, 016-153600 |
  • webmaster |
  • Latest update: 2013.02.25