天天看點

《基于模型的軟體開發》——1.1 曆史

本節書摘來自華章計算機《基于模型的軟體開發》一書中的第1章,第1.1節,作者:[美] h. s.萊曼(h. s. lahman)著, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

20世紀50年代基本上不存在系統化的開發,那是程式設計的“黑暗時代”。現在的開發人員幾乎很難想象當時的軟體開發環境。當時大型主機的記憶體隻有幾kb(kilobyte,千位元組),紙帶就是高科技輸入系統。西聯曾經有效壟斷了電傳輸入裝置,該裝置每按下一個鍵都需要做幾英尺-磅的功,這些裝置導緻程式員患上腕管綜合征,該症狀甚至成了醫學界的一個專有名詞。沒有浏覽器、調試器或者crt終端。基本彙編語言(basic assembly language,bal)是解決軟體危機的銀彈。

20世紀50年代末60年代初,更好的工具以更進階别計算機語言的形式出現,将0和1抽象為符号名、更高層次的操作、塊結構,并且将結構抽象為記錄和數組。這時的開發工作更加輕松,開發人員的生産力更高,但是關于如何正确使用這些技術沒有指導。是以這種複興催生了“黑客時代”,一個個人生産力占統治地位的時代。

黑客時代從20世紀60年代初直至70年代中。這一時期的特點就是由非常聰明的人生産大量的代碼,每年10萬行的fortran代碼産量并非不常見。開發人員必須非常聰明,因為他們花費大量的時間來調試程式,他們要精于此道才能使代碼快速傳遞。對于問題,他們常有天才的解決方案。在20世紀60年代,黑客一詞是很有贊賞意味的。它用于描述那些可以生産大量代碼完成出色工作,并使其能夠保持運作的人。

然而,在20世紀70年代末期,蜜月結束了。黑客變成了一個具有貶義的稱謂。因為黑客們開始進行新的項目開發,将之前他們所編寫的代碼交由其他人維護。随着時間的推移,當更多特定應用出現時,這些代碼往往不能正常工作。世界發生了改變,程式也需要随之提高。通常重寫這些黑客代碼比修複它還要簡單一些。此時,人們才發現這些代碼在“某些”方面錯了。在行業的說明中,“可維護性”這一名詞出現了,那些不可維護的代碼此時被稱為“黑客代碼”。

20世紀60年代末的解決方案是一種更加系統化的方法,将之前獲得的那些多種多樣的寶貴教訓組合成方法用于建構軟體。同時,随着程式變得越來越大,需要為之設計結構的想法出現了。“軟體設計”作為一項活動從軟體程式設計中獨立了出來。在黑客時代末期出現的方法将所獲得的各類教訓組合在一起産生協同效益,使整體大于部分的總和。這些方法都在結構化開發的涵蓋之下。

從20世紀80年代開始,軟體産業的各個方面都有了巨大的進步。oo範式是一種特别規範的分析與設計方法,帶來了層出不窮的革新。