軟件已經成為驅動我們這個社會發(fā)展的重要力量。軟件工程作為一門研究系統(tǒng)、規(guī)范、合理化軟件開發(fā)的學科,已經成為計算機專業(yè)、軟件工程專業(yè)的核心課程,也是其它專業(yè)可能選修的課程。目前已經有許多的軟件工程教科書,不少教科書還是這個領域的經典。顯然,這些教科書在解釋軟件工程的相關理論、技術方面均有自己的獨特之處。然而,軟件工程不是一門單純理論性的課程,學生在學習時除了完成一些作業(yè)外,必須能夠進行軟件工程的實踐,而且這種實踐不是個別環(huán)節(jié)、個別技術的。因此,以小組為單位讓學生能夠真實地以軟件工程方法為指導完整地開發(fā)一個軟件就非常有必要了。目前,許多學校在教這一門課程時,也確實要求學生進行小組項目的開發(fā)。然而,在這個過程中,軟件工程的教科書由于講解知識點為主,往往并未給以明確的實踐指導。
上海交通大學教授,
研究方向:1. 服務計算2. 網絡計算3. 智能數(shù)據分析
教授課程:(1)軟件工程 (本科)
(2)信息系統(tǒng)建模(博士生)
(3)IT項目管理 (碩士生)
(4)金融服務計算 (研究生實踐課)
第一篇 指南篇
第1章 軟件工程概論
1.1 軟件工程的發(fā)展歷史
1.1.1 第一臺計算機和第一位程序員
1.1.2 軟件的發(fā)展和軟件危機
1.1.3 軟件工程的提出
1.2 軟件工程基本思想
1.2.1 抽象
1.2.2 分解
1.2.3 復用
1.3 傳統(tǒng)軟件工程
1.4 面向對象方法學
1.4.1 面向對象方法學的起源
1.4.2 面向對象方法學的核心概念
1.4.3 面向對象的特性
1.4.4 類之間的關系
1.4.5 面向對象的優(yōu)點
第2章 面向對象軟件過程
2.1 面向對象方法的發(fā)展
2.2 面向對象分析、設計與實現(xiàn)
2.2.1 面向對象分析
2.2.2 面向對象設計
2.2.3 面向對象實現(xiàn)
2.3 面向對象軟件開發(fā)流程
2.4 統(tǒng)一開發(fā)過程——RUP
第3章 統(tǒng)一建模語言
3.1 UML簡介
3.1.1 UML產生與發(fā)展
3.1.2 UML是什么
3.2 UML與軟件體系結構
3.2.1 軟件體系結構
3.2.2 UML五大視圖
3.3 UML的構成
3.3.1 UML模型元素
3.3.2 UML模型圖
3.3.3 公共機制
3.4 UML建模規(guī)則
3.5 靜態(tài)建模機制模型圖
3.5.1 用例圖(use case diagram)
3.5.2 類圖(class diagram)
3.5.3 包圖(package diagram)
3.5.4 對象圖(object diagram)
3.5.5 組件圖(component diagram)
3.5.6 部署圖(deployment diagram)
3.6 動態(tài)建模機制模型圖
3.6.1 狀態(tài)圖(statechart diagram)
3.6.2 活動圖(activity diagram)
3.6.3 順序圖(sequence diagram)
3.6.4 通信圖(communication diagram)
3.6.5 其他圖
3.7 典型的UML建模工具
3.7.1 Sybase PowerDesigner
3.7.2 Microsoft Visio
3.7.3 Rational Rose
3.7.4 StarUML
第4章 計劃階段
4.1 計劃階段的主要內容
4.2 可行性研究
4.2.1 進行可行性研究的目的與方法
4.2.2 可行性研究報告的編寫方法
4.3 項目開發(fā)計劃
4.3.1 項目開發(fā)計劃的目的與主要內容
4.3.2 項目開發(fā)計劃的編寫方法
4.4 風險分析
4.4.1 風險管理
4.4.2 風險列袁的編寫方法
第5章 需求定義階段
5.1 需求定義階段的主要內容
5.2 功能需求的表達
5.2.1 基于用例的功能需求獲取
5.2.2 用例的編寫方法
5.2.3 fj例模型與用例圖
5.2.4 用例建模流程與注意點
5.3 非功能需求和設計約束
5.3.1 可用性
5.3.2 可靠性
5.3.3 性能
5.3.4 可支持性
5.3.5 設計約束
5.4 軟件需求規(guī)格說明的編寫
5.4.1 目前系統(tǒng)
5.4.2 建議的系統(tǒng)
5.4.3 系統(tǒng)模型
5.5 詞匯表的編寫
第6章 分析階段
6.1 分析階段的主要內容
6.2 對象模型的創(chuàng)建
6.2.1 類的識別
6.2.2 對象模型的表達
6.3 動態(tài)模型的創(chuàng)建
6.3.1 交互圖
6.3.2 狀態(tài)圖
6.4 軟件需求規(guī)格說明的修改
第7章 設計階段
7.1 設計階段的主要內容
7.2 軟件設計的原則
7.3 從可重用軟件單元到可重用設計知識
7.3.1 類庫
7.3.2 軟件框架
7.3.3 中間件
7.3.4 設計模式
7.4 系統(tǒng)設計
7.4.1 系統(tǒng)設計中的概念
7.4.2 確定系統(tǒng)設計目標
7.4.3 子系統(tǒng)的識別
7.5 對象設計
7.5.1 對象設計的相關概念
7.5.2 對象設計的工具與過程
7.5.3 對象識別和定義
7.6 運行設計
7.7 實現(xiàn)設計
7.8 軟硬件部署設計
7.9 數(shù)據管理設計
7.10 其他設計
7.11 設計階段交付物
7.11.1 設計模型
7.11.2 軟件架構文檔
第8章 構造階段
8.1 構造階段的主要內容
8.2 正向工程與逆向工程
8.2.1 正向工程與模型驅動的體系架構
8.2.2 逆向工程
8.3 單元測試與測試驅動開發(fā)
8.4 軟件重構
8.5 從設計模型生成代碼
8.6 構造過程中的優(yōu)化
8.7 類與關系數(shù)據庫表的映射
8.8 構造階段交付物
8.8.1 代碼與模塊
8.8.2 模塊開發(fā)卷宗
第9章 軟件測試
9.1 軟件測試的主要內容
9.1.1 測試計劃的制訂
9.1.2 測試用例和測試流程的設計
9.1.3 測試的準備
9.1.4 執(zhí)行測試
9.1.5 測試評估
9.2 測試類型
9.2.1 按照測試階段劃分
9.2.2 按測試手段劃分
9.3 軟件測試工具
9.4 測試階段交付物
9.4.1 軟件測試計劃
9.4.2 軟件測試總結報告
第10章 交付階段
10.1 交付階段的主要內容
10.2 交付確認
10.3 系統(tǒng)上線
10.4 交付階段文檔編寫
10.4.1 交付清單的編寫
10.4.2 用戶手冊的編寫
10.4.3 軟件驗收報告的編寫
第11章 總結階段
11.1 總結的主要內容
11.2 項目總結報告的編寫
第二篇 案例篇
第12章 校園二手商品交易市場項目
12.1 計劃階段
12.1.1 可行性分析報告
12.1.2 項目開發(fā)計劃
12.1.3 風險列表
12.2 需求獲取和分析階段
12.2.1 詞匯表
12.2.2 軟件需求規(guī)約
12.3 設計階段
12.3.1 軟件架構設計
12.3.2 軟件設計模型
12.4 開發(fā)階段
12.4.1 模塊開發(fā)卷宗
12.5 測試階段
12.5.1 軟件測試計劃
12.5.2 軟件測試總結報告
12.6 總結和交付階段
12.6.1 交付清單
12.6.2 軟件項目總結報告
12.6.3 軟件驗收報告
12.6.4 用戶手冊
參考文獻