Upload
shin-matsumoto
View
917
Download
0
Embed Size (px)
Citation preview
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
UML講義 1日目
神戸大学
まつ本 真佑 中村 匡秀 佐伯 幸郎
山本晋太郎 高橋昂平 大櫛章裕
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 2
所属:神戸大学大学院 システム情報学研究科
教員まつ本 真佑
中村 匡秀
佐伯 幸郎
TA (M2)大櫛 章裕
高橋 昂平
山本 晋太郎
教員紹介
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 3
ソフトウェアをモデリングするための言語(記法)
ソフトウェアを様々な側面からモデリングし可視化
13種類の図
UML: Unified Modeling Language
動的
機能的
静的
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 4
UMLの歴史
Booch法
OMT
OOSE
Unified Method 0.8
UML 2.0
J. Rumbaugh
G. Booch
I. Jacobson
UML 0.9
1995 1996 … 2004
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 5
3つの目標
UMLを読めるようにする
UMLを書けるようにする
開発プロセスを理解する
UMLはただの道具
どんな流れで・どう使うかが重要=開発プロセス
UML講義の目標
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 6
ソフトウェアを開発する作業の工程・構造
様々な開発プロセス・手法
ウォーターフォール,アジャイル,RUP,XP,ICONIX,TDD,UCDD,DDD,Ad-hoc,・・・
ソフトウェア開発プロセス
どうやって実現するか=how
何を作るか=what
要求分析
概要設計
詳細設計
実装
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 7
ICONIX社が作った開発プロセス ユースケース駆動
書籍 『ユースケース駆動開発実践ガイド』
特徴
軽量 (小~中規模向け)
緩いウォーターフォール
ある程度の手戻りを前提
4つのUML図+ロバストネス図
ICONIXプロセス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 8
Test 2
ICONIXプロセスの流れ*
ユースケース図
ロバストネス図
シーケンス図
ドメインモデル ドメインモデル(更新済)
クラス図
静的
動的
紙芝居
ソースコードテストコード
Test 1
テスト計画
*ユースケース駆動開発実践ガイド
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 9
ICONIXプロセスの流れ*
ユースケース図
ロバストネス図
シーケンス図
ドメインモデル ドメインモデル(更新済)
クラス図
静的
動的
紙芝居
1日目(今日)
2日目(来週)夏合宿
Test 2Test 1
テスト計画
ソースコードテストコード
*ユースケース駆動開発実践ガイド
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 10
分析麻痺に注意
「分析しだすと止まらなくなる」状態のこと
分析コスト > 分析の利点
分析の目的を見失わないように
答え・正解を期待しないこと
モデリングに正解はない
注意点
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
システム要件の整理
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 12
スパイラル社
チケット販売業務を提供中 (基本は電話応対)
このチケット販売業務のIT化を検討中
クラウド社
ソフトウェア開発会社
スパイラル社からチケット販売システムの開発を請負う
演習シナリオ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 13
新システムの機能要件(what)を整理してください
必須要件: システムに最低限必要な機能
追加要件: 必須ではないがあると便利な機能
ファシリテータのアジェンダを利用すること
Additional Time 10分
演習:機能要件の整理 20m
ユーザはシステムにアカウントを登録できること
ユーザは登録したアカウントでログインできること
ユーザはチケットの購入履歴を確認できること
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 14
GUI紙芝居を作ってください
目的:プロジェクト内でのWhatの共通認識形成
≠画面設計 配色・デザイン・レイアウトは考えないこと
演習:GUI紙芝居の作成
①
A4用紙(紙芝居)
① ログイン画面
cspiral2013
******
ログイン
②
ホワイトボード(画面遷移)
③
④
⑤
30m
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 15
ICONIX 流れの確認
Test 2
ユースケース図
ロバストネス図
シーケンス図
ドメインモデル ドメインモデル(更新済)
クラス図
静的
動的
紙芝居
ソースコードテストコード
Test 1
テスト計画
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 16
システムで扱う「モノ」の関係を構造化した図
プロジェクト内での用語集になる
クラス図の記法を利用 属性・処理を書き込まないこと
ドメインモデル図
アカウント
興行主アカウント
一般アカウント
購入履歴
マスタアカウントリスト
集約(has-a)汎化(is-a)
クラス名
属性
処理
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 17
1. 要件リストから名詞・名詞句を洗い出す
2. オブジェクトの整理・グルーピングを行う
3. オブジェクト間の関係を書く
手順1
• ユーザはアカウントを…
• システムのユーザ情報…
• 登録された顧客台帳…
• 興行主アカウント…
• 興行主はイベントを…
• ユーザはアカウントを…
• システムのユーザ情報…
• 登録された顧客台帳…
• 興行主アカウント…
• 興行主はイベントを…
機能要件リスト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 18
1. 要件リストから名詞・名詞句を洗い出す
2. オブジェクトの整理・グルーピングを行う
3. オブジェクト間の関係を書く
手順2
興行主アカウント
イベント
アカウント
一般アカウント
マスタアカウントリスト
アカウント
ユーザ情報
顧客台帳• ユーザはアカウントを…
• システムのユーザ情報…
• 登録された顧客台帳…
• 興行主アカウント…
• 興行主はイベントを…
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 19
1. 要件リストから名詞・名詞句を洗い出す
2. オブジェクトの整理・グルーピングを行う
3. オブジェクト間の関係を書く
手順3
アカウント
興行主アカウント
一般アカウント
マスタアカウントリスト
興行主アカウント
アカウント
一般アカウント
マスタアカウントリスト
アカウント
ユーザ情報
顧客台帳
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 20
目的:システムの振る舞い(what)を明らかにする
利用者の視点からシステムの機能を整理する 利用者はこのシステムで何ができるのか?
利用者はこのシステムで何を得るのか?
ユースケース図
アカウントを登録する
ログインする
ログアウトする一般ユーザ
ユースケース(UC)アクタ
興行主
イベントを登録する
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 21
A precedes B Aの完了後にBが実行される(事前条件)
A invokes B Aの実行中にBが実行される(サブセット)
ユースケース間の関連
ログインする
チケットを予約する
チケットを購入する チケットを
発送する
支払いをする
購入履歴を確認する
<<precedes>>
<<precedes>>
<<invokes>>
<<invokes>>
配送係
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 22
システムメニューの機能一覧をイメージする
アクタから見たときの1つの機能=1UC
内部処理(how)を意識しない
いらっしゃいませ
ご希望のお取引を選択してください
ユースケースの粒度
お引出し
お預入れ
お振込み
残高照会
通帳記帳
お預替え
螺旋銀行
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 23
ユースケースの悪い例と良い例
イベントの名前,開催場所,値段を確認する
一般ユーザ
イベント詳細を確認する
イベント一覧を様々なキーでソートする
イベント一覧を確認する
未支払いの場合は予約を強制キャンセル
予約をキャンセルする
興行主
アカウントをデータベースに登録する
アカウントを登録する
売り上げを棒グラフで表示する
売り上げを確認する
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 24
ドメインモデルとユースケースを作成してください
必ず用語をそろえること
演習:2つの図の作成 50m
一般アカウント
アカウント
興行主アカウント
一般ユーザ
ログインする
ログアウトする
購入履歴を確認する
ドメインモデル図 ユースケース図
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/17 26
『はじめて学ぶUML』
『ユースケース駆動開発実践ガイド』
『ユースケース入門―ユーザマニュアルからプログラムを作る』
『オブジェクト指向でなぜつくるのか』
OMGによるUMLの仕様書 http://www.uml.org/
参考図書