《軟件工程》是軟件工程專業(yè)的專業(yè)必修課;計算機科學(xué)與技術(shù),、網(wǎng)絡(luò)工程專業(yè)的專業(yè)限選課,。本課程主要介紹軟件工程的概念,、技術(shù)和方法,,包括軟件的開發(fā)模型,、可行性分析,、需求分析,、軟件設(shè)計、編碼,、測試,、維護;面向數(shù)據(jù)流的分析與設(shè)計方法,、面向?qū)ο蟮姆治雠c設(shè)計方法,;并對軟件重用,、快速原型技術(shù)作簡要的介紹,。旨在培養(yǎng)學(xué)生分析與設(shè)計實際軟件系統(tǒng)的能力及具有熟練使用各類流行軟件技術(shù)解決實際問題的能力和控制軟件質(zhì)量的能力。
課程團隊教學(xué)本著以學(xué)生為中心,,以項目驅(qū)動,,學(xué)生通過項目在做中學(xué),掌握軟件工程的基本概念和原則,,掌握工程化的方法高效地開發(fā)高質(zhì)量軟件的初步能力,,以及項目管理的初步能力,同時提升團隊合作的能力,。
要求掌握軟件工程的基本概念和原則,,能運用軟件工程的基本原理、模型,、方法和過程開發(fā)簡單的應(yīng)用軟件,,增強軟件開發(fā)的工程化和規(guī)范化意識,提高高效率,、高質(zhì)量開發(fā)軟件的能力,。
《 軟件工程》課程教學(xué)大綱
課程名稱(中文): 軟件工程
課程名稱(英文): Software Engineering
課程編號: 112059
課程類別: 理論課程 (理論課程、實驗課程(獨立實驗),、實習(xí)實訓(xùn)類實踐課程)
課程性質(zhì): 必修課 (必修課,、選修課)
學(xué)時學(xué)分:總學(xué)時 56 學(xué)分 3 其中實踐學(xué)時 16
開出時間: 二 年級 第2 學(xué)期
開課單位: 計算機科學(xué)與軟件學(xué)院、大數(shù)據(jù)學(xué)院
適用專業(yè): 軟件工程
先修課程:C程序設(shè)計,、計算機導(dǎo)論,、面向?qū)ο蟮某绦蛟O(shè)計、算法與數(shù)據(jù)結(jié)構(gòu),、數(shù)據(jù)庫系統(tǒng)原理
執(zhí) 筆: 熊芳敏
校 對 人: 岑宇森
審 核:
一,、課程的教學(xué)目標(biāo)和教學(xué)要求
(一)教學(xué)目標(biāo):
通過對《軟件工程》課程進行課程思政的實踐與改革,,使學(xué)生在加強社會主義核心價值觀的同時,理解掌握軟件項目開發(fā)與維護的一般過程,,掌握一些常用的軟件開發(fā)理論,、方法、技術(shù)與標(biāo)準(zhǔn)以及計算機輔助軟件開發(fā)工具和環(huán)境,,增強軟件開發(fā)的工程化和規(guī)范化意識,,培養(yǎng)高效率、高質(zhì)量開發(fā)軟件的能力,,能夠綜合運用專業(yè)知識,、方法和技術(shù),設(shè)計針對計算機應(yīng)用的工程問題的解決方案,,以及滿足特定需求的應(yīng)用系統(tǒng),,并能夠在設(shè)計環(huán)節(jié)中體現(xiàn)創(chuàng)新意識,考慮社會,、健康,、安全、法律,、文化以及環(huán)境等因素,。具備以下核心能力
核心能力1:人文社會科學(xué)素養(yǎng)、良好職業(yè)規(guī)范,;
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力,;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力。
(二)教學(xué)要求:
《軟件工程》課程的教學(xué)要求:緊密結(jié)合當(dāng)前軟件工程的理論與實踐,,全面,、系統(tǒng)地反映軟件工程課程的全貌,講授軟件工程的基本概念,,開發(fā)模型,,開發(fā)管理,需求分析和軟件設(shè)計的方法與技術(shù)以及軟件實現(xiàn)和維護,,力求學(xué)生在實際的軟件開發(fā)過程中能夠靈活運用軟件工程的技術(shù)和方法,;課程思政與專業(yè)教學(xué)同向同行,傳授知識的同時加強學(xué)生的社會主義核心價值觀,,使之具有良好的職業(yè)道德,、敬業(yè)精神和嚴(yán)格的自律意識,具有行業(yè)所需的工程能力,、質(zhì)量意識,、團隊精神、創(chuàng)新精神,,具有較高的思想政治素質(zhì)和道德品質(zhì),,較強的法治,、誠信和行業(yè)政策法規(guī)意識。
二,、教學(xué)時數(shù)分配
章節(jié) | 教學(xué)內(nèi)容 | 教學(xué)時數(shù) |
1 | 軟件工程學(xué)概述 | 4 |
2 | 可行性研究 | 2 |
3 | 需求分析-SA | 12(8理論+4實驗) |
4 | 總體設(shè)計-SD | 8(4理論+4實驗) |
5 | 詳細(xì)設(shè)計 | 4 |
6 | 編碼 | 2 |
7 | 軟件測試 | 4 |
8 | 面向?qū)ο蠓治?/span> | 8(4理論+4實驗) |
9 | 面向?qū)ο笤O(shè)計與實現(xiàn) | 8(4理論+4實驗) |
10 | 軟件維護 | 2 |
11 | 項目管理 | 2 |
合計 | 56 |
三,、主要教學(xué)內(nèi)容與教學(xué)方法
第一章 軟件工程學(xué)概述(2學(xué)時)
【支撐的課程目標(biāo)】核心能力1:人文社會科學(xué)素養(yǎng)、良好職業(yè)規(guī)范
【教學(xué)要求】
1.掌握軟件及軟件危機的概念,;
2.掌握軟件工程及軟件生存周期的概念,;
3.掌握幾種典型的軟件開發(fā)模型的定義及其特點;
4.了解CASE工具及環(huán)境的概念,。
【教學(xué)重點】軟件,、軟件危機及軟件生存周期的概念,開發(fā)模型的定義及其特點
【教學(xué)難點】開發(fā)模型的定義及其特點
【教學(xué)方法】多媒體課堂講授,、提問法
【教學(xué)基本內(nèi)容】
(1)軟件的概念
(2)軟件工程的概念
(3)軟件生存周期
(4)軟件開發(fā)模型
(5)CASE工具及環(huán)境
第二章 可行性分析(2學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力,。
【教學(xué)要求】
1. 了解可行性研究的任務(wù)
2. 了解可行性研究過程,、掌握項目可行性論證的概念和方法
3. 學(xué)習(xí)系統(tǒng)流程圖
4. 熟練掌握數(shù)據(jù)字典的定義方法
【教學(xué)重點】可行性論證,、數(shù)據(jù)字典的定義
【教學(xué)難點】可行性論證,、數(shù)據(jù)字典的定義
【教學(xué)方法】案例教學(xué)法、講授法
【教學(xué)基本內(nèi)容】
1. 可行性研究的任務(wù)
2. 可行性研究過程
3. 系統(tǒng)流程圖
4. 初識數(shù)據(jù)字典
第三章 需求分析-SA(12學(xué)時)
【支撐的課程目標(biāo)】核心能力7
【教學(xué)要求】
1. 理解軟件需求分析階段的主要任務(wù)及其重要性,;
2. 掌握軟件需求分析的主要過程及需求評審的概念,;
3. 理解掌握獲取軟件需求的基本技術(shù)手段及方法;
4. 掌握數(shù)據(jù)流圖,、ER圖,、狀態(tài)轉(zhuǎn)化圖;
5. 掌握數(shù)據(jù)字典的應(yīng)用,;
6. 掌握軟件需求規(guī)格說明書的基本格式,。
【教學(xué)重點】
1. 獲取初步需求的技術(shù);
2. 需求建模,、問題抽象,、問題分解和需求建模的概念
3. 基于數(shù)據(jù)流圖進行需求分析的基本過程
4. ER圖、狀態(tài)轉(zhuǎn)化圖
【教學(xué)難點】獲取初步需求的方法,、基于數(shù)據(jù)流圖進行需求分析
【教學(xué)方法】案例教學(xué)法,、演示法、做實驗
【教學(xué)基本內(nèi)容】
1. 軟件需求分析階段的主要任務(wù)及其重要性,;
2. 軟件需求分析的主要過程,;
3. 獲取軟件需求的基本技術(shù)手段及方法,;
4. 需求建模:數(shù)據(jù)流圖、ER圖,、狀態(tài)轉(zhuǎn)化圖,,理解數(shù)據(jù)字典的作用,并掌握數(shù)據(jù)字典中數(shù)據(jù)條目的定義方法,;
5. 需求規(guī)格說明與評審,。
第四章 總體設(shè)計-SD(8學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
【教學(xué)要求】
1.理解軟件設(shè)計的主要任務(wù),;
2.理解掌握內(nèi)聚度,、耦合度、模塊化與信息隱藏的概念,;
3.啟發(fā)規(guī)則
4.面向數(shù)據(jù)流的設(shè)計方法
5.理解掌握軟件設(shè)計的常用技術(shù)和工具,;
6.了解軟件設(shè)計規(guī)格說明書的主要框架結(jié)構(gòu)及設(shè)計評審。
【教學(xué)重點】
1.啟發(fā)規(guī)則
2.面向數(shù)據(jù)流的設(shè)計方法
3.軟件設(shè)計中常用的技術(shù)和工具
【教學(xué)難點】軟件設(shè)計中常用的技術(shù)和工具,,特別是面向數(shù)據(jù)流的設(shè)計方法
【教學(xué)方法】:案例教學(xué)法,、演示法、做實驗
【教學(xué)基本內(nèi)容】
(1)軟件設(shè)計過程
(2)軟件設(shè)計原理
(3)啟發(fā)規(guī)則
(4)過程設(shè)計技術(shù)和工具
(5)面向數(shù)據(jù)流的設(shè)計方法
(5)設(shè)計規(guī)格說明與評審
第五章 詳細(xì)設(shè)計(4學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力,;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力,。
【教學(xué)要求】
1. 掌握結(jié)構(gòu)化程序設(shè)計
2. 了解并掌握人機界面設(shè)計的主要原則、人機界面設(shè)計的一般過程
3. 掌握程序復(fù)雜度定量度量方法
4. 掌握常用的幾種過程設(shè)計的工具
【教學(xué)重點】
人機界面設(shè)計,、復(fù)雜度計算方法,、判定表
【教學(xué)難點】人機界面設(shè)計、復(fù)雜度計算方法,、
【教學(xué)方法】:案例教學(xué)法,、演示法、做實驗
【教學(xué)基本內(nèi)容】
(1) 結(jié)構(gòu)化程序設(shè)計
(2) 人機界面設(shè)計的主要原則,、人機界面設(shè)計的一般過程,、人機界面標(biāo)準(zhǔn)
(3) 程序復(fù)雜度定量度量方法
(4) 常用的幾種過程設(shè)計的工具:程序流程圖、判定表,、判定樹等,。
第六章 編碼(2學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力;
【教學(xué)要求】
1. 了解程序設(shè)計語言的演變發(fā)展過程,;
2.理解項目開發(fā)時影響程序設(shè)計語言選擇的主要因素,;
3.理解編寫程序時所需遵循的主要標(biāo)準(zhǔn)和原則;
4.理解程序設(shè)計支持環(huán)境及其相關(guān)概念,。
【教學(xué)重點】編程準(zhǔn)則與編程風(fēng)格
【教學(xué)難點】編程準(zhǔn)則與編程風(fēng)格
【教學(xué)方法】案例教學(xué)法,、演示法
【教學(xué)基本內(nèi)容】
(1)程序設(shè)計語言
(3)編程標(biāo)準(zhǔn)
(4)編碼風(fēng)格
第七章 軟件測試(4學(xué)時 )
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力,。
【教學(xué)要求】
1.掌握軟件測試的概念,、目標(biāo)及準(zhǔn)則,;
2.掌握軟件測試的基本步驟及其與軟件開發(fā)之間的關(guān)系;
3.掌握白盒測試的主要工作原理及基本路徑測試方法,;
4.掌握黑盒測試的主要工作原理及幾種主要的黑盒測試方法,;
5.理解掌握四個軟件測試步驟的主要任務(wù)及其常用的軟件測試方法;
6.理解掌握軟件排錯的實現(xiàn)過程及主要排錯方法,;
7.了解軟件測試中的主要CASE工具,。
8. 掌握軟件可靠性的概念
【教學(xué)重點】軟件測試中白盒和黑盒測試技術(shù)以及軟件測試策略
【教學(xué)難點】1.白盒和黑盒測試技術(shù);2.軟件調(diào)試
【教學(xué)方法】:案例教學(xué)法,、演示法,、提問法
【教學(xué)基本內(nèi)容】
(1)軟件測試基礎(chǔ):概念、目標(biāo),、準(zhǔn)則等
(2)單元測試,、集成測試、確認(rèn)測試
(3)軟件測試策略
(4)白盒測試技術(shù)
(5)黑盒測試技術(shù)
(6)基于CASE工具的軟件測試和排錯
(7)軟件可靠性
第八章 面向?qū)ο蠓治觯?學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力,;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力,。
【教學(xué)要求】
1.理解掌握面向?qū)ο蟮闹饕拍罴捌渌枷耄?/span>
2.掌握UML統(tǒng)一建模語言的主要圖形語言機制及其構(gòu)造表示形式;
3.了解基于UML的軟件開發(fā)基本過程以及各階段的主要工作任務(wù),;
4.掌握基于UML的面向?qū)ο笮枨蠓治龇椒ê蛯崿F(xiàn)過程,。
【教學(xué)重點】基于UML的需求分析方法及其實現(xiàn)過程
【教學(xué)難點】基于UML的需求分析方法及其實現(xiàn)過程
【教學(xué)方法】:案例教學(xué)法、演示法,、提問法
【教學(xué)基本內(nèi)容】
(1)面向?qū)ο蠓治龅母拍詈突具^程
(2)UML概述
(3)基于UML的需求分析,,建立對象模型
(4)建立動態(tài)模型
(5)建立功能模型
第九章 面向?qū)ο笤O(shè)計(8學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力,。
【教學(xué)要求】
1.理解掌握面向?qū)ο筌浖O(shè)計的主要任務(wù)及其實現(xiàn)過程,;
2.掌握面向?qū)ο笤O(shè)計的準(zhǔn)則
3.理解軟件重用的三層含義
2.掌握UML統(tǒng)一建模語言中的圖形機制(順序圖、類圖,、活動圖、狀態(tài)圖等)的表示及其在軟件設(shè)計建模(描述)中的應(yīng)用,;
3.掌握類圖的精化設(shè)計原則及其實現(xiàn)過程,。
【教學(xué)重點】采用基于UML的面向?qū)ο笤O(shè)計方法將分析模型轉(zhuǎn)換為設(shè)計模型的步驟
【教學(xué)難點】采用基于UML的面向?qū)ο笤O(shè)計方法將分析模型轉(zhuǎn)換為設(shè)計模型的步驟
【教學(xué)方法】:案例教學(xué)法、演示法,、提問法
【教學(xué)基本內(nèi)容】
(1) 面向?qū)ο笤O(shè)計準(zhǔn)則
(2) 啟發(fā)規(guī)則
(3) 軟件重用
(4) 系統(tǒng)分解
(5) 設(shè)計人機交互子系統(tǒng),、任務(wù)管理子系統(tǒng)、數(shù)據(jù)管理子系統(tǒng)
(6) 設(shè)計類中的服務(wù),、設(shè)計關(guān)聯(lián)
(7) 設(shè)計優(yōu)化
第十章 軟件維護(2學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力,;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力。
【教學(xué)要求】
1.掌握軟件維護的定義和主要類型,;
2.理解掌握軟件維護的一般實現(xiàn)過程,;
3.了解軟件維護的主要特點,。
4.了解軟件再工程過程
【教學(xué)重點】
軟件維護活動的主要類型
【教學(xué)難點】
軟件維護的主要實施過程
【教學(xué)方法】:多媒體講授演示法、提問法
【教學(xué)基本內(nèi)容】
(1)軟件維護的定義,、分類
(2)維護過程
(3)軟件的可維護性
(4)軟件再工程過程
第十一章 軟件項目管理(2學(xué)時)
【支撐的課程目標(biāo)】
核心能力4:算法設(shè)計與程序?qū)崿F(xiàn)能力,;
核心能力5:計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
核心能力7:團隊合作與溝通能力。
【教學(xué)要求】
1. 掌握估算軟件規(guī)模的方法
2. 了解幾種工作量估算的模型
3. 進度計劃
4. 了解并理解質(zhì)量保證的措施
5. 掌握軟件配置管理及一般過程
【教學(xué)重點】估算軟件規(guī)模,、進度計劃
【教學(xué)難點】進度計劃
【教學(xué)方法】:案例法,、講授法
【教學(xué)基本內(nèi)容】
(1) 估算軟件規(guī)模
(2) 工作量估算
(3) 進度計劃
(4) 質(zhì)量保證
(5) 軟件配置管理
參考書目:
[1] 張海藩,牟永敏.《軟件工程導(dǎo)論》(第6版).北京:高等教育出版社,,2013
[2] 呂云翔.軟件工程—理論與實踐(第2版).北京:人民郵電出版社,,2018
[3] 張劍波,方芳,,周順平.軟件工程過程:原理,、方法與工具.北京:高等教育出版社,2019
[4] 鄭人杰,,殷人昆,,陶永雷.實用軟件工程(第二版).北京:清華大學(xué)出版社,1997《軟件工程—理論,、方法與實踐》,,孫家廣編著,高等教育出版社,,2005
[5] 郭清宇,,劉鳳華.實用軟件工程.北京:中國鐵道出版社, 2011
[6] 殷人昆等譯.實用面向?qū)ο筌浖こ探坛?/span>.北京:電子工業(yè)出版社,, 1998
四,、考核方式:
(一)考核方式對課程目標(biāo)的達(dá)成情況:
考核學(xué)生算法設(shè)計與程序?qū)崿F(xiàn)能力;
考核學(xué)生計算機應(yīng)用系統(tǒng)設(shè)計與開發(fā)能力;
考核學(xué)生團隊合作與溝通能力,。
(二)考核方式及具體要求
1.考核方式:閉卷考試+平時成績
2.總成績評定:總評成績=平時成績*10%+實驗成績30%+期末成績60%
3. 平時成績評定:平時成績=考勤*30%+作業(yè)60%+課堂表現(xiàn)10%
4.期末考試:
非疫情情況下都是線下閉卷考試,。考核內(nèi)容按教學(xué)大綱的內(nèi)容進行,,考察學(xué)生對軟件工程基本概念,,開發(fā)模型,開發(fā)管理,,需求分析和軟件設(shè)計的方法與技術(shù)以及軟件實現(xiàn)和維護的掌握程度,,考察學(xué)生綜合應(yīng)用知識及創(chuàng)新能力。