ソフトウェア危機とは、計算機科学の黎明期に用いられた用語で、必要な時間内に有用かつ効率的なコンピュータプログラムを作成することが困難であったことを指します。ソフトウェア危機は、コンピュータ処理能力の急速な向上と、対処可能な問題の複雑化に起因しています。ソフトウェアの複雑さが増すにつれ、既存の手法が不十分であったために多くのソフトウェア問題が発生しました。
歴史
「ソフトウェア危機」という用語は、1968年にドイツのガルミッシュで開催された第1回NATOソフトウェアエンジニアリング会議の参加者によって造られました。[ 1 ] [ 2 ]エドガー・ダイクストラの1972年のチューリング賞講演でもこの問題に言及されています。[ 3 ]
ソフトウェア危機の主な原因は、マシンが桁違いに強力になったことです。率直に言って、マシンが存在しなかった限り、プログラミングは全く問題ではありませんでした。性能の低いコンピュータが少数しかなかった頃は、プログラミングは軽微な問題でしたが、今では巨大なコンピュータが存在し、プログラミングは同様に巨大な問題となっています。
原因
ソフトウェア危機の原因は、ハードウェアとソフトウェア開発プロセスの全体的な複雑さに関連していました。この危機はいくつかの形で現れました。
- 予算超過または時間超過しているプロジェクト
- 非効率で低品質のソフトウェアで、要件を満たさないことが多かった
- 管理不能なプロジェクトと保守が難しいコード
- ベイパーウェア
主な原因は、コンピューティング能力の向上が、プログラマーがそれらの能力を効果的に活用する能力を上回っていたことです。過去数十年にわたり、手続き型プログラミングやオブジェクト指向プログラミングなど、ソフトウェア品質管理を改善するための様々なプロセスや方法論が開発されてきました。しかし、大規模で複雑、仕様が不十分、あるいは未知の側面を含むソフトウェアプロジェクトは、依然として大規模で予期せぬ問題に脆弱です。
参照
参考文献
- ^ 「NATOソフトウェアエンジニアリングカンファレンス1968」 。 2017年4月26日閲覧。
- ^ 「NATO科学委員会主催会議報告書(ドイツ、ガルミッシュ、1968年10月7日~11日)」(PDF) 。 2017年4月26日閲覧。
- ^ 「EWDijkstra アーカイブ: The Humble Programmer (EWD 340)」 。 2017年4月26日閲覧。
外部リンク
- エドガー・ダイクストラ:謙虚なプログラマー(PDFファイル、473kB)
- ブライアン・ランデル:NATOソフトウェアエンジニアリング会議
- Markus Bautsch:ソフトウェア危機のサイクル: ENISA Quarterly on Secure Software (PDF ファイル; 1.86 MB)
- Hoare 1996、「証明なしにソフトウェアはなぜこれほど信頼できるのか?」