ソフトウェア危機

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ソフトウェア危機(ソフトウェアきき、Software Crisis)とは、ソフトウェア工学がまだ十分に確立していなかった頃、よく使われた言葉である[1]。この言葉は、コンピュータの急激な高性能化によってコンピュータ上のシステムが扱う問題が益々複雑化することによる影響を表したものである。基本的にソフトウェア危機は、正しく、可読性が高く、検証可能なコンピュータプログラムを書くことの困難さから発した考え方である。ソフトウェア危機の根本は、複雑性と予測と変化である。

概要[編集]

ソフトウェア危機が叫ばれ始めたのは1960年代末のころであった。"software crisis" という用語は、1968年にドイツのガルミッシュ=パルテンキルヒェンで開催された第1回NATOソフトウェア工学会議で参加者らが生み出した[2]。1972年、エドガー・ダイクストラチューリング賞講演で以下のように述べている[3]

(ソフトウェア危機の主たる原因は)マシンがますます強力になってきたことだ! はっきり言ってしまえば、マシンさえなければプログラミングには何の問題もない。貧弱なコンピュータが数台あるだけだったなら、プログラミングは穏やかな問題になる。しかし現在の我々は強大なコンピュータを所有しているため、プログラミングも同様に強大な問題となっているのだ。

Edsger Dijkstra、The Humble Programmer (EWD340)、Communications of the ACM

ソフトウェア危機の原因は、ソフトウェア開発工程の全体としての複雑性と専門分野としてのソフトウェア工学の相対的な未熟さと密接に関連していた。ソフトウェア危機は以下のような形で実際の開発プロジェクトに現れた。

  • 予算を超過してしまったプロジェクト
  • 予定期間を超過してしまったプロジェクト
  • 品質の低いソフトウェア
  • 要求仕様を満たさないソフトウェア
  • 管理不能状態のプロジェクトと、保守困難となったコード

相反する要求は常にソフトウェアの開発過程を妨げてきた。例えば、ユーザーは多大な機能を要求するが、顧客はソフトウェアに支払う対価と開発期間をなるべく最小にしたがることが多い。

ソフトウェア危機の解決手法[編集]

ソフトウェア危機は(少なくとも一部は)様々な手法や方法論の開発によって解決されてきつつある。

しかしフレデリック・ブルックスが『銀の弾などない』で記している通り、「本質的な複雑性」に対して生産性を向上させるような技法は存在しないと言われている。

組み込みシステムにおけるソフトウェア危機[編集]

近年では、組み込みシステムにおけるソフトウェア関連に起因する事故やトラブルが増加し、社会的に大きな影響を与えることも増えており、こちらもソフトウェア危機と呼ばれる[4][5]。原因としては次のような物が挙げられている。

  • 組み込みシステムには、リアルタイム性や対象ハードウェアに対する理解など、広く高度なスキルが求められるが、コンピューター系職種によく見られる厳しい労働条件(詳細はデスマーチIT業界離れデジタル土方を参照)のため離職者が多く、ベテラン不在で必要なスキルレベルまで上がらない。
  • 携帯電話デジタル家電に代表されるような、ソフトウェア規模の飛躍的増大に対して、ハードウェアリソースの制約やリアルタイム性が求められること(詳細は組み込みシステムを参照)からIT系同様の手法が通用しない。
  • 対象製品の開発サイクルの短期化
  • 理科離れ秋葉原など電気街や模型店の減少や家電機器のブラックボックス化で、電子工作やハードウェア関連に興味を持つ機会が少なくなっている。

対策として次のようなことが行われている。

  • Microsoft Windows CEや組み込み用にリアルタイム性を強化したLinuxなどのIT系に近いOSを搭載し、IT系での開発手法を導入し、さらにIT系ソフトウェアエンジニアを活用する。
  • 複数社でのファームウェア共通化・共同開発
  • 一部の人材派遣会社では組み込みエンジニア養成コースを設けている。

脚注[編集]

  1. ^ The Software Crisis”. Euromed Marseille School of Management, World Med MBA Program - Information Systems and Strategy Course. 2013年2月12日閲覧。
  2. ^ Report about the NATO Software Engineering Conference dealing with the software crisis
  3. ^ E. W. Dijkstra Archive
  4. ^ #2532ソフトウエア危機 クローズアップ現代2008年2月5日(火)放送
  5. ^ (第1回)古くて新しい問題、それがソフト危機 日経ITPro

関連項目[編集]

外部リンク[編集]