《軟件開發(fā)的科學(xué)與藝術(shù)》成書的原因與過程 1
《軟件開發(fā)的科學(xué)與藝術(shù)》的內(nèi)容 3
本書的意義 4
第1章 全球軟件產(chǎn)業(yè)現(xiàn)狀. 趨勢與挑戰(zhàn) 5
The Challenges and Opportunities of the Global Software Industry
軟件是一臺計算設(shè)備的思維中樞. 經(jīng)過數(shù)十年的發(fā)展, 軟件產(chǎn)業(yè)已經(jīng)成為當(dāng)今世界投資回報比最高的產(chǎn)業(yè)之一, 而這一產(chǎn)業(yè)正在潛移默化地改變著我們賴以生存的這個星球的面貌. 新世紀(jì), 軟件產(chǎn)業(yè)已經(jīng)呈現(xiàn)出了一些引人入勝的轉(zhuǎn)變跡象, 本章概括地把這些跡象表述為三個趨勢:網(wǎng)絡(luò)化. 服務(wù)化與全球化, 并從技術(shù)角度就高科技產(chǎn)業(yè)所面臨的機(jī)遇與挑戰(zhàn)闡述了作者的觀點.
1.1 軟件產(chǎn)業(yè)的網(wǎng)絡(luò)化趨勢 8
1.2 軟件產(chǎn)業(yè)的服務(wù)化趨勢 11
1.3 軟件產(chǎn)業(yè)的全球化趨勢 13
1.4 網(wǎng)絡(luò)化. 服務(wù)化. 全球化趨勢對中國軟件產(chǎn)業(yè)的啟示 15
第2章 現(xiàn)代軟件開發(fā)對人才的要求 19
Talent Beyond Technology What Kind of Talent We Need for
Modern Software Development
軟件開發(fā)是一門科學(xué), 更是一門藝術(shù). 微軟在二十幾年的發(fā)展過程中形成了其獨特的軟件開發(fā)與設(shè)計的企業(yè)文化. 目前, 中國軟件業(yè)的發(fā)展喜憂參半. 中國擁有高素質(zhì). 基礎(chǔ)扎實. 學(xué)習(xí)能力強(qiáng)且思維敏銳的軟件專業(yè)人員, 但中國大規(guī)模的軟件生產(chǎn)尚處于初期發(fā)展階段, 軟件的研究與開發(fā)過程中尚有許多亟待解決的問題. 本章中, 凌小寧博士關(guān)于微軟企業(yè)文化以及軟件開發(fā)人才等方面作了精辟的論述, 這些內(nèi)容是我們中國學(xué)生及軟件從業(yè)人員應(yīng)該了解. 理解并恰到好處地遵循的.
2.1 現(xiàn)代軟件開發(fā)概述 21
2.2 獨具魅力的微軟企業(yè)文化與軟件開發(fā)人員的培養(yǎng) 23
2.3 從差別中尋找解決方案 28
2.4 扎實的基礎(chǔ)和創(chuàng)新. 獨立的工作能力 33
2.5 主人翁精神和團(tuán)隊精神 34
2.6 鍥而不舍. 從錯誤中學(xué)習(xí)的精神 46
第3章 從研究到產(chǎn)品 51
From Research to Products
如何將研究成果投向市場并獲得成功, 這是許多人關(guān)心的問題. 實際上, 從研究成果到產(chǎn)品是一個非常復(fù)雜并且非常漫長的過程, 其中會牽涉到相當(dāng)多的問題. 張益肇博士根據(jù)多年來積累的豐富實踐經(jīng)驗, 首先介紹了一種關(guān)于產(chǎn)品空間的思維方式 技術(shù)生命周期, 以及在生命周期各階段中用戶對技術(shù)和市場的影響, 其次通過具體的案例說明技術(shù)和市場的關(guān)系, 最后總結(jié)出了三條寶貴的規(guī)則, 相信會給讀者帶來很大的啟發(fā).
3.1 引言 53
3.2 技術(shù)生命周期 56
3.3 案例分析 62
3.4 練習(xí) 67
3.5 間斷技術(shù) 73
3.6 基本規(guī)則 83
3.7 推薦書目 87
第4章 微軟的軟件開發(fā) 89
Software Development at Microsoft
現(xiàn)在的軟件開發(fā)不再是個人英雄主義打天下的時代了, 尤其是像微軟這樣大的軟件公司, 一個軟件都是由幾百人甚至幾千人共同合作完成的. 那么如何管理這樣龐大的開發(fā)陣容?員工是如何分工的?他們之間又是如何協(xié)作的?這些都是大家關(guān)心的問題. 陳宏剛博士結(jié)合自己在微軟公司的親身體驗, 并結(jié)合具體實例, 從一個較高層次介紹了微軟的產(chǎn)品團(tuán)隊. 軟件開發(fā)過程和開發(fā)方法.
4.1 概述 91
4.2 微軟的產(chǎn)品團(tuán)隊 94
4.3 微軟的軟件開發(fā)過程 106
4.4 想法和意圖批準(zhǔn)里程碑 112
4.5 產(chǎn)品計劃的通過里程碑 118
4.6 范圍完成/第一次使用里程碑 123
4.7 發(fā)布階段 130
第5章 軟件設(shè)計之源 141
Source of the Software Design
在一些人眼里, 今天的軟件開發(fā)似乎已成為簡單的事件:已有了不少很好的開發(fā)工具和軟件庫, 軟件開發(fā)人員訓(xùn)練有素, 都強(qiáng)烈渴望去編寫很酷的軟件, 可以在幾天的時間里編寫出一個相當(dāng)復(fù)雜的軟件. 但為什么有一些軟件能夠得到用戶的喜歡, 而另一些則不能?為什么有些軟件能夠在市場上成功, 而有些則受到冷落?由此可見, 開發(fā)軟件并不一定難, 難就難在如何開發(fā)有用的軟件. 本章, 凌小寧博士就根據(jù)自己多年的實踐經(jīng)驗, 回答"如何設(shè)計有用的軟件"這個問題.
5.1 軟件設(shè)計簡述 143
5.2 三個困難的問題 144
5.3 設(shè)計之源 145
5.4 錯誤設(shè)計之源 149
5.5 基于用戶情景的設(shè)計 153
第6章 項目管理 161
Program Management
項目管理是一種廣泛應(yīng)用于各種工程. 金融甚至農(nóng)業(yè)生產(chǎn)中的技術(shù)管理過程. 在IT行業(yè), 項目管理常常是決定產(chǎn)品或企業(yè)能否成功的最重 要指標(biāo)之一. 中國歷經(jīng)了15年的不懈努力, 加入世界貿(mào)易組織終成現(xiàn)實, 這為我們帶來了前所未有的機(jī)遇和挑戰(zhàn). 我國政府所屬各部門和企業(yè)領(lǐng)導(dǎo)對于項目管理也越來越重視, 現(xiàn)在市場上名目繁多的各類項目管理培訓(xùn)就可見一斑.
熊明華在微軟擔(dān)任項目經(jīng)理這一職位多年. 本章是根據(jù)他親身實踐, 對微軟的項目管理進(jìn)行了詳細(xì)的介紹,相信對我國軟件業(yè)項目管理水平的提高會有所促進(jìn).
6.1 項目管理簡述 163
6.2 什么是項目經(jīng)理 164
6.3 項目經(jīng)理的行政結(jié)構(gòu)與工作關(guān)系 167
6.4 為什么需要項目經(jīng)理 175
6.5 項目經(jīng)理每天的具體工作是什么 178
6.6 做項目經(jīng)理的背景要求 182
6.7 結(jié)論 187
第7章 寫好代碼的十個秘訣 189
10 Things You Can Do To Write Better Code
在現(xiàn)代軟件的開發(fā)中, 如何寫出具有正確邏輯而且執(zhí)行速度快的代碼是眾多的軟件開發(fā)人員所追求的目標(biāo). 林斌在微軟總部擔(dān)任了多年軟件開發(fā)高級工程師, 參加了微軟多種產(chǎn)品的開發(fā)工作. 本章, 他根據(jù)自己多年的親身體驗, 為讀者總結(jié)出一流代碼應(yīng)該具備的特性, 以及寫一流代碼的十個秘訣. 文中展示了豐富的具體代碼實例, 并進(jìn)行了詳盡透徹的分析, 最后提供了正確的解決之道. 如果你是一名軟件開發(fā)人員, 相信本章對你今后的編程工作會有很大的幫助.
7.1 簡介 191
7.2 編寫代碼的十大秘訣 196
7.3 結(jié)束語 228
第8章 如何提高程序的性能 231
Secrets of Software Performance
如果你是一名軟件開發(fā)人員, 是不是經(jīng)常因為程序的性能而受到老板的指責(zé)?你是不是經(jīng)常因為程序的性能而被用戶刁難?你是不是經(jīng)常因為程序的性能而飽受等待之苦?那么, 怎樣才能盡量優(yōu)化應(yīng)用程序, 提高其性能呢?本章, 林斌根據(jù)自己多年在微軟進(jìn)行軟件開發(fā)的實踐經(jīng)驗, 為我們提供非常棒的提高性能的方法, 并列舉了具體的案例學(xué)習(xí), 最后, 還詳細(xì)介紹了令無數(shù)軟件開發(fā)人員頭痛的內(nèi)存問題. 如果你是一名軟件開發(fā)人員, 閱讀本章后, 立即將這些方法應(yīng)用到你的應(yīng)用程序中, 體驗一下性能提高的喜悅吧.
8.1 提高性能的方法 233
8.2 案例學(xué)習(xí) 234
8.3 內(nèi)存 241
第9章 軟件測試基礎(chǔ) 255
Basic of Software Testing
軟件測試是一門非常嶄新的學(xué)科, 目前研究的內(nèi)容還不很深入, 所涉及的只是測試數(shù)字. 測試函數(shù)等一些非常簡單的問題, 可以說還處于嬰兒階段. 由于軟件測試學(xué)科還不成熟, 它到底需要一個什么樣的專業(yè)基礎(chǔ), 尚無定論, 而且目前還沒有一種很好的標(biāo)準(zhǔn)來衡量一名測試人員的優(yōu)劣. 本章, 陳宏剛博士根據(jù)親身體驗, 以微軟公司為例講述軟件測試的方法及實施過程. 陳宏剛博士指出, 軟件測試學(xué)的發(fā)展還有賴于大家共同努力, 促進(jìn)其研究的不斷深入. 相信本章能對軟件測試工作起一定的指導(dǎo)作用
9.1 概述 257
9.2 關(guān)于Bug 266
9.3 軟件測試方法和輔助工具 269
9.4 相關(guān)測試文檔 276
9.5 如何與項目經(jīng)理及開發(fā)人員溝通 278
9.6 結(jié)束語 286
第10章 如何撰寫測試文檔 291
Write Good Testing Documents
正因為軟件測試還是一門新興學(xué)科, 各方面的規(guī)范還不完備, 目前軟件測試工作還無一定的規(guī)范可依據(jù). 微軟經(jīng)過二十余年的發(fā)展, 在實踐中不斷摸索和總結(jié)出一套獨特的軟件測試方法. 本章中, 陳宏剛博士主要結(jié)合自己在微軟公司多年的測試工作總結(jié)出寶貴的經(jīng)驗, 為讀者介紹如何撰寫測試的相關(guān)文檔, 包括測試計劃文檔. 測試規(guī)范文檔. 測試案例文檔. 測試報告文檔以及Bug報告文檔. 本章附件中包含了陳宏剛博士親手撰寫的一些測試文檔實例.
10.1 測試計劃(Test Plan) 293
10.2 測試規(guī)范(Test Specification) 298
10.3 測試案例(Test Case) 301
10.4 測試報告(Test Report) 301
10.5 Bug報告(Bug Report) 302
附錄A 微軟亞洲研究院介紹 343
附錄B 課程設(shè)計 347
編輯手記 351