Save 37% off PRO during our Black Friday Sale! »

名付けのためにクラス図を元に会話しよう/Let's-use-class-diagram-to-communicate-with-client

04df7340898eac3a0536d3b47c55501c?s=47 kirimaru
November 24, 2021

 名付けのためにクラス図を元に会話しよう/Let's-use-class-diagram-to-communicate-with-client

04df7340898eac3a0536d3b47c55501c?s=128

kirimaru

November 24, 2021
Tweet

Transcript

  1. 名付けのために クラス図を元に会話しよう オブジェクト指向LT会 vol.3 #ooltjp きり丸(水上 皓登)@nainaistar

  2. 名前:きり丸(水上 皓登) twitter:nainaistar GitHub:hirotoKirimaru ブログ:きり丸の技術日記 https://nainaistar.hatenablog.com/ 2 これから クラス図大事! って発表するけど、

    正直クラス図作るのつらい
  3. エンジニアの仕事は 概念に名前を付けること

  4. 前回の登壇: Code Smellsの Primitive Obsessionに 気を付けて設計する ラクス様 リーダブルコード LT会 Vol2

  5. 全ての概念について 名前がついているわけではない 他人に言われて初めて 名前がついていることに気づく 概念も多い

  6. クラス図を使って 概念の関係性を深堀り する機会を作ろう!

  7. 今日のゴール

  8. クラス図を使えば もっと概念を理解する きっかけ作りができることを学ぶ

  9. クラス図を書くために大事なこと • 多重度 • 関連端名 この2つだけ覚えてほしい!

  10. 多重度について クラス間の関係が次のどれかであるか分かるだけで、 クラス間の関係を推し量ることができます。 • 1:1 • 1:多 • 多:多

  11. 関連端名について 分析において 「最重要要素」 だと私は考えています。

  12. 関連端名について 関連端名とは、関連先クラスに対して持つ役割を記述したもの。 なぜ重要かというと、 この特定のクラスから見た別クラスを表現する言葉に 業務に詳しい人が業務上で使用している名前に 知識が詰まっているからです。

  13. ECサイトの例 カートと商品の関係性

  14. ECサイトの例 購入履歴と商品の関係性

  15. ECサイトの例 カートと購入履歴と商品の関 係性

  16. 注意! 異なるモデルが業務で表現している概念で一致していることが 分かったからと言って、 永続化(テーブル)を一致させる必要はありません。 それはそれ。 これはこれ。

  17. クラス図も更に分類できる • 概念クラス図 • 設計クラス図

  18. 概念クラス図について 業務の概念、クラス間の関係を掴むためのクラス図です。 概念を掴むものなので、多対多で紐づけても問題ありません。 複雑なドメインであるほど、まずは概念で理解することが必要です。 概念クラス図の関連であれば、関連端名を導きやすいです。

  19. 設計クラス図について 概念クラス図をアプリとして実装できるように 制約を付与したクラス図です。 一般的なクラス図は設計クラス図を指すことが多いです。 • システム制約 多対多だと実装できないため、中間に別の概念を加えて1対多にする等。 • 業務制約 一度に購入できる数は10個まで、

    リモートワーク申請できるのは月に5日まで 等々。
  20. 設計クラス図の注意点 概念クラス図を元に設計クラス図を作成している場合は、 概念クラス図で記載されている関係を壊してはいけません。 概念クラス図だとアプリケーションを作成できない為に、 異なる実装クラス図を作ってしまうことはありがちです。 どうしても実装できない場合は、概念クラス図を変更しましょう。

  21. できればモデリングツールを使ってほしい astah*等のモデリングツールだと、 概念クラス図を作成したのちに、 容易に設計クラス図に落とし込めます。 概念クラス図を修正すると、参照しているすべてのクラス図も 変更できるので、変更漏れがなくなります。 PlantUMLやPowerPointだとできないため、 メンテナンスコストが高いのが非常に難点です。

  22. モデリングツール例 • astah* チェンジビジョン社。iPad版はクラス図しか書けない。 • EnterpriseArchitect SparxSystems社。チームでの開発を想定している。 • Rational Rhapsody

    IBM社。組み込み系で良く使われており、NASAの火星探索機とかも使わ れてるらしい。 • Papyrus Eclipseで無料で使える。
  23. まとめ 多重度・関連端名を重要視してクラス図を作り、 業務に詳しい人と会話するきっかけを作りましょう。 また、クラス図には概念クラス図・設計クラス図があります。 制約を気にしない概念クラス図を元に、 業務に詳しい人と会話するきっかけを作りましょう。

  24. クラス図を使えば もっと概念を理解する きっかけ作りができる!

  25. Appendix

  26. ブログ UMLは覚えておくべき(クラス図編)

  27. 話すこと / 話さないこと • • 話すこと 話さないこと

  28. 対象者 / 非対象者 • • 対象者 非対象者

  29. 登壇を見た人への期待するアクション • アクション