From the standpoint of this practice, analysis focuses on the essential and functional properties of a system while
design focuses on its optimization and deployment aspects. These design practices exist at three levels of concern.
Architectural design optimizes the system at a gross, overall level. Collaborative (also known as "mechanistic") design
optimizes collaborations within the architectural. Detailed design optimizes individual classes, objects, functions,
data structures and types. At all levels, design proceeds primarily by identifying and ranking the optimization
criteria of concern, identifying design patterns and technical solutions that are consistent with the weighted set of
design criteria, applying the design patterns and technologies, and verifying the instantiated design solution.
The Real-Time Architectural Design (RTAD) practice specifies how architectural design can be achieved through the
creation of (sub)models from different viewpoints. Five key viewpoints are identified, each of which has its own design
patterns and technical solutions:
-
Subsystem and component view
-
Concurrency and resource view
-
Distribution view
-
Safety and reliability view
-
Deployment view
In addition, there are a number of secondary architectural viewpoints - such as security, error and exception handling
policies, and dynamic quality of service management - that may be relevant to a particular system. It is important to
note that within a given microcycle or iteration, not all architectural viewpoints must be addressed, even though they
might be all addressed by the time the system development is complete.
|