嶺南師范學院大學本科專業(yè)教學大綱
中文課程名稱:軟件工程
英文課程名稱:Software Engineering
適用專業(yè):計算機科學與技術
制定單位:信息工程學院
執(zhí)筆人:周迎春
審核人:
單位負責人:
制定時間:
嶺南師范學院教務處
二〇一七年一月
《 軟件工程 》課程教學大綱
一、課程基本信息
(一)課程代碼及課程名稱
1.課程代碼:08191060
2.課程名稱(中/英文): 軟件工程/Software Engineering
(二)課程類別及課程性質
專業(yè)選修課
(三)學時及學分:
總學時數(shù):44;總學分數(shù):2.5。
其中,講授學時:36 ,實踐(實驗)學時:8。
(四)適用專業(yè)及開設學期
適用專業(yè):計算機科學與技術(本科)
開設學期:第二學期
(五)先修課程與后續(xù)課程
先修課程:高級語言程序設計、數(shù)據(jù)結構
后續(xù)課程:系統(tǒng)分析與設計、軟件項目管理
二、課程簡介
《軟件工程》課程是計算機科學與技術專業(yè)教學計劃中一門綜合性和實踐性很強的核心課程,主要內容包括軟件工程概述、軟件開發(fā)所需要的過程、活動和任務,以及這些過程、活動和任務的組織、實施和管理;軟件開結構化開發(fā)方法、面向對象開發(fā)方法;軟件測試技術;軟件項目的軟件過程管理;軟件開發(fā)組織過程改進途徑。
根據(jù)培養(yǎng)基層應用型人才的需要,本課程的目的與任務是使學生通過本課程的學習,了解軟件項目開發(fā)和維護的一般過程,掌握軟件開發(fā)的傳統(tǒng)方法和最新方法,為今后更深入地學習和從事軟件工程實踐打下良好的基礎。
三、教學目的與基本要求
(一)該課程教學目的與專業(yè)培養(yǎng)要求對應關系矩陣
培養(yǎng)要求
課程名稱 | 培養(yǎng) 要求1 | 培養(yǎng) 要求2 | 培養(yǎng) 要求3 | 培養(yǎng) 要求4 | 培養(yǎng) 要求5 | 培養(yǎng) 要求6 | 培養(yǎng) 要求7 | 培養(yǎng) 要求8 | …… | …… |
● | ◎ | ○ | ◎ | ◎ |
說明:表格要清晰展示該課程與每項培養(yǎng)要求達成的關聯(lián)度情況,關聯(lián)度強的用“●”標識,關聯(lián)度中等的用“◎”標識,關聯(lián)度弱的用“○”標識;每門課程與4-8項(底線為總培養(yǎng)要求的50%)培養(yǎng)要求相關聯(lián)。
(二)教學目的
通過本課程的學習,使學生具備從事軟件開發(fā)的基本素質與能力,在理解軟件開發(fā)本質的基礎上,理解軟件項目開發(fā)和維護的一般過程,掌握軟件開發(fā)的傳統(tǒng)方法和最新方法,為更深入地學習和今后從事軟件工程實踐打下良好的基礎。
通過本課程的學習,應使學生達到:
第一、基本掌握軟件開發(fā)所需要的過程、活動和任務以及相關的活動組織框架。
第二、掌握結構化開發(fā)方法,并能針對小型系統(tǒng),應用這些方法給出問題定義和軟件設計,并運用詳細設計工具給出模塊的詳細設計。
第三、掌握面向對象開發(fā)方法,并能運用MUL建模方法與RUP過程建立小型系統(tǒng)的用況模型、需求分析模型等。
第四、掌握至少三種軟件測試技術:基于路徑的白盒測試技術、基于需求規(guī)約的事物流測試技術和等價類劃分技術。
第五、了解一個軟件項目的軟件過程管理;了解軟件開發(fā)組織過程改進途徑。
(三)教學要求:
作業(yè):每章布置1-2道習題,以鞏固學生的學習效果,促進其多思考,培養(yǎng)學生的創(chuàng)造能力,動手能力。
考試:《軟件工程》期末考試的目的是考核學生掌握軟件工程的基本知識和基本軟件開發(fā)原理、方法和運用所學知識解決實際問題的能力。考試試題反映本課程的主要內容和要求,考題內容能覆蓋教材的各章節(jié)。平時成績(作業(yè)和實驗)占30%,期末考試占70%。
四、教學內容
第一章 緒論(共1學時)
(一)本章教學目的和要求
通過本章學習,了解軟件工程提出的歷史背景,以及軟件、軟件工程、模型等基本概念,掌握軟件開發(fā)的本質等。
(二)本章教學重點與難點
重點: 1. 軟件與軟件工程的概念。
2. 模型概念。
難點:1. 軟件開發(fā)的本質。
(三)教學內容
第一節(jié) 緒論(1學時)
一、軟件工程概念的提出。
二、軟件開發(fā)的本質。
第二章 軟件過程(共2學時)
(一)本章教學目的和要求
通過本章學習,了解軟件生存周期中的基本過程、支持過程與組織過程,軟件生存周期過程以及角色和關系;了解軟件項目生存周期過程的控制與規(guī)劃方法等;掌握軟件生存周期模型的概念及其模型之間的區(qū)別等。
(二)本章教學重點與難點
重點: 1. 軟件生存周期過程。
2. 軟件生存周期模型。
難點:1. 軟件生存周期模型的比較及運用場合。
(三)教學內容
第一節(jié) 軟件生存周期過程(1學時)
一、軟件生存周期的基本過程。
二、軟件生存周期的支持過程。
三、軟件生存周期的組織過程。
四、軟件生存周期過程以及角色和關系。
第二節(jié) 軟件生存周期模型(1學時)
一、引言及瀑布模型
二、增量模型、演化模型、螺旋模型、噴泉模型
三、軟件項目生存周期過程的規(guī)劃與控制
第三章 軟件需求與軟件需求規(guī)約(共2學時)
(一)本章教學目的和要求
通過本章學習,了解軟件需求和需求規(guī)約的概念、表達規(guī)約需求的基本手段、需求規(guī)約在軟件開發(fā)中的作用;掌握需求和需求規(guī)約的基本特征;掌握需求的分類;掌握需求發(fā)現(xiàn)基本技術等。
(二)本章教學重點與難點
重點: 1. 軟件需求分類、需求和需求規(guī)約的基本特征。
2. 需求發(fā)現(xiàn)技術、規(guī)約需求的三種語言。
難點:1. 功能需求和非功能需求及它們之間的基本關系。
(三)教學內容
第一節(jié) 需求與需求獲取(1學時)
一、軟件需求定義。
二、軟件需求分類。
三、軟件需求發(fā)現(xiàn)技術。
第二節(jié) 需求規(guī)約及其格式(1學時)
一、需求規(guī)約的定義、基本性質。
二、需求規(guī)約格式。
三、表達需求規(guī)約的三種語言。
四、需求規(guī)約的作用。
第四章 結構化分析方法(共6學時)
(一)本章教學目的和要求
通過本章學習,了解結構化分析方法中運用的基本術語、需求分析的輸出及應用中應該注意的問題;掌握結構化模型表示、建模過程需求驗證等。
(二)本章教學重點與難點
重點: 1.表達問題域信息的基本術語及其表示。
2.表達功能模型的工具---DFD圖。
3.結構化建模過程。
難點:1.結構化模型表示。
2.結構化建模過程、數(shù)據(jù)結構符和判定樹、判定表。
(三)教學內容
第一節(jié) 基本術語及模型表示(2學時)
一、結構化分析方法中的基本術語。
二、結構化分析方法中的模型表示。
第二節(jié) 建模過程與實例研究(2學時)
一、結構化方法的建模過程。
二、實例研究:飛機預訂系統(tǒng)的建模過程。
第三節(jié) 結構化應用中注意的問題(2學時)
一、在應用結構化方法中應注意的問題。
二、需求分析的輸出。
三、需求驗證。
第五章 結構化設計(共4學時)
(一)本章教學目的和要求
通過本章學習,了解結構化總體設計中運用的基本術語、詳細設計工具的優(yōu)缺點以及相互轉換;掌握結構化設計的目標及其表示、總體設計、詳細設計等。
(二)本章教學重點與難點
重點: 1.變換型數(shù)據(jù)流圖和事物型數(shù)據(jù)流圖。
2.模塊以及模塊內聚和耦合。
3.詳細設計工具:框圖、PAD、N-S圖和偽代碼。
難點:1.變換設計與事物設計。
2.模塊化及啟發(fā)式規(guī)則。
(三)教學內容
第一節(jié) 總體設計(2學時)
一、總體設計的目標及其表示。
二、數(shù)據(jù)流圖的類型、變換設計與事物設計。
三、模塊化及啟發(fā)式規(guī)則。
四、總體設計的實例研究。
第二節(jié) 詳細設計(2學時)
一、結構化程序設計。
二、詳細設計工具:框圖、PAD、N-S圖和偽代碼。
第六章 面向對象方法---MUL(共6學時)
(一)本章教學目的和要求
通過本章學習,了解面向對象方法的基本術語、UML的每一術語所基于的原理以及它們在建模中作用;掌握面向對象方法在創(chuàng)建系統(tǒng)/產(chǎn)品模型中用于表達信息的基本術語以及用于表達模型的用況圖、類圖、順序圖和狀態(tài)圖等。
(二)本章教學重點與難點
重點: 1.表達客觀事物的術語:類、接口、用況、協(xié)作等概念。
2.表達關系術語:關聯(lián)、泛華、實現(xiàn)、依賴等概念。
3.模型表達工具:類圖、用況圖、狀態(tài)圖、順序圖。
難點:1.類圖、用況圖、順序圖的構成。
2.狀態(tài)以及狀態(tài)圖的構成。
3.狀態(tài)的種類及其描述。
(三)教學內容
第一節(jié) 表達客觀事物的術語(2學時)
一、類與對象及在建模中的作用。
二、接口、協(xié)作、用況。
三、主動類、構件、制品、節(jié)點。
第二節(jié) 表達關系的術語(2學時)
一、關聯(lián)、泛化、細化、依賴。
二、表達信息的一種通用機制:包。
第三節(jié) 表達模型的工具(2學時)
一、類圖、用況圖的構成及在模型中的作用。
二、狀態(tài)圖、順序圖的構成及其特點。
第七章 面向對象方法---RUP(共6學時)
(一)本章教學目的和要求
通過本章學習,了解面向對象方法RUP的基本術語、RUP的每一術語所基于的原理以及它們在建模中作用;掌握創(chuàng)建系統(tǒng)/產(chǎn)品需求獲取模型、需求分析模型和設計模型中的基本活動與任務,并能運用RUP建立小型簡單系統(tǒng)的用況模型、需求分析模型,以及在設計中如何處理共性的非功能需求等。
(二)本章教學重點與難點
重點: 1.需求獲取層、需求分析層、軟件設計層上的術語。
2.用況之間的基本關系;系統(tǒng)/產(chǎn)品用況模型的構成、系統(tǒng)/產(chǎn)品需求分析模型的構成、系統(tǒng)/產(chǎn)品設計模型和部署模型的構成。
3.設計模型的四層結構;用況細化以及用況和協(xié)作之間的基本關系。
難點:1.領域模型、業(yè)務模型以及在系統(tǒng)開發(fā)中創(chuàng)建的目的 。
2.邊界類、實體類、控制類的標識及它們之間的關系和作用。
3.需求獲取模型與需求分析模型的比較;需求分析模型與設計模型的比較。
(三)教學內容
第一節(jié) RUP的作用與特點(1學時)
一、RUP作用與特點:以用況為驅動以體系結構為中心。
第二節(jié) 核心工作流(2學時)
一、需求獲取:列出候選需求、理解系統(tǒng)語境、捕獲功能需求。
二、需求分析:基本術語、分析模型的表達、分析主要活動。
第三節(jié) 設計(3學時)
一、設計層的術語:設計類、用況細化、設計子系統(tǒng)、接口。
二、設計模型、部署模型的描述、基于RUP方法的工作流。
第八章 軟件測試(共6學時)
(一)本章教學目的和要求
通過本章學習,了解軟件測試的基本步驟、測試過程模型;掌握基于程序路徑的白盒測試技術、基于需求規(guī)約的事物流測試技術和等價類劃分技術(黑盒測試技術);并能針對簡單系統(tǒng),運用這些測試技術開展相應的軟件測試工作,包括用例測試、測試執(zhí)行以及結果比較。
(二)本章教學重點與難點
重點: 1.軟件測試的概念、測試過程模型概念
2.路徑測試技術(白盒測試技術)中的被測試對象模型及其創(chuàng)建。
3.基于事物流的測試技術(黑盒測試技術)。
難點:1.事物流與控制流之間的區(qū)別以及為測試帶來的影響。
2.等價類劃分技術測試。
3.軟件測試步驟。
(三)教學內容
第一節(jié) 軟件測試目標及過程模型(1學時)
一、軟件測試目標。
二、測試過程模型。
第二節(jié) 軟件測試技術(3學時)
一、路徑測試技術、測試覆蓋及其它們之間的基本關系。
二、基于事物流的測試技術:事物流與控制流的區(qū)別。
三、等價類劃分技術及其他功能測試技術簡介。
第三節(jié) 軟件測試步驟(2學時)
一、單元測試、集成測試。
二、軟件有效性測試。
第九章 軟件項目管理概述及軟件開發(fā)工具(共4學時)
(一)本章教學目的和要求
通過本章學習,了解圍繞軟件開發(fā)所需要的軟件工程管理過程中軟件的規(guī)模、成本和進度估算,軟件管理過程中的能力成熟度模型CMM的特點。
(二)本章教學重點與難點
重點: 1.軟件工程管理中軟件規(guī)模、成本和進度估算。
2.能力成熟度模型CMM的特點。
難點:1.軟件成本和進度估算。
(三)教學內容
第一節(jié) 軟件工程管理活動(1學時)
一、軟件系統(tǒng)/產(chǎn)品規(guī)模估算。
二、成本和進度估算。
第二節(jié) 能力成熟度模型CMM(2學時)
一、CMM產(chǎn)生背景、CMM的成熟度等級、結構。
二、ISO9000系列標準簡介。
第三節(jié) 軟件開發(fā)工具與環(huán)境(1學時)
一、基本概念。
二、工具集成模型概念。
五、教學時數(shù)分配
《軟件工程》課程教學時數(shù)分配表
總學時:36 學分:2.5
章次 | 章標題名稱 | 學時小計 | 講授 學時 | 實驗 學時 | 實踐 學時 | 討論、習題課等學時 |
第一章 | 緒論 | 1 | 1 | 0 | 0 | 0 |
第二章 | 軟件過程 | 2 | 2 | 0 | 0 | 0 |
第三章 | 軟件需求與軟件需求規(guī)約 | 3 | 3 | 1 | 0 | 0 |
第四章 | 結構化分析方法 | 4 | 4 | 0 | 0 | 0 |
第五章 | 結構化設計 | 4 | 4 | 2 | 0 | 0 |
第六章 | 面向對象方法--MUL | 6 | 6 | 0 | 0 | 0 |
第七章 | 面向對象方法--RUP | 6 | 6 | 3 | 0 | 0 |
第八章 | 軟件測試 | 6 | 6 | 2 | 0 | 0 |
第九章 | 軟件項目管理與開發(fā)工具 | 4 | 2 | 0 | 0 | 2 |
六、實驗內容與學時分配
《軟件工程》課程實驗教學一覽表
序號 | 項目名稱 | 內容提要 | 學時 | 實驗類型(演示、驗證、綜合、設計等) | 是否為 開放實驗 |
1 | 軟件需求規(guī)約文檔 | 編寫一個小型簡單系統(tǒng),運用合適的需求發(fā)現(xiàn)技術,以限定的自然語言給出系統(tǒng)的需求規(guī)約 | 1 | 演示 | 否 |
2 | 圖書信息管理系統(tǒng)結構化設計 | 給出圖書管理信息系統(tǒng)的需求陳述,構建該信息系統(tǒng)的詳細結構化建模過程,并在此基礎上給出系統(tǒng)的模塊結構圖。 | 2 | 驗證 | 否 |
3 | 面向對象軟件建模設計 | 運用面向對象方法建立科技節(jié)信息管理系統(tǒng)的模型,構建基于面向對象的用況模型、分析模型及設計模型等。 | 3 | 驗證 | 否 |
4 | 軟件測試 | 運用白盒測試或者等價類劃分方法對實驗2或者實驗3中的管理信息系統(tǒng)進行測試 | 2 | 驗證 | 否 |
七、本課程的實踐環(huán)節(jié)
無
八、主要的教學方法與教學手段
1.課程與教學方法、教學手段對應關系矩陣
課程名稱 | 對應的教學方式方法 | ||||||||||||
講授法 | 啟發(fā)式 | 討論法 | 案例法 | 項目教學 | 實驗室 實驗 | 技能訓練 | 研究與設計 | 小組教學 | 個別教學 | 課程作業(yè) | 課外閱讀及自學鍛煉 | …… | |
軟件工程 | √ | √ | √ | √ | √ |
說明:每門課程應使用多種教學方式方法,在相應的教學方式方法中打“√”。
2.主要采用的幾種教學方法和手段
主要的教學方法:主要以課堂講授與實際應用實例相結合。
九、考核與成績評定
1. 該課程與評價方法對應關系矩陣
課程名稱 | 對應的評價方法 | |||||||||
課堂表現(xiàn) | 實驗報告 | 項目作業(yè)或報告 | 課程作業(yè)或報告 | 口試 | 口頭報告 | 上機操作 | 實踐操作 | 期中考核 | 期末考核 | |
軟件工程 | √ | √ | √ | √ |
說明:每門課程應使用多種評價方式,注重過程評價,實現(xiàn)平時成績、期中成績與期末成績相結合,在相應的評價方法中打“√”。
2.具體考核與成績評定辦法
考核方式:閉卷筆試
成績評定:平時成績40%(含課堂表現(xiàn)和實驗報告)
期末成績60%(閉卷筆試)
十、推薦教材及參考書
(一)推薦教材
《軟件工程》,王立福主編,北京大學出版社,2009年10月第3版。
(二)參考書
1.《軟件工程》,馮玉琳主編,中國科學技術大學出版社,1992年9第1版。
2.《軟件工程技術概論》,朱三元主編,科學出版社,2002年1月第1版。
3.《軟件工程》,錢樂秋主編,清華大學出版社,2016年3月第2版。
十一、其他需要說明的問題