*Definitions of Software Architecture.* There are many definitions of what SoftwareArchitecture is: an overview of these is given at http://www.sei.cmu.edu/architecture/definitions.html, to which you can even add your own favorite definition. ---- The IEEE defines software architecture as * _the fundamental organization of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution._ -- see http://www.pithecanthropus.com/~awg/p1471_faq_rev2.html ---- 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" http://www.amazon.com/exec/obidos/ASIN/0201699672/ref=ase_re/002-9221677-3311232 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._ -- Main.ClaudioRiva _I should probably read the book, but_ * _what is the texture of software?_ * _Doesn't "architecturally significant" introduce a cycle?_ --ArieVanDeursen ---- _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, Main.ClaudioRiva