總學時數(shù): 60學時,其中:理論教學 30學時,實踐教學 30 學時
學分:
先修課程:《計算機基礎》,《C語言程序設計》,《數(shù)據(jù)結構》和《數(shù)據(jù)庫原理及其應用》
考核方式:考試
一、制訂大綱的依據(jù)
本大綱根據(jù)2020年計算機應用技術專業(yè)教學計劃制訂
二、課程簡介
軟件工程作為一門專業(yè)主干課,重點要求學生學習與軟件開發(fā)和維護有關的四個方面的主要內容——過程與模型、方法與技術、工具與環(huán)境、標準與規(guī)范。進而通過課程實踐培養(yǎng)學生運用軟件工程基本原理解決實際問題,并從事復雜軟件項目開發(fā)和維護的實踐應用能力與創(chuàng)新能力,努力成為當今信息社會和知識經(jīng)濟時代所需要的高素質計算機專業(yè)人才。
三、課程性質、教育目標
(一)性質:本課程是計算機軟件專業(yè)的專業(yè)主干課。通過本課程的學習,使學生初步建立工程化意識,學會用工程化思想(包括技術、方法與環(huán)境)開發(fā)各種軟件,以軟件的生命周期作為主線,掌握軟件工程的基本理論,進一步系統(tǒng)化、工程化,為今后實際工程中能夠進行系統(tǒng)分析與設計奠定良好的基礎。
(二)教育目標:
通過本課程的教學,應使學生達到以下要求:
1.熟練掌握軟件與軟件工程基本概念和基本知識。
2.熟練掌握生存周期與軟件開發(fā)模式。
3.掌握結構化程序設計的編程思想。
4.掌握面向對象分析、設計與編碼方法。
5.掌握有關軟件的評審、測試與維護,項目計劃與項目管理方法。
6. 能用軟件工程的方法參與軟件項目的分析、設計、實現(xiàn)和維護。
四、課程教學內容與基本要求(課程教學內容、重難點、基本要求、教法說明)
《軟件工程》的教學分為理論教學和實驗教學兩個環(huán)節(jié),本部分為理論教學大綱。
第1章、軟件工程學概述
1、課程教學內容:
1) 軟件危機
2) 軟件工程
3) 軟件生命周期
4) 軟件過程。
2、基本要求:產(chǎn)生軟件危機的原因及解決途徑,軟件工程的基本原理,軟件工程方法學,軟件生命周期中各階段的基本任務,軟件過程模型。
3、重點:軟件工程的基本原理,軟件生命周期中各階段的基本任務。
4、難點:各類軟件過程模型的特點及適用范圍。
5、教法說明:通過一些具體的軟件危機事例來充分說明軟件工程的重要性,使學生對本課程產(chǎn)生濃厚的興趣。
第2章、可行性研究
1、課程教學內容:
1) 可行性研究的任務
2) 可行性研究過程
3) 系統(tǒng)流程圖
4) 數(shù)據(jù)流圖
5) 數(shù)據(jù)字典
6) 成本/效益分析。
2、基本要求:可行性研究的任務,系統(tǒng)流程圖、數(shù)據(jù)流圖和數(shù)據(jù)字典的畫法,成本/效益分析的方法。
3、重點:系統(tǒng)流程圖、數(shù)據(jù)流圖和數(shù)據(jù)字典的畫法。
4、難點:數(shù)據(jù)流圖和數(shù)據(jù)字典的畫法。
5、教法說明:可用學生比較熟悉的系統(tǒng)來講解數(shù)據(jù)流圖和數(shù)據(jù)字典的建立,以合適的項目為分析對象,要求學生建立起數(shù)據(jù)流圖,作為課后作業(yè),并對學生作業(yè)進行分析和討論。
第3章、需求分析
1、課程教學內容:
1) 需求分析的任務
2) 與用戶溝通獲取需求的方法
3) 分析建模與規(guī)格說明
4) 實體—聯(lián)系圖
5) 數(shù)據(jù)規(guī)范化
6) 狀態(tài)轉換圖
7) 其他圖形工具
8) 驗證軟件需求。
2、基本要求:分析建模、規(guī)格說明和數(shù)據(jù)的規(guī)范化,實體-聯(lián)系圖、狀態(tài)轉換圖和常用圖形工具的使用方法,驗證軟件需求的方法。
3、重點:實體-聯(lián)系圖、狀態(tài)轉換圖和常用圖形工具的使用方法。
4、難點:狀態(tài)轉換圖等常用圖形工具的使用方法。
5、教法說明:可提供一份具體需求分析報告供學生分析和學習。
第4章、形式化說明技術
1、課程教學內容:
1) 形式化說明技術概述
2) 有窮狀態(tài)機
3) Petri網(wǎng)
4) Z語言。
2、基本要求:形式化方法的優(yōu)缺點,有窮狀態(tài)機、Petri網(wǎng)和Z語言三種典型的形式化方法,應用形式化方法的準則。
3、重點:形式化方法的優(yōu)缺點,應用形式化方法的準則。
4、難點:有窮狀態(tài)機、Petri網(wǎng)和Z語言三種典型的形式化方法。
5、教法說明:本章只要求學生簡單了解形式化說明技術的重要性,對幾種技術的詳細內容不做要求,老師了根據(jù)個人興趣讓學生自行安排。
第5章、總體設計
1、課程教學內容:
1) 設計過程
2) 設計原理
3) 啟發(fā)規(guī)則
4) 描繪軟件結構的圖形工具
5) 面向數(shù)據(jù)流的設計方法。
2、基本要求:總體設計的過程,軟件設計的概念和原理、啟發(fā)式規(guī)則,常用圖形工具的使用方法,面向數(shù)據(jù)流的設計方法。
3、重點:軟件設計的概念和原理、啟發(fā)式規(guī)則,面向數(shù)據(jù)流的設計方法。
4、難點:面向數(shù)據(jù)流的設計方法。
5、教法說明:本章內容非常重要,可讓學生用第三章的需求分析實例進行總體設計。
第6章、詳細設計
1、課程教學內容:
1) 結構程序設計
2) 人機界面設計
3) 過程設計的工具
4) 面向數(shù)據(jù)結構的設計方法
5) 程序復雜程度的定量度量。
2、基本要求:結構程序設計的概念,人機界面設計,常用的詳細設計工具使用方法,Jackson程序設計方法,程序復雜程序的定量度量。
3、重點:常用的詳細設計工具,包括流程圖、盒圖、PAD圖、判定樹和判定表的使用方法,Jackson程序設計方法以及程序復雜性定量度量方法McCabe基本思路。
4、難點:Jackson程序設計方法以及程序復雜性定量度量McCabe的方法。
5、教法說明:講解人機界面設計中,可向學生展示不同系統(tǒng)的多種界面;Jackson方法也結合實例進行講解。
第7章、實現(xiàn)
1、課程教學內容:
1) 編碼
2) 軟件測試基礎,
3) 單元測試
4) 集成測試
5) 確認測試
6) 白盒測試技術
7) 黑盒測試技術
8) 調試
9) 軟件可靠性。
2、基本要求:軟件測試的有關的基本概念和步驟,單元測試、集成測試和確認測試的方法,白盒測試和黑盒測試技術,軟件調試技術和軟件可靠性估算方法。
3、重點:單元測試、集成測試和確認測試的方法,白盒測試和黑盒測試技術。
4、難點:白盒測試和黑盒測試技術的測試用例設計。
5、教法說明:介紹一些與軟件測試技術相關的背景知識,特別是涉及到的一些數(shù)學知識。
第8章、維護
1、課程教學內容:軟件維護的定義,軟件維護的特點,軟件維護過程,軟件的可維護性,預防性維護,軟件再工程過程。
2、基本要求:軟件維護的定義、特點及軟件再工程過程,軟件維護的過程,軟件可維護性的概念以及決定軟件可維護性的因素。
3、重點:軟件維護的過程,軟件的可維護性。
4、難點:軟件維護的過程。
5、教法說明:應用實例來說明軟件維護的重要性,并與學生討論。
第9章、面向對象方法學引論
1、課程教學內容:
1) 面向對象方法學概述
2) 面向對象的概念
3) 面向對象建模
4) 對象模型
5) 動態(tài)模型
6) 功能模型
7) 3種模型之間的關系。
2、基本要求:面向對象方法學要點、優(yōu)點、噴泉模型,面向對象的基本概念,對象模型,動態(tài)模型,功能模型。
3、重點:對象模型,功能模型。
4、難點:三種模型的功能和關系。
5、教法說明:將結構化分析的案例和習題改用面向對象方法進行分析,讓學生對這兩種方法進行對比。
第10章、面向對象分析
1、課程教學內容:
1) 面向對象分析的基本過程
2) 需求陳述
3) 建立對象模型
4) 建立動態(tài)模型
5) 建立功能模型
6) 定義服務。
2、基本要求:面向對象分析的基本過程,需求陳述,建立對象模型、功能模型和動態(tài)模型。
3、重點:建立對象模型、功能模型和動態(tài)模型的方法。
4、難點:動態(tài)模型的建立。
5、教法說明:要求學生結合具體案例,完成一個綜合作業(yè),以熟悉面向對象分析的思想。
第11章、面向對象設計
1、課程教學內容:
1) 面向對象設計的準則
2) 啟發(fā)規(guī)則
3) 軟件重用
4) 系統(tǒng)分解
5) 設計問題子系統(tǒng)
6) 設計人機交互子系統(tǒng)
7) 設計任務管理子系統(tǒng)
8) 設計數(shù)據(jù)管理子系統(tǒng)
9) 設計類中的服務
10) 設計關聯(lián)
11) 設計優(yōu)化
2、基本要求:面向對象設計準則,軟件重用的基本思想,問題域、人機交互、任務管理和數(shù)據(jù)管理的設計策略。
3、重點:面向對象設計準則,軟件重用的基本思想。
4、難點:設計優(yōu)化。
5、教法說明:注意將面向對象設計準則和啟發(fā)規(guī)則與結構化方法進行比較。
第12章、 面向對象實現(xiàn)
1、課程教學內容:
1) 程序設計語言
2) 程序設計風格
3) 測試策略
4) 設計測試用例
2、基本要求:面向對象語言的優(yōu)點和技術特點,面向對象程序設計遵循的新準則。
3、重點:面向對象程序設計語言的特點。
4、難點:測試策略。
5、教法說明:與結構化方法進行比較。
第13章、 軟件項目管理
1、課程教學內容:
1) 估算軟件規(guī)模
2) 工作量估算
3) 進度計劃
4) 人員組織
5) 質量保證
6) 軟件配置管理。
2、基本要求:人員組織和能力成熟度模型,軟件規(guī)模和工作量的估算方法,進度計劃和質量保證技術。
3、重點:軟件規(guī)模和工作量的估算方法,軟件配置管理過程。
4、難點:軟件規(guī)模和工作量的估算方法及其對CMM的深刻理解。
5、教法說明:結合具體案例進行講述,并在課堂上進行討論。
五、學時(理論和實踐)分配表
序號 | 教學內容 | 課時分配 | ||
理論教學 | 實踐教學 | 考核權重 | ||
1 | 軟件工程學概述 | 6 | 0 | 10 |
2 | 可行性研究 | 4 | 1 | 5 |
3 | 需求分析 | 4 | 2 | 15 |
4 | 形式化說明技術 | 5 | 2 | 15 |
5 | 總體設計 | 6 | 4 | 10 |
6 | 詳細設計 | 6 | 4 | 10 |
7 | 實現(xiàn) | 6 | 4 | 15 |
8 | 維護 | 6 | 5 | |
9 | 面向對象方法學引論 | 1 | 2 | |
10 | 面向對象分析 | 1 | 2 | |
11 | 面向對象設計 | 1 | 2 | |
12 | 面向對象實現(xiàn) | 1 | 2 | |
13 | 軟件項目管理 | 4 | 7 |
六、學習教學場地、設施要求(課程中的實踐部分)
序號 | 項目(實驗)名稱 | 學習教學場地、設施要求 |
1 | 項目立項和可行性分析 | 教室 |
2 | 需求分析與建模 | |
3 | 總體設計與詳細設計 | |
4 | 程序設計語言的選擇和編程 | |
5 | 測試 | |
6 | 項目管理 |
。
七、考核及評分辦法
本課程擬采取結構評分方式,總成績=平時成績 + 期末考試成績。
平時成績=作業(yè)成績+實驗成績;平時成績占總成績的30%,其中作業(yè)成績占總成績的10%,實驗成績占總成績的20%,期末考試根據(jù)教學大綱統(tǒng)一命題,占總成績的70%。
八、學習資源的選用
建議教材
張海藩,軟件工程導論(第六版),清華出版社,2018.2
教學參考書
1 蔡敏等,UML基礎和Rose建模教程,人民郵電出版社,2016年
2 李芷,軟件工程方法與實踐,電子工業(yè)出版社,2014年
3 鄭人杰,實用軟件工程(第二版),清華大學出版社,2007年