定 價:39 元
叢書名:“十三五”應用型人才培養(yǎng)規(guī)劃教材
當前圖書已被 1 所學校薦購過!
查看明細
- 作者:陳恒, 駱焦煌主編
- 出版時間:2017/8/1
- ISBN:9787302472858
- 出 版 社:清華大學出版社
- 中圖法分類:TP311.5
- 頁碼:266
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書采用“教學做”一體化模式編寫,合理地組織學習單元,并將每個單元分解為核心知識、能力目標、任務驅動、實踐環(huán)節(jié)4個模塊。全書共10章,第1章是軟件工程基本概念,第2~7章順序介紹了軟件生命周期各階段任務、過程、結構化方法和工具,第8章講述了面向對象方法學,第9章介紹了軟件項目管理,第10章給出了經典的軟件工程實驗以及一個綜合實例。書中實例側重實用性和啟發(fā)性,通俗易懂,使讀者能夠快速掌握軟件工程的基礎知識與項目管理技能,為適應實戰(zhàn)應用打下堅實的基礎。
本書適合作為高等院校“軟件工程”課程的教材或教學參考書,也適合作為有一定經驗的軟件工作人員的參考用書。
前言
本書按照“教學做”一體化模式精編了軟件工程的核心內容,以核心知識、能力目標、任務驅動和實踐環(huán)節(jié)為模塊組織本書的體系結構。核心知識體現最重要和實用的知識,是教師需要重點講解的內容;能力目標提出學習核心知識后應具備的能力;任務驅動給出了教師和學生共同來完成的任務;實踐環(huán)節(jié)給出了需要學生獨立完成的實踐活動。
全書共10章。第1章概括地介紹了軟件工程基本概念,包括軟件、軟件危機、軟件工程、軟件生命周期與常用模型。第2~7章按軟件生命周期的順序講解了各階段的任務、過程、方法和工具。其中,第2章重點講述了如何使用系統(tǒng)流程圖和數據流圖分別描繪系統(tǒng)的物理模型和邏輯模型;第3章是需求分析與建模的有關知識,包括需求分析過程、需求獲取方法、結構化分析建模工具以及軟件需求規(guī)格說明書的內容框架;第4章和第5章是有關軟件設計的知識,詳細地介紹了軟件設計的原理、工具、方法和文檔,包括模塊化設計原理、軟件結構及描繪它的圖形工具、面向數據流的設計方法、面向數據結構的設計方法以及設計文檔的內容框架;第6章是關于系統(tǒng)實現的知識,重點講述了系統(tǒng)實現的原理、技術和方法,包括編碼、單元測試、集成測試、白盒測試、黑盒測試以及JUnit單元測試工具;第7章是有關軟件維護的知識,包括維護策略與方法。第8章系統(tǒng)地講解了面向對象方法學的有關知識,包括面向對象的基本概念、面向對象分析建模的原理與方法、面向對象程序的設計模式以及設計模式的應用。第9章講述了軟件項目管理的概念、原理、方法與技術,包括成本管理、進度管理、配置管理、風險管理、過程管理以及管理工具MicrosoftProject的應用。第10章由實驗和綜合實例組成,其目的是訓練學生綜合運用知識的能力,鞏固本書前9章所學知識,提高工程實踐與管理的能力。
本書特別注重引導學生參與課堂教學活動,適合高等院校相關專業(yè)作為“教學做”一體化的教材,也可以供軟件工程愛好者、從業(yè)者自學使用。
為了便于教學,本書配有教學課件和實踐環(huán)節(jié)與課后習題參考答案,讀者可從清華大學出版社網站免費下載。
由于編者水平有限,書中難免存在錯誤和疏漏之處,敬請廣大讀者給予批評指正。
編者
2017年5月
第1章軟件工程基本概念
1.1軟件危機與軟件工程
1.1.1核心知識
1.1.2能力目標
1.1.3任務驅動
1.1.4實踐環(huán)節(jié)
1.2軟件生命周期
1.2.1核心知識
1.2.2能力目標
1.2.3任務驅動
1.2.4實踐環(huán)節(jié)
1.3常用的軟件開發(fā)模型
1.3.1核心知識
1.3.2能力目標
1.3.3任務驅動
1.3.4實踐環(huán)節(jié)
1.4小結
習題1
第2章可行性研究
2.1可行性研究概述
2.1.1核心知識
2.1.2能力目標
2.1.3任務驅動
2.1.4實踐環(huán)節(jié)
2.2可行性研究報告
2.2.1核心知識
2.2.2能力目標
2.2.3任務驅動
2.2.4實踐環(huán)節(jié)
2.3系統(tǒng)流程圖
2.3.1核心知識
2.3.2能力目標
2.3.3任務驅動
2.3.4實踐環(huán)節(jié)
2.4數據流圖及數據字典
2.4.1核心知識
2.4.2能力目標
2.4.3任務驅動
2.4.4實踐環(huán)節(jié)
2.5成本/效益分析
2.5.1核心知識
2.5.2能力目標
2.5.3任務驅動
2.5.4實踐環(huán)節(jié)
2.6小結
習題2
〖2〗〖4〗
軟件工程
目錄〖3〗
第3章需求分析
3.1需求分析概述
3.1.1核心知識
3.1.2能力目標
3.1.3任務驅動
3.1.4實踐環(huán)節(jié)
3.2需求獲取方法
3.2.1核心知識
3.2.2能力目標
3.2.3任務驅動
3.2.4實踐環(huán)節(jié)
3.3需求分析與建模
3.3.1核心知識
3.3.2能力目標
3.3.3任務驅動
3.3.4實踐環(huán)節(jié)
3.4軟件需求規(guī)格說明
3.4.1核心知識
3.4.2能力目標
3.4.3任務驅動
3.4.4實踐環(huán)節(jié)
3.5需求驗證與管理
3.5.1核心知識
3.5.2能力目標
3.5.3任務驅動
3.5.4實踐環(huán)節(jié)
3.6案例分析——圖書管理系統(tǒng)需求分析
3.7小結
習題3
第4章概要設計
4.1設計概述
4.1.1核心知識
4.1.2能力目標
4.1.3任務驅動
4.1.4實踐環(huán)節(jié)
4.2設計原理
4.2.1核心知識
4.2.2能力目標
4.2.3任務驅動
4.2.4實踐環(huán)節(jié)
4.3設計工具
4.3.1核心知識
4.3.2能力目標
4.3.3任務驅動
4.3.4實踐環(huán)節(jié)
4.4設計方法
4.4.1核心知識
4.4.2能力目標
4.4.3任務驅動
4.4.4實踐環(huán)節(jié)
4.5設計文檔
4.5.1核心知識
4.5.2能力目標
4.5.3任務驅動
4.5.4實踐環(huán)節(jié)
4.6案例分析——圖書管理系統(tǒng)概要設計
4.7小結
習題4
第5章詳細設計
5.1設計概述
5.1.1核心知識
5.1.2能力目標
5.1.3任務驅動
5.1.4實踐環(huán)節(jié)
5.2設計工具
5.2.1核心知識
5.2.2能力目標
5.2.3任務驅動
5.2.4實踐環(huán)節(jié)
5.3設計方法
5.3.1核心知識
5.3.2能力目標
5.3.3任務驅動
5.3.4實踐環(huán)節(jié)
5.4設計文檔
5.4.1核心知識
5.4.2能力目標
5.4.3任務驅動
5.4.4實踐環(huán)節(jié)
5.5McCabe方法
5.5.1核心知識
5.5.2能力目標
5.5.3任務驅動
5.5.4實踐環(huán)節(jié)
5.6案例分析——圖書管理系統(tǒng)詳細設計
5.7小結
習題5
第6章編碼與測試
6.1編碼
6.1.1核心知識
6.1.2能力目標
6.1.3任務驅動
6.1.4實踐環(huán)節(jié)
6.2測試概述
6.2.1核心知識
6.2.2能力目標
6.2.3任務驅動
6.2.4實踐環(huán)節(jié)
6.3單元測試
6.3.1核心知識
6.3.2能力目標
6.3.3任務驅動
6.3.4實踐環(huán)節(jié)
6.4集成測試
6.4.1核心知識
6.4.2能力目標
6.4.3任務驅動
6.4.4實踐環(huán)節(jié)
6.5白盒測試技術
6.5.1核心知識
6.5.2能力目標
6.5.3任務驅動
6.5.4實踐環(huán)節(jié)
6.6黑盒測試技術
6.6.1核心知識
6.6.2能力目標
6.6.3任務驅動
6.6.4實踐環(huán)節(jié)
6.7JUnit單元測試
6.7.1核心知識
6.7.2能力目標
6.7.3任務驅動
6.7.4實踐環(huán)節(jié)
6.8案例分析——圖書管理系統(tǒng)測試
6.9小結
習題6
第7章維護
7.1維護概述
7.1.1核心知識
7.1.2能力目標
7.1.3任務驅動
7.1.4實踐環(huán)節(jié)
7.2維護實施過程
7.2.1核心知識
7.2.2能力目標
7.2.3任務驅動
7.2.4實踐環(huán)節(jié)
7.3軟件的可維護性
7.3.1核心知識
7.3.2能力目標
7.3.3任務驅動
7.3.4實踐環(huán)節(jié)
7.4小結
習題7
第8章面向對象方法學
8.1面向對象方法概述
8.1.1核心知識
8.1.2能力目標
8.1.3任務驅動
8.1.4實踐環(huán)節(jié)
8.2面向對象分析建模
8.2.1核心知識
8.2.2能力目標
8.2.3任務驅動
8.2.4實踐環(huán)節(jié)
8.3建立對象模型
8.3.1核心知識
8.3.2能力目標
8.3.3任務驅動
8.3.4實踐環(huán)節(jié)
8.4建立動態(tài)模型
8.4.1核心知識
8.4.2能力目標
8.4.3任務驅動
8.4.4實踐環(huán)節(jié)
8.5建立功能模型
8.5.1核心知識
8.5.2能力目標
8.5.3任務驅動
8.5.4實踐環(huán)節(jié)
8.6設計模式簡介
8.6.1核心知識
8.6.2能力目標
8.6.3任務驅動
8.6.4實踐環(huán)節(jié)
8.7面向對象的程序設計與實現
8.7.1核心知識
8.7.2能力目標
8.7.3任務驅動
8.7.4實踐環(huán)節(jié)
8.8案例分析——圖書管理系統(tǒng)分析與設計
8.8.1圖書管理系統(tǒng)分析
8.8.2圖書管理系統(tǒng)設計
8.9小結
習題8
第9章軟件項目管理
9.1軟件項目管理概述
9.1.1核心知識
9.1.2能力目標
9.1.3任務驅動
9.1.4實踐環(huán)節(jié)
9.2軟件項目成本管理
9.2.1核心知識
9.2.2能力目標
9.2.3任務驅動
9.2.4實踐環(huán)節(jié)
9.3軟件項目進度管理
9.3.1核心知識
9.3.2能力目標
9.3.3任務驅動
9.3.4實踐環(huán)節(jié)
9.4軟件項目配置管理
9.4.1核心知識
9.4.2能力目標
9.4.3任務驅動
9.4.4實踐環(huán)節(jié)
9.5軟件項目風險管理
9.5.1核心知識
9.5.2能力目標
9.5.3任務驅動
9.5.4實踐環(huán)節(jié)
9.6CMM與CMMI
9.6.1核心知識
9.6.2能力目標
9.6.3任務驅動
9.6.4實踐環(huán)節(jié)
9.7項目管理工具MicrosoftProject及使用
9.7.1核心知識
9.7.2能力目標
9.7.3任務驅動
9.7.4實踐環(huán)節(jié)
9.8小結
習題9
第10章軟件工程實驗
10.1結構化分析實驗
10.1.1實驗目的
10.1.2實驗環(huán)境
10.1.3實驗內容
10.1.4實驗成果
10.2數據庫概念結構設計實驗
10.2.1實驗目的
10.2.2實驗環(huán)境
10.2.3實驗內容
10.2.4實驗成果
10.3結構化設計實驗
10.3.1實驗目的
10.3.2實驗環(huán)境
10.3.3實驗內容
10.3.4實驗成果
10.4軟件測試實驗
10.4.1實驗目的
10.4.2實驗環(huán)境
10.4.3實驗內容
10.4.4實驗成果
10.5軟件項目管理實驗
10.5.1實驗目的
10.5.2實驗環(huán)境
10.5.3實驗內容
10.5.4實驗成果
10.6綜合實例——網上書店系統(tǒng)
10.6.1問題定義
10.6.2系統(tǒng)需求分析
10.6.3軟件設計
10.6.4系統(tǒng)測試
參考文獻
第1章
軟件工程基本概念
(1)軟件危機與軟件工程。
(2)軟件生命周期。
(3)軟件工程的常用模型。
隨著計算機科學技術的迅速發(fā)展,如何更有效地開發(fā)軟件產品越來越受到人們的重視。同時,由于軟件復雜程度的不斷增加,開發(fā)和維護的一系列嚴重問題(軟件危機)隨之產生。軟件工程正是致力于解決軟件危機,研究如何更有效地開發(fā)和維護計算機軟件的一門新興學科。
本章將介紹軟件工程的基本概念,包括軟件、軟件危機、軟件工程、軟件生命周期與常用模型等。
1.1軟件危機與軟件工程
1.1.1核心知識
1.計算機軟件的發(fā)展
隨著計算機硬件性能的極大提高和計算機體系結構的不斷更新,計算機軟件系統(tǒng)更加成熟和更為復雜,從而促使計算機軟件的角色發(fā)生了巨大的變化,其發(fā)展歷史大致可以分為如下四個階段。
第一階段是20世紀50年代初期至60年代初期的十余年,是計算機系統(tǒng)開發(fā)的初期階段。計算機軟件實際上就是規(guī)模較小的程序,程序的編寫者和使用者往往是同一個(或同一組)人。由于程序規(guī)模小,程序編寫起來比較容易,也沒有什么系統(tǒng)化的方法,對軟件的開發(fā)過程更沒有進行任何管理。這種個體化的軟件開發(fā)環(huán)境使得軟件設計往往只是在人們頭腦中隱含進行的一個模糊過程,除了程序清單之外,沒有其他文檔資料。
第二階段跨越了從20世紀60年代中期到70年代末期的十余年,多用戶系統(tǒng)引入了人機交互的新概念,實時系統(tǒng)能夠從多個源收集、分析和轉換數據,從而使進程的控制和輸出的產生以毫秒而不是分鐘來運行,在線存儲的發(fā)展產生了第一代數據庫管理系統(tǒng)。
第三階段是20世紀70年代中期至80年代末期,分布式系統(tǒng)極大地提高了計算機系統(tǒng)的復雜性,網絡的發(fā)展對軟件開發(fā)提出了更高的要求,特別是微處理器的出現和廣泛應用,孕育了一系列智能產品。硬件的發(fā)展速度已經超過了人們對軟件的需求速度,使硬件價格下降,軟件的價格急劇上升,導致了軟件危機的加劇,致使更多的科學家著手研究軟件工程學的科學理論、方法和時限等一系列問題。軟件開發(fā)技術的度量問題受到重視,最著名的有軟件工作量估計COCOMO模型、軟件過程改進模型CMM等。
第四階段是從20世紀80年代末期開始的。這個階段軟件體系結構從集中式的主機模式轉變?yōu)榉植际降目蛻魴C/服務器模式(C/S)或瀏覽器/服務器模式(B/S),專家系統(tǒng)和人工智能軟件從實驗室走出來進入了實際應用,完善的系統(tǒng)軟件、豐富的系統(tǒng)開發(fā)工具和商品化的應用程序的大量出現,以及通信技術和計算機網絡的飛速發(fā)展,使計算機進入了一個大發(fā)展的階段。
2.計算機軟件的定義及特點
軟件是計算機系統(tǒng)中與硬件相互依存的一部分,包括程序、數據及其說明文檔。其中程序是能夠完成特定功能的指令序列;數據是程序能正常操縱信息的數據結構;文檔是與程序設計、開發(fā)及維護有關的各種圖文資料。
軟件同傳統(tǒng)的工業(yè)產品相比,具有以下特點。
(1)軟件是一種邏輯產品。軟件產品是看不見、摸不著的,因而具有無形性。它是腦力勞動的結晶,是以程序和文檔的形式出現的,保存在計算機存儲器和光盤介質上,通過計算機的執(zhí)行才能體現其功能和作用。
(2)軟件產品的生產主要是研發(fā),軟件產品的成本主要體現在軟件研發(fā)所需要的人力上。軟件一旦研發(fā)成功,通過復制就能產生大量軟件產品。
(3)軟件在使用過程中,沒有磨損、老化的問題。但在使用過程中為了適應硬件環(huán)境以及需求的變化需要進行修改。當修改的成本變得難以接受時,軟件就被拋棄。
(4)軟件的開發(fā)主要是腦力勞動。
(5)軟件會越來越復雜。軟件涉及人類社會的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其他領域的專門知識,這對軟件工程師提出了很高的要求。
(6)軟件的成本相當昂貴。軟件研發(fā)需要投入大量、高強度的腦力勞動,成本非常高,風險也很大。
(7)軟件工作牽涉很多社會因素。軟件的開發(fā)和運行涉及機構、體制和管理方式等問題,還會涉及人們的觀念和心理等因素。
3.軟件危機與軟件工程
20世紀60年代中期,大容量、高速度計算機的出現,使計算機的應用范圍迅速擴大,軟件開發(fā)急劇增長。軟件系統(tǒng)的規(guī)模越來越大,復雜程度越來越高,軟件可靠性問題也越來越突出。原來的個人設計、個人使用的方式不再能滿足要求,迫切需要改變軟件生產方式,提高軟件生產率,致使軟件危機爆發(fā)。事實上,軟件危機幾乎從計算機誕生的那一天起就出現了,只不過到了1968年,北大西洋公約組織的計算機科學家在聯邦德國召開的國際學術會議上才第一次提出了“軟件危機”這個名詞。
軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。這類問題絕不僅僅是“不能正常運行的軟件”才具有的,幾乎所有軟件都不同程度地存在這類問題。概括來說,軟件危機包含兩方面問題:如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何維護數量不斷膨脹的已有軟件產品。
具體地說,軟件危機主要有下列典型表現。
(1)軟件開發(fā)進度難以預測,軟件開發(fā)成本難以控制。開發(fā)成本超出預算,實際進度比預訂計劃一再拖延。
(2)用戶對產品功能難以滿足。
(3)軟件產品質量無法保證。
(4)軟件產品難以維護。
(5)軟件缺少適當的文檔資料。
(6)軟件的成本不斷提高。
(7)軟件開發(fā)生產率的提高趕不上硬件的發(fā)展和人們需求的增長。
之所以出現軟件危機,其主要原因一方面是與軟件本身的特點有關;另一方面是與軟件開發(fā)和維護的方法不正確。
為了消除軟件危機,既要有技術措施,又要有組織管理措施。軟件工程正是從技術和管理兩方面研究如何更有效地開發(fā)和維護計算機軟件的一門新興學科。
1968年秋季,第一屆NATO(北約)會議上第一次提出了軟件工程這個概念。概括地說,軟件工程是一門指導計算機軟件開發(fā)和維護的學科。它采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把先進的、正確的管理理念和當前最好的技術結合起來,以最小經濟代價開發(fā)出高質量的軟件并維護它。
……