連載
» 2012年04月26日 10時54分 公開

ゼロから学べる SysML入門【実践編】(3):ポートとフロー (2/2)

[鈴木茂、高橋貴明(株式会社 オージス総研),@IT MONOist]
前のページへ 1|2       

非アトミック・フローポートと
フロー仕様

非アトミック・フローポート

 図1中の「: 凝縮器」というパートが持つポートに着目してほしい。ここでは凝縮器に対して、複数種類の冷却液の出入りがあることを表現している(図8)。


非アトミック・フローポート 図8 非アトミック・フローポート

 このように、複数のモノや情報などの流れを中継できるフローポートを、非アトミック・フローポートと呼ぶ。

 アトミック・フローポートがブロックや値型、シグナルで型付けされるのに対し、非アトミック・フローポートは後述のフロー仕様で型付けされる。フロー仕様を使って複数の要素を列挙することで、非アトミック・フローポートを複数の要素と対応付けできる。

 なお、入出力(inout)の向きを持つアトミック・フローポートと、非アトミック・フローポートの表記を混同しないよう注意してほしい(図9)。

表記の違い 図9 表記の違い

フロー仕様とフロープロパティ

 「フロー仕様(Flow Specification)」は、非アトミック・フローポートが中継する流れの入出力の仕様を表現するものだ。図1では、「冷却水仕様」というフロー仕様で型付けされた非アトミック・フローポートが使われている。フロー仕様「冷却水仕様」を図10のようにブロック定義図で定義する。

フロー仕様とフロープロパティ 図10 フロー仕様とフロープロパティ

 フロー仕様は、「フロープロパティ(Flow Property)」の集合として定義する。フロープロパティは、ポートが中継する単一の要素を表す。ブロックもしくはフロー仕様がフロープロパティを保持できる。フロープロパティは「入力(in)」「出力(out)」「入出力(inout)」のいずれかの方向を持つ。フロープロパティを表記するには、図10のようにブロックやフロー仕様に“flowProperties”という区画を設けて表記する。

 「冷却水仕様」の例では、「未使用冷却水」と「使用済み冷却水」という2つのフロープロパティを定義している。これは、1つの「冷却水仕様」型のフローポートを介して、2種類の冷却水が中継されることを表現している。

共役フローポート

 コネクタで接続された2つの非アトミック・フローポートの型は、入出力の方向が互いに逆向きになることが多い。このような場合に、入出力の向きが逆向きの2つのフロー仕様を用意して対応することもできるが、「共役(Conjugated)」フローポートを用いれば、1つのフロー仕様のみを使って表現できる。共役フローポートでは、フロー仕様で定義された入出力が反転する。すなわち、入力が出力に、出力が入力として解釈される。

共役フローポート 図11 共役フローポート

 図1の例では、凝縮器から出力される使用済み冷却水は、冷却塔に対する入力となる。逆に、未使用冷却水は凝縮器の入力であり、冷却塔の出力である。このように入出力が反転した2つのフローポートを、1つのフロー仕様「冷却水仕様」と共役フローポートを使って図11のように表現している。

 共役フローポートは、型名に接頭辞として波線符号(~)を付けて表記する。

標準ポートとインターフェイス

標準ポート

 「標準ポート(Standard Port)」は、そのポートを保持するブロックが、外部に対して提供または要求する“サービス”を表現する。この標準ポートという名称は、UMLの「ポート」をフローポートと区別するためにSysMLで呼び替えたものである。意味と表記方法はUMLの「ポート」を踏襲している。図12に、標準ポートの表記方法と対応するインターフェイスの表記方法の例を示す。

標準ポート 図12 標準ポート

 「提供インターフェイス(Provided Interface)」や「要求インターフェイス(Required Interface)」を記述することによって、標準ポートに対応するサービスを仕様化できる。標準ポートは、提供インターフェイスと要求インターフェイスの両方、またはいずれかを持つことができる。図12に示すように、提供インターフェイスは「ロリポップ」、要求インターフェイスは「ソケット」の記号で表す。

 図12の例では、「: 変圧器」パートが「電圧操作」インターフェイスを外部に対して提供している。すなわち、外部から「: 変圧器」パートに対して「電圧操作」インターフェイスで定義したサービスを呼び出すことができる。また、「: 変圧器」パートは「電圧データ」インターフェイスを要求している。すなわち、「: 変圧器」パートは外部の「電圧データ」インターフェイスを呼び出すことを必要とする。そして、「: 集中管理室」パートは、その逆のインターフェイスを提供・要求する。このように、提供側と要求側のインターフェイス型を適合させながら、標準ポートを持つブロックやパート同士を結び付けることができる。

 標準ポートとフローポートの使い分けに迷う場合もあるかもしれない。標準ポートはサービスベースでシステム全体の構造を検討することに使うことができる。また、電圧管理の例のように、電気的な情報のやりとりは標準ポートで表現し、他の物理的な流れはフローポートで表すというように使い分ける方法が考えられる。あるいは、情報のやりとりも含めて、全てフローポートのみで表現することもできるだろう。このように、標準ポートとフローポートの使い分け方には、さまざまな方法が考えられる。状況に応じた使い分け方を工夫してほしい。

インターフェイス

 「インターフェイス」というモデル要素は、UMLからSysMLに引き継がれたものである。SysMLでは、図13の例で示すようにブロック定義図を使って、その詳細を表現する。

インターフェイス定義 図13 インターフェイス定義

 図13では、集中管理室が変圧器を操作する際、目標電圧を設定することを示している。また、変圧器が集中管理室に対して、実際の出力電圧やタップ(巻線上の接続ポイント)の位置情報を通知することを示している。

 インターフェイスが持つサービスの仕様は、操作(Operation)として定義する。操作区画に記述する操作の書式については、連載第1回の「操作区画」を参照してほしい。

 インターフェイスは、ブロックが提供、または要求するサービスの「宣言」を表し、そのサービスの具体的な実現方法については定めない。インターフェイスに基づいてモデル化を行うことによって、「宣言」と「実装」を分離でき、部品(コンポーネント)の再利用や差し替えを助ける。



 今回は、ブロックやパートと外部との接続点の仕様を表現するためのモデル要素である、ポートとフローについて解説した。ポートは、ブロック定義図や内部ブロック図において、システムの構成要素間の“モノや情報などの流れ(フロー)”や構成要素が提供するサービスの仕様を表現する。ポートやフローを使って、システムエンジニアリングのさまざまな段階において、物理的、または論理的な部品間の接続関係をモデル化できる。

 本連載では、SysMLの構造図である、ブロック定義図や内部ブロック図について詳細にわたって解説した。これらの図を使うことで、システムエンジニアリングの一環の中でシステムの構造を詳細に仕様化することができる。一方、構造だけでなく要求や振る舞い、制約関係など、さまざまな側面からシステムを捉える上で、SysMLの他の図を活用していくことができる。このようなSysMLのさまざまな図について、詳しくは参考文献[4]を参照されたい。


参考文献:

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


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

東北大学 工学部 電気工学科を卒業後、沖電気工業、日本オラクルを経て、1998年より現職。オブジェクト指向やモデリング技術、アーキテクチャ構築技術を活用し、組み込みシステム開発現場の技術支援コンサルティング、プロセス構築支援やR&D支援を手掛ける。情報処理学会やUMTPで運営委員や審査員などの活動にも従事。

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

【 筆者紹介(2) 】
高橋 貴明(たかはし たかあき) 株式会社オージス総研

2004年オージス総研入社。FA機器、車載ECU、スマートデバイスなどの組み込み開発の現場に対し、モデルベース開発やプロセス改善などのコンサルティング支援を手掛ける。また、オブジェクト指向技術やヒューマンスキル系トレーニングのコンテンツ開発、インストラクターなどにも従事。


組み込みモデリング コーナー

組み込みモデリング コーナー

>>コーナーTOPはこちらから


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.