第1章 軟件工程概述
1.1 軟件工程的產生和發(fā)展
1.1.1 軟件工程的發(fā)展過程
1.1.2 軟件危機
1.1.3 軟件工程研究的內容
1.2 軟件與軟件工程過程
1.2.1 軟件的概念和特點
1.2.2 軟件工程過程
1.3 軟件過程模型
1.3.1 瀑布模型
1.3.2 增量模型
1.3.3 螺旋模型
1.3.4 噴泉模型
1.3.5 智能模型
1.4 軟件開發(fā)方法
1.4.1 結構化開發(fā)方法
1.4.2 原型化開發(fā)方法
1.4.3 面向對象的軟件開發(fā)方法
1.5 軟件工具與軟件開發(fā)環(huán)境
習題1
第2章 軟件維護
2.1 軟件維護的基本概念
2.1.1 軟件維護的目的
2.1.2 軟件維護的類型
2.1.3 軟件維護的特性
2.1.4 軟件維護的代價
2.2 軟件維護的過程
2.3 軟件維護技術
2.4 軟件可維護性
2.4.1 軟件可維護性的定義
2.4.2 提高可維護性的方法
2.5 逆向工程和再工程
習題2
第3章 軟件工具與集成化環(huán)境
3.1 軟件工具
3.1.1 軟件開發(fā)工具
3.1.2 軟件維護工具
3.1.3 軟件管理與支持工具
3.2 集成化CASE環(huán)境
3.2.1 概述
3.2.2 集成化的CASE開發(fā)環(huán)境
的要求
3.2.3 集成化的CASE開發(fā)環(huán)境的
體系結構
3.3 軟件開發(fā)工具Rational Rose
3.3.1 Rose工具簡介
3.3.2 業(yè)務用例圖
3.3.3 用例圖
3.3.4 類圖
3.3.5 協(xié)作圖與時序圖
3.3.6 活動圖
3.3.7 狀態(tài)圖
3.3.8 構件圖和部署圖
習題3
第4章 面向對象方法
4.1 面向對象方法概述
4.1.1 什么是面向對象方法
4.1.2 面向對象方法的主要特點
4.2 面向對象的基本概念
4.2.1 對象與類
4.2.2 繼承
4.2.3 多態(tài)性
4.2.4 消息
4.3 面向對象的分析
4.3.1 需求分析中的問題
4.3.2 OOA的特點
4.3.3 OOA的基本任務與分析過程
4.4 面向對象的設計
4.4.1 OOD的準則
4.4.2 OOD的基本任務
4.5 典型的面向對象方法
4.5.1 Booch方法
4.5.2 Coad/Yourdon方法
4.5.3 對象模型技術(OMT)
4.5.4 OOSE方法
習題4
第5章 統(tǒng)一建模語言(UML)
5.1 UML概述
5.1.1 UML的形成
5.1.2 UML的特點
5.1.3 UML建模及其構成
5.1.4 UML的圖形表示
5.1.5 通用模型元素
5.2 建立用例模型
5.2.1 需求分析與用例建模
5.2.2 確定執(zhí)行者
5.2.3 確定用例
5.2.4 建立用例之間的關系
5.2.5 用例建模實例
5.3 建立靜態(tài)模型
5.3.1 類圖
5.3.2 包圖
5.4 建立動態(tài)模型
5.4.1 消息
5.4.2 狀態(tài)圖
5.4.3 順序圖
5.4.4 合作圖
5.4.5 活動圖
5.5 建立實現模型
5.5.1 構件圖
5.5.2 配置圖
5.6 統(tǒng)一過程及其應用
5.6.1 UML與RUP
5.6.2 RUP的特點
5.6.3 RUP的二維開發(fā)模型
5.6.4 RUP的迭代開發(fā)模式
習題5
第6章 軟件測試
6.1 軟件測試概述
6.1.1 軟件測試的基本概念
6.1.2 軟件測試的特點和基本原則
6.1.3 軟件測試過程
6.1.4 靜態(tài)分析與動態(tài)測試
6.2 軟件測試的策略
6.2.1 單元測試
6.2.2 集成測試
6.2.3 確認測試
6.2.4 系統(tǒng)測試
6.2.5 測試和β測試
6.2.6 綜合測試策略
6.3 軟件調試
6.3.1 軟件調試過程
6.3.2 軟件調試策略
6.4 面向對象的測試
6.4.1 面向對象測試的特點
6.4.2 面向對象測試的類型
6.4.3 分析模型測試
6.4.4 面向對象的測試用例
習題6
第7章 面向對象程序設計語言的核心概念
7.1 面向對象的目標
7.2 面向對象的核心概念
7.2.1 數據封裝
7.2.2 繼承
7.2.3 多態(tài)性
7.3 按對象方式思維
7.4 面向對象的思想和方法
7.4.1 面向對象是一種認知方法學
7.4.2 面向對象與軟件IC
7.4.3 面向對象方法與結構化程序設計方法
7.4.4 對象是抽象數據類型的實現
7.5 面向對象的程序設計語言
第8章 C++語言實現數據封裝
8.1 類的定義
8.2 類的成員
8.2.1 數據成員
8.2.2 成員函數
8.2.3 靜態(tài)成員
8.2.4 類外訪問成員的方法
8.3 C++語言的類
8.4 數據封裝和信息隱蔽的意義
8.5 構造函數
8.5.1 構造函數的作用
8.5.2 構造函數的定義
8.5.3 重載構造函數
8.6 復制構造函數
8.7 析構函數
8.8 對象的創(chuàng)建、釋放和初始化
8.9 對象和指針
8.9.1 this指針
8.9.2 指向類對象的指針
8.9.3 指向類的成員的指針
8.10 友元關系
8.10.1 友元函數
8.10.2 友元類
8.10.3 友元關系的總結
8.11 與類和對象相關的問題
8.11.1 類類型作為參數類型
8.11.2 一個類的對象作為另一個類的成員
8.11.3 臨時對象
習題8
第9章 C++語言實現多態(tài)性
9.1 重載運算符
9.1.1 運算符重載的語法形式
9.1.2 重載運算符規(guī)則
9.1.3 一元運算符和二元運算符
9.1.4 重載“++”和“”的前綴和后綴方式
9.1.5 重載賦值運算符
9.1.6 重載運算符“( )”和“[ ]”
9.1.7 重載輸入運算符和輸出運算符
9.1.8 指針懸掛問題
9.2 C++語言的類型轉換
9.2.1 標準類型轉換為類類型
9.2.2 類類型轉換函數
9.3 實例——復數類重載運算符
習題9
第10章 C++語言實現繼承性
10.1 繼承和派生
10.1.1 為什么要使用繼承
10.1.2 派生類的聲明和繼承方式
10.1.3 基類對象的初始化
10.2 多繼承
10.2.1 多繼承的概念
10.2.2 虛基類
10.3 繼承的意義
10.3.1 模塊的觀點
10.3.2 類型的觀點
10.4 虛函數
10.4.1 靜態(tài)多態(tài)性
10.4.2 基類和派生類的指針與對象的關系
10.4.3 虛函數與多態(tài)性
10.5 純虛函數和抽象類
10.6 虛函數實例——Figure類
10.7 類屬
10.7.1 無約束類屬機制
10.7.2 約束類屬機制
10.8 模板的概念
10.8.1 函數模板與模板函數
10.8.2 類模板與模板類
10.9 實例——一維數組
10.10 堆棧、隊列的應用
習題10
第11章 Java語言基礎
11.1 Java語言的發(fā)展歷程
11.2 Java語言的特點
11.2.1 簡捷性
11.2.2 面向對象
11.2.3 動態(tài)性
11.2.4 安全性
11.2.5 平臺無關性和可移植性
11.2.6 高性能
11.2.7 多線程
11.2.8 分布式
11.2.9 健壯性
11.3 Java語言的開發(fā)工具包
11.3.1 JDK的下載、安裝和設置
11.3.2 JDK的簡介
11.4 Java程序的基本結構
11.5 Java程序開發(fā)實例
11.5.1 一個簡單的Java
……
第12章 Java語言程序設計
參考文獻