カンファレンス2014 tutorial pfd - affordd派生開発カンファレンス201...

73
派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 Ⓒ派生開発推進協議会 All Rights Reserved. PFDってなに? 梶本 和博 派生開発推進協議会 URL=http://www.xddp.jp (株) エクスモーション URL:http://www.exmotion.co.jp [email protected] AFFORDD カンファレンス2014 チュートリアル資料

Upload: others

Post on 14-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発カンファレンス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ってなに』

Page 2: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 3: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 4: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 5: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 6: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 7: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 8: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 9: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 10: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 11: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 12: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 13: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 14: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 15: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 16: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 17: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 18: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 19: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 20: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 21: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 22: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 23: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 24: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 25: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 26: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 27: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 28: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 29: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 30: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 31: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 32: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 33: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 34: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 35: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 36: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 37: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 38: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 39: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 40: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 41: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 42: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 43: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 44: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 45: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 46: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 47: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 48: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 49: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 50: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 51: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 52: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 53: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 54: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 55: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 56: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 57: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 58: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 59: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 60: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 61: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 62: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 63: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 64: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 65: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 66: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 67: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 68: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 69: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 70: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 71: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 72: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 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ってなに』

Page 73: カンファレンス2014 Tutorial PFD - AFFORDD派生開発カンファレンス201 チュートリアル 2014年 6月 6日 横浜開港記念館 派生開発推進協議会 All Rights

派生開発推進協議会 All Rights Reserved13

御清聴ありがとうございました

梶本 和博派生開発推進協議会

株式会社エクスモーション

73 13

『PFDってなに』