Component-Based Software Development
Component-Based Software Development (CBSD) is expected to increase software productivity, by reducing the amount of effort needed to develop, update, and maintain systems. It gives structure to system design and system development, and allows reuse of development effort by allowing components to be re-used across products and in the longer term by paving the way for a market for software components. CBSD has become widespread in general program development. Adoption for embedded real-time systems is significantly slower.
Major reasons are that:
- real-time systems must satisfy requirements of timeliness, quality-of-service, predictability, that they are often safety-critical, and that they must obey stringent constraints on resource usage (memory, processing power, communication). Existing wide-spread component technologies do not in general address these desiderata.
- There is a lack of widely adopted standards for component technology. A complicating factor is that different industrial sectors have different priorities concerning the main characteristics offered by such a standard.
Hard Real-Time
This is one of the two main approaches to embedded systems design. It is applied to systems where temporal constraints are critical. This includes applications, which are often safety-critical, such as applications in space, automobile, rail transport, air traffic control, production control, etc. This is the oldest and most mature approach, and has led to significant research results in Europe, such as synchronous languages, fixed-priority scheduling, the time-triggered architectures, and these have been significantly transferred and developed in industry (for example, SCADE and Esterel to Airbus, and TTA to automotive).