Slide 1

Slide 1 text

第2章 UML統⼀モデリング⾔語 課題図書: オブジェクト指向のこころ: デザインパターンとともに学ぶ

Slide 2

Slide 2 text

͜ͷষͷॏཁͳΩʔϫʔυ • UML • モデリング • クラス図 • 関連 • 依存 • 集約 • コンポジション • 相互作⽤図(シーケンス図)

Slide 3

Slide 3 text

【突然のネタバレ】 この章ではUMLを扱いますが UML⾃体を学習することは 本書を読む上で些細なことだと思います

Slide 4

Slide 4 text

では、なぜ(1章を割くほど) UMLが「重要」なのか・・・?

Slide 5

Slide 5 text

UMLとは何か 2.2 UMLとは何か? 2.3 UMLを使う理由

Slide 6

Slide 6 text

UMLͬͯԿ͢Δ΋ͷͳͷ • 開発って「⼯程」があるでしょ • 分析、設計、実装・・・ • イメージを擦り合わせながら進めたいですよね? • って事はコミュニケーションが⼤事ですよね • ”UMLは主に、⾃分⾃⾝、チームメンバ、顧客とのコミュ ニケーションを図るために使⽤されます”

Slide 7

Slide 7 text

ίϛϡχέʔγϣϯͷͨΊͷUML • 「モデル」を使って話そーぜ、を出来るようにする • それによって、「実際にコード書いて動かす」の⼿前の段 階で「どういう感じになるかな?」の認識を揃える • 認識を揃えた上で、「ここはこうしたくない?」とか「ア レが⾜りなくない?」とかの議論も出来るようになる

Slide 8

Slide 8 text

UMLͳΜͯ”఻ΘΓΌ͍͍ͷΑ” ͬͯେޚॴ͕ݴͬͯ·ͨ͠ • 「実際にコード書かなくても認識揃えてコミュニケー ションとれるようにする」というのが重要で • そのための「気軽さ」をUMLは兼ね備えている • UMLは「何となく図形で分かる」ようなダイアグラムと なっている • 未学習者でも説明しながら使えば伝わりそうなレベル • 「⽂法(記法)の正しさ」「情報の正確性(⾼解像)」より も「最低限の認識が揃う」のが⼤事だよ〜

Slide 9

Slide 9 text

ࢀߟ • スケッチとしてのUML https://bliki-ja.github.io/UmlAsSketch/ • Fowlerと軽量UML|オブジェクトの広場 https://www.ogis-ri.co.jp/otc/hiroba/specials/ MartinFowler/FowlersUML.html • 書籍「UMLモデリングのエッセンス」 ܹΦεεϝ

Slide 10

Slide 10 text

ຊॻʹͱͬͯͷUML • 全体を通じて、クラス図・シーケンス図が出てきます • クラス(オブジェクト)間の関係やどう作⽤し合うか?を 視覚的に表現するための⼿段として、くらいの位置づけ • なので「めっちゃ正確にUMLを覚えるぞ・・!」や 「⾼度な記法を覚えるぞ・・!」はいらないです • ざっくり「あーはいはい、完全に理解した」でOK • ⾒慣れない記法が出てきたらその都度で調べましょ

Slide 11

Slide 11 text

(本書を読む上で)主要なダイアグラム 2.4 クラス図 2.5 相互作⽤図

Slide 12

Slide 12 text

Ϋϥεਤ クラスやクラス同⼠の関連性を⽰す(静的なモデリング)

Slide 13

Slide 13 text

ू໿ͱίϯϙδγϣϯ • ある要素が他の要素を所有する(has)ことを「集約」 • サイクリスト has a⾃転⾞ • 集約の⼀形態に「コンポジション」がある • ⾃転⾞ is composed of gears • 違いは「集約は弱く、コンポジションは強く依存する」 • とは・・・?

Slide 14

Slide 14 text

ڧ͍ґଘɺऑ͍ґଘɺͦΜͳͷਓͷɾɾ • ⾔いたいことは「互いにどういう影響を及ぼしているの か?を強調したいね」って点 • なので、「私がいなくても⽣きていけるの・・?」みたい な情報は嬉しいですよね • (それによって、お互いの存在意義って変わるでしょ?)

Slide 15

Slide 15 text

ͬ͘͟Γίϯϙδγϣϯ • 端折った説明 • 集約: 部分が無くても全体が成り⽴つ • コンポジション: 部分は全体が無いと意味を成さない • コンポジション関係だと、 「全体がdestructされた時に部分も破棄される」イメージ • この説明はちょっとミスリードかもだけども

Slide 16

Slide 16 text

ࢀߟ • オブジェクトの動的側⾯を⾒極める:【改訂版】初歩の UML - ITmedia エンタープライズ https://www.itmedia.co.jp/im/articles/0306/05/ news001.html • やはりお前らのコンポジションは間違っている - Qiita https://qiita.com/turanukimaru/items/ 0b1396393908b7e22618

Slide 17

Slide 17 text

૬ޓ࡞༻ਤ クラス(オブジェクト)がどのようにメッセージングし合うか を⽰す(動的モデリング)