 |
|
|
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.
|