BLOGTIMES
2013/04/08

コードクローンを含むプログラムは信頼性が高い?

  softwareengineering  paper  裁判 
このエントリーをはてなブックマークに追加

みずほ証券と東証の裁判で、ソフトウェア工学的な部分が争点になったようです。そのことが日経ITproの記事で特集されていますが、その記事中に東証がコードクローンを含むプログラムは信頼性が高いという研究を裁判に持ち出したという記載があったので、これにちょっと驚いたということを Twitter で呟いていたら、後輩が「検索したらそれっぽい研究があった」と教えてくれたので、忘れないうちにメモ。

緊急特集!みずほ証券-東証裁判の争点を洗い出す - [論点3]どんな開発手法を適用すべきか:ITpro

ソースコードの品質についても、みずほ証券は問題を指摘している。今回のバグがあったプログラム全体について、「ソースコードの著しい重複が見られるなど、エラーの潜在する率が極めて高い作り方をされており、品質が極めて低い」と主張。これに対して東証は「コードクローン(記述の重複)を含むプログラムは、含まないプログラムと比較して信頼性が高いことが定量的な研究で裏付けられている」と反論した。

本当にこれかという確信は持てませんが、奈良先端の門田先生が書かれた下記の2編の論文があります。
どちらも PDF がダウンロードできるので、興味がある人は是非。僕は今の仕事が片付いてから読む予定です。

ちょっと裁判の時の文脈が良くわかりませんが、信頼性が高い=コード量当たりの欠陥のが少ない(欠陥密度が低い)ということでしょうか。単純に考えれば「コードクローン=コピペ」なわけで、コピペするとコード量が水増しされます。このときにうまくバグがない部分を選んでコピペをすると、メンテナンス性を考慮しなければコード量当たりの欠陥密度は小さくなることは容易に想像がつきます。例えば for 文を使わずにコードを書くと、プログラム量(行数)が飛躍的に増えるので、メトリクス計測の仕組み上欠陥密度を小さく見せることができるはずです。ただ、そのようにしてできた for 文を含まないコードが果たして良いコードなのかと言われれば疑問が残ることは言うまでもありません。ちゃんと読んでいないので断言できませんが、これはソフトウェア工学の論文ですから、そのように結論づけられている可能性は低いでしょう。

加えて、欠陥が少なくできることと、結果的にリスクが少なくできることは別問題です。一般に「リスク = 発生確率 × 被害規模」であるので、確率を抑えられても残った欠陥が致命的でないと言うことはできません。今回のジェイコム事件のように残ったバグのインパクトが予想以上にデカかったということはよくあることです。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/5726
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン