SlideShare a Scribd company logo
さくさく要件定義
システム地図で要件定義を効率的に 2015/1/24
Relationship driven requirement analysis ⇒ RDRA(ラドラ)
2
わたしは…
㈱バリューソース
代表取締役 社長
神崎 善司
zkanzaki@vsa.co.jp
要件定義の散歩道:https://www.facebook.com/youkennotsubo
twitter:@zenzengood
普段は
要件定義のコンサルテーション
セミナー開催(要件定義、モデリング)
「要件のツボ」の開発
要件定義との関係は
25年ほど前からオブジェクト指向を中心にシステム開発全般に関わる
15年ほど前から上流工程を中心としたコンサルティングを行う
その間一貫してモデル中心で行う
その経験を活かしてモデルを使った要件定義の手法をまとめる
3
今日のプレゼンの位置づけ
要件定義
外部
設計
分析
どのようなシステムを作るのか
アーキテクチャ
どのような構造のシステムにするのか
どのようにシステムを構築するのか
アーキテク
チャ策定
設計
設計・実装
何をどのように作るのか
実装
要件分析
フレームワーク要件分析
プロセス
EAの使い方
RDRAの背景
5
いつまでたってもシステムの全体像が見えてこない
議論が直ぐに袋小路に入って先に進まない
分析という名の転記作業ばかりを行っている
会議が毎回ループして先に進まない
ものすごいドキュメントが出来てくるが誰もシステ
ムの目的、役割が分からない
このようなことはないですか?
進め方や要件定義書の書き方の議論ばかりで本題に
入れない
6
じゃあどうする?
みんなで考える その場でまとめ 理解する
プロジェクターに資料
を映しながらみんなで
議論する
図的な表現
を使用する
考え → 合意し → 説明できる
方向性が固まるまでは個人作業は非効率
アイディアを視覚化し共有する
考える 合意する 理解する そして説明可能になる
7
じゃあどうする?
議論を積み上げて要件としてまとめる
合意を積み上げていき議論に一貫性を持たせる
要件定義に筋道をつける
メンバーの方向性を合わせる 私はこう思
います….
この言葉が続くようだ
と合意が得られていな
い証拠
8
より混乱を少なく要件定義を行うためには……
★顧客をリードする
★議論を積★議論を積
み上げる
★方向性を合わせる
★構造化、抽象化
しながら分析する
★視覚化し共有する
★ゴールを明確にする
ゴールを示し、そのための道筋を明らかにする。そして対象を視覚化する。
そして対象を構造化、抽象化して議論を積み上げながら要件を形にする。
要件分析の
プロセス
要件分析の
フレームワーク
今回はかなり端折っていますが…
要件定義の枠組み
上流工程での混乱を減らすために要件定義の枠組みが必要
要件分析フレームワーク
10
要件定義には何を定義すればいいのか
システム
もの
サービス
機能
データ
機能
機能
利害関係者
ユーザ
外部システム
業務
RDRAでは「要件定義の対象をシステムとシス
テムを取り巻く環境」と考える
システムを
取り巻く環境
システ
ム
システ
ム
要件
定義書
11
要件定義では何が定義されないといけないのか
システム
もの
サービス
機能
データ
機能
機能
利害関係者
ユーザ
外部システム
業務
•その機能が使用するデータは?
•システムに必要な機能は?
•その時の入出力情報は?
•システムとの接点は?
•どのようにシステムは使われるのか?
•どのような人、外部システムと関わるのか?
•このシステムの目的(価値)は?
12
もの
サービス
システム価値
もの サービス
利害関係者
ユーザ
要件定義の構造を定義する
システム外部環境
外部システム
システム
機能
データ
機能
機能
利害関係者
ユーザ
外部システム
システムシステム
システム境界
機能
データ
機能
•システム価値
•システム外部環境
•システム境界
•システム
要件定義の構造
13
システム価値
もの サービス
利害関係者
ユーザ
要求
価値
外部システム
要件分析の枠組み
1.【システムの価値】を捉える
•対象業務に関わる人を洗い出す
•関係する外部システムを洗い出す
•要求を捉える
2.【システム外部環境】を捉える
•対象業務の流れを捉える
•対象業務に関わる概念を明らかにする
•システムの利用シーンを明らかにする
3.【システム境界】を捉える
•ユーザインターフェースを明らかにする
•外部システムとのインターフェースを明
らかにする
4.【システム】を定義する
•機能を明らかにする
•データを明らかにする
•ドメインの構造を把握する
システム外部環境
システムシステム
機能
データ
機能
システム境界
要件分析の枠組みにモデルを当ては
める
システム価値からシステムの機能とデータを求める手段として
UMLを拡張したモデルを利用する
RDRA全体像
UseCas
e
UseCas
e
UseCas
e
UseCas
e
UseCas
e
データモデル
システム境界
イベント一覧
イベント
ルール化
入出力情報
業務フロー
業務に関わ
る概念
関心 イベント
データ
情報
要求
各アクティビティでは概念
にもとづいて作業を進める
機能モデル
ユーザ
利害関係者
外部シ
ステム
cus tom コンテキ スト
地域観光情 報発
信サイト
サイト 運営 者
情 報利用者
情報提供者
外部 情報サイト
旅行 者
情報を収集する対象の外部サイト
定点カメラ
cus tom コンテキ スト
地域観光情 報発
信サイト
サイト 運営 者
情 報利用者
情報提供者
外部 情報サイト
旅行 者
情報を収集する対象の外部サイト
定点カメラ
cd 初期要望 モデル
新しいサービス
を開始したい
広告収入を増や
したい
小規模店舗が新
しい市場だ
顧客へのサービ
スを向上させた
い
難しい操作のシ
ステムをいれる
のは嫌だ
顧客とダイレクト
につなぎたい
荷物の状態を知
りたい
メールで状況を
知らせて欲しい
Act or1
Actor2
Act or3
cd 初期要望 モデル
新しいサービス
を開始したい
広告収入を増や
したい
小規模店舗が新
しい市場だ
顧客へのサービ
スを向上させた
い
難しい操作のシ
ステムをいれる
のは嫌だ
顧客とダイレクト
につなぎたい
荷物の状態を知
りたい
メールで状況を
知らせて欲しい
Act or1
Actor2
Act or3
ad アクティ ビ ティ
Xxxx Yyyy Zzzzz
X xxx x X xx xx
開始
X xx xx
X xx xx
X xx xx X xx x
X x xx
X x xx xX xx x
終了
ad アクティ ビ ティ
Xxxx Yyyy Zzzzz
X xxx x X xx xx
開始
X xx xx
X xx xx
X xx xx X xx x
X x xx
X x xx xX xx x
終了
an aly sis 利用シー ン
情報利 用者
(from コンテキストモデル)
来月、 北海道に旅行を予定しているAさん。行き先の情報をネットで下調べすることに
した。後半の何日かは札幌で宿泊するつもりなので、近郊の小樽にも足を伸ばしてみ
ようと思った。ただ、小樽以外にも行きたいところは多く、あまり長い時間はとれないの
で、まずは絶対に外せない見どころの情報を示してくれるサイトを探すことにした。宿
泊予約はこの下調べの後で決めることにした。予定が立ったらネットでホテルに予約を
入れておこう。
見どころスポットの一覧を示したサイトを見つけ、内容をチェック。観て周るスポットの
候補を挙げていく。 限られた時間内でできるだけいろいろ楽しみたいので、行き先ごと
に近くのお店や観光スポットなどもチェックしておくことにした。
旅に役立つ便利情
報を入手したい
(from 要求モデル)
旅の見どころを知り
た い
(from 要求モデル)
旅先で手軽に情報
を入手したい
(from 要求モデル)
地元のバスなどは利用の仕方がよくわからないので、離れた地点間の移動にはタク
シーを利用しようか。でも、お金もかかるし、今回は駅と運河周辺を歩いて散策する
だけにするか。歩き疲れたときの休憩場所やトイレを利用できる場所などもあらかじ
め調べておくことに。
効率重視で観て周るだけでは団体ツアーみたいで物足りないので、1箇所だけ、ちょ
っと変わった場所を予定に組み入れたいと思った。そういった情報はやはり地元の人
に教えてもらおうと、 地元の個人ブログやタウン情報サイトなどを参考にあちこち調べ
てみる。自分が小樽に行く日に、町ぐるみのイベントが企画されていることがわかっ
た。ブログからは、ほかにもいろいろと面白そうな情報が見つかりそうな気もするけれ
ど、小樽だけにそれほどこだわる理由もなく、このあたりやめることにした。
こうしてひととおりの情報を集めたが、旅先でパソコンを見ることはできない。必要な
情報は紙に印刷しておくことにした。かさばるけれど仕方がない。携帯でサイトをチェッ
クすることもできないではないが、携帯端末のパワーでパソコン用のページを見るの
には時間がかかるし、パケット代も馬鹿にならない。 なにより、旅先では情報収集に煩
わされることなく旅そのものを楽しみたい。
万事に用意周到なAさん、行き先の電話番号や念のためWebサイトのアドレスもコピー
して、 自分の携帯アドレスにメールしておいた。 どうしても必要になったら、このメール
から必要な情報にアクセスできるだろう。
天気、 気温、景色など、
いま現在の状況を見たい
(from 要求モデル)
いま現在の小樽の状況として、天気、気温のほか、スキー場などに設置した定点カメラを
制御して、画像を取り出すこともできる。
an aly sis 利用シー ン
情報利 用者
(from コンテキストモデル)
来月、 北海道に旅行を予定しているAさん。行き先の情報をネットで下調べすることに
した。後半の何日かは札幌で宿泊するつもりなので、近郊の小樽にも足を伸ばしてみ
ようと思った。ただ、小樽以外にも行きたいところは多く、あまり長い時間はとれないの
で、まずは絶対に外せない見どころの情報を示してくれるサイトを探すことにした。宿
泊予約はこの下調べの後で決めることにした。予定が立ったらネットでホテルに予約を
入れておこう。
見どころスポットの一覧を示したサイトを見つけ、内容をチェック。観て周るスポットの
候補を挙げていく。 限られた時間内でできるだけいろいろ楽しみたいので、行き先ごと
に近くのお店や観光スポットなどもチェックしておくことにした。
旅に役立つ便利情
報を入手したい
(from 要求モデル)
旅の見どころを知り
た い
(from 要求モデル)
旅先で手軽に情報
を入手したい
(from 要求モデル)
地元のバスなどは利用の仕方がよくわからないので、離れた地点間の移動にはタク
シーを利用しようか。でも、お金もかかるし、今回は駅と運河周辺を歩いて散策する
だけにするか。歩き疲れたときの休憩場所やトイレを利用できる場所などもあらかじ
め調べておくことに。
効率重視で観て周るだけでは団体ツアーみたいで物足りないので、1箇所だけ、ちょ
っと変わった場所を予定に組み入れたいと思った。そういった情報はやはり地元の人
に教えてもらおうと、 地元の個人ブログやタウン情報サイトなどを参考にあちこち調べ
てみる。自分が小樽に行く日に、町ぐるみのイベントが企画されていることがわかっ
た。ブログからは、ほかにもいろいろと面白そうな情報が見つかりそうな気もするけれ
ど、小樽だけにそれほどこだわる理由もなく、このあたりやめることにした。
こうしてひととおりの情報を集めたが、旅先でパソコンを見ることはできない。必要な
情報は紙に印刷しておくことにした。かさばるけれど仕方がない。携帯でサイトをチェッ
クすることもできないではないが、携帯端末のパワーでパソコン用のページを見るの
には時間がかかるし、パケット代も馬鹿にならない。 なにより、旅先では情報収集に煩
わされることなく旅そのものを楽しみたい。
万事に用意周到なAさん、行き先の電話番号や念のためWebサイトのアドレスもコピー
して、 自分の携帯アドレスにメールしておいた。 どうしても必要になったら、このメール
から必要な情報にアクセスできるだろう。
天気、 気温、景色など、
いま現在の状況を見たい
(from 要求モデル)
いま現在の小樽の状況として、天気、気温のほか、スキー場などに設置した定点カメラを
制御して、画像を取り出すこともできる。
cd 業務概念モデル
Ww ww
Dddd
Eee e
Ttttt
Ttttt1 Tttt2 Tttt3
*+Xxx
0..1+Ssss
* 1
1
cd 業務概念モデル
Ww ww
Dddd
Eee e
Ttttt
Ttttt1 Tttt2 Tttt3
*+Xxx
0..1+Ssss
* 1
1
ud ユースケー ス
X xxxをYyyyする
X xxxをW wwwする
UuuuをLll lする
Actor1
Act or2
Actor3
Actor4
ud ユースケー ス
X xxxをYyyyする
X xxxをW wwwする
UuuuをLll lする
Actor1
Act or2
Actor3
Actor4
ui 画面
Screen1
Screen2
Screen3
Screen4
Screen5
ui 画面
Screen1
Screen2
Screen3
Screen4
Screen5
st m イベント一覧
タイムアウト
一周完了
停止
制御終了
制御終了
操作開始
移動終了
移動開始
電源オフ 電源オン
コンテキスト モデル: :
定点 カメラ
st m イベント一覧
タイムアウト
一周完了
停止
制御終了
制御終了
操作開始
移動終了
移動開始
電源オフ 電源オン
コンテキスト モデル: :
定点 カメラ
cd データモデ ル
X xxx
- xxx11: int
- xxx12: int
- xxx13: int
X xxx1
- x1xx11:
- x1xx12:
- x1xx13:
Yyyy
- yyy1:
- yyy2:
- yyy3:
Uuuu
- uuu1:
- uuu2:
- uuu3:
Jj jj
- jjj1:
- jjj2:
- jjj3:
Oooo
X xxx2
- x2xx1:
- x2xx2:
- x2xx3:
X xxx3
- x3xx1:
- x3xx2:
- x3xx3:
*
0..1
*
ffff
1
1+ppppp
cd データモデ ル
X xxx
- xxx11: int
- xxx12: int
- xxx13: int
X xxx1
- x1xx11:
- x1xx12:
- x1xx13:
Yyyy
- yyy1:
- yyy2:
- yyy3:
Uuuu
- uuu1:
- uuu2:
- uuu3:
Jj jj
- jjj1:
- jjj2:
- jjj3:
Oooo
X xxx2
- x2xx1:
- x2xx2:
- x2xx3:
X xxx3
- x3xx1:
- x3xx2:
- x3xx3:
*
0..1
*
ffff
1
1+ppppp
act 機能モデル
<<function>>
Uuuu機能
<<function>>
Zzzz機能
<<function>>
X xxx機能
<<function>>
Yyyyy機能
act 機能モデル
<<function>>
Uuuu機能
<<function>>
Zzzz機能
<<function>>
X xxx機能
<<function>>
Yyyyy機能
s m 状態
Sta te1
St a te2
開始
St at e3
St at e4
終了
St at e5
St a te6
St a te7
履歴
s m 状態
Sta te1
St a te2
開始
St at e3
St at e4
終了
St at e5
St a te6
St a te7
履歴
16
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
コンテキストモデルからシステム境界まで
1.対象業務に関わる人と外部
システムを把握する
class システムコンテ キスト
業務名
<<システ ム>>
Xxxx システム
システム 主体者1
システム 主体者2
システム主体者3
システム主体者4
業務主体者5
外部システム
class システムコンテ キスト
業務名
<<システ ム>>
Xxxx システム
システム 主体者1
システム 主体者2
システム主体者3
システム主体者4
業務主体者5
外部システム
コンテキストモデル
cus tom 機能要求
新しいサービスを
開始したい
広告収入を増やし
たい
小規模店舗が新し
い市場だ
顧客へのサービス
を向上させたい
難しい操作のシス
テムをいれるのは
嫌だ
顧客とダイレクトに
つなぎたい
XXXXXXXXXXXXXX
YYYYYYYYYYYYYYY
システム主体者1
システム主体者2
システム主体者3
cus tom 機能要求
新しいサービスを
開始したい
広告収入を増やし
たい
小規模店舗が新し
い市場だ
顧客へのサービス
を向上させたい
難しい操作のシス
テムをいれるのは
嫌だ
顧客とダイレクトに
つなぎたい
XXXXXXXXXXXXXX
YYYYYYYYYYYYYYY
システム主体者1
システム主体者2
システム主体者3
要求モデル
外部システム
人(アクター)
シス
テム
要求
要求
要求
2.下記関係者の要求を
把握する
4.業務の中でシステムが
関わる部分を把握する
3.業務を組み立てる
uc ユ ースケー ス
X xxxをYyyyす る
X xxxを Wwwwする
UuuuをLll l す る
システム主体者1
システム主体者2
システム主体者3
システム 主体者4
Kkkk kをXする
Oを Onnnnす る
uc ユ ースケー ス
X xxxをYyyyす る
X xxxを Wwwwする
UuuuをLll 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 入荷業務
発注処理
営業
物流
入荷商品の確認
入荷処理
開始
終了
発注処理
<<入荷システム>>
入荷登録
在庫切れ  在庫
補充の発注
新規商品の発注
対象業務に関わる人と外部シス
テムを要件定義の起点とする
stm 状態
State1
St ate2
開始
St ate3
St ate4
終了
Stat e5
State6
Stat e7
ユースケース名と対応を
とることもできる
St ate8
Sta te9
<<Use Case>>
eeeeee [ff<1000]
XxxxをWwwwする
[aaa=234]
stm 状態
State1
St ate2
開始
St ate3
St ate4
終了
Stat e5
State6
Stat e7
ユースケース名と対応を
とることもできる
St ate8
Sta te9
<<Use Case>>
eeeeee [ff<1000]
XxxxをWwwwする
[aaa=234]
stm イベント一覧
タイムアウト
一周完了
停止
制御終了
制御終了
操作開始
移動終了
移動開始
電源オフ 電源オン
コンテキストモデル::
定点カメラ
stm イベント一覧
タイムアウト
一周完了
停止
制御終了
制御終了
操作開始
移動終了
移動開始
電源オフ 電源オン
コンテキストモデル::
定点カメラ
イベントモデル
プロトコルモデル
5.外部システムとのイベントを
捉える
6.外部システムとの
プロトコルを整理
同じように利用シーンから
ユースケースを導き出す
17
ユースケースから機能、データまで
システム
7.ユースケースに関わる
ユーザーインターフェーズ
を洗い出す
uc ユ ースケース
X xxxを Yyyyする
X xxxを Wwwwする
Uuuuを Llll する
システム主体者1
システム 主体者2
システム主体者3
システム主体者4
Kkkkkを Xする
Oを Onnnnする
uc ユ ースケース
X xxxを Yyyyする
X xxxを Wwwwする
Uuuuを Llll する
システム主体者1
システム 主体者2
システム主体者3
システム主体者4
Kkkkkを Xする
Oを Onnnnする
stm 状態
State1
St ate2
開始
St ate3
St ate4
終了
Stat e5
State6
Stat e7
ユースケース名と対応を
とることもできる
St ate8
Sta te9
<<Use Case>>
eeeeee [ff<1000]
XxxxをWwwwする
[aaa=234]
stm 状態
State1
St ate2
開始
St ate3
St ate4
終了
Stat e5
State6
Stat e7
ユースケース名と対応を
とることもできる
St ate8
Sta te9
<<Use Case>>
eeeeee [ff<1000]
XxxxをWwwwする
[aaa=234]
stm イベント一覧
タイムアウト
一周完了
停止
制御終了
制御終了
操作開始
移動終了
移動開始
電源オフ 電源オン
コンテキストモデル::
定点カメラ
stm イベント一覧
タイムアウト
一周完了
停止
制御終了
制御終了
操作開始
移動終了
移動開始
電源オフ 電源オン
コンテキストモデル::
定点カメラ
イベントモデル
プロトコルモデル
8.ユースケースを実現
する機能を洗い出す
custom 画面モデル
<<画面>>
商品登録画面
- 商品名
- 取引先
- 荷姿
- 発注単位
- 商品カテゴリ
<<画面>>
販売状況照会
- 月
- 商品カテゴリ
<<画面>>
発注登録
- 商品
- 発注日
- 発注数量
- 入荷予定日
<<画面>>
商品説明
- 商品カテゴリ
<<画面>>
カート処理
- 受注番号
<<画面>>
受注照会
- 顧客名
- 受注日
商品売上詳細
- 商品
- 売上数量
- 売上金額
詳細説明
- 商品説明
カー ト内商品
- 商品
- 数量
<<画面>>
決済処理
- 顧客名
- 住所
- 決済方法
受注商品
- 商品
- 受注数量
custom 画面モデル
<<画面>>
商品登録画面
- 商品名
- 取引先
- 荷姿
- 発注単位
- 商品カテゴリ
<<画面>>
販売状況照会
- 月
- 商品カテゴリ
<<画面>>
発注登録
- 商品
- 発注日
- 発注数量
- 入荷予定日
<<画面>>
商品説明
- 商品カテゴリ
<<画面>>
カート処理
- 受注番号
<<画面>>
受注照会
- 顧客名
- 受注日
商品売上詳細
- 商品
- 売上数量
- 売上金額
詳細説明
- 商品説明
カー ト内商品
- 商品
- 数量
<<画面>>
決済処理
- 顧客名
- 住所
- 決済方法
受注商品
- 商品
- 受注数量
uc ユ ースケー ス& 画面
受注照 会
商 品登録
商 品説明& 受注
発 注処理
販売 状況照会
オーダ ー管 理
営業
物流
顧客
<<画面>>
商品登録 画面
- 商品名
- 取引先
- 荷姿
- 発注単位
- 商品カテゴリ
<<画面>>
販売状況 照会
- 月
- 商品カテゴリ
<<画面>>
発 注登録
- 商品
- 発注日
- 発注数量
- 入荷予定日
<<画面>>
商品 説明
- 商品カテゴリ
<<画面>>
カー ト処理
- 受注番号
<<画面>>
受注照 会
- 顧客名
- 受注日
<<画面>>
決済処 理
- 顧客名
- 住所
- 決済方法
オーダー 取り消しオーダー 取り消し
- 受注番号
uc ユ ースケー ス& 画面
受注照 会
商 品登録
商 品説明& 受注
発 注処理
販売 状況照会
オーダ ー管 理
営業
物流
顧客
<<画面>>
商品登録 画面
- 商品名
- 取引先
- 荷姿
- 発注単位
- 商品カテゴリ
<<画面>>
販売状況 照会
- 月
- 商品カテゴリ
<<画面>>
発 注登録
- 商品
- 発注日
- 発注数量
- 入荷予定日
<<画面>>
商品 説明
- 商品カテゴリ
<<画面>>
カー ト処理
- 受注番号
<<画面>>
受注照 会
- 顧客名
- 受注日
<<画面>>
決済処 理
- 顧客名
- 住所
- 決済方法
オーダー 取り消しオーダー 取り消し
- 受注番号
画面帳表モデル
act 機能モデル
<<function>>
Uuuu機能
<<function>>
Zzzz機能
<<function>>
X xxx機能
<<function>>
Yyyy y機能
act 機能モデル
<<function>>
Uuuu機能
<<function>>
Zzzz機能
<<function>>
X xxx機能
<<function>>
Yyyy y機能
機能モデル
act 機能モデル
<<function>>
Uuuu機能
<<function>>
Zzzz機能
<<function>>
X xxx機能
<<function>>
Yyyy y機能
act 機能モデル
<<function>>
Uuuu機能
<<function>>
Zzzz機能
<<function>>
X xxx機能
<<function>>
Yyyy y機能
class データ モデ ル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
class データ モデ ル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 jj j
- jjj1
- 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機能
<<function>>
Zzzz機能
<<function>>
Uuuu機能
triger
CRUD CRUD
R
CRU
CRU
uc 機能モデ ル
X xxxをW wwwする
<<datamodel>>
AAAJ jj j
- jjj1
- 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機能
<<function>>
Zzzz機能
<<function>>
Uuuu機能
triger
CRUD CRUD
R
CRU
CRU
9.アクションを機能に
対応付ける
画面・
ユースケースモデル
ユースケースモデル
機能モデル
システム境界
10.データを洗い出す
11.機能とデータ
を付き合わせる
機能複合モデル
18
システム価値 システム外部環境 システム境界 システム
コンテキスト
利用シーン
業務
イベント
プロトコル
ユースケース
概念
画面・帳表
機能
ドメイン
データ
要求
機能複合
モデル
利用シーン
&UC
業務&UC
UC:ユーケース
UC&画面
UC&機能
関係ダイアグラム
全ての情報をつなげる
19
実際のモデル
pkg マイルストーン3
コンテキスト
+ 営業承認者
+ 営業担当者
+ 物流担当者
+ 経理
+ B2B_基幹システム
販売管理
+ 業務フロー
+ ユースケース
+ 画面・帳票
+ イベント
+ プロトコル
+ 機能モデル
債権管理
+ ユースケース
+ イベント
+ 画面・帳票
+ 機能
購買管理
+ 画面・帳票
+ 業務フロー
+ ユースケース
+ 機能モデル
債務管理
会計システム
在庫管理
仕入登録
発注依頼
入金計上
出荷指示
売上計上
売上登録
支払計上
入荷通知
仕入計上
入荷通知
act 業務&UC
営業 物流 経理
見積書作成
受注登録
出庫作業
開始
終了
見積承認
見積フォロー
営業承認者
営業担当者
受注承認
請求書発行 入金確認
督促状の発行
開始
見積もりを登録する
起票を 承認する
入金を確認する
<<在庫管理>>
商品を出庫する
請求書を作成する
出荷指示
出荷指示する
受注残を照会する
督促状を 発行する
検収登録検収を登録する
フォローを 記録
する
物販の場合は出荷指示
サービスの場合は顧客サービス設定を行う
顧客サービスを 設
定する
納品を確認する
受注を登録する
終了
顧客サービスの設定
受注残高を確認
<<include>>
<<include>>
uc 販売管理
受注を 登録する
(from ユースケース)
<<在庫管理>>
在庫引当をする
(from ユースケース)
<<在庫管理>>
在庫引当を 取り消す
出荷指示する
(from ユースケース)
<<在庫管理>>
商品を 出庫する
(from ユースケース)
売上を計上する
(from ユースケース)
請求書を作成する
(from ユースケース)
入金を 確認する
債権の消込を 行う
受注残を照会す
る
受注を 消し込む
見積もりを 登録する
(from ユースケース)
<<在庫管理>>
在庫を 確認する
見積もりを消し込む
(from ユースケース)
入金を 計上する
起票を承認する
(from ユースケース)
督促状を 発行する
フォローを 記録する
顧客サービスを設
定する
納品を確認する
概要
・顧客からの見積もり依頼を受ける
・顧客の過去の受注情報を照会する
・顧客の見積もり情報を登録する
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
act 業務フロー
営業 物流 経理
見積書作成
受注登録
出庫作業
開始
終了
見積承認
見積フォロー 営業承認者
営業担当者
受注承認
請求書発行
入金確認
督促状の発行
開始
出荷指示
検収登録
物販の場合は出荷指示
サービスの場合は顧客
サービス設定を行う
終了
顧客サービスの設定
受注残高を 確認
キャンセル
終了
[サービスの場合]
[物販の場合]
class CRUDモデル
<<機能>>
会計計上
<<機能>>
出荷情報取
得
<<機能>>
売上データ作成
<<機能>>
見積登録
<<機能>>
見積消込
<<機能>>
受注登録
<<機能>>
受注消込
<<機能>>
承認登録
出荷指示
- 受注番号
- 出荷指示日
- 出荷指示番号
受注
- 受注番号
- 受注日
- 得意先
- 合計金額
- 消費税額
- 値引額
受注明細
- 商品
- 数量
- 単価
- 金額
- 備考
決済情報
- 決済方法
- 決済方法別詳細情報
納品先情報
- 住所
- 連絡先
見積もり
- 見積番号
- 見積日
- 得意先
- 消費税額
- 値引額
見積明細
- 商品
- 数量
- 単価
- 金額
- 備考
<<機能>>
出荷指示
<<機能>>
顧客サービル設定
<<機能>>
納品登録
出荷指示明細
- 受注番号
- 商品
- 出荷日
- 数量
- 納品日
顧客サービス
- 受注番号
- 得意先
- サービス開始日
- サービス終了日
- サービス種類
<<機能>>
出庫確認
<<CRUD>>
<<U>>
<<R>>
<<R>>
<<R>>
<<CRUD>>
<<RU>>
<<CRUD>>
<<CRUD>>
<<CRUD>>
<<U>>
<<U>>
<<CRUD>>
<<R>>
<<R>>
<<CRUD>>
<<R>>
<<CRUD>>
<<CRUD>>
<<U>>
<<R>>
<<CRUD>>
uc 販売管理_UC&機能
受注を登録する
<<在庫管理>>
在庫引当をする
<<在庫管理>>
在庫引当を取り消す
出荷指示する
<<在庫管理>>
商品を出庫する
売上を 計上する請求書を作成する
入金を確認する
債権の消込を行う
受注残を 照会す
る
受注を消し込む
見積もりを登録する
<<在庫管理>>
在庫を確認する
見積もりを消し込む
入金を計上する
起票を承認する
督促状を発行する
<<機能>>
受注登録 <<機能>>
見積消込
<<機能>>
見積登録
<<機能>>
受注消込
<<機能>>
承認登録
<<機能>>
会計計上
<<機能>>
売上データ作成
<<機能>>
出荷情報取得
<<機能>>
督促情報作成
<<機能>>
出荷指示
顧客サービスを 設
定する
フォローを記録する
納品を確認する
<<機能>>
顧客サービス設定
<<機能>>
フォロー登録
<<受信>>
出庫通知
<<受信>>
納品通知
<<機能>>
出庫確認
<<機能>>
入金登録
<<機能>>
納品登録
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
class 画面・帳票
未出荷分を受
注残とする
見積登録
- 見積番号
- 見積日
- 得意先
- 合計金額
- 消費税額
- 値引額
受注登録
- 受注番号
- 受注日
- 得意先
- 合計金額
- 消費税
- 値引き
出荷指示
- 出荷指示ID
- 受注番号
- 出荷指示日
受注残照会
- 受注番号
- 得意先
伝票承認
- 伝票番号
- 承認状態
- 承認者
見積明細
- 商品
- 数量
- 単価
- 金額
- 備考
受注明細
- 商品
- 数量
- 単価
- 備考
出荷指示明細
- 商品
- 出庫済数量
在庫管理システムからのイ
ベントの分析により出荷処
理の詳細が分かってきた
見積フォロー登録
- フォロー日
- フォロー担当者
- 見積番号
顧客サービス設定
- 受注番号
- サービス
- 開始
- 停止
納品登録
- 出荷指示ID
- 納品日
検収登録
- サービスID
- 検収日
- 検収担当
uc 販売管理_UC&画面
在庫管理
受注を登録する
<<在庫管理>>
在庫引当をする
<<在庫管理>>
在庫引当を取り消す
出荷指示する
<<在庫管理>>
商品を出庫する
<<在庫管理>>
商品を入庫する
<<購買管理>>
商品を 発注する
売上を計上する
請求書を作成する
入金を確認する
債権の消込を行う
受注残を照会する
受注を消し込む
見積もりを登録する
<<在庫管理>>
在庫を確認する
見積もりを消し込む
入金を計上する
起票を承認する
在庫照会
在庫引当
在庫引当取消
督促状を 発行する
検収を登録する
売上計上基準が出荷基準の
場合は出庫タイミングで計
上、検収基準の場合は、検
収確認のタイミングで計上
見積登録
- 見積番号
- 見積日
- 得意先
- 合計金額
- 消費税額
- 値引額
受注登録
- 受注番号
- 受注日
- 得意先
- 合計金額
- 消費税
- 値引き
出荷指示
- 出荷指示ID
- 受注番号
- 出荷指示日
受注残照会
- 受注番号
- 得意先
請求書
督促状
入金登録
伝票承認
- 伝票番号
- 承認状態
- 承認者
フォローを記録する
見積フォロー登録
- フォロー日
- フォロー担当者
- 見積番号
顧客サービスを設
定する
顧客サービス設定
- 受注番号
- サービス
- 開始
- 停止
納品を確認する 納品登録
- 出荷指示ID
- 納品日
検収登録
- サービスID
- 検収日
- 検収担当
受注照会
- 受注番号
- 受注日
- 得意先
- 合計金額
- 消費税
- 値引き
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
stm プロトコル
受注
[受注]
[入金]
物販
開始
見積済
見積フォロー済
未入金
入金あり
一部入金済 全部入金済
受注済
サービス提供
サービス提供
中
サービス提
供終了
終了
出庫待ち 出庫中 出庫済み
検収済
納品済
[納品確認が不要]
出庫指示 [在庫有り]
入金通知 [請求残
=入金額]
受注登録
受注
登録
入金通知 [請求額=入金額]
入庫 [在庫あり]
顧客サービス設定
[開始指示]
出荷指示
[在庫なし]
出庫通知 [未
出荷分なし]
サービス利用
[ワンタイム契約]
出庫通知 [未出
荷分あり]
見積フォロー登録
[検収が必要ない]
顧客サービス設定
[停止指示]
検収登録 [検収が
必要な場合]
納品登録 [納品
確認が必要]
入金通知 [請求額>
入金額]売上情報登録
act イベント
<<受信>>
出庫通知
<<送信>>
出庫指示
<<受信>>
納品通知
在庫管理
在庫引当情報
- 受注番号
- 商品
- 数量
<<送信>>
在庫引当
<<受信>>
在庫引当取
消
出庫指示を
受け付ける
出庫したこと
を通知する
受領書を受け取り
納品を確認したこ
とを通知する
在庫を引き
当てる
引き当てた在庫を取
り消す
出荷指示情報
- 受注番号
- 出荷指示日
- 出荷指示番号
出荷指示明細情
報
- 受注番号
- 商品
- 出荷希望日
- 数量
- 納品日
出庫商品情報
- 受注番号
- 商品
- 出荷日
- 数量
uc コンテキスト
B2B_基幹システム
営業担当者
物流担当者 経理
営業承認者
在庫管理
(from 基幹システム)
会計システム
(from 基幹システム)
class データモデル
債権管理
販売管理
受注
- 受注番号
- 受注日
- 得意先
- 合計金額
- 消費税額
- 値引額
見積もり
- 見積番号
- 見積日
- 得意先
- 消費税額
- 値引額
納品先情報
- 住所
- 連絡先
決済情報
- 決済方法
- 決済方法別詳細情報
出荷指示
- 受注番号
- 出荷指示日
- 出荷指示番号
受注明細
- 商品
- 数量
- 単価
- 金額
- 備考
入金
- 入金日
- 入金元
- 入金額
見積明細
- 商品
- 数量
- 単価
- 金額
- 備考 商品
- 商品CD
- 商品名
- 単価
- 商品カテゴリ
取引先
- 取引先CD
- 取引先名
請求
- 請求日
- 請求先
- 請求金額
取引先決済情報
- 決済方法
- 決済方法別詳細情報
取引先納品先情報
- 住所
- 連絡先
取引先別単価
- 商品CD
- 取引先CD
- 取引先別単価
出荷指示明細
- 受注番号
- 商品
- 出荷日
- 数量
- 納品日
顧客サービス
- 受注番号
- 得意先
- サービス開始日
- サービス終了日
- サービス種類
20
システム地図
class 関連モデル
オーダー部門
(from 運用
時コンテキ
スト)
システム部門
(from 運用
時コンテキ
スト)
営業
(from 運用
時コンテキ
スト)
物流
(from 運用
時コンテキ
スト)
経営者
(from 運用
時コンテキ
スト)
顧客
(from 運用
時コンテキ
スト)
運用時コンテキス
ト::入荷システム
運用時コンテキス
ト::出荷システム
運用時コンテキス
ト::決済システム
(from ユースケースモデ
ル)
オーダーを取り消す
(from ユースケースモデ
ル)
オーダーを完了する
(from ユースケースモデ
ル)
オーダーを照会する
(from ユースケースモデ
ル)
オーダー状況の確認
する
(from ユースケースモデ
ル)
入荷商品を登録する
(from ユースケースモデ
ル)
入金額を補正する
(from ユースケースモデ
ル)
出荷を完了する
(from ユースケースモデ
ル)
出荷を指示する
(from ユースケースモデ
ル)
商品を受注する
(from ユースケースモデ
ル)
商品を発注する
(from ユースケースモデ
ル)
商品を登録する
(from ユースケースモデ
ル)
商品を説明する
(from ユースケースモデル)
販売状況を照会する
画面モデル::オー
ダー取り消し
- オーダーID
画面モデル::オー
ダー照会
- 顧客名
- オーダー日
- 状態
画面モデル::カー
ト処理
- オーダーID
画面モデル::商品
売上詳細
- 商品名
- 売上数量
- 売上金額
画面モデル::商品
登録画面
- 商品名
- 取引先
- 荷姿
- 発注単位
- 商品カテゴリ
画面モデル::商品
説明
- 商品カテゴリ
- 商品名
- 商品説明
- 価格
画面モデル::決済
処理
- 顧客名
- 住所
- 決済方法
入金通知
(from イベントモ
デル)
<<受信>>
出荷完了
通知
(from イベントモ
デル)
<<送信>>
出荷指示
(from イベントモ
デル)
オーダー取り消し
(from アクター関連機能)
カート処理
(from アクター関連機能)
受注照会
(from アクター関連機能)
商品登録
(from アクター関連機能)
商品説明
(from アクター関連機能)
決済情報登録
(from アクター関連機能)
発注登録
(from アクター関連機能)
販売状況照会
(from アクター関連機能)
入金登録
(from 外部システム関連機能)
出荷完了記録
(from 外部システム関連機能)
出荷指示通知
(from 外部システム関連機能)
発注消し込み
(from 外部システム関連機能)
データモデル::
オーダー商品
- 数量 データモデル::
オーダー情報
- オーダーID
- オーダー日
- 数量
- 決済方法
データモデル::
パッケージ
- 商品名
- 荷姿
- 商品カテゴリ
- 単価
データモデル::入
金情報
- 入金日
- 入金者名
- 金額
データモデル::出
荷情報
- 出荷番号
- 出荷日
データモデル::出
荷指示情報
- 出荷予定日
- 入荷待ちの有無
データモデル::取
引先
- 名前
- 締め日
データモデル::商
品
- 発注単位
- 追加発注禁止
データモデル::送
り先情報
- 送り先名
- 郵便番号
- 住所
- 電話番号
{なし}
<<CRUD>>{なし}
1
1
1
受信データ
{なし}
<<R>>
{なし}
{なし}
<<R>>
{なし}
<<C>>
{なし}
出荷予定を確認する
{なし}
{なし}
送信情報
{なし}
{なし}
<<CRUD>>
{なし}
<<R>>
1
1
{なし}
<<CRUD>>{なし}
{なし}
新規受注を確認する
{なし}
*
オーダー商品
*
1
{なし}
<<C>>
{なし}
0..1
<<R>>
21
システム価値 システム外部環境 システム境界 システム
コンテキスト
利用シーン
業務
イベント
プロトコル
ユースケース
概念
画面・帳表
機能
ドメイン
データ
要求
機能複合
モデル
利用シーン
&UC
業務&UC
UC:ユーケース
UC&画面
UC&機能
関係ダイアグラム
結局モデルで何を表現しているのか
その機能が使用する
データは?
システムに必要な
機能は?
その時の入出力
情報は?
システムとの
接点は?
どのようにシス
テムは使われる
のか?
どのような人
外部システム
と関わるの
か?
このシステム
の目的は?
22
要件の精度を高める
問い 検証内容
Q101
要求の元となる関係者
にはどのような人がいる
か
コ
ン
テ
キ
ス
ト
□背景
要件定義を網羅的に進めるためにその出発点となる関係者を洗い出す必要がある
□確認ポイント
・全ての関係者がアクターとして洗い出されているか
・システムに関わらないが業務に関わるアクターも含まれているか
・アクター同士の関係が示されているか
・アクターは役割の名前がついているか
・アクターの責務が明確になっているか
Q102
どのような外部システム
と連携するのか
コ
ン
テ
キ
ス
ト
□背景
外部システムとの連携もシステム化範囲を決めるための入り口になり、外部インターフェースの策定の出発点になる
□確認ポイント
・外部システムはもれなく洗い出されているか
・今後の調査の候補も洗い出されているか
・外部システムの役割が明確になっているか
Q103
どのような機能要求があ
るか、それは誰(ロール)
が要求しているのか
要
求
モ
デ
ル
□背景
システムが提供する機能として押さえておくべき事、方向性を要求、要件として示し、以後の各モデル策定の指針にす
る
□確認ポイント
・検証可能な表現で記述されているか
・要求の粒度は揃っているか
・要求のもれだぶりはないか
・HowではなくWhatとして記述されているか Howは非機能要求として洗い出されているか
・各ロールに応じた要求が洗い出されているか
問い ダイアグラム 懸念事項
利用シーンには必ずユース
ケースが結びついているか
利用シーン 利用シーンに結びつくユースケースがない場合はユースケースが抜けている可能性がある。
利用シーンには必ずアクターが
結びついている
利用シーン 利用シーンに結びつくアクターが無い場合は必要なアクターが抜けている可能性がある
ユースケースには必ずアクティ
ビティが結びついているか
ユースケース ユースケースに関わるアクティビティがない場合は必要なアクティビティが抜けている可能性があ
る。
ユースケースには必ず利用
シーンが結びついているか
ユースケース ユースケースに関わる利用シーンがない場合は必要な利用シーンが抜けている可能性がある。
ユースケースに結びついていな
い画面は無いか
ユースケース ユースケースは画面か帳表、もしくは機能、データのどれかと結びついているはず。
ダイアグラムの検証ポイント
整合性をあわせるポイント
23
その他 大事なこと
なぜUMLを使うのか
混乱を防ぐためには合意を取って議論を積み重ねることが大事
合意のためには
みんなで考え みんなで理解し みんなで共有する
視覚化がその第1歩
議論を積み重ねるためには
同じ表現方法で洗練化する
次から次に新しい資料を作らない
複雑な構造は図的な表現方法が有効
様々な視点から物事を整理出来る
言葉よりも端的に表現できる 自然言語は曖昧になりやすい
要件定義を個人毎の並行作業として進めていませんか?
なぜ平行性を高めるといけないのか
システムの方向性をいつまでたっても決められない
システムとして組み立てていかない
グループ演習
システム地図を作る
「空き会議室の有効活用」 「適切な値段と場所で会議室を借りたい」
このニーズをマッチングするサイト
25
RDRA Map Maker
Drag&Drop
右ボタン
②新規作成 ④別ビューに追加
Drag&Drop
③新規作成
新規アイコンの追加 アイコンの追加
①メニューから追加
②パレットからDrag&Dropで追加
③右ボタンで追加
ビューにアイコンを追加
④別ビューに追加
⑤追加位置マーカー
メニュー、ショートカットでのアイコ
ン追加の場合の追加位置を示す
⑥連続追加ダイアログ
行単位でアイコンを連続追加する
⑦アイコンの変更・削除
右ボタンのコンテキストメニューか
らアイコンの変更・削除を行う
⑧関連線を引く
矢印からDrag&Dropで線を引く
⑤追加位置マーカー
⑥連続追加ダイアログアイコン種類
⑦アイコンの変更・削除
⑧関連線を引く
26
RDRA Map Maker
新しいビューの追加
ビュー
新しいビューの追加
複数ビューの管理
一つのモデルを複数のビューで見る
27
貸会議室.com
貸会議室.com
自社の空き会議室貸します
貸主会議室
利用者
会議室登録
サービス利用申請
利用料振込
利用状況照会
会員登録
審査
公開
会議室検索
精算
会議室予約
予約確定メール
会議室
利用 管理
決済代行支払 入金 要求:
空いている会議室を有
効利用したい
要求:
リーズナブルな価格で
会議室を借りたい
要求:
会議室を安く貸し出す
場を提供する
28
貸会議室.com システム地図
29
演習の進め方
コンテキスト
アクター
外部システム
システム境界
シーン
ユースケース
イベント
システム
機能
データ
要求でコントロールする
要求で方向性を決める
付録:EAを使って要件を定義する
31
RDRAテンプレート
RDRAで作成する一連のモデルをパッ
ケージとして用意
メニュー用のダイアグラムを用意
レビュー用のダイアグラムも用意
32
RDRAプロファイル
RDRAのダイアグラムに特化した
アイコンを集めたツールバーが用
意されている
クイックリンクも用意されている
クイックリンク
33
clas s データモデル
取引先
- 名前
- 締め日
商品
- 発注単位
- 追加発注禁止
オーダー商品
- 数量
出荷情報
- 出荷番号
- 出荷日
オーダー情報
- オーダーID
- オーダー日
- 数量
- 決済方法
送り先情報
- 送り先名
- 郵便番号
- 住所
- 電話番号
出荷指示情報
- 出荷予定日
- 入荷待ちの有無
入金情報
- 入金日
- 入金者名
- 金額
パッケージ
- 商品名
- 荷姿
- 商品カテゴリ
- 単価
*
0..1
1
1
1
11
1
*
オーダー商品
EAを使ったRDRA
cust om 画面モデル
<<画面>>
商品登録画面
- 商品名
- 取引先
- 荷姿
- 発注単位
- 商品カテゴリ
<<画面>>
販売状況照会
- 月
- 商品カテゴリ
<<画面>>
商品説明
- 商品カテゴリ
- 商品名
- 商品説明
- 価格
<<画面>>
カート処理
- オーダーID
<<画面>>
オーダー照会
- 顧客名
- オーダー日
- 状態
商品売上詳細
- 商品名
- 売上数量
- 売上金額
詳細説明
- 商品説明
カート内商品
- 商品名
- 数量
<<画面>>
決済処理
- 顧客名
- 住所
- 決済方法
受注商品
- 商品名
- 数量
<<画面>>
オーダー取り消し
- オーダーID
uc ユースケースモデル
商品販売サイト
<<入荷システム>>
入荷商品を登録する
<<出荷システム>>
出荷を 完了する
<<出荷システム>>
出荷を 指示する
オーダーを 照会する
商品を 登録する
商品を説明する
<<入荷システム>>
商品を 発注する
販売状況を 照会する
オーダー部門
営業
物流
顧客
オーダーを 取り消す
オーダーを 完了する
商品を 受注する
入金額を 補正する
<<出荷システム>>
オーダー状況の確認
する
新規受注を確認する
出荷予定を確認する
act オーダー業務
商品購入
入金確認
出荷指示
出荷完了指示
開始
終了
オーダー確認
支払い
出荷業務
入金額の差違
入金の差違の解消
オーダー取り消し
オーダー継続
配達完了メール通知待ち
オーダー完了登録
オーダー状況の確認
メール確認
入金額と請求額
が一致する
入金額と請求額
の差違がある
キャンセル
キャンセルしない
Step By Step
34
1.システムに関わるアクターと外部システム
を求める
コンテキストモデル
システム価値
システム外部環境
システム境界
システム
もの
サービス
利害関係者
ユーザ
システムを取り巻く一番外側を
定義する
・システムの目的役割
・アクター
・外部システム目的・役割
責務
役割
目的・役割
要件定義の出発点としてアクターと外部システムを洗い出す
最終的にシステムに関わるアクターと外部システムを全て洗い出し、システムの目的
を明らかにする
モデリングのヒント:
最初は関わりがあると思われるアクターと外部システム
を全て出す。
システムの目的は最初は漠然としたものでもよい。
徐々に明らかにする
35
2.要求を捉える
A-
35
コンテキストモデル
システム価値
システム外部環境
システム境界
システム
もの
サービス
利害関係者
ユーザ
要求を以下の3つに分類
・要望:ヒアリングしたもの
・機能要求:機能の要求として整理したもの
・非機能要求:非機能の要求として整理したもの
・要件:ステークホルダーが把握するもの
目的・役割
要求
要求
要求モデル
要求を明らかにする。
・顧客からのヒアリング結果を要望として洗い出す。
・粒度や網羅性を考えながら整理したものを要求として分類する。
・ステークホルダーが認識すべきものを要件として整理する。
要求モデルは要求の整理がメインの作業となる。
モデリングのヒント:
ヒアリングしたものはそのまま加工せずに要
望として洗い出す。
他のモデル作成中に「何々できること」のよう
にシステムとして実現すべき事が明らかに
なったときは要求として追加する
36
3.システムを利用する環境を明らかにする
(業務モデル)
A-
36
コンテキストモデル
システム価値
システム外部環境
システム境界
システム
利害関係者
ユーザ
洗い出したアクターを意識
しながら業務を設計する。
・アクティビティ
・情報
・業務上の条件
目的・役割
業務モデル
業務
責務
価値
レーン レーン
システムに関わる業務を明らかにする。業務にはそれを行うことで得られる価値があ
るので、それを意識して作成する。
その価値が最終的にシステムの目的・役割につながる。
モデリングのヒント:
作業の平行性を意識する。
入力等の負荷がかかる作業
は受益者負担が好ましい。
作業の分岐条件はビジネス
ルールとなる。
37
4.業務上に存在する概念を整理する
(概念モデル)
A-
37
システム価値
システム外部環境
システム境界
システム
利害関係者
ユーザ
構造的な概念についてクラス図で表
現する。
全ての概念ではなく重要なものだけ
を記述する
概念モデル
概念
概念
業務
システムを取り巻く環境の中で使われている概念を明らかにする。
概念が異なるとシステムの機能も異なる
モデリングのヒント:
概念のうち構造的なものが概念モデルの対
象となる。
モデルとして整理するのが難しい場合は用語
集として整理する。
他のモデルで該当概念について記述する場
合は概念モデル内の用語を使用する
38
5.システムとの接点を明らかにする
(ユースケース)
A-
38
システム価値
システム外部環境
システム境界
システム
利害関係者
ユーザ
業務モデルの各アクティビ
ティの中でシステムとの接
点がユースケースとなる。
利用シーンを具体化したも
のがユースケースとなる
業務モデル 利用シーンモデル
コピー
ユースケースモデル
コピー
中間モデル
中間モデル
中間モデル
で作成した
ユースケー
スを集める
システムが使われる環境をベー
スに、システムとの接点をユー
スケースで表す。
この手法のユースケースはアク
ターとの接点に限定する
モデリングのヒント:
主語と動詞を明確にする「XXXをZZZZ
する」のような形式
システムとの接点を明らかにする。ソフ
トウェアの機能ではない。
39
6.入出力情報を明らかにする
(画面・帳表モデル)
A-
39
システム価値
システム外部環境
システム境界
システム
画面・帳表モデル
ユースケースモデル
状況を捉える状況を
捉える
中間モデルで作成した
入出力情報を集める
ユースケースとつなげて入出力
情報を捉える。同時にユース
ケースに繋がるアクティビティ、
利用シーンを考慮に入れる
ユーザーインターフェースの入
出力情報を明らかにする。
そのために画面と帳表で扱う情
報を洗い出す。
モデリングのヒント:
画面や帳表のレイアウトは別途標準を規定
してから作成する。
顧客とは画面のラフスケッチで打ち合わせ
する
40
7.外部システムとのやりとりを明らかにする
(イベント)
A-
40
コンテキストモデル
システム価値
システム外部環境
システム境界
システム
洗い出した外部システムから導き
出す。
受信、送信に分かれるが自分のシ
ステムを中心に受信送信を分類す
る。
目的・役割
イベントモデル
外部システム
通信電文な
どの資料
外部システムとのやりとりをイベントモデルとして整理する。
外部システムが既存のシステムの場合は通信電文などの資料を元に整理する。
外部システムとの役割分担が分かるような主要なイベントを洗い出す。
モデリングのヒント:
受信、送信の細かな情報に落ち込まないよ
うにする。
主要な情報に着目する。
41
8.イベントをルール化する
(プロトコルモデル)
A-
41
システム価値
システム外部環境
システム境界
システム
洗い出したイベントをトリガーに結
びつけ整合性を合わせる
トリガーの結果行われることを作用
として洗い出す
状態、
トリガー
作用
イベントモデル
外部システム
プロトコルモデル
トリガー/作用
イベントをト
リガーに対応
させる
通信電文な
どの資料
機能モデル:機能
作用を機
能に対応
させる
外部システムとのやりとりに必要なイベントを網羅的に出すためにステートマシン図を
使って整理する。
外部システムとの間で共有する状態を洗い出す。
状態として表現することで網羅的に表現が可能になる。
その状態間の遷移にイベントを当てはめ、イベントの網羅性を確保する。
サービスの提供で状態を持たないイベントの場合はこのモデルに対応させない
モデリングのヒント:
設計段階では厳密さが要
求されるが、要件定義段階
では外部システムとの役割
が分かればよい
42
9.システムで使うデータを明らかにする
(データモデル)
A-
42
システム価値
システム外部環境
システム境界
画面・帳表モデルの項目、業務フロー上の情報、イベント
モデルのイベント毎の情報からデータモデルを作成する
業務モデル画面・帳表モデル イベントモデル
データモデル
システム
データ
機能
機能
システムで使用するデータを明らかにする。
ここでのデータはビジネス的に必要なデータであり、仕組み上必要なデータは含めない。
つまり、システムにとって必要なデータは何かを明らかにする
モデリングのヒント:
DB設計を意識しない。
ビジネス上必要なデータを明
らかにする
43
10.システムに必要な機能を明らかにする
(機能モデル)
A-
43
システム価値
システム外部環境
システム境界
機能を導出するた
めには以下の3つ
の情報と対応づけ
て洗い出す
・ユースケース
・イベント
・トリガー/作用
データモデル
システム 機能モデル
ユースケースモデル
機能複合モデル
データ 機能
機能
U
C
機能
プロトコルモデル
アクション
ドメインモデル
ユースケースを実現するソフトウェアとしての「機能」とプロトコルモデルの遷移
上の作用に対応する「機能」を洗い出す。また、それらの機能がどのようにデータ
とドメインオブジェクトを操作するかを機能複合モデルで表現する

More Related Content

さくさく要件定義セミナー in 大阪