4.1.3 応用スキーマクラス図の記法
3D都市モデルに必要な地物の概念構造を記述した応用スキーマ(以下、「3D都市モデル応用スキーマ」と呼ぶ)は、同じく応用スキーマであるi-UR及びCityGMLから、標準製品仕様書に設定したユースケースに必要な地物型、地物属性及び地物関連を抽出したプロファイルとして構成する。そのため、応用スキーマクラス図では、それぞれの出典を明らかにするため、以下の記法を用いる。
表4-3 — 応用スキーマクラス図における出典の明示出典 | 地物型 |
---|
GML | 接頭辞:gml 色:緑 rgb(204, 255,204) |
CityGML | 接頭辞:core, bldg, luse, tran, brid, tun, frn, veg, wtr, dem 色:黄 rgb(255, 255,204) |
i-UR | 接頭辞:uro, urf 色:赤 rgb(255, 204, 255) |
応用スキーマクラス図は、UMLクラス図(ISO/IEC 19501:2005, Information technology — Open Distributed Processing — Unified Modeling Language(UML)Version1.4.2)に定められた記法に基づき、JPGISにおいて応用スキーマクラス図を記述するために抽出された記法により記述する。応用スキーマクラス図の記述に使用する記法を表4-4に示す。
表4-4 — 応用スキーマクラス図の表記表記 | 意味 |
---|
 | クラス。 クラスは3段の箱により記述する。 1段目の箱には、ステレオタイプ(クラスの種類)とクラス名を記述する。クラス名には、 表4-3に示す接頭辞を付ける。 2段目の箱には、クラスの属性を記述する。 3段目の箱は使用しない。 クラスの属性は、属性名、属性の型、属性の多重度から構成する。 属性の型は、属性が取る値の種類を指定する。xs:string(文字列型)のような基本的な型やgml:Solidのような幾何型、あるいは、応用スキーマで定義した別のクラスを指定できる。 属性の基本的な型は、 4.1.5に定義を示す。 応用スキーマクラス図では、属性名の前に「+」の記号が表示される。 これはUMLクラス図において、他のクラスからその属性を表示し、使用できるかどうか(可視性)を示す。 ただし、応用スキーマクラス図では可視性を使用しないため、無視してよい。 属性の多重度は、その属性が繰り返し出現可能な回数を指定する。 [a..b] のように指定し、a及びbは、a<=j<=bとなる任意の整数 j を意味する。[a..a] は、[a] と同じとみなす。以下のような記載方法がある。 [0..1]
| 0又は1 | [0..*]
| 0 以上 | [1..*]
| 1 以上 | [m]
| m | [m..n]
| m 以上 n以下 | [m,n]
| m 又は n |
なお、属性の多重度を省略することもできる。省略された場合は、1となる。 |
 | 継承。 元となるクラス(上位クラス)の特性を受け継ぐ新しいクラス(下位クラス)との関係を意味する。継承を実装する場合、下位クラスのインスタンス(データ)は、自分自身に定義された属性や関連役割だけではなく、上位クラスに定義された属性や関連役割もつ。 △が付く側(Class1)が上位クラスである。 なお、後述する関連とは異なり、上位クラスと下位クラスのインスタンスは、互いへの参照はもたない。あくまで、下位クラスのインスタンスが、上位クラスに定義された属性等を記述するデータ構造をもつことだけを意味する。 |
 | 関連。 二つのクラス間に関係性があることを意味する。 関連役割名は、この関連における役割を示す。また、関連には多重度を指定できる。多重度は、相手のクラス1に対して関連する自分の数を記載する。 多重度の記法は、属性の多重度と同じである。また、多重度が省略された場合は1となる。 関連を実装する場合、関連役割名をつけた属性として、他方のクラスのインスタンスへの参照をもたせる。 関連には向きをつけることができる。向きは矢印により記述する。関連に向きが付けられた場合、参照は片方向となる。すなわち、例図の場合にはClass1のインスタンスがClass2のインスタンスへの参照ともつが、Class2のインスタンスはClass1のインスタンスへの参照をもたない。 CityGMLでは、地物型と幾何型との間に関連が定義されている。これにより、都市オブジェクトは幾何オブジェクトへの参照をもつことができる。例えば、道路型(tran:Road)は空間属性として面型(gml:MultiSurface)と関連をもっている。これにより、道路の形状を面として取得し、道路オブジェクトは幾何オブジェクトとして取得した面を参照できる。 |
 | 集成。 二つのクラス間に全体と部分という関係がある関連である。全体となるクラス側に白いひし形を記述する。 関連役割名は、この関連における役割を示す。また、関連には多重度を指定できる。多重度は、相手のクラス1に対して関連する自分の数を記載する。 多重度の記法は、属性の多重度と同じである。また、多重度が省略された場合は1となる。また、向きをつけることができる。 集成を実装する場合、関連役割名をつけた属性として他方のクラスのインスタンスへの参照をもたせる、又は部品となるクラスのインスタンスを全体となるクラスのインスタンスの内部に記述する。 なお、標準製品仕様書では、集成の実装は、部品となるクラスのインスタンスを、全体となるクラスのインスタンスの内部に記述することを原則とする。部品となるクラスは、他のクラスのインスタンスから参照してもよい。 CityGMLでは、uro:Building(建築物)とuro:WallSurface(外壁面)との間に集成関連が定義されている。このとき、建築物が全体となり外壁面はその部品となる。 |
 | 合成。 二つのクラス間に全体と部分という関係がさらに強固な関連である。全体となるクラス側に黒いひし形を記述する。合成は、全体となるクラスが無くなった場合に、部分となるクラスも無くなる関係に用いる。 関連役割名や多重度の表記は、集成と同様である。 合成を実装する場合、部品となるクラスのインスタンスを、全体となるクラスのインスタンスの内部に記述する。 |
また、各クラスのステレオタイプは以下を意味する。
表4-5 — 応用スキーマクラス図で使用するステレオタイプステレオタイプ | 説明 |
---|
<< FeatureType >> | 地物型に適用するステレオタイプ。このステレオタイプをもつクラスは、応用スキーマのパッケージ内で定義される。 [出典: JPGIS 2014] |
<< DataType >> | 個々のインスタンスを区別する必要がない、値の集合となるクラスに適用するステレオタイプ。個々に区別する必要がないため、識別子をもたない。<< DataType >>のステレオタイプをもつクラスは、データ型と呼ばれ、属性の型として使用される。データ型には、あらかじめ定義された型と使用者が定義できる型とがある。あらかじめ定義された型には、基本データ型がある。 [出典: JPGIS 2014] 標準製品仕様書では、地物属性のまとまりとして定義したクラスに<< DataType >>を使用する。<< DataType >>で定義されたクラスは地物の属性の型もしくは地物の部品(合成関連における部品)として使用される。 |
<< Type >> | 識別子をもち、他と区別することができるオブジェクトに適用するステレオタイプ。識別子をもつため、他から参照することができる。 [出典: JPGIS 2014] 標準製品仕様書では、GMLやCityGMLで定義された地物以外の型のうち、識別子(gml:id)をもつ型(例:幾何オブジェクト)に<< Type >>を使用する。 |
<< BasicType >> | 値を表現するための基本的なデータ型。 [出典: JPGIS 2014] データ型のうち、あらかじめ定義された、基本データ型のことである。 標準製品仕様書では、GMLやCityGMLにおいて定義された、文字列型や整数型等の基本的な型から使用可能な値の範囲を狭めたデータ型に BasicType >>を使用する。 |
<< Enumeration >> | 文字列型や整数型などの基本データ型を制限し、取りうる値のみを列挙したリストとなるクラスに適用するステレオタイプ。 [出典: JPGIS 2014] 標準製品仕様書では、地物属性の定義域が固定となる場合に、定義域に含まれる値を列挙した型に<< Enumeration >>を使用する。 なお、 Enumeration >>は定義域が固定されるため、拡張製品仕様書において定義域が拡張される可能性のある場合には Enumeration >>は使用せず、コードリスト(gml:CodeType)を使用する。 |
<< Union >> | 指定したいくつかの型のうちの一つだけが選択される共用体に適用するステレオタイプ。 [出典: JPGIS 2014] 標準製品仕様書では、複数の属性のうち、いずれか一つを選択して値を記述したい場合に、複数の属性を列挙した型に<< Union >>を使用する。 |