發表於2024-11-10
本書深受普利策獲奬作品的啓發,是一部難得的跨界佳作,娓娓道來的寫實風格,可以幫助我們每一個人縱覽計算機與軟件發展史,橫嚮整閤關聯行業全景,洞察蘊藏於其中的價值與商機。
本書引人入勝,讀起來讓人難以釋捲,是一本見微知著,令人醍醐灌頂的通史,適閤軟件工程、信息技術、計算機、大數據等專業人員閱讀和參考,是一本可以幫助他們實現科技創新與創業的重要指南。
在軟件主宰世界的當下,軟件行業發展迅猛,成為讓人關注的領域。從史前的計算需求,從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年, 軟件工程通史(1930-2019) [The Technical and Social History of Software Engineering] 下載 mobi epub pdf txt 電子書 格式
軟件工程通史(1930-2019) [The Technical and Social History of Software Engineering] 下載 mobi pdf epub txt 電子書 格式 2024
軟件工程通史(1930-2019) [The Technical and Social History of Software Engineering] 下載 mobi epub pdf 電子書很快。。。。。。。.。
評分挺好,然後這個書裏頭的東西都介紹的很詳細
評分挺好,然後這個書裏頭的東西都介紹的很詳細
評分嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬可以
評分軟件工程通史(1930-2019)
評分挺好,然後這個書裏頭的東西都介紹的很詳細
評分軟件工程通史(1930-2019)
評分嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬可以
評分嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬嗬可以
軟件工程通史(1930-2019) [The Technical and Social History of Software Engineering] mobi epub pdf txt 電子書 格式下載 2024