Software Systems Architecture: A-7E Avionic System: A Case Study in Utilizing Architectural Structures
Software Systems Architecture: A-7E Avionic System: A Case Study in Utilizing Architectural Structures
Software Systems
Architecture
A-7E Avionic System:
A Case Study in Utilizing
Architectural Structures
Instructor: Tasneem Darwish
Outlines
Relationship to the Architecture Business Cycle
Requirements and Qualities
Architecture for the A-7E Avionics System
Hardware-Hiding Module
Behaviour-Hiding Module
The Behavior-Hiding Module includes procedures that
need to be changed if there are changes in requirements
affecting the required behaviour.
Those requirements are the primary secret of this
module.
A-7E
architecture
The figure shows the decomposition structure of the A7E architecture down to the third level
USES STRUCTURE
10
USES STRUCTURE
What we have is a picture of a system partitioned into
layers.
The Extended Computer Module is the bottommost
layer, and the Application Data Type Module is built
right on top of it
Layered architectures are a well-known architectural
pattern. Layering emerges from the uses structure, but is
not a substitute for it
11
Process structure
Even though the underlying aircraft computer is a
uniprocessor, the Extended Computer Module presents a
virtual programming interface that features
multiprocessing capabilities.
This was to plan for if and when the A-7E computer was
replaced with an actual multi-processor
12
Process structure
Processes are written for two purposes in the A-7E.
The first is for the function drivers to compute the
output values of the avionics software.
They are required to run periodically (e.g., to
continuously update a symbol position on the headsup display) or in response to some triggering event
(e.g., when the pilot presses the weapon release
button).
It is natural to implement these as processes.
Conceptually, function driver processes are
structured as follows:
13
Process structure
14
Process structure
Processes also occur as a way to implement certain
access procedures.
If the value returned by an access procedure is
expensive to compute, a programmer might meet the
timing requirements by continuously computing the
value in the background and simply returning the most
recent value immediately when the access procedure is
called. For example:
15
Process structure
The process structure, then, consists of the set of
processes in the software.
The relation it contains is "synchronizes-with," which is
based on events that one process signals and one or
more processes await.
This relation is used as the primary input to the
scheduling activity, which includes deadlock avoidance
16