組み込みで認知が広がっている開発手法にXDDPというものがあります。このXDDPは色々示唆に富む手法で、実際XDDPを構成するプラクティスを活用してきました。その中で早期から気軽に使っているプラクティスにPFD(Process Flow Diagram)というものがあります。
PFDはDFDをベースに作られたもので、主に開発プロセスのモデリングに用います。
記法が単純&明快なのと、後述しますがアクティビティ図やフローチャート等によるモデリングと比べて異なるメリットを持っているので、自分も色々な場面で活用しています。今回はそのPFDの概要を紹介したいと思います。
なおPFD自体は提唱者による詳細な資料が既にウェブに公開されているので、詳細はそちらを読んで頂ければと思います。
http://homepage3.nifty.com/koha_hp/process/PFDform3.pdf
PFDとは
PFDのモデリングの基本ルールは簡単です。主に以下が基本ルールです。
具体的には以下のような感じになります。
プロセスが、成果物のインプットを受けて、成果物のアウトプットを出すという流れを図示したイメージです。フローは並列で書いても構いません。
注意点として以下があります。
- プロセスとプロセスを直接つなげてはいけない。成果物と成果物を直接つなげてもいけない。プロセスと成果物のつながりで表現する。
- 作業や成果物の依存関係の明示化に努める
- 条件分けは考えない。
- スケジュールは考えない。実行順序もなるべく考えない
(他にも細かい記法やルールがありますが、それらについては前述の提唱者資料を見て頂ければと思います)
なお気付いた方もいるかもしれませんが、前述の通りPFDはDFDのサブセットです。業務系開発ではDFDを業務フローの分析に使用することがありますが、PFDはそれにいくつかサブセットルールを加えて開発プロセスの分析に特化させたものになります。
PFDのメリット
PFDは、順序や条件分けにこだわらず、成果物やプロセスの依存関係の明示にフォーカスすることから、一般的なフローチャートやアクティビティ図と異なったメリットを持ちます。いくつか紹介します。
●本質的な依存関係の明示
PFDはプロセスの本質的な依存関係が明示されます。
例えばフローチャートではしばしば以下のような記述がされます。
しかしPFDで書くと、以下のように本来の成果物や作業の依存関係を細かく明示できることがあります。
こうした特徴は次のようなメリットを生みだします。
並列化可能なフローが割り出される。
本来の依存関係を明示することで、並列実施な作業が割り出せることがあります。例えば上図では「じゃがいもを切る」「スープを作る」「にんじんを加工して炒める」といった作業が並列可能なことが一目瞭然になります。
これにより、担当分けや納期短縮の検討を進められることがあります。
●成果物が明快になる
PFDではプロセスのインプットとアウトプットが「成果物」という形で具体的に明示されます。これはPFDを手軽にするのに役立っていますが、それ以外にも以下のようなメリットも生み出しています。