The Architect In Me

Sunday, September 10, 2006

SAIP (Chapter 3): Architecture for the A-7E Avionics System

Summary of Chapter 3 of SAIP by Bass et al.
In this chapter, we are introduced to the motivation behind the architecture of the A-7E by the Navy and some of the modular structures used to define its architecture. The architectural structures used in this architecture are decomposition and uses (modular) and process (Component-and-Connectors). I particularly liked the motivation behind this project--Parnas' goal of proving that his design techniques, such as information hiding and cooperating sequencial processes, can be used in a system with tight constraints and inflexible requirements. In an era (pre 1977) where performance was the overriding goal in embedded systems, it was key to achieve a system that is object-oriented, allowing for change while also maintaining high performance.

Key to modular design is the concept of information hiding. Information hiding, as used in this context, is the encapsulation of the system details that are likely to change together into a single compenent, hiding it from other components. Other components are then only able to see the interfaces of the component, which are the details that are fairly constant over the life of the system. We are introduced to the term "module guide," which is a document that describes the modular structure of the system in a tree structure-- a node representing a module and its children representing submodules. The module guide does not describe intermodular activity, but servers as a roadmap to understanding the modular structure of the design.

In the final design, we see how the various structures are implemented. The modular decomposition structure is used to represent objects and logical components of the system and their design-time relations and serves as a means of dividing the project into implementation units. The modular uses structure is used to reveal how the various components relate to each other at runtime using their interfaces (procedures). The process structure then describes the parallelism of the system through the use of sequential processes. I thought it was particularly interesting that the architect decided to use a multi-processor design for a system that had a uniprocessor; an indication that a good architect must be able to look beyond the current environment and allow for system extensibility since enrionments are constantly evolving.

0 Comments:

Post a Comment

<< Home