Translate

2021/05/12

UCM (Unified Component Model for Distributed, Real-Time And Embedded Systems) のモデリング

引き続き 2021-06 RCP (Nightly) を評価中なのですが、モデルプロジェクトを作成する際に、
UCM
という単語が目に付きました。


はじめは「なんだろう?」と思っていたのですが、ふと、

Unified Component Model for Distributed, Real-Time And Embedded Systems

のことかもと思いプロジェクトを生成してみた所、どうもその様でした。

名前は聞いてはいましたが UCM という略語であることは認識していませんでした。そのような状況のため仕様詳細までは確認していません。コンポーネントベースのアーキテクチャモデルの1つという認識です。

その仕様は OMG によりまとめられており、


として以下のホームページで公開されています:


仕様書も同ホームページ上からダウンロード可能です。

本仕様の該当としては、上記ページに記載の通り、

This specification defines a Unified Component Model (UCM) as new component model targeting Distributed, RealTime and Embedded (DRTE) Systems. UCM aims to be a simple yet complete, lightweight, middleware-agnostic, and flexible component model.

なのですが、仕様書の「1. Specification Outline」に以下の説明がなされています:

The Unified Component Model (UCM) enables the design of software applications based on the use of components.
Software applications are designed as a set of interconnected components. These components typically correspond to the application business logic of a target solution. Components interact with each other through connectors. They are also associated with technical elements (named technical policies) that control their execution or provide services.
関係している組織としては、上記ホームページ上に記載の通り、


の模様ですが、最新の仕様 Version 1.2 の Copyright を見てみると、

Copyright © 2016-2017 PrismTech
Copyright © 2016-2019 Thales
Copyright © 2016-2020 Object Management Group, Inc.

となっており、主には Thales が主導しているのかなと考えています。

UCMについてほとんど詳細を知らないのですが、仕様書にある図:

を Papyrus 上でざっと作図してみました。

作成可能であるどの Diagram で、どのモデル要素の表示が可能を把握していないのですが、ざっくりとは UCM でモデル化を行うことが可能そうに思えます。

なお作成可能な Diagram としては以下がある模様です:

Papyrus としても、まだあまり情報が公開されていないのでは、と思っています。

また、UCM (Unified Component Model for Distributed, Real-Time And Embedded Systems) についても情報が少ないとの印象です。

今後も引き続きウォッチと調査を進めていこうかと思っています。

2021/05/10

SysML 1.6 での Requirement Extension

現在 2021-06 RCP Nightly を評価中です。先の通り、SysML 1.6 Profile にはダイアログ表示の問題があるみたいですが、先程、登録されている Profile リストを見ていて
SysML 1.6 Requirements Extension
というプロファイルがあることに気づきました。


これですね。

もしや、と思い、このプロファイルを追加して、SysML の Requirement に、新たに挿し込める Stereotype がないか確認してみました。


すばらしいです!

SysML 1.6 仕様書の Annex E.3 Requirements Diagram Extensions に記載された Additional Requirement Stereotypes が使えるようになっています。これらは要求として一般的なカテゴリとなる
  • functionalRequirement
  • interfaceRequirement
  • performanceRequirement
  • physicalRequirement
  • designConstraint
を表現するための Requirement のステレオタイプです。

前は使えてなかったと記憶していますが、違うかな? 前に使ってた頃に、

「これらのステレオタイプを使って要求をキャプチャしたいけど、自分のプロファイルでステレオタイプを定義すると将来的にオフィシャルにサポートされた場合に競合するし、そもそも、自身でプロファイル定義を行う際に多重となるステレオタイプ定義(SysML プロファイルを読み込んで、そのステレオタイプを再度ステレオタイプ拡張)がうまくいくかどうか、試したことないし」

と思って、自身での定義はやめていました。

早く正式に 2021-06 がリリースされ、同版で問題なく動作する SysML 1.6 が提供されることが、待ち遠しいです。

そろそろ RCP Nightly(2021-06)を使い始めてもいいかも

 Papyrus バージョン 5 (2020-12) 以降のリリースでは、APIの大きな刷新と諸々の修正のため、なかなか安定しない状況が続いているように思います。それらは、papyrusのGerrit などの状況でも伺いしれていました。また先の記事の通り、2021-03 以降の状況が少し不明瞭な状況もありました。

最近、RCPのページが改訂され、現在開発中の Papyrus が Weekly RCP として 2021-06 向け nightly として明示されました。


実際、バージョン5以降では、追加プラグインとなる Software Designer や SysML、Moka などのプラグインインストールでエラーがでる状況も続いていたのですが、最近、少し落ち着いてきたみたいです。

状況確認のため少し試してみた所、無事に各プラグインをインストール出来て動作していそうな感じです。

プラグイン導入で使用可能となる MARTE プロファイルをモデルに適用してみたのが以下の画像です。


2020-12以降は色々とツールエラーがあり、ここまでたどり着くのは大変だったのですが、現在の Weekly RCP では、このぐらいまではエラーもなくツール動作しています。なお、各追加プラグインは開発リポジトリ上にある lastSuccessfulBuild 版を使っています。


なお、まだ少し問題があるみたいで、SysML1.6 のダイアグラム作成が出来ない状況の様です。Papyrus上でダイアグラムを作成する方法は3つぐらいあるのですが、そのどれでもエラー(もしくは作成可能なダイアグラムの候補リストが表示されない)となります。

明示的にエラー表示がなされる welcome ページからのダイアグラム作成では以下のようになります。


所感としては後少しという感じでしょうか。

ただ、Weekly RCP (Nightly でもありますが)なので、適宜 update を行いながら、そろそろ使い始めても良いかなと思います。

また予定されている 2021-06 からバージョン5系の正式版として使い始めるのが良さそうかな、と思っています。

あともう少しですね。楽しみです。


2021/04/06

2021-03 nightly は 2021-06 ?

2021-03の状況をうかがいながらダウンロードサイトにある nightly ビルドを試してみました。

いつも通りにzipファイルをダウンロード・展開して、Java VM のパス設定を行った後、起動すると、いつも通りのスプラッシュ画面が。。。

んん?? なんか違和感を覚えます。。。

起動後、メニューから About Papyrus を表示させてみました。


やっぱり 2021-06 となっています。

もしかして 2021-03 はスキップされるんですかねぇ。

どうやら最新のオフィシャルとしては 2020-12 を考えておいた方が良いかもしれません。

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 でいくか。。。


2021/03/19

Papyrus 5.1.0 に向けての Eclipse 4.19 リリース

 Papyrus 5.0.0 リリース後、SysML等の Profile 系のinstallエラーの問題があったため、とりあえず状況がクリアになり落ち着くまで待とうかなと次のリリースを待っていました。

ようやくベースとなる 2021-03 の Eclipse 4.19 がリリースされました。

もう少ししたら Papyrus 5.1.0 もリリースされるのではと思います。実際、既に Eclipse Modeling Tools のプラグインとして入っているとは思いますが RCP版 まで待とうかと思います。

そのような状況なのですが Eclipse 4.19 のリリースノートを見てみると、ふと、以下の記述に気が付きました。

「Windows 10 users: Windows 10 Defender significantly slows down Eclipse, reason being Windows 10 Defender scanning the JAR files. The problem has been reported to Microsoft here. Until then, a workaround to this problem is to add Eclipse root directory to Windows 10 Defender's exclusion list, detailed steps are shared here.

Note: This is not just an Eclipse issue on Windows 10.」

Google翻訳に直訳させると以下です:

「Windows 10ユーザー:Windows 10 DefenderはEclipseの速度を大幅に低下させます。これは、Windows 10DefenderがJARファイルをスキャンするためです。 この問題は、ここでMicrosoftに報告されています。 それまでは、この問題の回避策は、EclipseルートディレクトリをWindows 10Defenderの除外リストに追加することです。詳細な手順はここで共有されます。

注:これは、Windows10でのEclipseの問題だけではありません。」

Windows10上で動作させる場合、少し面倒そうですね。

詳細な手順には以下と記載されています。

「Looks like Windows10 Settings are been re-shuffled. Below are the steps to add Eclipse root folder to "Exclusion list" for Windows 1903:

1. Open Windows 10 settings.

2. Search for "Virus & threat protection" and open it.

3. Now click on "Manage settings" under "Virus & threat protection settings" section.

4. Now click "Add or remove exclusions" under "Exclusions" section.

5. Now click "Add an exclusion" then select "Folder"

6. Point to Eclipse Root directory and press "Select Folder"

This adds Eclipse root directory to "Exclusion list" for Windows Defender and hope you see the performance improvements on lines with comment 19 observations.」

これも直訳させるとこんな感じです:

「Windows10の設定が再シャッフルされたようです。 以下は、EclipseルートフォルダーをWindows1903の「除外リスト」に追加する手順です。

1. Windows10の設定を開きます。

2.「ウイルスと脅威の保護」を検索して開きます。

3.次に、[ウイルスと脅威の保護設定]セクションの[設定の管理]をクリックします。

4.次に、[除外]セクションの下の[除外の追加または削除]をクリックします。

5.次に、[除外を追加]をクリックし、[フォルダ]を選択します

6. Eclipseルートディレクトリをポイントし、「フォルダの選択」を押します

これにより、EclipseルートディレクトリがWindows Defenderの「除外リスト」に追加され、コメント19の観察結果がある行でパフォーマンスが向上することを期待しています。」

対策ありなしで、どの程度の速度低下があるのか、また、確かめてみようかなと思います。


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
色々とリファクタリングもかけられるみたいなので、無事にリリース出来るといいなと思います。