軟件已經(jīng)成為驅(qū)動我們這個社會發(fā)展的重要力量。軟件工程作為一門研究系統(tǒng)、規(guī)范、合理化軟件開發(fā)的學(xué)科,已經(jīng)成為計算機專業(yè)、軟件工程專業(yè)的核心課程,也是其它專業(yè)可能選修的課程。目前已經(jīng)有許多的軟件工程教科書,不少教科書還是這個領(lǐng)域的經(jīng)典。顯然,這些教科書在解釋軟件工程的相關(guān)理論、技術(shù)方面均有自己的獨特之處。然而,軟件工程不是一門單純理論性的課程,學(xué)生在學(xué)習(xí)時除了完成一些作業(yè)外,必須能夠進行軟件工程的實踐,而且這種實踐不是個別環(huán)節(jié)、個別技術(shù)的。因此,以小組為單位讓學(xué)生能夠真實地以軟件工程方法為指導(dǎo)完整地開發(fā)一個軟件就非常有必要了。目前,許多學(xué)校在教這一門課程時,也確實要求學(xué)生進行小組項目的開發(fā)。然而,在這個過程中,軟件工程的教科書由于講解知識點為主,往往并未給以明確的實踐指導(dǎo)。
上海交通大學(xué)教授,
研究方向:1. 服務(wù)計算2. 網(wǎng)絡(luò)計算3. 智能數(shù)據(jù)分析
教授課程:(1)軟件工程 (本科)
(2)信息系統(tǒng)建模(博士生)
(3)IT項目管理 (碩士生)
(4)金融服務(wù)計算 (研究生實踐課)
第一篇 指南篇
第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 復(fù)用
1.3 傳統(tǒng)軟件工程
1.4 面向?qū)ο蠓椒▽W(xué)
1.4.1 面向?qū)ο蠓椒▽W(xué)的起源
1.4.2 面向?qū)ο蠓椒▽W(xué)的核心概念
1.4.3 面向?qū)ο蟮奶匦?br />
1.4.4 類之間的關(guān)系
1.4.5 面向?qū)ο蟮膬?yōu)點
第2章 面向?qū)ο筌浖^程
2.1 面向?qū)ο蠓椒ǖ陌l(fā)展
2.2 面向?qū)ο蠓治觥⒃O(shè)計與實現(xiàn)
2.2.1 面向?qū)ο蠓治?br />
2.2.2 面向?qū)ο笤O(shè)計
2.2.3 面向?qū)ο髮崿F(xiàn)
2.3 面向?qū)ο筌浖_發(fā)流程
2.4 統(tǒng)一開發(fā)過程——RUP
第3章 統(tǒng)一建模語言
3.1 UML簡介
3.1.1 UML產(chǎn)生與發(fā)展
3.1.2 UML是什么
3.2 UML與軟件體系結(jié)構(gòu)
3.2.1 軟件體系結(jié)構(gòu)
3.2.2 UML五大視圖
3.3 UML的構(gòu)成
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 計劃階段的主要內(nèi)容
4.2 可行性研究
4.2.1 進行可行性研究的目的與方法
4.2.2 可行性研究報告的編寫方法
4.3 項目開發(fā)計劃
4.3.1 項目開發(fā)計劃的目的與主要內(nèi)容
4.3.2 項目開發(fā)計劃的編寫方法
4.4 風(fēng)險分析
4.4.1 風(fēng)險管理
4.4.2 風(fēng)險列袁的編寫方法
第5章 需求定義階段
5.1 需求定義階段的主要內(nèi)容
5.2 功能需求的表達
5.2.1 基于用例的功能需求獲取
5.2.2 用例的編寫方法
5.2.3 fj例模型與用例圖
5.2.4 用例建模流程與注意點
5.3 非功能需求和設(shè)計約束
5.3.1 可用性
5.3.2 可靠性
5.3.3 性能
5.3.4 可支持性
5.3.5 設(shè)計約束
5.4 軟件需求規(guī)格說明的編寫
5.4.1 目前系統(tǒng)
5.4.2 建議的系統(tǒng)
5.4.3 系統(tǒng)模型
5.5 詞匯表的編寫
第6章 分析階段
6.1 分析階段的主要內(nèi)容
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章 設(shè)計階段
7.1 設(shè)計階段的主要內(nèi)容
7.2 軟件設(shè)計的原則
7.3 從可重用軟件單元到可重用設(shè)計知識
7.3.1 類庫
7.3.2 軟件框架
7.3.3 中間件
7.3.4 設(shè)計模式
7.4 系統(tǒng)設(shè)計
7.4.1 系統(tǒng)設(shè)計中的概念
7.4.2 確定系統(tǒng)設(shè)計目標(biāo)
7.4.3 子系統(tǒng)的識別
7.5 對象設(shè)計
7.5.1 對象設(shè)計的相關(guān)概念
7.5.2 對象設(shè)計的工具與過程
7.5.3 對象識別和定義
7.6 運行設(shè)計
7.7 實現(xiàn)設(shè)計
7.8 軟硬件部署設(shè)計
7.9 數(shù)據(jù)管理設(shè)計
7.10 其他設(shè)計
7.11 設(shè)計階段交付物
7.11.1 設(shè)計模型
7.11.2 軟件架構(gòu)文檔
第8章 構(gòu)造階段
8.1 構(gòu)造階段的主要內(nèi)容
8.2 正向工程與逆向工程
8.2.1 正向工程與模型驅(qū)動的體系架構(gòu)
8.2.2 逆向工程
8.3 單元測試與測試驅(qū)動開發(fā)
8.4 軟件重構(gòu)
8.5 從設(shè)計模型生成代碼
8.6 構(gòu)造過程中的優(yōu)化
8.7 類與關(guān)系數(shù)據(jù)庫表的映射
8.8 構(gòu)造階段交付物
8.8.1 代碼與模塊
8.8.2 模塊開發(fā)卷宗
第9章 軟件測試
9.1 軟件測試的主要內(nèi)容
9.1.1 測試計劃的制訂
9.1.2 測試用例和測試流程的設(shè)計
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 軟件測試總結(jié)報告
第10章 交付階段
10.1 交付階段的主要內(nèi)容
10.2 交付確認
10.3 系統(tǒng)上線
10.4 交付階段文檔編寫
10.4.1 交付清單的編寫
10.4.2 用戶手冊的編寫
10.4.3 軟件驗收報告的編寫
第11章 總結(jié)階段
11.1 總結(jié)的主要內(nèi)容
11.2 項目總結(jié)報告的編寫
第二篇 案例篇
第12章 校園二手商品交易市場項目
12.1 計劃階段
12.1.1 可行性分析報告
12.1.2 項目開發(fā)計劃
12.1.3 風(fēng)險列表
12.2 需求獲取和分析階段
12.2.1 詞匯表
12.2.2 軟件需求規(guī)約
12.3 設(shè)計階段
12.3.1 軟件架構(gòu)設(shè)計
12.3.2 軟件設(shè)計模型
12.4 開發(fā)階段
12.4.1 模塊開發(fā)卷宗
12.5 測試階段
12.5.1 軟件測試計劃
12.5.2 軟件測試總結(jié)報告
12.6 總結(jié)和交付階段
12.6.1 交付清單
12.6.2 軟件項目總結(jié)報告
12.6.3 軟件驗收報告
12.6.4 用戶手冊
參考文獻