2011-02-15 第1章 実世界のモデル化と形式化 1.モデルとその形式表現 太田守重 [email protected] 地理情報科学教育用スライド ©太田守重 ここで学ぶこと 私たちは,身の回りの環境や世界を認知し,知識として記憶し,それを使って 判断して行動する. 知識は,認知の結果としての実世界のモデルともいえる.これを他者に伝える には,一般には自然言語を使用する.しかし,自然言語には多義性があるので, 表現に曖昧さが残る.そこで,誤解が起きないように,厳密に定義されたルー ルに従う,形式化された言語(スキーマ言語)を使用することが望ましい.特に 情報ネットワークを通じて情報交換するシステムには、これが求められる。 ここでは,実世界に生起消滅する諸現象(地物)を,どのようにモデル化し,そ れをどのように形式的に表現するかを学ぶ. 地理情報科学教育用スライド ©太田守重 知識の形成(ピアジェ) シェマ(知識) 観察 新たな概念を含むシェマ 同化と調節 発達したシェマ 地理情報科学教育用スライド ©太田守重 知識の共有 Aさんのシェマ Bさんのシェマ 共通の知識は、共通の構造 をもつ。 その構造は、関係者が共有 する、構造記述のための知 識に従う。 この知識は、知識について の知識、つまりメタ知識であ る。これが共有されれば,コ Cさんのシェマ ミュニケーションが可能にな る. 地理情報科学教育用スライド ©太田守重 メタモデルとその共有のプロセス モデル:興味の対象となる実世界に出てくる実体の言語表現 メタモデル:モデル表現のためのルールを記述するモデル モデルの共有はメタモデルの共有が前提 共有には合意が前提 関係者が合意したルールを標準という 標準化 (de facto, de jure) 例えば、国際標準化機構 (International Organization for Standardization) ISO などの標準化組織が de jure 標準の審議を行い、国際標準を制定。日 本を含むWTO加盟国は、原則としてISO標準を国内標準としても使用し、政 府調達ではこれに準拠する(ことになっている)。 地理情報科学教育用スライド ©太田守重 地物 地物(feature):実世界の現象の抽象概念.地物は型またはインスタンスとし て表現される.同じ性質をもつ要素の集まりを地物型という.地物型に含ま れる要素を,その型の地物インスタンスという. (例) 地物型 河川 地表の窪みを沿って高所から低所に向かう水の流れ。 名称,全長,形状で特徴づけられる 地物インスタンス 名称:C川 全長:約322km 形状: 地理情報科学教育用スライド ©太田守重 スキーマ言語(UMLの場合) UML: Unified Modeling Language Grady Booch、James Rumbaugh、Ivar Jacobsonによって開発されたスキーマ言語. 1997年11月にOMG (Object Modeling Group)によって標準として認定. クラス:同じ性質や条件をもつオブジェクトの類を示す概念(型と同じ). オブジェクト:クラスに含まれる要素. 横浜ベイブリッジ (定義) タワーブリッジ 河川や海を横断 するための人工 構造物 クラス 橋 クラス(型) オブジェクト 地理情報科学教育用スライド ©太田守重 UMLクラス図 UMLでは,クラス図を使って,クラスの定義,及びクラス間の関係記述を行う. クラスはその名称,属性及び操作で定義する.属性とは,そのクラス固有の性 質のこと.操作とはそのクラスがもつ機能,または振る舞いのこと. クラス間の関係には,関連(集成,合成)と継承がある. クラスには,インスタンスをもたない抽象クラス,インスタンスをもつ具象クラス がある.最も抽象度の高いクラスをルートクラスという. 操作には多態性という性質がある. クラスには,属性の型を示すデータ型がある. クラス図の要素に定義には文章をつかう. 地理情報科学教育用スライド ©太田守重 クラスの記法 クラスは3つの襴で記述する。 名前:クラスを識別するための「名前」 名前 道路 属性:その実体固有の性質 例:量、質、状態、場所、時間、・・・ 名前:String 形状:GM_Curve 属性 延長計算() 操作 操作:クラスの振る舞い(能動、受動) 例:道路の長さ() 道路の形状を示す線データから, 道路の長さを計算し,値を返す 属性欄や操作欄は,もし属性や操作がな い場合は,省略することができる。 道路 道路 名前:String 形状:GM_Curve 属性・操作を 省略した記述 地理情報科学教育用スライド ©太田守重 操作を省略した 記述 道路 道路の長さ() 属性を省略した 記述 属性 道路 属性:クラスがもつ固有の性質 • 属性名と属性の型で示す。 属性値が従うデータ型 • 基本データ型 例: String(文字列),Integer(整数), Float, Long(実数),Boolean(真偽値) • コレクションデータ型 • 集合型(Set) 有限な要素をもつ集合。重複する インスタンスを含んではならない。 • 順序型(Sequence) 要素が順序をもつ集合。 名前[1..*]:String 種類:String 属性名 属性 属性の 属性の型 多重度 道路 名前:Set<String> 複数の名前を,順不同に列挙 することができる 例:川越街道,国道254号線 道路 種類:Sequence<Integer> 複数の整数を順序付けて並べることができる。 例:31.54, 78.98 この数字が逆になってはいけない。 地理情報科学教育用スライド ©太田守重 属性の多重度 【多重度の表現】 • 同じ種類の属性が複数あるときに使う • 属性名の後の[ ]の中に記入 • • クラスA 属性名[0,1]:属性型 クラスA 属性名[1..*]:属性型 [最小値...最大値] :0または1 :1以上 (* は複数を表す。n と記述することもある) 多重度が1の場合は省略 「,(カンマ)」で区切ることで離散値を指 定し,「..(2つのドット)」で区切ることで 範囲を指定する。 属性名:Set<属性型>との違い 道路 • 属性名:Set<属性型> 名前:Set<String> 1つの属性名に対し,複数の値が対応 道路ID • 属性名[多重度] インスタンス 名前 1つの属性名と一つの値が組になり,そ 道路 の組が複数個できる。 1 川越街道, 国道254号線 名前[0..*]:String インスタンス 地理情報科学教育用スライド ©太田守重 道路ID 名前 名前 1 川越街道 国道254号線 クラス定義の手順 一般化 私の自転車は, 通学用で, 車輪のサイズが24inch, メーカーはBridgtstone, 妹や母が使うときもある。 仕様化 自転車 所有者:文字列 使用目的:文字列 サイズ:整数 メーカー:文字列 使用者[1..*]:文字列 目的コード 1 通学 2 通勤 3 遊び 4 スポーツ 地理情報科学教育用スライド ©太田守重 自転車 所有者:String 使用目的:目的コード サイズ:Integer メーカー:メーカーコード 使用者[1..*]:String メーカーコード 1 Brightstone 2 PanaPana 3 RoadStar 操作 操作 インスタンスが実行する能動的及び受動的振る舞い 例:計算、解析、シミュレーション、・・・ 操作の記法 操作名(文字列) 引数(属性名:属性型の列) 戻り値(データ型) 例:建築物での操作 操作名(name) 引数(argument) 戻り値 (return value) 日陰(建築形状:立体、日付:グレゴリオ暦、時刻:日本標準時):多角形 地理情報科学教育用スライド ©太田守重 関連 関連: クラス間の対等な結び付き 役割名:関連先のクラスの役割を説明する名前 多重度:関連元クラスの1インスタンスに対して,関連先 クラスのインスタンスがいくつ対応するかを示す数 関連の描き方 関連を持つクラス間を線でつなぐ。 役割名及び多重度をつける。 【関連の多重度の例】 (多重度が「1」の場合は省略可) クラスB :厳密に1 1 役割A 1,2 :0または1 クラスB :1以上 0,1 関連表示の例 クラスA クラスB 役割B クラスB 1..* 地理情報科学教育用スライド ©太田守重 1..* (* は複数を表す。n と記述することもある) 「,(カンマ)」で区切ることで離散値を指 定し,「..(2つのドット)」で区切ることで 範囲を指定する。 関連の向き 関連は「向き」を持つことができる。 クラスA 役割B クラスB 1..* 例 :「道路」から「交差点」への片方向の関連 道路 端点 交差点 0..2 地理情報科学教育用スライド ©太田守重 この場合、道路は,どの交差点 で区切られるかを知ることがで きるが,交差点は,どの道路を 区切るかわからない。 特殊な関連 集成(aggregation) 全体と部分の関連性 「has a」または「is a part of」の関係 記法:全体を表すクラスの側に「白抜きダイヤモンド」をつける 合成(composition) 強い集成,部分と全体が一体となる関連 記法:全体を表すクラスの側に「黒いダイヤモンド」をつける 全体クラス 全体クラス 役割名 1 全体クラス 役割名 全体クラス 1 地理情報科学教育用スライド ©太田守重 部分クラス 部分クラス 役割名 0..* 部分クラス 部分クラス 役割名 2 特殊な関連の例 集成 ジュースの容器 合成 キャップ ラベル ペットボトル 駅 改札口 地理情報科学教育用スライド ©太田守重 プラットホーム 継承 継承 (inheritance)とは より抽象的な型と下位の具体的な型の関係 上位の属性、操作、及び関連を下位が受け継ぐ is aの関係ともいう。 継承の描き方 上位クラスと下位クラスを線で結び、上位クラス側に「白い三角」を付ける クラスA 岩石 硬度 成分 属性A 操作A 特化 クラスB 属性B 操作B 汎化 クラスBが持つ属性 属性A(クラスAから継承) 属性B クラスBが持つ操作 操作A(クラスAから継承) 操作B 地理情報科学教育用スライド ©太田守重 火成岩 固化速度 堆積岩 堆積地 多重継承 多重継承:複数の上位クラスからの継承 クラスC クラスA 属性A 属性C 操作A 操作C 「クラスB」は「クラ スA」であり,かつ 「クラスC」でもある。 建物 鉄道施設 会社名 名前 位置 駅 管理者 クラスB 属性B 操作B 「駅」は「建物」でもあり,「鉄道施設」でも あるため,両者を継承する。 その結果,「駅」は以下の属性を持つ。 名前 建物から継承 位置 会社名 鉄道施設から継承 管理者 駅に定義 地理情報科学教育用スライド ©太田守重 抽象、具象、ルート 具象クラス ルート インスタンス化されるクラス 道路 抽象クラス 名前 種類 抽象的な概念を示すクラス 下位の具象クラスがインスタンスを作れる クラス名を斜体にして記述する 国道 交通量 県道 点字ブロック有無 ルートクラス クラス図の中で,継承の最上位となるクラス 具象クラス: 車道,歩道 抽象クラス: 道路 抽象クラスである道路は直接 インスタンス化されず,道路 を継承する車道及び歩道が インスタンス化される。 地理情報科学教育用スライド ©太田守重 多態性 (Polymorphism) 多態性:上位の具象クラスのインスタンスが、下位のクラスのインスタンスである 場合、下位のクラスの操作が実行されること。 多態性の例 住宅 住みよいか() 日当り? 静か? 収納? 部屋数? セキュリティ? 集合住宅 住みよいか() 個人住宅 住みよいか() 住宅の評価項目 コミュニティ? プライバシー? 住宅の評価項目 周辺の環境? 庭? 地理情報科学教育用スライド ©太田守重 データ型 地物型の属性の型として使われる,地物ではないクラスを データ型(DataType)という。 例えば,地物の座標を示す「位置」は,地物の 属性の型としてしか,使われない。 <<DataType>> 位置 緯度:Long 経度:Long 地理情報科学教育用スライド ©太田守重 緯度:35.5421は 35度32分31.56秒 文書化 クラス図の要素(クラス、属性、操作、関係)の定義は文章で示す。 建物:屋根と壁で区切られた人工構造物 建物 名前 種類 名前:他の建物と区別するために与える識別情報。 種類:建物の特徴を示す名前 クラス図は通常、専用のソフトウェアツールで作成する。ツールは必ずク ラス図の要素の定義を記入できるようにしている。 フリーなツールの例: Argo UML astah* Community 地理情報科学教育用スライド ©太田守重 その他のスキーマ言語 ー 実体関連モデル 実体関連モデル(Entity-Relationship Model): 1976年にP.Chenによって提唱された、グラフィックなスキーマ言語。 他と区別できる“もの”を実体とし、その間の関連とともに、実体関連図として表現。 実体は長方形で表現し、属性をもつことができる。 関連は菱形で表現し、属性をもつことができ、実体同士の多対多の関連を表現できる。 N 教授 学生 ー学籍番号 ー名前 ー住所 M 1 教師 ー名前 ー点数 受講 N 科目 ー科目名 ー必修・選択 地理情報科学教育用スライド ©太田守重 まとめ モデルの記述が自然言語だと、表現にあいまいさが残る スキーマ言語を使って、モデルの形式表現を行うことで、あいまいさを軽減する スキーマ言語の一つとしてUMLがある。 UMLでは、同じ性質をもつものの集まりをクラスとし、属性、操作、他のクラスとの 継承及び関連でスキーマを表現する。 クラス図の要素の定義は、文章で補う。 UMLのようなスキーマ言語は突然現れたものではなく、それ以前から例えば実 体関連モデルのようなスキーマ言語がある。 地理情報科学教育用スライド ©太田守重 参考文献 1. 有川正俊、太田守重監修(2007)『GISのためのモデリング入門』ソフトバン ククリエイティブ 2. Michael Worboys and Matt Duckham (2004) GIS: a computing perspective, Second Edition, CRC Press, pp.71-80 3. Peter Pin-Shan Chen, The Entity-Relationship Model-Toward a Unified View of Data, ACM Transactions on Database Systems, Vol. 1, No. 1. March 1976, Pages 9-36. 地理情報科学教育用スライド ©太田守重
© Copyright 2024 ExpyDoc