#IBM Rhapsodyとは
IBM Rhapsodyは、OMG Systems Modeling Language™ (OMG SysML) を使用して、迅速な要件分析とモデルベースの設計を可能にします。モデルは、実行およびシミュレーションによって検証することができ、システムエンジニアチームが複雑な機能を短時間で設計するのに役立ちます。
#概要
本記事ではRhapsodyを使ってブロック定義図を記述する手順を説明します。
#前回の記事
IBM 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]をクリックし、フィーチャー画面を閉じます。
メインメニューから[ファイル]->[保存]をおこないます。
以上でブロック定義図は完了です。
#次の記事
アニメーション実行可能なシーケンス図を描く