分解生命周期

分解生命周期模式是针对于软件开发生命周期的关注点分离。以在不同的时机,对于软件架构进行分析、治理和守护等。

背景

架构分析是一个复杂的问题,不同的利益相关者关注于不同的时机,诸如于架构师更关注于设计阶段、开发者更关注于开发阶段等。

Lifecycle

问题

如何针对于不同的阶段,以进行更有针对性的治理?

解决方案

在不同的时机下,我们会有各自的关注点;针对于不同的关注点,我们会采用特定的工具进行治理和守护。如下表所示:

时机关注点工具示例
设计态架构设计UML, Feakin
创建态代码规范内建、规范执行机制、分层规范等应用脚手架
开发态代码规范CheckStyle 的 Intellij IDEA插件
测试态代码规范、分层架构、API 规范等ArchUnit
集成态质量门禁Sonarqube
运行态服务依赖Skywalking

示例:ArchGuard

ArchGuard 中采用的三态模型:

  • 设计态:目标架构。通过 DSL(领域特定语言) + 架构工作台来构建 。
  • 开发态:实现架构。关注于:可视化 + 自定义分析 + 架构治理。
  • 运行态:运行架构。结合 APM 工具,构建完整的分析链。

局限性

如何融合不同的关注点,以构建完整性 => 需要采用架构适应度函数。