《21世紀(jì)復(fù)旦大學(xué)研究生教學(xué)用書·軟件工程:方法與實(shí)踐》系統(tǒng)性地介紹軟件工程的基本概念、軟件開(kāi)發(fā)過(guò)程以及需求工程、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測(cè)試、軟件維護(hù)等基本的軟件工程技術(shù)。此外,本書還介紹基于構(gòu)件的軟件開(kāi)發(fā)方法、軟件產(chǎn)品線開(kāi)發(fā)方法、模型驅(qū)動(dòng)的體系結(jié)構(gòu)等新的軟件開(kāi)發(fā)方法。本書突出軟件工程方法的工程實(shí)踐,以大量的實(shí)踐案例和示例貫穿各部分內(nèi)容,同時(shí)基于軟件構(gòu)造工具、軟件測(cè)試工具、軟件維護(hù)工具等介紹相應(yīng)的工程實(shí)踐。
《21世紀(jì)復(fù)旦大學(xué)研究生教學(xué)用書·軟件工程:方法與實(shí)踐》第1章對(duì)軟件工程的基本概念、軟件開(kāi)發(fā)的根本性困難以及軟件工程知識(shí)領(lǐng)域進(jìn)行概述。第2章介紹軟件過(guò)程。第3章至第7章按照軟件開(kāi)發(fā)的基本過(guò)程分別介紹需求工程、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測(cè)試和軟件維護(hù)5個(gè)技術(shù)領(lǐng)域。第8章和第9章則分別介紹軟件復(fù)用與構(gòu)件技術(shù)和軟件產(chǎn)品線。最后,第10章介紹幾種軟件開(kāi)發(fā)新技術(shù)(面向方面的編程、面向特征的編程、模型驅(qū)動(dòng)的體系結(jié)構(gòu))。
第1章 軟件工程概述
1.1軟件工程基本概念
1.2軟件開(kāi)發(fā)的根本性困難
1.3軟件工程知識(shí)領(lǐng)域
1.4各章內(nèi)容簡(jiǎn)介
1.4.1軟件過(guò)程
1.4.2需求工程
1.4.3軟件設(shè)計(jì)
1.4.4軟件構(gòu)造
1.4.5軟件測(cè)試
1.4.6軟件維護(hù)
1.4.7軟件復(fù)用與構(gòu)件技術(shù)
1.4.8軟件產(chǎn)品線
1.4.9軟件開(kāi)發(fā)新技術(shù)
本章參考文獻(xiàn)
第2章 軟件過(guò)程
2.1概述
2.1.1基本概念
2.1.2ISO/IEC 12207軟件生存周期過(guò)程
2.1.3軟件過(guò)程模型
2.2統(tǒng)一軟件開(kāi)發(fā)過(guò)程
2.2.1迭代和增量的過(guò)程框架
2.2.2用況驅(qū)動(dòng),以構(gòu)架為中心
2.2.3核心工作流
2.3敏捷和精益方法
2.3.1概述
2.3.2敏捷方法的價(jià)值觀和原則
2.3.3精益思想
2.3.4敏捷和精益實(shí)踐簡(jiǎn)介
2.4軟件能力成熟度和過(guò)程改進(jìn)
2.4.1軟件過(guò)程改進(jìn)
2.4.2能力成熟度模型集成
本章參考文獻(xiàn)
第3章 軟件需求工程
3.1需求工程概述
3.1.1軟件需求
3.1.2現(xiàn)狀與挑戰(zhàn)
3.1.3需求制品
3.1.4需求工程過(guò)程及活動(dòng)
3.2系統(tǒng)與上下文分析
3.2.1軟件密集型系統(tǒng)
3.2.2從系統(tǒng)需求到軟件需求
3.2.3系統(tǒng)上下文
3.2.4問(wèn)題框架方法
3.3需求制品
3.3.1目標(biāo)
3.3.2場(chǎng)景
3.3.3面向方案的需求
3.4需求工程活動(dòng)
3.4.1需求獲取
3.4.2需求分析
3.4.3文檔化
3.4.4需求確認(rèn)
3.5需求管理
3.5.1需求追蹤管理
3.5.2需求優(yōu)先級(jí)管理
3.5.3需求變更管理
本章參考文獻(xiàn)
第4章 軟件設(shè)計(jì)
4.1軟件設(shè)計(jì)概述
4.1.1軟件設(shè)計(jì)的目標(biāo)
4.1.2軟件設(shè)計(jì)的相關(guān)概念
4.1.3軟件設(shè)計(jì)的設(shè)計(jì)原則
4.1.4軟件設(shè)計(jì)的過(guò)程模型
4.2模型和視圖4.2.1模型
4.2.2視圖
4.2.3UML建模語(yǔ)言
4.3質(zhì)量屬性
4.3.1質(zhì)量屬性和設(shè)計(jì)
4.3.2ISO/IEC25010
4.3.3質(zhì)量屬性效用樹(shù)
4.4軟件體系結(jié)構(gòu)設(shè)計(jì)
4.4.1軟件體系結(jié)構(gòu)的定義
4.4.2軟件體系結(jié)構(gòu)視圖
4.4.3風(fēng)格、模式和框架
4.4.4軟件體系結(jié)構(gòu)模式
4.5設(shè)計(jì)評(píng)審
4.5.1設(shè)計(jì)評(píng)審目標(biāo)
4.5.2設(shè)計(jì)評(píng)審原則
4.5.3體系結(jié)構(gòu)評(píng)估方法
本章參考文獻(xiàn)
第5章 軟件構(gòu)造
5.1軟件構(gòu)造的概述
5.2構(gòu)造階段的設(shè)計(jì)
5.2.1抽象數(shù)據(jù)類型
5.2.2類和接口
5.2.3依賴
5.2.4契約式設(shè)計(jì)
5.3編碼
5.3.1語(yǔ)言
5.3.2編程規(guī)范
5.3.3錯(cuò)誤處理
5.4單元測(cè)試
5.4.1基本概念
5.4.2自動(dòng)化單元測(cè)試框架
5.4.3依賴和測(cè)試替身
5.4.4測(cè)試先行
5.4.5測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
5.5集成
5.5.1“大爆炸”集成和增量集成
5.5.2持續(xù)集成
5.6軟件構(gòu)造工具
5.6.1版本管理系統(tǒng)
5.6.2編譯和調(diào)試工具
5.6.3集成開(kāi)發(fā)環(huán)境
本章參考文獻(xiàn)
第6章 軟件測(cè)試
6.1軟件測(cè)試概述
6.1.1軟件測(cè)試的價(jià)值
6.1.2軟件測(cè)試的概念
6.1.3典型的軟件測(cè)試級(jí)別
6.1.4軟件測(cè)試的原則
6.2軟件測(cè)試過(guò)程
6.2.1軟件測(cè)試過(guò)程模型
6.2.2軟件測(cè)試標(biāo)準(zhǔn)
6.3軟件測(cè)試技術(shù)
6.3.1黑盒測(cè)試
6.3.2白盒測(cè)試
6.3.3組合測(cè)試
6.3.4變異測(cè)試
6.3.5靜態(tài)測(cè)試
6.4軟件測(cè)試類型
6.4.1單元測(cè)試
6.4.2集成測(cè)試
6.4.3系統(tǒng)測(cè)試
6.4.4驗(yàn)收測(cè)試
6.4.5回歸測(cè)試
6.5軟件測(cè)試工具
6.5.1靜態(tài)代碼分析工具
6.5.2系統(tǒng)測(cè)試工具
6.6面向?qū)ο筌浖臏y(cè)試
6.6.1面向?qū)ο筌浖䴗y(cè)試的難點(diǎn)
6.6.2面向?qū)ο筌浖臏y(cè)試方法
本章參考文獻(xiàn)
第7章 軟件維護(hù)
7.1軟件維護(hù)概述
7.1.1軟件維護(hù)類型
7.1.2軟件的可維護(hù)性
7.1.3軟件維護(hù)過(guò)程
7.1.4軟件再工程
7.1.5軟件維護(hù)技術(shù)
7.2軟件分析
7.2.1靜態(tài)分析
7.2.2動(dòng)態(tài)分析
7.2.3開(kāi)發(fā)歷史分析
7.3程序理解與變更影響分析
7.3.1特征定位
7.3.2軟件制品追蹤關(guān)系
7.3.3變更影響分析
7.4軟件逆向工程
7.4.1軟件逆向工程概述
7.4.2程序度量
7.4.3模型逆向恢復(fù)
7.4.4軟件體系結(jié)構(gòu)逆向恢復(fù)
7.4.5軟件可視化
7.5軟件重構(gòu)
7.5.1代碼的壞味道
7.5.2基本的軟件重構(gòu)類型
7.5.3重構(gòu)的原則
7.6軟件維護(hù)工具
7.6.1缺陷跟蹤管理工具
7.6.2任務(wù)管理工具
7.6.3特征定位工具
7.6.4克隆分析工具
7.6.5逆向分析工具
7.6.6代碼分析和度量工具
本章參考文獻(xiàn)
第8章 軟件復(fù)用與構(gòu)件技術(shù)
8.1軟件復(fù)用基礎(chǔ)
8.1.1軟件復(fù)用分類
8.1.2軟件復(fù)用的發(fā)展、現(xiàn)狀與挑戰(zhàn)
8.1.3軟件復(fù)用經(jīng)濟(jì)學(xué)
8.2軟件復(fù)用過(guò)程
8.2.1軟件復(fù)用的一般過(guò)程
8.2.2復(fù)用過(guò)程標(biāo)準(zhǔn)IEEE 1517
8.2.3軟件復(fù)用成熟度模型
8.3軟件復(fù)用技術(shù)
8.3.1生成式復(fù)用
8.3.2組裝式復(fù)用
8.3.3面向?qū)ο蠹夹g(shù)中的軟件復(fù)用
8.4基于構(gòu)件的軟件開(kāi)發(fā)
8.4.1軟件構(gòu)件的定義
8.4.2軟件構(gòu)件模型
8.4.3構(gòu)件組裝技術(shù)
8.4.4商用成品構(gòu)件
8.4.5構(gòu)件管理
8.4.6構(gòu)件化對(duì)企業(yè)的影響
8.5基于框架與中間件的復(fù)用
8.5.1框架技術(shù)
8.5.2中間件技術(shù)
本章參考文獻(xiàn)
第9章 軟件產(chǎn)品線
9.1軟件產(chǎn)品線基本思想和方法
9.1.1從軟件復(fù)用到軟件產(chǎn)品線
9.1.2軟件產(chǎn)品線工程
9.1.3軟件產(chǎn)品線的特點(diǎn)和優(yōu)勢(shì)
9.1.4軟件產(chǎn)品線開(kāi)發(fā)過(guò)程
9.2軟件產(chǎn)品線范圍和可變性
9.2.1產(chǎn)品線開(kāi)發(fā)經(jīng)濟(jì)效益
9.2.2產(chǎn)品線范圍
9.2.3軟件產(chǎn)品線可變性
9.3領(lǐng)域工程
9.3.1領(lǐng)域需求工程
9.3.2領(lǐng)域設(shè)計(jì)
9.3.3領(lǐng)域?qū)崿F(xiàn)
9.4應(yīng)用系統(tǒng)工程
9.4.1應(yīng)用系統(tǒng)需求工程
9.4.2應(yīng)用系統(tǒng)設(shè)計(jì)
9.4.3應(yīng)用系統(tǒng)實(shí)現(xiàn)
9.5軟件產(chǎn)品線管理
9.5.1軟件產(chǎn)品線管理中的特殊問(wèn)題
9.5.2軟件產(chǎn)品線組織管理
9.5.3軟件產(chǎn)品線技術(shù)管理
本章參考文獻(xiàn)
第10章 軟件開(kāi)發(fā)新技術(shù)
10.1面向方面的編程
10.1.1AOP概述
10.1.2AOP與OOP的關(guān)系
10.1.3AOP的實(shí)現(xiàn)框架與工具
10.1.4AspectJ簡(jiǎn)介及其應(yīng)用實(shí)例
10.1.5Spring AOP簡(jiǎn)介及其應(yīng)用實(shí)例
10.1.6JBoss AOP簡(jiǎn)介及其應(yīng)用實(shí)例
10.2面向特征的編程
10.2.1FOP概述
10.2.2FOP語(yǔ)言模型
10.2.3FeatureIDE
10.3模型驅(qū)動(dòng)的體系結(jié)構(gòu)
10.3.1MDA概述
10.3.2MDA模型體系
10.3.3基于MDA的軟件開(kāi)發(fā)過(guò)程
10.3.4MDA應(yīng)用實(shí)例
本章參考文獻(xiàn)