JSON 形式での差分の確認方法
主要な変更とその差分の表示の仕方を示します。
はじめに
- プロジェクトをJSON形式で保存しておくとモデルの変更差分がテキストでも確認できます。
- 差分を確認したいプロジェクトを指定することで、従来通りエディタ上での差分表示も可能です。
- JSON形式での保存の注意事項はこちらを参照してください。
- ここでは基本的なJSON形式の表記と読み方、Gitでの差分表示の読み方を示します。
JSON形式でのモデル表記と読み方
モデルと関連が記録されます。各要素は概ね下記の要素から構成されます。
モデルのJSON形式表記例
// ユースケース「追従走行(ADAPTIVE)」の例
{
"Id": "dfeab440-43ff-47d3-aec0-887e82b5e746",
"EntityType": "Entity",
"Name": "追従走行(ADAPTIVE)",
"MetamodelId": "122fabe8-c00b-422d-be66-59e86fd79d1b",
"Metamodel": "ユースケース",
"Fields": {
"Name": "追従走行(ADAPTIVE)",
"Description": "先行車との車間距離を維持した走行。",
}
},
Id
- モデルのIDを示します。エラーのあった対象の検索や、関連の参照先などを検索する場合に利用できます。
EntityType
- モデルの種別を示します。下記の値となります。
- モデル -
Entity
- インタラクションモデルの要素 -
Lifeline
など
- モデル -
- モデルの種別を示します。下記の値となります。
Name
- モデルの名前を示します。
MetamodelId
- モデルのメタモデルのIDを示します。
Metamodel
- モデルのメタモデル名を示します。
Fields
- モデルのフィールド名とその値を示します。
- 値が設定されているフィールドのみ記録されます。
関連のJSON形式表記例
// ユースケース「追従走行(ADAPTIVE)」から任意のアクターへの関連の例
{
"Id": "0299e2b0-2b44-47c0-b808-41ddcf643933",
"RelationType": "Ref",
"MetamodelId": "3a058d5b-880b-4d67-ab54-6e40f2c8a40d",
"Metamodel": "主アクター関連",
"SourceId": "dfeab440-43ff-47d3-aec0-887e82b5e746",
"TargetId": "68f71941-4a9d-4ee0-afef-376c2b601f27"
},
Id
- 関連のIDを示します。
RelationType
- 関連の種別を示します。下記の値となります。
Embed
- 所有関連Ref
- 参照関連
- 関連の種別を示します。下記の値となります。
MetamodelId
- 関連のメタモデルのIDを示します。
Metamodel
- 関連のメタモデル名を示します。
SourceId
- 関連元のモデルのIDを示します。
TargetId
- 関連先のモデルのIDを示します。
差分の表示
差分を表示するアプリケーションなどにより表示の仕方は変わりますが、基本的には変更前はオレンジ色や赤色、変更後は黄色や緑色などで強調表示されます。
フィールド値の変更
- 変更前の値と変更後の値についてフィールド名と値を並べて表示します。
- 変更前後の値が強調表示されますので、一目で違いを確認できます。
- 値が未設定のフィールドは保存されません。値が設定された場合は、テキスト行が追加されたように表示されます。
- 関連の参照先・参照元の付け替えの場合、
SourceId
フィールド、TargetId
フィールドの値が更新され強調表示されます。
要素の追加
- 新規に追加された要素のテキスト全体が強調表示されます。
要素の削除
- 要素の削除は変更前の画面でテキスト全体が強調表示され、変更後の画面では空白で表示されます。
- 別のモデルファイルの親要素へ付け替えた場合も同様に表示されます。
要素の順序変更
- 構造化して保存している場合、順序変更のあった要素が強調表示されます(上図)。
- この時同じテキストで差分がない部分は強調表示されません。
- 構造化して保存していない場合、
SourceIndex
フィールドのみが更新され強調表示されます。SourceIndex
フィールドは、複数の要素を保持できるフィールドにおける要素の順序(何番目かを示すインデックス)を示すフィールドになります。構造化して保存していない場合に、ファイルに保存されます。SourceIndex
フィールドではなく、モデルの並び順で直感的に順序を把握したい場合は、構造化して保存するよう設定してください。
- 構造化して保存に関しては、こちらを参照してください