现代软件工程讲义 目录
軟件工程牽涉的范圍很廣, 同時也是一般院校的同學(xué)反映比較乏味的課程。 但是軟件工程的技術(shù)對于投身IT 產(chǎn)業(yè)的學(xué)生來說是非常重要的。 經(jīng)過幾年的探索, 我總結(jié)了在16周的時間內(nèi)讓同學(xué)們通過 “做中學(xué) (Learning By Doing)” 掌握實用的軟件工程技術(shù)的教學(xué)計劃。
這套講義在下面的學(xué)校正式課程中運用過:
2007 – 2010?? 清華大學(xué)理論計算機科學(xué)研究中心 (姚班) 主要是大四上學(xué)期
2009,? 2012??? 北航計算機系? 大三上學(xué)期???????
2010 – 2011?? 中科大-微軟 計算機實驗班 大四上學(xué)期???????
2012? 秋季????? 微軟亞洲研究院創(chuàng)新人才班?
還有在北大合作的教學(xué):??????
2007 - 2009 北京大學(xué)軟件學(xué)院 研究生課程 (課程名叫 - 微軟軟件實現(xiàn)技術(shù), 我是講師之一, 只講了少部分內(nèi)容)
這套講義有這樣的特點:
理論和實踐相結(jié)合,講現(xiàn)代理論,同時講體現(xiàn)理論的工具
結(jié)構(gòu)緊湊,個人項目/結(jié)對項目/團隊項目緊密配合, 能在16 周講完。
面向?qū)崙?zhàn),強調(diào)做中學(xué) (learning by doing), 項目都公開發(fā)布,用戶數(shù)量和反饋是項目重要的評價標準。
講人在軟件工程中的不同角色和作用 (軟件過程, 軟件工具, 軟件人員的技術(shù)能力和職業(yè)能力)
有豐富的材料給教師/TA 使用 (見下面的 “學(xué)生作業(yè)”)
練習(xí)量大 (其實學(xué)生工作量和國際一流大學(xué)相仿), 內(nèi)容多: 教材 (3 本), 參考書 (20 本)
講義內(nèi)容: (標題下沒有鏈接的會在以后補充)
1. 概述
- 課程概述
- 習(xí)而學(xué)的軟件工程教育
- 軟件工程概述
- 項目剖析 微軟學(xué)術(shù)搜索項目 10個版本的歷程
2. 個人開發(fā)技術(shù)
- PSP: Personal Software Process,? 技能的反面
- 程序效能分析?
- 單元測試??? (在最小的編程單元上保證正確性)? &? 回歸測試?? (保證程序在修改的過程中, 原有的功能保持穩(wěn)定 )
3. 兩人合作
- 合作的階段和影響對方的方式
- 代碼規(guī)范和代碼復(fù)審
- 結(jié)對編程, 有記載的最早的結(jié)對編程發(fā)生在 1987年3月…
4. 軟件過程/方法論
- 各種方法概述
- 敏捷方法:? 酒后的敏捷,? 敏捷宣言,敏捷原則
- Scrum/Sprint,? TDD, FDD
- MSF-Agile
- 支持軟件過程的工具 (TFS suite)
- Postmortem - 事后諸葛亮?xí)h
5. 團隊中的角色與合作
- 團隊的類型
- 團隊成員不同的投入和心態(tài)? - 豬/雞/鸚鵡??
- 角色 – PM?? PM Spec, PM 的成長, 項目管理的細節(jié)
- 角色 – Dev?? Dev 的成長? 軟件開發(fā)不是閉卷考試?? 頂級程序員的心得–Coders at Work
- 角色 – QA & Test 質(zhì)量保證和測試
??????????? QA 的閏年問題
??????????? QA/Test 的角色和分工??? QA 的成長
6. 需求
??? a. 項目需求分析和建議?
??? b. 目標和遠景? - 反面例子畫扇面
??? c. 計劃階段, 軟件估計 (1) (2)
????d. 場景/典型人物
7. 設(shè)計和開發(fā)?
- 模塊API 的設(shè)計 (elevator design,? mvc/mvvm example,? design interface example)
- 開發(fā)階段的日常管理
8. 用戶界面,用戶體驗的設(shè)計?
9. 穩(wěn)定階段, 發(fā)布和維護
??? a. 測試的計劃和執(zhí)行
??? b. CC, ZBB, Release Candidate, and RTW
10. 軟件和IT 業(yè)的創(chuàng)新
???? a. 創(chuàng)新的迷思? 連載?? (1) (2) (3)
???? b. 創(chuàng)新 VCD 的故事?
??? c. 創(chuàng)新的時機
??? d. 魔方的創(chuàng)新?
??? e. 如何提出靠譜的項目建議 (NABC)
???? f.? 創(chuàng)新的出路 - 走進作坊;? 創(chuàng)新的招數(shù)
11. 軟件項目的管理
- 績效管理
- 代碼量和樹葉量
12. 軟件工程師的職業(yè)道德
???? 人的問題 (同學(xué)的感想)
????
13. 附錄, 參考書, 論文閱讀
教材 (3本, 同學(xué)選擇一本, 同時借閱另外兩本) :
1. Rapid Development? Steve McConnell (ISBN 1-55615-900-5)
??? 中文版 快速軟件開發(fā)斯蒂夫·邁克康奈爾 著 譯者: 席相霖 等 ISBN 9787505372856
2. Code Complete (2nd Ed)Steve McConnell ISBN: 9780735619678
??? 中文版 代碼大全 (第二版)斯蒂夫·邁克康奈爾 ISBN: 7121022982
3. 移山之道 – VSTS 軟件開發(fā)指南鄒欣 (ISBN: 9787121071485)
主要參考書:
??? Dreaming in Code by Scott Rosenberg, ISBN: 9781400082469
??? 中文版《夢斷代碼》, 譯者 韓磊, ISBN: 9787121066795
其它相關(guān)博客? http://blog.csdn.net/SoftwareTeacher/archive/2010/11/20/6024185.aspx
現(xiàn)代軟件工程的教材和參考書
有關(guān)創(chuàng)新的書
一些有意思的程序員常去的博客 [zz]
-------
給學(xué)生布置的作業(yè)列表:
??? 現(xiàn)代軟件工程 作業(yè) 1: 個人項目
??? 現(xiàn)代軟件工程 作業(yè) 2: 結(jié)對項目
????????????????????? (電梯調(diào)度設(shè)計)
??? 現(xiàn)代軟件工程 作業(yè) 3: 團隊作業(yè)?? 2012 團隊作業(yè)
??? 現(xiàn)代軟件工程 作業(yè) 4: 個人閱讀作業(yè) (2011)
?? 現(xiàn)代軟件工程 作業(yè) 4: 閱讀和調(diào)查作業(yè)? (2012)
?? 現(xiàn)代軟件工程 作業(yè) 5: 結(jié)對調(diào)查和分析作業(yè)? (2012)
-------
學(xué)生的感想:
現(xiàn)代軟件工程系列 學(xué)生精彩文章(7) 寶貴的教訓(xùn)
現(xiàn)代軟件工程系列 結(jié)對編程 兩周寫好3D 陸戰(zhàn)棋
現(xiàn)代軟件工程系列 學(xué)生的精彩文章 (6) 我們其實還不懂互聯(lián)網(wǎng)
現(xiàn)代軟件工程系列 學(xué)生的精彩文章 (5) 其實還是人的問題
現(xiàn)代軟件工程系列 學(xué)生的精彩文章 (4) 為用戶服務(wù)
現(xiàn)代軟件工程系列 學(xué)生的精彩文章 (3) 如何在Bug 不斷的情況下還能保持平常心... [zz]
現(xiàn)代軟件工程系列 學(xué)生的精彩文章 (2) 到底是誰的 bug?
現(xiàn)代軟件工程系列 學(xué)生的精彩文章 (1)
所有講義, 作業(yè)都可以分享給教師用于教學(xué), 只要注明引用來源即可,? 不必事先取得同意。
歡迎反饋和意見。
總結(jié)
以上是生活随笔為你收集整理的现代软件工程讲义 目录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSDN 首页的第一屏 广告/新闻 比率
- 下一篇: processing创意图形代码_202