オルタナティブ・ブログ > 森崎修司の「どうやってはかるの?」 >

計測できそうでできない多くのこと。エンピリカル(実証的)アプローチで。

コーディングルール違反と不具合数の関係を調べた研究

»

2008年に"Assessing the value of coding standards: An empirical study"というタイトルの論文がIEEE International Conference on Software Maintenance 2008に掲載されています。

論文のPDFはIEEEの電子図書館のページから入手できますが定期購読していたり、IEEE memberのアカウントが必要になります。本論文と同等の内容のテクニカルレポートが著者のサイトからも閲覧できます(こちら)。

MISRA Cで定義されているコーディング規約の逸脱と不具合数との関連の調査結果を報告しています。対象ソースコードは家電製品用の組込みプログラムのもの。開発中に構成管理システムに蓄積されたソースコード編集履歴からコーディング規約準拠と不具合数の関係を調べて報告しています。

MISRA CはC言語で記述されたソースコードのコーディング規約であり、MISRA(Motor Industry Software Reliability Association)が定義しています。組込み用、車載用ソースコードを主眼においています。

対象ソースコードにおいて、実際の不具合データと突き合わせることにより、不具合検出に役立つコーディング規約を明らかにしています。コーディングルールの準拠を徹底するだけで全体として信頼できるソフトウェアを作れるというわけではないことや適切なコーディングルールを選択することが信頼性の向上に寄与するようなルールを選択することによってメリットが得られると報告しています。

論文の図2(Figure 2)は上述の様子を端的に表わしています。PDFを参照いただくとわかるのですが、図の横軸はコーディングルール逸脱の密度(単位行数あたりの逸脱件数)を、縦軸は欠陥密度(単位行数あたりの不具合の件数)を示しています。1つの点が1モジュールに対応します。もしも、コーディングルールの逸脱数が多いとそれにあわせて欠陥密度も大きくなるという場合には、グラフの左下から右上を結ぶ直線上に点が集まります。(右上に上がっていれば必ずしも原点を通る直線上でなくても同じ傾向があると言えます)

全てのソースコードにおいてこの論文で紹介されている結果があてはまるわけではありません。ご自身のソースコードで、コーディング規約が遵守できていない部分と不具合との間に関連はありそうでしょうか。

Comment(0)