Architectural Design
John D. McGregor
Clemson University

Architectural Drivers
These are the requirements that determine the “shape” of the architecture
“the software receives a notification whenever a particular action occurs and acts on that notification”
“the software takes a file name as parameter. It reads a formatting line as the first line in the file. It then reads data values and computes a requested statistical measure”
“the tool must be able to present data that has been written in an indeterminate number of different format. The number of formats will expand overtime”

Architectural Drivers
Hard real-time – must clear a register before it is overwritten
Soft real-time – must echo input to the screen
Human time – respond to query before user gets angry

ADD – Attribute Driven Design
In this technique design moves are determined by how well they enhance specific attributes
Identify module to decompose
Refine the module
a. identify drivers
b. choose an architectural pattern
c. identify modules
d. define module interfaces
e. verify modules by checking against use cases
3. Repeat steps

Decomposition

Decomposition

Decomposition

Decomposition

Constraints

Teams

Distributed, real-time, embedded
A component provides services thru standardized functional interfaces but provides non-standard control of the quality of service such as throughput, jitter, security:
Application should be able to monitor and control the qualities that are important to it
Long-lived applications should be able to use multiple implementations of standard interfaces without manual interference
For time-critical mode transitions, resources must be reallocated quickly
Solution?

Use a Quality Connector
Static application connector – acts on application source code before it is compiled, acts like an aspect weaver to add new source code to use the Quality connector
Static infrastructure connector – acts on the middleware components – may be automatic selection of implementations
Dynamic connector – allocates infrastructure resources to data flows

Quality Connector