[2]Basic-Concepts

这部分笔记主要记录一些相关概念

What is Software Architecture?

A software system’s architecture is the set of principal design decisions about the system.

Other Definitions of Software Architecture

  • Perry and Wolf:
    • Software Architecture = { Element, Form, Rationale }
  • Shaw and Garlan: Software Architecture involves:
    • The description of elements from which systems are built,
    • Interactions among those elements,
    • Patterns that guide their composition, and
    • Constraints on these patterns.
  • Kruchten:
    • Software architecture deals with the design and implementation of the high-level structure of software.
    • Architecture deals with abstraction, decomposition, composition, style, and aesthetics.

Prescriptive VS Descriptive

  • Prescriptive是梦想,预想的架构
  • Descriptive是现实,实际的架构。

Architectural Degradation / Decay

Architectural drift VS Architectural erosion

  • Architectural drift is introduction of principal design decisions into a system’s descriptive architecture that are not included in, encompassed by, or implied by the prescriptive architecture. 指的是在原先的设计上增加了一些新的东西,但是不会破坏原先的结构。
  • Architectural erosion is the introduction of architectural design decisions into a system’s descriptive architecture that violate its prescriptive architecture. 这里会破坏原来设计的结构。

Architecture Recovery

Architecture recovery is the process of determining a software system’s architecture from its implementation-level artifacts.
就是根据已经实现后的效果来还原代码结构。一般根据源代码,可执行文件,类文件等。

其他概念

  • Deployment 部署和上线 评估维度一般有 需要的内存,耗费的能源以及占用的带宽。
  • Components: 组成元件
  • Connectors: 负责components之间的链接和交互。
  • Configurations: An architectural configuration, or topology. Is a set of specific associations between the components and connectors of a software system’s architecture.