Automated Software language and Software engineering
Product and Production Development
Real-Time Systems Design
Model-Based Engineering of Embedded Systems
Industrial Software Engineering
Formal Modelling and Analysis of Embedded Systems
Heterogeneous systems - hardware software co-design
Energy efficiency and reduction of emissions
Artificial Intelligence och Intelligent Systems
Simulation and optimisation for future industrial applications (SOFIA)
Sustainable lifestyle and health from a public health perspective
Software Testing Laboratory
ARROWS - Design Techniques for Adaptive Embedded Systems
The ARROWS project is dedicated to development of modeling, analysis and execution support for adaptive embedded system.
Products controlled by embedded software surround us, including toys, home appliances, cell phones, cars and airplanes. For a majority of these products, software is essential and an enabler for innovative functionality, as well as a basis for resource and cost efficiency. The flexibility provided by software is a key to many of today’s advanced products, but is also a source of complexity and risk. Research at Mälardalen Real-Time Research Centre in Västerås Sweden are aiming at reducing risk and complexity of embedded software by developing solutions that provide adaptability to changing requirements in development, as well as changing conditions during execution. Combined with analysis and verification to assure that the software and systems behave as intended, the research supports both increased flexibility and predictability. Our concrete research achievements include the following:
Formal verification of adaptive systems
To reason about adaptivity, one needs a modeling and analysis framework suitable for adaptive systems. We have developed Adaptive Task Automata, a framework for modeling and formal analysis of adaptive embedded systems, based on the model of task automata. We have extended this formalism for convenient modeling of concurrently executing programs with primitives facilitating modeling of adaptivity. The extensions allow for modeling of, for instance, adaptive embedded systems in which decisions to admit further programs are based on available CPU resources, or systems in which programs with high quality of service can occasionally be replaced with alternative lower quality programs, when the CPU load is too high. Our framework provides the possibility to verify the adaptive real-time system’s behavior at early design stages, and paves the way towards finding optimal trade-offs between timely execution of tasks, quality of service and resource utilization.
Multimode software component handling
Component-Based Software Engineering allows a system to be built by reusable components that can be independently developed. Another approach to reduce software complexity is to partition the system behavior into different operational modes. Consider for instance the control software of an airplane, which could run in the modes taxi (the initial mode), taking off, flight and landing. Such a multi-mode system can switch mode under certain circumstances. Combining CBSE and multi-mode systems, we get a Component-Based Multi-Mode System, i.e. a multi-mode system developed in a component-based manner. A crucial issue for such a system is its mode switch handling, which should support switching between modes while allowing the system to be built by a composition of independently developed components that do not have any global system knowledge. By developing algorithms implementing such mode switch we have showed that this is indeed possible. We have additionally developed a multi-mode component model and analysis of mode-switch timing.
Adaptive hierarchical scheduling
A traditional approach to manage complexity is divide-and-conquer, that is, to divide the overall problem (system) into a set of sub-problems (subsystems) that are less complex. In providing predictable execution of software we follow such an approach by constructing the software system from a number of hierarchically composed programs. We provide predictability by protecting each program from being disturbed by other programs. The main challenge addressed is flexible and adaptive allocation of computational resources to the programs. In contrast with traditional static resources allocation, we use feedback control to dynamically adapt the amount of resources provided to each program. This will allow for a better usage of hardware resources which in turn results in cheaper and better products.
Traceability of adaptive embedded system specifications
Bi-directional traceability across different levels of abstraction, such as system, platform, and software specification is difficult to achieve, but is an important tool to facilitate quality and understanding of adaptive embedded systems under development, as well as enhancing the ability to manage system changes. To this end, we have developed a holistic framework supporting such traceability and related analysis, including (1) a generic modeling framework, extending our previous work on Timed Abstract State Machines (TASM), for both architecture-level and component-level specifications, (2) an testing based approach for system verification integrated in this framework, and (3) a novel information retrieval technique for post-requirements traceability recovery. Evaluations in the automotive, automation, and mobile systems domains show the applicability of our framework.
The above are all results of the Swedish Research Council framework project ARROWS, by which we have advanced the state-of-the-art in development of adaptive software intensive systems. In related efforts we are currently cooperating with industrial partners to bring these and other research results to the state-of-practice.