这部分笔记主要记录一些相关概念
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.