Translate

2018/12/05

Papyrus 2018-12 まであと2週間

最近,記事の投稿がおろそかになっています.
書きかけの記事は結構たまっているのですが,なかなか推敲が進みません.

少し気分をかえて,今月に予定されている次のリリースについてです.
次のリリース Papyrus 2018-12 は 12月19日に予定されています.
より詳しく言うとアメリカ東部時間での 12/19 10:00 でして,日本時間に換算すると確か14時間差なので 12/19 24:00,ようは 12/20 0:00 でしょうか.

なお上記日時は正確には Eclipse-2018-12 のリリース日なので,もしかしたら Papyrus 単体,特に RCP としての正式リリースは少し遅れるかもしれませんね.
Eclipse-2018-12のリリーススケジュールはここから確認できます.

最新の Weekly Problem Digest for Papyrus を見ると,大幅に Problem が減ってきているので,Papyrus-2018-12 リリースに向けて大きく対応がなされていると思います.

リリースが楽しみです.


2018/11/07

Model パッケージ

Papyrus でモデルファイルを作成し,そのモデルファイルをソフトウェアリポジトリ上で管理する場合,そのモデル記述は Papyrus プロジェクトフォルダ (Eclipse プロジェクトフォルダ)下の独立した3つのファイル:

  • .di
  • .notation
  • .uml

として保存されます.

これらは UML の仕様と同じく OMG で規定されたモデル記述やダイアグラム記述のファイルフォーマットであり,内部的には XML 形式のファイルです.

これらのファイル形式(仕様としては XMI 等)については,また記事をかければと思っていますが,全てテキストとして解釈可能なテキストファイル形式でありソフトウェアリポジトリ管理ツールと相性がいいです.

そのため,モデルの流用や再利用等を考え出すと,開発対象のモデルをどのようにモデルファイル管理に分割し,また,どのようにリポジトリ管理ツール上で連携させるかが重要になってくると思います.
理由は,そのファイル単位が独立して作成・修正またメンテナンスをする単位となるからです.

その整理(何かしらのカテゴライズかと思いますが)の仕方として何がよいかはまだ調べ切れていませんが,個人的には図書分類法が何かしらのヒントになるのでは,と思っています.

話しを戻すと,そのようにモデルファイル管理を考えた場合に,Papyrus で作成するモデルのトップが何になるか,というのが気になってきます.ようはその単位でモデルを作成していくことになるのですから.

Model Explorer で見た場合にルートになるノードで,アイコン表示としては通常のパッケージ要素の中に三角形が記載されたような図です(下図で Test と記載されている所).

これは UML のモデル要素における Model という名前のモデル要素になります.分かりづらいですが.
UMLにおける Model はパッケージであり,UML2.5.1 の仕様書では下記の抽象文法で定義されています:

そのため通常のパッケージと同じような扱いは出来ますが,そのプロパティとして文字列型の viewpoint なるものがあったりします.

UML仕様書上で Model に関する説明を見つけるのは,pdfをModelで検索してもひっかかるものが多いため難しいですが,UML 2.5.1 では
12.2.3.11 Model
に記載があります.

その内容は以下です.ほぼ直訳ですが,その説明にも色々な示唆が含まれています.UMLの仕様書はそれ自身,とても良い読み物だと個人的には思います.

  • モデルとはシステムの記述です.ここで「システム」とは最も広い意味をさしており,ソフトウェアやハードウェアだけでなく組織やプロセスも含まれます.
  • あるカテゴリのステークホルダー(例えばシステムの設計者,ユーザー,または顧客)による特定の視点(または観点)から,ある抽象レベルでシステムを記述します.
  • モデルは,その目的に関連する(すなわち,与えられた抽象化レベルおよび視点レベル内の)様相のみがモデルに表されますが,システム全体をカバーするという意味で完全です.
  • パッケージとして,モデルには,モデル化されるシステムを一緒に記述するメンバーのセットがあります.
  • これらの要素の構成は,使用されるモデリング方法によって異なります.
  • 1つのアプローチは,最上位のパッケージ/コンポーネントがシステムの境界を表すような,1つ以上のコンポジション階層であるものです.
  • モデルには,システムの環境の関連部分を記述する要素も含まれます.
  • 通常,環境はアクタとそのインタフェースによってモデル化されます.
  • これらはシステムの外部にあるため,パッケージ/コンポーネント階層の外側に存在します. 
  • それらは別のパッケージで収集されるか,またはpackagedElementsとしてモデルによって直接所有されることがあります. 
  • 同じシステムに対して異なるモデルを定義することができます. 異なるモデルは,通常,異なるシステム関係者の見通し(視点)から補完され定義されます. 
  • モデルの構成において,コンテナモデルは,含まれるモデルによって定義される異なるビューによって与えられるシステムの包括的なビューを表します. 
  • モデルは抽象化の依存関係を持つことができます:洗練(標準プロファイルの«Refine»によりステレオタイプ化)またはマッピング(例えば標準プロファイルの«Trace»でステレオタイプ化). 
  • これらは,通常,モデルに含まれる要素間の依存関係によってより詳細に表現されます. 
  • 異なるモデルの要素間の関係は,一般に,各モデルが完全であるため,モデルの内容に直接影響を与えません. 
  • ただしこれらは,詳細をトレースしたり,モデル間の相互参照を追跡したりするのに便利です. 


なお前の記事でも紹介したかと思いますが,Papyrus は UML の言語仕様にとても忠実で,仕様として規定されているものはだいたい記述可能です.今回の Model における viewpoint のように使用頻度が少ないものは通常のPropertiesメニューには現れませんが,その Advanced の所で入力できることが多いです.今回の Model においても,viewpoint は Advanced の所で入力可能です.



2018/11/04

Papyrus/Eclipse の Simultaneous Release

以下の投稿から:
[mdt-papyrus.dev] Oomph Setup for New Release Cadence

Papyrus は Eclipse の 同時配信(Simultaneous Release)のスキームに従っており,次のリリースはこの12月です.

Eclipse の Simultaneous Release がどういうものかについては以下のページにて説明されています:
Simultaneous Release

簡単にいうと四半期(13週)ごとにローリングリリースされるモデルです.
これまでは年に一回6月のリリースでプラットフォームのマイナーバージョンアップがなされ:
Neonは4.6,Oxygenは4.7,Photonは4.8
それ以降のリリースである Oxygen.1 の様なサブマイナーの改善的なバージョンアップであったものと異なり,四半期毎の各リリースでプラットフォームのマイナーバージョンがアップされていきます.
それもあって,リリース名がこれまでのアルファベット順のコードネームから年月で規定される名前に変更されているみたいです.

なおこの先の予定は以下となります:

  • 2018-09 (現)/プラットフォームバージョン 4.9/ 2018年9月19日リリース
  • 2018-12 (次) / プラットフォームバージョン 4.10/ 2018年12月19日リリース予定
  • 2019-03 / プラットフォームバージョン 4.11/ 2019年3月リリース予定

2018/10/24

Papyrus における登録済パッケージのインポート

Papyrus 上でモデル作成を行っている際,作成した他パッケージのモデルを使用したり,すでに Papyrus に登録済のプロファイル内で定義されている他パッケージを使用したいことがあります.
これをうまく使うと,様々なモデル定義(モデルファイル)を効率的に分割して作成・管理でき,また再利用も容易となるため,モデルベースの開発を効率的に行うことが可能となります.

今回はその様なケースにおいて
「すでにPapyrusに登録済のプロファイル内で定義されている他パッケージを使用」
するやり方について考えたく思います.

またその具体的な例として,Papyrus Software Designer を導入することで Papyrus で使用可能となる
「MARTE」… Modeling and Analysis of Real-time and Embedded systems
に登録されている各種パッケージを閲覧・使用することを試してみようと思います.

まず画面上の「Model Explorer」上で対象モデルを選択し,マウス右クリックで現れるドロップダウンリストの Import を選択,そこから
Import Registered Package
を選択します.

Import Registered Package

これにより以下のダイアログ「Libraries to import」が表示されます.


ここに様々な登録済のモデル要素が表示されます.上記の図にも
  • JavaLibrary
  • JavaPrimitiveTypes
  • Pthread (subset)
  • Socket (subset)
  • SysML-Standard-Library
等が見えるかと思いますが,わざわざ自身でモデル定義しなくとも,既にあるものを活用する方が便が良いと思います.ただ,各モデルがいつまでサポートされるかは不明ではありますが.

今回は「MARTE」のパッケージを使用するため,リスト中段くらいにある
MARTE_Library
を選択します.ダイアログの下段あたりに本パッケージが「CEA LIST」により開発・提供されていることが見て取れます.

パッケージを選択し,その後 [OK] を押すと,下記のようなダイアログが表示されます.


ここで一つのポイントがあるのですが,含まれているモデルを Import する際の挙動(Action)として,ダイアログ下側のボタンにも表示されている通り,
  • Load
  • Import
  • Copy
の3種類があることが分かります.

これらの意味(挙動)の違いは以下となります.
  • Load
    • 指定したパッケージを単にモデルにロードする.作成中のモデルには何も変更は発生しない.
  • Import
    • 指定したパッケージをモデルにロードすると共に,モデルから同パッケージに対し PackageImport の関係が設定される(そのため作成中のモデルに変更が発生する)
      • UMLのモデル要素の一つである「PackageImport」は,ある名前空間内にImport先のモデル要素を非修飾名で使用可能とします
  • Copy
    • 指定したパッケージのローカルコピーをモデル内に作成する.Importに似ているが PackageImport の関係を設定せず,対象パッケージに含まれる要素のクローンをモデル内に作成する
またその使い分けは,
  • インポート先のモデル修正も随時行っており,その修正内容を適宜反映したい場合は「Import
  • インポート先のモデルの現バージョンをコピーし,それを元に今回のモデルを構築する場合は「Copy
    • その後のインポート先モデルの変更には影響されない
  • とりあえずインポート先のモデルを使ってみたい場合は「Load
となるかなと思います.

先のダイアログに戻ります.

表示されているすべてのモデル(パッケージ)に対して「全て同じ」操作をしたい場合には,ダイアログ上の [… All] のボタンを使用します.
また表示されているモデル中の特定パッケージを使用したい場合には,チェックボックスにチェックをします.その際,Load なのか Import なのか Copy なのかは選択したすべてのパッケージに対して共通であることに注意が必要です.

今回は [Import All] で進めることにします.
[Import All] のボタンをクリックし,その後,[OK] ボタンをクリックします.

これにより Model Explorer 上に対象のモデルパッケージが表示されます.
下記の図では上から3つ目のパッケージ「≪ModelLibrary》 MARTE_Library」です.

≪ModelLibrary》 MARTE_Library

MARTEの仕様では,その Profile 内で様々なパッケージが定義されており,それらが作成中のモデル内で使用可能であることが見て取れると思います.


Import対象がプロファイルの場合には,一般的には作成中のモデルに Profile を適用し,そこに含まれるステレオタイプを自身のモデルに指定することが多いかと思いますが,そもそもProfile 定義の中身がどうなっているかを確認したいケースではこのモデルのインポートは大変役に立ちます.


Papyrus が起動しない / Java VM

Papyrus-2018.9 を起動しようとしたら起動しなくなりました...

エラーを告げるダイアログがいっぱい出てきます.

Error: opening registry key 'Software\JavaSoft\JRE
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment

これらは Java Virtual Machine Launcher が出しているものですね.
この後に Eclipse 自体のエラー出力が表示されます.
タイトルには Papyrus と表示されていますがベースとなる Eclipse そのもののエラーです.

Java was started but returned exit code=2
Papyrus(Eclipse)が使用している JavaVM に問題があるとのことですが,さて何かしたかしらん,と考えてみると,そいえば少し前に Java の update が表示され対応したことを思い出しました.
確かにいつもとは違うアップデート画面で,インストールされているものを削除するという手順があったため,色々と削除したことを思い出しました.
Javaはほっておくと色々なバージョンがインストールされてしまうため,古い奴を消してくれる便利機能でも追加されたのかなと深く考えなかったのですが,どうやら違ったみたいです :-)

コマンドプロンプトをあげて javaw.exe や javac.exe をたたいてみても,同じようなメッセージがテキストで表示されました:
c:\Eclipse\papyrus-2018-09-4.1.0-win64\Papyrus>java
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

さてはてと考えていると,ふと先日, Oracle がJavaのライセンスやリリースモデルを変更するってニュースリリースしてたなぁ,と思い出しました.詳細はここに書いてあるものです:
JDKの新しいリリース・モデルおよび提供ライセンスについて
まぁ今もちゃんと読んではいませんが,ようは無償で使う場合には今後は OpenJDK を使ってね,ということでしょうかね(笑).
Linux環境では OpenJDK を普通に使っているのですが,Windowsでは Oracle JDK をこれまでずっと使っていました.
今回は Oracle JDK から OpenJDK に移行しないといけない状況での不連続点なのかもしれません.

確かに Eclipse/Papyrus を動作させる際,Windows下で使用される JavaVM の問題が発生したこともあり,どうしてもJavaVMを固定化したい場合には Eclipse/Papyrus のインストールフォルダの下に `jreフォルダ' を作成し,そこに JavaVM をコピーして使ったりしていました.もしくは Eclipse の ini ファイルを編集して,使用する JavaVM を固定化したりと.前者は複数人で同じ環境を使う場合(Eclipse/Papyrus環境を配布したりする場合),後者は自分単独で使う場合の対応として使い分けています.

感覚的にはそのような状況と同じような対応をすれば良いかなと.

では,と,OpenJDKをインストールします.
OpenJDK は jdk.java.net からダウンロードできます.現時点での最新版は以下のページから入手可能です:
Java Platform, Standard Edition 11 Reference Implementations

これまでの .exe 形式のインストーラではなく .zip での配布ですね.個人的にはどっちでも,です.

ファイル
openjdk-11+28_windows-x64_bin.zip
をダウンロードし,以下のように C:\OpenJDK フォルダの下で展開しました:


その後,Papyrus のインストールフォルダに行き,ファイル papyrus.ini に以下のように使用する JavaVM を陽に指定しました(赤色の太字の所).
-vm
C:\OpenJDK\jdk-11\bin\javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.5.100.v20180827-1352.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.800.v20180827-1352
-showsplash
org.eclipse.papyrus.rcp
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vmargs
-Xms256m
-Xmx900m
-Dosgi.bundlefile.limit=200
赤色の太字以外は元々の設定です.
もしかしたらメモリ関係の設定値を増やしているやもしれませんが忘れました(笑)

これで再度 Papyrus を実行すると,無事に起動しました.

2018/09/21

UML Profile

UMLを用いてモデリングする際,ドメインに応じた UML Profile を活用することがモデル化における設計コストの低減や確からしさの確保のためにも重要だと考えています.

OMGで正式に採択された UML Profile にどういうものがあるかは下記webページで確認できます:
UML PROFILE CATEGORY - SPECIFICATIONS ASSOCIATED

同ページには以下にしめす16個の UML Profile がリストアップされています:
  • UML Profile for BPMN Processes
  • UML Profile for CORBA and CORBA Components
  • UML Profile for CORBA Components
  • UML Profile for CORBA
  • UML Profile for Enterprise Application Integration
  • UML Profile for Enterprise Distributed Object Computing
  • UML Profile for MARTE
  • UML Profile for NIEM
  • UML Profile for Modeling QoS and FT
  • Software Radio Components
  • UML Profile for System on a Chip
  • UML Profile for Schedulability, Performance, & Time
  • UML Profile for Telecommunication Services
  • SES Management TelcoML Extension
  • UML Profile for ROSETTA
  • UML Profile for Voice-based Applications
                              メンテナンスされていない Profile も多いのですが「UML Profile for ROSETTA」と「UML Profile for NIEM」はアクティブな活動の様です.とはいえ ROSETTA はまだベータのため,リリース後,すぐに凍結されてしまうやもしれませんが笑

                              ちなみに両Profile は下記のドメイン言語の模様です:

                              • UML Profile for ROSETTA
                                • The ROSETTA Profile will ‘provide precise syntax and semantics that will facilitate the export of UML and SysML system models to a matrix representation that can be used tostructure mathematical knowledge for concordant use in simulation at the conceptual and detailed design levels’.

                              • UML Profile for NIEM
                                • NIEM is a national program that empowers organizations to create and maintain meaningful data connections across their stove-piped IT systems, as well as their stakeholder base. NIEM provides data components and processes needed to create exchange specifications which support mission data sharing and exchange requirements. By providing a common vocabulary and mature framework to facilitate information exchange, NIEM enables communities to “speak the same language” as they share, exchange, accept, and translate information efficiently
                              どちらも興味がありますが,まずは ROSETTA を見てみようかと思います.



                              Eclipse Papyrus 4.1.0 リリース

                              無事に Papyrus 4.1.0 がリリースされました.

                              Eclipse Papyrus 4.1.0 Release Review

                              9月17日づけの「Weekly Problem Digest for Papyrus」を見ると,まだまだ色々とバグは抱えてそうですが.

                              4.1.0は以下が変更されているみたいです:
                              • Diagram: improve sequence diagram combined fragment
                              • Diagram Layers: add it into the model explorer, refactoring layer model + generation, property view
                              • diagram generation: improvement.
                              • fix problems about Xtext support and UML Constraint Language
                              • continue Architecture Framework support integration.
                              • releng: change EP1 to EPL2.

                              最大のポイントはシーケンス図の改善でしょうか.

                              ダウンロードページから 4.1.0 の RCP が入手可能です.

                              ダウンロードしてみたのですが,ファイル名が少し変わってますね.

                              旧)papyrus-photon-4.0.0-win64.zip
                              新)papyrus-2018-09-4.1.0-win64.zip

                              photon → 2018-09 となっています.どういうポリシーの変更でしょうか?

                              バナーでのバージョン表記も 2018-09 に変わっています:

                              なお次の正式なリリース 4.2.0 は 12月になる模様です.



                              2018/08/29

                              Papyrus SW designer のニューリリース

                              Papyrus SW designer の新バージョン (1.1.0)が 8月28日(日本時間では8月29日未明)にリリースされたみたいです.

                              OxygenとPhotonに対応し,変更内容は

                              • Bug fixes
                              • Documentation is now integrated into the Papyrus documentation (Papyrus SW designer section in user and developer doc).
                              • Unchanged files are not overwritten during (re-)generation. This speeds up compilation time after generation considerably.
                              • Component ports may have more than 1 provided or required interface

                              とのことです.

                              Eclipse Marketplace から,もしくはアップデートサイトから入手可能のようです.



                              情報入手元)
                              http://dev.eclipse.org/mhonarc/lists/mdt-papyrus.dev/msg04387.html

                              Papyrus 4.1.0 のリリース予定日

                              2018年9月19日(水)の様ですね.
                              日本時間では 9月20日 でしょうか?

                              内容としてはシーケンス図の改良,Time Observation や Duration の改良,各種Exceptionへの対応等で90個程度の改善を進めている模様です.

                              リリースが待ち遠しいです.

                              https://projects.eclipse.org/projects/modeling.mdt.papyrus/releases/4.1.0

                              2018/08/10

                              Eclipse Modeling Tools のダウンロード割合

                              Papyrus は Eclipse のプラグインであり,Eclipse がパッケージとしてまとめている
                              "Eclipse Modeling Tools"
                              の主要なプラグインの1つになっています.

                              最近ふと,コンピュータ関連ツールにおいて,どの程度「モデリングツール」を使用している人がいるのかが気になり,その判断指標の1つとして Eclipse のダウンロードパッケージのダウンロード数比率を比べてみました.

                              ダウンロード数は以下のサイトから確認できます:
                              https://www.eclipse.org/downloads/packages/

                              2018-8-10時点での,Eclipse Photonベースのダウンロード数を比率をまとめたものが以下の表になります.

                              順位 パッケージ DL数 割合 累積
                              1 Eclipse IDE for Java EE Developers 396851 47.8% 47.8%
                              2 Eclipse IDE for Java Developers 216948 26.1% 73.9%
                              3 Eclipse IDE for C/C++ Developers 72894 8.8% 82.7%
                              4 Eclipse IDE for Eclipse Committers 59813 7.2% 89.9%
                              5 Eclipse IDE for PHP Developers 27667 3.3% 93.2%
                              6 Eclipse IDE for Java and DSL Developers 24023 2.9% 96.1%
                              7 Eclipse IDE for JavaScript and Web Developers 12227 1.5% 97.6%
                              8 Eclipse IDE for RCP and RAP Developers 4625 0.6% 98.1%
                              9 Eclipse Modeling Tools 4060 0.5% 98.6%
                              10 Eclipse IDE for Java and Report Developers 3488 0.4% 99.0%
                              11 Eclipse IDE for Scientific Computing 2673 0.3% 99.3%
                              12 Eclipse IDE for Testers 2057 0.2% 99.6%
                              13 Eclipse IDE for Rust Developers (includes Incubating components) 1861 0.2% 99.8%
                              14 Eclipse IDE for Scout Developers 1486 0.2% 100.0%

                              Eclipse というツールの成り立ちやよく使われるドメインに依存した特性はあると思うので,この結果のみで何かしら結論を出すというのは乱暴すぎますが,やはり Java や C/C++ の様なプログラミング言語の環境としての利用者が多く,上位の3パッケージだけで8割以上を占めています.その他のPHPやJavaScriptまでも含めると9割程度がプログラミング言語の環境利用者で,モデリングツール自体は全体の 0.5% でダウンロード数順位も 14パッケージ中 9位 と思ったよりも少ない印象です.

                              モデリングに取り組んでいる人も同じくらいの割合なのでしょうか.

                              少し残念な気がします・・・

                              2018/07/01

                              モデルのドキュメント出力

                              Papyrus で作成したモデルプロジェクト全体をドキュメント出力したい場合には
                              が最も有効な手段となります.
                              Gendocは ドキュメントテンプレートを用いて EMF モデルからドキュメントを生成する `From models to documents' のためのプラグインであり,
                              • OpenOffice Writer (.odt)
                              • Microsoft Word (.docx)
                              • Microsoft Excel (.xlsx)
                              • Microsoft Powerpoint (.pptx)
                              のファイルを出力することが可能です.
                              プロジェクトのサイトは
                              https://www.eclipse.org/gendoc/index.php
                              になります.

                              このプロジェクトは進捗やリリーススケジュールが分かりづらく,一時期は全く機能していないのでは?と思えたりもしましたが,最近は主要な開発者の方から色々とコミット頂けた様で少し動きが出ています.
                              最新のバージョンは 0.7.1 です.ただリリース時期と対応する Papyrus のバージョンが微妙で,プロジェクトのホームページ上に記載された情報によると,その元となる 0.7.0 がリリースされたのが
                              26th Mars 2018 : Gendoc 0.7.0 is now 
                              とのことで,この 2018-3-26 という日付が示している Papyrus のバージョンが何かというのはよくわからないです.
                              ただこの先のロードマップの宣言は明確に示されており,
                              Future releases
                              Gendoc v0.8.0 (2018)
                              • Photon Release.
                              • Error reporting improvements.
                              • Improved XLSX file format support.
                              • Improved PPTX file format support.
                              • Improved Rich Text support.
                              Gendoc v1.0 (2018)
                              • API freeze
                              とのことです.
                              今年中には Photon 対応を行い,またバージョン1.0 品が正式に出る予定みたいです.

                              今年色々とアップデートがあるみたいなので,Nightly Build を使っておくのも良いかもしれません.Nightly Build のリポジトリは以下で確認できます.
                              https://www.eclipse.org/gendoc/downloads/download.php
                              ここに示されているLocationを Papyrus の Install New Software ... のダイアログ上に Add する形でインストールと適宜のupdateが可能です:

                              使い方は下記の pdf を参照してください:
                              Gendoc v0.7 tutorial


                              ダイアグラムのファイル出力

                              Papyrus で作成したUML/SysML等のモデル図からドキュメントを生成したいことが多々あります.

                              ダイアグラムそのものを画像として抽出するには,個々のダイアグラム上でマウス右クリックを行い,
                              File → Save As Image File ...
                              の操作をすることで図を画像保存することが可能です.

                              その際に選択可能な画像形式には,
                              GIF,BMP,JPG,SVG,PNG,PDF
                              があります.表示されるダイアグラム上の Image Format リストから選択することが可能です.


                              どれが良いかは難しいですが,自分としては「PNG」を使うことが多いです.次点としては「PDF」と「SVG」になるのですが,
                              • PDFはクラスにグラデーションのかかった色を付けている場合に,そのグラデーションが正しく出力されない場合がある
                              • SVGは少し前までのMS-Wordでは画像として直接取り込めない(Word側の問題)
                              という問題があるため無難な「PNG」を使うことが多いです.
                              png で保存
                              pdf で保存(pdfで保存したファイルをacrobat reader で表示しスナップショットを取得)

                              svg で保存(svgで保存したファイルを google chrome で表示し画面ダンプをpngで保存)

                              ただ,上記問題が影響がない場合にはPDFとSVGを使用しますし,特にベクタグラフィックスとして図をハンドリングしたい時はそちらを使います.

                              その他のダイアグラム出力のやり方としては,Project Explorer 上のモデルファイルを選択し,マウス右クリックで
                              Export All Diagrams ...
                              を選択するやり方もあります.
                              Export All Diagrams メニュー
                              Export All Diagrams ダイアログ

                              これによりモデル中に含まれるすべてのダイアグラムがファイル出力されます.
                              選択可能な画像フォーマットは上記のものです.

                              ただ少なくとも Papyrus 3.x の時には,ダイアグラム名を日本語にしていた場合にファイル名が文字化けしていました.Papyrus 4.0 ではどうなっているかについては確認していません.






                              2018/06/29

                              Eclipse Papyrus 4.0.0 (Photon) Released

                              Eclipse Photon ベースの Papyrus 4.0.0 がリリースされました.
                              通常の Plugin 版と共に RCP 版も同時リリースされています.

                              スプラッシュ画面 には Photon と表示されています.



                              まだちゃんと確認していませんがPapyrus 4.0.0 の変更点は以下とのことです(参照元):
                              • A new preference has been introduced to keep stereotype application with their base element see StereotypeApplication Preference
                              • The hyperlink navigation has changed see Hyperlink Navigation
                              • Add a preference page to configure the visualisation of  external decorator  see External Decorator
                              • Add auto-completion to select the type in the property view see  Auto complete type
                              • Add an export to HTML to see model without papyrus see HTML Export
                              • Development and adaptation of the Layer tool for the diagrams Layers .
                              • Synchronisation with ELK see ELK adaptation
                              • Tables improvements:
                                • display of a string instead of N/A
                                • Matrix improvements
                                • save by UUID not the positon
                              • Diagrams improvements:
                                • some problems about the name label of ports have been fixed
                                • some resize action in the class diagram have been fixed.
                                • sequence diagram - Better movement  managment of Elements, introduction of combined fragment, RCPTT tests.
                              •  Integrate a  tool to adapt your model based on the modification of the profile
                              • Architecture framework : stabilization (easier customizations/modifications by the users) and bug corrections



                              なおこの4.0.0から正式に Papyrus Component が Marketplace 対応したのですが,残念ながら Help メニュー上には Marketplace はありませんでした.


                              Papyrus4.0.0のダウンロードページには以下の記載があります:
                              From Papyrus 3.3.0 onwards, the Papyrus Relatives will be released in the Eclipse Marketplace as soon as they are available.
                              SysMLや Software Designer のようなコンポーネントのインストール手段としては,Marketplace メニューからではなく,別の手段を想定しているのやもしれませんね.
                              また探してみてみます.

                              なお適用された細かなパッチリストは以下で確認できます.
                              https://projects.eclipse.org/projects/modeling.mdt.papyrus/releases/4.0.0/bugs

                              もし現バージョンで気になる点があれば,4.0.0で改修済かどうか確認されるとよいかもしれません.

                              2018/06/13

                              EclipseCon France 2018

                              Eclipse の年次コンファレンスである EclipseCon France 2018 が今日 6月13日 から開催されます。

                              Papyrus に関係するセッションとしては二日目の6月14日に以下の2つがあります:

                              Papyrus そのもののセッションでは Domain-Specific となる Modeling tool であることをクローズアップし、紹介されるみたいです(Experience level が Beginner となってますので紹介なのかなと思っています)。

                              Time4Sys は MARTE が目的とする Real-Time Embedded System のタイミング解析等を行うためのフレームワークです。
                              Time4Sys のサイトにある図がその位置づけを端的に示していると思います:

                              PolarSys Time4Sys is a timing performance framework that fills the semantic gaps between the design models of real-time systems and the models of timing verification tools.

                              Time4Sys proposes four capabilities: modeling and viewing the Time4sys model, A dedicated meta-model based on the MARTE standard, model transformations able to transform and adapt Time4sys model for verifications tool and connectors to import/export models from design tools and verifications tools.

                              Time4Sysのプラグインは GItHub 上で公開されています:
                              Time4Sys (GitHub)
                              最新のバージョンは、この 6月8日 に公開された 0.8.0 のようです。




                              2018/06/12

                              Papyrus Photon - June 27

                              Papyrus Photon のリリース日ですが、

                              6月27日

                              の様ですね(開発者メーリングリストより)。

                              あと2週間ですね。

                              2018/06/10

                              MARTE プロファイル

                              先日リリースされた Papyrus 3.4.0 に移行中なのですが,
                              MARTE プロファイル(Modeling and Analysis of Real-time and Embedded systems)

                              を直接見つけることが出来ません.

                              組込みリアルタイム系のソフトウェア・ハードウェアをモデル化する際,便利なプロファイルです.

                              色々とインストールして見てみると,どうも
                              Papyrus Software Designer
                              をインストールすると合わせて導入されるみたいです.

                              昔はプロファイル単独でインストール出来たのですが.

                              なお Software Designer は過日の記事の通り Marketplace からインストールする必要があり,現3.4.0 の Papyrus RCP でも Marketplace プラグインがデフォルトでインストールされていないので一手間かかります.


                              Photon 版 RCP がリリースされる際には,デフォルトで Marketplace プラグインが登録されているとありがたいです.



                              2018/05/31

                              書籍「SysML in Action with Papyrus」

                              Jean-Michel Bruel さんと Sebastien Gerard さんが執筆される
                              「SysML in Action with Papyrus」
                              という書籍ががこの12月に出版予定みたいです.


                              現在予約受付中みたいですが,
                              SysML in Action with Papyrus uses practical examples and the open source Papyrus modeler to explore requirements, validation and the classical V cycle. The book presents a generic approach that is fully suitable to SysML, applying major system engineering principles and standards. 
                              とのことで楽しみです.

                              お値段が少しお高い気もしますが,最終的にはおいくらになるのでしょうね.

                              ページ数は250ページ程度みたいです.



                              あと GitHub 上で
                              Papyrus-SysML In Action
                              というリポジトリも Jean-Michel Bruel さん により作成されています :-)

                              SmartHomeUseCase とありますので,本書籍では SmartHome にて例示されているのではと思います(ただ昨年の9月以降の更新はありませんが).

                              master branch をダウンロードし手元の Papyrus でプロジェクトを Import して見てみましたが,普通にモデルが開きました.

                              Sebastien Gerard さんは Papyrus の開発元である CEA LIST に所属されている方であり,その方々が作られた Papyrus モデルを読むのは大変参考になります.



                              書籍「システムズモデリング言語SysML」

                              Sanford Friedenthalさん他が執筆された
                              「A Practical Guide to SysML」
                              を慶應義塾大学 西村秀和先生他が訳された書籍が
                              「システムズモデリング言語SysML」
                              です.

                              原著の方はThird Editionまで進んでいるみたいですね.

                              投稿内へのAmazonアフェリエイト設定のテストでした :-)

                              2018/05/30

                              UML用語の日本語訳語

                              Papyrusでのモデル記述を行う際,そのツールメニューは英語で表示されています.

                              「Papyrus の日本語化」で紹介した日本語化を行っても,ベースとなるEclipse側は日本語化されますが,Papyrus plugin で使われている単語は英語のままとなり,UMLのモデル化要素も英語にて表記されます.

                              UML用語の対応する日本語訳を知りたい場合には,
                              UMTP/UMLモデリング推進協議会
                              が編纂された用語集が参考になります.
                              上記サイトからUML2.0に対応したUML用語編がダウンロード可能です.

                              優先訳語や使用可能訳語,ガイドライン,JIS X4170・ISO/IEC 19501 との対比もあり,とても参考になります.


                              2018/05/24

                              mdt-papyrus.dev RSSフィード

                              Papyrus 開発者用の Mailing List 「mdt-papyrus.dev」の RSS フィードも本ページ左下から閲覧できるようにしました.

                              直近の5件が表示されます.

                              ここ数ヶ月の投稿数を見てみると,ほぼ一日5件以内には収まってそうなので,定点観測していれば,ある程度もれなく状況を把握できそうです.

                              Photonリリース直前には件数が増えてあふれるかもしれませんが,その頃は細かに内容を追ってもあまり意味はない気もしますので,何かしらのリリースを適宜把握しておきたいという実用には耐えうるのではと思っています.

                              SysML 1.4向けプラグインの更新 (1.2.0)

                              Papyrus 3.4.0にあわせ SysML 1.4 プロファイルモジュールも 1.2.0 に更新されました.

                              SysML 1.4 v1.2.0 with Papyrus 3.4.0

                              こちらもupdateが必要ですね.


                              2018/05/23

                              Papyrus 3.4.0 Oxygen Released

                              Papyrus 3.4.0 Oxygen Released のアナウンスがありました(Monday, May 21, 2018).

                              改修内容は,

                              • ダイアグラム
                                • Nullポインタ例外への対応
                                • 要素の移動等に関するシーケンス図への大幅な修正
                              • プロパティビュー
                                • ディレクトリを選択可能なウィジェットの追加
                                • クラッシュ回避のための修正の追加
                              とのことです.

                              RCP版3.4.0も同時にリリースされたみたいですね.

                              よく使う win64 版の RCP3.4.0 のダウンロードファイルサイズ(zip)は589MBでした.

                              なお新たな RCP 版を展開して使う場合,環境によっては


                              等の対応が必要になります.

                              実際,日本語化は基本はせずに使っているのでそちらは良いのですが,iniファイルの修正や追加コンポーネントのインストールはちょっと面倒ですね.

                              Papyrus RCP 3.3.0 の Check for Updates をかけてみたのですが,3.4.0 のアップデートはかかりませんでした.Available Software Sites には Papyrus も登録されているのですが,RCP版の場合は,そうなのでしょうかね... ?


                              また時間がとれた時にでも,のんびり 3.4.0 に移行します.

                              そうこうしているうちに,来月には Eclipse のメジャーバージョンアップ (Photon)と共に,Papyrus もバージョンアップしてしまいますが.

                              2018/05/15

                              SYSML V2

                              THE NEXT-GENERATION SYSTEMS MODELING LANGUAGE を標榜した

                              SysML 2.0 (SysML V2)

                              に関する情報がOMG下の下記サイトで公開されています:


                              その RFP も公開されています.

                              RFP に関するコンタクト先は和訳本「システムズモデリング言語SysML」の元著者でもある Sanford A. Friedenthal さんです.

                              その内容の紹介が Webinar として Youtube でも公開されています.プレゼン上に記載されている日付から 2017-11-10 の資料内容みたいです.

                              上記OMGのサイトからも Webinar にアクセスできますがユーザ登録が必要なため,Youtube の方が気楽に聴講できます.Friendenthal さんが説明されています.

                              RFPのタイムテーブルは以下との記載がRFP上にありました:

                              Event or ActivityDate
                              Letter of Intent (LOI) deadline24 September, 2018
                              Initial Submission deadline4 November, 2019
                              Voter registration closes25 November, 2019
                              Initial Submission presentations2 December, 2019
                              Revised Submission deadline9 November, 2020
                              Revised Submission presentations7 December, 2020

                              LOI等の意味や位置づけについてはAISTの方が作成されている OMG用語集 が参考になります.

                              2018/05/09

                              UML-RT/Papyrus-RT

                              UML-RT/Papyrus-RTに関するEXE2017でのプレゼン資料を見つけたのでメモとして.

                              Juergen Dingel さんの
                              Towards an open sourceMDE tool infrastructurefor the Internet of Things
                              です.

                              ざっくりと概要を知るのに良い資料かと思います.

                              UML-RT自体としては Bran Selic さんによる
                              The Real-Time UML Standard:Theory and Application
                              があります.

                              少し古いですが.

                              なお Papyrus-RT (Papyrus REALTIME) 自体のwebサイトは


                              です.

                              このページの Download から RCP 版の取得や Update site を確認できます.

                              Papyrus-RTのロゴは格好いいですね.



                              現在 v1.0.0 がリリースされており,それ以降の v1.3 や v2.0 までの計画はありますが,Uncertain と記載されている通りの状況に思えます.




                              Papyrus の RSS

                              Papyrus の提供元から発信されるニュースを自分自身でも見逃さないようにRSS フィードを本ブログに設定しました.画面左側中央あたりにある

                              Papyrus Project: News

                              から閲覧可能です.

                              2018/04/29

                              Papyrus の日本語化

                              Eclipse や Papyrus RCP のデフォルト設定では日本語化されていません。

                              Eclipse の日本語化の手段としては


                              が有名で、その All in One パッケージを僕も昔は使っていました。

                              ただ、Papyrus Plugin の日本語表示でおかしかったときが昔にあり、それ以降は


                              を使っています(今は対応されているみたいではありますが)。

                              ちなみに Babel は
                              Babel is a set of tools to make the job of globalizing Eclipse projects easier. 
                              のプロジェクトです。

                              Babelの導入方法は、同webページの「Downloads」リンクをたどったページに記載されている
                              Installing the language packs
                              1. Open the install wizard with 'Help' > 'Install new software...'
                              2. Add the Babel p2 repository: http://download.eclipse.org/technology/babel/update-site/R0.15.1/oxygen
                              3. Select/install your language pack of choice
                              4. Restart Eclipse and you should get a translated Eclipse
                              の通りに進めます(上記は Oxygen での記載です)。

                              具体的には、上記 1. により上がってくる「Install」ダイアログ上の [Add...] ボタンを押すことで表示される「Add Repository」ダイアログにリポジトリ名とURLを設定します。


                              これで [OK] ボタンを押すと、少しわかりにくいですが "Pending..." と表示されますので、少し待ちます。




                              少し経つとインストール可能なパッケージがリストアップされるので、スクロールバーからスクロールダウンして "Babel Language Packs in Japanese" をチェックし [Next >]ボタンを押します。


                              これで日本語化に対応した必要なパッケージが選択されるので、同じく [Next >] ボタンで次に進みます。


                              あとは License Agreement にチェックをして [Finish] ボタンでインストール開始です。


                              インストール中は Eclipse/Papyrus RCP トップウィンドウの右下に進捗状況が表示されています。



                              しばらくたつと Security Warning の確認画面が表示されますが、ここでは [Install anyway] を選択して先に進みます。




                              この後、残りのパッケージがインストールされ再起動を促すダイアログが表示されます。



                              [Restart Now]ボタンを押すことで Eclipse/Papyrus RCP が再起動され、日本語化された画面が表示されます。


                              なお、Eclipse/Papyrus RCPの基本的なメニュー設定の日本語化はされますが、Papyrusにおける各種モデル図を作成する際の要素名などは日本語化されません。
                              その部分は自助努力でお願いします。

                              2018/04/28

                              Add Google Translate

                              ブログへのアクセス解析結果を見ると、海外からのアクセスもちょこちょこと見受けられます。

                              web検索での結果からでしょうか??

                              記事内容はすべて日本語で記載されており、がっかりしておられるかもしれません。

                              その一助になればと思い、Google 翻訳により所望の言語に翻訳可能としました。

                              ページの上の方にある「Translate」から翻訳したい言語を選択いただければです。


                              という内容をがっつりと日本語で記載してみました :-)

                              なお上記を「Google 翻訳」で英語に変換した結果は以下でした:

                              Looking at the access analysis results to the blog, also seen To hobbling access from overseas. I think from the results of a web search?? All article content has been described in Japanese, it might be he was disappointed. I think if accustomed to the help, it was made possible translated into the desired language by Google translation. Near the top of the page it is if you can select the language you want to translate from the "Translate". 

                              どうでしょうか?

                              2018/04/20

                              Papyrus 3.3.0 Oxygen RCP が JavaVM 10.0.1 で起動しない

                              Papyrus 3.3.0 Oxygen RCP が Windows10 Pro/64bit 上で起動しませんでした.
                              ワークスペース選択のダイアログをOKする所までは動作するのですが,その後でエラー表示のメッセージボックスが出力されます.



                              そのメッセージに従いログファイルを見てみると

                              !ENTRY org.eclipse.osgi 4 0 2018-04-20 10:41:42.810
                              !MESSAGE Application error
                              !STACK 1
                              org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct

                              などが表示されていたります.

                              調べてみると,どうやらこれに該当する話の様です:

                              Configure Eclipse for Java 9

                              このサイトに書かれている情報によると,Oxygen 4.7.1a より前と Java 9との組み合わせで発生する状況の様です.

                              Papyrus 3.3.0 Oxygen RCP は



                              の通り,Oxygen 4.7.0 ベースであるため,このエラー発生条件に該当しています.

                              そのため記事に記載されている

                              Configure Eclipse for Java 9 modules

                              Since the Eclipse SDK uses types that aren't in the java.base module, you need to add the following vmargs to eclipse.ini:
                              --add-modules=ALL-SYSTEM
                              
                              Your project might fail to run because you use types that are neither in java.base or java.se.ee, e.g. types from javafx.base. In that case you have to figure out which module(s) you need to add with --add-modules.
                              の通り,papyrus.ini ファイルに上記 --add-modules の一行を追加することが必要です.

                              それにより無事に起動することが可能になります.