Translate

2020/12/26

Papyrus 5.0.0 リリース

実は前回の投稿の翌日に Papyrus 5.0.0 のリリースアナウンスがありました :-)

何をもってリリースとするのかは難しいですが,オフィシャルサイトでのアナウンスがあり,RCP版が出たということでリリースと考えています.

とりあえず前の記事を書く際に作成したワークスペースをオープンしてみました.

こんな感じで普通に使えています.

About ダイアログを表示させてみると,こんな感じです.

Eclipseが 4.18 ベースなので,バージョン表記が少し紛らわしいですね.

ただ,UMLプロファイルに関するプラグインの導入は,まだ少し難ありな感じです.

例えば MarketPlace から SysML 1.4 プロファイルを導入しようとすると以下の様なエラー表示が出ます.

同じく MarketPlace から Software Designer をインストールしようとすると以下の様なエラー表示が出ます.

もう少しだけ様子を見てみた方が良さそうですね.

なお SysML 1.4 プロファイルのページに 2020-12 で動作している様子を示す画像がアップされています.

またそのタイムスタンプが

Thursday, December 24, 2020 - 22:14

となっています.

5.0.0 のアナウンスが公開されたのが 12月19日で,上記画像が 12月24日ということで,感じとしては年内を目処に一通り整合をとったリリースとして進められているのでしょうか.

また年末頃に確認してみようかなと思っています.


2020/12/18

Papyrus 5.0.0 リリース・・・前夜

 Eclipse 2020-12 が今週の12月16日にリリースされました.

過日アナウンスされた通り Papyrus は 2020-09 をスキップし,メジャーバージョンアップとなる「Papyrus 5.0.0」の開発が2020-12 リリースにフォーカスして進められていました.


その現状を確認してみたいと思います.

Papyrusのwebサイト上では,特に動きはないです.


ダウンロードサイトでも RCP のリリースもされていないですね.


とはいえ Eclipse 2020-12 がリリースされ,Eclipse Modeling Tools 2020-12 もリリースされています.

Papyrus は Eclipse の開発プロジェクトでは MDT (Model Development Tools)の1つに位置づけられているので,リリース状況が気になる所です.

少し確認してみるか,ということで,Eclipse Modeling Tools 2020-12 をダウンロードして確認してました.

Eclipse Modeling Tools 2020-12 は普通に起動したので,メニューの Help > About Eclipse IDE を見てみました.


Papyrus Plug-in がプレインストールされている場合は,ここに Papyrus のアイコンが表示されるのですが,ないということはプレインストールはされていないということですね.

次に Help > Install New Software ... で 2020-12 のリポジトリを確認してみました.


お! Papyrus 5.0.0 がありますね.タイムスタンプを見ると 12/09 版,リリースの一週間前の版ですね.

とりあえず,入れてみようと思います.


プラグインの構成はこのようになっていますね.ちなみに 2020-06 の時点での構成は以下です.


プラグインの構成は同じようですね.確かにトップのバージョンは 4.8 から 5.0 に変わっていますが,他のバージョンが変わっていないことが少し気になります.下位モジュールは変わっていないまま,メジャーバージョンアップが進んだということでしょうか.

とはいえ,無事にインストールは進み,Papyrus 5.0.0 が使用可能となりました.
インストール直後の About Eclipse IDE の画面です.Papyrus のアイコンが表示されています.


少し使ってみました.


見た目や操作系が大きく変わった感じはないですね.普通に使えます.
印象としては,前よりも少し軽くなった感じがします.
最近は少し重たくなってきた印象があったので,ありがたいですね.

関連した Profile 系のモジュールはどうでしょうか.SysML とか MARTE とかです.

Market Place から SysML を入れてみたいと思います.


うーん,エラーとなりました.

別途 MARTE を含む Software Designer も試してみたのですが,こちらでもエラーが表示されました.

主となるプラグインはある程度出来ている模様で,あと少しといった所でしょうか.

もう少しだけ,正式なリリースアナウンスを待った方が良さそうです.













2020/09/17

Eclipse 2020-09 で Papyrus が正常動作しない

この度、定例の「Eclipse 2020-09」がリリースされました。


通常であれば、このリリースに合わせた Papyrus に移行する所ですが、過日に記事にした通り、2020-09はスキップし、2020-12となる Papyrus 5.0 に注力するみたいです(記事:Papyrus 2020-06 (4.8.0) のリリースと次リリースの 5.0.0 について)。

オフィシャルにはそうですが、Eclipse 2020-09 でも Papyrus プラグインは導入出来そうです。入手した Eclipse IDE for C/C++ Developers 2020-09 に Papyrus プラグインを Install New Software メニューからインストールしてみましたが、特に問題なくインストールされ、 About Eclipse IDE ダイアログ上でも Papyrus がインストールされたことが示されています(下記ダイアログ下側にある右から5番目のアイコンが Papyrus プラグインを示しています。なお右から2番目のアイコンは合わせて導入した SysML 1.6 Profile for Papyrus を示してます)。


Papyrus プラグインのインストールが問題なかったため、問題なく使えるのかなと思い、Papyrus の新規プロジェクトを作成しました。プロジェクト自体は問題なく作成できたかのように思えましたが、モデルファイルを開く所でエラーとなりました(下記の図)。


org.eclipse.ui.internal.misc.StringMatcher でエラーが発生したとのことで、ModelExplorer 上でモデル要素が何も表示されないまま先に進めません。

もしかしたら今後のアップデートで解決される可能性はあるかもしれませんが、その保証もないためツール環境のゴタゴタで手を煩わせたくない場合には、2020-06 を使い続けて、おとなしく 2020-12 を待つのが得策かと思われます。

2020/07/14

Eclipse MDT/UML2モデルのPapyrusでの読み込み確認

このブログでも前から書いている内容ではありますが、Papyrus は Eclipse の EMF (Eclipse Modeling Framework)ベースの UML2 モジュールに基づいて構成されています。

この UML2 モジュールは Eclipse のプロジェクトカテゴリとしては「MDT」(Model Development Tools) に属しており、そのプロジェクトのURLは以下になっています:
MDT/UML2
https://wiki.eclipse.org/MDT/UML2
なおこのサイトに「List of UML2-compatible UML Tools」という情報が掲載されています。UMLツールとして良く聞く「Enterprise Architect」や「IBM RSM/RSA」、「MagicDraw」などの間でUML2モデルとしてのコンパチビリティがリスト化されています。
MDT-UML2-Tool-Compatibility
https://wiki.eclipse.org/MDT-UML2-Tool-Compatibility

さて、前々から
「Eclipse の UML2 モジュールで作成されたモデルは、どの程度、問題なく Papyrus に取り込み出来て、どの程度、問題なく図として再現できるのか」
が気になっており、今回、少し試してみました。

サンプルとしては、Papyrus の新規ファイル作成で「Examples」から生成可能な
「UML2 Example Projects」
→「Getting Started with UML2」
プロジェクト中にある「ExtendedPO2.uml」を用いました。

同プロジェクトは File→New→Other から以下で生成できます。


生成されたプロジェクトの名前は
org.eclipse.uml2.examples.gettingstarted
となっています。

同プロジェクトは、MDT/UML2のJavaクラスライブラリを用いてJavaコードから「UMLモデル」(XMI)を生成するためのサンプルコードプロジェクトで、そのコードを実行して出来たファイルが
ExtendedPO2.uml
となります。

またプロジェクトフォルダ内に同モデルのpngファイルが置かれています。どのツールにより図を生成したのかは分かりませんが、以下の図となっています。


この「ExtendedPO2.uml」を Papyrus のプロジェクトに Import し、Papyrus のクラス図で表示してみました。

その結果図が以下です。

Papyrusでモデルインポートする際にエラーも出ませんでしたし、図としても十分再現されています。

簡単な例ではありますが、MDT/UML2のモデルは Papyrus 上で問題なく扱えそうです。
ある部分、当たり前かもしれませんが、確認できました。

これにより、MDT/UML2のExampleプロジェクトのサンプルコードから見て取れる
JavaプログラムからUML2のPapyrusモデルの生成
までが繋げられそうです。

PapyrusやMDT/UML2の関連ツールで出来ることも多いですが、モデル生成の意味では、この MDT/UML2 モデルの直接生成も使えそうな手段に思えます。

2020/07/10

モデルの画像によるデコレーション

Tipsです。

Papyrus/UMLで特定ドメインのモデル化を行っている際に、そのモデル化対象を端的に示す「シンボルマーク」をUMLのモデル要素にデコレーションして、ダイアログ上で表示したい場合があります。

通常のPapyrus(実際にはEclipseのEMF/UML2だと思いますが)の「モデルアイコン」は表示/非表示の指定は可能ですが、そのような一般的なアイコンではなく、ユーザ独自のマークです。

例えば、このような表示です(クラス図上でのクラス表記)。

 

Papyrusでは、そのデコレーション手段がサポートされています。

まず最初に PapyrusInternal というプロファイルをモデルに適用します。通常のプロファイル適用操作(Apply registered profile)により表示されるダイアログ上で「Papyrus Internal」と表示されているプロファイルとなります。


このプロファイルですね。

説明にも
Profile that provides annotations for the tool itself (Decorations, etc.)
と記載されています。

このプロファイルを適用すると、例えばクラス図上で作成したクラスに対して、以下の様な
「TypeSymbolDefinition」
というステレオタイプが適用可能となります。


このステレオタイプを適用した直後は以下のような表示となります。


基本的には、この「symbolPath」にシンボルマークの画像ファイルを指定することで、デコレーション表示が可能となります。

どのようにファイルを指定するか、またどのようなパス名で指定するかですが、一番楽なのが、一旦同ダイアログを非表示として、再度表示すれば、プロパティの所に
Symbol
という選択肢が現れますので、そこから指定するのが楽です。
以下がダイアグラムの再表示を行った後のプロパティのメニューですが、左側の「Comments」と「Profile」の間に「Symbol」が現れてるのが分かります。


この「Symbol」を選択すると、
[Browse] または [Browse workspace]
としてファイルが選択可能であることが分かります。


前者がファイルシステムから、後者が Papyrus (Eclipse) で開いているワークスペースから、となります。

とりあえず同じプロジェクト下のフォルダに画像ファイルが置いてあるとして、それを指定してみます。



[Browse workspace] からワークスペース内のファイルを指定すると
platform:/resource/...
というファイル指定方法となります。

で、はい、これだけでは何も表示は変わりません笑。

その後、表示の細かな指定を行います。

「Properties」の「Appearance」を開き、「Shape Decoration」と書かれた所までスクロールします。


ここ(Shape Decoration)の

  • Visible を true に
  • Position で表示位置を選択

すると、モデル上の指定位置にアイコン表示がなされます。


このような感じになります。

 ≪TypeSymbolDefinition≫ というステレオタイプ名表示が重なって見づらい場合には、同じくAppearance の少し下にある「Stereotype display」の「 Visible 」のチェックをはずします。


これで見やすくなりました。

これが一つの例ですが、このような奥ゆかしい表示ではなく、例えばコンテキスト図を作成し、そこに大きくシンボルマークとして表示したいケースもあるかと思います。

その場合は「Appearance」ではなく、対象のモデルをマウスで選択しマウス右クリックで表示される
「Filters」メニュー
から操作する表示方法があります(以下の説明では一旦「Shape Decoration」の「Visible」を「false」に戻しています)。


「Show/Hide Compartments」で「Symbol」を選択します。


すると、以下の表示に変わります。


うまく使い分けると各ダイアグラムでより分かりやすいモデル図が作成できると思います。

なお画像のファイル形式として svg と png は表示できることを確認しています。他はまだ試していません。

2020/06/23

Papyrus 2020-06 (4.8.0) のリリースと次リリースの 5.0.0 について

Papyrus 2020-06 がリリースされました:
Eclipse Papyrus 4.8.0
今回の変更点は主には、
  • Table editor:
    • management of empty row
    • performance improvement
  • State diagrams:
    • fix creation of regions
  • Activity diagrams
    • improve reactivity during creation of a link between nodes
みたいです。詳細は Issues のページに記載されています。積み残した(unresolvedな)不具合も、それなりにあるみたいですね。

このリリースと共に次のメジャーバージョンアップである 5.0.0 についてもアナウンスがありました:
[mdt-papyrus.dev] New major Release Papyrus 5.0 for 2020.12 release train
どうもメジャーリリースである 5.0.0 (2020.12) に専念するために 2020.09 はスキップするみたいですね。

作業内容については以下のページで紹介されるみたいです:
Papyrus/2020.12 Work Description
色々とリファクタリングもかけられるみたいなので、無事にリリース出来るといいなと思います。


2020/06/22

Ubuntu 18.04 から 20.04 にアップグレードした際のデスクトップショートカット

これまでメイン開発マシンとして Ubuntu 18.04 LTS を使ってきたのですが、新たな LTS である 20.04 がリリースされたため、今回、システムアップグレードを行いました。

Ubuntu 18.04 LTS から Ubuntu 20.04 LTS への移行は特に問題なく行えたのですが、これまで作成してきたデスクトップショートカットが起動出来なくなりました。

18.04 でのデスクトップショートカットは、記事

Ubuntu 18.04/Gnome での Papyrus ショートカット

で紹介したやり方で作成していたのですが、そのショートカットアイコンが


という見た目に全て変わってしまいました。

さてと思いつつ、見た目のアイコンも歯車の様になってますし、拡張子 ".desktop" はショットカットを作成した直後の見え方ではありますので、大きな変更とはなってなさそうに思えます。

少し調べてみますと、どうやらマウス右クリックで表示されるメニュー上で

起動を許可する

選択するみたいです。



これを全てのショートカットに対して実行すると、無事に元のショートカットアイコンに戻り、起動できるようになりました。




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 の Requirement のモデルが作成されます。

続いて、同じく Requirements パッケージ下に SysML の Block モデルを作成します。

操作としては同様に、
SysML 1.6 Child > Block
を選択します。


このようにして ModelExplorer 上で作成された Requirement と Block のモデルをマウスで選択し、クラス図 Requirement 上に Drag & Drop すると、両モデルが描画されます。



ちなみに Requirement ステレオタイプのプロパティの表示方法は
  • In Braces
  • In Comment
  • In Compartment

の3種類があります。

前の記事の Stakeholder では「In Comment」を選びましたが、クラス系のステレオタイプでは、この3種類から所望する表示を選択可能です。

この3種類の見え方の違いを以下に示します。

選択・切り替え操作は Stakeholder の時と同様に、
Properties > Appearance
から行います。

In Braces を選択した場合

In Comment を選択した場合

In Compartment を選択した場合
よく使うのは「In Compartment」か「In Comment」です。「In Braces」は、あまり使うことがないです。

次に、作成した Block が Requirement の Satisfy となる関係をモデル化しようと思います。

このような2つの要素間の関係を ModelExplorer 上で作成するためには、その「From」「To」の「From」となるモデル側を選択して行います。

今回では「Block」を選択し、マウス右クリックで
SysML 1.6 Relationship > Satisfy
を選択します。


すると「To」を選択するための
Target Element Selection
というタイトルのダイアログが表示されます。

ここでターゲットとなる Requirement を選択します。


これで、Block から Requirement に対する Satisfy モデルが ModelExplorer 上で生成されます。


この Satisfy を ModelExplorer 上からクラス図上に Drag & Drop することで、無事、所望の関係がダイアグラム上で表示されます。


Requirement ステレオタイプの Properties > Profile や、クラス図上の描画を見ると、無事に
satisfiedBy プロパティ
Block (今回の例では名称がBlock2)
が設定されていることが分かります。


他のSysMLプロファイルではメニューが追加表示されるため、 UML 上で SysML のブロック要素を直接メニュー操作から作成し、ダイアグラム上で描画することが可能となります。

残念ながら、SysMLの各種ダイアグラムは扱えないのですが、UMLベースで一部SysML要素を使いたい場合には、このやり方が楽だと考えています。