Software Architecture Definitions

Program-Transformation.Org: The Program Transformation Wiki
Definitions of Software Architecture.

There are many definitions of what SoftwareArchitecture is: an overview of these is given at, to which you can even add your own favorite definition.

The IEEE defines software architecture as

Conceptually that definition of sw arch is ok, but practically it doesn't provide any concrete guidelines for the process of describing a swarchitecture. I usually prefer to use the definition that we elaboratedduring an European project (ARES) and it's reported in the book "Software Architecture for Product Families"

The definition emphasizes the purpose of a sw arch that is to satisfy functional and quality requirements of a system:

  • Software architecture is a set of concepts and design decisions about 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 problem and the solution domains.

-- ClaudioRiva?

I should probably read the book, but

  • what is the texture of software?
  • Doesn't "architecturally significant" introduce a cycle?


Software Architecture in Practice by Bass, Clements and Kazman (Addison Wesley, 1998), pp 23-24, defines architecture as follows:

  • 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.

What I like about this defintition is that it includes the notion of architectural structure, and that one system can consists of multiple structures. In other words, no one structure can claim to be the architecture -- ArieVanDeursen.

In their book on the UnifiedProcess?, Jacobson and friends also emphasize that architecture is a set of design decisions. In addition to structure, architecture in their view is also concerned with usage, functionality, performance, resilience, reuse, comprehensibility, economomc and technological constrains and trade-offs, and aesthetics (The Unified Software Development Process, p. 61 / 443) -- ArieVanDeursen

CategoryArchitecture | Contibutions by ArieVanDeursen, RainerKoschke, ClaudioRiva?