跳至主要內容

Chapter2 为什么软件架构重要

Chiichen原创大约 3 分钟课程笔记软件体系结构

抑制或促进系统的质量属性

  • 系统能否展现其所期望(或要求的)质量属性,在很大程度上取决于其架构。
    • 性能
    • 可修改性
    • 安全性
    • 可扩展性
    • 可重用性

推理和管理变更

  • 典型软件系统的总成本中,大约 80%发生在初始部署之后:
    • 适应新功能
    • 适应新环境
    • 修复错误等等。
  • 每个架构将可能的变更划分为三个类别:
    • 本地变更可以通过修改单个元素来完成。
    • 非本地变更需要对多个元素进行修改,但保持底层架构方法不变。
    • 架构变更会影响元素彼此交互的基本方式,并且将需要进行更大范围的更改。
  • 显然,本地变更是最理想的。
  • 一个好的架构是指最常见的变更是本地变更,因此更容易进行。

预测系统质量

  • 当我们审查一个架构时,我们可以自信地预测该架构将展现出相关的质量。
  • 发现设计问题越早,修复起来就越便宜、容易且不会造成太大的中断。

增强利益相关方之间的沟通

  • 架构(或至少其中的一部分)足够抽象,以至于大部分非技术人员都能理解它。
  • 系统的大多数利益相关方可以将其作为创建共同理解、协商、形成共识和相互沟通的基础。
  • 软件系统的每个利益相关方关注系统的不同特征
    • 用户、客户、经理、架构师

最早的设计决策

  • 软件架构是关于系统最早的设计决策的体现。
  • 这些早期决策会影响系统的后续开发、部署和维护周期。
  • 这些早期设计决策包括:
    • 系统是在一个处理器上运行还是分布在多个处理器上?
    • 软件是否采用分层结构?如果是,会有多少层?每一层的功能是什么?
    • 组件之间是同步通信还是异步通信?
    • 我们将选择哪种通信协议?
    • 系统是否依赖于操作系统或硬件的特定功能?
    • 信息在系统中的流动是否加密?

//TODO 中间几点暂略

总结

  1. 架构将抑制或促进系统的关键质量属性。
  2. 架构中的决策使您能够推理和管理系统在演化过程中的变化。
  3. 对架构的分析能够提前预测系统的质量。
  4. 文档化的架构增强了利益相关方之间的沟通。
  5. 架构是最早、最基础且最难改变的设计决策的载体。
  6. 架构对后续实现施加了一系列约束。
  7. 架构决定了组织的结构,或者反之亦然。
  8. 架构可以为演化原型提供基础。
  9. 架构使架构师和项目经理能够推理成本和进度。
  10. 架构可以作为可转移、可重用模型的创建,成为产品线的核心。
  11. 基于架构的开发关注组件的组装,而不仅仅是它们的创建。
  12. 通过限制设计选择,架构引导开发人员的创造力,减少设计和系统的复杂性。
  13. 架构可以成为培训新团队成员的基础。