使用 Structurizr 实现企业范围建模的项目


这里有一个使用Structurizr进行企业建模的方法的例子,其中自顶向下的系统景观图是自动生成的

这个存储库展示了一种使用 Structurizr 工具进行企业范围建模的方法;结合使用 Structurizr 本地安装、Structurizr DSL 和 Structurizr for Java 库。

在过去几年中,我工作过的一些组织试图使用传统的建模工具(例如Sparx)作为所有图表和文档的中央存储库,但由于多种原因,它通常不起作用。

这里提出工作区概念:
“工作空间”的设想是,它应界定:

  • 1.单个软件系统的图表+文档 或
  • 2.连接系统的景观(双击系统并导航到详细描述该系统的工作区)


工作区
在 Structurizr 中,工作区是软件架构模型、视图和补充文档的包装器。
最常见的问题之一是“工作区应该包含什么?”。想象一下,您是组织中某个部门的工程经理,您有三个团队,每个团队都构建独立的软件系统 - A、B 和 C。

建议工作空间包含单个软件系统的模型、视图和文档。遵循此建议将产生三个工作区,每个工作区均由各自的团队拥有:

  1. 工作区 1 定义软件系统 A 的系统上下文、容器、组件、动态和部署图,以及文档和决策。
  2. 工作区 2 定义软件系统 B 的系统上下文、容器、组件、动态和部署图,以及文档和决策。
  3. 工作空间 3 定义了软件系统 C 的系统上下文、容器、组件、动态和部署图,以及文档和决策。

这些工作区中的每一个都被称为“软件系统范围的工作区”,因为它们描述了与单个软件系统相关的实现细节。

景观范围的工作空间
您可能还希望创建另一个工作区(工作区 4)来描述环境(例如部门)中的人员和软件系统以及它们之间的关系,并使用一个或多个系统环境图进行可视化。

这被称为“景观范围工作空间”。组织通常会构建一个或多个景观范围的工作空间作为“其软件系统的地图”。可以配置工作区,以便双击系统景观图中的软件系统 A 进入工作区 1,在其中可以找到该软件系统的详细信息。

设置工作空间范围
设置工作区范围将触发额外的验证,以确保根据该范围创建具有所需内容的工作区。

验证
具体工作空间范围验证规则为:

  • 景观范围:工作空间不得定义容器或软件系统级文档/决策。
  • 软件系统范围:工作区必须仅为一个软件系统定义容器或软件系统级文档/决策。
  • 无范围:(无验证规则)

此外,每个产品都提供两种验证模式,可以防止使用未划定范围的工作区:
  • 严格:工作空间必须是横向范围或软件系统范围,无范围的工作空间将被拒绝。
  • 轻松:工作空间可以是横向范围、软件系统范围或无范围。

工作区示例
在此示例中,有 3 个软件系统范围的工作区,每个工作区都使用 Structurizr DSL 定义,这些工作区可能由 3 个独立的团队拥有和维护:


整个企业中使用的所有人员和软件系统都在系统目录工作区中定义,再次使用 Structurizr DSL 进行定义。

Main类中的代码:

  1. 启动 Structurizr 本地安装(通过 Docker)
  2. 加载 3 个示例工作区(如上)。
  3. 通过从 3 个示例工作区中提取关系,自动生成系统景观图。

步骤 1 和 2 仅用于引导此示例。第 3 步是该过程中有趣的部分。