 |
|
|
By:
Dr.Thomas
J Mowbray
Chairman,
iCMG
|
4+1
View Model: A four viewpoint approach
under development by Rational Software.
The viewpoints include: logical, implementation
(formerly "component"), process (i.e.
run-time), and deployment. The "+1"
denotes use case specifications supporting
requirements capture. This approach
is closely aligned with the Unified
Modeling Language and the Unified
Process.
Academic Software Architecture:
Academic software architecture comprises
a community of computer science researchers
and educators constituting an academic
field. Their educational efforts are
focused on basics and fundamentals.
In their research contributions, this
community avoids proven architectural
standards and practices, in order
to achieve originality, theoretical
formality, and other academic goals.
Common Principles
It is often said that the principles
of software are simple. For example,
let's consider (1) simplicity and
(2) consistency. Architects agree
that managing complexity (i.e. simplicity)
is a key goal, because it leads to
many architectural benefits, such
as system adaptability and reduced
system cost. For example, a simpler
system is easier to test, document,
integrate, extend, and so forth.
Simplicity is most necessary in the
specification of the architecture
itself. Most architectural approaches
utilize multiple viewpoints to specify
architecture. Viewpoints separate
concerns into a limited sets of design
forces which can be resolved in a
straightforward and locally optimal
manner. Consistency enhances system
understanding and transference of
design knowledge between parts of
the system and between developers.
An emphasis on consistency contributes
to the discovery of commonality and
opportunities for reuse. Architects
agree that unnecessary diversity in
design and implementation lead to
decidedly negative consequences, such
as brittle system structure.
Architecture Controversies
The principle disagreements among
architecture schools include: (1)
terminology, (2) completeness, and
(3) a-priori viewpoints. Architects
disagree on terminology due to their
backgrounds or schools of thought.
For example, when discussing software
interfaces, the consistency principle
is variously called: standard interfaces,
common interfaces, horizontal interfaces,
plug-and-play interfaces, and interface
generalization. We can also argue
that variation-centered design and
component substitution are largely
based upon consistent interface structure.
Unnecessary diversity of terminology
leads to confusion, and sometimes
to proprietary advantage. Some vendors
and gurus change terminology so frequently,
that it becomes a time-consuming career,
keeping up with their latest expressions.
Differences in terminology lead to
mis-communication. In contrast, there
are some distinct areas of disagreement
among architecture schools, that can't
be resolved through improved communications
alone. The notion of complete models
is promoted by legacy OO approaches
(e.g. OMT), the Zachman Framework
school, and various others. These
groups have promoted a vision that
complete models (describing multiple
phases of development) are a worthwhile
goal of software development projects.
Other schools would argue that multiple
models are not maintainable; that
unnecessarily detailed models are
counterproductive; and that architectural
significance should be considered
when selecting system features for
modeling. These contrary notions can
be summarized as the principle of
pragmatism. We side with the pragmatists
for the above reasons and because
most software systems are too complex
to model completely (e.g. multi-threaded
distributed computing systems). Pragmatism
is a key principle to apply in the
transition from document-driven process
to architecture-centered software
process. The selection of architecture
viewpoints is a key point of contention
among architecture schools. Some schools
have pre-selected a-priori viewpoints.
Some schools leave that decision to
individual projects. The Zachman Framework
is an interesting case, because it
proposes 30 viewpoints, among which,
most projects select groups of viewpoints
to specify. Variable viewpoints have
the advantage that they can be tailored
to address the concerns of particular
system stakeholders. Pre-defined viewpoints
have the advantage that they can accompany
a stable conceptual framework and
a well-defined terminology, as well
as, pre-defined approaches for resolving
viewpoint consistency and architecture
conformance.
|