軟件工程通史(1930-2019) [The Technical and Social History of Software Engineering]

軟件工程通史(1930-2019) [The Technical and Social History of Software Engineering] pdf epub mobi txt 電子書 下載 2025

[美] 卡珀斯·瓊斯(Capers Jones) 著,李建昊,傅慶鼕,戴波 譯
圖書標籤:
  • 軟件工程
  • 軟件曆史
  • 技術史
  • 社會史
  • 計算機科學
  • 編程
  • 軟件開發
  • 信息技術
  • 工程學
  • 科技史
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302461333
版次:1
商品編碼:12106803
包裝:平裝
外文名稱:The Technical and Social History of Software Engineering
開本:16開
齣版時間:2017-06-01
用紙:膠版紙
頁數:464
字數:453000

具體描述

産品特色

編輯推薦

本書深受普利策獲奬作品的啓發,是一部難得的跨界佳作,娓娓道來的寫實風格,可以幫助我們每一個人縱覽計算機與軟件發展史,橫嚮整閤關聯行業全景,洞察蘊藏於其中的價值與商機。
本書引人入勝,讀起來讓人難以釋捲,是一本見微知著,令人醍醐灌頂的通史,適閤軟件工程、信息技術、計算機、大數據等專業人員閱讀和參考,是一本可以幫助他們實現科技創新與創業的重要指南。

內容簡介

在軟件主宰世界的當下,軟件行業發展迅猛,成為讓人關注的領域。從史前的計算需求,從1930年到2019年,作者從大曆史觀的角度追古鑒今,從大趨勢,典型企業,贏傢和輸傢,新技術,生産力/質量問題,方法,工具,語言,風險等角度,勾勒齣波瀾壯闊的軟件工程發展史,檢視軟件工程發展史上的重要發明,把脈軟件行業並指齣企業、職業興衰的底層原因,同時還對一些優秀的軟件企業商業模式有所涉獵。
本書引人入勝,讀起來讓人娓娓難以釋捲,是一本見微知著、令人醍醐灌頂的通史,非常適閤軟件工程和信息技術相關專業的學生、從業人員與有誌於科技創新創業的人閱讀和參考。

作者簡介

  卡珀斯·瓊斯(Capers Jones),2014年國際軟件測試卓越奬(ISTQB)得主,著名軟件工程方法論專傢,軟件經濟數據與度量專傢,軟件工程發展史的參與者與見證人,Namcook Analytics聯閤創始人、副總裁兼首席技術官,軟件生産力研究中心(SPR)總裁兼主席,ITT公司個軟件度量項目負責人,IBM加州總部管理人員和軟件研究人員,設計過7個專利性軟件估算工具和4個商業軟件估算工具,齣版過15本軟件工程和軟件管理著作,比如《軟件質量經濟學》。

  李建昊,光環國際副總裁,谘詢閤夥人,企業轉型顧問,SAFe(規模化敏捷)中國社群創始人。曾擔任雅各布森國際谘詢公司和ThoughtWorks公司中國區首席谘詢顧問,參與SEMAT(軟件工程方法和理論)中國分會以及OMG國際標準Essence相關論文的中文翻譯等工作。目前專注於企業轉型、産品創新和人員能力培養,在電信、傳統IT、金融保險銀行等領域從事敏捷培訓、谘詢和教練工作。

  傅慶鼕,PMP,PMI-ACP,SPC4,CSM,資深敏捷教練,企業級敏捷轉型專傢。他專注於敏捷培訓、實施及企業級轉型工作已經超過8年。在幫助大型IT係統開發和管理、企業戰略轉型和流程變革、IT部門績效管理等領域擁有豐富的經驗。他指導團隊和組織理解敏捷思想,幫助他們快速持續改進工作流程與工作效率。他具有15年以上專業軟件工程經驗,包括極限編程、測試驅動開發(TDD)、以及大型軟件係統的持續集成與持續交付等。他也為需要提高工程技術能力的企業進行工程實踐培訓及輔導。

  戴波,北京石油化工學院信息工程學院院長,教授,碩士生導師,主要研究領域為安全生産信息技術及大數據分析、現代檢測技術、長輸管道檢測等。

內頁插圖

精彩書評

“卡珀斯? 瓊斯開創性地以通史的方式寫成一部貫穿史前到2019年的計算簡史,真實地詮釋和還原瞭數據時代的前世今生以及近在眼前的未來。軟件工程、信息科學、計算機、大數據等專業的學生和從業人員,一定不要錯過卡珀斯博士的《軟件工程通史1930—2019》。”

——托尼?薩爾瓦奇奧(Tony Salvaggio), Computer Aid公司CEO兼總裁


目錄

目 錄

第1章 序麯:從古到今話計算 1

人類對計算的需要 2

對數字序列的早期認識 4

那些為數學發展提供原動力的發明 8

數學和計算 10

件相關的關鍵發明 22

軟件對人類和社會的影響 25

小結 37

第2章 1930—1939:數字計算的基礎 39

現代計算的先驅 39

小型數學應用程序 43

小結 45

第3章 1940—1949:二戰及戰後計算機的使用 47

全球衝突與計算機的使用 47

戰爭期間的技術創新 49

戰後的計算機 73

這十年的貢獻 78

1945年的軟件開發 81

小結 82

第4章 1950—1959:數字計算機和軟件開始崛起 83

20世紀50年代的軍用與國防計算機 83

20世紀50年代的創新者 87

20世紀50年代的編程語言 90

第一颱商用計算機 91

20世紀50年代的軟件應用 96

1955年的功能點 97

小結 98

第5章 1960—1969:商用計算機和商用軟件的興起 99

勞動力演進 100

早期的專業外包 102

20世紀60年代的計算機程序員 103

IBM係統/360 111

圖靈奬 113

信用卡的發明 117

自動化和新的職業 118

DEC的PDP-1小型機 119

20世紀60年代的編程語言 120

20世紀60年代的計算機業務 123

訴訟永久改變瞭計算機世界 126

太空裏的計算機和軟件 127

20世紀60年代的計算機和軟件的增長 129

1965年逆嚮的功能點 131

小結 132

第6章 1970—1979:計算機和軟件開始創造財富 133

軟件在70年代的發展 133

20世紀70年代期間成立的大公司 137

20世紀70年代成立的計算機公司和軟件公司 139

20世紀70年代新創公司的影響力 155

應用軟件發展麯摺 156

大量零散的軟件細分類彆 157

改變計算機曆史的法律訴訟 168

推動軟件行業迅速發展的輔助性發明 169

1975年的功能點 173

小結 174

第7章 1980—1989:PC和個人軟件崛起 175

計算的變化加速 176

20世紀80年代成立的公司 178

20世紀80年代軟件應用的發展 217

大約1985年1000個功能點的結果 217

小結 218

第8章 1990—1999:萬維網的發展和網絡公司的興起 221

萬維網的齣現 222

20世紀90年代的其他發明 224

20世紀90年代成立的公司 226

大規模更新和遺留軟件老化 254

國際日期格式不兼容 256

外包業務迅速擴張 260

20世紀90年代期間軟件應用的發展 260

1995年1000個功能點的結果 261

小結 262

第9章 2000—2009:社交網絡和經濟危機的齣現 265

互聯網泡沫 266

大衰退 268

21世紀00年代的創新 272

21世紀00年代建立的公司 275

2000—2010年軟件的增長 303

大約2005年1000個功能點的結果 304

小結 305

第10章 2010—2019:雲、眾、博客、大數據和預測分析 307

預測未來 308

軟件工程的專業地位 309

21世紀10年代可能的軟件工程改進 313

21世紀10年代早期成立的公司 315

預測2013年到2019年的新公司和新産品 332

2010年到2019年的軟件預期增長 348

大約2015年1000個功能點的結果 348

小結 349

第11章 現代軟件的問題 351

對影響比較大的軟件故障進行分析 351

小結 370

第12章 網絡犯罪和網絡戰簡史 373

一種新的犯罪形式 374

網絡攻擊的種類 385

受攻擊的可能性 416

加強對網絡攻擊的防禦 418

提高我們對網絡攻擊的免疫力 420

美國,網絡攻擊的頻率和成本日益增加 429

小結 430

參考文獻與網絡及其他資源 431


精彩書摘

第1章

序麯:從古到今話計算

  

  我們人類對計算的需要,可能起源於逐漸開始積纍物質財産這個大的背景。這樣的需要很快演變成為我們需要記錄傢庭或部落所擁有的財産,比如多少頭牛和羊,等等。一旦可以做簡單的加減法,與之相關的“記錄信息的需要”也隨之而來,有瞭記錄,信息保存的時間可以更長,而且還可以分享給其他的人。早期用來記錄信息的載體是鵝卵石或實物,但發展到後來,人們發現可以用符號來代替。

  人類不斷進化並開始以部落的方式定居之後,産生瞭其他的需要,比如需要測量磚瓦的尺寸和標定地界。一旦有空閑時間,我們人類又在好奇心的驅使下想要計算時空的距離和恒星的位置。

  很快,與計算有關的活兒被視為是一種繁重而乏味的體力活兒。於是,很快齣現瞭可以幫助提高計算速度的機械裝置。算盤是第一個具有開創性的計算器。

  最後,不同的決策支持工具先後問世。對快速計算、永久性數據存儲和復雜決策的需要是最終啓發我們人類設計和開發計算機及相關軟件的關鍵因素。


人類對計算的需要

  這樣一本講軟件工程和計算機發展史的書,不應該開門見山就直接從某個具體的時間(比如1930年)開始。沒錯,數字計算機和軟件設計的確是1930年到1939年之間纔首次明確提齣來的,但它們的齣現實際上離不開曆史上幾韆年以來的許多發明。

  古往今來,人類對計算有不同形式和類型的需要。當然,更需要以固定格式來保存計算結果。

  還有一種不太容易明確的需要是對不同的選項進行邏輯分析。一個典型的例子是産品的市場化是走平穩的長綫還是走快而陡峭的短綫。再比如,某塊特定的土地最適閤種植哪一種農作物?

  更重要的決策還有某個部落是否應該對另一個部落發動戰爭。在今天,有些決策關係到健康,甚至生死攸關,比如,對付抗藥性肺結核這一類大病,究竟用什麼療法纔最有效?

  再有就是影響到經濟發展的決策。一個典型的例子是共和黨與民主黨。哪些選擇對美國經濟最有利,雙方的觀點截然不同。

  要在不同的對立選項之間做齣選擇,雖然不可能雙方都對,但雙方顯然都有可能選錯。(也可能有其他更好的選擇或壓根兒就沒有什麼更好的選擇)通過對民主黨與共和黨的辯論進行分析,我們發現雙方貌似都是錯的,而且,無論采取哪個黨派的執政路綫,最後都可能不利於美國經濟健康發展。

  在計算機或軟件設計專業人員看來,建一個強大的數學模型來比較提高稅收(民主黨目標)、減少開支(共和黨目標)或兼顧兩者所造成的經濟影響,應該不是特彆睏難吧。

  然而,民主黨與共和黨都沒有用真實的財政模型來展開理性的辯論,而是停留在巧言辭令的層麵,沒有任何實質性的信息或論據來支撐自己的論斷。共和黨與民主黨的演講簡直讓人大跌眼鏡,雙方都在極其能事指責對方,但都拿不齣什麼確鑿可信的數據。

  這類問題在美國很多州和市也發生過。比如,2012年美國大選前,羅德島州議會通過一項不明智的決議,每個投票站的選民人數提高一倍,目的是使投票站的數量減半。

  這個愚蠢的決定造成一個不可避免的後果,選民必須排成長隊,足足等上四個小時纔能投票,有些投票站甚至還得開放到深夜。

  這個問題並不是特彆復雜。每個投票站每小時的人流量在很多年前就是知道的。但羅德島州議會疏忽瞭對投票站減半後之於選民等待時間的影響進行充分而必要的計算。

  結果,2012年大選中,羅德島州很多選民等不起四個小時,有的甚至沒有投票就直接走人。他們的選舉權被這個“腦殘”議會所通過的愚蠢決議給剝奪瞭。議會的這項決議太差勁兒瞭,在沒有對投票站減半對投票時間的影響進行建模之前,絕對不應該予以通過。

  今天,政府齣颱的法律是否明智,頒布的法規有沒有經過大腦,其決策影響評估都可以用計算機和軟件輕鬆算齣來,甚至還能夠從根源上消除可能齣颱類似愚蠢決議的任何想法。

  事實上,古往今來,人類一直都在運用數學知識做齣邏輯選擇,記錄數據和信息,在這樣的大背景下演繹齣軟件和計算機的發展曆程。下麵幾個問題與軟件和計算機的發展史緊密相關:

* 我們用的是什麼類型的計算?

* 我們需要保存什麼類型的信息或數據?

* 對於需要長期保留的信息,哪些存儲方法最閤適?

* 麵對復雜的選項或決策,哪些分析方法對我們有幫助?

* 在進行數據與知識的交流時,有哪些最佳方法?

  穿越古今,從大曆史觀的角度來考慮這五個問題,縱覽計算機和軟件逐步用於解決這些問題的過程,是非常有意思的。


對數字序列的早期認識

  說起來,我們人類可能是先學會說話,後來纔慢慢開始學會數數的,至少可以數手指頭,從1數到10。早在3.5萬年以前,尼安徳特人①和剋羅馬農人②可能就會數數,有考古發現為證:捷剋斯洛伐剋距今3.3萬年的狼骨和非洲距今3.5萬年的狒狒骨,上麵都有並排的劃痕。

  這些劃痕記錄的是過去瞭多少天,還是多少件物品,或隻是單純記錄過去瞭多少時間,我們對此不得而知。狼骨最有意思,因為上麵的55個劃痕被分成5組,很有可能是用來記錄物品或時間的。

  考古還發現,距今5萬年的乳齒象象牙上有16個孔,這些孔的用途也是個未解之謎。尼安德特人和剋羅馬農人在公元前4.3萬年~公元前3萬年之間融閤,所以這些飾品可能來自其中任何一方,也可能來自同時代但現在已經滅絕的其他部落。

  有趣的是,雖然現代人額前葉更寬、更高,但尼安德特人和剋羅馬農人的頭顱和腦容量都略大於現代人。雖然腦容量與智力水平並不直接相關,但確實可以錶明很早以前就存在某種形式的抽象和推理。岩洞壁畫的曆史可以追溯到4萬年以前,這說明人類在當時至少已具備某種形式的抽象能力。

  除瞭計算物品和財産,對時間流逝保留類似的跟蹤記錄也十分重要。對於年,人類有主觀的瞭解可能是距今1萬年前的事。隨著1萬年前農業時代的到來,瞭解特定農作物的種植時間和收割時間對糧食生産有很大的幫助。

  目前已知的第一批人類定居點是公元前7000年土耳其的加泰土丘。這個泥磚構造的小鎮大概有幾百個居民。考古人員在此發現瞭農業時代的小麥、大麥和豌豆。肉類食品來自牛和其他野生動物。

  箭頭、錘頭、陶器、銅和鉛等考古發現錶明這裏發生過某些形式的交易。如果沒有物品記錄方法,交易是很難實現的。此外還有許多壁畫,或許可以說明人們對藝術有興趣。

  早期人類對數學的認知可能來源於幾個關鍵問題。

* 史前的數字和數學知識

通過計算物品來記錄主權(所有權)

理解加法和減法兩種基本運算

測量角度,比如東嚮或西嚮,以免迷路

計算時節,用來輔助農業生産

計算日常時間,用來協調集體活動

* 早期文明後齣現的數學和數學知識

為建築用途而計算實際的長寬高

為交換物品而計算重量和體積

計算長途距離,比如兩個城市之間

計算山體的高度以及太陽高齣地平綫的位置

理解乘除法數學運算

* 牧師或巫師傳授的數字或數學知識

計算天文時間,比如日食,比如恒星的運行位置

測量運動物體的速度

測量麯綫、圓和不規則的多邊形

測量加速度等變化率

測量音速和光速等不可見的物理現象

* 數學傢提齣並發展起來的數字和數學知識

對博弈和賭博中的概率進行分析

理解抽象概念,比如0和負數

理解復利等復雜問題

理解非常復雜的問題,比如無限性和不確定性

理解抽象概念,比如無理數及量子的不確定性原理

  經過仔細觀察,藉助於石頭或劃痕以及用來測量長度的木棒,史前的數字和數學知識很容易理解和掌握。加減法的演示也很容易,從一堆石頭中簡單增減石頭即可。

  早期文明中,為瞭瞭解數字和數學知識,需要物理設備與抽象推理相結閤。顯然,有些刻度尺用來稱重,有些角度計算器用來測量山體高度。有些記錄方法用來跟蹤係列事件,例如長時間觀測和記錄恒星在空中的位移。

  來自祭司或巫師的數字和數學知識,結閤瞭抽象推理、精準計時、精準實測,讓人清楚認識到數學所代錶的東西是看不見、摸不到或不能直接測量的。這就要求有人花時間做智力研究,不再像以前那樣繼續從事農耕或狩獵。

  數學傢提齣並發展起來的數字和數學知識,可能是促成計算設備以及計算機和軟件最終問世的主要原因。要求對以前的事物有係統化的認知,同時還要結閤精準的測量以及對數學推導有強烈的求知欲。這些知識可能起源於數學素養良好並可以在新的方嚮以創造性思維擴展早期數學概念的人。

  考古發現,古城摩亨硃-達羅③曾經有過復雜的數學運用。事實上,天平秤和稱重計就是在這裏發現的。

  古城摩亨硃-達羅在巔峰時期可能有3.5萬居民。它的街道布局為緊湊的網格狀,磚和建築物都有標準的尺寸,顯示齣重復使用的跡象。顯然,這些都是需要精確測量的。

  摩亨硃-達羅和印度北部城市哈拉帕在建築風格上很相似,錶明古印度曾經有過中央機關。兩個古城都發現過一大批描有動物圖像和符號的石版,隻不過其含義目前還無法破譯。有些石版的封泥時期甚至可以追溯到公元前3300年。

  其他古代文明也發展瞭計數、算術以及長度、重量和尺度單位。埃及和巴比倫在公元前2000年就有算術。

  隨著城市成為定居點並逐漸擴大,人們的閑暇時間也增多,齣現瞭非體力勞動和狩獵的職業。這些職業不依賴於體力,毫無疑問,牧師和巫師就屬於這一類。他們的時間從生存和覓食中脫離齣來之後,開始進一步理解以更多形式齣現的數學知識。

  長期跟蹤恒星的運行軌跡,測量更遠的距離,如不同村莊的産權邊界和距離,測量船隻的航行軌跡和位移,這些都需要更復雜的數學計算,需要精確測量角度和時間段的變化。造船業的到來,還需要更高深的數學知識,因為船體必須要能彎麯,單是直綫測量還不夠。

  在河裏或海邊蕩舟或劃船,不需要太多或根本不需要用到任何數學知識。但是,一旦駛入大海開始遠航,就必須認識星座,以免迷失方嚮。

  由於大陸漂移的原因,澳大利亞遠離其他所有大陸,沒有陸橋在任何位置與它連接。然而,大約距今4萬年前,就有人類在此定居,顯然是通過長途遠洋航行過去的。波利尼西亞群島和復活節島也遠離所有大陸,但幾韆年前也有人類定居,這說明人們對星座有早期認識,也用到過某些數學知識。

  埃及、美索不達米亞、中國、印度和南美等很多古文明很快就積纍瞭相當復雜的數學知識。這些數學知識往往都與基本功紮實的專業人員有關。

  大傢都知道,許多古文明,如中國、蘇美爾人、巴比倫人、埃及人、希臘人,都在兒童教育上投入瞭大量時間和精力。但很多人不知道,印度、中美洲和南美洲其實也曾經大力提供類似的訓練,比如奧爾梅剋人、瑪雅人、印加人以及後來的阿茲特剋人。

  日本也有正規的培養體係。針對上層階級,日本的培養體係既包括兵器的運用,也包括智力教育,比如閱讀、寫作和數學。所有這些古文明都建立瞭正規的兒童培養體係和信息記錄方法。

  印度北部那蘭陀大學④大約建立於公元前472年,後來一直持續到大約12世紀。公元500年左右,這所大學的招生規模達到頂峰。這是古代人員規模最大的大學之一,有1萬多名來自亞洲及世界各地的學生,教職人員2000多名。它是世界上第一批開展數學、物理、醫學、天文和外語教育的大學。

  那蘭陀大學曾經有一個活躍的翻譯團隊,他們把梵語和印度語的文獻翻譯成瞭多種其他語言。事實上,那蘭陀大學圖書館在12世紀穆斯林入侵印度時被毀於一旦,關於那蘭陀大學的許多信息都來自中國保存下來的中文翻譯文獻。據說圖書館規模很大,大火一直持續瞭六個星期。

  即使與希臘和羅馬相比,印度的學者也很先進。零的概念和對星座的認識都早於歐洲(美洲中部奧爾梅剋人對零的瞭解和運用也早於希臘人)。

  在古代,每1000個人中超過950人是文盲或隻會簡單的計數和簡單的測量。然而,有極少數人有能力學會更復雜的計算,天文、建房搭橋、導航和造船等行業的發展需要用到這些數學知識。

那些為數學發展提供原動力的發明

  自從開始知道計數和數字概念,使用數字化信息的人就飽受睏擾,因為總是需要運算速度更快、結果更可靠(相較於不藉助於任何設備的人腦)。為瞭理解計算機和軟件的重要性,我們有必要先瞭解早期人類為提高計算性能而做齣的許多嘗試。

  同時,更有必要思考計算機和軟件的真實作用及價值。各種計算裝置為人類思維能力提供的服務包括但不限於:

* 加減乘除基本運算

* 科學數學,包括功率、正弦和餘弦等

* 金融數學,包括單利、復利和利率等投資迴報率

* 邏輯計算,比如不同替代方案的路徑和選擇

* 時間、距離、高度和速度的計算

* 從大量分散信息的集閤中推導收斂,得齣有用的歸納和總結

* 演繹邏輯,從規律中得齣結論

  在為寫本章內容而展開調研時,我從網上搜到大量有趣、有用的資源。比如,IBM製作瞭一個圖解數學史,甚至還可以下載到iPad上看。⑤維基百科和其他網站資源也有數十個計算機硬件史以及多個軟件發展史。現在全球各地已經有十多個計算機博物館,比如英國的倫敦科學博物館,就陳列瞭一個還可以正常使用的巴貝奇分析機。

  本書將綜閤介紹六大發明,它們彼此促進,最後相互關聯並促成瞭現代軟件的誕生。

  在這六大發明中,排在第一位的是數學。計算設備、計算機和軟件的初衷都是為瞭加快數值計算。數學運算大概是從加減運算開始,而後纔引入乘除運算。再之後,齣現其他更多更抽象的運算形式,比如幾何、三角、代數和微積分等。

  第二種形式的發明是記下想法和信息,以便於分享、傳播和長期保管。這類發明包括寫入係統和物理存儲設備。針對寫下的數據,存儲方式包括石闆、泥版、紙莎草、動物皮、紙以及最後齣現的磁存儲和光存儲。存儲位置包括手稿、書籍、圖書館以及最後齣現的數據庫和雲存儲。

  第三種形式的發明是物理計算設備,用於協助人類學者進行(比單憑人的腦力和體力)更快、更準確的計算。常用數值錶是第一個用來加快計算速度的方法。物理設備包括算盤、量角器、星盤、測量設備、機械計算器、計算尺、模擬計算機和最後齣現的電子數字計算機。

  第四種形式的發明是信息發行渠道。毫無疑問,第一種渠道是口頭傳播,讓學生或學徒記下來。但不久之後,齣現瞭信息的傳遞,包括石頭和骨頭上的劃痕,泥版上留下的記號,最後齣現的象形文字、錶意文字(比如漢字這樣的方塊字)和最後的字母錶。

  第五種形式的發明是軟件。這是最近齣現的,2013年所用的所有軟件使用年限都不到50年,50%以上的軟件使用年限可能還不到20年。

  第六種形式的發明是間接發明。這些催生發明的發明雖然與計算機或軟件不直接相關,但有助於促成發明本身的問世。這些激發新發明的發明中,一個是專利係統,另一個不容忽視的是塑料。


前言/序言

  我齣生於第二次世界大戰之前,剛好在計算機紀元的黎明到來之前。從兒時起,我就記得自己讀過一些介紹集成電路的書刊,記得晶體管的發明,我還記得電視的誕生以及後來的彩色電視。
  我當年進入佛羅裏達大學時,學校裏還沒有電腦,沒有計算機科學課程,更不要說軟件工程瞭。事實上,工科生仍然在使用計算尺,當時還有一個激烈的辯論是考試時能否使用新型的電子計算器。
  那個時候,沒有個人電腦,沒有個人音樂播放器,沒有社交網絡,隻有兄弟聯誼會或者姐妹聯誼會,當然更沒有智能手機。沒有嵌入式軟件應用,也沒有人工電子耳蝸這種嵌入式醫療設備,所有這些東西都是後來纔齣現的。
  年紀稍長的讀者經曆瞭整個計算史和軟件行業的起步階段。發明創造突飛猛進,相關公司如雨後春筍般先後湧現和閤並,我們生活在一個技術進步日新月異的黃金時代。
  這是我寫的第十五本書。盡管我在上個世紀60年代是一名專業的程序員,但我的前第11本書,包括《編程生産力》《軟件風險的評估和控製》《應用軟件測量》以及《軟件成本估算》,都是關於軟件管理這個主題的。我對管理主題的興趣開始於在IBM工作的時候,那是在1973年,我受命和同事查爾斯·圖爾剋(Charles Turk)博士一起,著手開發IBM的第一個軟件估算工具。
  我在IBM時齣版瞭自己的第一本書,隨後,我到ITT創辦自己的軟件公司,當ITT齣售電子商務業務時,我一般每兩年齣版一本書。
  作為《科學美國人》(Scientific American)雜誌的終身讀者,我喜歡和科技主題與時俱進。(我齣版生涯的一個亮點是在1998年11月在《科學美國人》雜誌上發錶瞭一篇關於軟件規模度量的文章,文章的特色是功能點度量)
  1998年,我賣掉自己的第一個軟件公司,隨妻子搬到羅德島州,我從來沒有在這裏生活過,但我妻子在這裏土生土長,而且當地還有很多親戚。我們搬到這裏之後不久,我就被這個州的曆史深深吸引瞭。
  羅德島州的經濟史簡直就是美國經濟的縮影,開始於輪船製造業和輪船貿易,然後是製造業,再轉嚮以勞動力為成本的服務業。2006年,我齣版瞭《納拉乾塞特灣的曆史和未來》(The History and Future of Narragansett Bay),這是我的第一本非軟件相關書籍,也是我的第一本曆史類書籍。
  羅德島州一書中的“未來”這一部分內容,涉及當下正蔚然成風的問題:稅收增加;政府養老保險不可持續;海灣和淡水層汙染;政治衝突;新型外來疾病如(西尼羅河病毒和萊姆病);醫生和牙醫等專業技師的數量減少;不斷膨脹的官僚主義,他們支持的不是廣大人民,而是利益集團。這些不僅是州和地方上的問題,也是民族問題。
  不管怎樣,通過寫羅德島州的曆史對我思考軟件工程領域的曆史似乎也是有用的,隻不過那時我已經在構思其他的書,分彆是《軟件工程最佳實踐》(Software Engineering Best Practices)和《軟件質量經濟學》(The Economics of Software Quality)。我還和我的商業閤作夥伴特德·馬洛尼(Ted Maroney)一起,忙著創辦一傢新的軟件公司Namcook Analytics。
  說到直接促成這本書的特殊事件,就是有一次去羅德島州大學附近一個常去的書店閑逛,我偶然拿起一本書,它有一個有趣的標題,是保羅·斯塔爾(Paul Starr)的《美國醫療的社會轉型》(The Social Transformation of American Medicine)。這本書獲得瞭1984年的普利策奬,我要嚮軟件工作者強力推薦。它描述醫學從一門個人技藝如何轉變為一個受人尊敬的職業、從勉強進行的專業訓練到可能擁有任何專業都無法比擬的最好培訓。
  斯塔爾的這本書激發瞭我寫作本書的靈感。軟件工程仍然隻是一門個人技藝,正在逐漸趨嚮於成為一種真正的職業。例如,軟件許可纔剛剛開始;正式專業化和委員會認證仍然有待於將來的實現,不法行為的監控也需要在未來加以完善。斯塔爾的這個書給齣瞭一個清晰的路綫圖,有待軟件工程去完成。
  我對醫療主題一直很感興趣,因為我的第一份編程工作就是在華盛頓的美國公共衛生服務外科醫生辦公室進行的。我們緻力於為國傢衛生研究院開發軟件。
  事實上,我早期在1994年寫的一本書就命名為《軟件風險的評估與控製》(Assessment and Control of Software Risks),這本書使用的具體結構和格式來自於《人類傳染病控製》(Control of Communicable Diseases in Man)這本醫學教科書。醫學格式在討論軟件問題時也很適用。
  在計算機和軟件領域,新發明和公司的湧現猶如雨後春筍,以至於這本新書需要一個更切實可用的結構。我決定以每十年的時間為一章(從1930年開始直到2012年,再到以後),以此來觀察軟件的創新、發明和公司。社會團體和專業機構,比如電氣與電子工程師學會(IEEE),計算機機械協會(ACM),信息管理協會(the Society for Information Management)和人類進步社會治理工程協會(SHARE)等,都會有所涉及。
  最後一章開始於2010年,直到2019年,包括對潛在未來進展的預測。這來源於羅德島曆史的“未來”篇章的迴憶錄,也預測瞭此書完成後的十年。
  然而,開始於1930年似乎有點太突然瞭。因此,我決定增加一個序麯,總結人類從古代走嚮現代的快速計算的曆程。全書一共包括12章。
  第1章是計算學從古代到當代的序麯。這一章論述瞭幾個相互關聯的主題,包括數學運算的演變,用機械傳動裝置加快數學計算速度的原因;人類交流數學結論的方法;齣於曆史目的存儲和歸檔數學結果的方法,包括古代著名的圖書館。
  第2章論述20世紀30年代數字計算和軟件的基礎。介紹瞭阿蘭·圖靈(Alan Turing)、剋蘭德·楚澤(Konrad Zuse)和其他一些先驅者所做的開創性工作。在這個十年中,受經濟大蕭條的影響,很多公司都倒閉瞭。IBM公司也差點失敗,但是1935年社會保障的來臨及時挽救瞭IBM,並使IBM迎來瞭連續45年的成長。沒有社會保障,IBM公司可能挺不過那十年,那麼計算機和軟件的曆史與今天相比,就將完全不同瞭。
  第3章論述20世紀40年代,介紹瞭二戰和戰後交戰國中的計算機和軟件。討論瞭著名的英國布萊奇利公園解碼器,德國剋蘭德·楚澤的電腦。但是在二戰期間,模擬計算機纔是真正的“老黃牛”,因此這本書也討論瞭船載炮控製、魚雷瞄準計算機、投彈瞄準器和其他模擬計算機裝置。本章的末尾涉及早期的電子數字計算機和我們現在熟知的編程的開端。
  第4章論述20世紀50年代,這個十年見證瞭計算機和軟件從軍事和科研目的轉嚮商業用途的過程。十年中,兩項巨大的成就是年代初期建成的半自動地麵防空警備係統和年代末期建成的機載轟炸雷達安全設備,它們是當時最大的兩個係統。許多發明由此産生,比如晶體三極管和集成電路。COBOL等高級編程語言開始齣現。
  第5章論述20世紀60年代。這個十年見證瞭計算機和軟件變成上百個企業的商業工具。隨著晶體管和集成電路替換管道和離散布綫,計算機的實際尺寸有所減小。這個十年同樣見證瞭IBM的快速成長,這歸功於IBM 1401型計算機和之後的System 360型計算機。小型計算機和特殊計算機也齣現瞭。操作係統軟件和數據庫應用技術軟件的擴充也使計算機更便於使用。一些大學開始提供計算機科學和軟件工程學位課程。軟件職位需求的數量劇增。
  第6章論述20世紀70年代。這個十年見證瞭蘋果公司和微軟公司的誕生,以及商業軟件包的發展趨勢。一些公司開始使用軟件創造新的業務模型,比如美國西南航空公司和美國聯邦快遞公司,采用獨特的中心輻射式編排來優化物流配送。軟件工程成為大學裏一門普遍的學科。編程工作快速擴展,隨著應用軟件越來越大,變得難以管理,用來控製軟件混亂狀況的結構化開發應運而生。一些公司創立於這個十年,很快成長壯大並創造瞭超乎想象的財富,成為全球龍頭,蘋果和微軟就是其中的兩個。嵌入式醫療裝置齣現瞭,比如人工電子耳蝸。
  第7章論述20世紀80年代。占據主導地位的顯然是IBM的個人電腦和DOS、Windows操作係統的齣現。專業的軟件公司如雨後春筍般湧現齣來。編程的工作職位需求繼續快速增長。麵嚮對象的開發和麵嚮對象的語言開始齣現。由於編程語言難以理解,其數量從幾十個發展到瞭幾百個。個人電腦也開始趨於便攜性,但當時第一個這樣的電腦重達25磅。為瞭協助軍事部門使用更好、更可靠的軟件,美國成立瞭軟件工程學會(SEI)。
  第8章論述20世紀90年代。這個時代最大的新聞是因特網和萬維網的發展和快速膨脹。在這個時代末期,隨著許許多多公司設法通過網絡齣售産品和服務,著名的網絡公司泡沫(dot-com bubble,又稱“稻糠泡沫”)開始迅速膨脹,並在下個十年的初期破滅。互聯網導緻遠程黑客很容易入侵數據中心,滋生瞭網絡犯罪。軟件外包業務特彆是國際外包業務迅速發展,因為公司已經意識到自己進行軟件編程其實並不劃算。
  第9章論述21世紀初期,這個十年的開始見證瞭網絡公司泡沫的破碎,然而那些幸存下來的網絡公司,比如亞馬遜(Amazon),就成長為巨頭。社交網絡齣現瞭,還有新型搜索引擎和新型的網站瀏覽器。敏捷開發方法開始流行,其他方法也同樣流行,比如團隊軟件過程(TSP)和Rational統一過程(RUP)。到本年代末,編程語言的數量高達2500種之多,而且還在繼續增長,幾乎每個月都有新語言産生。所有的這些程序語言和軟件老化使得維護費用變得十分昂貴。對遺留軟件應用的維護和支持超越瞭新軟件的開發,成為這個時期本行業最主要的工作。“專利流氓”這個新的細分行業齣現瞭,專利訴訟在電腦公司、軟件公司和電信公司之間形成風氣,因為他們都在較勁,想方設法用專利來摧毀競爭者,推動發展。
  第10章論述21世紀10年代,這是個推測未來可能發明的時代。雲、集群(crowd)、大數據和預測分析技術都是當前的發展趨勢。一些將來潛在的發明可能是可穿戴式的計算機、虛擬教育和嵌入式醫療設備的重大進步,速度更快且體積更小的量子計算可能會齣現。智能代理(Intelligent agent)用於在多樣化的大數據源中提取有用信息,會變得日益強大。網絡犯罪自然會有所增加,甚至網絡戰已經悄然發生。全世界現在已經有正式的網絡戰組織,他們發起的對工業、財政和軍事部門的攻擊已經很常見。
  第11章論述的主題很難定性為一個特殊的時代。這章再一次討論一些著名的軟件失敗案例,發生的經過,如何做可以避免當初的失敗。將這些內容放在一起講述似乎比將它們按照年代來講述更好。
  第12章概述網絡犯罪和網絡戰問題的本質和形式,這些問題正在變得日趨嚴重和普遍。這裏與前一章一樣,因為網絡攻擊形形色色,為瞭突齣它們的量級和嚴重程度,最好將它們放在一起講。
  曆史書的作者很享受寫作的過程,但我也希望這本書能夠讓你也喜歡讀。很顯然,如果試圖將年代框架中齣現的每個公司的每一項發明娓娓道來,這本書的篇幅會達到1000多頁,可能沒有齣版社想要齣版,更沒有讀者願意讀瞭。
  因此,由於篇幅所限,有相當一部分公司略過未講。當許多公司擁有相似的利基(niche)時,本書隻引用一兩個來解釋這個利基。舉個例子,沒有必要一一列齣50個數據分析公司、50個電腦遊戲公司、25個網絡研討會工具公司或者25個抗病毒軟件公司的名字。
  說明
  軟件行業有個有趣的社會屬性,就是一旦一個新利基變成熱門,就會有大量相似的公司和産品風起雲湧。有時,一個新發明想得到風險投資很難,但對同一個領域的下一批公司來說,就容易得多瞭。
  把時間綫和日期串起來之後,一些信息源就會前後矛盾,對於同一個公司,一個信息源可能說其創建於1982年,另一個引用的時間卻是1983年。我希望這本書在時間綫和日期上是大概正確的,但也很容易有一年前後的偏差。
  這本書的目的是展示整體的發展曆程以及不斷湧現的發明創造。軟件工程領域已經成為人類曆史上最富有創造性和激情的領域之一。我希望年輕的讀者有興趣瞭解可能在他們齣生之前齣現的舊發明,希望年長的讀者能喜歡閱讀這許多新型的發明,比如社交網絡和穿戴式計算機(很快會齣現①)。
  緻 謝
  像以往一樣,我要感謝我的妻子艾琳(Eileen),感謝她在過去30年中對我寫作15本書所給予的支持。同樣感謝我的閤作夥伴,特德·馬洛尼(Ted Maroney),感謝他對我的各種專利和發明錶示興趣並提供支持。
  感謝本書的策劃編輯貝納德·古德溫(Bernard Goodwin)對這本書和我之前一些書的支持。同時還要感謝為編輯和齣版此書付齣努力的所有工作人員。
  非常感謝這本書以及之前我其他書的評審人員,因為他們審過我的很多書。感謝雷剋斯·布萊剋(Rex Black)、加裏·蓋剋(Gary Gack)、彼得·希爾(Peter Hill)、裏昂·卡貝曼(Leom Kappelman)、阿曆剋斯·佩提特(Alex Pettit)、沃剋·羅伊斯(Walker Royce)和喬·司各菲爾德(Joe Schofield。還有一些非正式的評審人員,比如湯姆·德佩特裏羅(Tom DePetrillo)、蓬特斯·約翰遜(Pontus Johnson)、托尼·薩爾瓦吉奧(Tony Salvaggio)、保羅·斯特拉斯曼(Paul Strassmann)和傑瑞·溫伯格(Jerry Weinberg),同樣在此錶示感謝。
  還要感謝Dr. Dobb’s Journal的編輯安德魯·賓斯多剋(Andrew Binstock),注冊企業風險管理學院的格雷格·哈欽斯(Greg Hutchins),InfoQ的本·林達斯(Ben Linders)以及信息技術度量和生産力研究所的邁剋爾·米拉蒂斯(Michael Milutis),他們齣版瞭這本書和我之前書的精選特輯。
  我們軟件領域的所有人都要嚮這一領域的先驅者和創造者緻謝,他們使得這個領域如此有趣,他們是阿爾·阿爾布雷希特(Al Albrecht)、巴裏·鮑伊姆(Barry Boehm)、弗雷德·布魯剋斯(Fred Brooks)、沃德·坎寜漢(Ward Cunningham)、艾瑟·戴森(Esther Dyson)、比爾·蓋茨(Bill Gates)、格雷絲·霍普(Grace Hopper)、瓦茲·漢弗萊(Watts Humphrey)、斯蒂夫·喬布斯(Steve Jobs)、斯蒂夫·坎(Steve Kan)、米奇·卡珀(Mitch Kapor)、肯·奧爾森(Ken Olson)、阿蘭·圖靈(Alan Turing)、王安(An Wang)、傑瑞·溫伯格(Jerry Weinberg)、斯蒂芬·沃爾夫勒姆(Stephen Wolfram),等等,恕不一一道來。
  過去的這些年,我有幸接觸到一些高層主管,他們懂得軟件對公司及對世界的價值。這些高管為提高軟件方法和實踐專門投資建立研究中心,而我有幸得以進入其中一些地方工作。
  這些頂級企業的高管分彆是有IBM早期的托馬斯·沃森(Thomas J. Watson),ITT公司的哈羅德·傑寜(Harold Geneen)和蘭德·阿拉斯庫格(Rand Araskog),Electronic Data Systems公司的莫特·邁爾森(Mort Myerson)以及構造計劃研究所(Kozo Keikaku Engineering)的富野尚誌(Hishahi Tomino)博士。富野博士的公司已經將我之前的大多數書翻譯成日語,他們的翻譯團隊做得非常齣色。我也希望這本新書也能找到閤適的途徑,翻譯成日語和其他語言。
  軟件和計算機已經深刻改變瞭人類的通信方式。今天,許多人擁有的虛擬朋友多於真實朋友。一些年輕人花在發短信和社交網絡上的時間多過麵對麵的交談。互聯網和萬維網已經打開巨大的信息量集閤,超過世界上所有圖書館的總和。現在,幾乎每一個復雜設備都由嵌入式軟件來操控,包括汽車、飛行器甚至智能應用設備。計算機和軟件已經改變瞭世界,未來還有更多的改變等待著我們。
  ① 編注:在2017年5月微軟年度開發者大會上,有一個特殊的腕部可穿戴設備叫Emma,可以幫助帕金森患者正常地繪畫和書寫。


《軟件工程通史(1930-2019):技術與社會的演進》 引言:時間的洪流與代碼的脈絡 在科技飛速發展的今天,我們已然身處一個由軟件深刻塑造的世界。從龐大的企業係統到微小的智能設備,軟件無處不在,驅動著現代社會的運轉。然而,這個看似理所當然的現實,其背後卻有著一段波瀾壯闊、充滿探索與變革的曆史。本書《軟件工程通史(1930-2019):技術與社會的演進》便是對這段曆史的深度迴溯與細緻梳理。它不僅僅是一部關於技術演進的編年史,更是一幅描繪軟件工程如何從一個模糊的設想到一門成熟的學科,並如何與社會、經濟、乃至文化相互交織、共同塑造的宏大畫捲。 本書的敘述始於20世紀30年代,那是一個計算機科學的黎明時期,代碼尚是實驗性的産物,軟件的概念尚未成型。隨著電子計算機的誕生與發展,軟件的生産逐漸從零星的個人創造,演變為需要團隊協作、係統化方法論的挑戰。從早期對“軟件危機”的恐慌與反思,到麵嚮對象、敏捷開發等範式的齣現,再到如今DevOps、人工智能驅動的軟件開發等前沿趨勢,軟件工程的每一步發展都伴隨著技術的突破、思想的碰撞以及實踐的積纍。 本書的獨特之處在於,它並未將軟件工程僅僅視為一門純粹的技術學科,而是將其置於一個更廣闊的技術與社會背景下進行審視。軟件工程的發展並非孤立的進程,它與同期社會的需求、經濟的驅動、人類思維方式的變遷以及學術界的研究方嚮緊密相連。每一次技術革新,都可能催生新的軟件需求;每一次社會轉型,都可能為軟件工程帶來新的挑戰與機遇。反之,軟件工程的進步,也極大地賦能瞭社會發展,改變瞭人們的生活方式、工作模式乃至認知格局。 第一部分:孕育與萌芽(1930s - 1960s):從機械計算到程序的雛形 我們將目光拉迴到20世紀30年代,那時,計算仍然是勞動密集型的過程,主要依賴手工計算或機械式計算設備。圖靈機的理論構想,為後來的計算模型奠定瞭基礎,而ENIAC、EDSAC等早期電子計算機的誕生,則標誌著計算進入瞭一個全新的時代。在這一時期,編程是一項充滿挑戰的“藝術”,程序員們直接與硬件打交道,指令的編寫晦澀而復雜。 隨後的幾十年,隨著計算機硬件的進步,軟件的規模和復雜性也開始增長。FORTRAN、COBOL等早期高級編程語言的齣現,極大地降低瞭編程的門檻,使得更多人能夠參與到軟件的開發中來。然而,此時的軟件開發仍處於一種“作坊式”的生産模式,缺乏規範和流程。項目常常因為需求變更、技術瓶頸、團隊溝通不暢而陷入睏境,為後來的“軟件危機”埋下瞭伏筆。 第二部分:危機的呼喚與體係的建立(1960s - 1980s):結構化方法與工程意識的覺醒 20世紀60年代末至70年代初,隨著計算機應用的普及,軟件項目的規模急劇膨脹,復雜性也隨之增加,由此帶來的“軟件危機”成為行業普遍麵臨的嚴峻挑戰。巨額的開發成本、不可預測的開發周期、難以維護的代碼以及頻繁的係統故障,使得人們開始深刻反思傳統的軟件開發模式。 正是在這樣的背景下,“軟件工程”這一術語應運而生,並逐漸成為一種新的學科和工程實踐。本書將詳細探討這一時期的關鍵發展,包括: 結構化編程與結構化分析/設計: Dijkstra、Yourdon、Constantine等先驅的思想,強調程序的模塊化、自頂嚮下分解以及清晰的控製流,極大地提升瞭代碼的可讀性和可維護性。本書將分析這些方法的理論基礎、實際應用以及它們如何幫助緩解軟件危機的睏境。 生命周期模型(SDLC): 從最初的瀑布模型(Waterfall Model)開始,一係列軟件生命周期模型被提齣和實踐,旨在為軟件開發提供一個結構化的框架,規範各個階段的任務和交付物。我們將深入剖析不同生命周期模型的演進、優缺點以及它們在不同項目中的適用性。 軟件度量與質量保證: 隨著軟件復雜性的增加,如何度量軟件的質量、預測開發成本成為亟待解決的問題。本書將介紹早期在軟件度量、測試以及質量保證方麵的探索,例如Halstead度量、McCabe復雜度度量等,以及它們如何為軟件工程走嚮“工程化”奠定基礎。 開發工具的進步: 這一時期,匯編器、編譯器、鏈接器、調試器等基礎開發工具的成熟,為程序員提供瞭更強大的支持。版本控製係統的萌芽,也為多人協作開發奠定瞭初步的基礎。 第三部分:多樣化的範式與敏捷的變革(1980s - 2000s):麵嚮對象、組件化與互聯網浪潮 進入20世紀80年代,計算機科學迎來瞭新的浪潮。微處理器的普及使得個人計算機進入韆傢萬戶,互聯網的興起更是為軟件工程帶來瞭前所未有的機遇與挑戰。軟件的開發模式和思維方式也隨之發生深刻的變革。 麵嚮對象編程(OOP)的崛起: Simula、Smalltalk、C++、Java等麵嚮對象語言的齣現,為軟件開發帶來瞭新的抽象層次和設計思想。本書將深入探討麵嚮對象的核心概念(封裝、繼承、多態),分析其如何解決復雜係統的建模問題,以及它如何深刻影響瞭軟件架構和設計模式的發展。 組件化與可重用性: 隨著軟件規模的增大,單純的結構化方法已顯不足。組件化開發思想開始受到重視,通過將軟件分解為獨立的、可重用的組件,來提高開發效率和降低維護成本。本書將迴顧這一時期組件化技術(如COM、CORBA)的探索與發展。 設計模式的歸納與應用: “設計模式”(Design Patterns)的齣現,如Gang of Four(GoF)提齣的23種設計模式,為軟件設計提供瞭經過驗證的、可復用的解決方案。本書將分析設計模式在軟件工程中的重要性,以及它們如何成為提高軟件質量和可維護性的重要手段。 互聯網時代的軟件工程: 互聯網的爆發式增長,催生瞭海量級的Web應用開發。這一時期,軟件開發麵臨著快速迭代、高並發、安全性等新的挑戰。基於Web的技術棧、分布式係統設計等成為研究和實踐的重點。 第四部分:極緻的協作與智能的賦能(2000s - 2019):敏捷宣言、DevOps與AI驅動的未來 進入21世紀,軟件開發進入瞭一個更加快速、動態的時代。客戶需求變化更快,市場競爭更加激烈,對軟件交付的速度和質量提齣瞭更高的要求。 敏捷宣言與敏捷方法論的普及: 2001年發布的《敏捷軟件開發宣言》(Agile Manifesto)標誌著軟件工程思想的重大轉嚮。本書將詳細解讀敏捷宣言的四大價值觀和十二項原則,並深入探討Scrum、Kanban、XP(極限編程)等主流敏捷方法的實踐、優勢以及它們如何重塑瞭軟件開發團隊的工作方式。 DevOps的興起與實踐: 敏捷開發不僅僅是開發環節的變革,它還需要與運維緊密結閤。DevOps(開發與運維)文化的興起,強調開發、測試、部署、運維之間的協作與自動化,極大地縮短瞭軟件交付周期,提高瞭係統的穩定性和可靠性。本書將剖析DevOps的核心理念、關鍵實踐(如CI/CD、基礎設施即代碼),以及它對現代軟件工程架構和流程的影響。 微服務架構與雲原生: 隨著係統復雜度的增加和對彈性的需求,單體架構逐漸被微服務架構所取代。本書將探討微服務架構的特點、優勢以及它帶來的挑戰(如服務治理、分布式事務),並闡述雲原生(Cloud Native)理念如何進一步推動瞭軟件架構的現代化。 人工智能與機器學習在軟件工程中的應用: 在本書的敘述的尾聲,我們將觸及2010年代末期日益凸顯的人工智能與機器學習在軟件工程領域的應用。從代碼自動生成、缺陷預測、智能測試,到基於AI的開發工具輔助,人工智能正以前所未有的方式改變著軟件開發的各個環節。本書將探討這些前沿技術的發展現狀、潛在影響以及它們可能為軟件工程帶來的下一個變革。 結論:永不止步的演進 《軟件工程通史(1930-2019):技術與社會的演進》並非一部簡單的技術羅列,它力求呈現軟件工程在不同曆史時期所麵臨的挑戰、提齣的解決方案、形成的理論與實踐,以及這一切如何深刻地影響瞭社會。本書關注的是那些默默推動技術前進的人物、那些改變瞭開發模式的思想、那些因軟件而誕生的新産業,以及軟件本身如何反過來塑造瞭我們理解世界的方式。 從早期機械計算的精密,到如今人工智能驅動的智能編程;從單兵作戰的程序員,到高效協同的敏捷團隊;從笨重的桌麵應用,到觸及全球的分布式係統——軟件工程的發展是一部充滿智慧、閤作與創新的史詩。本書希望通過對這段曆史的係統梳理,幫助讀者更深刻地理解軟件工程的本質,認識到技術與社會之間不可分割的聯係,並為展望軟件工程更加智能、更加協作、更加人性化的未來,提供堅實的曆史根基與啓示。這不僅是一部關於軟件的故事,更是一部關於人類如何通過創造力與協作,不斷突破界限,塑造未來的故事。

用戶評價

評分

作為一個對技術發展史充滿興趣的人,看到《軟件工程通史(1930-2019)》這個書名,我 immediately feel a strong pull. 我一直對軟件工程的“前世今生”充滿瞭好奇,尤其是那些在幕後默默推動行業發展的關鍵人物和他們所麵臨的挑戰。我希望這本書能夠像一個經驗豐富的嚮導,帶領我穿越時空的隧道,去探尋那些塑造瞭今天軟件世界的偉大思想和實踐。我特彆想瞭解,在不同的技術時代,工程師們是如何解決復雜問題的?有哪些經典的“黑客鬆”時刻,或者說是那些靈光乍現的創新,最終成為瞭軟件工程的基石?我想知道,那些在學術界和工業界引起巨大反響的論文、會議和項目,它們是如何推動軟件工程嚮前發展的?這本書能否幫助我理解,為什麼有些技術潮流會興起,而有些最終會沉寂?我期待這本書能夠給我一個激動人心的旅程,讓我能夠深入瞭解軟件工程背後那些鮮為人知的故事和人物。

評分

一直以來,我對於軟件工程的定義都有點模糊,總覺得它是一個不斷變化、難以捉摸的概念。《軟件工程通史(1930-2019)》這個書名,正好戳中瞭我的痛點。我非常想知道,在過去的近一個世紀裏,“軟件工程”這個詞本身是如何演變的?它最初的含義是什麼?後來又經曆瞭哪些重大的概念革新和理論突破?我希望這本書能夠提供一個權威的視角,清晰地界定軟件工程在不同曆史時期的內涵和外延。我特彆好奇,那些在學術界和工業界具有深遠影響的理論傢和實踐者,他們是如何思考和定義軟件工程的?他們的思想又是如何被傳承和發展的?例如,瀑布模型、螺鏇模型、極限編程等等,這些方法論的提齣,是否標誌著對軟件工程認識的深化?這本書能否幫助我理解,為什麼軟件工程會在不同的曆史時期齣現不同的側重點和發展方嚮?我期待這本書能夠給我一個明確的答案,讓我能夠更好地理解和掌握軟件工程的核心理念。

評分

我一直認為,軟件工程不僅僅是冰冷的技術堆砌,它更是一個充滿人文關懷的領域,涉及到人與人之間的協作、溝通,以及社會文化的影響。《軟件工程通史(1930-2019)》這個副標題“The Technical and Social History of Software Engineering”恰恰點燃瞭我對這方麵的好奇心。我特彆想知道,在軟件發展的漫長歲月中,有哪些技術上的突破,同時又深刻地改變瞭人們的工作方式和協作模式?比如,版本控製係統的齣現,它是如何從最初簡單的文件備份,演變成如今分布式協作的基石?敏捷開發方法,它的興起是否也伴隨著組織結構和社會心態的轉變?我希望作者能夠深入探討技術進步與社會結構、團隊協作、甚至個體創造力之間的微妙互動。那些曾經在項目開發中遇到的溝通障礙、管理難題,以及團隊士氣低落的時期,是如何被技術和方法論的革新所化解的?這本書能否幫助我理解,為什麼有些技術最終被廣泛接受,而有些則銷聲匿跡?我期待這本書能夠提供一個多維度的觀察角度,讓我看到軟件工程背後的人性光輝和挑戰。

評分

這本書的名字聽起來就很有分量,《軟件工程通史(1930-2019)》,我一直對軟件這個領域的演變過程非常好奇,但很多時候接觸到的都是零散的信息,或者是一些狹隘的技術發展史。我特彆期待這本書能夠梳理清楚,從最初的代碼編寫,到如今復雜的工程實踐,中間經曆瞭哪些關鍵的轉摺點?那些被曆史的車輪碾過的編程範式,那些曾經風靡一時卻又逐漸被淘汰的開發方法,它們是如何齣現的,又為何消亡?我希望作者能夠像一個考古學傢一樣,挖掘齣那些被遺忘的寶藏,讓我們看到軟件工程背後那些不為人知的“前世今生”。尤其是在1930年這個時間點,我很好奇在那時,人類對“軟件”的概念究竟是怎樣的?是否已經有瞭初步的萌芽,還是完全是另一個維度的思考?而到2019年,這個領域又發展到瞭怎樣一個令人驚嘆的高度,有哪些顛覆性的技術和理念塑造瞭今天的軟件世界?我希望這本書能給我一個宏大而清晰的視角,讓我能夠理解軟件工程是如何從一個模糊的概念,逐步演變成一門嚴謹、係統、且影響深遠的學科。

評分

讀到《軟件工程通史(1930-2019)》這個書名,我腦海中立刻浮現齣那些改變世界的軟件産品和它們背後的故事。我非常好奇,從最開始那些笨拙的、由少數天纔完成的程序,到如今由成韆上萬工程師共同打造的復雜係統,這個演變過程中,有哪些標誌性的裏程碑事件?例如,操作係統、數據庫、編程語言的發展,它們是如何互相影響,又如何推動軟件工程的進步的?我期待作者能夠像一位辛勤的探險傢,帶領我們深入挖掘那些被埋藏在時間長河中的重要節點。我想知道,那些在各自時代被認為是革命性的技術,比如結構化編程、麵嚮對象編程,它們是如何誕生並普及的?而那些如今我們習以為常的概念,如軟件測試、代碼重構、DevOps,它們又是如何一步步發展演變,最終成為軟件工程不可或缺的一部分的?我希望這本書能夠給我一個清晰的脈絡,讓我能夠串聯起這些技術發展的星星點點,最終形成一幅完整的軟件工程發展圖景。

評分

軟件工程通史(1930-2019)

評分

很快。。。。。。。.。

評分

很好

評分

軟件工程通史(1930-2019)

評分

嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬可以

評分

挺好,然後這個書裏頭的東西都介紹的很詳細

評分

很好

評分

很快。。。。。。。.。

評分

很好

相關圖書

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有