《軟件工程》教學(xué)大綱
課程名稱:
軟件工程
課程編號:
436406
適用專業(yè):
軟件工程
課程類別:
專業(yè)任選課
課程學(xué)分:
3
總學(xué)時:
48
其中:理論學(xué)時
32
實驗學(xué)時
16
先修課程:
C語言程序設(shè)計、面向?qū)ο蟪绦蛟O(shè)計、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫原理
一、課程的性質(zhì)、目的與任務(wù)
《軟件工程》是計算機(jī)各專業(yè)本科生的一門綜合性與實踐性很強的核心課程,在軟件工程學(xué)科人才培養(yǎng)體系中占有重要的地位。軟件開發(fā)是建立計算機(jī)應(yīng)用系統(tǒng)的重要環(huán)節(jié),人們通過軟件工程學(xué)把軟件開發(fā)納入工程化的軌道,而軟件工程學(xué)是用以指導(dǎo)軟件人員進(jìn)行軟件的開發(fā)、維護(hù)和管理的科學(xué)。主要內(nèi)容包括可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計、面向?qū)ο蠓治雠c設(shè)計、編碼、軟件質(zhì)量、項目計劃與管理、軟件維護(hù)等內(nèi)容。
通過本課程的學(xué)習(xí),要求學(xué)生達(dá)到:
1.掌握軟件工程的基本概念和基礎(chǔ)理論知識;
2.熟練地運用各種實用開發(fā)方法和基本技術(shù)方法從事各種類型軟件項目的工程化開發(fā);
3.了解軟件工程各領(lǐng)域的發(fā)展動向,成為具有獨立工作能力的高素質(zhì)高水平的軟件人才。
二、課程教學(xué)基本內(nèi)容與要求
第一章 軟件工程學(xué)概述
(一)基本教學(xué)內(nèi)容
1.1 軟件危機(jī)
1.2 軟件工程
1.3 軟件生命周期
1.4 軟件過程
(二)基本要求
教學(xué)目的:通過本章的學(xué)習(xí),了解和掌握軟件工程的基本概念(如軟件和軟件工程的定義、等),軟件危機(jī)的表現(xiàn)形式、產(chǎn)生的原因及消除的途徑,軟件工程的基本原理、方法學(xué),軟件的生存期,幾種主要的軟件開發(fā)模型等。
教學(xué)重點:軟件工程的概念、消除軟件危機(jī)的途徑 。
教學(xué)難點:軟件工程危機(jī)起因。
第二章 可行性研究
(一)基本教學(xué)內(nèi)容
2.1 可行性研究的任務(wù)
2.5 數(shù)據(jù)字典
2.6 成本/效益分析
2.7 可行性研究報告
(二)基本要求
教學(xué)目的:深刻理解可行性研究的必要性,掌握可行性研究的任務(wù)、過程、成本效益分析以及可行性研究報告的主要內(nèi)容;掌握系統(tǒng)流程圖、數(shù)據(jù)流程圖、數(shù)據(jù)字典概念以及項目開發(fā)計劃的基本內(nèi)容。
教學(xué)重點:可行性研究的目的、基本分析步驟及基本分析工具。
教學(xué)難點:可行性研究的基本工具(流程圖、數(shù)據(jù)字典等)。
第三章 需求分析
(一)基本教學(xué)內(nèi)容
3.1 需求分析的任務(wù)
3.2 與用戶溝通獲取需求的方法
3.3 分析建模與規(guī)格說明
3.4 數(shù)據(jù)規(guī)范化
3.5 驗證軟件需求
(二)基本要求
教學(xué)目的:掌握需求分析的任務(wù),需求獲取的方法、分析建模與需求規(guī)格說明,掌握數(shù)據(jù)建模的實體聯(lián)系圖、數(shù)據(jù)規(guī)范化,掌握描述系統(tǒng)行為模型的狀態(tài)轉(zhuǎn)換圖,掌握層次方框圖、Warnier圖、IPO(HIPO)圖。掌握驗證軟件需求的必要性、方法。
教學(xué)重點:需求分析的概念、需求分析的基本步驟與開展需求分析所使用的基本方法。教學(xué)難點:需求分析的重要性、需求分析的基本方法。
第四章 形式化說明技術(shù)(選講)
(一)基本教學(xué)內(nèi)容
4.1 概述
4.2 有窮狀態(tài)機(jī)
4.3 Petri網(wǎng)
4.4 Z語言
(二)基本要求
教學(xué)目的:掌握形式化方法的概念、優(yōu)點和應(yīng)用準(zhǔn)則,初步掌握有窮狀態(tài)機(jī)、Petri網(wǎng)、Z語言的概念和使用。
教學(xué)重點:掌握形式化方法的概念、優(yōu)點和應(yīng)用準(zhǔn)則,初步掌握有窮狀態(tài)機(jī)、Petri網(wǎng)、Z語言的概念和使用。
教學(xué)難點:形式化方法的具體應(yīng)用方法。
第五章 總體設(shè)計
(一)基本教學(xué)內(nèi)容
5.1 設(shè)計過程
5.2 設(shè)計原理
5.3 啟發(fā)規(guī)則
5.4 描繪軟件結(jié)構(gòu)的圖形工具
5.5 面向數(shù)據(jù)流的設(shè)計方法
(二)基本要求
教學(xué)目的:了解軟件總體設(shè)計的目的、任務(wù),掌握軟件總體設(shè)計的過程、設(shè)計原理和啟發(fā)規(guī)則,掌握描述軟件結(jié)構(gòu)的工具以及面向數(shù)據(jù)流的設(shè)計方法。能夠?qū)⒕唧w的數(shù)據(jù)流圖的轉(zhuǎn)換為軟件的結(jié)構(gòu)圖,即變換分析技術(shù)和事務(wù)分析技術(shù)。
教學(xué)重點:總體設(shè)計的主要內(nèi)容、模塊化的設(shè)計思想及開展總體設(shè)計的基本方法和常用工具。
教學(xué)難點:總體設(shè)計的基本方法與常用工具方法。
第六章 詳細(xì)設(shè)計
(一)基本教學(xué)內(nèi)容
6.1 結(jié)構(gòu)程序設(shè)計
6.2 人機(jī)界面設(shè)計
6.3 過程設(shè)計的工具
6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法
6.5 程序復(fù)雜程度的定量度量
(二)基本要求
教學(xué)目的:了解軟件詳細(xì)設(shè)計階段的目的、任務(wù)和結(jié)構(gòu)化程序設(shè)計的概念,掌握人機(jī)界面設(shè)計的方法、過程設(shè)計的工具以及面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法,了解程序復(fù)雜程度的定量度量。
教學(xué)重點:詳細(xì)設(shè)計的任務(wù)、設(shè)計方法的應(yīng)用。
教學(xué)難點:詳細(xì)設(shè)計的設(shè)計方法及其應(yīng)用、程序復(fù)雜程度的定量度量。
第七章 實現(xiàn)
(一)基本教學(xué)內(nèi)容
7.1 編碼
7.2 軟件測試基礎(chǔ)
7.3 單元測試
7.4 集成測試
7.5 確認(rèn)測試
7.6 白盒測試技術(shù)
7.7 黑盒測試技術(shù)
7.8 調(diào)試
7.9 軟件可靠性
(二)基本要求
教學(xué)目的:了解如何選擇程序設(shè)計語言,培養(yǎng)良好的編碼風(fēng)格,掌握軟件測試的目標(biāo)、準(zhǔn)則、方法和步驟,掌握單元測試、集成測試、確認(rèn)測試的方法步驟,掌握白盒測試和黑盒測試技術(shù)的概念、方法,掌握調(diào)試過程與途徑,了解軟件可靠性的概念及其計算方法。能夠按照測試的原則和技術(shù),分析確定高效的測試用例。
教學(xué)重點:程序設(shè)計語言與程序設(shè)計途徑、軟件測試方法。
教學(xué)難點:程序設(shè)計途徑、黑盒測試、白盒測試。
第八章 維護(hù)
(一)基本教學(xué)內(nèi)容
8.1 軟件維護(hù)的定義
8.2 軟件維護(hù)的特點
8.3 軟件維護(hù)過程
8.4 軟件的可維護(hù)性
8.5 預(yù)防性維護(hù)
8.6 軟件再工程過程
(二)基本要求
教學(xué)目的:了解軟件維護(hù)的定義,掌握軟件維護(hù)的特點和過程,軟件的可維護(hù)性的定義及提高可維護(hù)性的方法。掌握預(yù)防性維護(hù)和軟件再工程過程的概念、方法。
教學(xué)重點:軟件維護(hù)的基本概念及維護(hù)過程、軟件的可維護(hù)性的度量方法。
教學(xué)難點:軟件的可維護(hù)性的度量方法和軟件再工程過程。
第九章 面向?qū)ο蠓椒▽W(xué)引論
(一)基本教學(xué)內(nèi)容
9.1 面向?qū)ο蠓椒▽W(xué)概述
9.2 面向?qū)ο蟮母拍?/p>
9.3 面向?qū)ο蠼?/p>
9.4 對象模型
9.5 動態(tài)模型
9.6 功能模型
9.7 3種模型之間的關(guān)系
(二)基本要求
教學(xué)目的:了解面向?qū)ο蠓椒▽W(xué)的要點和優(yōu)點,掌握面向?qū)ο蟮母拍?、建模,掌握對象模型、動態(tài)模型、功能模型以及三種模型的關(guān)系。
教學(xué)重點:面向?qū)ο蟮幕靖拍?、面向?qū)ο蠼<叭N模型形式。
教學(xué)難點:建立對象模型、動態(tài)模型、功能模型的方法、三種模型之間的相互關(guān)系。
第十章 面向?qū)ο蠓治觯ㄟx講)
(一)基本教學(xué)內(nèi)容
10.1 面向?qū)ο蠓治龅幕具^程
10.2 需求陳述
10.3 建立對象模型
10.4 建立動態(tài)模型
10.5 建立功能模型
10.6 定義服務(wù)
(二)基本要求
教學(xué)目的:掌握面向?qū)ο蠓治龅倪^程、需求陳述,能夠根據(jù)具體問題建立對象模型、動態(tài)模型、功能模型以及確定對象的服務(wù)。
教學(xué)重點:面向?qū)ο蠓治龅幕具^程、需求陳述的方法、面向?qū)ο蠓治鲋薪⑷N模型的具體方法。
教學(xué)難點:需求陳述、面向?qū)ο蠓治鲋薪⑷N模型的具體方法。
第十一章 面向?qū)ο笤O(shè)計(選講)
(一)基本教學(xué)內(nèi)容
11.1 面向?qū)ο笤O(shè)計的準(zhǔn)則
11.2 啟發(fā)規(guī)則
11.3 軟件重用
11.4 系統(tǒng)分解
11.5 設(shè)計問題域子系統(tǒng)
11.6 設(shè)計人機(jī)交互子系統(tǒng)
11.7 設(shè)計任務(wù)管理子系統(tǒng)
11.8 設(shè)計數(shù)據(jù)管理子系統(tǒng)
11.9 設(shè)計類中的服務(wù)
11.10 設(shè)計關(guān)聯(lián)
11.11 設(shè)計優(yōu)化
(二)基本要求
教學(xué)目的:了解面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)規(guī)則,掌握軟件重用的概念和方法,掌握系統(tǒng)分解的方法,掌握設(shè)計問題域子系統(tǒng)、設(shè)計人機(jī)交互子系統(tǒng)、設(shè)計任務(wù)管理子系統(tǒng)、設(shè)計數(shù)據(jù)管理子系統(tǒng)、設(shè)計類中的服務(wù)、設(shè)計關(guān)聯(lián)以及設(shè)計優(yōu)化的方法。
教學(xué)重點:面向?qū)ο笤O(shè)計的準(zhǔn)則、面向?qū)ο蟾髯酉到y(tǒng)設(shè)計方法及過程,類的設(shè)計方法。
教學(xué)難點:面向?qū)ο笤O(shè)計準(zhǔn)則的運用、類的設(shè)計方法、設(shè)計優(yōu)化的具體運用。
第十二章 面向?qū)ο髮崿F(xiàn)(選講)
(一)基本教學(xué)內(nèi)容
12.1 程序設(shè)計語言
12.2 程序設(shè)計風(fēng)格
12.3 測試策略
12.4 設(shè)計測試用例
(二)基本要求
教學(xué)目的:掌握面向?qū)ο笳Z言的特點以及如何選擇面向?qū)ο蟮拈_發(fā)工具,養(yǎng)成良好的程序設(shè)計風(fēng)格,掌握面向?qū)ο蟮能浖y試的特點和策略,能夠設(shè)計測試用例。
教學(xué)重點:測試的基本概念、測試方案的設(shè)計、軟件可靠性的概念。
教學(xué)難點:測試方案的設(shè)計、軟件可靠性的概念。
第十三章 軟件項目管理
(一)基本教學(xué)內(nèi)容
13.1 估算軟件規(guī)模
13.2 工作量估算
13.3 進(jìn)度計劃
13.4 人員組織
13.5 質(zhì)量保證
13.6 軟件配置管理
13.7 能力成熟度模型
(二)基本要求
教學(xué)目的:掌握估算軟件規(guī)模和工作量的技術(shù),能夠根據(jù)項目制定合理的進(jìn)度計劃,掌握團(tuán)隊組織的基本方法,了解軟件的質(zhì)量指標(biāo)并掌握軟件質(zhì)量保證的措施,掌握軟件配置管理,了解能力成熟度模型。
教學(xué)重點:估算軟件規(guī)模、估算軟件開發(fā)工作量、制定進(jìn)度計劃的方法;人員組織、質(zhì)量保證、軟件配置管理的基本概念。
教學(xué)難點:估算軟件開發(fā)工作量、制定進(jìn)度計劃的方法、能力成熟度模型的基本概念。
三、課程各章節(jié)學(xué)時分配
序號
內(nèi)容
理論學(xué)時
實驗學(xué)時
1
軟件危機(jī)與軟件工程
2
0
2
可行性研究
4
2
3
需求分析
4
4
4
總體設(shè)計
4
2
5
詳細(xì)設(shè)計
4
4
6
實現(xiàn)
6
4
7
維護(hù)
2
0
8
面向?qū)ο蠓椒▽W(xué)引論
2
0
9
軟件項目管理
4
0
合計
32
16
四、本課程課外學(xué)習(xí)與修學(xué)指導(dǎo)
針對《軟件工程》的課程特點,為加強實踐環(huán)節(jié),提高學(xué)生學(xué)習(xí)的主動性,可將學(xué)生分組進(jìn)行項目實踐,提高學(xué)生的團(tuán)隊合作能力。讓學(xué)生利用課外時間相對獨立完成一個模擬的科研項目,這些項目都是從實際項目中提煉出來的,具有典型性、客觀性和啟發(fā)性,教師采用點拔方式或共同探究的方式進(jìn)行指導(dǎo)。項目完成后,教師要求學(xué)生寫專題論文,啟發(fā)他們的思維,表達(dá)他們的見解,鼓勵學(xué)生在本課程的學(xué)習(xí)中學(xué)會聯(lián)系相關(guān)課程(如網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫等)的知識去思考和解決問題。
五、本課程考核方式及成績評定標(biāo)準(zhǔn)
考核方式:閉卷考試
成績評定方法:本課程的考核是平時成績、實驗成績和期終考試成績相結(jié)合。具體比例為:上課出勤、作業(yè)占20%,實驗占20%,期末考試成績占60%。
其中期未考試總分100分,基礎(chǔ)題占50%,中等難度題占35%,較難題占15%。考試題型主要有:選擇題、填空題、判斷題、簡答題、分析題、設(shè)計題等。
六、教材及參考書
教材:張海藩編著,軟件工程導(dǎo)論(第5版).北京:清華大學(xué)出版社,2008
主要參考書:
[1]鄭人杰等著《實用軟件工程》:清華大學(xué)出版社,1997,2
[2]史濟(jì)民著《軟件工程原理、方法與應(yīng)用》:高等教育出版社,2003,12
[3]殷人昆等譯《實用面向?qū)ο筌浖こ探坛獭罚弘娮庸I(yè)出版社,1998.6
[4]張海藩著《軟件工程導(dǎo)論學(xué)習(xí)輔導(dǎo)》:清華大學(xué)出版社,2003
大綱撰寫人:唐海波、顏富強
大綱審閱人:羅如為
教學(xué)副主任:易葉青
編寫日期:2012.6