內(nèi)容簡(jiǎn)介: 軟件工程牽涉的范圍很廣, 同時(shí)也是一般院校的同學(xué)反映比較空洞乏味的課程。 但是軟件工程的技術(shù)對(duì)于投身IT 產(chǎn)業(yè)的學(xué)生來(lái)說(shuō)是非常重要的。作者鄒欣有長(zhǎng)達(dá)20年的一線軟件開(kāi)發(fā)經(jīng)驗(yàn),他利用業(yè)余時(shí)間在數(shù)所高校進(jìn)行了長(zhǎng)達(dá)6年的軟件工程教學(xué)實(shí)踐,總結(jié)出了在16周的時(shí)間內(nèi)讓 同學(xué)們通過(guò) “做中學(xué) (Learning By Doing)” 掌握實(shí)用的軟件工程技術(shù)的教學(xué)計(jì)劃,并得到高校師生的積極反饋。在此基礎(chǔ)上,作者對(duì)軟件工程的各個(gè)知識(shí)點(diǎn)和技能要求進(jìn)行了系統(tǒng)性整理,形成教材。 本書共分17章,對(duì)照美國(guó)ACM/IEEE2013年新出版的計(jì)算機(jī)科學(xué)教學(xué)指導(dǎo)(Computer ScienceCurricula 2013)中的軟件工程相關(guān)部分,這本教材覆蓋了其中大多數(shù)Core-Tier1和Core-Tier2的內(nèi)容?梢哉f(shuō),全書對(duì)軟件工程內(nèi)容的覆蓋不遜于任何一本現(xiàn)行的教材,同時(shí)講述了業(yè)界最新實(shí)踐方法。 本書評(píng)論: 推薦軟件工程專業(yè)學(xué)子閱讀,了解軟件工程真正內(nèi)涵,懂得“工程”二字真正含義,知道軟件工程和計(jì)算機(jī)科學(xué)的區(qū)別。了解之后,就知道為何軟件工程是就業(yè)含金量較高的行業(yè)了。 ——朝紅陽(yáng)(http://weibo.com/u/1794892070)/中山大學(xué)軟件學(xué)院 書中 設(shè)想了大量的場(chǎng)景“學(xué)”和“習(xí)”,并且用了大量的類比,非常生動(dòng)有趣。這本教材也對(duì)軟件工程課老師提出了更高的要求;對(duì)學(xué)生而言,同樣面臨著要付出怎樣的努力才能學(xué)到“干貨”的選擇。 ——鞠小林(http://weibo.com/jukxy)/南通大學(xué)軟件學(xué)院 關(guān)于計(jì)算機(jī)科學(xué)與軟件工程的差別?這是我們學(xué)生問(wèn)的最多的,這下有解釋啦!包括書中談到的師生關(guān)系、軟件工程師的職業(yè)發(fā)展、職業(yè)道德等,這些內(nèi)容我上課時(shí)都可以用。 ——牛慧娟/華中科技大學(xué)軟件學(xué)院 面對(duì)在軟件開(kāi)發(fā)方面經(jīng)驗(yàn)很少的學(xué)生,鄒欣老師通過(guò)豐富生動(dòng)的故事和隱喻幫助學(xué)生建立軟件工程的思維習(xí)慣,通過(guò)嚴(yán)格扎實(shí)的動(dòng)手訓(xùn)練與考核幫助學(xué)生總結(jié)歸納自己的“最佳實(shí)踐經(jīng)驗(yàn)”。讀這本書,軟件工程課不再枯燥沉悶,而是變得出乎意料的生動(dòng)有趣。 ——王忠杰(http://weibo.com/travellingwithme)/哈爾濱工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 讀完《構(gòu)建之法——現(xiàn)代軟件工程》,不禁驚嘆,軟件工程的書還可以這樣寫!像團(tuán)隊(duì)和流程、敏捷流程、需求分析、設(shè)計(jì)與實(shí)現(xiàn)這些章節(jié)我看了又看,看完之后不禁拍大腿(書里說(shuō)的“拍腦門、拍胸脯、拍屁股”的三拍有點(diǎn)不全,還差“拍大腿”):為什么鄒欣老師會(huì)把原本無(wú)趣的問(wèn)題寫得這么吸引人?我深深地感覺(jué)到,不會(huì)講故事的軟件工程老師不是好老師!這本書給我最大的感受是,作者能把一個(gè)個(gè)鮮活的例子(或故事)與軟件工程的相關(guān)問(wèn)題恰到好處地結(jié)合起來(lái),讓軟件工程的理論和方法更好地落地。 ——王贊(http://weibo.com/scswz)/天津大學(xué)軟件學(xué)院 將對(duì)軟件工程思想的理解內(nèi)化為軟件工程師的職業(yè)習(xí)慣,是軟件工程教學(xué)的核心目標(biāo),本書的實(shí)驗(yàn)設(shè)計(jì)恰恰非常有助于這一內(nèi)化過(guò)程。個(gè)人項(xiàng)目、兩人項(xiàng)目和團(tuán)隊(duì)項(xiàng)目由易到難,循序漸進(jìn),不斷總結(jié)。我在教學(xué)中借鑒這一思路,從學(xué)生較為熟悉的編程訓(xùn)練入手,以范例演示基本編碼規(guī)范、 No Design時(shí)的代碼、經(jīng)過(guò)基 本Modularity (also called separation of concerns)設(shè)計(jì)的代碼、writing code to make it reusable on future projects以及一些特殊的接口設(shè)計(jì)……從編碼實(shí)踐中理解軟件工程思想,就會(huì)跳出紙上談兵的框框。 ——孟寧(http://staff.ustc.edu.cn/~mengning/,http://weibo.com/mengning997 ) /中國(guó)科技大學(xué)軟件學(xué)院 軟件工程在大學(xué)是最難講,也是最容易講的一門課,容易在這門課涵蓋的內(nèi)容和外延特別豐富,這些內(nèi)容學(xué)生基本沒(méi)概念,短期也無(wú)法落到實(shí)處來(lái)驗(yàn)證有用沒(méi)用,所以老師可以大講特講,人畜無(wú)害;難在你要在學(xué)生一片空白(沒(méi)有很強(qiáng)的代碼能力、沒(méi)有團(tuán)隊(duì)概念、沒(méi)有項(xiàng)目經(jīng)驗(yàn))的情況下去讓他們懂得這些東西。在我認(rèn)識(shí)的人中,能有豐富的項(xiàng)目經(jīng)驗(yàn)又愿意花時(shí)間在教學(xué)實(shí)踐上,最終能把各種知識(shí)理論體系化的人寥寥無(wú)幾。鄒欣老師恰好這幾點(diǎn)都具備?焖俜暾緯,最大的感受是這本書出版得恰逢其時(shí),傳統(tǒng)的軟件工程教材早就該翻新了! ——徐亞波(http://ss.sysu.edu.cn/~xyb,http://weibo.com/arber)/中山大學(xué)軟件學(xué)院 作者簡(jiǎn)介 鄒欣現(xiàn)任微軟Windows中國(guó)工程團(tuán)隊(duì)首席研發(fā)總監(jiān)。 1996年~2003年,鄒欣在微軟Outlook團(tuán)隊(duì)從事開(kāi)發(fā)工作,2003年~2005年,他在微軟內(nèi)部質(zhì)量工具團(tuán)隊(duì)和Visual Studio團(tuán)隊(duì)負(fù)責(zé)軟件項(xiàng)目管理工具的開(kāi)發(fā)。2005年~2012年,他擔(dān)任微軟亞洲研究院技術(shù)創(chuàng)新組研發(fā)主管,負(fù)責(zé)研究成果的產(chǎn)品化和創(chuàng)新項(xiàng)目。2012年~2014年,他擔(dān)任微軟亞洲互聯(lián)網(wǎng)工程院首席研發(fā)總監(jiān),負(fù)責(zé)必應(yīng)搜索客戶端、必應(yīng)輸入法、必應(yīng)詞典等產(chǎn)品。加入微軟前,鄒欣從事過(guò)商用Unix系統(tǒng)、GPS/GIS軟件開(kāi)發(fā)及測(cè)試工作。 他在2007年出版了《移山之道》,于2008年出版了《編程之美》 (合作)。 他于1991年獲北京大學(xué)計(jì)算機(jī)軟件專業(yè)學(xué)士學(xué)位。1996年獲美國(guó)韋恩州立大學(xué)(Wayne State University)計(jì)算機(jī)軟件專業(yè)碩士學(xué)位。
目錄: 第 1 章 概 論 1 1.1 軟件 = 程序 + 軟件工程 1.2 軟件工程是什么 1.3 練習(xí)與討論 第 2 章 個(gè)人技術(shù)和流程 /20 2.1 單元測(cè)試 2.2 效能分析工具 2.3 個(gè)人開(kāi)發(fā)流程 2.4 實(shí)踐 2.5 練習(xí)與討論 第 3 章 軟件工程師的成長(zhǎng) /43 3.1 個(gè)人能力的衡量與發(fā)展 3.2 軟件工程師的職業(yè)發(fā)展 3.3 技能的反面 3.4 練習(xí)與討論 第 4 章 兩人合作 /56 4.1 代碼規(guī)范 4.2 代碼風(fēng)格規(guī)范 4.3 代碼設(shè)計(jì)規(guī)范 4.4 代碼復(fù)審 4.5 結(jié)對(duì)編程 4.6 兩人合作的不同階段和技巧 4.7 練習(xí)與討論 第5 章 團(tuán)隊(duì)和流程 /84 5.1 非團(tuán)隊(duì)和團(tuán)隊(duì) 5.2 軟件團(tuán)隊(duì)的模式 5.3 開(kāi)發(fā)流程 5.4 練習(xí)與討論 第 6 章 敏捷流程 /101 6.1 敏捷的流程 6.2 敏捷流程的問(wèn)題和解法 6.3 敏捷的團(tuán)隊(duì) 6.4 敏捷總結(jié) 6.5 敏捷的故事— 兼酒后問(wèn)答 6.6 練習(xí)與討論 第 7 章 MSF /121 7.1 MSF 簡(jiǎn)史 7.2 MSF 基本原則 7.3 MSF 團(tuán)隊(duì)模型 7.4 MSF 過(guò)程模型 7.5 MSF 敏捷開(kāi)發(fā)模式 7.6 MSF CMMI 開(kāi)發(fā)模式 7.7 練習(xí)與討論 第 8 章 需求分析 /142 8.1 軟件需求 8.2 軟件產(chǎn)品的利益相關(guān)者 8.3 獲取用戶 需求— 用戶調(diào)查 8.4 競(jìng)爭(zhēng)性需求分析的框架 8.5 功能的定位— 四象限方法 8.6 計(jì)劃和估計(jì) 8.7 分而治之(Work Breakdown Structure) 8.8 練習(xí)與討論 第 9 章 項(xiàng)目經(jīng)理 /175 9.1 PM 是啥 9.2 微軟PM 的來(lái)歷 9.3 PM 做開(kāi)發(fā)和測(cè)試之外的所有事情 9.4 PM 的能力要求和任務(wù) 9.5 練習(xí)與討論 第10 章 典型用戶和場(chǎng)景 /185 10.1 典型場(chǎng)景和典型用戶 10.2 規(guī)格說(shuō)明書 10.3 功能驅(qū)動(dòng)的設(shè)計(jì) 10.4 練習(xí)與討論 第11 章 軟件設(shè)計(jì)與實(shí)現(xiàn) /205 11.1 從Spec到實(shí)現(xiàn) 11.2 開(kāi)發(fā)階段的日常管理 11.3 練習(xí)與討論 第12 章 用戶體驗(yàn) /218 12.1 用戶體驗(yàn)的要素 12.2 用戶體驗(yàn)設(shè)計(jì)的步驟和目標(biāo) 12.3 評(píng)價(jià)標(biāo)準(zhǔn) 12.4 練習(xí)與討論 第13 章 軟件測(cè)試 /237 13.1 基本名詞解釋及分類 13.2 各種測(cè)試方法 13.3 實(shí)戰(zhàn)中的測(cè)試 13.4 運(yùn)用測(cè)試工具 13.5 練習(xí)與討論 第14 章 質(zhì)量保障 /268 14.1 軟件的質(zhì)量 14.2 軟件的質(zhì)量保障工作 14.3 練習(xí)與討論 第15 章 穩(wěn)定和發(fā)布階段 /284 15.1 從代碼完成到發(fā)布 15.2 發(fā)布之后 — 事后諸葛亮?xí)h 15.3 練習(xí)和討論 第16 章 IT 行業(yè)的創(chuàng)新 /301 16.1 創(chuàng)新的迷思 16.2 創(chuàng)新的時(shí)機(jī) 16.3 創(chuàng)新的招數(shù) 16.4 魔方的創(chuàng)新 16.5 創(chuàng)新和作坊 16.6 練習(xí)與討論 第17 章 人、績(jī)效和職業(yè)道德 /337 17.1 豬、雞和鸚鵡的故事 17.2 其實(shí)還是人的問(wèn)題 17.3 績(jī)效管理 17.4 蘿卜與白菜 17.5 團(tuán)隊(duì)合作的幾個(gè)階段 17.6 軟件工程師的職業(yè)道德 17.7 練習(xí)與討論 索 引 /358
|