What Is Software Architecture?

No single standard definition of software architecture exists. However, many authors and researchers have attempted to define the term software architecture. Following are some of the most notable definitions:

"The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them." Software Architecture in Practice, Len Bass, Paul Clements, and Rick Kazman, Addison-Wesley, 1997.

"An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization these elements and their interfaces, their collaborations, and their composition." The UML Modeling Language User Guide, Booch, Jacobsen, Rumbaugh, Addison-Wesley, 1999.

"Software architecture is a set of concepts and design decisions about the structure and texture of software that must be made prior to concurrent engineering to enable effective satisfaction of architecturally significant explicit functional and quality requirements and implicit requirements of the product family, the problem, and the solution domains." Software Architecture for Product Families: Principles and Practice, Mehdi Jazayeri, Alexander Ran, Frank van der Linden, Addison-Wesley, 2000.

These definitions are a bit academic, and a practical guide must include a practical definition of software architecture and the reasons for having one. Mountains of research have been done on the subject, but why exactly would a project need to define the software architecture of the system it is building? With this practical guide in mind, we offer our definition of software architecture:

The software architecture of a system or a collection of systems consists of the important design decisions about the software structures and the interactions between those structures that comprise the systems. These design decisions support a desired set of qualities that the system should support to be successful. The design decisions provide a conceptual basis for system development, support, and maintenance.



Practical Guide to Enterprise Architecture, A
A Practical Guide to Enterprise Architecture
ISBN: 0131412752
EAN: 2147483647
Year: 2005
Pages: 148

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