Software Architecture as a Discipline

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.

Web Designing Company in Chennai | Web Development Company in Chennai | Web Design Company in Chennai | Web Design Companies in Chennai | Website Designing Company in Chennai | Web Designing in Chennai | Web Development Chennai | Web Design India | Web Development India | Website Re-designing Chennai | software company in chennai | software company in india | software development company | software development company in chennai | software development companies in chennai | application development company in india | business application development | application migration | application development | Healthcare Benefit Administration Software | medical benefits administration | benefits administration software | healthcare benefit administration software | medical benefit administration | practice management system software | practice management software | AJAX Development | Oracle Application Development | PHP Development India | Joomla Development | Flash Website Design | Rich Internet Applications | Mobile Website Development