Advertisement
Advertisement

More Related Content

Similar to 要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】(20)

Advertisement

Recently uploaded(20)

要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】

  1. 要求/ユースケース 2022年7⽉21⽇ 浅海智晴 クラウドアプリケーションのための オブジェクト指向分析設計講座 第13回 作業分野
  2. 第1部 基本編の構成 • 概論 [第1回] • 開発プロセス [第2回] • 基本モデル [第3回] • 静的モデル(1) [第4回] • 静的モデル(2) [第5回] • 動的モデル [第6回] • 協調モデル [第7回] • 関数モデル [第8回] • 物理モデル [第9回] • 作業分野 [第10回] • ビジネス・モデリング [第11回] • 要求 [第12回] • 要求/ユースケース [第13回] • 分析 [第14回] • 作業分野 • 設計 [第15回] • 実装 [第16回] • テスト [第17回] • アプリケーション・アーキテクチャ [第18回] • ドメイン・モデル [第19回] • アプリケーション・モデル [第20回] • プレゼンテーション・モデル [第21回] • ケーススタディ[第22回] • 要求モデル [第23回] • 分析モデル [第24回] • 設計モデル [第25回] • 実装 [第26回] • テスト [第27回]
  3. SimpleModeling2021 • オブジェクト指向分析設計での共通範囲 • UML/UP • 本講座で使⽤するUMLプロファイル • プロファイル:SimpleModeling2021 (SM2021) • オブジェクト指向分析設計の基本からの拡張部を明確化 • アジャイル開発 • Communication • Embrace Change • Travel Light • Scaling • クラウド・アプリケーション • モデル駆動開発 SM2021 Travel Light Embrace Change Cloud Model-Driven Scaling
  4. 原理 (Principle) • Agail Software Development [ASD] • SRP (The Single Responsibility Principle) • OCP (The Open-Close Principle) • LSP (The Liskov Substitution Principle) • … • GRASP (General Responsibility Assignment Software Patterns or Principals) • Low Coupling • High Cohesion • … • Writing Effective Use Cases [WEUC] • Scope • …
  5. パターン (Pattern) • Design Patterns [DP] • Observer, Strategy, … • Domain Driven Design [DDD] • Ubiquitous Language, Intention- Revealing Interfaces, … • Analysis Patterns [AP] • Party, Quantity, … • Pattern-Oriented Software Architecture [POSA] • Layers, Pipes and Filters, … • Patterns of Enterprise Application Architecture [PEAA] • Unit of Work, Data Transfer Object, … • Enterprise Integration Patterns [EIP] • Message Bus, Aggregator, … • Patterns for Effective Use Cases [PEUC] • CompleteSingleGoal, VerbPhraseName, … • AntiPatterns [AnP] • Stovepipe System, Analysis Paralysis, …
  6. 内容 • ユースケースの位置づけ • ユースケース駆動開発 • ユースケース・モデル • ユースケースの実⽤技術 • フィーチャー・モデル • ユースケース作成⼿順
  7. ユースケースの位置づけ
  8. 第10回 作業分野
  9. 作業分野とモデルの関係 第10回 作業分野
  10. ソフトウェア要求仕様の構造 SM2021
  11. SM2021 要求モデルとユースケース
  12. 物語系モデル • ユースケース • XP(アジャイル開発) • ユーザー・ストーリー • UX (User Experience) • ペルソナ • シナリオ
  13. 関連技術 • UCD (User Centered Design) • 魅⼒的で効率的なUXを作成する⽅法は、ユーザー中⼼設計と呼ばれる。 ユーザー中⼼設計の概念は⾮常に単純である。製品を開発する際には、 ユーザーをあらゆる段階で考慮に⼊れる。 • The Elements of User Experience • UX (User Experience) • エンドユーザーと会社、そのサービス、およびその製品とのやり取り (interaction)のすべての側⾯を包含したもの。 • Nielsen Norman Group • https://www.nngroup.com/articles/definition-user-experience/
  14. 物語系モデルの関係
  15. ユースケース駆動開発
  16. ユースケース駆動開発
  17. 開発計画 • ユースケースを開発の単位として開発を進める。 • ユースケースの優先度=利⽤者にとって重要なゴールの優先度 • ユースケース単位で⾒積もり • FP(Function Point)法 • 外部⼊⼒、外部出⼒、外部照合、内部論理ファイル、外部インタフェース、画⾯ などの要因ごとに重み付けをつけた総和で⼯数/期間を⾒積もる • UP(Use Case Point)法 • アクター、ユースケースなどの要因ごとに重み付けをつけた総和で⼯数/期間を ⾒積もる
  18. ユースケース→コラボレーション→インタラクション
  19. 第14回 分析 第7回 協調モデル
  20. UI(User Interface) • ユースケースはアクターとシステム間のインタラクションを記 述するものなので、インタラクションがUIの候補になる • ユースケースがモデル化するユーザーのゴール(⽬標)やインタ ラクションで受け渡されるデータがUI設計の⼊⼒になる
  21. ユースケースとUIプロトタイプ • 要求ワークフローでユースケースの代わりにUIプロトタイプ (モックアップ)を使⽤するアプローチもある • UIが中⼼の開発では有効だが、サービス開発には以下の問題が ある • ユースケースより作成⼯数がかかる • UIから直接⾒えてこない処理が開発計画/⾒積りから抜けてしまう • バッチ、イベント駆動処理、管理画⾯など • UIができたことで、システムがすぐに完成できるように顧客に錯覚を 与えてしまう • ユースケースのシナリオをUIモックアップで作成するアプロー チは有効
  22. マニュアル • ユースケースは利⽤者がゴールを達成するための、システムと の対話のシーケンスを記述する • 利⽤者のゴールと、ゴールに⾄るまでの対話のシーケンスを、 利⽤者向けの⽇本語で記述するとユーザー・マニュアルとなる
  23. テスト • ユースケースのシナリオを、システムで実現できることをテス トする • ユースケースのシナリオをAPIの呼び出し列でテスト・ケース化 • UIを除いたサービス処理部で⾃動テスト化できると望ましい • レグレッション・テスト、受け⼊れテストなど
  24. ユースケース・モデル
  25. ユースケース (Use Case) • アクターに観察可能な価値の結 果をもたらす、システムが実⾏ する⼀連のアクション(変異 (variant) を含む)の記述。 • 要求モデルの中核 • 振る舞いの契約 • アクターにとって価値のある物 語を定義 • 脚本からシナリオ分析でユース ケースを実現するアプリケー ション・モデルを抽出する 第7回 協調モデル
  26. ユースケース図 (Use Case Diagram) • ユースケース • 要求をアクターが⽬標を達成す る物語として記述 • 脚本が重要 • アクター • システム外のオブジェクト • 物語の配役 • サブジェクト • システム内の機能 • 物語の舞台 第7回 協調モデル
  27. ユースケース記述 • ユースケースの構造、挙動をテキ スト形式で記述 • UMLで標準のユースケース記述仕 様は定義されていない • 本講座で使⽤するユースケース記 述 • 基本仕様、詳細仕様、脚本で構成 • 最⼩構成はユースケース名&あらす じ • 後続のモデリングに有益な情報を必 要に応じて定義していく • 分析中毒(Analysis Paralysis)に注意 • ユースケース図はユースケース記 述集の⽬次 第7回 協調モデル
  28. 第7回 協調モデル
  29. ユースケース間の関係 第7回 協調モデル
  30. ユースケース/汎化 第7回 協調モデル
  31. ユースケース/include 第7回 協調モデル
  32. ユースケース/extend 第7回 協調モデル
  33. ユースケースの実⽤技術 『Writing Effective Use Cases』 『Patterns for Effective Use Cases』など
  34. Writing Effective Use Cases • スコープ • Enterprise, System, SubSystem • ゴールレベル • Summary, User Goal, Subfunction • アクター種別 • 事前条件 • トリガー • 保証
  35. アクターの種類 • プライマリ・アクター • ユースケースの主役になるアクター • サポーティング・アクター • プライマリ・アクターの⽬的を達成する⼿助けをするアクター • ステークホルダー • ユースケースになんらかの利害関係を持つアクター • SuD (System under Design) • 開発対象のシステム • 内部アクター • システム内で動作するアクター • ホワイトボックス・ユースケースで使⽤
  36. Patterns for Effective Use Cases [PEUC] 開発パターン • 開発チーム • 開発プロセス • 編集 構造パターン • ユースケース関係 • ユースケース・セット • ユースケース • シナリオ • ステップ
  37. PEUCの代表的パターン • CompleteSingleGoal • ユースケースは単⼀の完結したゴールを持つ • VerbPhraseName • ユースケースは動詞のフレーズの名前になる • ScenarioPlusFragments • ユースケースはメインシナリオにフラグメントを追加した構造にする • DetectableConditions • シナリオには検出可能な条件を記述する • ActorIntentAccomplished • シナリオ・ステップはアクターの意図した達成が得られるようにする • TechnologyNeutral • シナリオ・ステップはテクノロジー中⽴にする
  38. フィーチャー・モデル SM2021
  39. フィーチャー • クライアントに価値がある関数の⼩さな断⽚ • 2週間以内に実装できる粒度 • <action> <result> <object>の形式で記述 • 例: Calculate the total of a sale • ユースケースの以下の問題に対応するため補完的に⽤いる • ユースケースの作成⼯数は⽐較的⼤きいので、単純なユースケースは ユースケースとしてモデル化せず、フィーチャーとしてモデル化 • 例:エンティティの管理画⾯
  40. ユースケース作成⼿順
  41. 【⼊⼒】ビジネス・モデリングの成果物 • ビジョン宣⾔ • コンテキスト・モデル • ビジネス・ユースケース図 • ビジネス・ユースケース記述
  42. 【⾷堂予約システム】ビジネス・ユースケース図 第11回 ビジネス・モデリング
  43. 【⾷堂予約システム】ビジネス・ユースケース記述 • ユースケース名: ⼊店予約して⼊店する • プライマリ・アクター: 利⽤者 • あらすじ: ランチでお店が満杯だったので、予約システムに登録をし て、空きができたことをSMSで取得後に、再度お店に⾏き⼊店した。 • シナリオ: 1. ランチでお店に⾏ったところ満杯だった 2. 予約システムに会員アプリで登録してその場を離れた 3. SMSで通知があったで、会員アプリを⾒たところ⼊店の順番が近づいてい ることが分かった 4. お店についた頃にSMSで再度通知があって、⼊店が可能になっていること が分かった 5. お店についてホール係にアプリ画⾯を⾒せると⼊店できた 第11回 ビジネス・モデリング
  44. 【⼊⼒】要求の成果物 • ビジョン宣⾔ • コンテキスト・モデル • 要求 • ⾮機能要求 • エンティティ・モデル • ⽤語集 • 状態機械モデル • ルール・モデル • 規則集
  45. 【⾷堂予約システム】コンテキスト・モデル 第12回 要求
  46. 【⾷堂予約システム】機能要求 ID 優先度 サブジェクト 機能 1 Must ⾷堂予約システム ⼊場待ちの予約ができる 2 Should ⾷堂予約システム ⼀定の時間前にリマインダのメッセージを送付 3 Could ⾷堂予約システム 送付時間を管理画⾯で設定可能 4 Could ⾷堂予約システム リマインダメッセージを管理画⾯で設定可能 第12回 要求
  47. 【⾷堂予約システム】⽤語集 ⽤語 クラス ステレオ タイプ 意味 予約システム 開発対象のシステム。(SuD: System under Development) 利⽤者 User actor ⾷堂に⾷事に来た顧客 ホール係 Staff actor ⾷堂のホール係 ⽀配⼈ ⾷堂の管理者 予約 Reservation business event 予約の総称 ⼊店予約 EnterRservation business event ⼊店の予約。昼⾷時の待ち⾏列のエントリーに使⽤ する。 テーブル予約 TableReservation business event テーブルの予約。コース料理の予約の場合に使⽤で きる。 テーブル Table resource テーブル。予約対象になる。 第12回 要求
  48. 【⾷堂予約システム】ビジネス・ルール(兼 規則集) • 案内通知⼿段はメール、SMS、PUSHから選べる • ⼊店申請の2組前になった時に案内通知を⾏う • 案内通知の⽂⾯を管理コンソールで編集できる • ⼊店可能になったら案内通知を⾏う • 案内通知の⽂⾯を管理コンソールで編集できる • ⼊店可能後10分後に案内通知を⾏う • 案内通知の⽂⾯を管理コンソールで編集できる • ⼊店申請は⼊店受付してから30分でキャンセルになる • キャンセル時に案内通知を⾏う • 案内通知の⽂⾯を管理コンソールで編集できる 第12回 要求
  49. 【⾷堂予約システム】ユースケース図
  50. 【⾷堂予約システム】ユースケース図/ホール係、運営
  51. フィーチャー ID 優先度 名前 F0001 B リマインダメッセージの送信時間ルールを変更する
  52. まとめ • ユースケースの位置づけ • ユースケース駆動開発 • ユースケース図はユースケース記述の集まりの⽬次 • ユースケース記述にアクターが体験する物語を記述 • フィーチャーでユースケースの補完するとよい
  53. 参考⽂献 • The Unified Modeling Language Reference Manual, 2nd (Rumbaugh他, 2004) • The Unified Modeling Language User Guide, 2nd (Booch他, 2004) • The Unified Software Development Process (Jacobson他, 1999) • The Object Constraint Language, 2nd (Warmer 他, 2003) • UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (Arlow 他, 2005) • OMG Unified Modeling Language Version 2.5 (OMG, 2015) • 上流⼯程UMLモデリング (浅海, 2008) • Writing Effective Use Cases (Cockburn, 2000) • Patterns for Effective Use Cases (Adolph他, 2003) • Java Modeling in Color With Uml: Enterprise Components and Process (Coad他, 1999) • Usability Engineering (Nielsen, 1993) • The User Is Always Right: A Practival Guide to Creating and Using Personas for the Web (Mulder他, 2007) • The Elements of User Experience, 2nd (Garrett, 2011)
Advertisement