Difference between revisions of "Software architecture"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(See also)
(See also)
Line 24: Line 24:
 
* [[Software development]]
 
* [[Software development]]
 
* [[Software engineering]]
 
* [[Software engineering]]
 +
* [[Technical debt]]
  
 
== External links ==
 
== External links ==
  
 
* [https://en.wikipedia.org/wiki/Software_architecture Software architecture] @ Wikipedia
 
* [https://en.wikipedia.org/wiki/Software_architecture Software architecture] @ Wikipedia

Revision as of 07:16, 17 September 2015

Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures.

Description

Software architecture is the set of structures needed to reason about the software system. Each structure comprises software elements, relations among them, and properties of both elements and relations.

The architecture of a software system is a metaphor, analogous to the architecture of a building.

Software architecture choices include specific structural options from possibilities in the design of software.

For example, the systems that controlled the space shuttle launch vehicle have the requirement of being very fast, and very reliable, in principle. Therefore an appropriate real-time computing language would be chosen. Similarly, multiple redundant independently produced copies of a program running on independent hardware and cross-checking results would be a software system architecture choice to satisfy the need for reliability.

Software architecture is about making fundamental structural choices which are costly to change once implemented, i.e., which are used to 'house' the more changeable elements of the program, e.g., an operating system.

Documentation

Documenting software architecture facilitates communication between stakeholders, captures early decisions about the high-level design, and allows reuse of design components between projects.

See also

External links