複製鏈接
請複製以下鏈接發送給好友

軟件工程

(北京大學提供的慕課)

鎖定
軟件工程課程是北京大學於2018年9月20日首次在中國大學MOOC開設的慕課課程、國家精品在線開放課程國家級精品資源共享課國家級一流本科課程。該課程授課教師為孫豔春、黃罡、劉譞哲。據2021年3月中國大學MOOC官網顯示,該課程已開課6次。 [1-2] 
軟件工程課程共12個章節,包括軟件工程概論、軟件過程、軟件需求、結構化分析方法、結構化設計方法、UML、面向對象分析、面向對象設計、編碼實現、敏捷開發方法等內容。 [2] 
中文名
軟件工程
類    別
慕課、國家精品在線開放課程、國家級精品資源共享課、國家級一流本科課程
提供院校
北京大學
授課平台
中國大學MOOC
開課時間
2018年9月20日(首次)
授課教師
孫豔春、黃罡、劉譞哲

軟件工程課程性質

軟件工程課程背景

隨着信息技術的發展,軟件已經深入到人類社會生產和生活的各個方面。軟件工程將工程化的方法運用到軟件的開發、運行和維護之中,以達到提高軟件質量,降低開發成本的目的。軟件工程已經成為21世紀最活躍、最熱門的學科之一。在此背景下,北京大學開設了軟件工程MOOC課程。 [2] 

軟件工程課程定位

軟件工程課程是一門導論性課程。 [2] 

軟件工程適應對象

軟件工程課程適合計算機專業和軟件工程專業的本科生,以及從事軟件開發和項目管理工作的人員。 [2] 

軟件工程開課信息

開課次數
開課時間
授課教師
學時安排
參與人數
第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] 

軟件工程課程簡介

軟件工程課程介紹了軟件工程所涉及的各方面知識,包括軟件過程、軟件需求、結構化分析和設計方法、面向對象分析和設計方法、敏捷開發方法、軟件測試、軟件項目管理、軟件開發工具和環境。該課程還包含了實踐環節,通過一個小型軟件項目,幫助體驗軟件開發的各個環節,並形成項目管理的意識。 [2] 

軟件工程課程大綱

第1次開課課程大綱
第1章 軟件工程概論、軟件過程
第2章 軟件需求
第3章 結構化方法1
第4章 結構化方法2
第5章 面向對象方法1
第6章 面向對象方法2
第7章 面向對象方法3
第8章 面向對象方法4與敏捷開發方法
第9章 軟件測試
第10章 軟件項目管理
第11章 軟件開發工具和環境
第2~5次開課課程大綱
第一週:軟件工程概論
軟件的定義及特點
軟件工程的起源和概念
軟件開發的本質和基本手段
軟件工程框架
補充材料-軟件工程新視野
第一週:軟件過程
軟件生存週期過程的概念
軟件生存週期過程的分類
軟件生存週期模型的概念
常見的軟件生存週期模型
第一週:課程介紹
課程宣傳片
課程簡介
第二週:軟件需求
需求的作用
需求的定義
需求的分類
需求發現
需求規約的概念和格式
需求規約的作用
項目的需求及需求規約
第三週:結構化分析方法
結構化分析方法的概念
結構化分析模型
結構化分析過程
需求規格説明書
【補充】結構化分析案例
【補充】需求驗證
第三週:結構化設計方法-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軟件分析與優化
第6次開課課程大綱
第一週:軟件工程概論
軟件的定義及特點
軟件工程的起源和概念
軟件開發的本質和基本手段
軟件工程框架
補充材料-軟件工程新視野
第一週:軟件過程
軟件生存週期過程的概念
軟件生存週期過程的分類
軟件生存週期模型的概念
常見的軟件生存週期模型
第一週:課程介紹
課程宣傳片
課程簡介
第二週:軟件需求
需求的作用
需求的定義
需求的分類
需求發現
需求規約的概念和格式
需求規約的作用
項目的需求及需求規約
第三週:結構化分析方法
結構化分析方法的概念
結構化分析模型
結構化分析過程
需求規格説明書
【補充】結構化分析案例
【補充】需求驗證
第三週:結構化設計方法-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] 

軟件工程課前預備

軟件工程預備知識

學習軟件工程課程需熟悉一門高級程序設計語言。 [2] 

軟件工程學習資料

書名
作者
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年
(注:表格內容參考資料 [2]  [9-16] 

軟件工程授課目標

  • 從整體上了解軟件工程知識體系,熟悉軟件項目開發的全過程;
  • 掌握軟件開發和維護的方法學,瞭解軟件開發過程和軟件項目管理基礎知識;
  • 通過案例教學和課程實踐培養軟件開發和維護的能力;
  • 通過課程實踐,培養軟件項目管理的意識,即對一個軟件項目的工作量、成本、進度和人員的計劃和管理。 [2]  [8] 

軟件工程所獲榮譽

2016年,軟件工程課程被教育部確定為第一批“國家級精品資源共享課”; [3] 
2019年,軟件工程課程被認定為國家精品在線開放課程; [17] 
2020年,軟件工程課程被教育部認定為首批“國家級一流本科課程”(線上一流課程)。 [4] 

軟件工程教師簡介

孫豔春,博士,北京大學信息科學技術學院副教授; [5] 
黃罡,博士,北京大學教授、博導,軟件研究所副所長,操作系統研究中心主任; [6] 
劉譞哲,博士,北京大學信息科學技術學院副教授,博士生導師。 [7] 
參考資料
展開全部 收起