Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
名付けのために クラス図を元に会話しよう オブジェクト指向LT会 vol.3 #ooltjp きり丸(水上 皓登)@nainaistar
Slide 2
Slide 2 text
名前:きり丸(水上 皓登) twitter:nainaistar GitHub:hirotoKirimaru ブログ:きり丸の技術日記 https://nainaistar.hatenablog.com/ 2 これから クラス図大事! って発表するけど、 正直クラス図作るのつらい
Slide 3
Slide 3 text
エンジニアの仕事は 概念に名前を付けること
Slide 4
Slide 4 text
前回の登壇: Code Smellsの Primitive Obsessionに 気を付けて設計する ラクス様 リーダブルコード LT会 Vol2
Slide 5
Slide 5 text
全ての概念について 名前がついているわけではない 他人に言われて初めて 名前がついていることに気づく 概念も多い
Slide 6
Slide 6 text
クラス図を使って 概念の関係性を深堀り する機会を作ろう!
Slide 7
Slide 7 text
今日のゴール
Slide 8
Slide 8 text
クラス図を使えば もっと概念を理解する きっかけ作りができることを学ぶ
Slide 9
Slide 9 text
クラス図を書くために大事なこと ● 多重度 ● 関連端名 この2つだけ覚えてほしい!
Slide 10
Slide 10 text
多重度について クラス間の関係が次のどれかであるか分かるだけで、 クラス間の関係を推し量ることができます。 ● 1:1 ● 1:多 ● 多:多
Slide 11
Slide 11 text
関連端名について 分析において 「最重要要素」 だと私は考えています。
Slide 12
Slide 12 text
関連端名について 関連端名とは、関連先クラスに対して持つ役割を記述したもの。 なぜ重要かというと、 この特定のクラスから見た別クラスを表現する言葉に 業務に詳しい人が業務上で使用している名前に 知識が詰まっているからです。
Slide 13
Slide 13 text
ECサイトの例 カートと商品の関係性
Slide 14
Slide 14 text
ECサイトの例 購入履歴と商品の関係性
Slide 15
Slide 15 text
ECサイトの例 カートと購入履歴と商品の関 係性
Slide 16
Slide 16 text
注意! 異なるモデルが業務で表現している概念で一致していることが 分かったからと言って、 永続化(テーブル)を一致させる必要はありません。 それはそれ。 これはこれ。
Slide 17
Slide 17 text
クラス図も更に分類できる ● 概念クラス図 ● 設計クラス図
Slide 18
Slide 18 text
概念クラス図について 業務の概念、クラス間の関係を掴むためのクラス図です。 概念を掴むものなので、多対多で紐づけても問題ありません。 複雑なドメインであるほど、まずは概念で理解することが必要です。 概念クラス図の関連であれば、関連端名を導きやすいです。
Slide 19
Slide 19 text
設計クラス図について 概念クラス図をアプリとして実装できるように 制約を付与したクラス図です。 一般的なクラス図は設計クラス図を指すことが多いです。 ● システム制約 多対多だと実装できないため、中間に別の概念を加えて1対多にする等。 ● 業務制約 一度に購入できる数は10個まで、 リモートワーク申請できるのは月に5日まで 等々。
Slide 20
Slide 20 text
設計クラス図の注意点 概念クラス図を元に設計クラス図を作成している場合は、 概念クラス図で記載されている関係を壊してはいけません。 概念クラス図だとアプリケーションを作成できない為に、 異なる実装クラス図を作ってしまうことはありがちです。 どうしても実装できない場合は、概念クラス図を変更しましょう。
Slide 21
Slide 21 text
できればモデリングツールを使ってほしい astah*等のモデリングツールだと、 概念クラス図を作成したのちに、 容易に設計クラス図に落とし込めます。 概念クラス図を修正すると、参照しているすべてのクラス図も 変更できるので、変更漏れがなくなります。 PlantUMLやPowerPointだとできないため、 メンテナンスコストが高いのが非常に難点です。
Slide 22
Slide 22 text
モデリングツール例 ● astah* チェンジビジョン社。iPad版はクラス図しか書けない。 ● EnterpriseArchitect SparxSystems社。チームでの開発を想定している。 ● Rational Rhapsody IBM社。組み込み系で良く使われており、NASAの火星探索機とかも使わ れてるらしい。 ● Papyrus Eclipseで無料で使える。
Slide 23
Slide 23 text
まとめ 多重度・関連端名を重要視してクラス図を作り、 業務に詳しい人と会話するきっかけを作りましょう。 また、クラス図には概念クラス図・設計クラス図があります。 制約を気にしない概念クラス図を元に、 業務に詳しい人と会話するきっかけを作りましょう。
Slide 24
Slide 24 text
クラス図を使えば もっと概念を理解する きっかけ作りができる!
Slide 25
Slide 25 text
Appendix
Slide 26
Slide 26 text
ブログ UMLは覚えておくべき(クラス図編)
Slide 27
Slide 27 text
話すこと / 話さないこと ● ● 話すこと 話さないこと
Slide 28
Slide 28 text
対象者 / 非対象者 ● ● 対象者 非対象者
Slide 29
Slide 29 text
登壇を見た人への期待するアクション ● アクション