 |
|
|
By:
Dr.Thomas
J Mowbray
Chairman,
iCMG
|
As
a professional discipline, software
architecture has at least a dozen
schools of thought. Some of the major
schools of thought include:
- Zachman Framework [Zachman 1997]
- Open Distributed Processing (ODP)
[ISO 1996]
- Domain Analysis [Rogers 1997]
- Rational's 4+1 View Model [Booch
1998]
- Academic Software Architecture
[Bass 1998]
Alternative
architecture approaches share concepts
and principles, but their terminologies
differ greatly. Each architecture
school is relatively isolated from
the others. In the literature of any
given school, perhaps one or two other
schools are acknowledged, however
briefly. None of the schools appear
to make any significant use of the
results of the others.
Since the terminology between these
groups varies significantly, communication
is difficult, especially between practitioners
using different architecture approaches.
Upon further study, we find that the
goals of each school are quite similar,
and each school has some unique value
to offer. In addition to these schools,
there are many vendor-driven approaches
that are tied to specific product
lines, such as Netscape ONE, Sun Enterprise
Java Beans, and Microsoft Back Office.
In fact, every vendor appears to have
a unique architectural vision for
the future founded upon their own
product lines.
We have found in practice that many
vendors have minimal understanding
of application architecture. Thus,
we focus this column on those approaches
which consider key application drivers
with appropriate product support for
underlying capabilities.
Architecture
Approaches
Here is a brief tour of the major
schools of software architecture thought.
Zachman Framework: Derived
from IBM research and practice, the
Zachman framework is a traditional
architecture approach, i.e. it is
decidedly non-OO. The Zachman Framework
is a reference model comprising 30
architecture viewpoints. The reference
model is a matrix, which intersects
two paradigms: journalism (who, what,
when, why, where, and how), and construction
(planner, owner, builder, designer,
subcontractor). Architects choose
from among these viewpoints to specify
a system architecture.
Open
Distributed Processing: A formal
standard from ISO and ITU (telecommunications),
Open Distributed Processing (ODP)
defines a five viewpoint reference
model (enterprise, information, computational,
engineering, and technology). ODP
defines a comprehensive set of terminology,
a conformance approach, and viewpoint
correspondence rules for trace-ability.
The product of seven years standards
work, ODP is a recent adoption, that
fully supports OO and component-based
architecture. In fairness, we should
note that ODP is our primary approach
to software architecture.
Domain Analysis: A process
for the systematic management of software
reuse. Domain analysis transforms
project-specific requirements into
more general domain requirements for
families of systems. The requirements
then enable the identification of
common capabilities which are used
as the basis for horizontal frameworks
and reusable software architectures.
An important capability of this approach
is the definition of robust software
designs, that are relatively resistant
to requirements and context changes.
|