本文とサイドメニューへジャンプするためのナビゲーションスキップです。

スタートアップガイド

J-Net21 中小企業ビジネス支援サイト

  • J-Net21とは
  • スタートアップガイド
中小機構
  • メルマガ登録
  • RSS一覧
  • お問い合わせ

HOME > 製品、技術を開発する > 創業者・中小企業ベンダーのためのソフトウェア・ジャストインタイム

創業者・中小企業ベンダーのためのソフトウェア・ジャストインタイム


根本原因が何かを突きとめる

4. プロダクトとプロセスのエンジニアリングの欠陥

図2-5「ソフトウェア開発プロセスとバグ」は、一般的なソフトウェア開発プロジェクトの工程(プロセス)を表したものである。ソフトウェアに対する要求を、要求仕様書、システム仕様書、等々に変換しながら、最終的にソフトウェア製品を生み出す一連のプロセスを示している。

このプロセスでは、様々な中間成果物(仕様書/設計書等のドキュメント、(ソース)プログラム)が作成される。それらは、相互に複雑に関連していて、一部を直せば、別な中間成果物に影響を及ぼすことが避けられないものとして作成されている。しかも、一部を変更すればどこに影響するのか、その範囲がわからないように作成されている(ことが多い)。影響がないかどうかはテストをしてみないとわからない。しかし、あらゆることをテストすることは不可能とされている。

ソフトウェア開発プロセスとバグ図2-5 ソフトウェア開発プロセスとバグ

同図を見てもらうと分かるように、いわゆる下流工程でテストが行われ、ソフトウェア(プログラム)に欠陥(バグ/不具合)が見つかり、「バグ票」が発行される。バグ票は、欠陥を指摘したものである。したがって、ソフトウェアを修正しなければならない。

欠陥には、単に計算ミスをしている単純なものから、データを与えても原因不明で答えが返って来ないような複雑なものまで様々である。ともあれ、いずれも欠陥である。テスト技術者はこの欠陥を発見し報告してくる。

この欠陥の原因には、(1)仕様書に記載されているとおりにソフトウェア開発者がプログラムを作成していないもの、したがって単に(ソース)プログラムを修正すれば直せるもの(図の「バグ票A」)もあれば、(2)仕様書の記載どおりにプログラムを作成したが、もともと上流の「システム仕様書」等に欠陥があった場合(図の「バグ票B、C」)や、ソフトウェアに対する要求を正しく聞き取れていなかったもの(図の「バグ票D、E」)まで様々である。

結果的に、現在のソフトウェア開発は、「要求」をソフトウェア製品(プロダクト)に反映させる仕組みも、その過程(プロセス)で後工程に良品を届けるプロセスとしても完全なものではない。また、後工程で検出された欠陥をその発生原因である「要求」の明確化や「仕様書」の正確化を行い、その後プログラムに正しく反映させることなくプログラムだけに変更を加え、文書化されている要求や仕様書と乖離したまま、ソフトウェアを提供することも多い。

このように、ソフトウェアエンジニアリングは全体として欠陥を内包している。そして、欠陥が露呈するたびに大慌てすることを繰り返しているのである。

どうしてこのような事態から抜本的に脱却できないのか。我々のソフトウェア開発の仕組みでは、ソフトウェアは人が作るものであり、そして人は過誤を犯すものであり、すなわち欠陥(バグ)は出るものと考えられている。他方、欠陥は出してはならないものとして理解されている。どちらも当り前のことと理解されている。

この間を埋めるために、ソフトウェアの出荷までに十分なテストを実施することが要求されている。しかし、すべてのテストを実施することは、理論的にも、コスト的にも、また期間的にも不可能とされている(このため、実際に出荷されているソフトウェアは、一般に欠陥を含んでいる可能性があるが、通常の使用には差しさわりのない程度に品質が確保されている(はずな)のである)。

では、どのように実用に耐えるかどうかを判定するのであろうか。そのためには、ソフトウェアの実際の利用を想定したテスト項目をできるだけ多く想定し、実際にテストするのである。そして、もし欠陥があれば、その原因を調べ、ソフトウェアに修正を加え、再度テストを繰り返し、今度は欠陥が出ないことを確認する作業を延々と繰り返すのである。この繰り返しをもってしても、欠陥を完全になくすることは不可能とされ、何がしかの欠陥が残る。

このように、プロダクトにもプロセスにも欠陥が内在している。一体どうすれば、要求どおり/設計どおりのソフトウェアが完成するのであろうか。また、当初、想定した利用法以外のことも起こることが多い。これでは、治めどころがないではないか。

前の記事へ次の記事へ


このコンテンツの著作権は、匠システムアーキテクツ(株)に帰属します。著作権者の承諾なしに、無断で転用することはできません。

このページの先頭へ