Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

11,212 views

Published on

RDRAの考え方を理解し、短時間でシステム地図を描くワークショップ資料です

Published in: Engineering

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

  1. 1. さくさく要件定義 システム地図で要件定義を効率的に 2015/1/24 Relationship driven requirement analysis ⇒ RDRA(ラドラ)
  2. 2. 2 わたしは… ㈱バリューソース 代表取締役 社長 神崎 善司 zkanzaki@vsa.co.jp 要件定義の散歩道:https://www.facebook.com/youkennotsubo twitter:@zenzengood 普段は 要件定義のコンサルテーション セミナー開催(要件定義、モデリング) 「要件のツボ」の開発 要件定義との関係は 25年ほど前からオブジェクト指向を中心にシステム開発全般に関わる 15年ほど前から上流工程を中心としたコンサルティングを行う その間一貫してモデル中心で行う その経験を活かしてモデルを使った要件定義の手法をまとめる
  3. 3. 3 今日のプレゼンの位置づけ 要件定義 外部 設計 分析 どのようなシステムを作るのか アーキテクチャ どのような構造のシステムにするのか どのようにシステムを構築するのか アーキテク チャ策定 設計 設計・実装 何をどのように作るのか 実装 要件分析 フレームワーク要件分析 プロセス EAの使い方
  4. 4. RDRAの背景
  5. 5. 5 いつまでたってもシステムの全体像が見えてこない 議論が直ぐに袋小路に入って先に進まない 分析という名の転記作業ばかりを行っている 会議が毎回ループして先に進まない ものすごいドキュメントが出来てくるが誰もシステ ムの目的、役割が分からない このようなことはないですか? 進め方や要件定義書の書き方の議論ばかりで本題に 入れない
  6. 6. 6 じゃあどうする? みんなで考える その場でまとめ 理解する プロジェクターに資料 を映しながらみんなで 議論する 図的な表現 を使用する 考え → 合意し → 説明できる 方向性が固まるまでは個人作業は非効率 アイディアを視覚化し共有する 考える 合意する 理解する そして説明可能になる
  7. 7. 7 じゃあどうする? 議論を積み上げて要件としてまとめる 合意を積み上げていき議論に一貫性を持たせる 要件定義に筋道をつける メンバーの方向性を合わせる 私はこう思 います…. この言葉が続くようだ と合意が得られていな い証拠
  8. 8. 8 より混乱を少なく要件定義を行うためには…… ★顧客をリードする ★議論を積★議論を積 み上げる ★方向性を合わせる ★構造化、抽象化 しながら分析する ★視覚化し共有する ★ゴールを明確にする ゴールを示し、そのための道筋を明らかにする。そして対象を視覚化する。 そして対象を構造化、抽象化して議論を積み上げながら要件を形にする。 要件分析の プロセス 要件分析の フレームワーク 今回はかなり端折っていますが…
  9. 9. 要件定義の枠組み 上流工程での混乱を減らすために要件定義の枠組みが必要 要件分析フレームワーク
  10. 10. 10 要件定義には何を定義すればいいのか システム もの サービス 機能 データ 機能 機能 利害関係者 ユーザ 外部システム 業務 RDRAでは「要件定義の対象をシステムとシス テムを取り巻く環境」と考える システムを 取り巻く環境 システ ム システ ム 要件 定義書
  11. 11. 11 要件定義では何が定義されないといけないのか システム もの サービス 機能 データ 機能 機能 利害関係者 ユーザ 外部システム 業務 •その機能が使用するデータは? •システムに必要な機能は? •その時の入出力情報は? •システムとの接点は? •どのようにシステムは使われるのか? •どのような人、外部システムと関わるのか? •このシステムの目的(価値)は?
  12. 12. 12 もの サービス システム価値 もの サービス 利害関係者 ユーザ 要件定義の構造を定義する システム外部環境 外部システム システム 機能 データ 機能 機能 利害関係者 ユーザ 外部システム システムシステム システム境界 機能 データ 機能 •システム価値 •システム外部環境 •システム境界 •システム 要件定義の構造
  13. 13. 13 システム価値 もの サービス 利害関係者 ユーザ 要求 価値 外部システム 要件分析の枠組み 1.【システムの価値】を捉える •対象業務に関わる人を洗い出す •関係する外部システムを洗い出す •要求を捉える 2.【システム外部環境】を捉える •対象業務の流れを捉える •対象業務に関わる概念を明らかにする •システムの利用シーンを明らかにする 3.【システム境界】を捉える •ユーザインターフェースを明らかにする •外部システムとのインターフェースを明 らかにする 4.【システム】を定義する •機能を明らかにする •データを明らかにする •ドメインの構造を把握する システム外部環境 システムシステム 機能 データ 機能 システム境界
  14. 14. 要件分析の枠組みにモデルを当ては める システム価値からシステムの機能とデータを求める手段として UMLを拡張したモデルを利用する
  15. 15. 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. 16. 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. 17. 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. 18. 18 システム価値 システム外部環境 システム境界 システム コンテキスト 利用シーン 業務 イベント プロトコル ユースケース 概念 画面・帳表 機能 ドメイン データ 要求 機能複合 モデル 利用シーン &UC 業務&UC UC:ユーケース UC&画面 UC&機能 関係ダイアグラム 全ての情報をつなげる
  19. 19. 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. 20. 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. 21. 21 システム価値 システム外部環境 システム境界 システム コンテキスト 利用シーン 業務 イベント プロトコル ユースケース 概念 画面・帳表 機能 ドメイン データ 要求 機能複合 モデル 利用シーン &UC 業務&UC UC:ユーケース UC&画面 UC&機能 関係ダイアグラム 結局モデルで何を表現しているのか その機能が使用する データは? システムに必要な 機能は? その時の入出力 情報は? システムとの 接点は? どのようにシス テムは使われる のか? どのような人 外部システム と関わるの か? このシステム の目的は?
  22. 22. 22 要件の精度を高める 問い 検証内容 Q101 要求の元となる関係者 にはどのような人がいる か コ ン テ キ ス ト □背景 要件定義を網羅的に進めるためにその出発点となる関係者を洗い出す必要がある □確認ポイント ・全ての関係者がアクターとして洗い出されているか ・システムに関わらないが業務に関わるアクターも含まれているか ・アクター同士の関係が示されているか ・アクターは役割の名前がついているか ・アクターの責務が明確になっているか Q102 どのような外部システム と連携するのか コ ン テ キ ス ト □背景 外部システムとの連携もシステム化範囲を決めるための入り口になり、外部インターフェースの策定の出発点になる □確認ポイント ・外部システムはもれなく洗い出されているか ・今後の調査の候補も洗い出されているか ・外部システムの役割が明確になっているか Q103 どのような機能要求があ るか、それは誰(ロール) が要求しているのか 要 求 モ デ ル □背景 システムが提供する機能として押さえておくべき事、方向性を要求、要件として示し、以後の各モデル策定の指針にす る □確認ポイント ・検証可能な表現で記述されているか ・要求の粒度は揃っているか ・要求のもれだぶりはないか ・HowではなくWhatとして記述されているか Howは非機能要求として洗い出されているか ・各ロールに応じた要求が洗い出されているか 問い ダイアグラム 懸念事項 利用シーンには必ずユース ケースが結びついているか 利用シーン 利用シーンに結びつくユースケースがない場合はユースケースが抜けている可能性がある。 利用シーンには必ずアクターが 結びついている 利用シーン 利用シーンに結びつくアクターが無い場合は必要なアクターが抜けている可能性がある ユースケースには必ずアクティ ビティが結びついているか ユースケース ユースケースに関わるアクティビティがない場合は必要なアクティビティが抜けている可能性があ る。 ユースケースには必ず利用 シーンが結びついているか ユースケース ユースケースに関わる利用シーンがない場合は必要な利用シーンが抜けている可能性がある。 ユースケースに結びついていな い画面は無いか ユースケース ユースケースは画面か帳表、もしくは機能、データのどれかと結びついているはず。 ダイアグラムの検証ポイント 整合性をあわせるポイント
  23. 23. 23 その他 大事なこと なぜUMLを使うのか 混乱を防ぐためには合意を取って議論を積み重ねることが大事 合意のためには みんなで考え みんなで理解し みんなで共有する 視覚化がその第1歩 議論を積み重ねるためには 同じ表現方法で洗練化する 次から次に新しい資料を作らない 複雑な構造は図的な表現方法が有効 様々な視点から物事を整理出来る 言葉よりも端的に表現できる 自然言語は曖昧になりやすい 要件定義を個人毎の並行作業として進めていませんか? なぜ平行性を高めるといけないのか システムの方向性をいつまでたっても決められない システムとして組み立てていかない
  24. 24. グループ演習 システム地図を作る 「空き会議室の有効活用」 「適切な値段と場所で会議室を借りたい」 このニーズをマッチングするサイト
  25. 25. 25 RDRA Map Maker Drag&Drop 右ボタン ②新規作成 ④別ビューに追加 Drag&Drop ③新規作成 新規アイコンの追加 アイコンの追加 ①メニューから追加 ②パレットからDrag&Dropで追加 ③右ボタンで追加 ビューにアイコンを追加 ④別ビューに追加 ⑤追加位置マーカー メニュー、ショートカットでのアイコ ン追加の場合の追加位置を示す ⑥連続追加ダイアログ 行単位でアイコンを連続追加する ⑦アイコンの変更・削除 右ボタンのコンテキストメニューか らアイコンの変更・削除を行う ⑧関連線を引く 矢印からDrag&Dropで線を引く ⑤追加位置マーカー ⑥連続追加ダイアログアイコン種類 ⑦アイコンの変更・削除 ⑧関連線を引く
  26. 26. 26 RDRA Map Maker 新しいビューの追加 ビュー 新しいビューの追加 複数ビューの管理 一つのモデルを複数のビューで見る
  27. 27. 27 貸会議室.com 貸会議室.com 自社の空き会議室貸します 貸主会議室 利用者 会議室登録 サービス利用申請 利用料振込 利用状況照会 会員登録 審査 公開 会議室検索 精算 会議室予約 予約確定メール 会議室 利用 管理 決済代行支払 入金 要求: 空いている会議室を有 効利用したい 要求: リーズナブルな価格で 会議室を借りたい 要求: 会議室を安く貸し出す 場を提供する
  28. 28. 28 貸会議室.com システム地図
  29. 29. 29 演習の進め方 コンテキスト アクター 外部システム システム境界 シーン ユースケース イベント システム 機能 データ 要求でコントロールする 要求で方向性を決める
  30. 30. 付録:EAを使って要件を定義する
  31. 31. 31 RDRAテンプレート RDRAで作成する一連のモデルをパッ ケージとして用意 メニュー用のダイアグラムを用意 レビュー用のダイアグラムも用意
  32. 32. 32 RDRAプロファイル RDRAのダイアグラムに特化した アイコンを集めたツールバーが用 意されている クイックリンクも用意されている クイックリンク
  33. 33. 33 clas s データモデル 取引先 - 名前 - 締め日 商品 - 発注単位 - 追加発注禁止 オーダー商品 - 数量 出荷情報 - 出荷番号 - 出荷日 オーダー情報 - オーダーID - オーダー日 - 数量 - 決済方法 送り先情報 - 送り先名 - 郵便番号 - 住所 - 電話番号 出荷指示情報 - 出荷予定日 - 入荷待ちの有無 入金情報 - 入金日 - 入金者名 - 金額 パッケージ - 商品名 - 荷姿 - 商品カテゴリ - 単価 * 0..1 1 1 1 11 1 * オーダー商品 EAを使ったRDRA cust om 画面モデル <<画面>> 商品登録画面 - 商品名 - 取引先 - 荷姿 - 発注単位 - 商品カテゴリ <<画面>> 販売状況照会 - 月 - 商品カテゴリ <<画面>> 商品説明 - 商品カテゴリ - 商品名 - 商品説明 - 価格 <<画面>> カート処理 - オーダーID <<画面>> オーダー照会 - 顧客名 - オーダー日 - 状態 商品売上詳細 - 商品名 - 売上数量 - 売上金額 詳細説明 - 商品説明 カート内商品 - 商品名 - 数量 <<画面>> 決済処理 - 顧客名 - 住所 - 決済方法 受注商品 - 商品名 - 数量 <<画面>> オーダー取り消し - オーダーID uc ユースケースモデル 商品販売サイト <<入荷システム>> 入荷商品を登録する <<出荷システム>> 出荷を 完了する <<出荷システム>> 出荷を 指示する オーダーを 照会する 商品を 登録する 商品を説明する <<入荷システム>> 商品を 発注する 販売状況を 照会する オーダー部門 営業 物流 顧客 オーダーを 取り消す オーダーを 完了する 商品を 受注する 入金額を 補正する <<出荷システム>> オーダー状況の確認 する 新規受注を確認する 出荷予定を確認する act オーダー業務 商品購入 入金確認 出荷指示 出荷完了指示 開始 終了 オーダー確認 支払い 出荷業務 入金額の差違 入金の差違の解消 オーダー取り消し オーダー継続 配達完了メール通知待ち オーダー完了登録 オーダー状況の確認 メール確認 入金額と請求額 が一致する 入金額と請求額 の差違がある キャンセル キャンセルしない Step By Step
  34. 34. 34 1.システムに関わるアクターと外部システム を求める コンテキストモデル システム価値 システム外部環境 システム境界 システム もの サービス 利害関係者 ユーザ システムを取り巻く一番外側を 定義する ・システムの目的役割 ・アクター ・外部システム目的・役割 責務 役割 目的・役割 要件定義の出発点としてアクターと外部システムを洗い出す 最終的にシステムに関わるアクターと外部システムを全て洗い出し、システムの目的 を明らかにする モデリングのヒント: 最初は関わりがあると思われるアクターと外部システム を全て出す。 システムの目的は最初は漠然としたものでもよい。 徐々に明らかにする
  35. 35. 35 2.要求を捉える A- 35 コンテキストモデル システム価値 システム外部環境 システム境界 システム もの サービス 利害関係者 ユーザ 要求を以下の3つに分類 ・要望:ヒアリングしたもの ・機能要求:機能の要求として整理したもの ・非機能要求:非機能の要求として整理したもの ・要件:ステークホルダーが把握するもの 目的・役割 要求 要求 要求モデル 要求を明らかにする。 ・顧客からのヒアリング結果を要望として洗い出す。 ・粒度や網羅性を考えながら整理したものを要求として分類する。 ・ステークホルダーが認識すべきものを要件として整理する。 要求モデルは要求の整理がメインの作業となる。 モデリングのヒント: ヒアリングしたものはそのまま加工せずに要 望として洗い出す。 他のモデル作成中に「何々できること」のよう にシステムとして実現すべき事が明らかに なったときは要求として追加する
  36. 36. 36 3.システムを利用する環境を明らかにする (業務モデル) A- 36 コンテキストモデル システム価値 システム外部環境 システム境界 システム 利害関係者 ユーザ 洗い出したアクターを意識 しながら業務を設計する。 ・アクティビティ ・情報 ・業務上の条件 目的・役割 業務モデル 業務 責務 価値 レーン レーン システムに関わる業務を明らかにする。業務にはそれを行うことで得られる価値があ るので、それを意識して作成する。 その価値が最終的にシステムの目的・役割につながる。 モデリングのヒント: 作業の平行性を意識する。 入力等の負荷がかかる作業 は受益者負担が好ましい。 作業の分岐条件はビジネス ルールとなる。
  37. 37. 37 4.業務上に存在する概念を整理する (概念モデル) A- 37 システム価値 システム外部環境 システム境界 システム 利害関係者 ユーザ 構造的な概念についてクラス図で表 現する。 全ての概念ではなく重要なものだけ を記述する 概念モデル 概念 概念 業務 システムを取り巻く環境の中で使われている概念を明らかにする。 概念が異なるとシステムの機能も異なる モデリングのヒント: 概念のうち構造的なものが概念モデルの対 象となる。 モデルとして整理するのが難しい場合は用語 集として整理する。 他のモデルで該当概念について記述する場 合は概念モデル内の用語を使用する
  38. 38. 38 5.システムとの接点を明らかにする (ユースケース) A- 38 システム価値 システム外部環境 システム境界 システム 利害関係者 ユーザ 業務モデルの各アクティビ ティの中でシステムとの接 点がユースケースとなる。 利用シーンを具体化したも のがユースケースとなる 業務モデル 利用シーンモデル コピー ユースケースモデル コピー 中間モデル 中間モデル 中間モデル で作成した ユースケー スを集める システムが使われる環境をベー スに、システムとの接点をユー スケースで表す。 この手法のユースケースはアク ターとの接点に限定する モデリングのヒント: 主語と動詞を明確にする「XXXをZZZZ する」のような形式 システムとの接点を明らかにする。ソフ トウェアの機能ではない。
  39. 39. 39 6.入出力情報を明らかにする (画面・帳表モデル) A- 39 システム価値 システム外部環境 システム境界 システム 画面・帳表モデル ユースケースモデル 状況を捉える状況を 捉える 中間モデルで作成した 入出力情報を集める ユースケースとつなげて入出力 情報を捉える。同時にユース ケースに繋がるアクティビティ、 利用シーンを考慮に入れる ユーザーインターフェースの入 出力情報を明らかにする。 そのために画面と帳表で扱う情 報を洗い出す。 モデリングのヒント: 画面や帳表のレイアウトは別途標準を規定 してから作成する。 顧客とは画面のラフスケッチで打ち合わせ する
  40. 40. 40 7.外部システムとのやりとりを明らかにする (イベント) A- 40 コンテキストモデル システム価値 システム外部環境 システム境界 システム 洗い出した外部システムから導き 出す。 受信、送信に分かれるが自分のシ ステムを中心に受信送信を分類す る。 目的・役割 イベントモデル 外部システム 通信電文な どの資料 外部システムとのやりとりをイベントモデルとして整理する。 外部システムが既存のシステムの場合は通信電文などの資料を元に整理する。 外部システムとの役割分担が分かるような主要なイベントを洗い出す。 モデリングのヒント: 受信、送信の細かな情報に落ち込まないよ うにする。 主要な情報に着目する。
  41. 41. 41 8.イベントをルール化する (プロトコルモデル) A- 41 システム価値 システム外部環境 システム境界 システム 洗い出したイベントをトリガーに結 びつけ整合性を合わせる トリガーの結果行われることを作用 として洗い出す 状態、 トリガー 作用 イベントモデル 外部システム プロトコルモデル トリガー/作用 イベントをト リガーに対応 させる 通信電文な どの資料 機能モデル:機能 作用を機 能に対応 させる 外部システムとのやりとりに必要なイベントを網羅的に出すためにステートマシン図を 使って整理する。 外部システムとの間で共有する状態を洗い出す。 状態として表現することで網羅的に表現が可能になる。 その状態間の遷移にイベントを当てはめ、イベントの網羅性を確保する。 サービスの提供で状態を持たないイベントの場合はこのモデルに対応させない モデリングのヒント: 設計段階では厳密さが要 求されるが、要件定義段階 では外部システムとの役割 が分かればよい
  42. 42. 42 9.システムで使うデータを明らかにする (データモデル) A- 42 システム価値 システム外部環境 システム境界 画面・帳表モデルの項目、業務フロー上の情報、イベント モデルのイベント毎の情報からデータモデルを作成する 業務モデル画面・帳表モデル イベントモデル データモデル システム データ 機能 機能 システムで使用するデータを明らかにする。 ここでのデータはビジネス的に必要なデータであり、仕組み上必要なデータは含めない。 つまり、システムにとって必要なデータは何かを明らかにする モデリングのヒント: DB設計を意識しない。 ビジネス上必要なデータを明 らかにする
  43. 43. 43 10.システムに必要な機能を明らかにする (機能モデル) A- 43 システム価値 システム外部環境 システム境界 機能を導出するた めには以下の3つ の情報と対応づけ て洗い出す ・ユースケース ・イベント ・トリガー/作用 データモデル システム 機能モデル ユースケースモデル 機能複合モデル データ 機能 機能 U C 機能 プロトコルモデル アクション ドメインモデル ユースケースを実現するソフトウェアとしての「機能」とプロトコルモデルの遷移 上の作用に対応する「機能」を洗い出す。また、それらの機能がどのようにデータ とドメインオブジェクトを操作するかを機能複合モデルで表現する

×