C4モデルの技術アーキテクチャ図-コンテキスト図

共通技术架构图およびを含むシステムアーキテクチャ図の設計业务架构图
技術アーキテクチャ図アーキテクチャ図は、初期段階でシステムを設計する場合だけでなく、後の段階でシステムを開発または保守する際のガイドとしても重要です。

1.C4モデルについて

公式サイト
の技術的なアーキテクチャ図、C4、それぞれに属する形式で上下文(Context)容器(Container)组件(Component)代码(Code)4つのレベルは異なる角度に対応します。

分割のC4モデルシステムアーキテクチャ図、そして実際には微服务拆分DDD领域拆分非常によく似ている思いました。合理的な分割のみがシステムを保証できます开发效率和维护效率

2.コンテキスト図

1.公式例

ここに画像の説明を挿入
コード

@startuml system-context-diagram
!include https://unpkg.com/plantuml-style-c4@latest/c4_context.puml

LAYOUT_WITH_LEGEND()
'LAYOUT_AS_SKETCH()

title 网上银行系统context图

Actor(customer, "个人银行客户", "拥有个人银行账户的银行客户。")
System(banking_system, "网上银行系统", "允许客户查看有关其银行帐户的信息,并进行付款。")

System_Ext(mail_system, "E-mail 系统", "内部电子邮件系统。")
System_Ext(mainframe, "大型机银行系统", "存储有关客户、帐户、交易等的所有核心银行信息。")

Rel(customer, banking_system, "使用")
Rel_Back(customer, mail_system, "发送电子邮件到")
Rel_Neighbor(banking_system, mail_system, "发送电子邮件", "SMTP")
Rel(banking_system, mainframe, "使用")

@enduml

2.機能の説明

ページ関連

LAYOUT_WITH_LEGEND()

この関数は图例说明、追加後、次のように表示されることを示します图例说明
ここに画像の説明を挿入

LAYOUT_AS_SKETCH()

この機能を追加すると、以下のようにページがドラフトモードに変わります。
注:ドラフトモードでは、フォント上の理由により中国語を表示できません。
ここに画像の説明を挿入

題名

伝説のタイトル。

LAYOUT_TOP_DOWN

この関数は、括弧なしで、グラフ全体の配置を示していることに注意してください上下为主

LAYOUT_LEFT_RIGHT

この関数は、括弧なしで、グラフ全体の配置を示していることに注意してください左右为主

モジュール関連

Actor(id、name、describe)

ユーザーとして表されるユーザー関数には、3つのパラメーターがあります。
id:一意の識別子として、後続の関係リンクに使用されます。
名前:名前。
説明:説明。
ここに画像の説明を挿入

Actor_Ext(id、name、describe)

外部システムのユーザーとして表される外部ユーザー機能には、3つのパラメーターがあります。灰色の
ID:一意の識別子として。後続の関係リンクに使用されます。
名前:名前。
説明:説明。
ここに画像の説明を挿入

System(id、name、describe)

システムとして表現されるシステム機能。
id:一意の識別子として、後続の関係リンクに使用されます。
名前:名前。
説明:説明。
ここに画像の説明を挿入

System_Ext(id、name、describe)

外部システムは、外部システムとして表され、通常、接続する必要のある既存のシステムを指します。灰色の
ID:一意の識別子として。後続の関係リンクに使用されます。
名前:名前。
説明:説明。
ここに画像の説明を挿入

関係関連

Rel(formId、toId、label1、label2)

依存関係。あるシステム(formId)の別のシステム(toId)への依存関係(ラベル)を表します。
注:label1とlabel2はどちらも不是必填参数です。
ここに画像の説明を挿入

Rel_Neighbor(formId、toId、label1、label2)

Relのようですが、強調されformIdtoId水平关系ます。

Rel_R(formId、toId、label1、label2)

Relなどですが、で強調さtoIdformIdてい右边ます。

Rel_L(formId、toId、label1、label2)

Relなどですが、で強調さtoIdformIdてい左边ます。

Rel_U(formId、toId、label1、label2)

Relなどですが、で強調さtoIdformIdてい上边ます。

Rel_D(formId、toId、label1、label2)

Relなどですが、で強調さtoIdformIdてい下边ます。

Rel_Back(formId、toId、label1、label2)

Relなどですが、関係はtoIdポイントからポイントへですformIdただ反対。

Rel_Back_Neighbor(formId、toId、label1、label2)

Rel_Neighborなどですが、関係はtoIdポイントからのものですformIdただ反対。

System_Boundary(id、label){system1、system2…}

システムグループ。これは、system1合計system2システムグループであることを意味します。仮想ボックスを使用して、複数のシステムを囲みます。
コード例

System_Boundary(item1, "银行系统"){
    System(banking_system, "网上银行系统", "允许客户查看有关其银行帐户的信息,并进行付款。")
    System_Ext(mainframe, "大型机银行系统", "存储有关客户、帐户、交易等的所有核心银行信息。")
}

ここに画像の説明を挿入

3.実用的なツール

1.IDEAプラグイン

PlantUML
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/LitongZero/article/details/113769867