Design is all about optimization of an object analysis model (also known as Platform Independent Model). As such, all
of design is driven by various design constraints, including, but not limited to, QoS requirements. The optimization is
applied at three levels of abstraction: architectural (system-wide), mechanistic (collaboration-wide), and detailed
(class-wide).
Architectural optimization is decomposed into five key aspects or viewpoints:
-
Subsystem and Component View
-
Concurrency and Resource View
-
Distribution View
-
Safety and Reliability View
-
Deployment View
Each of the viewpoints has its own literature and set of design patterns. Each design pattern is a generalized solution
to a commonly occurring problem that occurs within that viewpoint. The overall architecture is the sum of the design
pattern selection from all the architectural views. In addition to these key architectural views, there are secondary
views that may be important in some real-time and embedded systems. Common secondary architectural concerns include:
-
Security
-
Data management
-
Quality of Service management
-
Error and exceptional handling policies
-
Service Oriented Architecture (SOA)
-
Business Process Management (BPM)
In the context of a spiral lifecycle, architectural design patterns are applied iteratively, in subsequent microcycles
(spiral instances). In fact, not all aspects of architecture need be applied within any specific prototype. For
example, in a 5 microcycle development project, the subsystem architecture and the safety architecture may be
specified in prototype 1, the distribution architecture in prototype 2, the concurrency and resource architecture in
prototype 4. Nor. must all views be present in all systems. Safety and reliability view only appears in safety- or
reliability-critical applications..
Be careful not to apply design patterns too soon - the object analysis (PIM) model should be as design-free as
possible. Before settling on a particular design solution, explicitly identify and rank the design criteria, and weigh
the design patterns against these.
|