The introduction of advanced software engineering technologies has made architecture the central enabling concept for successful development of complex system software such as found in software intensive real-time simulators. Insightful selection and application of a software architecture seems to hold the key to the desirable trinity of software system development: better, cheaper, faster.
However, the promise offered by software system architecture raises the stakes associated with selecting one. Selecting the wrong architectural approach can jeopardize the entire project by increasing costs and delays. The barriers to selection are further raised when one considers the implications of reuse - the architecture chosen is going to be with us for a long time, so it had better be good! Furthermore, collaborative development efforts involving multiple contractor teams and contractor/government teams raise barriers because the number stakeholders increase.
This paper explores the difficulties of selecting an appropriate architecture for use in real-time simulators, and proposes ways of overcoming them. We present a method for classifying a candidate architecture by partitioning representative architectures and noting examples of each class in fielded real-time simulators. We present an approach to overcoming the obstacles to selecting an architecture, with particular emphasis on communicating to stakeholders. The cornerstone of this approach is to gain agreement on the characteristics by which architectures should be judged and selected. Our observations are based on our collective experience on the Navy/STARS demonstration project, which involved joint government contractor teams. This project required the selection of an architecture intended for use in active system development for the next decade.