Contenu connexe
Similaire à CloudSpiral 2013年度 UML講義 2日目
Similaire à CloudSpiral 2013年度 UML講義 2日目 (20)
CloudSpiral 2013年度 UML講義 2日目
- 2. Cloud Specialist Program Initiative for Reality-based Advanced Learning
復習:ICONIXプロセスの流れ*
動的
*ユースケース駆動開発実践ガイド
2日目(来週)
夏合宿
Test 2
Test 1
紙芝居
ユースケース図
シーケンス図
1日目
(今日)
テスト計画
ロバストネス図
静的
ドメインモデル
ドメインモデル
(更新済)
分野・地域を越えた実践的情報教育協働ネットワーク
クラス図
© Cloud Spiral partners 2013
ソースコード
テストコード
2013/5/24
2
- 3. Cloud Specialist Program Initiative for Reality-based Advanced Learning
前回の復習
紙芝居
プロジェクト内でのwhatの共通認識形成
非UML,やり方は様々
ユースケース図
Whatを一定の粒度で整理する
ドメインモデル図
システム内で扱う「モノ」を整理する
用語集
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
3
- 5. Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
5
- 6. Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
6
- 7. Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
7
- 8. Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
8
- 9. Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
9
- 10. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ユースケース図
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
10
- 11. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ユースケース図
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
11
- 12. Cloud Specialist Program Initiative for Reality-based Advanced Learning
(参考) ユースケース図
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
12
- 13. Cloud Specialist Program Initiative for Reality-based Advanced Learning
(参考) ユースケース図
演習題材
説明題材
総合
演習題材
宿題
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
13
- 14. Cloud Specialist Program Initiative for Reality-based Advanced Learning
(参考) ドメインモデル図
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
14
- 15. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ICONIX 流れの確認
動的
Test 2
Test 1
紙芝居
ユースケース図
シーケンス図
テスト計画
ロバストネス図
静的
ドメインモデル
ドメインモデル
(更新済)
分野・地域を越えた実践的情報教育協働ネットワーク
クラス図
© Cloud Spiral partners 2013
ソースコード
テストコード
2013/5/24
15
- 16. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ユースケース記述
目的:各ユースケースの具体化・詳細化
ユーザとシステムの相互作用を記述する
ユースケース記述
ユースケース図
ログインする
一般ユーザ
分野・地域を越えた実践的情報教育協働ネットワーク
UC:ログインする
【基本コース】
・ユーザはログインリンクをクリックする.
・システムはログインページを表示する.
・ユーザはユーザIDとパスワードを入力し…
【代替コース】
ユーザIDが間違っている場合:
・システムは…
© Cloud Spiral partners 2013
2013/5/24
16
- 17. Cloud Specialist Program Initiative for Reality-based Advanced Learning
2つのシナリオ
【基本コース】
正常系のシナリオ
単一
【代替コース】
異常系・分岐系のシナリオ
複数
UC:ログインする
【基本コース】
・ ユーザはログインリンクをクリックする.
・ システムはログインページを表示する.
・ ユーザはユーザIDとパスワードを入力し…
…
【代替コース】
ユーザIDが間違っている場合:
・ システムはエラーメッセージを表示し,直前
のページを表示する
パスワードが間違っている場合:
・ システムは…
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
17
- 18. Cloud Specialist Program Initiative for Reality-based Advanced Learning
① ログインページ
例:「ログインする」のUC記述
cspiral2013
******
UC:ログインする
ログイン
UC名
画面操作
画面表示
入力
ログイン処理
画面表示
【基本コース】
• ユーザは任意のページからログインリンクをクリックする.
• システムはログインページを表示する.
• ユーザはユーザIDとパスワードを入力し,ログインボタンをクリックする.
• システムはアカウントリストから指定のユーザIDが存在するかを確認し,
一般ユーザアカウントを取り出す.
• システムは入力パスワードと一般ユーザアカウントのパスワードの一致を
確認する.
• システムは歓迎メッセージとともに,直前のページを表示する.
【代替コース】
ユーザIDが正しくない場合:
• システムは「ユーザ名またはパスワード」が間違っていることを示すメッ
セージとともに,直前のページを表示する.
パスワードが正しくない場合:
• システムは「ユーザ名またはパスワード」が間違っていることを示すメッ
セージとともに,直前のページを表示する.
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
18
- 19. Cloud Specialist Program Initiative for Reality-based Advanced Learning
UC記述作成時のポイント
SVOで記述する
「ユーザは~を~する」 「システムは~を~する」
「ユーザは~を~し,~を~する」
ユーザとシステムの対話を具体的に書く
ただしアルゴリズムの詳細を書かない
ドメインモデル(用語集)の言葉を使う
代替コースをよく考える
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
19
- 20. Cloud Specialist Program Initiative for Reality-based Advanced Learning
演習:UC記述の作成
20m
UC記述を作成してください
アカウント登録
ページ
題材:UC 「アカウントを登録する」
基本コース:
代替コース:
cspiral2013
******
******
UC「ログインする」
ユーザは任意のペー
ジからログインリンク
をクリックする
ユーザIDが間違っている場合
システムはログイン
ページを表示する
…
分野・地域を越えた実践的情報教育協働ネットワーク
登録
ユーザは「ユーザID
が間違っている」メッ
セージを表示する
…
パスワードが
間違っている場合
…
© Cloud Spiral partners 2013
2013/5/24
20
- 21. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ICONIX 流れの確認
動的
Test 2
Test 1
紙芝居
ユースケース図
シーケンス図
テスト計画
ロバストネス図
静的
ドメインモデル
ドメインモデル
(更新済)
分野・地域を越えた実践的情報教育協働ネットワーク
クラス図
© Cloud Spiral partners 2013
ソースコード
テストコード
2013/5/24
21
- 22. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ロバストネス図
目的:UC記述の洗練
UC記述を可視化,分析しその妥当性を確認する
WhatとHowの橋渡し
ロバストネス図
UC記述
UC:ログインする
【基本コース】
・ユーザは…
・システムは…
【代替コース】
~が間違っている場合:
・システムは…
ログインページを表示する
一般ユーザ
マスタ
アカウントリスト
ログイン
ページ
ユーザIDが
存在するか?
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
22
- 23. Cloud Specialist Program Initiative for Reality-based Advanced Learning
記法
ステレオタイプ
バウンダリ: システム内部と外部の境界=画面
エンティティ: ドメインモデル上のモノ=オブジェクト
コントローラ: 上2つの接着剤
ステレオタイプ間の関係
必ずコントローラと接続する
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
23
- 24. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のロバストネス図
ログインを
クリック
任意のページ ログインページを
表示する
マスタ
アカウントリスト
ユーザ
アカウント
ユーザIDとパスワードを
入力しログインを
クリック
一般ユーザ
ログイン
ページ
はい
いいえ
ユーザIDが
存在するか?
いいえ
「ユーザ名またはパスワードが無効」
メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
ユーザアカウントを
取得する
はい
パスワードが
一致するか?
歓迎メッセージを
表示する
© Cloud Spiral partners 2013
2013/5/24
24
- 25. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のロバストネス図
ログインを
クリック
任意のページ ログインページを
表示する
マスタ
アカウントリスト
ユーザ
アカウント
ユーザIDとパスワードを
入力しログインを
クリック
一般ユーザ
ログイン
ページ
はい
いいえ
ユーザIDが
存在するか?
いいえ
「ユーザ名またはパスワードが無効」
メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
基本コース
ユーザアカウントを
取得する
はい
パスワードが
一致するか?
歓迎メッセージを
表示する
© Cloud Spiral partners 2013
2013/5/24
25
- 26. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のロバストネス図
ログインを
クリック
任意のページ ログインページを
表示する
マスタ
アカウントリスト
ユーザ
アカウント
ユーザIDとパスワードを
入力しログインを
クリック
一般ユーザ
ログイン
ページ
はい
いいえ
ユーザIDが
存在するか?
いいえ
「ユーザ名またはパスワードが無効」
メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
ユーザアカウントを
取得する
はい
パスワードが
一致するか?
代替コース
歓迎メッセージを
表示する
© Cloud Spiral partners 2013
2013/5/24
26
- 27. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のロバストネス図
ログインを
クリック
任意のページ ログインページを
表示する
マスタ
アカウントリスト
ユーザ
アカウント
ユーザIDとパスワードを
入力しログインを
クリック
一般ユーザ
ログイン
ページ
はい
いいえ
ユーザIDが
存在するか?
いいえ
「ユーザ名またはパスワードが無効」
メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
ユーザアカウントを
取得する
処理フロー
はい
パスワードが
一致するか?
歓迎メッセージを
表示する
© Cloud Spiral partners 2013
2013/5/24
27
- 28. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のロバストネス図
ログインを
クリック
任意のページ ログインページを
表示する
マスタ
アカウントリスト
ユーザ
アカウント
ユーザIDとパスワードを
入力しログインを
クリック
一般ユーザ
ログイン
ページ
はい
画面
生成・遷移
いいえ
ユーザIDが
存在するか?
いいえ
「ユーザ名またはパスワードが無効」
メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
ユーザアカウントを
取得する
はい
パスワードが
一致するか?
歓迎メッセージを
表示する
© Cloud Spiral partners 2013
2013/5/24
28
- 29. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のロバストネス図
ログインを
クリック
任意のページ ログインページを
表示する
ユーザの
アクション
マスタ
アカウントリスト
ユーザ
アカウント
ユーザIDとパスワードを
入力しログインを
クリック
一般ユーザ
ログイン
ページ
はい
いいえ
ユーザIDが
存在するか?
いいえ
「ユーザ名またはパスワードが無効」
メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
ユーザアカウントを
取得する
はい
パスワードが
一致するか?
歓迎メッセージを
表示する
© Cloud Spiral partners 2013
2013/5/24
29
- 30. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のロバストネス図
ログインを
クリック
任意のページ ログインページを
表示する
マスタ
アカウントリスト
ユーザ
アカウント
ユーザIDとパスワードを
入力しログインを
クリック
一般ユーザ
ログイン
ページ
はい
いいえ
利用
ユーザIDが
存在するか?
いいえ
「ユーザ名またはパスワードが無効」
メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
ユーザアカウントを
取得する
はい
パスワードが
一致するか?
歓迎メッセージを
表示する
© Cloud Spiral partners 2013
2013/5/24
30
- 31. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ロバストネス図作成のポイント
まずUC記述をそのまま貼り付ける
UC記述をそのまま図に書き直す
基本コース・代替コースの両方を書き込む
UC記述も同時に修正する
ここが目的
矢印の意味を考えすぎない
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
31
- 32. Cloud Specialist Program Initiative for Reality-based Advanced Learning
演習:ロバストネス図の作成
50m
ロバストネス図を作成してください
題材:UC 「アカウントを登録する」
コントローラ:
バウンダリ・エンティティ:
ログインページ
を表示する
ログインペー
ジ
マスタアカウ
ントリスト
ユーザIDとパスワードを
入力し「ログイン」を
クリック
ユーザIDが
存在するか?
いいえ
分野・地域を越えた実践的情報教育協働ネットワーク
はい
ユーザアカウン
トを取得する
© Cloud Spiral partners 2013
2013/5/24
32
- 33. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ICONIX 流れの確認
動的
Test 2
Test 1
紙芝居
ユースケース図
シーケンス図
テスト計画
ロバストネス図
静的
ドメインモデル
ドメインモデル
(更新済)
分野・地域を越えた実践的情報教育協働ネットワーク
クラス図
© Cloud Spiral partners 2013
ソースコード
テストコード
2013/5/24
33
- 34. Cloud Specialist Program Initiative for Reality-based Advanced Learning
シーケンス図
目的:クラスの責務割り当て
クラス名
属性
目的は処理フローの記述ではない
クラスの責務=属性と振る舞い
振る舞い
シーケンス図
ロバストネス図
一般ユーザ
ログインページを表示する
自動化
可能
一般ユーザ
ログイン
ページ
ユーザIDが
存在するか?
分野・地域を越えた実践的情報教育協働ネットワーク
ログインページ
ログインボタンを
押下
マスタアカウントリスト
指定のユーザIDが
存在するか
ユーザアカウントの
取得
© Cloud Spiral partners 2013
2013/5/24
34
- 35. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のシーケンス図
一般ユーザ
ログインページ
ユーザIDとパスワードを
入力しログインボタンを
押下
マスタアカウントリスト
ユーザアカウント
指定のユーザIDが
存在するか
ユーザアカウントの
取得
歓迎メッセージを
表示する
パスワードが一致するか
「ユーザ名またはパスワード
が無効」メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
35
- 36. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のシーケンス図
一般ユーザ
ログインページ
ユーザIDとパスワードを
入力しログインボタンを
押下
マスタアカウントリスト
ユーザアカウント
ロバストネス中のバウンダリとエンティティ
指定のユーザIDが
存在するか
ユーザアカウントの
取得
歓迎メッセージを
表示する
パスワードが一致するか
「ユーザ名またはパスワード
が無効」メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
36
- 37. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のシーケンス図
一般ユーザ
ログインページ
ユーザIDとパスワードを
入力しログインボタンを
押下
マスタアカウントリスト
ユーザアカウント
ロバストネス中のバウンダリとエンティティ
指定のユーザIDが
存在するか
コントローラ
ユーザアカウントの
取得
歓迎メッセージを
表示する
パスワードが一致するか
「ユーザ名またはパスワード
が無効」メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
37
- 38. Cloud Specialist Program Initiative for Reality-based Advanced Learning
例:UC「ログインする」のシーケンス図
一般ユーザ
ログインページ
基本コース
ユーザIDとパスワードを
入力しログインボタンを
押下
ユーザアカウント
ロバストネス中のバウンダリとエンティティ
指定のユーザIDが
存在するか
コントローラ
ユーザアカウントの
取得
歓迎メッセージを
表示する
代替コース
マスタアカウントリスト
パスワードが一致するか
「ユーザ名またはパスワード
が無効」メッセージを表示する
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
38
- 39. Cloud Specialist Program Initiative for Reality-based Advanced Learning
シーケンス図作成のポイント
まずロバストネス図をそのまま貼り付ける
ロバストネス図のバウンダリとエンティティを書き込む
コントローラを矢印に書き換える
活性区間,返り値,分岐を書かない
あるいは無視する
ログインページ
マスタアカウントリスト
ユーザアカウント
アカウントの取得()
生成
アカウント
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
39
- 40. Cloud Specialist Program Initiative for Reality-based Advanced Learning
クラス図
クラスの責務(属性と振る舞い)を構造化する
クラス図
クラス名
シーケンス図
属性
振る舞い
一般ユーザ ログインページ
ボタン押下
マスタアカウントリスト
- アカウント: List
+ ユーザIDが存在するか(String): boolean
+ アカウントを取得する(String): Account
マスタアカウントリスト
指定のユーザIDが
存在するか
アカウントの
取得
自動化
可能
アカウント
- ユーザID: String
- パスワード: String
+ パスワードが正しいか(String): boolean
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
40
- 41. Cloud Specialist Program Initiative for Reality-based Advanced Learning
クラス図の作成
シーケンス図からほぼ自動的に作成できる
エンティティをクラスに
矢印を振る舞いに
クラス図
マスタアカウントリスト
シーケンス図
アカウント: List
ユーザIDが存在するか(String): boolean
アカウントを取得する(String): Account
一般ユーザ ログインページ マスタアカウントリスト
ボタン押下
指定のユーザIDが
存在するか
アカウントの
取得
アカウント
ユーザID: String
パスワード: String
パスワードが正しいか(String): boolean
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
41
- 42. Cloud Specialist Program Initiative for Reality-based Advanced Learning
演習:クラス図・シーケンス図の作成
40m
2つの図を作成してください
シーケンス図
一般ユーザ
ログインページ
クラス図
アカウントリスト
マスタアカウントリスト
-アカウント: List
ボタン押下
指定のユーザID
が存在するか
分野・地域を越えた実践的情報教育協働ネットワーク
+ ユーザIDが存在するか(String):boolean
+ アカウントを取得(String):Account
© Cloud Spiral partners 2013
2013/5/24
42
- 43. Cloud Specialist Program Initiative for Reality-based Advanced Learning
さらなるステップ
責務の割り当てを再検討する
UC「アカウントを登録する」の例
一般ユーザ
アカウント登録ページ
ユーザアカウント
ユーザIDとパスワード,
確認用パスワードを入力し
登録ボタンを押下
2つのパスワードが
一致しているか
ユーザIDの書式が
正しいか
バウンダリ(画面)の
責務として不適切
パスワードの書式が
正しいか
画面にやらせすぎ
生成
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
43
- 44. Cloud Specialist Program Initiative for Reality-based Advanced Learning
さらなるステップ
対処1:ドメインオブジェクトに責務を割り当てる
Domain Model
一般ユーザ
アカウント登録ページ
ユーザアカウント
ユーザIDとパスワード,
確認用パスワードを入力し
登録ボタンを押下
生成(uid, pass1, pass2)
2つのパスワードが
一致しているか
ユーザIDの書式が
正しいか
パスワードの書式が
正しいか
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
44
- 45. Cloud Specialist Program Initiative for Reality-based Advanced Learning
さらなるステップ
対処2:専用コントローラに責務を割り当てる
Transaction Script
一般ユーザ
アカウント登録ページ アカウント登録
ユーザアカウント
コントローラ
ユーザIDとパスワード,
確認用パスワードを入力し
登録ボタンを押下
実行
2つのパスワードが
一致しているか
ユーザIDの書式が
正しいか
パスワードの書式が
正しいか
生成
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
45
- 46. Cloud Specialist Program Initiative for Reality-based Advanced Learning
その後の流れ
詳細設計レビューの実施
責務を割り当ての再検討
使用フレームワークやパターンとの兼ね合い(Spring, Seaser, Struts, …)
全ての機能要求が満たされているか確認
…
テスト計画の作成
クラス図からコードのひな形生成
実装,レビュー,テスト,…
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
46
- 47. Cloud Specialist Program Initiative for Reality-based Advanced Learning
ICONIX おさらい
動的
Test 2
Test 1
紙芝居
ユースケース図
シーケンス図
テスト計画
ロバストネス図
静的
ドメインモデル
ドメインモデル
(更新済)
分野・地域を越えた実践的情報教育協働ネットワーク
クラス図
© Cloud Spiral partners 2013
ソースコード
テストコード
2013/5/24
47
- 48. Cloud Specialist Program Initiative for Reality-based Advanced Learning
総合演習
120m
UC記述~クラス図までの作成を実践してください
題材:UC「チケットを予約する」
動的
Test 2
Test 1
紙芝居
ユースケース図
シーケンス図
テスト計画
ロバストネス図
静的
ドメインモデル
分野・地域を越えた実践的情報教育協働ネットワーク
ドメインモデル
(更新済)
クラス図
ソースコード
テストコード
© Cloud Spiral partners 2013
2013/5/24
48
- 51. Cloud Specialist Program Initiative for Reality-based Advanced Learning
参考図書
『はじめて学ぶUML』
『ユースケース駆動開発実践ガイド』
『ユースケース入門―ユーザマニュアルからプログラムを作る』
『オブジェクト指向でなぜつくるのか』
OMGによるUMLの仕様書
http://www.uml.org/
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2013
2013/5/24
51