ユースケース駆動開発をなぜやるのか? どういう利点があるのか。
イベント「ユースケース駆動開発をやってみた」の 登壇資料です。 https://modeling-how-to-learn.connpass.com/event/229330/
僕がユースケース駆動開発をする理由ユースケース駆動開発をやってみた2021.12.08 @hirodragon
View Slide
僕がユースケース駆動開発をする理由話す事話さないこと話す事・ユースケース駆動開発を実践するモチベーション話さない事・ICONIXプロセス等の具体的なやり方(ICONIXの手順などは以前発表した資料がありますのでよろしければそちらも見てください)- 明日から使えるDDDのためのユースケース駆動開発https://qiita.com/hirodragon/items/e2330edc1d1a329d17f5- DDD時代に考えたいICONIXプロセスhttps://speakerdeck.com/hirodragon112/iconix-in-ddd- ICONIXプロセスから学ぶオブジェクト指向モデリングhttps://speakerdeck.com/hirodragon112/iconix-for-object-oriented
僕がユースケース駆動開発をする理由本日のテーマプログラムを書こう
僕がユースケース駆動開発をする理由Hash tag : #iconixTwitterなどで、感想・にぎやかし・その他諸々書いてイベントを盛り上げて頂けると嬉しいです
僕がユースケース駆動開発をする理由自己紹介林 宏勝Twitter : @hirodragon112株式会社ミライトデザイン CEOOOP/DDD/CQRS/ICONIX/Agile/PHP/RDRA/らへんが好き上流から下流まで色々やります。Object-Oriented Conference2021 主催勉強会 : ペチオブYoutube :https://www.youtube.com/c/MiraitoDesignInc
僕がユースケース駆動開発をする理由よりよいシステムを作りたい
僕がユースケース駆動開発をする理由何を作ればよいのか どう作ればよいのかシステム開発の難しさ
僕がユースケース駆動開発をする理由何を作ればよいのか どう作ればよいのか何をしたい? どう使う?誰が使う? 何を実現したい?言語仕様 アーキテクチャシステム設計 データベース設計システム開発の難しさ
僕がユースケース駆動開発をする理由何を作ればよいのか どう作ればよいのか何をしたい? どう使う?誰が使う? 何を実現したい?言語仕様 アーキテクチャシステム設計 データベース設計予算 期間 チーム管理 資産管理ドキュメント リリース CI/CD セキュリティ運用方法 メンテナンス老朽化 監視他にも…テスト戦略システム開発の難しさ
僕がユースケース駆動開発をする理由システム開発の難しさ何を作ればよいのか どう作ればよいのか開発者はこっちにばかり目がいってしまいがち
僕がユースケース駆動開発をする理由システム開発の難しさ何を作ればよいのか どう作ればよいのか何をどう作ればよいのか目的と作り方を常に同時に意識したい
僕がユースケース駆動開発をする理由ドメインロジックドメインドメインロジックドメインロジックドメインドメインロジック- 入力(ユーザー操作やバッチ、APIコールなど)をきっかけに動作する- 独立した演算群(ドメインロジック)とその他アプリケーションロジック(永続化など)を適切な順番で呼び出し処理を行う- 結果を出力として返却するよくあるシステムの内部入力永続化出力必要な順序で演算組み合わせる参照外部連携
僕がユースケース駆動開発をする理由ドメインロジックドメインドメインロジックドメインロジックドメインドメインロジックドメインロジック = 独立した演算ドメイン毎に分類された演算群システムのコアとなるもの関数のようなもの。入力に対して演算結果を返す事が役割Ex : 美容院の予約システム- 予約枠はあいているか- 予約受付時間か- 施術時間の合計は何分か- ポイントが何ポイントたまるかetcよくあるシステムの内部ドメインオブジェクト
僕がユースケース駆動開発をする理由入出力- システムが動作するきっかけ- 結果を出力として返却する- 入力の検証などはここで行われるよくあるシステムの内部入力 出力入出力
僕がユースケース駆動開発をする理由- メモリから永続化装置(主にDB)への書き込みや読み込み- 外部システムとの通信(外部APIなど)- その他アプリケーションに必要な操作を行うよくあるシステムの内部永続化参照外部連携
僕がユースケース駆動開発をする理由ドメインロジックドメインドメインロジックドメインロジックドメインドメインロジックシステムに必要な各要素を- 必要な処理を- 適切な順番で呼び出す。いわば司会進行票よくあるシステムの内部入力永続化出力必要な順序で演算組み合わせる参照外部連携
僕がユースケース駆動開発をする理由引用 : https://magazine.partyhunter.jp/know-how/1256/
僕がユースケース駆動開発をする理由本日のテーマ式次第 = プログラムプログラム物事を行う手順のもくろみ。•予定の計画表。•催物などの実行計画。その予定・順序・番組・配役などを書いた紙。プロ。•コンピュータによる処理法を具体的に計算機向きに指示した表現。
僕がユースケース駆動開発をする理由本日のテーマプログラム = ユースケース利用者がシステムを用いて目的を達成するまでのやり取りの定義実際に利用するアクター(利用者・外部システム)から見た、「このシステムは何ができるのか」
僕がユースケース駆動開発をする理由「何ができて」「どういうやり取りで実現するか」ユースケース図 ユースケース記述
僕がユースケース駆動開発をする理由システム開発の難しさ何を作ればよいのか どう作ればよいのか何をどう作ればよいのか目的と作り方を常に同時に意識したいユースケースを中心としてシステムを考えると「何を」と「どうやって」を常に分離せずに考えられる
僕がユースケース駆動開発をする理由取り組んでいること- 要件定義の段階からユースケース図を作成し、プロダクトオーナーと認識をそろえる- ユースケース図に出た言葉はその後の工程でもそのまま使う- 分析モデルの入り口もユースケース図(ロバストネス図に繋げる)- ユースケース記述は式次第だと意識する- フィードバックループを回す
僕がユースケース駆動開発をする理由ダグ・ローゼンバーグマット・ステファン 著ICONIXプロセス- ユースケースを中心に、ユーザーの要求からシステムの各オブジェクトへのマッピング- 分析・開発・テストまで網羅したプロセス- ロバストネス分析が最大の特徴- ドメインモデルの洗い出しや見直しにも最適
僕がユースケース駆動開発をする理由RDRA- 物事の関係性に着目した要件定義時のモデリング手法- 要求 - 業務 - BUC(ビジネスユースケース)を関連付け- システム境界を認識しアクターを整理できるユースケースから大本の要求にまで関連をたどる事ができる神崎善司 著
僕がユースケース駆動開発をする理由宣伝ミライトデザインでは絶賛エンジニアを募集しています。DDD, ICONIX,OOPなどが好き経験年数不問ただし、ある程度の自己学習習慣は必要ですご興味ある方いらっしゃいましたらお気軽にtwitterのDMなどください!
僕がユースケース駆動開発をする理由@hirodragon