|
Areas of research
The members of the MCI Software Engineering Group have been involved in research activities aimed at developing advanced software design methodology, as well as operational and application software for embedded applications. Their previous experience is specifically related to areas such as software architecture, design methods for open and predictable real-time systems, real-time operating systems, distributed computer control systems and real-time networks.
Based on that experience, recent efforts have been focused on component-based design of software for distributed embedded applications. The importance of the above area is highlighted by the widespread use of embedded systems and the advent of the so-called post-PC era. The latter can be characterized as the era of pervasive mechatronics, whereby industry, infrastructure and everyday life will be dependent on the operation of billions of embedded control systems and components such as controllers, intelligent sensors and actuators, etc.
The widespread use of embedded systems (including time-critical and safety-critical systems) poses a serious challenge to software developers, in view of severe and conflicting requirements that are related to issues as diverse as economy of production, time to market, safety and dependability. These cannot be met by currently used software technology, which is largely based on informal design methods and manual coding techniques. It fact, the state of the art in that area can be characterized as “manufacturing production” of software, much in the same way as design and production methods for mechanical and electronic systems in their early stages of development.
Therefore, a new approach towards software development is needed, i.e. industrial production of software for embedded applications, following practices already established in mature areas of engineering, such as mechanical engineering and electronics. Several prerequisites are required in order to achieve such a goal: introduction of formal (mathematical) design and analysis methods; standardization of components and production methods; production and design automation. The ultimate solution of that problem is envisioned as computer-aided configuration of embedded software using formal frameworks and pre-fabricated (executable) components.
There are a number of key issues that have to be addressed in order to provide a feasible solution:
- Formal specification of comprehensive, yet intuitive and inherently open frameworks and applications
- Analysis of component-based applications with respect to functional and timing behaviour
- Development of application-specific component libraries
- Development of software configuration and analysis tools
- Development of operational software: safe real-time kernels, communication protocols, etc.
The Software Engineering Group has been actively investigating these problems, based on previous experience with industrial software development, as well as cooperation with industrial companies and the Center for Software Innovation, Soenderborg, Denmark.
Expertise of the Software Engineering Group
Our expertise is predominantly related to the following areas: 1) Component-based design of software for distributed embedded systems: software frameworks and design patterns for reusable and reconfigurable components; 2) Operational environments for dependable embedded systems.
Our main results are briefly summarized below:
-
Research in the area of component-based design has resulted in the development of the COMDES framework and the associated software design method. Under that framework, a distributed embedded system is specified in terms of function units, which can be viewed as the software agents of autonomous subsystems such as sensor, control unit, actuator, etc. Function units are modeled as software integrated circuits with time-triggered inputs/outputs that can be softwired with one another in order to configure specific applications.
Function units encapsulate one or more dynamically scheduled tasks (activities), as well signal drivers that are used to communicate with the environment and other function units by exchanging labeled messages (signals) at precisely specified time instants.
Activities are configured from function blocks, i.e. executable components implementing standard signal processing and control functions. Activity behaviour is specified in terms of hybrid state machines – a hierarchical executable model that takes into account the reactive as well as transformational aspects of system behaviour, which has been implemented as a reconfigurable function block of class state machine (modal function block).
Design patterns and working prototypes of COMDES components have been developed and experimentally validated in a number of distributed computer control experiments.
-
Component-based design methodology has also been applied to operational software design, as demonstrated by the HARTEX family of reconfigurable real-time kernels. Another important feature of that kernel architecture is the use of Boolean vectors (bitstrings) instead of conventional linked-list queues, resulting in very small overhead and jitter-free operation, i.e. constant execution time of kernel functions independent of the number of tasks involved.
This approach has been further used to develop advanced task and time management techniques providing for jitter-free execution of application tasks in the context of Distributed Timed Multitasking - a novel computational model that combines high flexibility, inherent to dynamic scheduling, with predictable operation usually associated with static scheduling. That model is supported by the latest timed-multitasking version of the HARTEX kernel, which has been designed as an operational environment for function units with time-triggered inputs/outputs (see above).
The kernel supports transparent signal-based communication between real-time tasks in accordance with the COMDES model of distributed computation.
-
Another area of research that we are attempting to address is the analysis of system behaviour in the context of component-based systems and the COMDES framework, by exploring complementary techniques such as formal verification and schedulability analysis.
More information can be found in a number of recently published papers (see the Publications page of our web site).
The Software Engineering Group is open for cooperation and exchange of information with individuals and research groups with similar or complementary expertise. In particular, we are looking for academic and industrial partners having expertise in the following areas:
- Formal verification of component-based embedded software
- Schedulability analysis of real-time systems
- Specification and development of function block libraries for various application domains
- Development of system configuration and analysis tools
- Industrial case studies and applications: systems specification, design and integration
|