Table of Contents Previous Section Next Section

1.1 Defining Software Architecture

An increasing number of software professionals are claiming the title of software architect; however, very few of these people understand what software architecture is.

Few people have considered the question: "What is architecture?" The term architecture is one of those most often misused. The following section discusses one of the common misuses; then the question "What is architecture?" is answered using a conceptual standard that is widely used today.

Too often, architectures are used as sales tools rather than technical blueprints. In a typical scenario, a fast-talking technical manager (the "architect") presents a few high-level viewgraphs ("architectures") to convince his audience of the greatness of his product or system. This is a presentation of a marketing architecture. A marketing architecture is a description of an architectural solution at such a high and abstract level that its true feasibility cannot be determined. Most marketing architectures are directed toward customers, not toward software developers. Marketing architectures are fine for advertising the features of commercial products, but they provide only limited technical information for developers.

The problem with marketing architectures is that they are decoupled from the development process. The so-called architect is a manager who delegates most technical details to individual developers. Unless the architect manages the computational model (including subsystem interfaces), the architecture is unlikely to deliver any real technical benefits. Architectural benefits that are easily compromised include system adaptability (for new business needs) and system extensibility (for exploitation of new technologies).

Despite the many competing definitions, experts emphasize the importance of architecture, especially for component-based applications. As component reuse and software complexity increase, architecture is growing dramatically in importance. In subsequent sections, several architecture-centered approaches that support business change, technology innovation, and design reuse are discussed. Reuse of architectural designs benefits component reuse because design reuse is often much more effective than software reuse alone.

    Table of Contents Previous Section Next Section