13 Facts About Software architecture

1.

Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems.

FactSnippet No. 447,589
2.

Software architecture is about making fundamental structural choices that are costly to change once implemented.

FactSnippet No. 447,590
3.

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

FactSnippet No. 447,591
4.

Software architecture is an "intellectually graspable" abstraction of a complex system.

FactSnippet No. 447,592
5.

Comparison between software design and architecture was first drawn in the late 1960s, but the term "software architecture" did not see widespread usage until the 1990s.

FactSnippet No. 447,593
6.

These core architecture activities are performed iteratively and at different stages of the initial software development life-cycle, as well as over the evolution of a system.

FactSnippet No. 447,594
7.

Software architecture supporting activities are carried out during core software architecture activities.

FactSnippet No. 447,595
8.

Software architecture description involves the principles and practices of modeling and representing architectures, using mechanisms such as architecture description languages, architecture viewpoints, and architecture frameworks.

FactSnippet No. 447,596
9.

Software architecture descriptions are commonly organized into views, which are analogous to the different types of blueprints made in building architecture.

FactSnippet No. 447,597
10.

Software architecture erosion refers to the gap observed between the planned and actual architecture of a software system as realized in its implementation.

FactSnippet No. 447,598
11.

Software architecture erosion occurs when implementation decisions either do not fully achieve the architecture-as-planned or otherwise violate constraints or principles of that architecture.

FactSnippet No. 447,599
12.

Software architecture recovery includes the methods, techniques, and processes to uncover a software system's architecture from available information, including its implementation and documentation.

FactSnippet No. 447,600
13.

Requirements engineering and software architecture can be seen as complementary approaches: while software architecture targets the 'solution space' or the 'how', requirements engineering addresses the 'problem space' or the 'what'.

FactSnippet No. 447,601