Software architecture

related topics
{system, computer, user}
{theory, work, human}
{company, market, business}
{church, century, christian}
{math, number, function}
{language, word, form}
{style, bgcolor, rowspan}
{group, member, jewish}

The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. [1] The term also refers to documentation of a system's software architecture. Documenting software architecture facilitates communication between stakeholders, documents early decisions about high-level design, and allows reuse of design components and patterns between projects.[2]



The field of computer science has come across problems associated with complexity since its formation.[3] Earlier problems of complexity were solved by developers by choosing the right data structures, developing algorithms, and by applying the concept of separation of concerns. Although the term “software architecture” is relatively new to the industry, the fundamental principles of the field have been applied sporadically by software engineering pioneers since the mid 1980s. Early attempts to capture and explain software architecture of a system were imprecise and disorganized, often characterized by a set of box-and-line diagrams.[4] During the 1990s there was a concentrated effort to define and codify fundamental aspects of the discipline. Initial sets of design patterns, styles, best practices, description languages, and formal logic were developed during that time.

The software architecture discipline is centered on the idea of reducing complexity through abstraction and separation of concerns. To date there is still no agreement on the precise definition of the term “software architecture”.[5]

Full article ▸

related documents
Information visualization
Augmented reality
Web service
Channel access method
Cambridge Z88
S-100 bus
Digital image processing
Sony Dynamic Digital Sound
Graphics Device Interface
Apple IIe Card
BNC connector
Next-Generation Secure Computing Base
Chaffing and winnowing
Maya (software)
Category 5 cable
Picture archiving and communication system
Composite video
Variable bitrate
JFS (file system)
Digital art