カンファレンス2014 tutorial pfd - affordd派生開発カンファレンス201...
TRANSCRIPT
派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館13
派生開発推進協議会 All Rights Reserved13
PFDってなに
梶本13 和博13 派生開発推進協議会13
URL=httpwwwxddpjp13
(株)13 エクスモーション13
URLhttpwwwexmotioncojp13
kazuhirokajimotoexmotioncojp13
AFFORDD13 カンファレンス201413
チュートリアル資料13
派生開発推進協議会 All Rights Reserved13
はじめに13
Oslash PFDって知ってますか聞いたことは有りますか13
Oslash Process13 Flow13 Diagramの頭文字を取ったものです13
Oslash PDFと間違いやすい()ので気をつけてください13
13
2 13
派生開発推進協議会 All Rights Reserved13
自己紹介13
梶本13 和博(かじもと13 かずひろ)13 13
<所属>派生開発推進協議会13
13 株式会社エクスモーション13
<業務>ソフトウエアプロセス改善コンサルタント13
<略歴>13 Oslash 1975制御ソフト設計13 13
13 13 オンライン銀行ターミナルオフスコンピュータ13
Oslash 1984組み込みソフト設計13
13 13 ページププリンタスケーラブルフォント13
Oslash 1989プリンタ商品企画13
13 13 オンデマンドパブリッシング向けプリンタ13
Oslash 1995ソフトウエア品質生産技術13
13 13 USDMXDDPPFDSIO9000CMMCMMI13
Oslash 2010派生開発協議会13
Oslash 2012エクスモーション13
3 13
派生開発推進協議会 All Rights Reserved13
アジェンダ13
13
1 開発現場の現状13
2 そのように為らないために13
3 PFDでプロセスを表現する13
4 どんなことに使える13
13
4 13
派生開発推進協議会 All Rights Reserved13
1開発現場の現状13
13
11混乱するプロジェクト13
12遅延するプロジェクト13
5 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度(場当たり的閃き)指示が出る13
v 今までの習慣で実施している13
6 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度決定13 v 過去の経験の良し悪しで結果の成否が異なる13
7 13
過去の経験13 過去の経験13 過去の経験13 過去の経験13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
はじめに13
Oslash PFDって知ってますか聞いたことは有りますか13
Oslash Process13 Flow13 Diagramの頭文字を取ったものです13
Oslash PDFと間違いやすい()ので気をつけてください13
13
2 13
派生開発推進協議会 All Rights Reserved13
自己紹介13
梶本13 和博(かじもと13 かずひろ)13 13
<所属>派生開発推進協議会13
13 株式会社エクスモーション13
<業務>ソフトウエアプロセス改善コンサルタント13
<略歴>13 Oslash 1975制御ソフト設計13 13
13 13 オンライン銀行ターミナルオフスコンピュータ13
Oslash 1984組み込みソフト設計13
13 13 ページププリンタスケーラブルフォント13
Oslash 1989プリンタ商品企画13
13 13 オンデマンドパブリッシング向けプリンタ13
Oslash 1995ソフトウエア品質生産技術13
13 13 USDMXDDPPFDSIO9000CMMCMMI13
Oslash 2010派生開発協議会13
Oslash 2012エクスモーション13
3 13
派生開発推進協議会 All Rights Reserved13
アジェンダ13
13
1 開発現場の現状13
2 そのように為らないために13
3 PFDでプロセスを表現する13
4 どんなことに使える13
13
4 13
派生開発推進協議会 All Rights Reserved13
1開発現場の現状13
13
11混乱するプロジェクト13
12遅延するプロジェクト13
5 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度(場当たり的閃き)指示が出る13
v 今までの習慣で実施している13
6 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度決定13 v 過去の経験の良し悪しで結果の成否が異なる13
7 13
過去の経験13 過去の経験13 過去の経験13 過去の経験13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
自己紹介13
梶本13 和博(かじもと13 かずひろ)13 13
<所属>派生開発推進協議会13
13 株式会社エクスモーション13
<業務>ソフトウエアプロセス改善コンサルタント13
<略歴>13 Oslash 1975制御ソフト設計13 13
13 13 オンライン銀行ターミナルオフスコンピュータ13
Oslash 1984組み込みソフト設計13
13 13 ページププリンタスケーラブルフォント13
Oslash 1989プリンタ商品企画13
13 13 オンデマンドパブリッシング向けプリンタ13
Oslash 1995ソフトウエア品質生産技術13
13 13 USDMXDDPPFDSIO9000CMMCMMI13
Oslash 2010派生開発協議会13
Oslash 2012エクスモーション13
3 13
派生開発推進協議会 All Rights Reserved13
アジェンダ13
13
1 開発現場の現状13
2 そのように為らないために13
3 PFDでプロセスを表現する13
4 どんなことに使える13
13
4 13
派生開発推進協議会 All Rights Reserved13
1開発現場の現状13
13
11混乱するプロジェクト13
12遅延するプロジェクト13
5 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度(場当たり的閃き)指示が出る13
v 今までの習慣で実施している13
6 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度決定13 v 過去の経験の良し悪しで結果の成否が異なる13
7 13
過去の経験13 過去の経験13 過去の経験13 過去の経験13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
アジェンダ13
13
1 開発現場の現状13
2 そのように為らないために13
3 PFDでプロセスを表現する13
4 どんなことに使える13
13
4 13
派生開発推進協議会 All Rights Reserved13
1開発現場の現状13
13
11混乱するプロジェクト13
12遅延するプロジェクト13
5 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度(場当たり的閃き)指示が出る13
v 今までの習慣で実施している13
6 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度決定13 v 過去の経験の良し悪しで結果の成否が異なる13
7 13
過去の経験13 過去の経験13 過去の経験13 過去の経験13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
1開発現場の現状13
13
11混乱するプロジェクト13
12遅延するプロジェクト13
5 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度(場当たり的閃き)指示が出る13
v 今までの習慣で実施している13
6 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度決定13 v 過去の経験の良し悪しで結果の成否が異なる13
7 13
過去の経験13 過去の経験13 過去の経験13 過去の経験13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度(場当たり的閃き)指示が出る13
v 今までの習慣で実施している13
6 13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度決定13 v 過去の経験の良し悪しで結果の成否が異なる13
7 13
過去の経験13 過去の経験13 過去の経験13 過去の経験13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash こんな状態に為っていませんか13
v 作業はプロジェクトの進展に従って都度決定13 v 過去の経験の良し悪しで結果の成否が異なる13
7 13
過去の経験13 過去の経験13 過去の経験13 過去の経験13
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
11 混乱するプロジェクト13
Oslash 今回のプロジェクトで作成作成しなければならない成果物全体が見えていない13
v 次に何を作れば良いのか13
v どこまでやれば終われるのか13
Oslash 今回のプロジェクトはどのように実施するか見えていない13
v リーダーによる都度指示で実施(リーダー任せ)13
v 今までの習慣で実施13
8 13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 組織には標準プロセスがある13
v それに従ってプロジェクトを実施している13
9 13
13
定義された13 標準プロセス
z13
13
定義された13 標準プロセス
z13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13 minusminusminusminusminusminusminusminusminusminusminusminus13
13
定義された13 標準プロセス
z13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash こんなことに為っていませんか13
v 標準プロセスに添って実施している13
v 多くの成果物(作業)を作らねばならない13
10 13
13
定義された13 標準プロセス13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13
minusminusminusminusminusminusminusminusminusminusminusminusminusminusminusminus13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
13
定義された13 標準プロセス13
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
12 遅延するプロジェクト13
Oslash 組織で策定され今まで実施されてきたプロセスをそのまま実施している13 v ある時大成功を納めた方法を基に策定した方法なのに13
v 策定しなければならなくて策定した方法なのに13 13
Oslash 万能プロセスを作ってしまった13
v 策定したプロセスの粒度が粗く不要なプロセスを含む13 13
Oslash 問題が生じる度に成果物が増加肥大し作業が増える13
v これが足りなかったから13
v この作業を実施していなかったから13
11 13
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
2そのように為らないために13
13
21混乱しないためには13
22遅延しないためには13
23こうなれば良い13
13
13
12 13
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
21 混乱しないためには13
Oslash 何をすればよいのか観えている13
v 今回のプロジェクトで作成しなければ成らない成果物が観えている13
v 今回のプロジェクトで実施しなければ成らない作業が観えている13
13
13
13 13
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
22 遅延しないためには13
Oslash 要求に適した作業となっている13
v 今回作成するものは内容の重複や使われないものは含まれていない13
v 今回作成するものは今回の要求を達成するのに必要なもの13
14 13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash 今回作成する成果物とそのための作業の全貌が表現されたものが有る13
Oslash それらの成果物やそれを作り出す作業は今回の要求を実現するのに必要なものだけで構成されている13
Oslash これらをの事柄が関係者に周知され議論され承認されている13
15 13
それが ldquoPFD (Process Flow Diagram)rdquoなんです13
これらを実現できる1つの方法として考案された13
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
23 そのために何が出来ればよいの13
Oslash このように実施出来るとGoodですね13
16 13
上手くいったプロセスのデータベース13
13
13
今回策定したプロセス1313上手くいったプロセスの
データベース13
13
やったネ13
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
3PFDでプロセスを表現する13
13
3113 プロセスとは13
3213 プロセスを表現する13
3313 プロセスを設計する13
3413 失敗しないために13
17 13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 入力成果物を出力成果物に変化させる行為仕掛13 13
18 13
入力13成果物13 作業13
出力13成果物13
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
31 プロセスとは13
Oslash 成果物と成果物はプロセスを介して連鎖している13 13
19 13
プロセス13投入物13 成果物13
成果物13作業13(プロセス)13
作業13(プロセス)13
中間成果物13 中間成果物13 作業13(プロセス)13
作業13(プロセス)13
中間成果物13
投入物13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを表現する方法13 13
13
20 13
0 ( lt
jscb13w13PSx
tv^isv
WBS
=gt=
gt=
MP8D1BNAw1BOFAx
fvopu_OGOFFPUP[IPRR$+HX
P$YDZCWVHA$ LQFZYKAXy
=gt=[kvbOruaGJUP MP8[0H jscbPQ9L0HX GVHA fvopu_GVHA
P[2GK0LEX$ b`anvqO6GVHA
5P[$+$ MgvdP8[0HX$ jscbPQ9L0HX$ CMMLQDFD[13GKAJ
bh3MisvPgvdDGK P)D1BOFA
DGA
jscbOGK4-O[13GKAX
e]m_ol0DampAJTjscb7P8D1BNA$
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスを適切に表現する技術が必要13
v DFD世界で使われているプロセスの表現ツールbull 構造化分析のツールを開発プロセスの「Design」に応用13
bull 日本ではこの種のダイヤグラムを使わずに「プロセス定義書」だけで対応13
v PFDDFDでは扱いにくいところを改良して提案13
bull 成果物とプロセスの関係をダイアグラムで表現したもの13
13
21 13
ndash この他の多くのルールはDFDのルールを継承13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDで使用する基本的な記号13
v PFDで使用する記号は次のものが有る13
13
さらに詳しいことは硬派のホームページの「PFDの書き方」を参照してください13 (httphomepage3niftycomkoha_hpprocessPFDform3pdf)13
22 13
プロセス13bull 作業を表す13
bull 階層を持つ場合には線を太くしたり二重にする13
成果物13bull プロセスに出入りする成果物を表す13
bull ソースファイルや分冊の様子や形になってい
ない 「ノウハウ」など適当な記号を使う13
フロー13bull 成果物とプロセスを繋ぐ線13
bull 両側に矢印を付けて更新の意図を表したり線
上に成果物を構成する要素を書くこともできる13
トリガー13bull プロセスの起動タイミングを表現する必要が生
じたときに使用する13
bull できるだけ使用せずに済ますこと13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの表現13
v プロセスは1つの「」(1重線または2重線)で表しその中にプロセス名を記入する13
13
13
23 13
v プロセス名は「目的語ー述語」で書く13v 1重線のプロセスは実際に作業を行うプロセスでありできるだけ作業の
範囲や入力物が出力物に変換される様子がリアルにイメージできるように表現する13
v 「踏査の抽出」のような表現では具体的な行動(作業)がイメージしにくいので避ける13
v プロセスにおける具体的な作業は「プロセス定義」で記述する13 13
13
ベースの仕様書設計書を調べて
調査項目(機能)をリストアップする1313
13ベース機種の範囲に含まれない規格HW等の情報を調査する13
13
下位層を持たない プロセス1313
下位層を持つ プロセス13
13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表現13
v 成果物は「単票」または「複票」の部品で表しその中に成果物名を記入する13
13
13
24 13
v タスク設計書のように何冊も存在するものをまとめて表現する場合は「複票」で表し具体的なイメージを誘う13
v 成果物の構成などは別に「成果物定義」で記述する13
単体で存在するもの13
13
複数の分冊で構成されるもの13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の複製表示13
v 1つのPFDの場面の中である成果物が複数のプロセスに関係している場合出来るだけフローをのばして接続し記述づる13
v ただし関係箇所の距離が離れている場合や他のフローと交差してPFDの可読性が悪くなる場合は成果物名または番号の横に「」をつける「複製表示」の方法で対応する13
13
v 「複製表示」は1つのPFD上に1つの成果物が他にも表示されていることを示す13
v PFDの層が異なれば複製表示の必要はない13
13
25 13
D01013 要求仕様書13
D01013 要求仕様書13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の表記13
v 「ソースファイル」や「人の知識ノウハウ」なども成果物として記述しその中に成果物名を記入する13
13
26 13
ソースファイル13 人の知識ノウハウ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスをフローでつなぐ13 v フローによって成果物とプロセスをつなぐ13
13
13
13
v 成果物「C」がどの成果物から付く足れているか13
v 成果物「C」がどのプロセスで活用されているか13
v 生成や参照の詳しいことは「プロセス定義」に記述する13
13
113「A」と「B」から「C」を作る13
213「D」の情報を使って
「C」を更新する13
成果物A13 成果物C13成果物D13
Bさんの知識13
27 13
が一目でわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (1)13
v 生成型成果物とはあるプロセスから新規に生み出される
成果物13
v 生成された成果物は通常は以降のプロセスの入力に使われる13
28 13
生成される成果物13
113
生成される成果物13
213
生成13生成13
これらは一連の作業の結果として13ともに残される成果物であることを示す
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 生成型と更新型13 (2)13
v 更新型成果物とは一度「生成」された成果物がその後に他の
プロセス から内容が「追記」されたり「更新」されたりする成果物13
29 13
P113
P213
P313
更新型成果物13
(更新)13
(更新)13
生成13
「P1」によって生成されたあと13
「P2」と「P3」によって更新される13
ことを示している
「P2」と「P3」の実行順序はPFDから読み取れない
実行順序はスケジュールで表現する
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 往復フローと2本の単方向フローの使い分け13
v 成果物があるプロセスによって更新される場合通常は「更新型」
のフローを使って表現する13
v 成果物から読み出す情報や書き出す内容を意図的にフロー上で
見せたい場合は「更新型」のフローを使わずに入力と出力の二
本のフロー を使う13
30 13
要求仕様書13
仕様から13データの要素を引き出して
追記する13
データ名13一覧13
更新13
データ名13
仕様13
データ名13基準書13
フロー上に適切な情報を記述すると良い
プロセス名からldquo更新rdquoとわかるときは不要
但し情報過多は13
可読性を損ねる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (1)13
v 1枚のシートに必要以上に多くのプロセスを配置しない13
v 「7plusmn2」個を目処としてできるだけ階層化する13
v 下位層を持つプロセスは二重線で書く13
v 最上位のPFDにおいて全面的に階層化を活用することで最上
位のPFD は「組織標準」の候補として使うことができる13
v ただしそのまま「組織標準」にしない13
v 階層の上下間では「親子間のバランス」を確保する13
v 上位のプロセスに接する成果物は下位層のPFDの生成関係と一致する13
31 13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスの階層化13 (2)13
v 階層の上下間では「親子間のバランス」を確保する13
v プロセスの「番号」によって階層の様子(深さ)が見える13
v 成果物が一致しないとどちらが正しいのかわからなくなる13
32 13
113xxxx13
A13
B13
C13
D13
階層化13
1113yyy13
A13
B13
C13
D13
D13
1213zzz13
テンプレート13
Dの1部分13
「テンプレート」や「ガイドライン」の類いは例外
上位と下位で成果物を一致させる
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセスに番号を付ける13
v プロセスには「番号」を付ける13
v プロセス番号は単なる識別子であって実行の順序を示すものではない13
v 番号が飛んでもかまわない13
v 番号は「階層」を表現する13
33 13
ldquoPrdquoはプロセスの番
号であることを示す13
P513ヒアリングの13
結果を要求仕様書に展開す
る13
P5113機能に関する要求項目を13リストアップ13
する13
P51313機能の要求ごとに仕様化
する13
下位層13さらに下位層13
番号からldquo親rdquoプロセスが
すぐに分かり階層の深さ
もわかる13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物にも番号を付ける13
v 成果物にも「番号」を付けるとよい13
v 生成する成果物はすべて最上位層に現れる13
v 成果物の番号もPFDの「階層」関係の中で使用するときに役に立つ13
v ただし成果物定義書において当該成果物の構成がきちんと定義されていることが前提となる13
34 13
D10 13要求仕様書13
ldquoDrdquoは成果物の番号で
あることを示す13
D102 13要求仕様書13(XX機能)13
成果物10を構成する
一部分であることを示す13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル1)13
v 一般的な新規開発の最上位層(PFD-0)のパターン13
13
35 13
(更新)
(更新)
製品企画書
他社製品の評価
関連技術評価
要求仕様書ガイドライン
要求仕様書を作成する
要求仕様書
作業見積とスケジュール調整へ
リスクを抽出する
リスクリストリスク管理票
リスク管理へ
UI仕様書
UI仕様書を作成する
UI仕様書書式規定
データ仕様書
データフォーマットを作成する
アーキテクチャ設計書
システム全体のアーキテクチャを考える
データ仕様書書式規定
タスク別に仕様をまとめる
タスク別仕様書
操作仕様書を作成する
要求仕様書
操作仕様書
テスト仕様書を作成する
テスト仕様書
タスク別に設計書を作成す
るタスク別設計書
設計書に沿ってコーディングする
ソースプログラム
テスト仕様に沿ってテストを実施する
設計者によってテストを実施する
設計者テスト結果
UI仕様書
データ仕様書
テストデータを作成する
テストデータ
QAテスト結果
ライブラリを集めて出荷用のCDを作る
作成ツール
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル2)13
v ある派生開発の最上位層(PFD-0)のパターン13
36 13
P010 )m1lnqkd8ampUG[0mr=h
p
P020 A)57(j7(GZVrhp
P030 A)59c)5B9r
hp
P040 ZVm+lgi9rhp
P050 cAfqpCm(
rhp
P060 9ld|yr
hp
P070 A)5ryt
xhp
P080 |yr3gc3r6e
P090QAr6e
YTHMUG[(DE
YTHNogd8amp
YTHIm7
THIHFHI= DE
YTHJm)5(DE
YTHKm)59DE
YTHLmz9DE
zm94mgt
YSHIm|y
THLHFHI9
THJHFHJ7(GZVDE
THJHFHI~wsu DE
YTHOytx82
HNHFHIm|yca`]^_]bE
THIHFHI= DE
THJHFHKA)57(DE
THIHFHI= DE
THKHFHIA)5B9DE
THKHFHJA)59DE
THKHFHKA)59(DE
YTHLmz9DE
YTHOytx82DE
YTHPm(
HNHFHIm|yca`]^_]bE
SHOHFHIAm|yca`]^_]
THKHFHKA)59(DE
HPHFHIXRlt-YWV
HQHFHI13-YWV
THMHFHIm(v~wz
THQHFHIDE
THQHFHIDE
THQHFHIDE
3$r
(r
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル3)13
v リスク項目を引き出すプロセスのPFD(PFD-0)パターン13
37 13
要因リスク期限
要因リスク期限
要因リスク期限
担当者能力
担当者能力
(更新)
(更新)回避策軽減措置
要因期限
構成表現サンプル
目的リソースなど
要求仕様書
リスクリスト
リスクリストのテンプレート
1テンプレートを複製しタイトル等を書き
3要求仕様書の中で実現に困難を伴う要件を抜き出す
4資材の確保のような外部から調達の必要があるものを抽出す
る
2要求仕様書の中で新規性の高い要件を抜き出す
担当者情報
6軽減措置が考えやすいように要因とリスクを整理する
8リスク要件毎に回避策または軽減措置を考
える
7リスクの影響度を算定する
費用に関する情報
外注の単価機材の値段特許の値段
5実現に当たっては特許に定職する危険がある要件を抽
出する
リスク管理ガイドライン
プロジェクト計画書
プロジェクト計画書
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash PFDによるプロセスの表現(サンプル4)13 v ある新しい規格の機能を製品に取込む調査資料を作成するプロセスのPFD(PFD-0)パターン13
38 13
DFgt78513EgtAltC19
13645)(-1301329
+ (-
+ ampGGGG
+ 7
$ 13
7
313
137
13
DFgt7
DFgt7
DFgt7
Fgt=FB
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物とプロセスの定義13 v PFDの実行性は成果物とプロセスの「定義書」で裏付けられる13v すべての成果物は最上位のPFDに現れ成果物定義書を用意するる13
v 実行プロセスにはプロセス定義書を用意する13
39 13
P113 P213成果物13
(更新)13生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
成果物定義書13
目次のような記述でも構わない
成果物定義がプロセス定義の信憑性の裏付けになる13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13 ーーーー13
プロセス定義書13
成果物の定義が13曖昧だとプロセスの定義が書けない13
入力物から成果物を生み出す処理を記述する13
シミュレーションが可能になる1313
下位層を持たない
プロセス1313
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書13 v レイアウトは以下のフォームを推奨する13
v そこに何を書くかを記述しないとプロセス定義を検証できなくなる13
40 13
13
13
13
13
「成果物定義書」は13組織内で再利用しやすいのできちんと書いておくと良い13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物の構成の定義方法13 v 成果物定義の中の「構成」をきちんと定義しないとプロセス定義が行き詰まる13
v 定義方法は以下のいずれでもよい13
v データの構造体や成果物の目次のように表現する方法13
慣れない時はこの方法でも良い13
v 構造化分析のデータディクショナリの記述ルールを使う方法13
41 13
定義13 f = 〜13 「f は右辺の〜のように定義される」 という意味13
結合13 +13 構成要素の結合をあらわす13
繰り返し 13 a{ }b13
a{ }13
{ }b13
{ }内の項目が繰繰り返される13
繰り返し回数はa回以上b回以下13
回数表現を省略したときは「0」回以上13
選択 13 [a | b]13 [ ]内の項目から1つを選択する13
オプション13 (a)13 ( )内の項目は省略してもよい13
コメント13 13 との間にコメントを記述する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義書のサンプル13 v 派生開発における変更依頼書の成果物定義書13
42 13
PPPPPPP$+PuProptPPPPPPP
C HFGIEJEJ
cCn9ltYgc
C6WZk YTch=(7c8n2XbYgc
bV]m[nY_TkW|NMKLRcbda^_TaT
G (7=c8
|=Y_)YT(7
x(7c
xz|b-Y_)YTUie~O~
H c8
| c(7
PPyw WSkWSk(7Qsvqc(7campBbfkwy
xG| Y_)YTA1
PPyw(7bVl_TkbZk wy
xPDY_)YTA1
PPyw(7VjY_)YTwy
xDP=Y_)YTA1~O~
PPyw(7bVY_)YTwy
$+5
$+c10
4gt
$+camp`313
構成を表す番号13成果物の「枝番号」はこの番号
を使用する13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義書13 v レイアウトは以下のフォーマットを推奨13
13
43 13
$
$ 13
$ $ $
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash プロセス定義のサンプル13 v 派生開発における調査資料悪性のプロセス定義書13
13
44 13
-
USTWRXRX
Y 0P1
Y Qq~GE1
YQ QI3J+
4ampA
T
U
V
I3=pFKfziO9awI3p CoDujkI3J+]Y^pLFhy
ampA
18 [[[[[[[[[[[[
Z qGE1ItkI3O95B|hy
~GE1]Y^awHlt$(gpoylt$I3J+]Y^pLFhy
eqJ+mgk13oembgimcrI3J+]Y^qI3=pLFhy
I3hy5B|hy
q0P]Y^qawNhy5B`vs5BI3J+]Y^p
|hy
4
2 0P1Yb_i6
q~GE1onrpgk`d
C
4
gt 0PqpgkNMJ+b)lcixI3b CoO9b_fzi7
~GE1qHlt$LFhy
I3p CoO9DujkLFhy
関数仕様書
と同じイメー
ジ13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(1)13 v 上位層のプロセスと下位層のPFD間の「親子間のバランス」
の取り方として成果物の「枝番号」を使う方法がある13v 下例では「D81」〜「D84」を生成することで「D8」を生成したことと同じ意味に
なり「プロジェクト計画書に統合する」というプロセスは不要になる13
45 13
P413プロジェクト計画書を13作成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D8313プロジェクト13
リスク13
D8213見積もり13
D8113PFD13
B13
P4113AとBからPFDを13
作成する13
A13
P4313PFDから13
サイズと工数を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性リスクを抽出
する13
D13
C13
D8413スケジュール13
PFD-413
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物定義で親子間のバランスを取る方法(2)13 v 成果物の「枝番号」の代わりに「フロー情報」で「親子間のバランス」を取ることもできる13 v この場合でも成果物定義で成果物の構成を定義しておく13
v 構成の定義がなければフロー情報の裏付けを失う13
46 13
P413プロジェクト計画書を作
成する13
A13
B13
C13
D813プロジェクト13
計画書13
D13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
D813プロジェクト13
計画書13
B13
P4113AとBから
PFDを作成する13
A13
P4313PFDから13
サイズと工数13を見積もる13
P4213プロセス13
リスクを抽出する13
P4513PFDを元に13
スケジュールを作成する13
P4413Dから実現性13リスクを抽出
する13
D13
C13
D813プロジェクト13
計画書13
PFD-413
PFD13
PFD13
PFD13
PFD13
見積もり13 見積もり13
スケジュール13
リスク13
リスク13
リスク13
成果物定義書に13 1PFD13 2見積もり13
3リスク13 4スケジュール13
の構成が定義されている13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 成果物のグループ表示13 v 一つのプロセスに対してたくさんの成果物が関与し成果物とプロセスを結ぶフローが多くなってPFDの可読性を損ねるときは成果物を点線の枠で囲む13 13 13 「グループ表示」の方法を使う13 v 成果物の配置の工夫とグループ表示を使うことで整理できる13
47 13
D15 13要求仕様書13
D3 13規格書13
D4 13他社製品調査書13
P613新しい13
アーキテクチャ13を設計する13
P513Y10企画書から今回の要求仕様書を作成
する13
D10 13Y10企画書13
D12 13改善提案書13
D2013アーキテクチャ13
設計書13
アーキテクチャ13に関わる情報13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 定型パターンの扱い13 v レビューのようなプロセスをPFD上の全ての成果物に対して表現するとPFDの可読性が悪くなるので特殊な記号を使用する13 v 組織の中でパターンを共有しPFD上では「記号」で表現するとよい13
v ただしレビュープロセスでもそのプロセスを強調したりレビューでの成果物13 の活用を表現するために意図的にレビュープロセスを表現することがある13
48 13
213要求仕様書を作成する13
元ネタ13成果物13
D313要求仕様書13
元ネタ13成果物13
R13
X113対象成果物をレビュー
する13
レビュー13対象成果物13
指摘13リスト13
レビュー13関係成果物13
(元ネタ)13
X213指摘された箇所を修正
する13
更新13
共通のパターン13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 「調査する」プロセスの表現に注意13 v 「を調査する」というプロセスは一般に以下のように表現される13
v しかしながらこの表現では「調査する」プロセスの工数が見積れない13
13
v 調査項目をピックアップするプロセスと調査するプロセスを分けることで見積りの問題をクリアする13
13
49 13
ライブラリの13資料13
113の13ライブラリ
を調査する13
調査結果13報告書13
213項目に沿って
のライブラリ13
を調査して報告書を作成する13
ライブラリの13資料13
調査結果13報告書13113
調査する13項目をピック
アップする13
要求などの13資料13
調査項目13 調査結果13
調査項目数の見積りに基づいて
「2」のプロセスの工数を見積ること
ができる13
「1」のプロセスの実績値によって
項目数と項目の内容が見えるので
「2」のプロセスの工数を調整できる13
「1」のプロセスの工数の見積りは
小さいので「1」で誤差がでても
大きな問題にならない13
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
32 プロセスを表現する13
Oslash 無形成果物の表現13 v 入力源として必ずしも「形」になった成果物が存在するとは限らない13
v 上流のプロセスでは経験豊かな人の「ノウハウ」や「知識」を活用するプロセスも存在するので上手に表現すること13
v 成果物の図を使っても特別な図を使ってもかまわない13
v ただし「鈴木さんの経験」も「成果物定義」が必要でそこでどのような経験内容が活用されるのかを記述する13
50 13
さんの知識13
XXX13リスト13
鈴木さんの経験13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスは定義するのではなく設計する13
Oslash 今回の要求を満たすソフトウェアシステムを作り出すためのプロセス (開発アプローチ)をPFDを使用して「設計する」13
51 13
113313
513
213413
ソフトウェア開発システム13
要求13 ソフトウェアシステム13
どういうプロセスの連鎖で要求を満たす13システムを作り出すか=設計者の思想13
機能要求13
品質要求13
作業要求(制限)13
ソフトウェアプロセスを設計するという行為13
開発13アプローチを設計する13
設計された開発プロセスにそって
作業する13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 自分のプロセスを設計する13 v 変化する市場(顧客)の要求を実現するためのプロセスは実際にその作業を担当する人が「設計」することが重要13
52 13
多くの組織の間違いはプロセスを実施する人が自分が実施するプロセスを設計していないこと13
(組織標準)13
プロジェクト13標準13
要求13
113要求の13
特徴を把握13
する13
要求の特徴13
213要求を実現するプロセスを設計
する13担当者13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash PFDを使ってプロセスを設計する13v 自分の担当する範囲のプロセスの表現を繰り返す13
53 13
RWMKLQTXPX
RWMKLQJ432D7VSU5[8Alt00amp )BH6J=IFC712Y Z8J
DC$=IFDRWOND+JFI D432JEJAI
RWONJ-ltB9H(9=IYGZDRWONJ
13=IJ6DDRWONDCgtI
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 関係を表すだけ13
Oslash PFDは成果物とプロセスのldquo関係rdquoを表すだけでldquo順序rdquoを表現しない13
v その成果物(の内容)が13
① どのプロセスから生み出され13
② どのプロセスで活用されるかを表現するだけ13
v 一つの成果物は一つのプロセスから作り出されるとは限らない13
v 最初に1つのプロセスで生成された後はいくつかのプロセスによって
内容が 追加されたり更新されることがある13
v その様子を正確に表現することが大事13
v 一つの成果物はそのあと複数のプロセスで使われることがある13
v それぞれのプロセスでこの成果物のどの部分を使うのかを明示する13
13
54 13
順序は13
bull スケジュールで表せばよい13
bull 状況によって途中で変化させる13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash ゴールlから考える13
Oslash ゴールから考えることで無駄のない開発アプローチを設計する13 v 「その結果を得るにはどのような(入力)成果物があればよいのか」13
v 「ダイクストラの導出法」13
Oslash 前から考えると13 「これとこれでできること」
をベースにプロセスが作られる13
v 結果として無駄なプロセスが組み込まれる13
v いったん組み込まれたプロセスは「必要性」を主張する13
55 13
無駄なプロセスに見えない13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash 派生開発におけるプロセス設計の必要性13
Oslash 今ソフト開発はそのほとんどが派生開発13
v 要求が多種多様13
v 開発期間が短くやり直しが効かない13
v 設計したプロセスの善し悪しが短期間に検証できる13
13
56 13
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
33 プロセスを設計する13
Oslash プロセスを設計してみよう13 v 演習課題13
v 来年の年賀状を作成するプロセスを設計する13
v 入力物13
v 年賀状管理住所録13
v 今年頂いた年賀状13
v 昨年頂いた喪中はがき13
v 挨拶語句事例集13
v 年賀用イラスト集13
v 写真集(家族風景など)13
v 成果物13
v 来年の年賀はがき13
13
57 13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを自在に設計する13
v 変化する要求に対してプロセスを固定することは従来経験したことの再発に繋がる13
v そうならないためには多様な要求を満たすことの出来るプロセスを設計する必要が有るrarrプロセスを自在に設計するスキルが必要13 v 成果物とプロセスの合理的な連鎖の設計(Design)13
v 成果物の構成の設計13
v それら成果物を生み出すプロセスの処理(アルゴリズム)の設計13
v 実際にそのプロセスを実行する担当者が設計することが重要13
58 13
変化する要求に対してプロセスを固定することは危険1313
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(1)13 v PFDでプロセスを表現(設計)できれば完了というわけではない13v 新規性の高いプロセスはないか13v 実際に予定したとおりに作業が捗るか13v 入力物が遅れたときにどう対応するか13v その構成内容アルゴリズムから支障なく生成できるか13v 他に参照すべき資料(データ)が漏れていないか13
13
59 13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
お互いの記述に矛盾はないか13
P113 P213
入力物13
成果物13
入力物13
成果物定義書13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(2)13 v 「設計」したプロセスをシミュレーションで「安定」させる13
v 成果物が変化すればプロセスも変化する13
v 「追加」したプロセス「変化」させたプロセスの周りをを入念に13
v 機能的合理性と経済的合理性を確認する13
v 身に染み込んだ従来の習慣をシミュレーションで薄める13v 「PFD」を書いただけでは習慣は改まっていない13
v シミュレーションによって本番で「新しいプロセス」を迷いなく実施できる13
これで13
市場の変化に対応できる13
60 13
新規性が高いものほど必要13 本番で混乱しない13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスをシミュレーションする(3)13 v 途中で発生する「事態」に対処しやすい13
v 発生した事態は事前に考えたことか13
v その事態は他のどのプロセスに影響するか13
v 当初の結果を得るためにプロセスをどう変化させるか13
13
v 初めてのことも失敗しない13v 全く初めてのプロセス13
v 今回変化させたプロセス13
61 13
シミュレーションした分だけうまく行く13
初めての状態で本番に入ってしまえばプロジェクトは失敗する13
本番前に体に覚え込ませる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(1)13
合理理的であること13
v 要求を実現するために「機能的合理性」と「経済的合理性」を確保する13
v 2つの合理性を追求しなければ13
v 不足を補うプロセスが吟味されないまま実施され工数の逸失に繫がる13
v 無駄なプロセスによって工数を失いプロセスを省くことになる13
13
62 13
機能的合理性13
成果物の内容が狙い通りに生成される仕組みがある13品質13
入力物が生成されるタイミングに食い違いがない13
プロセスが適切なタイミングで実施できる13
経済的合理性13
生成物が過大ではない (見積りと組み合わせる)13生産性13
無駄なプロセスを経由していない13
生成プロセスの工数が回収できる13
バグや納期遅延に繋がる13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(2)13
機能的合理性が確保されているか13 v このプロセスの連鎖で目的の成果物が作れりだせることを確認する13
uuml ダイアグラム上で不足している成果物はないか13
uuml この入力物が遅れる要素は 13
uuml そのときにこのプロセスはどうする13
uuml 必要に応じて成果物定義書で構成を確認する13
63 13
シミュレーションされていること13
P113 P213入力物213
成果物13
入力物113生成13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13 ーーーー13 ーーーー13 ーーーー13
プロセス定義書13
出力側の成果物の定義が曖昧だと「P1」のプロセス定義が書けない13
入力物から成果物を生み出す処理にモレがないか13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
目的13 ーーーー13構成内容13 ーーーー13 ーーーー13 ーーーー13
成果物定義書13
成果物定義書13
「P1」の処理に13必要なデータを提供できているか13
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
34 失敗しないために13
Oslash プロセスを評価する(3)13
経済的合理性が確保されているか13 v このプロセスの連鎖で無理のない工数で成果物が作れるか13
uuml サイズ見積もりなどを考慮した後で評価する13
uuml 機能的には生成関係は成立していても必要以上にボリュームが大きい13
uuml そのプロセスの生産性が悪く多くの工数を必要としないか13
uuml 成果物の内容に重複が必要以上に存在していないか13
uuml 成果物の中野データで1度も使われないデータは存在していないか13
64 13
P113 P213入力物213
成果物13
入力物113
生成13
目的13 ーーーー13構成内容13
ーーーー13 ーーーー13
ーーーー13
成果物定義書13
入力出力13 ーーーー13処理内容13
ーーーー13 ーーーー13
ーーーー13
プロセス定義書13
機能的に成果物を作り出せることが前提となる13
ボリュームが13
大きすぎる13
工数が13
かかり過ぎる13
ボリュームが13
大きすぎる13
事前に選択13
できないの13
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
4どんなことに使える13
13
4113 プロジェクトの検証13
4213 原因分析13
4313 組織標準13
4413 プロセスの検証13
4513 その他13
65 13
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
41 プロジェクトの検証13
Oslash 実施されたプロジェクトの検証(プロセスと成果物の検証)13
v プロジェクトの実施にあたって策定され検証され承認されたPFDが有ることで
v 実施されたプロセスは正しく実施されたのか作成された成果物は正しく作成されたのかをPFDに照らして検証することが出来る13 v 実施されたプロセスは承認されたプロセスに従って実施されたか(rarrプロセスの品質)13
v 作成された成果物は承認されたプロセスに従って作成されたか(rarr成果物の品質)13
66 13
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
42 原因分析13
Oslash 問題が発生したときの原因分析に v 今回はなぜ成功しなかった(うまく行かなかった)のかを知る手がかりを見つける
v プログラムのldquoバグrdquoやスケジュールの遅延等のエラーはプロセスの欠陥が主な原因である
v プロセスの欠陥の3つのタイプ ① 予定されたプロセスが不適切に実施された13
② 必要なプロセスが省かれた13
③ 必要なプロセスがあったのに気付かなかった(ために省かれた)13
67 13
投入物13 プロセス13 成果物13投入物が持っている
欠陥13
成果物の欠陥はプロセスの欠陥で作られる13
「失敗」を繰り返すチーム組織は③13 の原因に気付いていない13
その場合③13 の原因は「失敗」から学べない可能性が残る13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織の標準プロセスを作る v プロジェクトごと(開発案件ごと)にプロセスを最初から作ると次のような課題が生じる v 担当者によりプロセスが安定するまで時間がかかる可能性 v 全体の工数におけるプロセス設計の工数負担
v 実績のあるプロセスをベースに「組織標準」を作る
v 実施したプロジェクトで上手くいったプロセス(プロジェクトが成功していなくても上手く出来た部分)を抽出しプロジェクト固有の部分を削除するrarr基本要素の抽出
v 抽出した基本要素をベストプラクティスとして登録する v 登録された基本要素から組織標準を策定する v 策定された組織標準を実施するプロジェクトのプロセスの参考にする13
68 13
規模や案件タイプに応じて複数パターン作成する13
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
43 組織標準13
Oslash 組織標準から実施するプロセスを策定する v プロジェクトごと(開発案件ごと)に組織標準から適切なプロセスを選択しプロジェクトに適合させる v 開発案件に合った(近い)プロセスを組織標準から選択する v 選択したプロセスを開発案件に適合するように変更(テーラリング)する(rarrプロジェクト標準)
v 策定されたプロジェクト標準の下位プロセスを担当者が策定(設計)する
69 13
プロジェクトの要求に合わせて不足する成果物とプロセスを設計付加する13
組織標準13 プロジェクト標準13
PL13v 選択13v テーラリング13
下位層プロセス13 下位層プロセス13 下位層プロセス13 下位層プロセス13
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
44 プロセスの検証13
Oslash 組織が持っている(実施している)プロセスの検証13
v プロセス改善の手がかりをつかむ13 v 現在組織が実施しているプロセスをPFDを用いて記述13
v 記述されたプロセスを評価13
13
Oslash スケジュールへの展開13
v プロセス定義書からスケジュールへ展開13 v 2つの合理性の検証が終了13
v シミュレーションも終了13
v プロセス定義書の「作業内容」をスケジュールの作業項目としてスケジュールを策定13
70 13
2つの合理性(機能的経済的)について評価し改善の手がかりを得る13
プロセスの実施順序が観えてくる13
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
45 その他13
Oslash その他色々 v ソフトウエアの開発だけでなく v 身の回りのいろんなことに (初めて行うことを上手く実施するために)
71 13
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
参考文献13
Oslash 清水吉男PFD(Process13 Flow13 Diagram)の書き方13
ldquo13 httphomepage3niftycomkoha_hpprocessPFDform3pdf13 rdquo13
Oslash 清水吉男AFFORDD勉強会PFD11pfd13
72 13
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』
派生開発推進協議会 All Rights Reserved13
御清聴ありがとうございました
梶本 和博派生開発推進協議会
株式会社エクスモーション
73 13
『PFDってなに』