Slide 1

Slide 1 text

概念モデルは どこまで「数学的」に なれるか (集合論編1) 2020年01月10日 株式会社メソドロジック 矢崎 博英 1

Slide 2

Slide 2 text

所属 株式会社メソドロジック 取締役/CTO 専門 開発方法論、データモデリング、オブジェクトモデリングのコンサルティング 経歴 主に基幹システムの再構築プロジェクトにモデラーとして参画 • 某都道府県警の通信指令システム(いわゆる110番) • テレビ局営報システム(番組編成・CM・放送 これDDDでやりました!) • 化学工業の生産管理 • 鉄鋼メーカー合併によるシステム統合 etc. メディア • Writing Effective Use Cases(著者Alistair Cockburn)翻訳(2001年) • 最近マイクロサービス系を翻訳中(今年夏ごろ出版予定) 自己紹介 矢崎博英

Slide 3

Slide 3 text

3 ドメインモデル プロセスモデル システム 受注担当 顧客 : 注文 未承認 承認済 承認 却下 却下 出荷済 出荷 トリガー 入金済 入金 トリガー 注文 注文明細 商品 会員 在庫 在庫引当 通常会員 特別会員 概念モデル 状態遷移モデル

Slide 4

Slide 4 text

集合 • 集合とは、いくつかのものをひとまとめにして考えた’ものの集まり’ • 数学的には“どんなものをとってきても、それがその集まりの中にあるかない かがはっきりと定まっている“ようなものでなければならない 集合の記法(個々の集合を具体的に表す記法) • 外延的記法:集合の要素を列挙して集合を表す 例){1, 2, 3, 4, 5, 6, 7, 8, 9} • 内包的記法:条件Pを示して集合を表す{x | P(x)} 例){x | 0 < x < 10, x ∈ ℤ} 集合の例 • 自然数全体の集合(ℕ)、整数全体の集合(ℤ)、有理数全体の集合(ℚ)、 実数全体の集合(ℝ)、複素数全体の集合(ℂ) • 当社社員全員からなる集合 4 集合

Slide 5

Slide 5 text

元(または要素) • 集合に含まれるものを元(または要素)という • aが、集合Aの元であることを、記号で a ∈ A と書く(元でないときは a ∉ A) • 集合A、Bがまったく同じ元からなるとき、かつ、そのときに限りAとBは等しい(A = B) • {1, 2, 3} = {3, 2, 1}, {1, 2, 3} = {1, 2, 2, 3} 有限/無限集合 集合には元の数が有限個の有限集合と無限個の無限集合がある 単集合 1つの要素しか含まない集合を単集合という {x | 0 < x < 2, x ∈ ℤ} = {1} ※ {1} ≠ 1 空集合 要素を1つも含まない集合を空集合という {x | 0 < x < 1 x ∈ ℤ} = {} = ∅ 5 集合 集合と元 単集合 空集合

Slide 6

Slide 6 text

6 取引先 当社 2乗して負になる実数 - 代表電話番号 - 住所 - 社名 <> 当社 取引先 2乗して負になる実数

Slide 7

Slide 7 text

集合Aの任意の元が集合Bの元であるとき、AはBの部分集合であるといい A ⊂ B と書く • AはAの部分集合である • ∅は任意の集合の部分集合である • A ⊂ B かつ B ⊂ A ならば A = B • A ⊂ B かつ A ≠ B ならば AはBの真部分集合という A∩B:={x|x∈Aかつx∈B}を集合Aと集合Bの共通部分という A∪B:={x|x∈Aまたはx∈B}を集合Aと集合Bの合併(和集合)という A - B :={x|x∈Aかつx∉B}をAとBの差という 7 部分集合・共通部分・合併・差 部分集合 共通部分 合併 差 A B A B A B A B

Slide 8

Slide 8 text

8 8 会員 偶数 B ゴールド会員 偶数 5の倍数 偶数かつ5の倍数 5の倍数 偶数 5の倍数 偶数 5の倍数 会員 ゴールド会員

Slide 9

Slide 9 text

集合系(集合族) ‘集合の集合’、すなわち元がすべて集合である集合のことを集合系(集合族)という 冪集合 集合Aの、部分集合全てを元とする集合をAの冪集合という A={a, b}の冪集合は{∅,{a},{b},{a, b}} 商集合 集合AをAにおける同値関係Rにより同値類に分割したときの同値類全体からなる集合を AのRによる商集合といいA/Rと書く。そしてAからA/Rへの写像を商写像という 9 集合系(族)、冪集合、商集合 集合系 元は集合 A A/R 0 1 2 3 4 5 6 7 8 9 ※Rは3で割ったときの余りが 等しい者同士という関係

Slide 10

Slide 10 text

直積 集合Aの任意の元aと集合Bの任意の元bとの順序づけられた組(a, b)の全体からなる集合をA とBとの直積といいA×Bと書く A×B={(a, b)| a ∈A, b ∈ B} 対応 • A, Bを2つの集合とし、ある規則Γによって、Aの各元aに対してそれぞれ1つずつBの部 分集合Γ(a)が定められているとき、その規則ΓのことをAからBへの対応という • 規則Γによってa∈Aに対して定まるBの部分集合Γ(a)を、Γによるaの像という • Γ(a)は∅でも、Bと等しくてもよい 写像 • 対応の特別なケースで任意のa∈Aに対してΓ(a)の要素数(#Γ(a))が1であるとき、そ の対応(規則)を写像という 1 2 a b c 対応 A B 10 直積集合・対応・写像 1 2 a b c (1, a) (1, b) (1, c) (2, a) (2, b) (2, c) 直積 A B Γ(1) Γ(3) 1 2 a b c 写像 A B 3 Γ(2) 3

Slide 11

Slide 11 text

ΓがAからBへの対応であることを、以下の記号で表す Γ:A→B A, Bをそれぞれ、対応Γの始集合、終集合 という fがAからBへの写像であることを、以下の記号で表す f:A → B; a → f(a) Aは写像fの定義域という 対応のグラフ、写像のグラフ 対応Γ:A → Bのグラフとは直積A×Bの部分集合 G(Γ)={(a, b) ∈A×B| b ∈ Γ(a)} 写像 f:A→ Bのグラフも直積A×Bの部分集合 G(f)={(a, b) ∈A×B| b ∈ f(a)} 11 対応・写像についてもう少し 11 1 2 a b c (1, a) (1, b) (2, c) 対応ΓのグラフG(Γ)⊂A×B A B 3 1 2 a b c (1, a) (3, a) (2, c) 写像fのグラフG(f)⊂A×B A B 3

Slide 12

Slide 12 text

12 1 2 a b c 対応 エンジニア プロジェクト 12 1 2 a b c 写像 エンジニア プロジェクト 3 3 エンジニア プロジェクト * * 参画 エンジニア プロジェクト 0..1 * 参画 1 2 a b c (1, a) (1, b) (2, c) 対応ΓのグラフG(Γ)⊂A×B エンジニア プロジェクト 3 エンジニア プロジェクト * * 参画 参画 ロール ロール 対応・写像は規則 対応・写像のグラフは集合 対応・写像のグラフが、別 の対応・写像の定義域にな るとき、関連クラスとして 表現する

Slide 13

Slide 13 text

13 関連も属性も写像・商集合・直積を定義域とする写像 貨物 航海 0..* 0..1 ブッキング貨物 <> 貨物 / 同一の航海にブッキング 1 0..* quotient mapping (商写像) <> サイズ合計 0..* 1 サイズ合計 <> 積載量 0..* 1 積載量 * * <> 積載量×サイズ合計 Boolean 1 0..* オーバーブッキングポリシー オーバーブッキングポリシー - 積載量 航海 - サイズ 貨物 * {貨物サイズの合計 < 航海の積載量 * 1.1} ドメイン駆動設計P.19

Slide 14

Slide 14 text

直和分割 集合Aとその部分集合系Xについて、以下が成り立つとき、XはAの直和 分割である 1. Xの全要素の合併はAと等しい 2. Xの任意の要素a, b に対して a ≠ bならばa ∩ b=∅ 対応・写像の制限 対応Γ:A → Bに対して、Aの部分集合であるA‘に対して対応Γ:A’ → B を考えたとき、この対応をΓのA’への制限といい、Γ | A’ と書く。写像 についても同様 14 直和分割 直和分割 1 2 a b c 対応の制限 A B Γ(1) Γ(3) 3 Γ(2) A‘

Slide 15

Slide 15 text

15 直和分割 人間 男性 女性 性別 日本人 アメリカ人 その他の国籍を持つ人 国籍 これをあえて示さない場合 もある

Slide 16

Slide 16 text

16 対応の制限 Γ|有料会員 ▶ プロジェクト ロール * 1 プロジェクトリーダ エンジニア * Γ = アサイン 1 対応先も部分集合になることを明示する 多重度が変わる(対応から写像に変わる) Γ|プロジェクトリーダ ▶ 会員 有料会員 購入 有料会員購入 会員 有料会員 購入 - 購入 - 会員 0..* 1 Γ = 購入 - 獲得ポイント数 有料会員購入 0..* 1 プロジェクト ロール インスタンス PG SE PL PL PG SE

Slide 17

Slide 17 text

• 表現や解釈のばらつきを抑えることがで きる • 数学の既知の定義や手法が利用できる • 概念モデルとして表せるものを限定でき る • 代数学や圏論への展開 17 意義

Slide 18

Slide 18 text

18 概念モデリング FIN

Slide 19

Slide 19 text

集合論の本 19 参考文献 集合をベースにモデルを説明している古いオブジェクト指向の本 集合・位相入門 著者:松坂和夫 出版社: 岩波書店 ※新刊が別表紙で出ています ・「対応(スライド10)」について は、最近の本ではあまり説明されてい ないようですが、この本のP.22~に 記載あり。 ・「写像(スライド10)」を対応の 先の部分集合の要素が1つであるもの という説明は、この本に依った。 集合と位相 著者:斎藤 毅 出版社:東京大学出版会(2009/9/1) ・「商写像(スライド9)」について は、この本のP.46から Advanced Object-Oriented Analysis & Design Using UML 著者:James J. Odell 出版社: Cambridge University Press (1998/2/1) 著者はマーティンファウラーの師匠筋 にあたる人。また、OMG’s Analysis and Design Task Force のco-chairを16年間務めた Designing Object Systems: Object- Oriented Modelling With Syntropy 著者:Steve Cook, John Daniels 出版社: Prentice Hall (1994/11/1) 以下からPDFで読める https://www.semanticscholar.org /paper/Designing-object- systems%3A-object-oriented- modelling-Cook- Daniels/3bfd6687f6500d44b67dcc 30632b53be45753253 ※記述はOMT法