Enterprise Architect
SysML 操作セミナー(SysMLに関する操作方法 第4版)

SparxSystems Japan Co., Ltd.

説明環境と進め方[本日の環境]Enterprise Architect 16.1 ビルド1626• バージョンが異なる場合、操作が異なる点があるかもしれません。
➢ バージョン15.2以前の場合、いくつかの機能は利用できません。
➢ このスライドで説明する機能のいくつかは、ビルド1625までには含まれていません。

• 操作 マークがスライド左上にあるページでは説明およびスライドの内容に従って、動画を止めてツールを操作してみてください。
2

前提・設定3

SysMLを利用するには以下の条件を満たすことが必要です。
• Enterprise Architectの以下のエディション➢コーポレート版 (バージョン14.0以降)➢ユニファイド版➢アルティメット版

4

設定の確認 1
EAを起動し、「アドイン・拡張」リボン内の「MDGテクノロジー」パネルにある「設定」ボタンを押して「SysML 1.5」が有効になっていることを確認する➢SysML1.4と1.5は統合され、「SysML1.5」として利用できます➢他のバージョンのSysMLにはチェックを入れないでください

5

設定の確認 2「アドイン・拡張」リボン内の「アドイン」パネルにある「管理」ボタンを押すと表示される「アドインの管理」
画面の一覧に「SysMLサポート」が表示され、「有効」になっていることを確認する➢ 「SysMLサポート」ではなく「SysML」が表示される場合には、過去のバージョン用の「MDG Technology for SysML」アドインがインストールされています。このアドインは最新バージョンでは動作に悪影響を及ぼしますので、Windowsのコントロールパネルからアンインストールして下さい。
(「MDG Technology for SysML」の販売は終了しました。)

6

操作

設定の確認 3Enterprise Architectの画面右上の「パースペクティブ」ボタンを押し、「システムズエンジニアリング」→「SysML」あるいは「SysML 基本要素のみ」を選択するとダイアグラムの作成時などにSysMLに関する内容のみが表示されるようになります。

7

SysMLアドインについて

8SysMLアドインとは？
• EAに、SysML固有の機能やプロパティ画面を提供するためのアドイン• スパークスシステムズ ジャパンが独自に作成(日本で購入したお客様のみ利用可能)• EA日本語版のインストールで、自動的にインストールされます
補足：
SysMLアドインは、機能追加・改善を続けています。このドキュメントでは、Enterprise Architect16.1 ビルド1626に付属するSysMLアドインを利用しています。
9例
パートプロパティ要素をダブルクリックした場合アドインがない場合:
標準のプロパティ画面アドインがある場合:
独自の内容でSysMLのための便利な画面
10

SysMLに関する操作

11基本的な操作方法
UMLと共通の操作で利用可能➢パッケージ・ダイアグラムの作成➢要素の作成・配置➢クイックリンク

補足：
上記の内容については、入門セミナーを受講して下さい。
https://www.sparxsystems.jp/seminar/EAIntroduction.htm

12説明・演習内容• 要求図• ブロック定義図• 内部ブロック図• パラメトリック図

13

要求図・要求• 要求要素をダブルクリックすると専用のプロパティ画面が表示される• 要求要素を要求図に配置した場合にはidやtextを表示できる➢ 値が設定されていない場合には表示されない• 「独自の属性」ボタンを利用して独自の属性を定義・表示可能

14

操作演習

1. 演習用ファイルの「要求」パッケージ内にある要求図を開いてください。
2. 以下の要求要素を作成してください。

«requirement»
基本
id = "REQ001"
text = "説明文"«requirement,additonal»
応用
ASIL = "B"
id = "REQ002"
text = "説明文"

15

SysMLダイアグラムのフレーム• 初期状態では、フレームは「固定」されている➢左上に表示➢要素の位置に応じて自動的に拡大・縮小• フレームのタイトル部分を右クリックし「選択可能」を選ぶことで、固定を解除可能➢フレームを選択し位置や大きさを変更可能➢フレームの大きさは自動的に縮小しなくなる

16

要求番号の自動設定• Enterprise Architectの「自動カウンター」の設定を行うと、独立した要求についてプロパティ画面の「自動」ボタンでIDの設定が可能です。
• 包含(ネスト)で結ばれる要求については、親(上位)となる要求にIDが設定されている場合に、「自動」ボタンで子番号を設定可能です。
➢オプションで包含を逆向きに作成する設定にすると便利です。
17

ブロック
• ブロックをダブルクリックすると、基本的な設定を効率よく行うことのできるプロパティ画面が表示されます。
• 「プロパティの追加」枠内の項目を利用しプロパティ要素を作成できます。
• 子ダイアグラムがある場合には、左下のボタンで移動できます。
➢ この画面を表示しない設定も可能(「アドイン・拡張」リボン内の「SysML」ボタンを押し、「管理・オプション」→「ブロック要素のプロパティダイアログを常に表示」)

18

ブロック: プロパティ要素の追加
プロパティ要素(パートプロパティ)は以下のいずれかの方法で作成可能➢ ブロック要素のプロパティ画面から作成➢ ツールボックスからプロパティ要素をドラッグ&ドロップ➢ モデルブラウザからブロックをドラッグし、ダイアグラム内の別のブロックの上にドロップし「要素の配置」画面で「プロパティ」を選択する➢ ブロック定義図で、ブロック要素間に関連・集約・コンポジションを作成✓ 関連を利用する場合は、ユーザーオプションで、関連の既定の向きを「ソース→ターゲット」に設定する必要がある
補足:
このスライドでは、要素を示す場合には「プロパティ要素」と記述します。

19

補足: 集約の向き
SysMLアドインのメニューから「管理・オプション」→「オプション」→「集約の作成時に向きを明示」を選択すると、集約やコンポジションに矢印が表示されます。
(プロパティから変更可能ですが、この設定を有効にすることで手間が省けます)20

ブロック: ポートの追加
ポートは、以下のいずれかの方法で追加可能➢ツールボックスから、作成したい種類のポートをドラッグし、ダイアグラム内のブロックにドロップ➢ブロックを右クリックし、「子要素の追加」以下にあるポートの種類を指定➢モデルブラウザからブロックやインターフェースブロックをドラッグし、ダイアグラム内の別のブロックの上にドロップし「要素の配置」画面で「ポート」を選択
21

ポートやプロパティ要素の型
対象の要素をダブルクリックすると表示されるプロパティ画面内から設定・変更可能➢ツールボックスから作成した場合は、型は未定義➢モデルブラウザ内の要素から作成した場合は型はその要素に設定済み✓インターフェースブロックをドロップした場合には種類を「代理ポート」に設定

22

ブロックの区画
ブロックの区画は、対応する要素を保持するが図に表示されていない場合に表示される➢例: 完全ポートを追加し、図から削除(Deleteキー)すると、full ports区画に表示される➢区画名と、その区画に表示される内容との対応はヘルプをご覧ください<<block>>
Block1<<block>>
Block1

full ports<<full>> Port1

Port1

23

表示する区画の調整
ダイアグラムのプロパティサブウィンドウから区画を非表示にするかどうかを指定可能➢要素単位で指定する場合は、要素を右クリックし「区画の表示設定」を選択することで指定可能➢要求要素の内容は「タグ」区画に対応

24

ポートやプロパティ要素の再表示
ダイアグラムから削除し、区画として表示されているポートやプロパティ要素を再表示する手順は、以下のいずれかとなる➢ブロックを右クリックし「属性・操作と付属要素」→「付属要素」を選択すると表示されるサブウィンドウの「パートプロパティ」タブあるいは「付属要素」タブで表示する要素を選択➢モデルブラウザから、該当のポートやプロパティ要素をブロック(親要素)にドラッグ&ドロップする
25

ポートのフロー表現:1
ポートにデータの向きを表示する場合にはブロックやインターフェースブロックを定義しフロープロパティ要素として流れるデータを定義する➢ フロープロパティ要素のプロパティ画面で向きを指定可能➢ ポートの「型」として、該当のブロックを指定する«interfaceBlock»
MyTypenamespace

Port1: MyType«block»MyBlock

MyData26

ポートのフロー表現:2
ポートのプロパティ画面で、「型」を指定せずに「向き」を指定してOKボタンを押した場合には、以下のようにメッセージが表示され、前ページの構成を自動作成できる27

ポートのフローの向き
フロープロパティ要素で向きをinかoutにした場合にポートごとに向きを変えたい場合は、「共役」の値を変更する<<block>>
BlockXPortA :~BlockY

PortB :BlockY

28

ポートとコネクタの自動位置調整
ブロック定義図および内部ブロック図の背景で右クリックして「アドイン・拡張」→「SysML」→「レイアウトの自動調整」を実行することで以下の調整が可能➢ポートにつながるコネクタの端点がポートの中央になるように端点の位置を調整➢それぞれの辺ごとに、ポートを等間隔に配置➢入力・出力ポートを左右に配置
29

操作

演習

1. 「構造」パッケージ内のブロック定義図を開きます。
2. ブロックBlock1,Block2とインターフェースブロックInterfaceBlock1をツールボックスから配置します。
3. 以下の内容になるように、ポートとパートを追加してください。
➢ 方法は1通りではありません30

内部ブロック図• ブロックを右クリックし「子ダイアグラムの追加」→「内部ブロック図」を実行すると、対象のブロックの内部ブロック図を作成できる• 対象のブロックが持つポート・プロパティ要素を内部ブロック図に配置可能➢ 初回作成時や内部ブロック図を作成後の変更を反映するには、内部ブロック図の背景で右クリックして「付属要素の同期」を実行

31

アイテムフロー(情報フロー)
コネクタをダブルクリックすることで、運ばれる要素を簡単に設定・解除できます。
➢ポートに型が設定されている場合にはその型に応じた項目を運ぶ要素として選択できます。
➢ポートに型が設定されていない場合には運ぶ要素に基づいて、ポートに型を設定できます。
➢運ばれる要素のステレオタイプは、ダイアグラムのオプションで非表示にできます。
«ValueType» DATA
Property1

Property2
Port1

Port232

操作演習

1. バリュー型DATAをブロック定義図に追加してください。
2. Block1に内部ブロック図を作成して下さい。
3. 内部ブロック図を開き、要素を同期してからchildにポートを追加してください。
そしてポート間にコネクタを結んでください。
4. ポート間でDATAを運ぶようにしてください。

33

ブロックとして抽出
モデル調整アドインを利用することで、複数のプロパティ要素から新たなブロック要素を作成できます。
1. 内部ブロック図で複数のプロパティを選択
2. 右クリックメニューから「アドイン・拡張」→「モデル調整」→「別の図として抽出」を実行
3. 新しいブロック名を指定※新しいブロック要素はどの図にも配置されません。必要に応じてブロック定義図に配置してください。 34

プロパティから内部ブロック図を参照
プロパティ要素のプロパティ画面にある「型の内部ダイアグラムを開く」ボタンを押すとプロパティの型(=ブロック)が持つ内部ブロック図に移動できます。
➢オプションを有効にすることで、プロパティから簡単に内部ブロック図を参照できるように設定できます。

35

制約ブロックの定義
制約ブロック要素をツールボックスからダイアグラム内に配置すると以下のような画面が表示され等式からプロパティを自動生成可能➢配置済みの制約ブロック要素に対しては右クリックし「制約ブロックの編集」を選択

36

制約プロパティの定義
パラメトリック図内の制約プロパティ要素を右クリックし「制約プロパティの編集」を選択するとプロパティ間の束縛コネクタを表形式で作成可能
par [constraint block] ConstraintBlock2 [ConstraintBlock2]

in1 : Real: ConstraintBlock1{x = y + z}
y : Realx : Realout : Realz : Realin2 : Realpar [constraint block] ConstraintBlock2 [ConstraintBlock2]

in1 : Real«equal»: ConstraintBlock1{x = y + z}
y : Realx : Real«equal»out : Realz : Real«equal»in2 : Real37

操作演習

1. ブロック定義図に制約ブロック要素を配置してください。
2. 制約ブロックの編集画面が出ますので、式「a = b + c」を入力し、パラメータを自動生成してください。
3. 「パラメトリック」パッケージ内の図を開き制約ブロック要素をドロップし、結果を確認してください。
38

その他の主な機能

39

アクティビティ図のパーティション
ブロック要素を、モデルブラウザからドラッグしアクティビティ図にドロップすることでパーティションとして配置することが可能➢「配置形式」として「パーティション」を選択➢選択不可状態にすると作業がしやすい➢ アクティビティサポートアドインがあると便利

40アクティビティ図の詳細化
配置したアクションの詳細を記述したい場合もモデル調整アドインの抽出機能が利用可能➢ アクティビティ要素を自動作成し、振る舞い呼び出しアクションに置換

補足:
アクティビティ図にはアクティビティ要素は配置しません！！！！！

41

要求の一覧をExcel出力「アドイン・拡張」リボン内の「アドインメニュー」パネルに表示される「SysML」以下の項目から、要求のExcel出力が可能➢ 図の中で要求要素を選択した状態で実行すると、選択した要素のみが出力される

42

要求を階層的にExcel出力
要求要素がモデルブラウザ内で階層化されていたり包含・導出の関係がある場合に、階層的な表現でExcel出力ができます。
«requirement»
Requirement1
id = "REQ1"text = "テキストテキス
トテキストテキストテキス
ト"«requirement»
Requirement2
id = "REQ1.1"«requirement»
Requirement3
id = "REQ2"«deriveReqt»«requirement»
Requirement4
id = "REQ2.1"«requirement»
Requirement5
id = "REQ2.2"

43

内部ブロック図の情報をExcel出力
内部ブロック図内のインターフェース情報をExcel形式で出力可能

44

パラメトリック図のシミュレーション
ユニファイド版およびアルティメット版ではOpenModelicaやMATLAB Simulinkのコードを自動生成し、シミュレーションを実行可能(詳細はPDFドキュメント「SysMLパラメトリック図のシミュレーション 機能ガイド」をご覧ください。)

45

拡張マトリックスアドインの活用
拡張マトリックスアドインでは、ブロックと、そのブロックに配置されたアクションのマトリックスを表示可能(標準のマトリックス機能では不可能)
act [activity] Control Power [Control Power]

driver: Driver

v: Vehicle:Accelerator Cmd

Provide Powertorque out:

«continuous»

torque: Ft-lb:Gear Select«continuous»

Control
Accelerator
Position

ブロックをレーンの「型」として適用

Control Gear
SelectAccelerator Cmd: Accelerator Cmd

Gear Select: Gear SelectIgnition Off

bdd [package] Structure [Vehicle Hierarchy]«block,hardware»
Fuel Tank«block,hardware»
Enginereferences«store» : Fuel

«block,hardware»Transmission«block,hardware»
Differential«block,hardware»
Wheel46

参考

既存の情報の読み込み

以下の方法で、既存の内容からモデル要素を作成可能➢ CSV形式のファイルの読み込み➢ WordやExcelなどで文字列やセルを選択しダイアグラム内にドラッグ&ドロップ✓ ドロップすると表示されるメニューから、要素の種類を指定✓ 1行目が名前、2行目以降はノートに格納➢ Excelで(複数の)セルを選択してCtrl+Cを押してからダイアグラム内でCtrl+右クリック→「複数要素の一括作成」→「クリップボードから名前を読み込み」➢ APIやスクリプトで読み込み処理を自作(弊社でも開発を請け負っています)47