検索
連載

ブロック定義図の基礎ゼロから学べる SysML入門【実践編】(1)(3/3 ページ)

SysMLの言語要素や表記方法について、モデルの具体例を挙げながら解説。第1回はSysMLの構造図「ブロック定義図」について。

Share
Tweet
LINE
Hatena
前のページへ |       
※本記事はアフィリエイトプログラムによる収益を得ています

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

汎化

 図4では、ロケットによって荷載部が運搬される場合と、ロケット(この場合、第2段ロケット)が運搬される場合があることを、図24のように表現している。ここで被運搬部は、ロケットによって運搬される部分を抽象的に表した概念である。

 このように、相対的に具象的なブロックと抽象的なブロックとの関係を表現するためのモデル要素が「汎化(Generalization)」である。具象的なブロックのインスタンスは、そのブロックと汎化関係のあるより抽象的なブロックの特性を受け継ぐ。汎化はしばしば物事の体系的な分類のために利用される。


汎化
図24 汎化

 また図24では、被運搬部が抽象的な概念であり、実体はあくまでロケットや荷載部であることを表現している。このように、直接インスタンス(実体)の型になることのないブロックに対し、抽象指定 {abstract}を設定する。抽象指定されたブロックは、直接インスタンス化されない代わりに、汎化関係のあるより具象的なブロックがインスタンスの型となる。抽象指定されたブロックの名称はイタリック体で表記する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

値型

値型の利用
図25 値型の利用

 図4の中では図25のように、ロケットエンジンの推力の値を単位「kN」を表す型で扱っている。このように、値の型を定義するためのモデル要素が「値型(Value Type)」である。

 値型で型付けられた情報は、参照を介して扱われることはなく、値としてのみ扱われる。このため値型は参照関連による参照先となることはない。

 値型を定義する際には、図26のようにしばしば単位や次元を利用する。

値型の定義
図26 値型の定義

 図26では、値型kNを単位「キロニュートン」を使って定義している。このようにモデル要素「単位(Unit)」を使って、値型の定義で用いる単位を指定できる。

 また図26では、単位「キロニュートン」が次元「力」を使って定義されている。このように、単位や値型がどのような種類の量を表すかを定義するためのモデル要素が「次元(Dimension)」である。

 単位や次元は型ではないため、ブロックのプロパティや操作のパラメータのための型として直接利用することはできない。そのような目的には値型を定義して利用する。

 図26の値型の定義では、ステレオタイプ<<valueType>>を修飾するための値を、「ステレオタイプ・プロパティ区画(Stereotype Property Compartment)」の中に名前と値の組で表記している。ここでは名前「unit」とその値「キロニュートン」を指定しているが、値型の定義にはこのほかに名前「dimension」とその値を指定することもできる。一方、単位の定義では「dimension」を指定している。これら「unit」や「dimension」の指定はいずれもオプションであり、省略することもできる。

 図26の値型や単位の定義では、要素名のための最上位の区画でステレオタイプ名<<valueType>>や<<unit>>の表記を省略しているが、表記してもよい。

 値型は、プロパティや操作を持つこともできる。

 図27は、SysMLのモデルライブラリに含まれている実数や複素数を表す値型の定義である。SysMLの利用者は、これらの値型を使ってモデリングできる。

実数と複素数の定義
図27 実数と複素数の定義

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

UML Version 2との違い

 SysML Version 1.1は、UML Version 2.1.1をベースとしている。ここでは、SysML Version 1.1とUML Version 2.1.1の相違点のうち、特にブロック定義図と関係する部分について解説する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

UMLに対する追加点

 SysMLのブロック定義図では、UMLにはなかった以下のような特徴やモデル要素が追加されている。

  • ブロック
      ・クラスと異なり利用者が区画を追加できる点など
  • 制約区画
  • 名前空間区画
  • 構造区画
  • 関連の以下の特徴
      ・多分岐表現
      ・デフォルト多重度
  • 分布プロパティ
  • 値型、単位、次元

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

除外されたモデル要素

 SysMLでは、利用者がより理解しやすいようUMLに比べ、関連の表記法を減らして単純化している。

 UMLで利用可能だったN項関連と限定子は、SysMLでは除外された。

除外されたN項関連と限定子
図28 除外されたN項関連と限定子

 UMLでは関連につながった分類子が関連端を所有することを、関連端の小さなドットで表現することもできたが、この表現はSysMLでは除外された。

除外された関連端のドット
図29 除外された関連端のドット

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

表記法の変更

 誘導可能性の表記は、表4のように単純化された。

誘導可能性の表記
表4 誘導可能性の表記



 連載第1回では、ブロック定義図の基本的な部分について解説した。SysMLがUMLよりも言語仕様を単純化して理解しやすくしている点を感じてもらえただろうか。

 ブロック定義図は、内部ブロック図と合わせてシステムの構造を表現するために有用な図であり、はじめに使い方を押さえておきたい図だ。しっかりと理解しておいてほしい。

 今回は、ブロック定義図を使った型の定義に注力して説明したが、ここで定義した型をもう1つの構造図である内部ブロック図で活用することで、システムの構造を効果的に表現できる。

 ブロック定義図は、内部ブロック図以外にもパラメトリック図などとも連携して利用される。ブロック定義図のこうした使い方については参考文献[4]を参考にしてほしい。(次回に続く)


参考文献:

[1]Object Management Group, "OMG Systems Modeling Language (OMG SysML) Version 1.1", 2008-11-02, 2008
[2]Object Management Group, "Unified Modeling Language: Superstructure, Version 2.1.1", formal/2007-02-05, 2007
[3]株式会社オージス総研 オブジェクトの広場編集部, "その場でつかえるしっかり学べるUML2.0", 2006
[4]鈴木茂;山本義高, "実践SysML", 2013


【 筆者紹介 】
鈴木 茂(すずき しげる) 株式会社オージス総研

東北大学 工学部 電気工学科を卒業後、沖電気工業、日本オラクルを経て、1998年より現職。オブジェクト指向やモデリング技術、アーキテクチャ構築技術を活用し、組み込みシステム開発現場の技術支援コンサルティングやR&D支援を手掛ける。また、2006年より情報処理学会ソフトウェア工学研究会 運営委員、2007年よりMDDロボットチャレンジ モデル審査員を務める。

主な著書は「その場でつかえるしっかり学べるUML2.0」(秀和システム、共著)。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る