Slide 1

Slide 1 text

モデリングの学び方:座談会 有限会社 システム設計 増田亨 2021年9月7日

Slide 2

Slide 2 text

モデリングの学び方:座談会 ① モデリングと設計の実践者たちの知見を共有する ② 実践的で費用対効果の高いモデリングの具体例を知る ③ 現場で役立つモデリングスキルを身につける手がかりを得る 座談会の話し手たちが内輪でやろうとしていた モデリングを学ぶ場を増やす企画会議 「どうせなら公開しちゃおう」 ハッシュタグ #modeling_zadankai 2

Slide 3

Slide 3 text

座談会の流れ ① 座談会のざっくりとした方向づけ(このスライド) ② 実際のところ、現場ではどんな感じ? それぞれの話し手からモデリングを普段はどんな感じでやっているか (やっていないか)を話してもらう ③ 【本題】モデリングの学び方 モデリングをどう学んできたか? モデリングスキルを身につけたい人へのお勧めの学び方は? 3

Slide 4

Slide 4 text

座談会のメンバー かとじゅんさん Chatwork ミノ駆動さん READYFOR 藤岡さん (株)お金のデザイン 自社サービス系? 受託開発系? 原田さん モデモデ言ってるSIer 高崎さん アクティア hirodragonさん ミライトデザイン 4

Slide 5

Slide 5 text

今日の話し手の共通属性 ① 実装のためにモデリングしている ② 自分のスタイルでチャレンジを続けている ③ 目的を満たす最小限のモデリングをしている ④ モデルの有用性をコードで検証している (私がそう思っている) 5

Slide 6

Slide 6 text

モデリングとは ① 関心のある側面の簡素化 ② 重要な要素を選び抜く / 関心のない詳細を捨てる ③ 重要な関係性を明らかにする ④ 要点をうまく表現する適切な名前を見つける ✓複雑で大量の情報を扱うための技術(認知負荷の軽減) ✓表現手段はいろいろ(話し言葉・図・文章・プログラミング言語…) ✓ 克明な写実、精密な描写、一覧(網羅) 6

Slide 7

Slide 7 text

効果的なモデリング ① 目的が明確(例えばドメインモデルのクラス設計/パッケージ設計) ② 適切なタイミングと適切な道具 ③ 複数の視点からモデリング(複数の視点のマップを後ほど紹介) ④ 複数のモデルを関係づける ⑤ モデルと実装を一致させる(双方向の相互作用) 7

Slide 8

Slide 8 text

要点の発見 モデリング 個人 頭の中の整理 感覚の可視化 直観の刺激 チーム /関係者 要点の伝達 要点の共同化 記録 言語化・可視化した要点を 固定する(再生可能にする) 手書き/会話的なツール (記録ではなくアイデアだし) ドキュメントツール ソースコード 8 複数の視点を組み合わせて ・重要な要素を発見する/捨てる ・重要な関係を発見する/捨てる ・適切な名前を発見する/捨てる 目的に合わせて簡素化 必要なタイミング 有用性をコードで検証 モデリングの 主目的ではない 言語化・可視化

Slide 9

Slide 9 text

モデリングと アプリケーションアーキテクチャ アプリケーションアーキテクチャが異なれば モデリングの着眼点と重視する点が異なる トランザクションスクリプト ドメインモデル 着眼点・重視する点 画面/入力データ データベース/出力データ 機能分解(業務機能→データ入出力処理) 着眼点・重視する点 事業活動の仕組みと決め事 ビジネスルールに基づく計算判断 計算判断の文脈ごとに分割 データ入出力の処理手続きの中に ビジネスロジックを埋め込む (画面やデータベース操作から独立して) ビジネスロジックとデータをカプセル化 9

Slide 10

Slide 10 text

問い 10 ① 普段はどんなモデリングをしていますか? ② どうやってモデリングを学んできた感じですか? モデリングの学び方のお勧めはありますか?

Slide 11

Slide 11 text

普段はどんなモデリングをしていますか? (していませんか?) 語彙のモデリング 事業活動のモデリング ソフトウェアのモデリング 用語定義一覧 用語説明書 用語関連図 (クラス図風/ER図風) 用語一覧 機能階層モデル 画面モデル データモデル ドメインモデル (ロジック with データ) ユースケースモデル ビジネスモデル 取引関係図 収益構造図 ビジネスプロセス バリューチェーン 業務フロー アクティビティ図 BPMN ビジネスルール 計算式・計算手順 決定表/判定表 分類表/区分表 日程図/時間帯図 ビジネスデータ 概念ER/T字型ER リレーショナルモデル データフロー 状態遷移モデル 11

Slide 12

Slide 12 text

モデリング:三つのアプローチ 12 プロセス中心 データ中心 ルール中心 業務フロー (アクション連鎖) データフロー データ処理 価値活動 方針(ポリシー) スケジュール 契約・規約 機能階層モデル ユースケースモデル ドメインモデル (計算判断モデル) データモデル ER CRUD 機能 データベース 画面 処理 詳細 データベース 画面 マッピ ング データベース 画面

Slide 13

Slide 13 text

ドメインモデル中心 13 価値活動 方針(ポリシー) スケジュール 契約・規約 ドメインモデル 計算判断モデル 中核の ユースケース 中核の データ 周辺的な ユースケース 周辺的な データ データフロー データ処理 業務フロー (アクション連鎖)

Slide 14

Slide 14 text

語彙のモデリング 事業活動の モデリング ソフトウェアの モデリング どうやってモデリングを学んできた感じですか? 学び方のお勧めはありますか? 書籍 ネット上のリソース 技術系/ビジネス系 初学者向け/中級向け/上級向け 現場での実践/体験 現場での実験・研究 社内で座学(勉強会/研修) 外部で座学(勉強会/研修) 社内で体験学習 オンライン学習サービス 雑誌 外部で体験学習 個人/有志/チーム/部門/全社 14 資格の取得 モデリングの着眼点 要点の見つけ方/捨て方 モデルと実装の関連付け • 転機になったこと • 影響が大きかったこと • 続けていること