軟體工程導論/歷史
當第一臺現代數字計算機出現在 20 世紀 40 年代初時,[1] 使其執行的指令被連線到機器中。當時,與計算機打交道的人是工程師,主要是電氣工程師。這種以硬體為中心的設計不靈活,很快就被“儲存程式體系結構”或馮·諾依曼體系結構所取代。因此,第一個“硬體”和“軟體”之間的劃分始於使用抽象來處理計算的複雜性。
程式語言開始出現在 20 世紀 50 年代,這也是抽象的另一個重要步驟。Fortran、ALGOL 和 COBOL 等主要語言在 20 世紀 50 年代後期被髮布出來,分別用於處理科學、演算法和商業問題。E.W. Dijkstra 在 1968 年撰寫了他的開創性論文“Go To Statement Considered Harmful”,[2] 以及 David Parnas 在 1972 年引入模組化和資訊隱藏的關鍵概念[3] 來幫助程式設計師處理不斷增長的軟體系統複雜性。一個用於管理硬體的軟體系統,稱為作業系統,也被引入,最顯著的是 Unix 在 1969 年。1967 年,Simula 語言引入了面向物件的程式設計正規化。
這些軟體方面的進步伴隨著計算機硬體的更多進步。在 20 世紀 70 年代中期,微型計算機被引入,使得愛好者以經濟的價格獲得計算機併為其編寫軟體成為可能。這反過來又導致了現在著名的個人電腦(PC)和微軟 Windows。軟體開發生命週期(SDLC)也開始出現,成為 20 世紀 80 年代中期集中式軟體構建的共識。20 世紀 70 年代後期和 80 年代初期,出現了幾個新的受 Simula 啟發的面向物件程式語言,包括 Smalltalk、Objective-C 和 C++。
開源軟體開始出現在 90 年代初期,以 Linux 和其他引入“集市”或分散式軟體構建風格的軟體形式出現。[4] 然後,全球資訊網和網際網路的普及在 90 年代中期來臨,再次改變了軟體工程。分散式系統作為一種設計系統的方式獲得了優勢,Java 程式語言也隨之推出,其虛擬機器成為抽象的另一個步驟。程式設計師合作並撰寫了敏捷宣言,該宣言更傾向於使用更輕量級的流程來建立更便宜、更及時的軟體。
如今,軟體工程的定義仍在實踐者中爭論不休,因為他們都在努力找到一種方法來生產“更便宜、更好、更快”的軟體。自 20 世紀 90 年代以來,降低成本一直是 IT 行業的首要關注點。總擁有成本代表的不僅僅是獲取成本。它還包括諸如生產力障礙、維護工作以及支援基礎設施所需的資源等方面。
- ↑ Leondes (2002). 智慧系統:技術與應用. CRC 出版社. ISBN 9780849311215.
- ↑ Dijkstra, E. W. (1968). "Go To Statement Considered Harmful" (PDF). 維基百科:ACM 通訊. 11 (3): 147–148. doi:10.1145/362929.362947. 檢索於 2009-08-10.
{{cite journal}}: 未知引數|month=被忽略 (幫助) - ↑ Parnas, David (1972). "關於將系統分解成模組時應使用的標準". 維基百科:ACM 通訊. 15 (12): 1053–1058. doi:10.1145/361598.361623. 檢索於 2008-12-26.
{{cite journal}}: 未知引數|month=被忽略 (幫助) - ↑ Raymond, Eric S. 大教堂與集市. ed 3.0. 2000.