Case Study in Architectural Structures: A-7E Avionics System - A
Case Study in Architectural Structures: A-7E Avionics System - A
Structures:
• Written in Assembler
Architect’s influences
Customer and end user
Naval aviators Requirements
(Qualities)
Developing organization Architecture
Modifiability Module structure
US Naval Research Lab Architect(s)
Performance Uses structure
Technical environment Process structure
Information hiding
Cooperating sequential processes System
A-7E avionics
Architect’s experience
Academic
Access to other systems
Behavioral Requirements -1
Program
Behavioral Requirements -2
• Module structure
• Uses structure
• Process structure
Principles for Creating Modules
• Units of this structure are modules (work
assignments).
• Information hiding was the design principle.
– identify areas of likely changes and assign a
module to each
– encapsulate the changeable aspects in the
module’s implementation
– build the constant aspects into the module’s
interface
– decree that all uses of the module occur via
the facilities on its interface
– hide data structures, algorithms, and other
changeable aspects
Classifying Changes
• Three classes of change
– hardware
• new devices
• new computer
– required behavior
• new functions
• new rules of computing cockpit displays
• new modes
– software decisions
• new ways to schedule processes
• new ways to represent data types
• new ways to keep data current
Three First-Level Modules
(Work Assignments)
Software-Decision-Hiding
Device
Hardware-Hiding Module
Behavior-Hiding Module
interface
module
Hardware-Hiding Module
Module
• Two classes of hardware
Extended
computer
change
module – peripheral devices: device
interface module provides
virtual, abstract devices
– on-board computer: extended
computer module provides
virtual machine
Behavior-Hiding Module
Software-Decision-Hiding
Hardware-Hiding Module
Behavior-Hiding Module
Function
driver
module
Behavior-Hiding Module
Module
• Function driver module
encapsulates requirements-
Shared
services
based rules for computing
module outputs; e.g.,
– when to release a weapon
– where to position a HUD symbol
• Shared services module
encapsulates rules shared by
multiple outputs; e.g.,
Software Decision-Hiding
Module
Software-Decision-Hiding
Hardware-Hiding Module
Behavior-Hiding Module
Data banker
Physical
Module
models module
– representation of data
types
A-7E Module Structure
(2 Levels)
Device Function Data banker
Behavior-Hiding Module
Physical
models module
Application
data types mod.
Extended Shared Filter
computer services behavior module
module module
Software
utilities module
System
generation mod.
Example of Third-Level Modules
Device
interface
module Air data sensor module
Doppler radar set module
Device interfaces
sensor inputs
values
to display calculated
Data banker real-
real-world
values Physical models
computed values stored values
stored sensor
values Shared services
values
computed values
filtered
Function drivers values Filter behaviors
A-7E Architectural Structures
• Module structure
• Uses structure
• Process structure
Definition of Uses Relation
• Units of this structure are programs.
Function drivers
Shared services
Device interfaces
Extended computer
Layering
• Layering is a well-known style that can
provide portability across computing
platforms and quick reimplementation of
applications.
• Layering is not clean. There are often
“short-cuts” for performance or other
reasons.
• The uses structure suggests a layering, but
they are not interchangeable. The layered
structure allows only a very restrictive
definition of subsets.
A-7E Subset: Display HUD
Altitude
Function drivers
Shared services
Device interfaces
Extended computer
A-7E Architectural Structures
• Module structure
• Uses structure
• Process structure
Process Structure -1
• Units of this structure are processes.
synchronizes
with
Device interface
process
Case Study Summary -1
• Three distinct structures (uses, module, and
process) were used to design this system.
Those structures (and others) are its
architecture.
• Each structure was engineered to achieve
particular quality attributes. Structures were
not allowed simply to happen on their own.
• Information hiding was new and untested at
the time of the A-7. It was shown to be a
viable design strategy for building hard-real-
time embedded computer software.
Case Study Summary -2