軟體工程課程是北京大學於2018年9月20日首次在中國大學MOOC開設的慕課課程、國家精品線上開放課程、國家級精品資源共享課、國家級一流本科課程。該課程授課教師為孫艷春、黃罡、劉譞哲。據2021年3月中國大學MOOC官網顯示,該課程已開課6次。
軟體工程課程共12個章節,包括軟體工程概論、軟體過程、軟體需求、結構化分析方法、結構化設計方法、UML、面向對象分析、面向對象設計、編碼實現、敏捷開發方法等內容。
基本介紹
- 中文名:軟體工程
- 類別:慕課、國家精品線上開放課程、國家級精品資源共享課、國家級一流本科課程
- 提供院校:北京大學
- 授課平台:中國大學MOOC
- 開課時間:2018年9月20日(首次)
- 授課教師:孫艷春、黃罡、劉譞哲
課程性質
課程背景
課程定位
適應對象
開課信息
開課次數 | 開課時間 | 授課教師 | 學時安排 | 參與人數 |
|---|---|---|---|---|
第1次開課 | 2018年09月20日~2018年12月31日 | 孫艷春 | 3~4小時/周 | 20225人 |
第2次開課 | 2019年02月18日~2019年06月13日 | 孫艷春、黃罡、劉譞哲 | 3~5學時/周 | 10883人 |
第3次開課 | 2019年09月09日~2019年12月31日 | 16094人 | ||
第4次開課 | 2020年02月17日~2020年06月11日 | 3~5小時/周 | 23935人 | |
第5次開課 | 2020年09月14日~2021年01月06日 | 11961人 | ||
第6次開課 | 2021年02月22日~2021年06月24日 | 待定 | ||
(註:表格內容參考資料) | ||||
課程簡介
課程大綱
第1章 軟體工程概論、軟體過程 第2章 軟體需求 第3章 結構化方法1 第4章 結構化方法2 第5章 面向對象方法1 第6章 面向對象方法2 | 第7章 面向對象方法3 第8章 面向對象方法4與敏捷開發方法 第9章 軟體測試 第10章 軟體項目管理 第11章 軟體開發工具和環境 |
第一周:軟體工程概論 軟體的定義及特點 軟體工程的起源和概念 軟體開發的本質和基本手段 軟體工程框架 補充材料-軟體工程新視野 第一周:軟體過程 軟體生存周期過程的概念 軟體生存周期過程的分類 軟體生存周期模型的概念 常見的軟體生存周期模型 第一周:課程介紹 課程宣傳片 課程簡介 第二周:軟體需求 需求的作用 需求的定義 需求的分類 需求發現 需求規約的概念和格式 需求規約的作用 項目的需求及需求規約 第三周:結構化分析方法 結構化分析方法的概念 結構化分析模型 結構化分析過程 需求規格說明書 【補充】結構化分析案例 【補充】需求驗證 第三周:結構化設計方法-1 結構化設計概念 初始模組結構圖的設計 初始模組結構圖精化的原則 【補充】總體設計案例 第四周:結構化設計方法-2 初始模組結構圖精化的啟發式規則 接口設計 數據設計 第四周:結構化設計方法-3 詳細設計工具 軟體設計規約 結構化方法總結 【補充】軟體設計評審 第一次課程實踐 第五周:UML-1 面向對象的概念 UML的概念 表達客觀事物的術語——類 第五周:UML-2 表達客觀事物的術語——接口及其他 控制複雜性的術語——包 表達關係的術語——關聯 表達關係的術語——泛化、細化、依賴及如何使用 | 第六周:UML-3 UML的模型表達工具_概述 UML的模型表達工具_靜態建模——類圖 UML模型表達工具_動態建模——用況圖 第六周:UML-4 順序圖 狀態圖 UML總結 第七周:面向對象分析 面向對象分析概述 識別類 識別屬性和操作 識別對象之間的關係 【補充】面向對象分析案例 第七周:面向對象設計-1 面向對象設計概述 問題域部分的概念 如何進行問題域部分的設計 第二次課程實踐 第八周:面向對象設計-2 人機互動部分的設計 控制驅動和數據管理部分的設計 第八周:面向對象編程 程式設計范型和面向對象程式語言的特點發展 如何選擇程式語言 第八周:敏捷開發方法 敏捷開發概述 極限編程 敏捷設計 Scrum模型 第九周:軟體測試-1 軟體測試的概念 軟體測試過程模型和原則 白盒測試技術 第九周:軟體測試-2 黑盒測試技術 軟體測試的步驟 第十周:項目管理 項目管理的概念 項目管理框架和要素 軟體項目管理的概念 第十周:CMM CMM概念及發展 CMM的基本內容 CMM五級標準 ISO9000標準 第三次課程實踐 第十一周:軟體開發工具與環境 軟體開發工具及環境的定義 工具集成模型 常用的軟體開發工具和環境 補充材料-移動web軟體分析與最佳化 |
第一周:軟體工程概論 軟體的定義及特點 軟體工程的起源和概念 軟體開發的本質和基本手段 軟體工程框架 補充材料-軟體工程新視野 第一周:軟體過程 軟體生存周期過程的概念 軟體生存周期過程的分類 軟體生存周期模型的概念 常見的軟體生存周期模型 第一周:課程介紹 課程宣傳片 課程簡介 第二周:軟體需求 需求的作用 需求的定義 需求的分類 需求發現 需求規約的概念和格式 需求規約的作用 項目的需求及需求規約 第三周:結構化分析方法 結構化分析方法的概念 結構化分析模型 結構化分析過程 需求規格說明書 【補充】結構化分析案例 【補充】需求驗證 第三周:結構化設計方法-1 結構化設計概念 初始模組結構圖的設計 初始模組結構圖精化的原則 【補充】總體設計案例 第四周:結構化設計方法-2 初始模組結構圖精化的啟發式規則 接口設計 數據設計 第四周:結構化設計方法-3 詳細設計工具 軟體設計規約 結構化方法總結 【補充】軟體設計評審 第一次課程實踐 第五周:UML-1 面向對象的概念 UML的概念 表達客觀事物的術語——類 第五周:UML-2 表達客觀事物的術語——接口及其他 控制複雜性的術語——包 表達關係的術語——關聯 表達關係的術語——泛化、細化、依賴及如何使用 第六周:UML-3 UML的模型表達工具_概述 UML的模型表達工具_靜態建模——類圖 UML模型表達工具_動態建模——用況圖 | 第六周:UML-4 順序圖 狀態圖 UML總結 第七周:面向對象分析 面向對象分析概述 識別類 識別屬性和操作 識別對象之間的關係 【補充】面向對象分析案例 第七周:面向對象設計-1 面向對象設計概述 問題域部分的概念 如何進行問題域部分的設計 第二次課程實踐 第八周:面向對象設計-2 人機互動部分的設計 控制驅動和數據管理部分的設計 【補充】面向對象設計案例 第八周:編碼實現 程式設計范型和面向對象程式語言的特點發展 如何選擇程式語言 【補充】代碼風格與編程規範 第八周:敏捷開發方法 Scrum模型 敏捷開發概述 極限編程 敏捷設計 第九周:軟體測試-1 軟體測試的概念 軟體測試過程模型和原則 白盒測試技術 第九周:軟體測試-2 黑盒測試技術 軟體測試的步驟 第十周:項目管理 項目管理的概念 項目管理框架和要素 軟體項目管理的概念 【補充】軟體質量 第十周:CMM CMM概念及發展 CMM的基本內容 CMM五級標準 ISO9000標準 第三次課程實踐 第十一周:軟體開發工具與環境 軟體開發工具及環境的定義 工具集成模型 常用的軟體開發工具和環境 補充材料-移動web軟體分析與最佳化 第十二周(補充內容):軟體維護與再工程 軟體維護的概念 軟體維護活動 程式修改 軟體再工程模型 逆向工程 |
課前預備
預備知識
學習資料
書名 | 作者 | ISBN | 出版時間 | 出版社 |
|---|---|---|---|---|
《軟體工程(第3版)》 | 王立福,孫艷春、劉學洋 | 9787301159132 | 2009年 | 北京大學出版社 |
《軟體工程:實踐者的研究方法(第8版)》 | Roger S.、Pressman | 9787111499312 | 2015年 | 機械工業出版社 |
《軟體工程(第9版)》 | Ian Sommerville | 9787111334989 | 2011年 | |
《IT項目管理》 | Kathy Schwalbe | 9787111509561 | 2014年 | |
《軟體測試(原書第2版)》 | Ron Patton | 7111185269 | 2005年 | |
《面向對象的分析與設計》 | 邵維忠、楊芙清 | 9787302301202 | 2012年 | 清華大學出版社 |
《計算機科學技術百科全書(第二版)》 | 張效祥 | 9787302105947 | 2005年 | |
《軟體測試實驗教程》 | 朱少民等 | 9787302523734 | 2019年 | |
(註:表格內容參考資料) | ||||
授課目標
- 從整體上了解軟體工程知識體系,熟悉軟體項目開發的全過程;
- 掌握軟體開發和維護的方法學,了解軟體開發過程和軟體項目管理基礎知識;
- 通過案例教學和課程實踐培養軟體開發和維護的能力;
- 通過課程實踐,培養軟體項目管理的意識,即對一個軟體項目的工作量、成本、進度和人員的計畫和管理。

