ブロック定義図の基礎:ゼロから学べる SysML入門【実践編】(1)(2/3 ページ)
SysMLの言語要素や表記方法について、モデルの具体例を挙げながら解説。第1回はSysMLの構造図「ブロック定義図」について。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
区画
図16では、図4の「推進部」ブロックに付随するさまざまな特性を表現している。このように、ブロックの特性をさまざまな形式で表現する際に、区別して表記するための領域を「区画(Compartment)」と呼ぶ。
SysMLではいくつかの標準的な区画を規定している。また、利用者が区画を定義して利用することもできる。
ブロックの矩形に各種区画を表記する順序は任意である。区画中に区画名を表記して、種類を明示的に区別してもよい。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
プロパティ
図17では、図4の「ロケットエンジン」ブロックが保持する情報を区画中に表現している。このように、ブロックが保持する情報が「プロパティ(Property)」である。
プロパティは、ブロックの区画中に以下のような形式で表記できる。
プロパティの形式:
プロパティ名 : 型 [多重度] = デフォルト値 { プロパティ修飾子 }
上記の形式の中で、プロパティ名以外は省略して表記できる。多重度の表記を省略した場合は、多重度は「1」と見なされる。
以下は、利用可能なプロパティ修飾子の例である(表1)。
プロパティ修飾子 | 意味 | |
---|---|---|
readOnly | プロパティは読み取り専用 | |
ordered | プロパティは順序付けられている | |
unique | プロパティに重複がない | |
表1 プロパティ修飾子 |
以下にプロパティの記述例を示す。
記述例:
補助推進 : 固体燃料ブースター [0..4]
推力 : kN = 2000
ペイロードID : Integer { unique }
前述の関連端もプロパティの一種である。例えば、図8において、関連端「作用先」はブロック「推進部」が保持するプロパティである。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
分布プロパティ
図4では、固体燃料ブースターの推力の確率分布が正規分布であることを図18のように表現している。このように、値の確率分布を指定できるように拡張されたプロパティを、「分布プロパティ(Distributed Property)」と呼ぶ。
各種分布プロパティを表2に示す。
ステレオタイプ | パラメータ | 説明 | |||
---|---|---|---|---|---|
名称 | 型 | 意味 | |||
<<Interval>> | min | Real | 最小値 | 値はminとmaxの間に分布する。minおよびmaxも範囲に含む。確率分布は指定しない | |
max | Real | 最大値 | |||
<<Uniform>> | min | Real | 最小値 | 値はminとmaxの間に分布する。minおよびmaxも範囲に含む。確率分布は一定 | |
max | Real | 最大値 | |||
<<Normal>> | mean | Real | 平均 | 値の確率分布は正規分布に従う | |
standard Deviation |
Real | 標準偏差 | |||
表2 分布プロパティの種類 |
分布プロパティの記述例を以下に示す。
記述例:
{ mean=2500, standardDeviation=0.8 } 推力 : kN
<<Interval>> { min=101.0, max=105.0 } 体積 : m^3
<<Uniform>> { min=87, max=92 } 速度 : mph
記述例のように、分布プロパティの種類がNormalの場合にはパラメータの種類で判別できるが、IntervalとUniformはパラメータの種類が同じであるため、ステレオタイプを明示して区別する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
プロパティ用区画
前述のように、プロパティをブロックの区画中に表記できる。表3はプロパティを表現するうえで利用できる区画である。
コンパートメント名 | 説明 | |
---|---|---|
values | 後述の値型を型とするプロパティのための区画 | |
parts | パート関連で保有するブロックを型とするプロパティのための区画 | |
references | 参照関連で関係付けられたブロックを型とするプロパティのための区画 | |
properties | プロパティ全般を区別なく表記するための区画 | |
表3 プロパティ用区画 |
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
制約区画
図4では、推進部全体の推力の合計(総推力)が、ロケットエンジンの推力の合計と、固体燃料ブースターの推力の合計の和に等しくなるという制約があることを図19のように表現している。このように、モデル要素の間にある制約を表現するための区画が、「制約区画(Constraints Compartment)」である。
制約区画に記述する制約は、一般的なテキストベースの書式による制約の記述を波括弧で囲った形式で表現する。区画の中に制約を複数記述してもよい。
図19の例では、SysMLと同様OMG(Object Management Group)によって仕様が策定されたOCL(Object Constraint Language)を用いて制約を表現している。
制約を表現するうえで、区画に記載せずにノートを使うこともできる。図20は、ノートを使って制約を表現した例である。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
名前空間区画
図21では、「荷載部」ブロックがほかのいくつかのブロックの定義を包含していることを図4とは異なる形式で表現している。このように、あるブロックが別のモデル要素の定義を包含しているときに、包含されたモデル要素をグラフィカルに表現するための区画が「名前空間区画(Namespace Compartment)」である。
名前空間区画には、ブロック定義図で利用可能なさまざまなモデル要素を表記できる。
名前空間区画を使って、モデル要素の定義の包含関係を表現できるが、これはあくまでモデル要素の定義がどこに属するかの問題であり、ブロック間の「全体-部分関係」などとは異なるので注意されたい。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
構造区画
図22では、「推進部」ブロックがいくつかの要素から構成されていることを、図4とは異なる形式で表現している。このように、ブロックを構成する要素を表現するための区画が「構造区画(Structure Compartment)」である。
構造区画では、本連載で今後解説する予定の内部ブロック図で利用可能な多くのモデル要素を使うことができる。これらのモデル要素の詳細については、今後解説していく予定である。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
操作区画
図4では、ロケットエンジンが「点火する」振る舞いを持つことを図23のように表現している。このように、ブロックの振る舞いを表すモデル要素が操作である。そして、操作を表記するためのブロック中の区画が「操作区画(Operations Compartment)」である。操作区画には、以下のような形式で操作を表記できる。
操作の形式:
操作名 ( パラメータリスト ) : 返却値型
返却値型は省略して表記できる。
パラメータリストは、パラメータをカンマ区切りで表記する。パラメータの形式は以下のとおりである。
パラメータの形式:
方向 パラメータ名 : 型名 = デフォルト値
上記のうち、パラメータ名以外は省略して表記できる。
方向には、in、out、inoutを指定できる。おのおの、入力パラメータ、出力パラメータ、入出力パラメータを意味する。
以下に、操作の記述例を示す。
記述例:
点火する ()
ブースターを分離する ( bids : ブースターIDリスト ) : 結果
燃料を供給する ( in tid : タンクID = 1, in amount : tps, out prevResult : tps ) : 結果
Copyright © ITmedia, Inc. All Rights Reserved.