皆さん,こんにちは!
今日は,C4 modelというモデリングの方法論を支援するプラグインを紹介します。
C4 modelは,UMLがなかなか現場では使われていない,という反省から,UMLをベースに考え出されたもので,エンジニアのよりよいコミュニケーションを支援することに重点が置かれています。詳しくは,公式サイトや次の資料などを参照してください。
- 外部リンク:ソフトウェアのアーキテクチャを可視化するアーキテクチャを可視化する C4 model
- 外部リンク:ソフトウェアアーキテクチャのためのC4モデル
- 外部リンク:複雑なUMLの代わりにC4モデルが提案されている
C4 modelは,ソフトウェアのアーキテクチャを(1) Software system,(2) Container,(3) Component,(4) Codeの4階層で理解します。Software systemにおいては,開発対象システムと利用者,また他のシステムとの依存関係を記述します。
それでは,プラグインを使ってC4 model のモデルを書いてみましょう。公式サイトの例題をとりあげます。はじめに,Software systemのモデルはプラグインを使うと次のように書くことができます。詳しい書き方は,githubのreadmeを見てみてください。

ここで,図上のクラスは,拡張アイコン機能を使って,予め登録してあるSVGファイルによって表現されています。例えば,ステレオタイプ «Person» をもつクラスは,人型になったり,«Software System» のクラスは,青色や灰色の矩形を選択することができます。また,それらアイコン上に表示されている文字情報は,プラグインによって,図上の文字列として,表示されています。したがって,アイコンを図上で移動しても,それらの文字列はそのままでは移動しません。例えば,移動直後はつぎのような表示になります。

ただ,ここでC4 model pluginによって提供されている「Refresh(based on model)」ボタンを押すことによって次のように文字列の位置が修正されます。

これは,プラグインによって,クラスの図要素とその上に配置された文字列が紐付いているからです。もちろん,記述してある情報はモデルの情報と紐付いています。例えば,各クラスの説明文は,モデルではdescriptionという属性の初期値を反映しています。
これまで見たように,使い勝手にすこし癖があるかもしれませんが,見た目はC4 modelの書き方が再現できることを見ていただけたと思います。アイコンの画像は,新しく用意したものも登録して利用することができます。また,C4 modelで重要な階層的なモデルの記述など,より高度な使い方は,githubのreadmeを書いてあります。
一度試していただいて,フィードバックなどいただければと思います!
「C4model pluginの紹介」への1件のフィードバック