Eclipse をベースとしたオープンソースのモデリングツールである Papyrus に関する blog です。 使い方や Eclipse の他プラグイン連携などの話題を徒然にアップしています。またMARTEやSysMLなどの UML Profileの扱い方や定義方法などにもふれています。
2021/05/18
2021-06 での SysML Diagram 表示に関する不具合の件
2021/05/10
SysML 1.6 での Requirement Extension
SysML 1.6 Requirements Extension
- functionalRequirement
- interfaceRequirement
- performanceRequirement
- physicalRequirement
- designConstraint
「これらのステレオタイプを使って要求をキャプチャしたいけど、自分のプロファイルでステレオタイプを定義すると将来的にオフィシャルにサポートされた場合に競合するし、そもそも、自身でプロファイル定義を行う際に多重となるステレオタイプ定義(SysML プロファイルを読み込んで、そのステレオタイプを再度ステレオタイプ拡張)がうまくいくかどうか、試したことないし」
2021/04/06
Papyrus 5.1 と SysML プロファイルについて(Community Forum から)
本日(4月6日)の時点で Papyrus 5.1 (2021-3)の RCP はまだリリースされていません。
どういう状況なのかなとは思っていますが、Community Forum に以下の投稿がありました。
Google翻訳で日本語化しています。
2021-4-1
こんにちは、
Papyrus5.0をSysml1.4と一緒にインストールすることは可能ですか?
私が見る限り、Sysml1.3.200はまだPapyrus5.0と互換性がありません。
そして、元のトピックから離れて、パピルスとCDOの統合のための公式のP2更新サイトはありますか? さまざまな投稿で見つけることができるp2は、Papryus5.0専用に構成された一種のナイトリービルドのようです。
その回答として以下が上がっていました。
2021-4-1
こんにちは、
SysML1.4の場合
https://ci.eclipse.org/papyrus/job/papyrus-sysml14-master/lastSuccessfulBuild/artifact/releng/org.eclipse.papyrus.sysml14.p2/target/repository/
およびSysML1.6の場合
https://ci.eclipse.org/papyrus/job/papyrus-sysml16-master/lastSuccessfulBuild/artifact/releng/org.eclipse.papyrus.sysml16.p2/target/repository/
が動作するはずです。 しかし、私は「公式」リリースを知りません。
上記へのコメントとして以下がありました。
2021-4-1
こんにちは、
現在、SysML14のリリースは予定されていません。
ただし、今後数週間でSysml16のリリースがあるはずです。 今のところ、Carstenが指摘する毎晩の更新サイトからインストールする必要があります。
上記から考えると、
- 関連プロファイルを含め Papyrus 5.1 はまだ調整中であり、リリースまでには数週間程度かかりそう。
- SysML1.4には対応しない。SysML 1.6 には対応予定。
が想定されますね。
今年度使用する Papyrus のバージョンをそろそろ決定しないといけないのですが、悩みどころですね。Papyrus 5.0 (2020-12)でいくか、Eclipse MDT での Papyrus 5.1 Plugin でいくか。。。
2020/12/18
Papyrus 5.0.0 リリース・・・前夜
Eclipse 2020-12 が今週の12月16日にリリースされました.
過日アナウンスされた通り Papyrus は 2020-09 をスキップし,メジャーバージョンアップとなる「Papyrus 5.0.0」の開発が2020-12 リリースにフォーカスして進められていました.
その現状を確認してみたいと思います.
Papyrusのwebサイト上では,特に動きはないです.
2020/06/14
UML+SysML としての使い方(2)
前回の記事「UML+SysML としての使い方(1)」の続きです。
前回は UML 上で、UML のモデル要素である Actor へ SysML の Stakeholder ステレオタイプを適用する例を説明しました。
そのやり方ですが、お気づきかとは思いますが、
「Stakeholderステレオタイプが Actor に適用可能であることを知っている」ことが前提となります。この例ではUML定義およびSysML定義上での、
- Stakeholder は Classifier を拡張している
- Actor の親クラスは BehavioredClassifier で、その親クラスが Classifier である
に基づきステレオタイプ適用可能の判断で進めています。
Actorの場合はダイアグラム上の見た目から判断して、実際 Stakeholder ステレオタイプが適用できることから特に疑問もなく作業を進められるかもしれません。
要素によってはステレオタイプが適用できるUML要素が何かを探し回る形となるやもしれません。
例えば、
SysML の Satisfy を適用出来るエッジは Dependency ではなく Abstraction である等は少し混乱が出るかなと思います。
今回の記事では、そのような事前知識を持たなくても、UML上で SysML のモデル要素を使うための方法を説明します。
Papyrusでは、ModelExplorer 上の最上位のモデルに SysML プロファイルを適用すると、ModelExplorer 上で SysML のモデル要素を直接作成可能なメニューが表示されるようになります。このメニューを使うのが、手っ取り早いです。
以下で 「要求と、その要求を満足するブロック」 を 「UMLのクラス図」 上で作成する方法と例として説明します。
今 ModelExplorer 上で、パッケージ「Requirements」がモデル直下にあり、そこに Requirement という名前のクラス図があるとします。
この Requirements パッケージ下に SysML の Requirement モデルを作成します。
ModelExplorer 上のパッケージ Requirements を選択し、マウス右クリックから
SysML 1.6 Child > Requirementを選択します。
続いて、同じく Requirements パッケージ下に SysML の Block モデルを作成します。
操作としては同様に、
SysML 1.6 Child > Blockを選択します。
- In Braces
- In Comment
- In Compartment
Properties > Appearance
![]() |
| In Braces を選択した場合 |
![]() |
| In Comment を選択した場合 |
![]() |
| In Compartment を選択した場合 |
SysML 1.6 Relationship > Satisfy
Target Element Selection
この Satisfy を ModelExplorer 上からクラス図上に Drag & Drop することで、無事、所望の関係がダイアグラム上で表示されます。
satisfiedBy プロパティ
Block (今回の例では名称がBlock2)
他のSysMLプロファイルではメニューが追加表示されるため、 UML 上で SysML のブロック要素を直接メニュー操作から作成し、ダイアグラム上で描画することが可能となります。
残念ながら、SysMLの各種ダイアグラムは扱えないのですが、UMLベースで一部SysML要素を使いたい場合には、このやり方が楽だと考えています。
2020/06/11
UML+SysML としての使い方(1)
「UML + SysMLとなるモデル化」とは、UMLとSysMLの関係を示す下記のFigure 4-1 (SysML仕様書から抜粋)において、両集合の和となるようなUMLとSysMLの要素をシームレスに扱いたいという場合です。
![]() |
| Figure 4-1: Overview of SysML/UML Interrelationship |
また逆に、システムエンジニアリング→ソフトウェアエンジニアリングとして進める場合で考えるとUMLモデル側にSysMLモデルをImportして使うとして同様に進めれば「UML+SysML」は扱えます。
ただ、別モデルファイルであるため扱いづらいですし、Papyrus上でモデル切り替えを行う際に操作系としてのタイムラグが発生するので切り替え頻度が高い場合はフラストレーションもたまります。
なお、自分が「UML+SysML」として扱いたいケースは、
- SysMLでシステム設計を行った後の設計対象がソフトウェアであるため、その先の関係者が扱う「通常のUML」にシームレスに繋げて、UMLとして機能内容等をブレークダウンしていきたい。
- (同じく主体がソフトウェアであるため)UMLを主として、そこにSysMLの「Stakeholder、View、Viewpoint」や「Requirement」のみを上位側の概念として使いたい。
です。特に後者の方が多いです。
昔のPapyrusでは、「UML+SysML」としての混在が楽だったのですが、現在の「Architecture Context」を明示的に指定する方法(最初にモデルを作る時に Software Engineering か System Engineering かを選択)になってからは対応しづらくなりました。
もちろん、現在の方が利点も多いですし、そもそも別れている世界だと考えると問題はありませんし、SysML側で再定義されたモデル要素をUML/SysMLのどちらの意味で扱うのか等の問題も存在していますが、それでも「UML+SysML」として使いたいケースも多いです。
今回はそのやり方について紹介したいと思います。
なお今回のやり方は「UMLをベースとしてモデルやダイアグラムを扱い、そこに一部のSysML要素を使いたい」の例となります。
まず、UMLのプロジェクト/モデルを作成します。
作成したモデルの最上位を Model Explorer 上で選択し、PropertiesタブのProfileを開きます。
このProfileパネルの右上にある「Apply registered profile」と表示されるボタンである
をクリックします。
すると「Apply profiles from Papyrus repository」となるダイアログが上がってくるので、そこで
SysML 1.6を選択して[OK]を押します。
すると
Choose profile(s) to applyというダイアログが上がってきます。ここで任意のプロファイルを選択します。自分は全てを選択して使っています。
これでUMLモデル上で SysML プロファイルを扱うことが出来るようになりました。
それではUMLモデル上でSysMLの「Stakeholder」を使用してみたいと思います。
まず「Actor」を作成します。
Actorを直接的に扱えるダイアグラムは「UseCase」のためユースケース図で作成してみます。
自分は ModelExplorer 上で直接モデルを作成することが多いですが、Actorの線画アイコンがそのまま表示されるユースケース図を使って進めようと思います。
通常のモデル作成操作(NodesからActorを選択して作成)を行います。
これで名前が「StakeholderA」となるUMLのActorが作成されました。
ここでActorのProfileパネルを開きます(Propertiesタブ→Profile)。
Applied stereotypesで前と同じく [+] ボタンをクリックします。
左側の「Applicable Stereotypes」上に
Stakeholderが現れるので、ダイアログ中央の[⇒]ボタンを使って、右側に移動します。
これで[OK]を押すと、Actorに「SysMLのStakeholderステレオタイプ」が適用され、ユースケース図上ではステレオタイプ名となる <<Stakeholder>> が適用されます。
また Profileパネルの Applied stereotypes の所で、Stakeholder ステレオタイプが持つプロパティである
concernのプロパティが扱えるようになったことが分かります。
「Stakeholder」を作成したので「関心事」(concern)を規定して行きたいと思います。
上記図から見て取れる様に「concernList」としてCommentを複数登録可能です。
concernListをマウスで選択し、ここでも同じく右上の[+]ボタンをクリックします。
するとconcernListに関するダイアログが表示されます。
既にCommentとして作成されている concern があれば、それを左側で選択し右側に[⇒]で移動すれば選択出来ますが、まだ存在(作成)していない場合には、ダイアログ右端中央にある[+]ボタンをクリックします。
すると「Create a new Comment」というダイアログが上がってきます。
まず、Comment要素を保持する Container を指定する所から始めます。
Container: の所にある […] ボタンをクリックします。
すると作成するCommentを持つモデル要素を選択出来るので、適切なコンテナを指定します。
ここでは作成した「StakeholderA」をコンテナとして指定して進めます。
[OK]ボタンを押すと以下のダイアログの様に選択されるので [OK] ボタンを押します。
この後、通常の Comment 作成用のダイアログが上がってくるのですが、そこでの入力操作については割愛します(キャプチャし忘れました…)。
今回は、そのコメント内容(body)を
「継続してサービスが提供出来る仕組みか」として作成しました(内容は雰囲気で適当に書きました)。
これでOKを押します。
これにより基本的には
- Stakeholderステレオタイプが作成され、
- そのStakeholderの関心事がモデルとして規定された
となるのですが、残念ながらダイアグラム上での見た目は変わりません。
ダイアグラム上で表示として見せるためには、もう少しだけ手間が必要です。
StakeholderAのPropertiesタブのAppearanceパネルを開きます。
その中央ぐらいにある
Stereotype displayの表で諸々の指定を行うことで表示をコントロールできます。
この表のStakeholder行とIn Comment列が交差するセルのチェックボックをチェックすると、
と無事に関心事がStakeholderにリンクされたコメントとして表示されました。
このモデルはUMLベースであるため、画面のダイアグラム操作系からも見て取れるように、他の関係するモデルとして通常のUMLが扱えます。
このようにしてUML上でSysML要素を扱うことが可能です。
なお、幾つか追加で説明しておきたい話や注意点がありますので、それについては次の記事に書こうかと思います。
2020/06/10
SysML 1.6 でのモデリング
検索サイトから来訪される方でも SysML をキーワードとして検索され、このブログにたどり着かれている方も多い様に思えます。
前に書いた記事「SysML 1.6 プロファイルのリリース」ではSysML 1.6 Profile の簡単な紹介をしていますが、SysMLで実際にモデルを書いてみたいという方に対して少し丁寧にご紹介したいと思います。特に Papyrus RCP 版を使用されておられる方だと
「どうやって SysML Profile を導入するの?」という所から困る方もおられるかもしれません。過去の記事には色々と書いていますが、SysML 1.6 でのモデリングという観点でこの記事でまとめてみます。
SysML Profile の導入がわからない方
Papyrus RCP 版を使っておられる方からすると、そもそも SysML のプロファイルを導入する所から不明なことがあるかもしれません。導入の仕方は幾つかあるのですが、今後も含め様々なプラグイン導入による利便性を向上させる手段として、
Marketplaceから導入する方法をご紹介したいと思います。
Marketplace とは、有償・無償を含めて Eclipse Project 下で直接開発しているプラグイン以外のプラグインをEclipseに導入可能とするプラグインです。Marketplace プラグインを導入すると「Help」からのドロップダウン上に
Eclipse Marketplace...というメニューアイテムが現れます。
Papyrus RCP 版の初期状態では Eclipse Marketplace はメニュー上に存在しません。この Marketplace を導入するためには、まず、上記ドロップダウン上にある
Install New Software...から始めます。
Install New Software を選択すると、
Installという名前のダイアログが上がってくるので、そこで
- Work with: で 2020-03 - http://download.eclipse.org/staging/2020-03/ を選択
- type filter text と書かれている所に Market とでも入力
すると、以下の様に
Marketplace Clientが選択されるので、それをチェックし、Next> で進みインストールを行います。
その後、再起動が促され、再起動後にHelp メニューから Marketplace が選択可能となります。
Eclipse Marketplace からの SysML プロファイルの導入
Marketplace を開くと各種プラグインを検索出来るダイアログが上がってくるので、ここでFindの所に
papyrus
と入力し、[Go]ボタンを押すと、Papyrus に関連する様々な導入可能プラグインが表示されます。
これで SysML プロファイル(SysML の Papyrus 向けプラグイン)である
Papyrus SysML 1.6 1.0.0を見つけることが出来ます。
そして「Papyrus SysML 1.6 1.0.0」にある [Install] ボタンを押すとプロファイルがインストールされます。
なお上記のダイアログ表示では、現在使用中の環境では既にインストール済であるため [Installed] と表示されています。
これで SysML モデルの作成が可能となります。
SysML モデルの作成
SysML プロファイル(Papyrus 向けプラグイン)を導入すると、これまでの Papyrus プロジェクト/ Papyrus モデルの作成ダイアログにおいて- Systems Engineering
- SysML 1.6
が選択可能となります。
SysML 1.6 をチェックしてモデルプロジェクト/モデルファイルを作成すると、Papyrus 上で SysMLのダイアグラムやモデル化要素を用いたモデル化が可能となります。
SysML 1.6 モデルでのツール操作系(俯瞰)
Papyrus のメニュー等における操作系がざっとどのようになっているかを紹介しておこうと思います。自分は Model Explorer の所からダイアグラム作成やモデル作成を行うことが多いので、Model Explorer 上のマウス右クリックで表示されるメニューを紹介します。
まずモデル化要素の選択としては、
- SysML 1.6 Child
- UML for SysML 1.6
の2つに別れて表示されます。前者は SysML で新たに導入された要素(ステレオタイプ)、後者は SysML仕様書上で「UML4SysML」と称されている UML から SysML に直接導入された要素となります。
まず SysML 1.6 Child はいわゆる「Node」ですが、以下の要素が選択可能です。SysMLとして良く目にする要素が並んでいます。
SysML 1.6 Relationship はいわゆる「Edge」ですが、以下の要素が選択可能です。
UML for SysML 1.6 では以下の要素が表示されます。どのような要素が「UML4SysML」として使用可能であるかは SysML仕様書で説明されています。
UML for SysML 1.6 (Node です)
UML for SysML 1.6 Edges (Edgeです)
また、SysML に特化したダイアグラムは、
New Diagramのメニューから表示されます。これも SysML でよく見るダイアグラムが並んでいます。
また
New Tableのメニューから SysML でモデル化を行う際に有用な「表」が作成可能です。SysMLの仕様書を見ると表形式も積極的に推奨されているような印象を受けます。
ざっと、そのような感じです。
UML自体をその記述のベース言語とする一般的なUMLプロファイルよりは、専用モデリング言語として特化した操作系として各種モデル作成が行えるようになっています。
SysML 向け Papyrus となる細かな使い方やTips、また和集合として 「SysML OR UML」 となる使い方については、またご紹介出来ればと思っています。





















































