2012年05月07日

SysML 1.3の変更点

最近少しずつSysMLという名前を耳にする機会が増えてきています。オーストラリアSparx Systemsのコミュニティサイトで、SysMLの最新バージョンとなる1.3についての変更点の投稿がありました。

今回、投稿者の許可をいただき、この内容をご紹介します。 なお、直訳ではありません。内容に間違いがあれば、それは私(河野)の責任です。


SysML 1.3 β プレビュー

システムエンジニアリングに利用されるモデリング言語のSysMLの次のバージョンである1.3が6月に公開予定です。現在、ベータ版 (β2) がOMGのWebサイトに掲載されています。

SysML 1.3の仕様はまだ公開されていませんが、書籍“A Practical Guide to SysML”の第2版 (著者: S.Friedenthal, A.Moore・ R.Steiner (ISBN : 0123852064)) では、SysML1.3について記述されています。

SysML 1.3の主な変更点として、ポートが挙げられます。ポートは、ブロックが相互作用する点を明確にします。現在のバージョン (SysML 1.2) では、2種類のポートが定義されています。標準ポート (Standard Port) とフローポート (Flow Port) です。標準ポートは、要求インターフェースおよび提供インターフェースを通して、サービス指向のピアトゥピアの相互作用を記述するために利用します。フローポートは、ブロックから入出力されるアイテム(情報・項目)を記述するために利用します。

フローポートとポートの仕様はバージョン1.3には含まれません。しかし、その概念はそのまま残っています。SysML 1.3では、これらの内容の代わりに、新しい2つのポートが追加されます。完全ポート (Full Port) と代理ポート (Proxy Port) です。どちらも、呼び出す操作と結びつけることができますし、ブロックから入出力されるアイテムとも結びつけることができます。


完全ポート
 
完全ポートはブロックの境界に配置されるパートです。そのため、外部のブロックから利用することができます。このように、外部から利用されるパートはブロックの内側に表示せず、完全ポートとして表現します。

完全ポートのプロパティを定義するために、ブロックによって型定義されます。プロパティとは、呼び出す操作や、ブロックから入出力するアイテムです。完全ポートはSysML1.2のフローポートと標準ポートの両方を結合したものです。球とソケットの形をしたインターフェースの表現は不要になりました。

完全ポートはSysML 1.2のフローポートのように、アイテムの流れる方向を逆にするために共役にする (conjugate) こともできます。これは、操作についても同様の効果があります。つまり、提供される特性 (所有するブロックによって提供される) から、必要な特性 (その他のブロックによって提供される操作) に変更されます。

sysml13-full-ports


代理ポート
 
代理ポートは、対象の特性 (操作やアイテム) を実際に提供するポートへの全ての要求を送付する、代理あるいはプレースホルダーとして振る舞います。このポートはブロックだけでなく、内部のパートに配置される場合もあります。

代理ポートは特性を実装したり、ブロック内部のパートになったりすることはありません。
代理ポートは利用可能な特性を明示するために、インターフェースブロックによって型定義されます。

sysml13-proxy-ports


入れ子のポートとフロー

入れ子のポートと入れ子のフローは、ポート内に追加のポートを指定するために、SysML 1.3で導入されました。次の図では、ポートp1が2つのネストされたポートを保持しています。これにより、AC inおよびAudio outで直接外部のブロックと関連を持つことを表現しています。ネストされたポートを定義するには、ブロックが保持するポートを、ポートを持つ別のブロックによって型定義します。

sysml13-nested-ports


関連ブロック

関連ブロック (Association Block) もSysML 1.3で追加されました。関連ブロックは、異なるブロックとつながるポートが定義されている制約をすべて満たすことを確認するために、ポートの適合性を指定するために利用します。

関連ブロックは、2つのインターフェースブロックの間に作成されます。そして、関連ブロックを、2つの代理ポート間の接続に対する型として関連づけます。

sysml13-association-blocks


結論
 
SysML 1.3ではポートの概念が改訂されました。これにより、バージョン1.2と比較して、より完全に近いアプローチや定義が可能になります。例えば、あるブロックが、提供あるいは要求する操作があり、さらにアイテムの入出力も行われる場合に、ポートを重複させずにすむようになりました。

このアプローチは、システムの設計とモデリングを行う方法に大きな影響を与えるかもしれません。それは、インターフェースがポートによって公開されるものではないということになるからです。一方で、完全ポートの型定義にはブロックが利用されます。これは、インターフェースの実現あるいは利用となったり、ポートが操作を持ったりするということになります。

SysML 1.3が利用可能になった段階で、Sparx Systemsがどのようにこれらの新しい内容をEnterprise Architectに使いやすく実装するか、興味深いです。(例えば内部ブロック図において、ブロック内部のパートを完全ポートに変更できるようになるのか)

SysML 1.2のモデルをSysML 1.3のモデルに簡単に変換する機能があれば、有用でしょう。


○河野追記

上記の画像は、おそらく現状のEnterprise Architectの画像を元に作成したものかと思います。Enterprise ArchitectではSysML 1.3に対応する予定はありますが、現時点ではまだ対応版は利用できる状態ではありません。

内容について間違っている点・誤訳などがあれば、ぜひご指摘ください。


○元の文章

http://community.sparxsystems.com/news/120427/sysml-13-beta-preview 
 


トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔