ソフトウェアプロジェクトシミュレータのためのパラメータ値の設定
水野 修，亀山 忠秀，楠本 真二，菊野 亨
大阪大学 大学院基礎工学研究科 情報数理系専攻〒 560-8531 大阪府豊中市待兼山町 1-3
Tel: 06-850-6567

Fax: 06-850-6569

E-mail: o-mizuno@ics.es.osaka-u.ac.jp

要旨
本研究では，一般化確率ペトリネット (GSPN) に基
づくソフトウェア開発プロジェクトシミュレータのたシミュレータでは開発プロセスの設計，コーディング，レビュー，テスト，ディバッグの各作業を GSPNを用いてモデル化した．GSPN 上のトランジションが作業者の行動 (作業者間のコミュニケーション，思考，めのパラメータ値の設定法の提案と，その適用実験に記述) や作業中に発生する事象 (フォールトの混入) について述べる．

対応している．シミュレータでは作業量という概念をプロジェクトシミュレータにおけるトランジション導入して，発生する動的な事象をモデル上で再現できの発火レートを決めるパラメータは，プロジェクト毎るようにしている．作業間に存在する実行上の前後関に一般には異なる作業環境など を反映するためのも係をコントロールフローを用いて記述し，各作業に割のである．これまでのシミュレーションでは特定のプり当てる作業者や，入力となるプロダクト，消費すべロジェクトに特化したパラメータ値を他の類似のプロき作業量などを与えると 1 つのプロジェクトの記述がジェクトにも使用してきた．シミュレータ適用を一般完成する．

化するにはこのパラメータ値の設定を自動化する必要があった．

このソフトウェアプロジェクトシミュレータは既にここでは設計，コーディング，レビュー，テスト，ディUNIX 上で実装しており，ユーザインターフェイスには GUI を用いて直観的な使用が可能となるようにしバッグの各作業モデルの発火レートの定義中に含まれている．これまでにこのシミュレータを用いた幾つかるパラメータ Kcm ，Kth ，Kwr の値と混入フォールトの適用実験を行い，品質予測への適用可能性について数の定義中に含まれるパラメータ Kin の値を各プロ発表してきている [9][10]．

ジェクト毎に求める手順を提案する．更に，その適用可能性を確認するために行ったシミュレーション実験について述べる．なお，本実験では企業から提供を受けた実際の開発プロジェクトのデータを利用した．実験結果より，提案するパラメータ値の設定法の有効性が限定的ではあるが確認できた．

1 研究の背景本シミュレータを動かすには，各作業モデルの発火レートの定義中に含まれるパラメータと混入フォールト数の定義中に含まれるパラメータの値の設定を行わなければならない．パラメータは相互に関連しているため複数のパラメータの値を同時に設定する必要があり，その作業は非常に難しい．これまでの適用実験[7][8][9][10] では，あるプロジェクトに特化したパラメータの値を他の類似のプロジェクトにも利用してきた．これでも不都合を生じなかったのは，同一組織内

我々はこれまでに一般化確率ペトリネット (GSPN)[1]

では作業者の特性やプロジェクトの進行状況はそれほに基づいたソフトウェア開発プロジェクトシミュレー

ど 変化しないためであると考えられる．しかし，特性タの開発を行ってきた [7][8]．このシミュレータの開発の異なるプロジェクトに対してもプロジェクトシミュに当たっては，開発現場で収集可能な (あるいは既にレータの適用を可能とするためには，与えられたプロ利用されている) データをモデル上のパラメータとしジェクトに対してパラメータの値を求める一般的な手て可能な限り取り入れることを心がけた．

順を確立することが必要となる．

本研究では，シミュレータ実行のために必要となるトークンの属性

ペトリネットモデル中のパラメータの値を各プロジェ

s プロダクトサイズ
f フォールト数
w 達成作業量

クト毎に設定する方法を提案する．具体的には，設計，コーディング，レビューテスト，ディバッグの各作業モt 1 rcm

デルの発火レートの定義中に含まれるパラメータ Kcm ，Kth，Kwr の値と混入フォールト数の定義中に含まれrt 2 thるパラメータ Kin の値を各プロジェクト毎に求める手順を与える．更に，その適用可能性を確認するために

t 3 rwr

P2

P1行ったシミュレーション実験についても述べる．なお
本実験ではある企業から提供を受けた 2 組の実際の開トランジション

発プロジェクト P R1 ，P R2 のデータを利用した．そ発火実行関数t1-の実験結果より，提案するパラメータの設定方法の有

t2

t3

s=s+1
w=w+1
f=f+1 (pin )効性が限定的ではあるが確認できたものと考えている．

2 シミュレータの概要
まず初めに，我々が開発している一般化確率ペトリ

図 1: 設計作業の記述例
るための記述に対応しており，発火レートとしてそれぞれ rcm ; rth ; rwr を与えている．

ネットに基づくソフトウェアプロジェクトシミュレー
タについて述べる．

2.1

作業モデル

ここでは各作業をモデル化する方法について説明する．作業モデルは作業の種類毎に定義し，その記述に2.2発火レート とフォールト 混入率

発火レートは一般に次のような関数として表す．
コミュニケーションレート
rcm

は拡張 GSPN を用いる．作業の種類として設計，コーディング，レビュー，テスト，ディバッグの 5 つを考える．

思考レート
rth

図 1は拡張 GSPN で記述した設計作業である．この記述ではトークンの属性としてプロダクトサイズ s，フォールト数 f ，達成作業量 w の 3 つを持たせている．

= fcm (作業者数，各作業者の経験レベル，入力プロダクトの完成度)= fth (作業者数，各作業者の経験レベル)

記述レート
rwr

= fwr (作業者数，各作業者の経験レベル)

各属性の意味は次の通りである．(1) プロダクトサイ

これらの関数の利用により作業者数や経験レベル，ズ s は作業により生成されたプロダクトのサイズを，あるいは，入力プロダクトの完成度に応じて，コミュ(2) フォールト数 f は作業中に作り込まれたり，取り除かれたフォールトの個数を，(3) 達成作業量 w はそに設定することができるの時点までに達成された作業量を，それぞれ表す．
図 1中のトランジションはすべて発火に時間を要す

ニケーションの発生頻度，思考や記述の難易度を動的
また，思考や記述のトランジションが発火する毎に達成作業量 w やプロダクトサイズ s が増加するといっる時間トランジション (図中の太線) である．例えば，たトークンの属性値の変化は図 1の記述にもある様に，トランジション t1 の発火レートは rcm で与えられて各トランジションの発火実行関数として記述される．

おり，これはトランジション t1 の発火遅延時間が平均1=rcm の指数分布に従うことを意味する [1]．これら

なお，設計作業におけるフォールトの混入 (すなわち，フォールト数 f の変化) はフォールト混入率 pinのトランジションには思考，記述，会話といった作業による確率的な事象として取り扱う．このフォールト者の振る舞い，あるいは，テスト中での故障の発生と混入率 pin は一般に次のような関数として表す．

いった作業中の事象を対応させる．一方，プレースは振る舞いや事象が起きるまでの待ち状態を表している．
図 1に 示し た 設計 作 業の 場 合 ，ト ラン ジ ションpin= fin (作業者数，各作業者の経験レベル，予定終了期日; 入力プロダクトの完成度)

はそれぞれ作業者間のコミュニケーション，この関数の利用により，デッド ラインや作業者の経問題の解決に必要な思考，ドキュメントとして記録す験がフォールトの混入率に与える影響も考慮すること

t1 ; t2 ; t3

ができる．例えば，図 1 の設計作業ではトークンが P1にあるとき，２つのトランジション t1 (コミュニケーションを表す) と t2 (思考を表す) が発火可能である．t1の発火によって時間は経過するがプロダクトや作業量の達成には何の影響もなく，トークンは P1 に戻る．次に，t2 が発火すると発火実行関数によって達成作業量wが 1 増加するとともにトークンは P2 に移る．トークンが P2 にあるときは t3 だけが発火可能である．この t3 (記述を表す) が発火するとプロダクトサイズ s が増加し，フォールト混入率 pin の値によってフォールト数 f の増加が確率的に起こる．このときトークンはP1に移る．

2.3

パラメータ

K ,K ,K ,Kcm

thwr

3.1

プロジェクトの各作業毎にそれが実際に行われた状況を忠実に再現した動きを GSPN がするように，パラメータを設定する．具体的には，実際に完了しているプロジェクト P R のデータから得られる作業者数，作業時間などを作業モデルに与え，シミュレーションを行う．シミュレーションの結果として求まる工数，フォールト数が実際のプロジェクト P R の実績値に等しくなるようにパラメータの値を設定する．
パラメータ値の設定手順の概要は，次のとおりである．

S1. 利用するプロジェクト P R とパラメータを定めるべき作業モデルを決める．

in

今回のシミュレータの開発では fcm ，fth ，fwr ，fin

設定手順の概要

S2. プロジェクト P R の実績データに基づいて，作業のそれぞれの関数を次のように定義している．以下でに携わる作業者の人数，割り当てられる作業量，は M は作業者数，L は作業者の経験レベルの和，R入力プロダクトの完成度を決める．

は入力プロダクトの完成度，D は予定終了期日までのS3. 定めるべきパラメータの初期値を定める．

日数である．なお，Kcm , Kth , Kwr , Kin はパラメー
タであって一般には作業毎に異なる値が与えられる．
rcm

rthrwr

= Kcm 2= Kth 2= Kwr 2pin

LM2L
M= Kin 2MLM

求まる工数，期間，残存フォールト数の値を収集22する．

R= Kth 2 L

S5. S4 で得られた値とプロジェクト P R における実績の値を比較する．その差がある範囲内に入っていたら，設定を完了する．

2M= Kwr 2 L

2 2 2M

L

S4. シミュレーションを 100 回行い，その結果として

RDM

この定式化について説明する．コミュニケーション
レート rcm は作業者数の 2 乗に比例し，作業者の経験

S6. 比較結果に基づいてパラメータの値を更新して，次は再び S4 へ．
この手続きによって，ある 1 つのプロジェクトのある作業について，その作業を正確にシミュレートする
発火レートのパラメータ値が求まる．

レベルと入力プロダクトの完成度に反比例する．また，最終的には，個々のプロジェクトごとに設定された思考レート rth と記述レート rwr は共に作業者の経験パラメータの値から，同種のプロジェクトに対するパレベルに比例する．さらに，混入フォールト率 pin はラメータの代表値を算出することも考えられる．

作業者数に比例し，各作業者の経験レベル，入力プロダクトの完成度，締切までの日数に反比例する．この定式化は文献 [3][4][11] や，作業者へのインタビューなどに基づいて行っている．

3 パラメータ値の設定

3.2

設定手順の詳細 (設計作業)

ここでは，設計作業を例としてパラメータ値の設定手順の詳細について述べる．設計作業で設定するパラメータは Kcm ，Kth ，Kwr ，Kin であり，それぞれ，コミュニケーションレート，思考レート，記述レート，フォールトの混入率のパラメータを表している．

2.3節で説明した発火レートの式に含まれるパラメー

パラメータ Kcm ，Kth ，Kwr の値は工数や期間に影タの Kcm ，Kth ，Kwr 等を発火レートパラメータと呼響を与える．例えば，設計作業においてコミュニケーぶことにする． ここでは，この発火レートパラメータ

ションの発生頻度が高くなれば，時間が浪費される可の値を設定する方法について述べる．

能性も高くなると予想される．また，思考の発生頻度これらを考慮にいれて，戦略 S をさらに次のようにが高くなれば，与えられた作業量が早く消費されるという解釈がなされる．つまり，Kcm の値を増加させれば工数や期間は長くなる．一方，Kth ，Kwr の値が増加すれば工数や期間が短くなる．従って，これらの 3具体化する．
設定手順 パラメータ Kcm の値を固定し，パラメータKthつのパラメータの値は相互に依存するため同時に設定と Kwr を動かして調べて行く．なお，Kcm の初期値を Kth や Kwr のものに比べて小さな値にしなくてはならない．

設定しておく．まず求まった工数の値が P R での今，次のような戦略 S が考えられる．

実績値に最も近いときの Kth と Kwr の値の組を戦略 S: パラメータ Kcm ，Kth ，Kwr の内の 2 つにつ探す．次に Kcm の値をごく小さい幅で動かして，いて値を固定し，残りの 1 つのパラメータの値を上述の探索を繰り返す．最終的に求まった工数の動かす．

値が実績値に最も近いときの Kcm ，Kth ，Kwr のこの戦略 S の下で，設定手順 S4, S5, S6 を改訂

値を解とする．

する．

S4. パラメータの値の各組合せに対し，工数の値に注目してシミュレーションを 100 回行う．
S5. シミュレーションによる工数の値と P R での実績の値の差があらかじめ設定した範囲内に入ったときのパラメータの値を求める．

S6. S5 で求まった組み合せに対し (固定していた) パラメータの値を動かして，再び S4 へ．
しかし ，この方法では時間がかかりすぎてしまう．
そこで，3 つのパラメータ Kcm ，Kth ，Kwr の工数，期間との関連性を考慮にいれて，計算時間を減らす次のような工夫をする．

IM1 Kcm ，Kth ，Kwr の中の 1 つだけその値を増加 (または減少) させると，シミュレーションから求まる工数の値は単調に増加 (または減少) することが分かっている．そこで，シミュレーションから3.3

ツールの開発前節で説明した設定手順に基づいて，パラメータの値を求めるツールを開発した．開発には，UNIX 上のTcl/Tk を使用した．この理由は，パラメータの値を入力するときに GUI の使用が便利であること，シミュレータ自体がやはり Tcl/Tk を用いて作られているので，親和性が良くなること，などである．

4

提案法の適用実験
開発したパラメータ値計算のためのツールを用いて，実際のプロジェクトデータへの適用実験を行う．実験
では，プロジェクトデータから人数，作業量などを抽出して設定手順 S1 から S6 を適用してパラメータ値を決定する．引き続いて，開発プロセスの設計部分 (設計作業とコーディング ) に対するシミュレーションをして，工数と残存フォールト数の評価を行う．

求まった工数の値と実績値との差があらかじめ設定した範囲内に入れば，それ以降は調べる必要がない．

4.1

プロジェクトPR1，PR2実験ではある企業から提供を受けた実際のソフト

IM2 単純な方法で探すだけでは，いくつかの局所解がウェア開発プロジェクトのデータを使用する [6][12]．

採用されてしまうことがある．こうした局所解をこれらのプロジェクトは次に挙げるような特徴を持っ避ける工夫も必要となる．ている．

{ Kcm の値の増加に伴って，rcm は作業者数に非常に敏感に反応するようになるし，作業結果も大きな影響を受ける．従って Kcm の値は他のパラメータ Kth ，Kwr の値に比べて小さくする．また Kcm の値の決定に当たっては非常に小さな変動幅を用いる．
{ Kth と Kwr の値を増加しても，rth と rwr は作業者数などにはあまり敏感に反応しないし，作業結果も余り大きな影響は受けない．

 プロジェクトは機器組込み型ソフトウェアの開発である．

 これらのプロジェクトはほぼ同種 (同じ業務内容)のプロジェクトである．

 同種のプロジェクトの間では，ほぼ同じ開発プロ
セス (図 2) が採用されている．

今回の実験では，2 つのプロジェクト P R1 ，P R2 のデータを使用する．

CD
CDR

FDSD

FDR

MD

SDR

MDR

PG
PGR

図 2: 設計工程のプロセス

4.20.05) とする．また，Kin は 1.0 以上の値をとるので，初期値を 1.0 とする．

パラメータの決定開発したツールを利用して，プロジェクト P R1 について各作業モデルの全てのパラメータ値の計算を行う．
ここではプロジェクト P R1 のシステム設計 (CD) 作

P4(変動幅の設定) パラメータ Kcm , Kth , Kwr の値を少しずつ変動させて工数の値を目標値に近づけ業を例にとって，パラメータ Kcm ，Kth ，Kwr ，Kinていく．この変動の幅は工数に与える影響を考慮を求めた様子を詳しく説明する．まず 3 つのパラメーして決める．Kcm は大きな影響を及ぼすことがタ Kcm ，Kth ，Kwr が関連する工数を実測値に近付

け，次にこれら 3 つのパラメータの値を利用して残存予想されるので，その変動幅は 0.02 刻みとする．

それ以外については 0.05 刻みにする．なお，Kin

フォールト数に関するパラメータ Kin の値を設定する．

については，その値だけに依存してフォールト数が変化するので，2 分探索を用いる．

パラメータ Kcm ，Kth ，Kwr ，Kin の値の設定に関して，次の P1{P6 の基本作業を行った．これらの作業の妥当性の根拠はプロジェクト P R1 の実績値，こP5(最大値の設定) 初期値を決めたのと同様の理由でパラメータ Kcm , Kth , Kwr の最大値はすべて 0.30

れまでの経験 [8][10] などにある．

P1(作業特性の抽出) P R1 のシステム設計 (CD) 作業の記録より，この作業は作業者 4 人によって行わとする．また，Kin の最大値は 100 とする．

P6(工数に与える影響の分析) パラメータ Kcm の値を増加させると工数は増加するのに対し ，パラれていた．そして各作業者の作業時間の集計結果

メータ Kth ，Kwr の値を増加させると工数は減少

より，消費された作業量が 122 時間と分かる1 ．まする．

た，作業にかかった工数は 17.4 人日であった．レ

ビューとディバッグの結果から，この作業中に 23個のフォールトが作り込まれていた．
P2(目標値と許容範囲の設定) P1 で示した実際のデータより，シミュレートされるシステム設計 (CD)
作業における工数の目標値を 17.4 人日とする. また目標値の65% 以内に入るようなパラメータの値を求めることにする．
P3(初期値の設定) これまでの使用経験よりパラメー

タ Kcm , Kth , Kwr の値はいずれも 0 より大きく0.3 以下である．また，前にも述べたように，Kcmは他の Kth , Kwr よりも小さな値が適している．これらより初期値を (Kcm , Kth , Kwr )=(0.02, 0.05,
1 作業量はシミュレーションを実行する時に作業モデルに与える初期値となり，例えば 122 時間の作業量が消費された時に作業モデルの実行が終了する．

戦略

S に基づいた設定手順をこれらの基本作業を踏まえて具体的に定め，パラメータ Kcm ，Kth ，Kwr ，Kinの値を求めた．ここでは具体例を用いて設定手順の概要を説明する．実際にパラメータ Kcm ，Kth ，Kwrの値が求まる過程を表 1に，Kin の値が求まる過程を表 2に示す．

まず，表 1について説明する．初期値 (Kcm , Kth ,Kwr)=(0.02, 0.05, 0.05) で実行した時の工数は 103.26となり，目標値の 17.4 からかけ離れている (表 1の (1))．
そこで，工数を減らすために Kwr の値を 0.05 刻みで増加させる．すると，工数の値は減少している．
Kwr

を最大値の 0.30 に増加させても工数は 54.18であり (表 1の (2))，工数の目標値には遠い．そこで，今度は Kth の値を 0.05 だけ増加させて 0.10 とする．

この状況 (つまり，Kcm = 0:02，Kth = 0:10) で再びKwrの値を 0.05 から 0.30 まで変動させる．

これを繰り返して行くと，(Kcm , Kth , Kwr )=(0.02,0.20, 0.30) の時に工数が 16.67 となる (表 1の (3))．この時の値は工数の目標値の 65% 以内という許容範囲に入っている．このパラメータ値の組は解の候補となり得るので保存する．表 1中で太字で表した 5ヶ所がそうした解の候補である．

この実験では試行の回数を減らすために幾つかの工表 1: パラメータの計算過程

Kcm Kth Kwr

夫をしている．例えば，表 1の (5) では，Kwr = 0:25

H(l)の時に工数が 15.7 となっている．これ以後は Kwr の

Wl = 17.4(1)値を増加させても工数は減るだけなので Kwr = 0:30

0.02

0.05

0.05

103.26

0.02

0.05

0.10

71.26

0.02

0.05

0.15

62.97

0.02

0.05

0.2057.36

また，表 1の (6) で Kcm = 0:04 と増加させた後，そ

0.02

0.05

0.25

56.24

れまでに工数の目標値を上回ってしまった Kth と Kwr

0.02

0.05

0.30

54.18

0.02

0.10

0.05

64.79

0.02

0.10

0.10

42.92

0.02

0.10

0.15

35.18

0.02

0.10

0.20

32.57

0.02

0.10

0.25

29.81

0.02

0.10

0.3029.13)=(0.02, 0.25, 0.20) のときである (表 1の (4))．そ
こでこの値を P R1 のシステム設計 (CD) 作業におけ

0.020.15

0.05

53.80

るパラメータの設定値として採用する．

0.02

0.15

0.10

32.37

0.02

0.15

0.15

26.46

0.02

0.15

0.2023.58

パラメータ Kcm , Kth , Kwr の値を用いて，パラメー

0.02

0.15

0.25

22.19

0.02

0.15

0.30

21.20

タ Kin の値の設定を行う．Kin によるフォールト数の0.02

0.20

0.0548.70

目標値は 23 として，2 分探索法を用いて Kin の値を0.02

0.20

0.1029.50

求める．探索を終了させるのは，フォールト数が目標

0.02

0.20

0.15

22.98

0.02

0.20

0.20

20.09

値の 5%以内に入った時とする．表 2に示す計算を経とする組についてのシミュレーションを省略している．

(2)の値の組についても全て省略している．
この結果，工数の目標値の65% 以内に入った 5 個のパラメータ値の組で最も目標値に近いのは (Kcm , Kth ,Kwr

次に，表 2について説明する．表 1の計算で得られたて，最終的に Kin =18.75 が得られた．

0.02

0.20

0.25

18.34

0.02

0.20

0.30

16.67

0.02

0.25

0.05

45.59

0.02

0.25

0.10

26.19

0.02

0.25

0.15

20.30

0.02

0.25

0.20

17.41

(4)

0.02

0.25

0.25

15.70

(5)

0.02

0.30

0.05

42.71

0.02

0.30

0.10

25.01

0.02

0.30

0.15

19.01

0.02

0.30

0.20

15.75

0.040.20

0.30

19.26

0.04

0.25

0.25

17.92

0.04

0.25

0.30

16.82

0.04

0.30

0.20

18.20

0.04

0.30

0.25

16.36

0.06

0.25

0.30

19.01

0.06

0.30

0.25

19.17

0.06

0.30

0.30

16.42

0.08

0.25

0.30

19.83

(3)

なお，表 2には参考のためにその時点での工数の値も記してある．初めに考察した通り，工数の値は Kinの影響をほとんど受けていない．
表 2: Kin の計算過程

Kin(6)

ctH[gH(Ql)

Wl = 23

1.00

0.00

17.63

100.00130.23

17.43

50.00

63.76

17.77

25.00

30.26

17.70

12.50

15.52

17.94

18.75

23.75

17.80

こうしてプロジェクト P R1 の各作業 CD, FD, SD,MD, PG ごとに得られたパラメータの値を表 3, 4に示す．

4.3

実験結果の考察

この実験を行って新たに明らかになったことを以下にまとめる．

{ 個々の作業モデル毎に (つまり，局所的に ) 設定

表 3: 各設計作業毎のパラメータしたパラメータ値を利用してプロセス全体を作り

Kcm

KthKwr

Kin

上げた時にうまく動くか．つまり，最終プロダク

0.25
0.30
0.30
0.20

0.20
0.25
0.20
0.20

18.75
12.50
9.38
33.75

トの品質とプロジェクトの工数の総和で評価してMD

0.02
0.04
0.04
0.10

平均値

0.05

0.263

0.215

18.6

ここでは，プロジェクト P R1 から得られたパラメー

CDFDSDも満足できるシミュレーション結果を保証できるのか．

タ値をプロジェクト P R2 に適用してコーディング作業終了時までのプロセス (図 2の CD, CDR, FD, FDR,表 4: コーディング作業のパラメータ()

C oding P G

SD, SDR, MD, MDR, PG, PGR の部分) をシミュレー

トして，その時点での工数と残存フォールト数を実績

Kcm

KthKwr

Kin

値と比較する．なお，ここで適用するパラメータの値

0.04

0.20

0.1543.75

は P R1 の個々の設計作業毎に得られたパラメータ値を平均したもの (表 3) を P R2 の各設計作業に与え，コーディング作業については表 4のものをそのまま P R2 に(1) 工数への影響適用する．
なお，今回のパラメータ値の設定では，レビュー作業が増加した時に工数が増加する割合が大きは議論の対象としなかった．しかし，シミュレーションいことに考慮した調整をしてきた．従って，Kthにおいてレビューを外すことができないため，レビューと Kwr の影響については，単にこれらの値が増作業のパラメータは従来のもの [7][8][9][10] を仮に使

Kcm加すれば工数の減少が起きる，というものであっ用することにした．

た．しかし，実際には Kth と Kwr ではその影響の大きさに著しい差が見られた．つまり，Kth を増加させた時の工数の減少の割合は Kwr を増加させた時のそれよりも相当に大きくなっていた．

(2) フォールト数への影響
フォールト数は，パラメータ Kin の値だけでな
く，パラメータ Kwr の値からも影響を受けることが分かった．その原因は，作業モデル上では記述作業に対応するトランジションが発火した時にフォールトの混入も確率的に起こるとしているためである．従って，総フォールト数はフォールト5.2

分析

表 5にプロジェクト P R2 について行ったシミュレーション結果を示す．ここで，残存フォールト数とは，設計作業が終了した時点でプロダクト中に含まれていたと考えられるフォールト数のことである．その実績値は以降のデバッグ工程と受入テストにおいて発見された数の合計を示している．
表 5: シミュレーション結果の混入率 pin だけでなく，発火レート rwr にも関わることに留意したパラメータ値の設定手順の開発が必要である．

5 求めたパラメータ値の評価
5.1

評価実験

実績値
シミュレーション

工数 (人日)残存フォールト数

41.7
38.6

1717.9

表 5にまとめたシミュレーション結果について考察する．結果からは工数と残存フォールト数のどちらについても非常に実績値に近い値を得ることができたと

前節で得られたパラメータの値を用いて，プロジェ言える．このことから，提案する方法による設計工程

クト全体 (つまり，図 2に示すプロセス全体) のシミュとコーディング工程のパラメータの決定がソフトウェレーション実験を行う．ここでは以下を確認すること

アプロダクトの品質とコストの予測に有効であることを実験の目的とする．

が確認できた．

6 まとめ本研究では，ソフトウェア開発プロジェクトシミュレータのためのパラメータ値の設定手順を提案した．
提案した手順で求めたパラメータ値を用いた適用実験を行い，この手法の有効性についても確認した．
今後の課題としては以下のことが挙げられる．

(1) レビュー作業モデルに含まれる発火レートパラメータの値の設定法について検討すること．

(2) 今回の実験中に判明したパラメータの特性を考慮して提案方法を改良すること (特に，フォールト数への影響については早急に対処する必要がある)．
(3) 設計工程以外の工程にも提案法を適用して最適なパラメータの値を求めてみること．

謝辞
本研究において利用しているデータの提供に関して多大のご協力を頂いたオムロン株式会社 坂本啓司氏，高木徳生氏に深謝致します．

参考文献[1] 青山幹雄，内平直志，平石邦彦: \ペトリネットの理論と実践," 朝倉書店 (1995).
[2] L. Briand, K. E. Eman, O. Laitenberger and T.
Fussbroich: \Using simulation to build inspection eciency benchmarks for development
projects," Proc. of the 20th ICSE, pp.340{349(1998).
[3] F. P. Brooks Jr.: \The Mythical Man-Month,"
Addison Wesley (1975).
[4] T. Furuyama, Y. Arai and K. Iio: \Fault generation model and mental stress e ect analysis," The Journal of Systems and Software,vol.26, pp.31{42 (1994).
[5] N. Hanakawa, S. Morisaki and K. Matsumoto: \A learning curve based simulation modelfor software development," Proc. of the 20thICSE, pp.350{359 (1998).
[6] 岸田孝一監修 (アルフォンゾ・フェジッタ，アレキサンダー・ウルフ編) : \ソフトウェアプロセ
スのトレンド ," 海文堂 (1997).

[7] S. Kusumoto, O. Mizuno, Y. Hirayama, T.
Kikuno, Y. Takagi and K. Sakamoto: \A
new project simulator based on generalized stochastic Petri-net," Proc. of the 19th ICSE,
pp.293{303 (1997).
[8] 水野修，平山裕司，楠本真二，菊野亨，高木徳生，坂本啓司: \ソフトウェア開発プロセスの進捗予測システムの開発," ソフトウェアシンポジ
ウム'96 予稿集, pp.90{98 (1996).
[9] 水野修，楠本真二，菊野亨 : \ソフトウェア開発プロセスの並行実行に対する拡張一般化確率
ネットに基づく評価," 信学技報 SS97{5, pp.33{

42 (1997).

[10] O. Mizuno, S. Kusumoto, T. Kikuno, Y. Takagi and K. Sakamoto: \Estimating the numberof faults using simulator based on generalized
stochastic Petri-net," Proc. of the Sixth AsianTest Symposium, pp.269{274 (1997).
[11] H. Sackman, W. J. Erickson and E. E. Grant:\Exploratory experimental studies comparing
online and oine programming performance,"
Commun. ACM, vol.11, no.1, pp.3{11 (1968).
[12] T. Tanaka, K. Sakamoto, S. Kusumoto and T.
Kikuno: \Improvement of software process byprocess visualization and bene t estimation,"
Proc. of the 17th ICSE, pp.123{132 (1995).