Introduction
As a new student of software architecture,
I undertook this study to gain a deeper understanding of architectural
considerations, both from a theoretical and practical viewpoint. I wanted
to focus on comparing different architecture styles and I picked the Cruise
Control problem because it is problem that lends itself to multiple, significantly
different architectural solutions [Shaw et al 94]. I chose UniCon, an Architecture
Description Language, to allow me to focus less on the implementation details
of each design, and more on the architectural design issues.
This paper describes four architectural solutions for the Cruise Control problem (pipe and filter, procedure call, object oriented, and state based/real time). They were each carried through implementation. Copies of source files for both the UniCon descriptions and the implementations are included.
Overview
Some problems have software solutions that
can be designed in more than one way. The purpose of the this paper is
show one such problem, and describe four different, viable, architectural
solutions.
The paper describes solutions to the Cruise Control problem in four architectural styles. For each solution, (1) the architectural style is discussed briefly, including the component and connector abstractions in the style; (2) the specific design is described, including the allocation of system functionality to components and connectors, including the rationale for the specific organization of functionality into components; (3) any interesting implementation details.