Object-oriented real-time computing for reusable avionics software

Reusable product line software architectures and supporting components are the focus of an increasing number of software organizations attempting to reduce software costs. One essential attribute of a product line architecture is that it effectively isolates the logical, or static, aspects of the application from any product specific variations in the physical architecture or execution environment. A primary element of this isolation is hardware and low-level software (e.g., operating system) independence. This paper describes our experiences on developing object-oriented physical architectures for large scale reusable embedded systems, and on various ways that physical architecture attributes can be designed for flexibility without introducing volatility into the application architecture.