Translate

2020/05/28

Papyrus のロードマップ

今後の Papyrus について

最近はツールとしての開発もある程度は落ち着き、またUML自体の大きなバージョン変化が無い中で、今後 Papyrus がどの方向に向かっているのかが気になります。

開発側のweb情報を探しても纏まったものが見当たらない感じですが、先だっての2019年10月に開催された EclipseCon Europe 2019 において 「The evolution of Papyrus, an open SysML and UML tool」 という発表が、 Camille Letavernier (EclipseSource) さんと Philip Langer (EclipseSource) さんからなされています。

なお上記の各リンクをクリックすると同発表や発表者のページに飛びます。また直リンクもはりましたが、 発表資料(pdf) もそこに置かれています。

今回はその内容について見ていきたいと思います。

なお同発表内容は YouTube でも公開されていますので、発表資料と共に視聴されると、より詳しく確認出来るかと思います。

The evolution of Papyrus, an open SysML and UML tool

発表資料は全部で21ページです。なお原著は上のリンクの通りです。

ページ 1/21

表紙です。UMLツールとしてだけではなく SysMLツールとしてもアピールしていますね。

ページ 2/21

UMLベースのモデリング環境としてのアピールが通常の通りなされていますが、一番最後に、本発表全体での大きなテーマである「Domain-Specific (Modeling) Tool の構築が可能」であることがアピールされています。

ページ 3/21

ドメイン特化のモデルベースエンジニアリングがとても有効であることは I agree です。

コード生成やシミュレーションの機能が有効に働くかどうかは、どういうドメインか、やどういうエンジニアリングかに大きく依存しそうには思います。

ページ 4/21

様々な見え方は(もちろん相応する適切な内容と共に)必要だと思います。また良くも悪くも表形式というものは重要との認識です。

また確かにアイコンも重要ですね。一瞬にして、齟齬が少なく理解出来るので。大物の開発では、理解するための時間の短縮もとても重要ですし、受け取る人の適性もありつつ直感的に受け止められることが重要だと思います。

象形文字に起源を持つ表語文字である漢字を多用する我々は、特にそうなのかもしれません。

ページ 5/21

汎用モデリング言語である UML や SysML (1.X系かな?)と Domain-Specific Modeling は両立しないか?の問には確かに「NO!」(両立可能) だと思います。

後でも出てきますが Papyrus は UML Profile をサポートしています。UML Profile を使って DSML を実現する場合、Papyrus はプラットフォームとして使用可能だと思いますし、自分もそういう使い方をすることが多いです。

ページ 6/21

Eclipse のモデリングフレームワーク (EMF) を用いプラグインとして開発されている UMLベースの Papyrus であれば、EclipseおよびEMFをベースとした良いモデリングプラットフォームとなると思います。

ページ 7/21

Papyrus as a Platform の核は UML Profile となるみたいですね。合意します。

僕も UML Profile は多用してますが、あんまりこのブログでの記事としては記載していないですね。標準やAdd-onのProfileや自身で定義したProfileを含め、ほとんどの開発では、何かしらの UML Profile は作成して差し込んで使っています。

ページ 8/21

ここまでの話しと同じ内容ですが、ここでいう codegen や validation に対する「Powerful API」とは、どの機能が提供している API を指しているのですかね・・・

ページ 9/21

ここでの「Example and Demo」では UML Profile を定義・適用してモデル要素にドメイン特化の意味付け(ステレオタイプにて)を与えることが出来ることと、CSSライクなスタイルファイルにより表示内容が変わることが説明されたみたいですね。

先の YouTube ビデオの 11:06 ぐらいの所から説明されています。

UML Profile の適用や、標準スタイルの変更で CSS を使ったことはありますが、ステレオタイプで見え方が変わるというのは試したことがないですね。また、試してみたいと思います。

ページ 10/21

Papyrusに対してDSL向けの(フルな)カスタマイズさえもしたことがないですね。基本的に Profile 作成・適用で、見た目等は全て通常のUML UIで行っています。 まだまだ試してない機能も多いですね。

ページ 11/21

Papyrus UMLLight ですが、前に学習用として調べたことはあります。サイトは ここ になると思います。

OMG CERTIFIED UML PROFESSIONAL 2 (OCUP 2)の FOUNDATION LEVEL として示されている UMLのサブセット:

  • UML Use Case
  • Activity Diagram
  • Class Diagram
  • State Machine
  • Package Diagram
  • Sequence Diagram
に特化して、設定出来るプロパティ等も基本的なものになっていた気がします。

ただ、今見てもバージョンが UMLLight 0.0.1 RC2 のままで、またファイル置き場も Google Drive のままな気がします。 UMLLightに関する今後の開発スケジュールも知りたい所です。

なおアイコンが少し変わっていて以下のようになっています。日本で言えば「若葉マーク」なのかな、と思えますが各国共通なのでしょうかね??

SysML 1.6 は既に公開されていて Market Place から導入可能ですね。僕も使っています。

ページ 12/21

Papyrusで作成したモデルの diff および Merge ですね。僕自身はまだ使ってないですが、欲しいものであることは確かです。

今後は積極的に使ってみようと思います。

ページ 13/21

残りとしては、ベースとなる Eclipse のUI基盤に基づき今後 UI technology と Rendering Technology が変わるとのこと。

ページ 14/21

PapyrusのUIは GEF (Graphical Editing Framework) で作られています。 GEFのバージョン毎の進化は Wikipedia にまとめられています。

ページ 15/21

なるほど、GEF 3ベースから GEF 5ベースにマイグレーションするわけですね。より modern になるわけですか。 永続的な進化のためには必要になるとは思います。大変だとは思いますが。。。

ちなみに「Papyrus GEFx」という名称を固有名詞として使っているように思えますね。

ページ 16/21

ここは飛ばします。

ページ 17/21

ここも飛ばします。

ページ 18/21

頑張って欲しいです、Papyrus GEFx。

ページ 19/21

Web-based Papyrusも悪くないですね。僕自身への直近のメリットとしては、Eclipseベースといえ、時たまPC環境の違いで問題となることもあるので、 それが解消するといいですね。結構、そういう時は原因がよくわからないので。Eclipseのエラーログも難解ですし。。。

ただ使用する browser によって問題が発生するかもしれませんね。常に使用するbrowserを固定化出来ればいいですが、逆にそちらの方が難しいこともあるかな。

ページ 20/21

見た目の差異はこんな感じみたいです。

ページ 21/21

まだまだ進化し続けるみたいですね。これからも頑張って頂きたいです。

2020/03/21

Papyrus 4.7.0 (2020-03) リリース

なかなか忙しい日が続き、ブログの更新まで手が回らない日が続いてましたが、ようやく時間が取れるようになってきたので、またつらつらと再開しようかと思います。

更新が滞っていた間に、Papyrusも2回くらいリリースが行われました。

この3月18日(リリース日として)に Papyrus 4.7.0 のリリースが行われましたので、久しぶりにupdateの投稿をしたく思います。

Papyrus 4.7.0 2020-03 Released

定例となる 3月版 Papyrus が無事にリリースされました。

リリースページからの情報を見ると以下の改善が行われている模様です。

Improve Papyrus Documentation :
  • Improve existing Papyrus table documentation to explain how to override displayed labels.
Improve Papyrus Tables :
  • Tool to easily register an existing tableconfiguration file into an existing architecture file.
  • Add editors to allow the creation of elements using the ElementTypes framework.
  • Add support for cell editors displayed with one or several buttons.
  • Add support for an empty line in the table (but there is no way to get empty lines for the user in the provided tables).
Bugs fixes :
  • Patch a selection problem in the Sequence diagram after adding Found Messages.
  • Patch SWT exceptions due to mishandled reload listeners in the model explorer coupled with bad widget focus.

目新しい機能が増えた訳ではなく、改善が多い感じですね。

実際にダウンロードしたzipファイルサイズも前リリースより大きく増えてはいませんが、継続的に品質が向上していくことはいいことなので、また使ってみようかと思います。

なお、個人的な事情により当面は一つ前のリリースである 2019-12 がメインになると思います。

2019/07/26

ダイアグラムのカラーテーマ設定(前半)

ダイアグラムの表示色

Papyrusのクラス図でモデル作成を行うと以下の図のような見慣れた配色で表示がなされます。

なぜこの配色がデフォルトとなのか理由は知らないのですが、落ち着いた感じでもあり、また少し冷たい感じもします。好みではあるでしょうけど。

ただ、ダイアグラムを他の文書に貼り付けたい場合に、色目がないモノクロでの図が欲しい場合もあります。実際、Papyrusのこのグラデーションがかかった図を紙面に印刷した場合に、図の内容が分かりにくくなることがあります。

個別にモデル要素の見た目を変更する場合には、Properties(日本語化している場合にはプロパティー)の所にあるAppearanceにて、色やグラデーション、線の細さ、フォント、アイコンあり・なし等が変更出来ますが、全ての要素を個々に変更し続けることは大変なので、一括で変更したい時があります。その場合には Papyrus のPreferences(設定)にあるPapyrus設定のCSS Themeを変更する形になります。

CSSテーマ

CSSとはCascading Style Sheetsの略語であり、 「HTML や XML の要素をどのように修飾(表示)するかを指示する、W3Cによる仕様の一つ」 です(Wikipediaより)。 デフォルトで設定されているPapyrusのCSS設定は「Papyrus Theme」と呼ばれているものです。Peferenceから辿れる Papyrus の CSS Theme では以下の様になっています。

このメニュー上の Current Theme を変更することで別のテーマに切り替えることが可能です。選択可能なリストの中には「Black & White」という要素も存在しています。

「Black & White」に切り替えることで、先程のクラス図の見た目は以下の様に変わります。

これはこれで悪くはないのですが、少しシンプル過ぎる気がします。個人的には白黒表示にしつつアイコン表示は欲しい所です。 以下に示す様なイメージです。ぱっと見たときに、様々なモデルの付加属性がわかりやすく、かつシンプル、という気が個人的にはしています。

この表示にすべく、これまでは「CSSテーマをBlack & Whiteに」「個々のモデルに対してアイコン表示設定をON」として使っていました(特に印刷物対応が必要となる文書向けのダイアログ作成では)。

ちなみにアイコン表示設定は Appearance の最下部にあるElement iconのチェックボックスになります。

ただ全てのモデルの表示設定を毎回手で実施していくのはやはりとても大変でして、一括変更が欲しい所です。

その場合は、自身でCSSテーマを作成することになります。

今回始めて自身でのCSSテーマ作成を実施したので、その内容について後半の記事に残しておきます。

2019/07/19

Papyrus/Eclipse 2019-06 の日本語化(Babel)

Babel Language Packs R0.17.0 are now available!

Papyrus 2019-06(4.4.0) のベースとなる Eclipse 2019-06 を日本語化する Babel の最新版がリリースされました。

過日の記事「Babel (Eclipse/Papyrusの日本語対応)のリリースについて」に記載した通り、無事に7月末までの時期にリリースされました。Eclipse 20XX-06 リリースの一ヶ月後という予定通りのリリースです。

Babel のインストールは このページの「Installing the language packs」に記載された内容 に基づき、進めていく形になります。

簡単に転記すると以下の通りです:

  • メニューの 'Help' > 'Install new software...' からインストールウィザードを開く
  • Babel p2 リポジトリである https://download.eclipse.org/technology/babel/update-site/R0.17.0/2019-06/ を追加する
  • 必要な言語パック(language pack)を選択しインストール
  • Eclipseを再起動することで選択言語に翻訳された Eclipse が起動

具体的なGUI操作については 過去の記事 「Papyrus の日本語化」 を参考にして下さい。

Papyrus RCP 日本語化した結果

インストール結果は以下の通りです。これまでと同じくEclipseとしての基本的なメニューは日本語化されますが、 Papyrus のメニューに関しては英語のままとなっています。

インストールしてみた印象として、前の版よりもインストール時にリポジトリからデータ取得する時間が増えている気がします。

なお日本語対応される対象プラグインは以下となっています:

  Babel Language Packs in Japanese 
    Babel Language Pack for datatools in Japanese (83.09%) 4.12.0.v20190713060001
    Babel Language Pack for eclipse in Japanese (92.9%) 4.12.0.v20190713060001
    Babel Language Pack for modeling.emf in Japanese (71.01%) 4.12.0.v20190713060001
    Babel Language Pack for modeling.graphiti in Japanese (63.83%) 4.12.0.v20190713060001
    Babel Language Pack for modeling.mdt.bpmn2 in Japanese (38.44%) 4.12.0.v20190713060001
    Babel Language Pack for modeling.tmf.xtext in Japanese (65.79%) 4.12.0.v20190713060001
    Babel Language Pack for mylyn in Japanese (84.84%) 4.12.0.v20190713060001
    Babel Language Pack for rt.rap in Japanese (93.71%) 4.12.0.v20190713060001
    Babel Language Pack for soa.bpmn2-modeler in Japanese (27.89%) 4.12.0.v20190713060001
    Babel Language Pack for technology.egit in Japanese (82.59%) 4.12.0.v20190713060001
    Babel Language Pack for technology.jgit in Japanese (15.62%) 4.12.0.v20190713060001
    Babel Language Pack for technology.lsp4e in Japanese (45.59%) 4.12.0.v20190713060001
    Babel Language Pack for technology.packaging in Japanese (58.43%) 4.12.0.v20190713060001
    Babel Language Pack for technology.packaging.mpc in Japanese (65%) 4.12.0.v20190713060001
    Babel Language Pack for tools.cdt in Japanese (76.85%) 4.12.0.v20190713060001
    Babel Language Pack for tools.gef in Japanese (15.69%) 4.12.0.v20190713060001
    Babel Language Pack for tools.tm in Japanese (81.63%) 4.12.0.v20190713060001
    Babel Language Pack for tools.tracecompass in Japanese (45.54%) 4.12.0.v20190713060001
    Babel Language Pack for webtools in Japanese (85.7%) 4.12.0.v20190713060001

2019/07/08

SysML 1.6 プロファイルのリリース

少しタイムラグがありましたが、SysML 1.6 プロファイルがリリースされた模様です。

これまでと同じく Marketplace から入手可能です。 検索キーワードとして papyrus を入力して検索(Go)すれば見つかると思います。

SysML1.6 プロファイルをインストール後、Papyrus プロジェクトの作成時に SysML 1.6 が選択可能となります。

前の SysML1.4 プロファイルの時と同じように、SysML特化のダイアグラムが選択・作成可能です。

また SysML1.6 プロファイルを適用したモデルでは、SysML1.6 で事前定義された複数のモデル:

  • ControlValues
  • PrimitiveBlocks:ValueTypes
  • UnitAndQuantityKind
  • Requrements
が利用可能です。各々ダイアグラムと共にモデル定義がなされています:

ControlValues では ControlValueKind が利用可能です。

ValueTypes では BooleanComplexIntegerRealおよびString のValueTypeが利用可能です。ブロック定義図の表記は少し見にくくなっていますが。

UnitAndQuantityKindでは QuantityKindUnitが利用可能です。

RequirementsではVerdictKindが利用可能です。

個人的には Annex E.3 Requirements Diagram Extensions に含まれる拡張要求のステレオタイプ

  • «functionalRequirement»
  • «interfaceRequirement»
  • «performanceRequirement»
  • «physicalRequirement»
  • «designConstraint»
の事前定義が欲しかったので、含まれていないのは少し残念です。

また幾つか表形式(Table)も利用可能です。 Allocation MatrixRequirement Tree Table などは役立ちそうです。

2019/07/03

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

Ubuntu 18.04/Gnome での Papyrus の起動

最近、Papyrusを動作させるメインプラットフォームが Ubuntu 18.04 (Linux) になりつつあります。 Windowsの場合には Papyrus をインストール (zipファイルの展開) 後、デスクトップにショートカットを作成し、 簡単に起動させているのですが、今まで Ubuntu ではコマンドラインかGUIベースのシェルから起動させていました。

Papyrusの最新版リリース後等では複数の Papyrus を切り替えて起動させることも増えてきて、 これまでの起動のさせ方だとだんだんと手間になってきました。 その際に、ふと「Ubuntuではどのようにショートカットを作成するんだろう」というのを思い出し、 少し調べてみるとやり方が分かったので、その方法を書いておきます。 具体的な方法は、 この記事 を参考にしました(感謝)。

GNOME PANELのインストール

まずは Gnome Panel のインストールが必要そうです。調べた他のWebページでは他のやり方が書かれているものもありましたが、 Gnome Panelベースで進めようと思います。

例によって例のごとく、gnome-panel をインストールします:

$ sudo apt install gnome-panel
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  alacarte geoclue geoclue-ubuntu-geoip gnome-applets gnome-applets-data gnome-flashback gnome-flashback-common
  gnome-panel-data gnome-screensaver gnome-session-flashback gnome-system-monitor indicator-applet-complete
  indicator-bluetooth indicator-datetime indicator-keyboard indicator-printers libaccounts-glib0 libfcitx-gclient1
  libfcitx-utils0 libgeoclue0 libnm-glib4 libnm-util2 libpanel-applet3 metacity ubuntu-touch-sounds
提案パッケージ:
  tomboy evolution-common desktop-base fcitx
以下のパッケージが新たにインストールされます:
  alacarte geoclue geoclue-ubuntu-geoip gnome-applets gnome-applets-data gnome-flashback gnome-flashback-common gnome-panel
  gnome-panel-data gnome-screensaver gnome-session-flashback gnome-system-monitor indicator-applet-complete
  indicator-bluetooth indicator-datetime indicator-keyboard indicator-printers libaccounts-glib0 libfcitx-gclient1
  libfcitx-utils0 libgeoclue0 libnm-glib4 libnm-util2 libpanel-applet3 metacity ubuntu-touch-sounds
アップグレード: 0 個、新規インストール: 26 個、削除: 0 個、保留: 0 個。
22.2 MB のアーカイブを取得する必要があります。
この操作後に追加で 53.9 MB のディスク容量が消費されます。
続行しますか? [Y/n] 
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 alacarte all 3.11.91-3 [81.7 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libgeoclue0 amd64 0.12.99-4ubuntu2 [27.2 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libnm-util2 amd64 1.10.6-2ubuntu1.1 [117 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libnm-glib4 amd64 1.10.6-2ubuntu1.1 [78.7 kB]             
取得:5 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 geoclue amd64 0.12.99-4ubuntu2 [19.4 kB]                      
取得:6 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 geoclue-ubuntu-geoip amd64 1.0.2+18.04.20180223-0ubuntu1 [11.6 kB]
取得:7 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 gnome-applets-data all 3.28.0-1 [6,027 kB]                    
取得:8 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 gnome-panel-data all 1:3.26.0-1ubuntu5 [961 kB]               
取得:9 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 gnome-panel amd64 1:3.26.0-1ubuntu5 [372 kB]                  
取得:10 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libpanel-applet3 amd64 1:3.26.0-1ubuntu5 [19.5 kB]           
取得:11 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 gnome-applets amd64 3.28.0-1 [280 kB]                        
取得:12 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 gnome-flashback-common all 3.28.0-1ubuntu1.3 [71.9 kB]
取得:13 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 gnome-flashback amd64 3.28.0-1ubuntu1.3 [239 kB]     
取得:14 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 gnome-screensaver amd64 3.6.1-8ubuntu3 [235 kB]              
取得:15 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 metacity amd64 1:3.28.0-1ubuntu0.1 [216 kB]          
取得:16 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 gnome-session-flashback all 1:3.28.0-1ubuntu1.3 [5,436 B]
取得:17 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 gnome-system-monitor amd64 3.28.2-0ubuntu1 [193 kB]      
取得:18 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 indicator-applet-complete amd64 12.10.2+17.10.20170425-0ubuntu1 [19.7 kB]
取得:19 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libaccounts-glib0 amd64 1.23+17.04.20161104-0ubuntu1 [41.0 kB]
取得:20 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 indicator-datetime amd64 15.10+17.10.20170829.2-0ubuntu4 [275 kB]
取得:21 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libfcitx-utils0 amd64 1:4.2.9.6-1 [35.2 kB]                  
取得:22 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libfcitx-gclient1 amd64 1:4.2.9.6-1 [20.8 kB]                
取得:23 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 indicator-keyboard amd64 0.0.0+18.04.20180216-0ubuntu1 [50.3 kB]
取得:24 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 ubuntu-touch-sounds all 15.08 [12.7 MB]                      
取得:25 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 indicator-bluetooth amd64 0.0.6+17.10.20170605-0ubuntu3 [33.8 kB]
取得:26 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 indicator-printers amd64 0.1.7+17.10.20171101-0ubuntu1 [26.3 kB]
22.2 MB を 1分 7秒 で取得しました (330 kB/s)                                                                                   
以前に未選択のパッケージ alacarte を選択しています。
(データベースを読み込んでいます ... 現在 593253 個のファイルとディレクトリがインストールされています。)
.../00-alacarte_3.11.91-3_all.deb を展開する準備をしています ...
alacarte (3.11.91-3) を展開しています...
以前に未選択のパッケージ libgeoclue0:amd64 を選択しています。
.../01-libgeoclue0_0.12.99-4ubuntu2_amd64.deb を展開する準備をしています ...
libgeoclue0:amd64 (0.12.99-4ubuntu2) を展開しています...
以前に未選択のパッケージ libnm-util2:amd64 を選択しています。
.../02-libnm-util2_1.10.6-2ubuntu1.1_amd64.deb を展開する準備をしています ...
libnm-util2:amd64 (1.10.6-2ubuntu1.1) を展開しています...
以前に未選択のパッケージ libnm-glib4:amd64 を選択しています。
.../03-libnm-glib4_1.10.6-2ubuntu1.1_amd64.deb を展開する準備をしています ...
libnm-glib4:amd64 (1.10.6-2ubuntu1.1) を展開しています...
以前に未選択のパッケージ geoclue を選択しています。
.../04-geoclue_0.12.99-4ubuntu2_amd64.deb を展開する準備をしています ...
geoclue (0.12.99-4ubuntu2) を展開しています...
以前に未選択のパッケージ geoclue-ubuntu-geoip を選択しています。
.../05-geoclue-ubuntu-geoip_1.0.2+18.04.20180223-0ubuntu1_amd64.deb を展開する準備をしています ...
geoclue-ubuntu-geoip (1.0.2+18.04.20180223-0ubuntu1) を展開しています...
以前に未選択のパッケージ gnome-applets-data を選択しています。
.../06-gnome-applets-data_3.28.0-1_all.deb を展開する準備をしています ...
gnome-applets-data (3.28.0-1) を展開しています...
以前に未選択のパッケージ gnome-panel-data を選択しています。
.../07-gnome-panel-data_1%3a3.26.0-1ubuntu5_all.deb を展開する準備をしています ...
gnome-panel-data (1:3.26.0-1ubuntu5) を展開しています...
以前に未選択のパッケージ gnome-panel を選択しています。
.../08-gnome-panel_1%3a3.26.0-1ubuntu5_amd64.deb を展開する準備をしています ...
gnome-panel (1:3.26.0-1ubuntu5) を展開しています...
以前に未選択のパッケージ libpanel-applet3 を選択しています。
.../09-libpanel-applet3_1%3a3.26.0-1ubuntu5_amd64.deb を展開する準備をしています ...
libpanel-applet3 (1:3.26.0-1ubuntu5) を展開しています...
以前に未選択のパッケージ gnome-applets を選択しています。
.../10-gnome-applets_3.28.0-1_amd64.deb を展開する準備をしています ...
gnome-applets (3.28.0-1) を展開しています...
以前に未選択のパッケージ gnome-flashback-common を選択しています。
.../11-gnome-flashback-common_3.28.0-1ubuntu1.3_all.deb を展開する準備をしています ...
gnome-flashback-common (3.28.0-1ubuntu1.3) を展開しています...
以前に未選択のパッケージ gnome-flashback を選択しています。
.../12-gnome-flashback_3.28.0-1ubuntu1.3_amd64.deb を展開する準備をしています ...
gnome-flashback (3.28.0-1ubuntu1.3) を展開しています...
以前に未選択のパッケージ gnome-screensaver を選択しています。
.../13-gnome-screensaver_3.6.1-8ubuntu3_amd64.deb を展開する準備をしています ...
gnome-screensaver (3.6.1-8ubuntu3) を展開しています...
以前に未選択のパッケージ metacity を選択しています。
.../14-metacity_1%3a3.28.0-1ubuntu0.1_amd64.deb を展開する準備をしています ...
metacity (1:3.28.0-1ubuntu0.1) を展開しています...
以前に未選択のパッケージ gnome-session-flashback を選択しています。
.../15-gnome-session-flashback_1%3a3.28.0-1ubuntu1.3_all.deb を展開する準備をしています ...
gnome-session-flashback (1:3.28.0-1ubuntu1.3) を展開しています...
以前に未選択のパッケージ gnome-system-monitor を選択しています。
.../16-gnome-system-monitor_3.28.2-0ubuntu1_amd64.deb を展開する準備をしています ...
gnome-system-monitor (3.28.2-0ubuntu1) を展開しています...
以前に未選択のパッケージ indicator-applet-complete を選択しています。
.../17-indicator-applet-complete_12.10.2+17.10.20170425-0ubuntu1_amd64.deb を展開する準備をしています ...
indicator-applet-complete (12.10.2+17.10.20170425-0ubuntu1) を展開しています...
以前に未選択のパッケージ libaccounts-glib0:amd64 を選択しています。
.../18-libaccounts-glib0_1.23+17.04.20161104-0ubuntu1_amd64.deb を展開する準備をしています ...
libaccounts-glib0:amd64 (1.23+17.04.20161104-0ubuntu1) を展開しています...
以前に未選択のパッケージ indicator-datetime を選択しています。
.../19-indicator-datetime_15.10+17.10.20170829.2-0ubuntu4_amd64.deb を展開する準備をしています ...
indicator-datetime (15.10+17.10.20170829.2-0ubuntu4) を展開しています...
以前に未選択のパッケージ libfcitx-utils0:amd64 を選択しています。
.../20-libfcitx-utils0_1%3a4.2.9.6-1_amd64.deb を展開する準備をしています ...
libfcitx-utils0:amd64 (1:4.2.9.6-1) を展開しています...
以前に未選択のパッケージ libfcitx-gclient1:amd64 を選択しています。
.../21-libfcitx-gclient1_1%3a4.2.9.6-1_amd64.deb を展開する準備をしています ...
libfcitx-gclient1:amd64 (1:4.2.9.6-1) を展開しています...
以前に未選択のパッケージ indicator-keyboard を選択しています。
.../22-indicator-keyboard_0.0.0+18.04.20180216-0ubuntu1_amd64.deb を展開する準備をしています ...
indicator-keyboard (0.0.0+18.04.20180216-0ubuntu1) を展開しています...
以前に未選択のパッケージ ubuntu-touch-sounds を選択しています。
.../23-ubuntu-touch-sounds_15.08_all.deb を展開する準備をしています ...
ubuntu-touch-sounds (15.08) を展開しています...
以前に未選択のパッケージ indicator-bluetooth を選択しています。
.../24-indicator-bluetooth_0.0.6+17.10.20170605-0ubuntu3_amd64.deb を展開する準備をしています ...
indicator-bluetooth (0.0.6+17.10.20170605-0ubuntu3) を展開しています...
以前に未選択のパッケージ indicator-printers を選択しています。
.../25-indicator-printers_0.1.7+17.10.20171101-0ubuntu1_amd64.deb を展開する準備をしています ...
indicator-printers (0.1.7+17.10.20171101-0ubuntu1) を展開しています...
alacarte (3.11.91-3) を設定しています ...
libnm-util2:amd64 (1.10.6-2ubuntu1.1) を設定しています ...
gconf2 (3.2.6-4ubuntu1) のトリガを処理しています ...
metacity (1:3.28.0-1ubuntu0.1) を設定しています ...
libgeoclue0:amd64 (0.12.99-4ubuntu2) を設定しています ...
indicator-printers (0.1.7+17.10.20171101-0ubuntu1) を設定しています ...
mime-support (3.60ubuntu1) のトリガを処理しています ...
libnm-glib4:amd64 (1.10.6-2ubuntu1.1) を設定しています ...
desktop-file-utils (0.23-1ubuntu3.18.04.2) のトリガを処理しています ...
libaccounts-glib0:amd64 (1.23+17.04.20161104-0ubuntu1) を設定しています ...
gnome-screensaver (3.6.1-8ubuntu3) を設定しています ...
gnome-applets-data (3.28.0-1) を設定しています ...
libglib2.0-0:amd64 (2.56.4-0ubuntu0.18.04.3) のトリガを処理しています ...
libglib2.0-0:i386 (2.56.4-0ubuntu0.18.04.3) のトリガを処理しています ...
libfcitx-utils0:amd64 (1:4.2.9.6-1) を設定しています ...
gnome-panel-data (1:3.26.0-1ubuntu5) を設定しています ...
bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) のトリガを処理しています ...
Rebuilding /usr/share/applications/bamf-2.index...
gnome-system-monitor (3.28.2-0ubuntu1) を設定しています ...
ubuntu-touch-sounds (15.08) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
gnome-flashback-common (3.28.0-1ubuntu1.3) を設定しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...
gnome-menus (3.13.3-11ubuntu1.1) のトリガを処理しています ...
dbus (1.12.2-1ubuntu1.1) のトリガを処理しています ...
libpanel-applet3 (1:3.26.0-1ubuntu5) を設定しています ...
hicolor-icon-theme (0.17-2) のトリガを処理しています ...
indicator-bluetooth (0.0.6+17.10.20170605-0ubuntu3) を設定しています ...
indicator-applet-complete (12.10.2+17.10.20170425-0ubuntu1) を設定しています ...
libfcitx-gclient1:amd64 (1:4.2.9.6-1) を設定しています ...
gnome-panel (1:3.26.0-1ubuntu5) を設定しています ...
indicator-datetime (15.10+17.10.20170829.2-0ubuntu4) を設定しています ...
geoclue (0.12.99-4ubuntu2) を設定しています ...
gnome-flashback (3.28.0-1ubuntu1.3) を設定しています ...
indicator-keyboard (0.0.0+18.04.20180216-0ubuntu1) を設定しています ...
geoclue-ubuntu-geoip (1.0.2+18.04.20180223-0ubuntu1) を設定しています ...
gnome-applets (3.28.0-1) を設定しています ...
gnome-session-flashback (1:3.28.0-1ubuntu1.3) を設定しています ...
gnome-session-flashback.target is a disabled or a static unit, not starting it.
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...

関連して結構色々なアプリやライブラリがインストールされますね。

インストール後はショートカット作成アプリの起動となります。

gnome-desktop-item-edit の起動

ショートカット作成アプリは nome-desktop-item-edit です。 引数として「作成するフォルダ(ようはデスクトップ)」と「新規作成用オプション」を渡して起動します。 以下のように実施します。

~$ gnome-desktop-item-edit ~/デスクトップ/ --create-new
Gtk-Message: 11:05:48.814: GtkDialog mapped without a transient parent. This is discouraged.

これにより以下のダイアログが起動されます。

この後、「名前」「コマンド」および「アイコン」を指定していきます。 「名前」は自分で指定する任意の名前です。 「コマンド」は Papyrus のアプリケーションを指定するのですが、ダイアログ右側の「参照」からGUI上でファイル指定が可能です。 「アイコン」ですが、これはダイアログ左上にある、ちょっと何のアイコンなのかわかりませんが、その表示をクリックすることで GUIでファイル指定が可能です。そこで、Papyrusのインストールフォルダにあるicon.xpmを指定します。

すべてを設定すると以下の表示となります。

これでショートカットの作成は完了です。[OK]ボタンを押します。

初回起動

作成したデスクトップ上のショートカットを見ると、確かに作成はされていますが。 アイコンの表示が反映されていなく「本当にちゃんと設定できたのかな?」と不安になりますが、安心して下さい :-)

デスクトップ上のアイコンをダブルクリックすると、初回は以下のダイアログが表示されます。

この右下の「信頼して起動」をクリックすると無事に Papyrus が起動されますし、デスクトップ上のショートカットアイコンも更新されます。

これで次回からダブルクリックするだけで Papyrus を起動することが可能となります。

2019/06/23

Babel (Eclipse/Papyrusの日本語対応)のリリースについて

今回の Eclipse/Papyrus 2019-06 のリリースを受け、

「そいえば前の 2019-03 リリースでは日本語化の Babel は update されなかったな」
ということが気になりました。 なお、Babel については 前の記事 を参考にして下さい。

気になったので Babel の Mailing List を調べたら以下の記事を見つけました:

[babel-dev] Future Babel Release Plan

簡単に要約すると:

  • 今後のBabelのリリースは Eclipse の6月リリースと12月リリースに対応した年2回となる
  • 対応するEclipseがリリースされた後、約一ヶ月後(4週間後)に Babel はリリースされる(6月リリースでは7月末、12月リリースでは1月末)
となります。

なるほど、それで2019-03では Babel のアップデートはなかったわけです。確かに BabelのDeveloper and Nightly Buildsのサイト を確認すると 2019-06 リリース対応の Babel の準備が着々と進んでいる模様です。

この先も Papyrus + Babel の組み合わせで進めていくのであれば

6月/12月リリースのEclipseに1月遅れのBabelを適用し8月/2月に更新し使用していく
とした方が良いかもしれません。

Papyrus 4.4.0 RCP/ Linux版の起動

動作確認

リリースされた Papyrus 4.4.0 RCP / Linux 版の入手を入手し、さっそく動作させてみました。 なお最近、メインPCを Linux (Ubuntu 18.04 x86_64) にしているので、Linux版RCPでの動作確認です。

いつも通りに Papyrus のサイトから RCP版をダウンロード・展開し、普通に起動してみました。

特に問題なく起動しました。確かに 2019-06 (4.4.0) となっています。

SysML 1.6 Profile

今回のリリースの特徴は SysML 1.6 対応 とのことで通常のRCP版でも SysML1.6プロファイルがついてくるのかなと思い、普通に Papyrus プロジェクトを作成しようとしてみましたが、残念ながら選択肢に SysML 1.6 は現れませんでした。前の版までは SysML 1.4 プロファイルを適用後には、このプロジェクト作成段階で選択肢として出てくるので、どうもRCPのリリース版に直接含まれているわけではないみたいですね。

はてと思い、もしかしたら今回の Papyrus から新規プロジェクトの作成では出てこなくなったのかなと思い、通常のUMLプロジェクトを作った後で、プラグイン適用をしてみることにしました。UMLプロジェクト作成後、トップモデルを選択し、Profile 適用をしようとした画面が以下となります。

うーん、やっぱり入ってなさそうですね。。。

なので、これまでと同じく Market Place をインストールし、Papyrus向けのプロファイルプラグインを別途導入する形で進めようと思います。

Market Place のインストール

これもこれまでと同じく Papyrus RCP版では Market Place の選択メニュー(これもプラグイン)が導入されていないので、追加インストールで導入していこうと思います。これまでの記事と同じく Install New Software で Marketplace Plugin を導入していきました。

Market Place インストール後、プラグイン検索画面で sysml で検索した結果が以下となります。

うーん。。。既存の SysML1.4 しか見当たりません。他にも Papyrus 等のキーワードで試してみましたが、やはり見つかりませんでした。

SysML1.6 プラグインへの結論

最終確認というわけではありませんが、今回の Papyrus 4.4.0 の最大の特徴は SysML 1.6 対応 みたいですが、まだ同プラグインは準備できていないのではと思います。またプラグインの存在(リリース?)が確認できたら報告させていただこうかと思います。なお Model2Doc も明確には見当たりませんでした。全てについて、もう少し待ってみて、情報が確認できてから 4.4.0 に移行した方が良さそうです。

2019/06/22

Papyrus 2019-06 release (4.4.0)

リリース概要

Eclipse 2019-06 の 6/19 のリリースに合わせて、 Papyrus 2019-06 (4.4.0) もリリースされました。 本リリースの詳細は ここに、 ダウンロードは ここから可能です。

Eclipse 2019-06 のリリース直後に Papyrus の Jenkins を覗いてみたら、まだビルド失敗を受けた再テストの真っ最中だったのですが、 その後、テストを通った所まで確認できたので、そろそろリリースかなと思ってたら、 早々にリリースされました。

Papyrus 2019-06 の特徴

最大は SysML 1.6 への対応でしょうか。 メーリングリスト等で Papyrus / SysML Profile の問題点等も指摘されていたので、 その対応を含むのかなと思います。とはいえ、 OMGのサイト情報 によると SysML 1.6 はまだ beta ステータスなので、少し踏むこんだ対応に思えます。 具体的な対応内容については上記のリリース詳細がかかれたサイトで確認できます。 個人的には、 SysML は Papyrus のプラグイン(Profile)の1つなので、 それが Papyrus のリリースの最大の目玉になっている理由が気になる所です。 また動かして試してみようと思います。

その他には LibreOffice の Writer(odt) に向けた Model2Doc もあるみたいです。 LibreOffice Writer に落ちれば、そこから Microsoft Word の docx や、 pdf直接の出力なので、どのような感じかまた試してみたく思います。

後はやはり Papyrus プラグイン向けの対応が多い印象です。

どちらにしても最近のリリースは少し難産だった印象があるので、 Eclipse のリリースと共に、ほぼオンスケで Papyrus もリリースされるようになり、 色々と安定してきたのかなとの印象もあります。開発者の皆様に感謝です。

2019/06/05

UML Profile の適用方法

はじめに

前回の UML Standard Profile の記事を書いた後でふと気になり、 これまでの記事を見直して Profile 適用方法について書いてないことに気が付きました。 そのため Papyrus における Profile 適用方法について書いておこうと思います。

モデルへのProfile適用

最初にすでに何かしらの Papyrus UML モデルが作成されていることを前提とします。

また一般に、作成するモデル全域にプロファイルを使用可能としたいケースが多いと思いますので、 それを前提として話を進めます。

まず最初に Model Explorer 上で最上位のモデル要素 (それは Model となります。 この記事を参照下さい)を選択します。 こんな感じです。

その後、右下の Properties タブから Profile を選択します。

この Profile applications の所で適用するプロファイルを選択する操作となります。

その右上の所に列をなした操作ボタンが見て取れると思います。

このボタン列は左から、適用するプロファイルに関する以下の操作が行えます。

  1. Apply profile -- ユーザが作成した Profile の適用
  2. Remove selected elements -- 選択したプロファイルの適用を解除します (プロファイル適用後の操作となります)
  3. Apply registered profile -- Papyrus に登録されているプロファイルを適用します

今回は Standard Profile の適用を考えるので3番目の Apply registered profile で説明します。 1つ目の Apply profile はユーザ作成プロファイルの説明を行う際にまた説明しようかと思いますが、 適用するプロファイルの選択方法だけの話なので、プロファイル適用後の各モデル要素へのステレオタイプ適用のやり方は同じです。

3つ目のボタン Apply registered profle (ボタン上にマウスをあてて少し時間をおけば本文字列が表示されます。 なおこのボタン上のアイコンが何を示しているのか、すみません、理解していません。。) をクリックします。 そうすると以下のダイアログが表示されます。

Eclipse Marketplace からどのような拡張機能を導入しているかにより表示されるプロファイルは異なりますが、 色々と魅力的なプロファイルが registered されているのかが見て取れます。

今回は Standard Profile の適用で進めていくので Standard と表示されているプロファイルを選択し OK をクリックします。 そうすると Profile applications が以下のように変化するかと思います。

これでモデルへのプロファイル適用は完了です。この後、モデル要素に対するステレオタイプ適用について説明します。

モデル要素に対するステレオタイプ適用

モデル要素に対するステレオタイプ適用はダイアグラムベースで行うことが多いかと思いますので、 ここではクラス図を元に説明します。今、以下のようなクラス成果物 (Artifact)、およびモデル (Model)が 作成されているとします。

ここでクラス (Class)に対してステレオタイプを適用するとします。 まずはクラス図上で本モデル要素 (クラス/Class) を選択し、その下の Propertiesタブの Profile を選択します。

Applyed stereotypeという表示になっているかと思います。 ここで[+]ボタン(Apply stereotype)をクリックします。 すると以下に示すダイアログが表示されます。

左側に対象とするモデル要素に適用可能なステレオタイプが表示されます。 どのモデル要素が対象となるかはステレオタイプ定義の際に規定してあるのですが、 前回のStandard Profileの記事の表では 適用先と表示された列が該当し、今回では Class と記載されたものが対象となります。

今回は «Auxiliary» を選択し、右向きの矢印(⇒)をクリックすることで Applied Stereotype に移動します。

そしてOKを押すと対象とするモデル要素にステレオタイプが適用された表示となります。

クラス図上で «Auxiliary» が適用されているのが見える化と思います。 また Propertiesタブの Profile の所にも選択したステレオタイプが表示されています。

ステレオタイプに属性が定義されている際には、この Properties/Profile の所で設定ができるのですが、 今回は特に指定されているものがないので説明を割愛します。 また自身でProfile定義を行った際に使い方、およびクラス図上での表示のさせ方を説明しようと思います。

同じく Artifact および Model のモデル要素にもステレオタイプを適用してみようと思います。 各々を選択して、同じく Applyed stereotype を選択するとArtifactおよびModelの順に以下のダイアログが表示されると思います。 モデル要素毎に適用可能なステレオタイプが選択されているのが見て取れます。

そして最終的にはこのようなステレオタイプを適用したモデル(クラス図)となりました。

細かな部分で説明をはしょりましたが、基本的なプロファイル適用操作はこのようになります。

2019/05/31

UML/Standard Profile

UMLでは幾つかの「標準プロファイル」が規定されています.

UML仕様書(2.5.1)では22章(Standard Profile) にあたります.

Papyrus でも Standard Profile はサポートされており,Software Designer でコード生成する際に Standard Profile にて規定のステレオタイプが必要になることもあります.

UML 2.5.1 仕様書に規定されている Standard Profile モデルとしては以下の図で示される33個ほどあります.

また Table 22.1 Description of the Stereotypes in the UML StandardProfile に,その詳細な説明が記載されています.以下参考として同内容を転記しておきます. なお34個記載されていますが,これは«Create»の適用先が2つあるためで,ステレオタイプの個数としては33個となります.

若干機械的に翻訳したため説明が分かりにくいものも多々ありますが,詳細な情報を確認し,適宜updateしていければと考えています.

Description of the Stereotypes in the UML StandardProfile
名前 適用先 説明
«Auxiliary» Class

通常,二次的なロジックまたはコントロールフローを実装することで,より中心的な別のクラスまたは基本クラスをサポートするクラス. 補助クラスは通常,フォーカスするクラスと一緒に使用され,設計中に二次的なビジネスロジックやコンポーネントの制御フローを指定する場合に特に便利. «Focus»も参照のこと.

«BuildComponent» Component

コンパイルやバージョン管理など,システムレベル開発活動の目的のために定義された要素の集合.

«Call» Usage

そのソースが操作であり,そのターゲットが操作である使用法の依存関係. この関係は,依存関係が適用されるクラス内に操作が存在するという意味で,操作を含むクラスに包含されることもある. コール依存関係は,ソース操作またはソースクラス内の操作が,ターゲット操作またはターゲットクラス内の操作を呼び出すことを指し示す. コール依存関係は,ソース操作を,範囲内にある任意のターゲット操作(これに限定されるものではないが,囲み分類器の操作および他の可視分類器の操作)に接続することができる.

«Create» Usage

クライアント分類子がサプライヤ分類子のインスタンスを作成することを示す使用依存関係.

«Create» BehavioralFeature

指定されたフィーチャが,フィーチャが関連付けられている分類子のインスタンスを作成することを指し示す.

«Derive» Abstraction

通常同じタイプのモデル要素間の派生関係を指定するが,必ずしもそうである必要はない. 派生した依存関係は,クライアントがサプライヤから計算されることを指し示す. マッピングは計算を指定する. クライアントは,たとえ論理的に冗長であっても,効率性などの設計上の理由で実装することができる.

«Destroy» BehavioralFeature

指定された機能が,その機能が接続されている分類子のインスタンスを破棄することを示す.

«Document» Artifact

人間が読める形式のファイル. «ファイル» のサブクラス.

«Entity» Component

ビジネスコンセプトを表す永続的な情報コンポーネント.

«Executable» Artifact

コンピュータシステム上で実行可能なプログラムファイル. «ファイル»のサブクラス.

«File» Artifact

開発システムのコンテキストにおける物理ファイル.

«Focus» Class

サポートする1​​つ以上の補助クラスのコアロジックまたはコントロールフローを定義するクラス. フォーカスクラスは,通常,1つ以上のAuxiliaryクラスとともに使用され, 設計中にコアとなるビジネスロジックやコンポーネントの制御フローを指定する場合に特に便利. «Auxiliary»を参照.

«Framework» Package

システムの全部または一部に対して再利用可能なアーキテクチャを指定するモデル要素を含むパッケージ. フレームワークには通常,クラス,パターン,またはテンプレートが含まれる. フレームワークがアプリケーションドメインに特化している場合, フレームワークはアプリケーションフレームワークと呼ばれることもある.

«Implement» Component

仕様自体を持たないことを意図したコンポーネント定義. むしろ依存性を持つ別個の「仕様」の実装.

«ImplementationClass» Class インスタンスが複数のクラスを持たないプログラミング言語(C++,Smalltalk,Javaなど)のクラス実装. これは,Classとは対照的である. インスタンスは,一度に複数のクラスを持ち,時間の経過とともにクラスを獲得したり 失ったりする可能性があり,オブジェクトは複数のクラスを動的に持つことがある. Implementationクラスは,Classifierのオペレーションに指定されたのと同じ振る舞いで, Classifierに対して定義されたすべてのオペレーションを提供する場合,Classifierを実現すると言われている. インプリメンテーション・クラスは,いくつかの異なるタイプを実現することができる. Implementationクラスの物理的属性および関連は,それが実現する任意のClassifierのものと同じである必要はなく, Implementation Classは,その物理的属性および関連性に関して操作のためのメソッドを提供することができる. «Type»も参照のこと.
«Instantiate» Usage

クライアント上の操作がサプライヤのインスタンスを作成することを示す分類子間の使用依存関係.

«Library» Artifact

静的または動的なライブラリーファイル. «File»のサブクラス.

«Metaclass» Class

インスタンスもクラスであるクラス.

«Metamodel» Model

いくつかのモデリング言語(たとえば,MOFモデル)のモデリング概念を指定するモデル. «Metaclass»を参照.

«ModelLibrary» Package

他のパッケージによって再利用されることを意図したモデル要素を含むパッケージ. いくつかのプログラミング言語では,クラスライブラリに類似している. モデルライブラリには,プロファイルおよびステレオタイプなど, 12.3節で指定されたメタモデル拡張メタクラスのインスタンスは含まれない場合がある. ただし,ProfileApplicationsおよびStereotypeアプリケーションが含まれている場合があり, モデルライブラリはしばしば適用されたプロファイルと共に使用される.

«Process» Component

トランザクションベースのコンポーネント.

«Realization» Classifier

オブジェクトのドメインを指定し,それらのオブジェクトの物理的な実装も定義する分類子. 例えば«Realization»によってステレオタイプ化されたコンポーネントは, 別個の«Specification»コンポーネントで指定された動作を実装する分類子を実現するのみ. «仕様»を参照. «ImplementationClass»は,システム設計者にとって有益な属性やメソッドなどの機能を持つことができるクラスの実現であるため, «ImplementationClass»とは異なります.

«Refine» Abstraction

異なる意味レベルでのモデル要素間の洗練された関係(分析や設計など)を指定. マッピングは,2つの要素または要素のセットの間の関係を指定する. マッピングは計算可能であってもなくてもよく,単方向または双方向であってもよい. リファインメントを使用し,分析から設計およびその他の変更に至るまでの変換をモデル化することができる.

«Responsibility» Usage

要素の他の要素との関係における契約または義務.

«Script» Artifact

コンピュータシステムによって解釈可能なスクリプトファイル. «File»のサブクラス.

«Send» Usage

オペレーションがシグナルを送信することを指定, クライアントがオペレーションでありサプライヤがシグナルである使用法.

«Service» Component

ステートレスで機能的なコンポーネント.

«Source» Artifact

実行可能ファイルにコンパイルできるソースファイル. «File»のサブクラス.

«Specification» Classifier

これらのオブジェクトの物理的な実装を定義せずにオブジェクトのドメインを指定する分類子. 例えば,«Specification»によってステレオタイプ化されたコンポーネントは,インタフェースを提供し, 必要とするだけであり,その定義の一部として実現クラスを持たないことを意図している. «Type»は,アナリストのモデリングシステムにとって有用な属性やメソッドなどの機能を持つことができるため, «Type»とは異なります. «Realization»を参照.

«Subsystem» Component

大規模システムにおける階層分解の単位. サブシステムは一般的に間接的にインスタンス化される. サブシステムの定義はドメインやメソッドによって大きく異なり, ドメインとメソッドのプロファイルがこの構造を特化することが期待される. サブシステムは,仕様と実現要素を持つように定義することができる. «Specification»と«Realization»を参照.

«SystemModel» Model

SystemModelは,同じシステムのモデルのコレクションを含むステレオタイプのモデル. SystemModelには異なるモデルに含まれるモデル要素間のすべての関係と制約も含まれる.

«Trace» Abstraction

異なるモデルで同じ概念を表すモデル要素またはモデル要素のセット間のトレース関係を指定する. トレースは,主にモデル間の要件と変更を追跡するために使用される. モデルの変更は両方向で発生する可能性があるため,依存関係の方向性はしばしば無視できる. マッピングは2つの間の関係を指定するが,ほとんど計算可能ではなく通常は形式でない.

«Type» Class

それらのオブジェクトの物理的な実装を定義することなく, オブジェクトに適用可能な操作と共にオブジェクトのドメインを指定するクラス. ただし属性と関連性を持つことがある. タイプ操作の動作仕様は,例えばアクティビティ図を用いて表現することができる. オブジェクトは実装クラスを最大で1つ持つことができるが,複数の異なる型に準拠することができる. «ImplementationClass»も参照.

«Utility» Class

インスタンスを持たないクラスで,属性と操作の名前付きコレクションを表す. これらはすべて静的である.