Software System Architecture

From GM-RKB
Jump to navigation Jump to search

A Software System Architecture is a system architecture for a software-based system / Computing System.



References

2024a

  • (Wikipedia, 2024) ⇒ https://en.wikipedia.org/wiki/Software_architecture Retrieved:2024-2-11.
    • Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.[1]

      The architecture of a software system is a metaphor, analogous to the architecture of a building.[2] It functions as the blueprints for the system and the development project, which project management can later use to extrapolate the tasks necessary to be executed by the teams and people involved.

      Software architecture design is commonly juxtaposed with software application design. Whilst application design focuses on the design of the processes and data supporting the required functionality (the services offered by the system), software architecture design focuses on designing the infrastructure within which application functionality can be realized and executed such that the functionality is provided in a way which meets the system's non-functional requirements.

      Software architecture is about making fundamental structural choices that are costly to change once implemented. Software architecture choices include specific structural options from possibilities in the design of the software.

      For example, the systems that controlled the Space Shuttle launch vehicle had the requirement of being very fast and very reliable. Therefore, an appropriate real-time computing language would need to be chosen. Additionally, to satisfy the need for reliability the choice could be made to have multiple redundant and independently produced copies of the program, and to run these copies on independent hardware while cross-checking results.

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

  1. "Software Architecture". www.sei.cmu.edu. Retrieved 2018-07-23.
  2. Perry, D. E.; Wolf, A. L. (1992). "Foundations for the study of software architecture" (PDF). ACM SIGSOFT Software Engineering Notes. 17 (4): 40. CiteSeerX 10.1.1.40.5174. doi:10.1145/141874.141884. S2CID 628695.

2024b

2023

  • chat
    • A Software-based System Architecture is a high-level blueprint for a software-based system, which describes the overall structure, components, and relationships among those components within the system. It serves as a guide for developers in designing, implementing, and maintaining the system. Software-based System Architecture defines the organization of the system, its functional elements, their interactions, and the non-functional requirements such as performance, scalability, and security.

      In contrast, a Software-based System Architectural Pattern refers to a recurring solution to a common problem in software architecture. These patterns are proven design solutions that can be used to tackle specific architectural challenges within the context of a software-based system. They provide best practices and guidelines for designing software architectures and can be adapted or customized according to the specific needs of a project.

2009