分析
2022年9⽉22⽇
浅海智晴
クラウドアプリケーションのための
オブジェクト指向分析設計講座
第15回
作業分野
第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回]
• 実装 [第28回]
• テスト [第29回]
SimpleModeling2021
• オブジェクト指向分析設計での共通範囲
• UML/UP
• 本講座で使⽤するUMLプロファイル
• プロファイル:SimpleModeling2021 (SM2021)
• オブジェクト指向分析設計の基本からの拡張部を明確化
• アジャイル開発
• Communication
• Embrace Change
• Travel Light
• Scaling
• Component-Based Development
• クラウド・アプリケーション
• モデル駆動開発
SM2021
Travel Light
Embrace Change
Cloud
Model-Driven
Scaling
CBD
原理 (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
• …
パターン (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, …
内容
• 分析の位置づけ
• 分析と設計
• シナリオ分析
• シナリオ分析の実践
分析の位置づけ
第10回 作業分野
作業分野とモデルの関係 第10回 作業分野
ユースケース駆動開発
第14回 要求/シナリオ
分析 (Analysis)
• プラットフォーム中⽴の抽象的なモデル
• PIM (Platform Independent Model)
• 設計: PSM (Platform Specific Model)
• シナリオ分析
• 中間モデル:ロバストネス図
• コンポーネント分析
• コンポーネント
• システム・アーキテクチャ
• ⾒積もりの精度を⾼めたい場合は分析段階で再⾒積もり
CBD
分析/主な成果物
• 中間モデル
• ロバストネス・モデル
• 新規
• システム・アーキテクチャ・モ
デル
• コンポーネント・モデル
• モジュール・モデル
• イベント・モデル
• データ分析モデル
• メトリクス・モデル
• 具体化
• UXモデル
• ドメイン・モデル
• エンティティ・モデル
• サービス・モデル
• ルール・モデル
• 開発計画/⾒積もり
分析と設計
分析と設計
• 分析と設計の違い
• 分析 : ソフトウェアの本質的な構造、振る舞いを構築する
• 設計 : ソフトウェアを実⾏するプラットフォームに合わせて具体化
• 実務的には分析と設計を同時に⾏うことも有効
• ⼩規模開発では分析と設計のスコープの差が⼤きくない
第9回 物理モデル
設計で⾏うこと
• 振る舞い特性
• 性能
• 可⽤性
• スケーラビリティ
• 弾⼒性
• 実⾏環境
• データベース
• ログ
• サービス・バス
• ジョブ管理
• 国際化
• セキュリティ
• 認証
• 認可
• 監査
• DevOps
• 配備
• 運⽤
性能や運⽤保守といったアプリケーション・ロジッ
ク以外の機能を設計で具体化する
シナリオ分析
シナリオ分析
• ロバストネス(robustness)分析
• ユースケースのシナリオからロバストネス図を作成
• コンポーネント分析のための中間モデル
• 責務(responsibility)の抽出
• アクター、エンティティを抽出・具体化
• ルールを抽出・具体化
• イベントを抽出
UMLで定義されている分析オブジェクト
分析オブジェクト
SM2021
本講座による分析オブジェクトの拡張
分析オブジェクト/拡張
Cloud
第2部 クラウド・アプリケーション編
ロバストネス図
ユースケース記述
• 本講座のユースケース記述
• 基本仕様
• 詳細仕様
• 脚本
第7回 協調モデル
ユースケース記述/基本仕様
ユースケース名、アクター、⽬標、ト
リガーなどを分析に使⽤
脚本が省略されている場合はあらすじ
をシナリオ分析する
ユースケース記述/詳細仕様
シナリオ分析では参考にする程度
ユースケース記述/脚本
シナリオ分析のメイン・ターゲット
【⾷堂予約システム】⽤語集
⽤語 クラス ステレオ
タイプ
意味
予約システム 開発対象のシステム。(SuD: System under
Development)
利⽤者 User actor ⾷堂に⾷事に来た顧客
ホール係 Staff actor ⾷堂のホール係
⽀配⼈ ⾷堂の管理者
予約 Reservation business
event
予約の総称
⼊店予約 EnterRservation business
event
⼊店の予約。昼⾷時の待ち⾏列のエントリーに使⽤
する。
テーブル予約 TableReservation business
event
テーブルの予約。コース料理の予約の場合に使⽤で
きる。
テーブル Table resource テーブル。予約対象になる。
アクター、エンティティの⼊⼒
【⾷堂予約システム】エンティティ・モデル
アクター、エンティティの⼊⼒
【⾷堂予約システム】状態機械図
参考にする程度
【⾷堂予約システム】ビジネス・ルール(兼 規則集)
• 案内通知⼿段はメール、SMS、PUSHから選べる
• ⼊店申請の2組前になった時に案内通知を⾏う
• 案内通知の⽂⾯を管理コンソールで編集できる
• ⼊店可能になったら案内通知を⾏う
• 案内通知の⽂⾯を管理コンソールで編集できる
• ⼊店可能後10分後に案内通知を⾏う
• 案内通知の⽂⾯を管理コンソールで編集できる
• ⼊店申請は⼊店受付してから30分でキャンセルになる
• キャンセル時に案内通知を⾏う
• 案内通知の⽂⾯を管理コンソールで編集できる
ルール・オブジェクトの⼊⼒
フィーチャー
ID 優先度 名前
F0001 B リマインダメッセージの送信時間ルールを変更する
ユースケースの代わりにシナリオ分析の⼊⼒とする。
ユースケース・シナリオのステップに相当。
シナリオ分析の実践
ユースケース記述/脚本
シナリオとロバストネス図
シナリオとロバストネス図
シナリオとロバストネス図
ロバストネス図
まとめ
• 分析の位置づけ
• 分析と設計
• PIM(Platform Independent Model) と PSM(Platform Specific Model)
• シナリオ分析
• ユースケースのシナリオから分析の中間モデルであるロバストネス図
を作成
• シナリオ分析の実践
参考⽂献
• 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)
• Object-Oriented Software Engineering: A Use
Case Driven Approach (Jacobson, 1992)
• Object Design : Roles, Responsibilities, and
Collaborations (Wirfs-Brock他, 1990)
• Use Case Driven Object Modeling with UML:
A Practical Approach (Rosenberg, 1999)

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