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.

| Back to Software Architecture and Related Concerns
See also Definitions.pdf (206Kb) Related Papers and Columns On this page: Software Architecture Definitions
Architecture Community Input Give
us your Definition for: What
is Your Point of View on:
|
Definitions of Software Architecture
UML 1.3: A system is a collection of connected units that are organized to accomplish a specific purpose. A system can be described by one or more models, possibly from different viewpoints. IEEE Std. 610.12-1990: A system is a collection of components organized to accomplish a specific function or set of functions. Software Architecture Definitions The following definitions are by influential writers in this field. They are organized chronologically, with the most recent first. (You can also check out the SEI's great collection of Software Architecture Definitions.)
Bass, Clements, and Kazman. Software Architecture in Practice
2nd ed,
Addison-Wesley 2003:
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. UML 1.3: Architecture is the organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. Bass, Clements, and Kazman. Software Architecture in Practice, Addison-Wesley 1997: '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. By "externally visible" properties, we are referring to those assumptions other components can make of a component, such as its provided services, performance characteristics, fault handling, shared resource usage, and so on. The intent of this definition is that a software architecture must abstract away some information from the system (otherwise there is no point looking at the architecture, we are simply viewing the entire system) and yet provide enough information to be a basis for analysis, decision making, and hence risk reduction." Garlan and Perry, guest editorial to the IEEE Transactions on Software Engineering, April 1995: Software architecture is "the structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time." Dewayne E. Perry and Alexander L. Wolf. "Foundations for the Study of Software Architecture''. ACM SIGSOFT Software Engineering Notes, 17:4, October 1992: "... software architecture is a set of architectural (or, if you will, design) elements that have a particular form. We distinguish three different
classes of architectural element: IEEE Std. 610.12-1990: Architecture is the organizational structure of a system. The following definitions are samples from software architects and senior software engineers given at the outset of our software architecture workshops. They reflect the current understanding of software architecture among practitioners of this discipline. Software architecture is:
Visitor Definitions If you are a practicing software architect, we would like to post your definition of software architecture here. Marshall Anthony, Student Software Architect, Fairleigh Dickinson University Software Architecture is the logical flow (or design) of interrelated components that work towards the goal of a current or prospective system, given the required resources. Semyon Axelrod and Mike Regan, GMAC/RFC "Software architecture forms a set of abstractions about the system that provide enough essential information to form the basis for communication, analysis, decision making and risk assessment. Every system can be abstracted to a set of models that hide irrelevant details while preserving the essential structure. Different models are used to capture different concerns. The models are usually graphical and focus on the public aspects of sub-systems and components along with their relationships to each other." Pierre Naccache, R3D Information & Technologie, Canada "An architecture is the identification of the components of a system, their relationships and their organization. An architecture supports the goals of a system and respects the constraints. An architecture identifies the critical issues and makes explicit the design choices made. Finally, an architecture prescribes the rules that must be followed (by the components)."Product Line Architecture Team, Convergys "The architecture of a system defines the building blocks, the externally visible properties of these building blocks, and their interrelationships" Dr Paul Netherwood, CWB, UK "Architecture is defined to be the rules, heuristics and patterns governing:
Defining architecture is part of the software development process. Its primary goal is to define the non-functional requirements of a system and define the environment. The detailed design is followed by a definition of how to deliver the functional behavior within the architectural rules. Architecture is important because it:
Hubert Matthews, Oxyware Ltd, UK Architecture is the highest level description of a system that allows us to reason about whether the system meets its requirements in a given context, and which constrains all further refinements. It is a context-dependent balance of the forces and constraints that mould the system. <May 15, 2002>Jim Standley, MetLife Application Architecture is the consideration of the parts that make up a system: how many there are, how big they are, how they divide responsibility, how they collaborate, how they communicate. All this is a view of design at a high enough level of abstraction that it may be applied to more than one system. Some days I call it "breaking big rocks into little rocks." <May 17, 2002> G Muniasamy, Tentacle Technologies (M) Sdn Bhd Architecture is an approach to understand the problem and window to view the solution. Valluvan Raman, MTech India Software architecture is the body of knowledge that takes the highest authority to play with the gene of a software system and to alter all its visible and invisible characteristics. <November 17, 2008>
See Definitions.pdf (206Kb) for some of the slides (with student notes) we used as context setting in our "How to Lead/Follow/Get out of the Way" seminar at the Enterprise Architectures Conference in March, 2001.
|
Copyright ©
1999-2008 by Bredemeyer Consulting
URL: http://www.bredemeyer.com
Last Modified:
November 17, 2008