This paper describes the software architecture design of a real-time monitoring system. The system has different configurations
to produce a set of medium to high-end monitoring systems. The system was designed to meet the product line quality objectives
of configurability, extensibility, and portability within the constraints of an embedded real-time system. These objectives
were achieved using global analysis and the principle of separation of concerns to organize the architecture into multiple
views. The major design artifacts in each of the views were: (1) a publish-subscribe communication protocol among software
entities that allowed requirements to be isolated to a component; (2) a layered design that provided encapsulation of common
services; (3) and a task structure that facilitated flexible process allocation.
Keywords Software engineering - software architecture - product line - global analysis - multiple views - design decisions - industrial applications
This revised version was published online in December 2004. The book title of the original online version was incorrect.