1.1
astah* professional 8.3 or later, astah* UML 8.3 or later
C4 modelを書くためのプラグインです。
- 以下から .jarファイルをダウンロードしてください。 https://github.com/ChangeVision/astah-c4model-plugin/releases/download/v1.1/astah-c4model-1.1.jar
- 上部メニュー[ヘルプ] – [プラグイン一覧] からプラグイン一覧を開きます。
- [インストール] ボタンをクリックし、jarファイルを選択してインストールしてください。
- astah* を再起動し、プロジェクトを開きます。
- 下部の拡張ビューに[C4model]タブが追加されます。
- c4model-skeleton.astaを読み込みます。
- 構造ツリーのルートを選択することにより, プロパティービューの「プロファイルーステレオタイプ」タブに,登録されているステレオタイプと SVG画像を確認することができます。 同じステレオタイプに対して複数の画像を登録することもできます。
- また,c4model-skeleton.astaに登録してあるsvgファイルも同じ場所にzip形式で置いてありますので,astah本体のマニュアルページ の「TIPS: アイコンを複数まとめて登録する」を参考にして,既存プロジェクトに登録することもできます。
- クラス図を作ってください。
- 図上にステレオタイプ≪Software System≫をもつクラスを作成してください。ステレオタイプは例えば,図上のクラスを選択し,プロパティービューからステレオタイプタブを選択すると入力することができます。任意の名前のステレオタイプを入力することができますが,上記スケルトンファイルを利用している場合は,≪Software System≫など,C4 modelで使われるものは用意されているので,それを選択することにより入力します。
- ステレオタイプとしてC4 model として解釈できるものが指定されると,次の図のように,図要素がC4 modelの表現に変わります.変わらない場合は,C4model拡張タブにある「Refresh(based on model)」ボタンを押してみてください。
- 次に,作成したC4 modelのモデル要素を図上から編集してみます。クラス名を変えてみましょう。図上でクラス名を「Class0」から「MyClass1」に 変更してみましょう。
- 何か二つ要素を作っておいてください。
- 次に,二つの要素の間に点線の矢印を引いてみます。UMLにおいては依存関係になります。
- ここで,この依存関係の定義を書きます。定義は,図から入力してもよいですし,依存関係を選択し,そのプロパティービューから入力することもできます。
例えば同じ≪Container≫をもつ要素であっても,図上のアイコンを複数種類使いたい場合もあると思います。astah*では,一つのステレオタイプに複数の拡張アイコンを登録することができます。前述のスケルトンプロジェクトファイルにも,≪Container≫や≪Software System≫には複数のアイコンが登録されています。ここではそれを試してみましょう。
-
次に, どれか一つの要素を右クリックし,コンテキストメニューから「拡張アイコン設定...」を選びます。 すると次のような新しいウィンドウが立ち上がります。
-
この中から,好きなアイコンを選択してみましょう。例えばアプリケーション風のアイコンを選択すると次のようにアイコンが変更されます。
- アイコンの上に載っているテキストの中で,フォントの大きさを変えたいテキストを選択した状態で,ツールボタンの中の「フォントの設定を選びます」
- 例えばフォントサイズを16を選んでみましょう
- フォントが大きくなっていると思います。
次に,C4 modelの特徴である抽象化関係を作成してみましょう。 例えば,ソフトウェアシステムがコンテナMyContainer1,MyContainer2,MyContainer3からなるモデルを 作成してみます。
-
つぎに,それらのモデル要素をネスト関係によって関連付けてみましょう。ネスト関係は,クラス図のツールバーにあります。
- ここで,構造ツリーをみると,モデル上でもネスト関係になっていることが確認できると思います。
-
それでは,ネスト関係によって関連付けたところで,改めてC4model拡張タブにある「Reflect c4model texts to the model」ボタンを押してみましょう。 抽象化関係を表す枠線が表示されています。この枠線は,ネスト関係による共通の親クラスを持つ要素のあつまりがあった場合には,その親クラスの名前とともに導入されます。これは同じ図内に親クラスがなくても,モデル上に(つまり構造ツリーのほうで)ネスト関係による共通の親クラスがあれば表示されるものです。
-
この図に既存のモデルを配置してみましょう。具体的には,構造ツリーから,MyClass1,MyContainer1,MyContainer2,MyContainer3を図上にドラッグアンドドロップしてください。
-
その後適切に配置しなおしましょう。 このように,ネスト関係による共通の親クラスのあるMyContainer1,MyContainer2,MyContainer3に枠線が導入された状態でc4modelの表示にすることができます。
- コンテナ要素及びコンポネント要素には,属性としてtechnology(技術)が導入され,その初期値が図上の「Container: 〇〇」 (または「Component: 〇〇」)の〇〇の位置に表示されます。
- 関係については,「技術」 を書く特別な場所を用意していません。従って,関係の説明に続けて,依存関係の定義に記述してください。
- C4 modelの図要素の移動などの変更は,アンドゥ操作が多数必要になることに注意してください。このボタンを押下することによって生じるastah*上の操作はテキストを複数作成するなど複数になりますので,その回数分アンドゥ操作が必要になります。
Copyright 2021 Change Vision, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.