Specification of Software Components

Component-based software engineering denotes the practice of building software from pre-existing smaller products, in particular when this is done using standardized software component models. The main expected benefits of this practice over traditional software engineering approaches are increased productivity and timeliness of development projects. While the use of software component models has become common for desktop and server-side software, this is not the case in the domain of embedded real-time systems, presumably due to the special requirements such systems have to meet with respect to predictable timing and limited use of resources. Much research exists that aims to define new component models for this domain, typically focusing on source code components, static system configuration, and relatively narrow application domains.This dissertation explores the alternative approach of using components based on binary code, allowing dynamic configuration, and targeting a broader domain. A study of a general purpose component model shows that the model is compatible with real-time requirements, although putting some restrictions on its use may be necessary to ensure predictability. A case study demonstrates how the model has been used with advantage in an industrial control system. The dissertation furthermore proposes an approach for extending the component model with run-time services for embedded real-time systems. It presents a prototype tool for supporting such services, along with two empirical studies to evaluate the approach and the tool as well as the component model itself. One study shows that both the component model and the services provided by the tool result in very modest and predictable run-time overheads. The other study, evaluating the effects on productivity and quality of using the approach in a software development project, did not produce quantitative evidence, but concludes that the approach is promising and identifies possible adjustments to it and opportunities for further studies.