コンテンツにスキップ

ソフトウェア工学概論/歴史

出典: フリー教科書『ウィキブックス(Wikibooks)』


歴史

[編集]

1940年代初頭に近代的なデジタル・コンピューターが初めて登場したとき、それを作動させる命令は機械に配線されていた[1]。この頃、コンピューターを扱うのは技術者であり、その多くは電気技術者であった。 このハードウェア中心の設計は柔軟性に欠け、すぐに「ストアドプログラムアーキテクチャー」またはフォンノイマンアーキテクチャーに取って代わられた。 こうして、「ハードウェア」と「ソフトウェア」の最初の区分けが始まり、コンピューティングの複雑さに対処するために抽象化が行われるようになったのです。

1950年代にはプログラミング言語が登場し始め、これもまた抽象化の大きな一歩となった。 FORTRANALGOLCOBOLといった主要な言語が1950年代後半にリリースされ、それぞれ科学的、アルゴリズム的、ビジネス的な問題に対処するために使用されるようになった。 E.W.ダイクストラは、その代表的な論文”Go To Statement Considered Harmful”(『Go to文は有害と思われる』本邦未出版)[2] は1968年に、David Parnasは1972年に、モジュール性と情報隠蔽の重要な概念を導入した[3]。複雑化し続けるソフトウェアシステムにプログラマーが対応できるようにするためのものである。

オペレーティングシステムと呼ばれるハードウェアを管理するソフトウェアシステムも導入され、特に1969年のUnixが有名である。1967年には、Simula言語がオブジェクト指向のプログラミングパラダイムを導入した。

このようなソフトウェアの進歩に呼応して、コンピューターのハードウェアもさらに進歩した。 1970年代半ばには、マイクロコンピューターが登場し、趣味でコンピューターを入手し、そのためのソフトウェアを書くことが経済的にできるようになった。 これが、現在では有名なパーソナルコンピューター(PC)やマイクロソフト社のWindowsにつながったのである。 また、1980年代半ばには、ソフトウェアを一元的に構築するためのコンセンサスとして、ソフトウェア開発ライフサイクル(The Software Development Life Cycle; SDLC)が登場し始めた。1970年代後半から1980年代前半にかけては、SmalltalkObjective-CC++など、Simulaに影響を受けた新しいオブジェクト指向のプログラミング言語がいくつか登場した。

90年代初頭にはLinuxなどの形でオープンソースソフトウェアが登場し始め、「バザール」という分散型のソフトウェア構築スタイルが紹介された。[4] その後、90年代半ばにWorld Wide Webとインターネットの普及が始まり、ソフトウェアのエンジニアリングが再び変化した。分散システムはシステムを設計する方法として有力となり、プログラミング言語Javaは抽象化の新たなステップとして仮想マシンとともに導入された。プログラマーは協力してアジャイル宣言を書き、より軽量なプロセスでより安く、よりタイムリーなソフトウェアを作ることを支持した。

現在のソフトウェア工学の定義は、「より安く、より良く、より速く」ソフトウェアを作る方法を考え出すのに苦労しているため、今日でも実務家の間で議論されている。1990年代以降、IT業界ではコスト削減に主眼が置かれるようになった。総所有コスト(Total Cost of Ownership; TCO)とは、単なる取得コストだけでなく、生産性を阻害するようなコストも含まれる。総所有コストには、生産性の阻害、維持管理努力、インフラストラクチャーをサポートするために必要なリソースなどが含まれる。

脚註

[編集]
  1. ^ Leondes (2002). intelligent systems: technology and applications ISBN:9780849311215. CRC Press. 
  2. ^ Dijkstra, E. W. (March 1968). “Go To Statement Considered Harmful”. Wikipedia:Communications of the ACM 11 (3): 147–148. doi:10.1145/362929.362947. http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF 2009年8月10日閲覧。. 
  3. ^ Parnas, David (December 1972). “On the Criteria To Be Used in Decomposing Systems into Modules”. Wikipedia:Communications of the ACM 15 (12): 1053–1058. doi:10.1145/361598.361623. http://www.acm.org/classics/may96/ 2008年12月26日閲覧。. 
  4. ^ Raymond, Eric S. The Cathedral and the Bazaar.ed 3.0. 2000.

参考文献

[編集]