現代軟件工程 教學計劃 適應兩種難度和重點
現代軟件工程 教學計劃
經過 2007 - 2018 年,30個不同學校的實踐后, 《構建之法》在大學的兩種教法已經出現了, 這兩種教學計劃適應于兩種難度和重點。 下面我們具體介紹這兩種計劃。
1. 軟件工程導論(適合大一下的學生,在學過一門編程課之后,代碼量:1000 行)
2. 現代軟件工程 (適合大三下的學生,先修課要求: 學過編程,數據結構,數據庫+操作系統+編譯原理+網絡 等課程, 有 4000 行以上的代碼量)
1. 軟件工程導論
特點:這是學生學過一門編程課之后第一次完整接觸到軟件工程的整個流程。
目標:讓學生對軟件工程有一個初步完整的了解。
不要求:軟件部署到大規模實際運行的平臺上。
|
Week |
Lecture (授課) |
輔導/交流/演示 |
項目 |
作業 |
|
1 |
Intro (課程簡介, 分組) |
使用代碼倉庫 (github),按照工具,寫博客 |
Pair-Project (結對項目) |
博客:課程準備 |
|
2 |
Software Engineering (軟件工程概論), Unit Test (單元測試), Performance Analysis (效能分析) |
|
|
博客:快速閱讀全書并提問 博客:結對項目總結 |
|
3 |
Personal Software Process (個人軟件流程 PSP), Code Quality/convention (代碼質量的各種標準,代碼規范,設計規范) collaboration (兩人合作), influence (影響別人的方式) |
結對項目復審 |
|
|
|
4 |
Team Structure & Development Process (軟件團隊的模式和開發的各種模式) |
|
博客:用快速原型設計工具 | |
|
5 |
Innovation (軟件業的創新) Myths of Innovation (創新的迷思), Innovator's dilemma (創新者的兩難) |
討論熱門創新產品 |
|
博客:分析熱門產品 |
|
6 |
NABCD (項目可行性分析) Spec and PM (軟件規格說明書, 項目經理)
|
|
團隊項目開始 (alpha) |
博客:團隊項目NABCD |
|
7 |
Scenarios (基于場景的設計), 軟件的 UX/UI |
|
daily scrum ( 5 天 ) |
博客:scrum 每天一篇 |
|
8 |
Testing (測試) |
|
Alpha 發布(產品原型) |
博客:測試報告 |
|
9 |
MSF (微軟軟件解決方案框架), CMMI 軟件成熟度模型 Release (軟件的發布,事后諸葛亮會議) |
各個小組互評Alpha 成績 小組成員流動 |
團隊項目 beta 開始 |
博客:點評各組項目 博客:小組beta 計劃,新成員介紹 |
|
10 |
請業界人士,研究生來交流 |
|
daily scrum ( 5 天 ) |
博客:每天scrum 報告 |
|
11 |
|
回答自己最初看書提出的問題,閱讀文獻報告 |
daily scrum ( 5 天 ) |
博客:每天scrum 報告 |
|
12 |
(可選)軟件工程專題深入探討 |
|
beta release |
博客:項目 beta 報告 |
|
13 |
|
Final Review (最終匯報, 復審,所有分數匯總) |
|
博客:個人軟件工程總結 |
|
14 |
(緩沖) |
(緩沖) |
(緩沖) |
2. 現代軟件工程, 軟件工程實踐
(下面表格是 2010 年設計的教學安排, 之后有不少學校進行了改進, 例如福州大學軟件工程課, 請參考。 )
這是一個16周 《現代軟件工程》 的課程安排:
教學計劃總長: 16 周 (扣除放假之后)
授課: 14 次 老師授課
輔導課: 9 次 (輔導/交流/演示) 學生主動匯報進展, 心得, 提出問題, 老師及專業人士給予輔導。
學生項目: 個人項目, 結對編程項目, 團隊項目(兩個階段)
| Week | Lecture (授課) | Talk (輔導/交流/演示) | Project | 作業 |
| 1 | Intro (課程簡介, 分組) I-project 個人項目介紹 | 使用代碼倉庫 (github),博客 | i-project (個人項目) 單元測試,效能分析 | |
| 2 | Software Engineering (軟件工程概論), Unit Test (單元測試), Performance Analysis (效能分析) | 快速閱讀全書并提問,發博客 | ||
| 3 | Personal Software Process (個人軟件流程 PSP), Code Quality/convention (代碼質量的各種標準,代碼規范,設計規范) | Pair project 結對項目 | ||
| 4 | collaboration (兩人合作), influence (影響說服別人的多種方式) | P1 review | Pair project 結對項目 總結 | |
| 5 | Team Structure & Development Process (軟件團隊的模式和開發的各種模式) | 如何使用快速原型設計工具 (墨刀 等) | ||
| 6 | Innovation (軟件業的創新) Myths of Innovation (創新的迷思), Innovator's dilemma (創新者的兩難) | 分析目前熱門軟件產品 | 結對項目 2, 分析目前熱門軟件產品并發表博客 | |
| 7 |
NABC (項目可行性分析) Spec and PM (軟件規格說明書, 項目經理)
|
Team Project Kick Off 團隊項目開始 Alpha 階段 |
||
| 8 | Scenarios (基于場景的設計), 軟件的 UX/UI |
daily scrum ( 5 天 ) | ||
| 9 | Testing (測試) | daily scrum ( 5 天 ) | ||
| 10 |
MSF (微軟軟件解決方案框架), CMMI 軟件成熟度模型 Release (軟件的發布,事后諸葛亮會議) |
各個小組互評Alpha 成績 小組成員流動 |
alpha 階段發布, 總結 | |
| 11 | Dev-History (微軟軟件開發管理的歷史,請業界人士來交流) | Beta階段 daily scrum ( 5 天 ) | ||
| 12 | Risk Mgmt (軟件項目的風險管理) | daily scrum ( 5 天 ) | ||
| 13 |
(可選)軟件工程專題深入探討, 如:人工智能應用開發 |
回答自己最初看書提出的問題,閱讀文獻報告 | beta release | |
| 14 | (可選)個人選作額外的作業 | Final Review (最終匯報, 復審,所有分數匯總) | ||
| 15 | (可選, 緩沖) |
教材:《構建之法》

浙公網安備 33010602011771號