内部ブロック図の基礎と共通要素:ゼロから学べる SysML入門【実践編】(2)(1/2 ページ)
前回はSysMLの構造図の1つ「ブロック定義図」について解説した。第2回ではもう1つの構造図である「内部ブロック図」を紹介する。
本連載では、「SysML」の構造図である、ブロック定義図や内部ブロック図で用いる言語要素やその表記方法について、モデルの具体例を挙げながら解説している。読者の方々がSysMLを活用してモデリングができるよう理解の一助となれば幸いだ。
SysMLはUMLをベースとしているため、UMLを理解していればSysMLもより理解しやすいが、UMLをご存じない読者にもご理解いただけるよう、UMLと共通する部分についても、ある程度解説していきたい。
前回の連載第1回「ブロック定義図の基礎」では、SysMLの構造図の1つであるブロック定義図の基本的な部分について解説した。
今回は、SysMLのもう1つの構造図である内部ブロック図の基本的な部分について解説する。また、SysMLの全てのダイアグラムで共通して利用できる要素についても解説する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
内部ブロック図とは
内部ブロック図(Internal Block Diagram)は、前回解説したブロック定義図(Block Definition Diagram)とともに構造図として位置付けられ、システムの構造を表現するために利用される。構造図を用いてシステムをその構成要素の木構造として表現したり、構成要素間の関係を表現したりできる。
ブロック定義図は要素の型を表現することで、各要素の種々の仕様を示すことに適している。これに対し本記事で解説する内部ブロック図は、要素間の接続関係を表現するとともに、構成要素の役割や利用方法を表現するために利用される。では、ここでいう“役割”とはどのようなものだろうか。
例えば、自動車を複数の部分に分解することを考えてみてほしい。自動車は、エンジンや足回りなど、幾つかの部分に分解して捉えることができる。そして、足回りをさらに分解してホイール、サスペンションなどに分けることができる。分解の結果得られた複数のホイールは、個々のホイールに着目すればどれも同じであるかもしれない。しかし、前輪と後輪ではホイールの働きが異なる場合がある。例えば、前輪のみが駆動輪として機能する場合、後輪と異なり、前輪のみに駆動力を伝達することになる。このような構造を表現するためには、ホイールそのものを表現したり、4つの個々のホイールを個別に表現するよりも、「前輪」「後輪」といった役割に着目して構造を表現することが、システムの構造の特徴を表現するうえで効果的と考えられる。
このように、システムの各部分の役割を明確にしながら、システムをより細かい単位に分解していくことは、すなわちシステムの構造を明確化、具体化していくことだといえるだろう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
内部ブロック図の例
連載第1回に続き、今回も図1のようなロケットを題材として考えてみよう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このロケットの構造の概略を表現する内部ブロック図を図2に示す。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図2では、ロケットが2段式になっていて第1段推進部、第2段推進部や荷載部といった部分から構成されることや、それら構成要素の内部構造を示している。
以降、図2を基に各モデル要素について説明していく。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
プロパティ
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図2では、ここで取り上げる2段式のロケットに関係する要素として、第1段推進部、第2段ロケットや発射台があることを図3のように表現している。このように、ブロックに関係する要素についての情報を表すモデル要素を、「プロパティ(Property)」と呼ぶ。プロパティは、要素そのものというよりも、ブロックから見た要素の役割や利用方法を表す。図4を見てみよう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図2では、ロケットエンジンが主推進としての役割を果たしていることを図4のように表現している。このように、プロパティはブロックのような型や具体的な物などではなく、あくまで役割を表すモデル要素である点に注意してほしい。前述の「前輪」「後輪」の例のように、プロパティを使って要素の役割を表現することで、システムの構造を効果的に表現できる。
プロパティの矩(く)形内には、前回「ブロック定義図の基礎」で解説したのと同様、プロパティに関する以下のような情報を記載できる。
プロパティの形式:
プロパティ名 : 型 [多重度] = デフォルト値 { プロパティ修飾子 }
上記情報の記載方法について詳しくは、前回記事「ブロック定義図の基礎」の「プロパティ」の章を参照されたい。
図4では、上記記載方法における多重度の表現とは異なる形で多重度を表現している。このように、プロパティの多重度は矩形内の右上に表記することができる。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
パート・プロパティ
図4で示した「主推進」プロパティは、図2の中で「第1段推進部」の一部分として表現されている。このように、全体−部分関係において、全体を構成する一部分を表すプロパティを「パート・プロパティ(Part Property)」と呼ぶ。図4のように、パート・プロパティは内部ブロック図の中で実線で描かれた矩形として表記する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図5は図4に示したパート・プロパティに対応する情報を示したブロック定義図である。このように、パート・プロパティはブロック定義図のパート関連の関連端に対応する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
参照プロパティ
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図2では、発射台はロケットの一部ではないが、電力供給元としてロケットと関係があることを図6のように表現している。このように、ブロックと関係するがブロックの一部ではない要素を表すプロパティを、「参照プロパティ(Reference Property)」と呼ぶ。図6に示すように、参照プロパティは内部ブロック図の中で破線で描かれた矩形として表記する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図7は図6に示した参照プロパティに対応する情報を表現したブロック定義図である。このように、参照プロパティはブロック定義図の参照関連の関連端に対応する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
その他の種類のプロパティ
プロパティには、前述のパート・プロパティ、参照プロパティの他に、「値プロパティ」「制約プロパティ」といった種類がある。
値プロパティ(Value Property)は、値型で型付けされたプロパティである。パート・プロパティと同様に実線の矩形として表記する。
値プロパティの使用例や制約プロパティについては、参考文献[4]を参考にしてほしい。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
プロパティ固有型
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図2では、ある種のペイロードをロケットの荷載部に搭載することを、図8のように表現している。ここで搭載するペイロードのための型は、ブロック定義図で別途定義されているわけではない。このように、ブロック定義図で新たに型を定義することなく、内部ブロック図の中で特定のプロパティ専用に定義する型を、「プロパティ固有型(Property-specific Type)」と呼ぶ。
図8に示すように、プロパティ固有型はプロパティの型名を角括弧(かっこ)で囲うことで表現する。このとき、プロパティ固有型は角括弧で囲われた型(この場合「ペイロード」)を拡張した型として定義される。すなわち、この場合「ペイロード」が持つプロパティや操作といった特性は、プロパティ固有型のインスタンスの特性となり、加えて「上限許容温度」などのプロパティがプロパティ固有型のインスタンスの特性として追加されることになる。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図9は、既存の型をベースとせずに、新規にプロパティ固有型を定義した例である。図9に示すように、角括弧の間に型名を指定しなければ、既存の型をベースとしない、新規のプロパティ固有型となる。またこの場合、コロンや角括弧を省略しても同様の意味になる。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
プロパティのネスト表現
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図10は、「主推進」プロパティが複数の段階の関係を経てロケットに属していることを表現している。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
図10のような複数段階の関係は、図11のように簡略化して表記することもできる。この場合、各段階のプロパティ名をドット区切りでつなげて表記する。もし複数段階の中のいずれかのプロパティが参照プロパティであれば、矩形は点線で表記する。
Copyright © ITmedia, Inc. All Rights Reserved.