応用情報技術者 2010年 春期 午前2 問50
問題文
あるソフトウェア開発部門では、開発工数E (人月) と開発規模 L (キロ行)との関係が、E=5.2L^{0.98}で表される。L=10 としたときの生産性 (キロ行/人月)は、およそ幾らか。
選択肢
ア:0.2(正解)
イ:0.5
ウ:1.9
エ:5.2
🔒 解説は解答すると表示されます
生産性の算出【午前2解説】
正解の理由
与えられた工数モデルはべき乗則(冪乗則)であり、開発工数 は
です。規模 (キロ行)を代入すると
人月となります。
生産性は「キロ行/人月」で表すため、 を計算すると (キロ行/人月)となり、選択肢では ア の 0.2 が一致します。
生産性は「キロ行/人月」で表すため、 を計算すると (キロ行/人月)となり、選択肢では ア の 0.2 が一致します。
解法ステップ
- 工数の計算
に を代入:
。
ここで として近似できます。
、よって
。
したがって 人月。 - 生産性の計算
(キロ行/人月)。
(参考:手早く計算する場合は電卓や対数を用いると確実です。簡易的に と覚えておくとよいでしょう。)
選択肢別の誤答解説
- ア:0.2
上述の通り正しい。規模を工数で割ることで得られる値です。 - イ:0.5
もし生産性が 0.5 だとすると工数は 人月となり、与式からの工数約49.6人月と大きく異なります。計算途中で を 2 桁程度少なく見積もった(例: と誤解)場合に出やすい値です。 - ウ:1.9
これが正しいとすると工数は約 人月となり、係数 5.2 とほぼ等しいことから、 と誤認したケース( を 1 として計算)や、単位(キロ行)を取り違えたミスに対応します。 - エ:5.2
生産性が 5.2 だとすると工数は約 人月で、与式で係数の 5.2 をそのまま生産性と誤認したケースです。係数と生産性を混同すると出やすい誤りです。
よくある誤解
- 「指数関数的(exponential)」と呼ぶ誤り:
与式はべき乗則(power law)であり、形は 。指数関数は形が のように変数がべき乗の底になるものです。用語を混同するとモデルの挙動理解を誤ります。 - 生産性の定義の取り違え:
生産性は「出力(L)」÷「投入(E)」= L/E です。逆にして E/L を計算するとまったく別の値(人月/キロ行)となるため、式の向きに注意します。 - 単位の見落とし:
問題の L は「キロ行」で与えられているため、計算で行数とキロ行を混在させないようにします。
補足コラム
この種の工数モデル(例えば COCOMO のような経験式)はしばしばべき乗則で表され、係数と指数によりスケーリング特性が決まります。今回の指数 0.98 は 1 よりわずかに小さく、工数は規模に対してほぼ線形に増加しますが、理論的には生産性はサイズとともにわずかに改善します。実際のプロジェクトでは係数や指数は環境や開発プロセスに依存するため、経験データに基づく補正が重要です。
数学的に示すと生産性 は
よって規模が大きくなるほど に従ってゆっくり向上します(べき乗的変化)。
FAQ
Q1: べき乗則と指数関数の見分け方は?
A1: 変数が底(例 )になっていれば指数関数、変数が指数(累乗)になっていればべき乗則(例 )です。今回の式は後者です。
A1: 変数が底(例 )になっていれば指数関数、変数が指数(累乗)になっていればべき乗則(例 )です。今回の式は後者です。
Q2: 10^{0.98} を手計算で簡単に近似する方法は?
A2: と変形し、 として割る方法が扱いやすいです。
A2: と変形し、 として割る方法が扱いやすいです。
Q3: 単位が変わったらどうする?(例:L が行数で与えられた場合)
A3: 単位を合わせることが最重要です。式中の係数は L の単位に依存するため、問題での単位(ここではキロ行)に合わせて計算してください。
A3: 単位を合わせることが最重要です。式中の係数は L の単位に依存するため、問題での単位(ここではキロ行)に合わせて計算してください。
関連キーワード: べき乗則、工数モデル、生産性計算、キロ行、人月、COCOMO、スケーリング、近似計算

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

