軟件工程通史(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)

相關圖書

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

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