IBM Rhapsodyとは
IBM Rhapsodyは、OMG Systems Modeling Language™ (OMG SysML) を使用して、迅速な要件分析とモデルベースの設計を可能にします。モデルは、実行およびシミュレーションによって検証することができ、システムエンジニアチームが複雑な機能を短時間で設計するのに役立ちます。
概要
本記事ではRhapsodyを使ってブロック定義図を記述する手順を説明します。
前回の記事
手順
プロジェクトの作成
Rhapsody 9.0.1 Designer for Systems Engineersを起動してください。
新規にプロジェクトを作成します。
メインメニューから[ファイル]->[新規]を実行します。

プロジェクト名、フォルダーについては任意に変更してください。

プロジェクト・タイプを[Default]から[SysML]に変更し、[OK]をクリックします。

[はい]をクリックします。

[はい]をクリックします。

プロジェクトが新規に作成されました。

ブロック定義ダイアグラム
BlockModelingパッケージを選択し、右クリックメニューを開きます。
[新規追加]->[Block Definition Diagram]を実行します。

名前を System Architecture とし、[OK]をクリックします。

Block Modelingパッケージの下にSystem Architectureが作成されました。

System Architectureダイアグラムの中でクリックし、表示されたブロックを選択します。ダイアグラム内をクリックするとブロック図が生成されます。

ブロックの名前を Smartwatch に変更します。

同様の手順でTimerとButtonのブロックを追加します。

Smartwatchブロックを選択し、左クリックします。表示されたアイコンメニューの中から[有向コンポジション]を選択します。

SmartwatchブロックからButtonブロックに線を引きます。

同様にSmartwatchからTimerに有向コンポジションを引きます。

Buttonブロックを選択し、左クリックします。[有向関連]を選択し、Timerブロックに対して線を引きます。


内部ブロック図
続いて内部ブロック図を記述します。Smartwatchブロックを選択し、右クリックメニューを開き、[新規追加]->[新規Internal Block Diagram]を選択します。

新規追加されたInternal Block Diagramにカーソルを合わせ、右クリックメニューを開き、[ナビゲート]->[ブラウザー上での位置確認]を実行します。これにより画面左のモデル・ブラウザーにおけるInternal Block Diagramの場所を知ることができます。

Internal Block Diagramは、BlockModlingパッケージのBlocksカテゴリの下に定義されていることがわかります。

次にInternal Block Diagramの下にある[パーツ]カテゴリを選択し、Internal Block Diagramの図上に移動させてください。itsButton、itsTimerが生成されます。

itsButtonを選択し、右クリックメニューから[connector]を選択し、itsTimerに線を引きます。

内部ブロック図が完成しました。

#
インスタンスの生成
次にSmartwatchのインスタンスを生成します。モデル・ブラウザー上でSmartwatchを選択し、右クリックメニューを開き、[オブジェクトの作成]を実行します。

itsSmartwatchが生成されました。

プロパティの追加
BlockModelingパッケージを選択し、右クリックメニューを開き、[新規追加]->[Tables and Views]->[Block Features Table]を実行します。

名前を All Block Featuresに変更します。


All Block Featuresをダブルクリックして開きます。

Timerの行、2列目のValue Propertiesをクリックし、[新規]を選択します。valueproperty_0が追加されます。

続けて[新規]を選択します。valueproperty_1が追加されます。

モデル・ブラウザー上での位置を確認します。valueproperty_1を選択し、右クリックメニューを開き、[ナビゲート]->[ブラウザー上での位置確認]を実行します。


モデル・ブラウザー上でvalueproperty_1を選択し、右クリックメニューを開き、[フィーチャー]を選択します。

[一般]タブで名前欄にvalueproperty_1と表示されています。valueproperty_1をminutesに変更し[OK]をクリックします。


同様にして valueproperty_0をsecondsに変更します。

次にSystem Architecture ブロック定義図を選択し、Timerブロックの右クリックメニューを開きます。[表示オプション]を実行します。

[コンパートメント]タブに切り替え、表示を[明示]から[すべて]に変更します。[OK]をクリックします。

これにより先ほど追加したseconds、minutesプロパティがブロック図上に表示されます。

追加したプロパティ名の表示が途中で切れています。Timerブロックを選択して右クリックメニューを開き、[テキストに合わせて拡大]を選択します。

プロパティ名が表示されました。

操作の追加
Timerブロックに操作(Operation)を追加します。Timerの右クリックメニューを開き、[新規追加]->[操作]を実行します。

オペレーション名を incrementTime に変更します。


incrementTimeオペレーションを選択し、右クリックメニューを開き、[フィーチャー]を実行します。

実装タブに切り替えます。01の行にカーソルをあて、Ctrlキーを押しながらスペースキーを押します。
表示されたダイアログの中からsecondsを選択します。

secondsの後ろにカーソルをあて、++; と入力します。[OK]をクリックし、フィーチャー画面を閉じます。

メインメニューから[ファイル]->[保存]をおこないます。

以上でブロック定義図は完了です。