Software Architecture as a Discipline (....Contd)

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.

Back Next
Copyright 2005 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy