devlove発表資料

42
要件定義と開発プロセスの接点 頭でっかちで役に立たない要件定義にならないために そのチームにとって適切な要件定義とは

Upload: zenji-kanzaki

Post on 12-Jun-2015

1.190 views

Category:

Technology


0 download

DESCRIPTION

RDRAの概要紹介と繰り返し開発と要件定義の接点を紹介 「手戻りを少なくするためにどこまで要件を定義すべきか?」 システムの全体像を俯瞰し、全体視点からの合意点を明らかにする考え方をRDRAの4つの視点から説明

TRANSCRIPT

Page 1: DevLOVE発表資料

要件定義と開発プロセスの接点

頭でっかちで役に立たない要件定義にならないために

そのチームにとって適切な要件定義とは

Page 2: DevLOVE発表資料

㈱バリューソース代表取締役神崎 善司[email protected] page:要件定義の散歩道https://www.facebook.com/youkennotsubo?ref=hltwitter:@zenzengood

普段は要件定義関連のコンサルセミナー講師(要件定義、オブジェクト指向、モデリング)

わたしは…

2

Page 3: DevLOVE発表資料

今日お話しすること

A-3

決め方

いつから作るできるだけ手戻りを減らすために、どこまで要件をつめればいいか

要件定義を素早く精度高く行うには…

Page 4: DevLOVE発表資料

精度の高い要件定義を短期間に行うためには…

要件を素早く決める

4

Page 5: DevLOVE発表資料

要件を決める

A-5

全体を俯瞰する

システムの地図

Page 6: DevLOVE発表資料

地図が伝えるもの 全体をつかむために

宅地

宅地

商業地

枝葉の情報を省き重要な情報を載せる

詳細化するために分類する

これは当たり前 でもExcelでつくられた巨大な図を見かけませんか

Page 7: DevLOVE発表資料

全体を俯瞰する

UC:ユーケース

情報をつなぎシステムの骨格をつかむ

A- 7

データ

入出力

要求

機能

機能

機能

機能

機能

機能外部システム外部シ

ステム外部システム

要求から機能とデータまでをつなげる

Page 8: DevLOVE発表資料

要件定義の枠組みから要件を素早く決める

決め方を決める

要件分析の枠組み

8

Page 9: DevLOVE発表資料

要件定義には何を定義すればいいのか

A-9

「要件定義の対象をシステムとシステムを取り巻く環境」と考える

システムシステム

システムを取り巻く環境

要件定義書

Page 10: DevLOVE発表資料

要件定義では何が定義されないといけないのか

A- 10

システム

もの

サービス

機能

データ

機能

機能

利害関係者

ユーザ

外部システム

業務

•その機能が使用するデータは?•システムに必要な機能は?•その時の入出力情報は?•上記の環境とシステムとの接点は?

•どのような外部システムと関わるのか?•どのような人に使われるのか?•このシステムの目的(価値)は?

•どのような業務でシステムは使われるのか?

Page 11: DevLOVE発表資料

もの

サービス

要件定義の構造を定義する

A- 11

システム

機能

データ

機能

機能

利害関係者

ユーザ

外部システム

システム価値

もの サービス

利害関係者

ユーザ

システム外部環境

外部システム

システムシステム

システム境界

機能データ

機能

•システム価値•システム外部環境•システム境界•システム

要件定義の構造

•その機能が使用するデータは?

•システムに必要な機能は?

•その時の入出力情報は?

•システムとの接点は?

•どのような外部システムと関わるのか?

•どのような人に使われるのか?

•このシステムの目的(価値)は?

•どのような業務でシステムは使われるのか?

Page 12: DevLOVE発表資料

なぜ4つに分けるのか

A- 12

システムの要件をまとめるとは...

システム境界を明確にする必要がある

システムの外部環境を把握する必要がある

対象業務の関係者と関係する外部システムを洗い出す

システムに必要な機能とデータを定義する

その外部環境がもつ価値や役割を定義する

システム価値

システム外部環境

もの サービス

利害関係者

ユーザ

外部システム

システムシステム

システム境界

機能データ

機能

要求価値

そのためには…

そのためには…

そのためには…

そのためには…

Page 13: DevLOVE発表資料

要件分析の枠組み 各々の視点に必要な情報は

A- 13

1.【システムの価値】を捉える

•対象業務に関わる人を洗い出す•関係する外部システムを洗い出す•要求を捉える

2.【システム外部環境】を捉える

•対象業務の流れを捉える•対象業務に関わる概念を明らかにする•システムの利用シーンを明らかにする

3.【システム境界】を捉える

•ユーザインターフェースを明らかにする•外部システムとのインターフェースを明らかにする

4.【システム】を定義する

•機能を明らかにする•データを明らかにする•ドメインの構造を把握する

システム価値システム価値

もの サービス

利害関係者

ユーザ

要求

価値

外部システム

システム外部環境

システムシステム

機能データ

機能

システム境界

Page 14: DevLOVE発表資料

システム価値からシステムの機能とデータをつなぐ手段としてUMLを拡張したモデルを利用する

システムの全体像をとらえるRDRA:Relationship Driven Requirement Analysis

14

Page 15: DevLOVE発表資料

act アクティビ ティ

システム主体者1 システム主体者2 システム主体者3

X xxxx7 X xxxx4

開始

X xxxx5

X xxxx6

X xxxx8

X xxx1

X xxx2

X xxxx9X xxx3

終了

システム主体者1

act アクティビ ティ

システム主体者1 システム主体者2 システム主体者3

X xxxx7 X xxxx4

開始

X xxxx5

X xxxx6

X xxxx8

X xxx1

X xxx2

X xxxx9X xxx3

終了

システム主体者1

act アクティビ ティ

システム主体者1 システム主体者2 システム主体者3

X xxxx7 X xxxx4

開始

X xxxx5

X xxxx6

X xxxx8

X xxx1

X xxx2

X xxxx9X xxx3

終了

システム主体者1

act アクティビ ティ

システム主体者1 システム主体者2 システム主体者3

X xxxx7 X xxxx4

開始

X xxxx5

X xxxx6

X xxxx8

X xxx1

X xxx2

X xxxx9X xxx3

終了

システム主体者1

コンテキストモデルからシステム境界まで

A-

1.対象業務に関わる人と外部システムを把握する

class システムコンテキスト

業務名

<<システム>>Xxxx システム

システム主体者1システム主体者2

システム主体者3

システム主体者4

業務主体者5

外部システム

class システムコンテキスト

業務名

<<システム>>Xxxx システム

システム主体者1システム主体者2

システム主体者3

システム主体者4

業務主体者5

外部システム

コンテキストモデル

cus t om 機能要求

新しいサービスを開始したい

広告収入を増やしたい

小規模店舗が新しい市場だ

顧客へのサービスを向上させたい

難しい操作のシステムをいれるのは嫌だ

顧客とダイレクトにつなぎたい

XXXXXXXXXXXXXX

YYYYYYYYYYYYYYY

システム主体者1システム主体者2

システム主体者3

cus t om 機能要求

新しいサービスを開始したい

広告収入を増やしたい

小規模店舗が新しい市場だ

顧客へのサービスを向上させたい

難しい操作のシステムをいれるのは嫌だ

顧客とダイレクトにつなぎたい

XXXXXXXXXXXXXX

YYYYYYYYYYYYYYY

システム主体者1システム主体者2

システム主体者3

要求モデル

外部システム

人(アクター)

システム

要求要求

要求

2.下記関係者の要求を把握する

4.業務の中でシステムが関わる部分を把握する

3.業務を組み立てる

uc ユ ースケー ス

X xxxをYyyyす る

X xxxを Wwwwする

UuuuをLl l l す る

システム主体者1

システム主体者2

システム主体者3

システム主体者4

Kkkk kをXする

Oを Onnnnす る

uc ユ ースケー ス

X xxxをYyyyす る

X xxxを Wwwwする

UuuuをLl l l す る

システム主体者1

システム主体者2

システム主体者3

システム主体者4

Kkkk kをXする

Oを Onnnnす る

act アクティ ビティ

システム主体者1 システム主体者2 システム主体者3

X xxxx7 X xxxx4

開始

X xxxx5

X xxxx6

X xxxx8

X xxx1

X xxx2

X xxxx9X xxx3

終了

システム主体者1

act アクティ ビティ

システム主体者1 システム主体者2 システム主体者3

X xxxx7 X xxxx4

開始

X xxxx5

X xxxx6

X xxxx8

X xxx1

X xxx2

X xxxx9X xxx3

終了

システム主体者1

業務モデル

act 入荷業務

発注処理

営業

物流

入荷商品の確認

入荷処理

開始

終了

発注処理

<<入荷システム>>入荷登録

在庫切れ  在庫補充の発注

新規商品の発注

act 入荷業務

発注処理

営業

物流

入荷商品の確認

入荷処理

開始

終了

発注処理

<<入荷システム>>入荷登録

在庫切れ  在庫補充の発注

新規商品の発注

対象業務に関わる人と外部システムを要件定義の起点とする

s tm 状態

State1

St ate2

開始

St ate3

St ate4

終了

Stat e5

State 6

Stat e7

ユースケース名と対応をとることもできる

St ate8

Sta te9

<<Use Case>>

eeeeee [ff<1000]

XxxxをWwwwする[aaa=234]

s tm 状態

State1

St ate2

開始

St ate3

St ate4

終了

Stat e5

State 6

Stat e7

ユースケース名と対応をとることもできる

St ate8

Sta te9

<<Use Case>>

eeeeee [ff<1000]

XxxxをWwwwする[aaa=234]

stm イベント一覧

タイムアウト

一周完了

停止

制御終了

制御終了

操作開始

移動終了

移動開始

電源オフ 電源オン

コンテキストモデル::定点カメラ

stm イベント一覧

タイムアウト

一周完了

停止

制御終了

制御終了

操作開始

移動終了

移動開始

電源オフ 電源オン

コンテキストモデル::定点カメラ

イベントモデル

プロトコルモデル

5.外部システムとのイベントを捉える

6.外部システムとのプロトコルを整理

同じように利用シーンからユースケースを導き出す

Page 16: DevLOVE発表資料

ユースケースから機能、データまで

A-

システム

7.ユースケースに関わるユーザーインターフェーズを洗い出す

uc ユ ースケース

X xxxを Yyyyする

X xxxを Wwwwする

Uuuuを Ll l l する

システム主体者1

システム 主体者2

システム主体者3

システム主体者4

Kkkkkを Xする

Oを Onnnnする

uc ユ ースケース

X xxxを Yyyyする

X xxxを Wwwwする

Uuuuを Ll l l する

システム主体者1

システム 主体者2

システム主体者3

システム主体者4

Kkkkkを Xする

Oを Onnnnする

s tm 状態

State1

St ate2

開始

St ate3

St ate4

終了

Stat e5

State 6

Stat e7

ユースケース名と対応をとることもできる

St ate8

Sta te9

<<Use Case>>

eeeeee [ff<1000]

XxxxをWwwwする[aaa=234]

s tm 状態

State1

St ate2

開始

St ate3

St ate4

終了

Stat e5

State 6

Stat e7

ユースケース名と対応をとることもできる

St ate8

Sta te9

<<Use Case>>

eeeeee [ff<1000]

XxxxをWwwwする[aaa=234]

stm イベント一覧

タイムアウト

一周完了

停止

制御終了

制御終了

操作開始

移動終了

移動開始

電源オフ 電源オン

コンテキストモデル::定点カメラ

stm イベント一覧

タイムアウト

一周完了

停止

制御終了

制御終了

操作開始

移動終了

移動開始

電源オフ 電源オン

コンテキストモデル::定点カメラ

イベントモデル

プロトコルモデル

8.ユースケースを実現する機能を洗い出す

cus tom 画面モデル

<<画面>>商品登録画面

- 商品名- 取引先- 荷姿- 発注単位- 商品カテゴリ

<<画面>>販売状況照会

- 月- 商品カテゴリ

<<画面>>発注登録

- 商品- 発注日- 発注数量- 入荷予定日

<<画面>>商品説明

- 商品カテゴリ

<<画面>>カート処理

- 受注番号

<<画面>>受注照会

- 顧客名- 受注日

商品売上詳細

- 商品- 売上数量- 売上金額

詳細説明

- 商品説明

カー ト内商品

- 商品- 数量

<<画面>>決済処理

- 顧客名- 住所- 決済方法

受注商品

- 商品- 受注数量

cus tom 画面モデル

<<画面>>商品登録画面

- 商品名- 取引先- 荷姿- 発注単位- 商品カテゴリ

<<画面>>販売状況照会

- 月- 商品カテゴリ

<<画面>>発注登録

- 商品- 発注日- 発注数量- 入荷予定日

<<画面>>商品説明

- 商品カテゴリ

<<画面>>カート処理

- 受注番号

<<画面>>受注照会

- 顧客名- 受注日

商品売上詳細

- 商品- 売上数量- 売上金額

詳細説明

- 商品説明

カー ト内商品

- 商品- 数量

<<画面>>決済処理

- 顧客名- 住所- 決済方法

受注商品

- 商品- 受注数量

uc ユ ースケー ス&画面

受注照会

商品登録

商品説明&受注

発注処理

販売状況照会

オーダ ー管理

営業

物流

顧客

<<画面>>商品登録画面

- 商品名- 取引先- 荷姿- 発注単位- 商品カテゴリ

<<画面>>販売状況照会

- 月- 商品カテゴリ

<<画面>>発注登録

- 商品- 発注日- 発注数量- 入荷予定日

<<画面>>商品説明

- 商品カテゴリ

<<画面>>カー ト処理

- 受注番号

<<画面>>受注照会

- 顧客名- 受注日

<<画面>>決済処理

- 顧客名- 住所- 決済方法

オーダー 取り消しオーダー 取り消し

- 受注番号

uc ユ ースケー ス&画面

受注照会

商品登録

商品説明&受注

発注処理

販売状況照会

オーダ ー管理

営業

物流

顧客

<<画面>>商品登録画面

- 商品名- 取引先- 荷姿- 発注単位- 商品カテゴリ

<<画面>>販売状況照会

- 月- 商品カテゴリ

<<画面>>発注登録

- 商品- 発注日- 発注数量- 入荷予定日

<<画面>>商品説明

- 商品カテゴリ

<<画面>>カー ト処理

- 受注番号

<<画面>>受注照会

- 顧客名- 受注日

<<画面>>決済処理

- 顧客名- 住所- 決済方法

オーダー 取り消しオーダー 取り消し

- 受注番号

画面帳表モデル

act 機能モデル

<<funct ion>>Uuuu機能

<<funct ion>>Zzzz機能

<<funct ion>>X xxx機能

<<funct ion>>Yyyy y機能

act 機能モデル

<<funct ion>>Uuuu機能

<<funct ion>>Zzzz機能

<<funct ion>>X xxx機能

<<funct ion>>Yyyy y機能

機能モデル

act 機能モデル

<<funct ion>>Uuuu機能

<<funct ion>>Zzzz機能

<<funct ion>>X xxx機能

<<funct ion>>Yyyy y機能

act 機能モデル

<<funct ion>>Uuuu機能

<<funct ion>>Zzzz機能

<<funct ion>>X xxx機能

<<funct ion>>Yyyy y機能

c la s s データ モデ ル2

<<datamodel>>AAAX xxx

- xxx11: int- xxx12: int- xxx13: int

Xxxx

<<datamodel>>AAAX xxx1

- x1xx11- x1xx12- x1xx13

<<datamodel>>AAAYyyy

- yyy1- yyy2- yyy3

Uuuu

- uuu1- uuu2- uuu3

<<datamodel>>AAAJj j j

- jjj1- jjj2- jjj3

<<datamodel>>AAAOooo

- eeee1: int- eeee2: int- eeee3: int

Xxxx

<<datamodel>>AAAX xxx2

- x2xx1- x2xx2- x2xx3

Xxxx

X xxx3

- x3xx1- x3xx2- x3xx3

c la s s データ モデ ル2

<<datamodel>>AAAX xxx

- xxx11: int- xxx12: int- xxx13: int

Xxxx

<<datamodel>>AAAX xxx1

- x1xx11- x1xx12- x1xx13

<<datamodel>>AAAYyyy

- yyy1- yyy2- yyy3

Uuuu

- uuu1- uuu2- uuu3

<<datamodel>>AAAJj j j

- jjj1- jjj2- jjj3

<<datamodel>>AAAOooo

- eeee1: int- eeee2: int- eeee3: int

Xxxx

<<datamodel>>AAAX xxx2

- x2xx1- x2xx2- x2xx3

Xxxx

X xxx3

- x3xx1- x3xx2- x3xx3

データモデル

uc 機能モデ ル

X xxxをW wwwする

<<datamodel>>AAAJ j j j

- jj j1- jjj2- jjj3

<<datamodel>>AAAOooo

- eeee1: int- eeee2: int- eeee3: int

<<datamodel>>AAAX xxx

- xxx11: int- xxx12: int- xxx13: int

Xxxx

<<datamodel>>AAA Xxx x1

- x1xx11- x1xx12- x1xx13

<<funct ion>>Xxxx機能 <<funct ion>>

Yyyyy機能

<<funct ion>>Zzzz機能

<<funct ion>>Uuuu機能

triger

CRUD CRUD

RCRU

CRU

uc 機能モデ ル

X xxxをW wwwする

<<datamodel>>AAAJ j j j

- jj j1- jjj2- jjj3

<<datamodel>>AAAOooo

- eeee1: int- eeee2: int- eeee3: int

<<datamodel>>AAAX xxx

- xxx11: int- xxx12: int- xxx13: int

Xxxx

<<datamodel>>AAA Xxx x1

- x1xx11- x1xx12- x1xx13

<<funct ion>>Xxxx機能 <<funct ion>>

Yyyyy機能

<<funct ion>>Zzzz機能

<<funct ion>>Uuuu機能

triger

CRUD CRUD

RCRU

CRU

9.アクションを機能に対応付ける

画面・ユースケースモデル

ユースケースモデル

機能モデル

システム境界

10.データを洗い出す

11.機能とデータを付き合わせる

機能複合モデル

Page 17: DevLOVE発表資料

システム価値 システム外部環境 システム境界 システム

コンテキスト

利用シーン

業務

イベント プロトコル

ユースケース

概念

画面・帳表

機能

ドメイン

データ

要求

機能複合モデル

利用シーン&UC

業務&UC

UC:ユーケース

UC&画面

UC&機能

関係ダイアグラムシステムの地図

A- 17

Page 18: DevLOVE発表資料

システムの地図 モデルイメージ

画面・帳票モデル イベントモデル

プロトコルモデルデータモデル 機能複合モデル(CRUD)

モデル名はRDRAベース

全てのモデルを作るわけではない

Page 19: DevLOVE発表資料

モデリングツール リポジトリの利用

リポジトリを使って違うダイアグラムに同一アイコンを配置できる

リポジトリ上は一つのものとして管理されるA

Page 20: DevLOVE発表資料

要件定義も徐々に洗練化する(2ヶ月の要件定義の例)

1ヶ月目 2ヶ月目 3ヶ月目 4ヶ月目 5ヶ月目 6ヶ月目 7ヶ月目 8ヶ月目 9ヶ月目システムの開発期間

1週目 2週目 3週目 4週目 5週目 6週目 7週目 8週目 9週目

要件定義

1マイルストーン

第1マイルストーン 第2マイルストーン 第3マイルストーン

2マイルストーン 3マイルストーン 4マイルストーン

第4マイルストーン

システム価値

システム外部環境

システムシステム

システム境界

システム価値

システム外部環境

システムシステム

システム境界

システム価値

システム外部環境

システムシステム

システム境界

システム価値

システム外部環境

システムシステム

システム境界

要件のベースライン

見積もりをしなくてはいけない…

要件定義は繰り返し洗練化が必要

ウォーターフォールで考えてみるWBSにはめるため…

Page 21: DevLOVE発表資料

分割して統治せよサブシステム分割

業務フローが顧客に価値を届ける単位になるので、その単位でサブシステムを分割するとわかりやすい

サブシステム間の関係を記述する関係は1方向が望ましい

サブシステム分割のもとになった業務フローをサブシステムの配下に置く

サブシステム

サブシステム

サブシステム

Page 22: DevLOVE発表資料

システムの地図 ブレークダウン

Page 23: DevLOVE発表資料

・決める範囲をどのように決めればいいのか?

・そのチームにとって最も手戻りのコストが低い要件定義は?

・具体的に「ここが」と指せるものはあるか?

どこまで決めれば開発に移れるか

23

Page 24: DevLOVE発表資料

システム価値 システム外部環境 システム境界 システム

コンテキスト

利用シーン

業務

イベント プロトコル

ユースケース

概念

画面・帳表

機能

ドメイン

データ

要求

機能複合モデル

利用シーン&UC

業務&UC

UC&画面

UC&機能

開発サイクルとRDRAを対応させる

A- 24

手戻りを減らすためにどこまで決めておく必要があるか?

アーキテクチャの決まり具合は? 開発手法の決まり具合は?

Page 25: DevLOVE発表資料

いつから開発サイクルをはじめるか

アクターと要求がそろったところで開発サイクルを開始

業務が見えたところで開発サイクルを開始

インターフェースが見えたところで開発サイクルを開始

認識を合わせる

RDRAを要件の出発点として活用

要件仕様

What

How 設計実装

機能・データが見えたところで開発サイクルを

開始

Page 26: DevLOVE発表資料

Agileに対応させてみる

Agile開発

価値

価値を実現する主要な業務、主要なパス

動くもの(実装)で置き換えられる部分

Page 27: DevLOVE発表資料

インセプションデッキと対応させてみる

2.エレベータピッチコンテキスト図・要求を使ってシステムの目的や狙いを伝える

1.我々はなぜここにいるのかシステムの外部環境とシステム境界を説明し何を実現するためにいるのかを

説明

3.パッケージデザインキーとなる主要なシステム境界(画面、イベント)を使って、要求とつなげて価値を伝える

5.ご近所さんを探せ重要なアクターを業務フロー、ユースケースに関わるアクターから洗い出す。開発に関わるアクターは開発用のコンテキスト図を別途用意

対応しないもの4.やらないことリスト6.技術的な解決案を描く9.トレードオフスライダー10.何がどれだけ必要か

7.夜も眠れなくなるような問題トップダウン、ボトムアップで説明する中で「これだ!」と言えるものが無い…主要・重要の切り分けがついていない

8.期間を見極める4つの視点とマイルストーンを使って全体を把握しロードマップを明らかにする

Page 28: DevLOVE発表資料

モデルで考えるか 動くもので考えるか

考慮点・どこまで全体を俯瞰する必要があるのか・モデルで考えるのが早いか動くもので考える方が早いか・そのプロジェクトにとってHowを考えることが重要か否か・革新的か否か(実物を見ないと判断できない)~

図で考える 動くもので考える

表現方法

フォーカス

関心 What What&How

モデル動くも

ポイント不可逆な時間の中で「今」何を行う必要があるのか

Page 29: DevLOVE発表資料

不可逆な時間の中で手戻りを減らすために「決めすぎず、決めなさすぎず」

不可逆な時間の中で手戻りをどう減らすか

制約

制約制約

次の作業は前の制約の中で考えるシステム価値システム価値

もの サービス利害関係者

ユーザ

要求価値

外部システム

システム外部環境

システムシステム

機能データ

機能

システム境界

システム価値

システム外部環境

システムシステム

システム境界

システム価値

システム外部環境

システムシステム

システム境界

システム価値

システム外部環境

システムシステム

システム境界

システム価値

システム外部環境

システムシステム

システム境界

制約を作りこむ・4つの視点には依存関係がある・4つの視点と制約を合わせる・一度に決めない 徐々に洗練化する・力点を明確にする

Page 30: DevLOVE発表資料

RUPに対応させてみる

A B C D E

A B C D E

RDRA

方向づけ・推敲内の4つのイテレーション(A~D)で活用各々の要求・分析にRDRAのモデルを重点を変えながら対応させる

A B C

D

Page 31: DevLOVE発表資料

マイルストーン毎の力点の移動 (既存システムの再構築例)マイルストーン1 マイルストーン2

最重点モデル

最重点モデル

マイルストーン4

最重点モデル

網羅性

整合性

マイルストーン3

サブシステム分割

Page 32: DevLOVE発表資料

システム価値 システム外部環境 システム境界 システム

コンテキスト

利用シーン

業務

イベント プロトコル

ユースケース

概念

画面・帳表

機能

ドメイン

データ

要求

機能複合モデル

利用シーン&UC

業務&UC

UC&画面

UC&機能

関係ダイアグラムシステムの地図

A- 32

ここまでできたら開発に移行する具体的に対象を指し認識を合わせられることが重要

Page 33: DevLOVE発表資料

制約

制約制約

本日のまとめ

A- 33 システム

不可逆な時間の中で手戻りを減らす

4つの視点で制約を作りこむ

RDRA• 視点の異なる情報をつなげて素早く要件を決める• 全体視点で合意するべきところを明示し反復開発に

つなげる• システムの地図で全体を管理する

作業領域で制約を作りこむ

Page 34: DevLOVE発表資料

ビジネスキャンバスでビジネスモデルのポイントが示される

おまけ1ビジネスキャンバスからつなぐ

34

Page 35: DevLOVE発表資料

ビジネスモデルキャンバス

A-35

問題はここからどうシステム化するか

コスト構造 収益の流れ

パートナー

顧客セグメント

価値提案

リソース

主要活動

チャネル

顧客との関係

ビジネスモデルジェネレーションより

Page 36: DevLOVE発表資料

コスト構造 収益構造

パートナー

顧客セグメント

価値提案

リソース

主要活動

チャネル

顧客との関係

登場人物もの・サービス

配送手段決済手段

アクター外部システム

業務フロー・ワークフロー利用シーン

ビジネスキャンバス

RDRA

ビジネスモデル図

バリエーションの組み合わせから細かな条件が整理される

バリエーション分析

システム化の目的要求

概念

ビジネスキャンバスからRDRAモデルへ

ビジネスキャンバスから具体的なビジネスルールを導き出す

Page 37: DevLOVE発表資料

ビジネスキャンバスに対応するモデル

会社顧客

入金

商品

注文

請求

仕入先

コンテキスト

業務 プロトコル

ユースケース

画面・帳表

ドメイン データ

要求

イベント

概念

情報

情報

情報

商品

コスト構造 収益の流れ

パートナー

顧客セグメ

ント

価値提案

リソース

主要活動

チャネル

顧客との関係

バリデーション分析

モデルを使って具体的に分析する

Page 38: DevLOVE発表資料

保守で使えるモデル

視覚的なトレーサビリティを実現する

おまけ2トレーサビリティを確保したモデル

A-38

RDRA RDRA保守用

開発のV字モデル

Page 39: DevLOVE発表資料

変更の影響度を測る トレーサビリティ

変更

影響

影響

影響影響

影響

影響

影響

影響

Page 40: DevLOVE発表資料

実装としてのつながりを視覚化

A-40

画面 機能 データ

c lass 受注伝票

<<ADWindow>>Sales Order

<<ADTab>>Order Line

<<ADTab>>Order

<<ADTab>>Order Tax

<<ADTab>>POS Payment

<<ADTab>>Payment Schedule

<<interface>>注文(Order): : I_C _Order

<<interface>>注文(Order) : : I_C_OrderLine

<<interface>>注文(Order) : : I_C_OrderTax

<<interface>>支払い(Payment ): :I_C_POSPayment

<<interface>>注文(Order): : I_C_OrderPaySchedule

注文(Order) : :c_order

注文(Order): :c_orderline

注文(Order): :c _ordertax

注文(Order): :c_orderpayschedule

POS Payment : :c_pos payment

見積受注管理(c) : 見積受注管理(c)

画面機能

Interfaceデータ

dm 注文(order)

c_cashplanl ine

c_order

c_orderline

c_orderpayschedule

c_ordersource

c_ordert ax

c_uom

c_payment term

c_payschedule

m_warehouse

c_act iv it y

c_campa ign

c_bpartner_locat ion

c_currency

c_charge

m_product

c_t ax

c_project

m_promot ion

m_shipper

c_bpart ner

ビジネスパートナーとの関係

受注先 business partner

納品先 dropship

請求先 bil

支払先 pay

プログラム(変更・拡張点)

データの広がり

コードを確認

Page 41: DevLOVE発表資料

使用するモデル

A-41

システム価値 システム外部環境 システム境界 システム

コンテキスト

利用シーン

業務

イベント プロトコル

ユースケース

概念

画面・帳表

機能

ドメイン

データ

要求

機能複合モデル

利用シーン&UC

業務&UC

UC&画面

UC&機能

Page 42: DevLOVE発表資料

トレーサビリティを手に入れるpkg 販売管理

DataModelView

<<table>>注文(Order)

(from 受発注管理(c))

<<table>>出荷/受領(inOut )

(from 出荷・受領・生産(m))

<<table>>パッケージ(package)

(from 出荷・受領・生産(m))

<<table>>割当(alloca t ion)

(from 受発注管理(c))

<<table>>請求(Invoice)

(from 受発注管理(c))

<<table>>手数料(comiss ion)

(from 受発注管理(c))

受注伝票

(from 見積受注管理)

注文(Order)

(from 受発注管理(c))

出荷納品伝票

(from 出荷納品管理)

売上請求伝票

(from 売上請求管理)

受発注管理(c)

(from データ)

出荷・受領・生産(m)

(from データ)

<<table>>製品

(from 製品(Product))

製品管理

(from マスタ管理)

出荷・受領(inOut )

(from 出荷・受領・生産(m))

支払い(Payment )

(from 受発注管理(c))

請求(Invoice)

(from 受発注管理(c))

<<table>>支払(Payment )

(from 受発注管理(c))

ここに入金用のビューを

置く

販売管理の主要パッケージ

pkg 業務分析

販売管理

購買管理

マスタ管理

返品管理

c lass 受注伝票

<<ADWindow>>Sales Order

<<ADTab>>Order Line

<<ADTab>>Order

<<ADTab>>Order Tax

<<ADTab>>POS Payment

<<ADTab>>Payment Schedule

<<interface>>注文(Order): : I_C _Order

<<interface>>注文(Order) : : I_C_OrderLine

<<interface>>注文(Order) : : I_C_OrderTax

<<interface>>支払い(Payment ): :I_C_POSPayment

<<interface>>注文(Order): : I_C_OrderPaySchedule

注文(Order) : :c_order

注文(Order): :c_orderline

注文(Order): :c _ordertax

注文(Order): :c_orderpayschedule

POS Payment : :c_pos payment

見積受注管理(c) : 見積受注管理(c)

dm 注文(order)

c_cashplanline

c_order

c_orderline

c_orderpayschedule

c_ordersource

c_ordertax

c_uom

c_paymentt erm

c_payschedule

m_warehous e

c_act iv it y

c_campaign

c_bpartner_locat ion

c_currency

c_cha rge

m_product

c_t ax

c_pro ject

m_promot ion

m_shipper

c_bpart ner

ビジネスパートナーとの関係

受注先 business partner

納品先 dropship

請求先 bil

支払先 pay