ソフトウェアとソフトウェアエンジニアリングの歴史
ソフトウェアとソフトウェアエンジニアリングの歴史
コンピューティングの先駆者
19 世紀のチャールズ・バベッジとエイダ・ラブレスや、ホレリスのパンチカードの開発など
現代のコンピューティングは、1940 年代から発展を開始
初期のコンピューター (一部は電気機械式) のプログラミングの方法 : スイッチ、パンチカードの紙テープ、命令を与えるプラグボードなど
初期のアプリケーションは、数学関数の数値計算にフォーカス
1940 年代後半にジョン・フォン・ノイマンが生み出した 「プログラム内蔵方式」 の概念が大きなブレイクスルー
世界初の商用コンピューターである UNIVAC I で実装された
当時、数値計算は依然として重要だったが、データ処理に焦点が移り始めていた
UNIVAC I の初号機が納入されたのはアメリカ国勢調査局 (1951 年)
人口や生産データの処理および統計データの整備提供
1950 年代、アメリカ、ヨーロッパ、ソビエト連邦、日本の企業が、プログラム内蔵方式のコンピューターを製造・販売
1951 年、グレース・マレー・ホッパーがコンパイラを開発
数値計算用のプログラムコードをコンパイルする手段
プログラムコードを簡単かつ効果的に再利用できるように
初期のコンピューターのプログラミングはかなり大変なものだったが、ブレイクスルーに
機械語の命令レベルでマシンがプログラムされていた
1950 年代
数値計算用のプログラミング言語 (Fortran など) とコンパイラが生まれる
データ処理用の COBOL も
1960 年代
1960 年代初期には、物理的なプロセス制御にコンピューターが使用されるように
高水準なプログラミング言語が登場
大規模なアプリケーションが開発されるようになり、開発と維持に知的な問題と管理的な問題が存在することが明らかに
『人月の神話 【新装版】』 参照
ソフトウェア危機が認識されるように
1960 年代半ばからソフトウェアエンジニアリングという言葉が使われるように
ソフトウェアが巨大になるにつれて、構造化手法が必要に
1960 年代から 1970 年代にかけて、ハードウェアも進化
例えばミニコンの登場
ソフトウェアビジネスが様々なプロダクトを展開
ソフトウェアエンジニアリングの重要な発展
1960 年代後半から 1970 年代
機能とデータのパラダイムを重視
ウォーターフォール手法の発展
電気通信事業の分野では、コンポーネントパラダイムによるプログラムの構造化手法
1980 年代、オブジェクト指向プログラミング
1980 年代後半から 1990 年代にかけて、コンポーネントとオブジェクトの考え方は統合
この時期にユースケースが Ivar Jacobson により提案
さらに包括的な標準として Unified Modeling Language
1990 年代初頭にソフトウェアライフサイクルプロセスの国際標準 (ISO/IEC 12207)
その後、ISO/IEC 15288
統一プロセス (Unified Process : UP)
1996 年にラショナル統一プロセス (RUP) として提供されたもの
2000 年ごろ、RUP などの重厚長大なアプローチへのカウンターとしてアジャイルのムーブメント
エクストリームプログラミング (XP)、スクラム
最近はアジャイルをスケールさせる新しい手法 : SAFe、DAD、LeSS、Nexus
SEMAT
参考文献
モダン・ソフトウェアエンジニアリング