Section 4.1. What Is a Software Architecture?


4.1. What Is a Software Architecture?

The literature in our field provides many different definitions of software architecture. Booch, Rumbaugh, and Jacobson [BRJ99] claim that "An architecture is the set of significant decisions about the organization of a software system . . ." Brass, Clements, and Kazman define software architecture in [BCK03]: "The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them." The IEEE Standard 610.12-1990 claims that "Architecture is the organizational structure of a system." Fowler characterizes architecture in [Fow02]: "'Architecture' is a term that lots of people try to define, with little agreement. There are two common elements: One is the highest-level breakdown of a system into its parts; the other, decisions that are hard to change." You can find even more definitions at http://www.sei.cmu.edu/architecture/definitions.html.

For our purposes, we define software architecture in the sidebar, "Definition of Software Architecture."

Definition of Software Architecture

A software architecture is a set of statements that describe software components and assigns the functionality of the system to these components. It describes the technical structure, constraints, and characteristics of the components and the interfaces between them. The architecture is the blueprint for the system and therefore the implicit high-level plan for its construction.


In this book, we will also use the terms application and application landscape. An application is a set of software components that serves a distinctive purpose, and an application landscape is the sum of all applications of an organization. Ideally, all applications of an application landscape comply with a single architectural blueprint. However, in practice, they usually don't. We also casually use one particular phrase: "Software component X belongs to architecture Y." More precisely, this phrase means: "Software component X belongs to an application landscape which is designed according to an architecture Y."



    Enterprise SOA. Service-Oriented Architecture Best Practices
    Enterprise SOA: Service-Oriented Architecture Best Practices
    ISBN: 0131465759
    EAN: 2147483647
    Year: 2003
    Pages: 142

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net