本書闡述編程技術的結構化分析、設計的基本步驟與面向對象理論的發展,重點講述面向對象的基本理論、面向對象設計原則,以及使用面向對象技術進行分析、設計、實現的完整軟件開發流程。本書在面向對象系統分析與設計中重點強調軟件作為系統與面向對象系統建模的概念。在系統分析、系統設計與系統實現中,使用統一建模語言UML建立文檔。本書力求包括軟件工程與面向對象研究的**進展,如統一過程模型等。
書中大多數設計例子都使用純面向對象語言Java實現,每章都有練習題,大多數章還提供課下設計――編程作業,部分Java源代碼可以登錄華信教育資源網(www.hxedu.com.cn)下載或者直接向作者(電子郵箱mikesun725@aliyun.com)索取。
第1章 編程語言的發展與程序結構
1.1 編程語言發展簡史
1.1.1 機械計算機時代的“編程”
1.1.2 編程語言的發展歷程
1.2 非結構化編程簡介
1.3 結構化系統分析與設計方法簡史
1.3.1 結構化分析
1.3.2 結構化設計
1.3.3 結構化編程
1.4 非結構化程序設計與結構化程序設計的區別
1.4.1 非結構化程序的特點
1.4.2 結構化程序的特點
1.5 面向對象編程中對象與類的初步概念
1.6 面向對象程序與結構化程序的區別
1.7 本章總結
1.8 練習題
第2章 對象模型的基本概念
2.1 對象模型基礎
2.1.1 面向對象系統的基本概念
2.1.2 面向對象分析的基本概念
2.1.3 面向對象設計的基本概念
2.1.4 面向對象編程
2.1.5 面向對象分析、設計與編程之間的關系
2.2 對象模型元素
2.2.1 抽象的概念
2.2.2 抽象的例子
2.2.3 封裝的概念
2.2.4 封裝的例子
2.2.5 模塊化的概念
2.2.6 Java語言對模塊化的支持
2.2.7 抽象的層次化
2.2.8 由“is-a”關系所產生的抽象層次的例子
2.2.9 由“part of”關系所產生的抽象層次的例子
2.3 本章總結
2.4 練習題
2.5 課下設計――編程作業
第3章 對象
3.1 對象的基本知識
3.1.1 對象的概念
3.1.2 對象的狀態
3.1.3 對象的行為
3.1.4 對象操作的類型
3.1.5 對象的角色與職責
3.1.6 對象就像機器一樣
3.1.7 對象的標識
3.2 對象之間的關系與協作
3.2.1 對象之間的鏈接
3.2.2 對象之間職責的分配
3.2.3 聚合關系
3.3 本章總結
3.4 練習題
3.5 課下設計――編程作業
第4章 類的基本概念
4.1 類的基本知識
4.1.1 類的定義
4.1.2 類的接口與實現
4.2 類之間的關系
4.2.1 關聯關系
4.2.2 類的繼承關系
4.2.3 多態的概念與例子
4.2.4 類的聚合關系
4.2.5 類的依賴關系
4.2.6 關聯的表達形式
4.2.7 關聯的實現方法
4.3 類與對象之間的關系
4.4 本章總結
4.5 練習題
4.6 課下設計――編程作業
第5章 面向對象設計原則
5.1 類的設計應遵循的基本原則
5.1.1 面向對象設計中類與模塊設計質量的度量
5.1.2 操作設計的基本原則
5.1.3 類之間關系確定的基本原則
5.1.4 類的內部視圖
5.2 面向對象設計的SOLID原則
5.2.1 單一職責原則
5.2.2 開閉原則
5.2.3 里氏代換原則
5.2.4 接口隔離原則
5.2.5 依賴倒轉原則
5.3 本章總結
5.4 練習題
5.5 課下設計――編程作業
第6章 統一建模語言UML
6.1 結構圖
6.1.1 類圖
6.1.2 對象圖
6.1.3 包圖
6.1.4 組件圖
6.1.5 部署圖
6.2 行為圖
6.2.1 用例圖
6.2.2 活動圖
6.2.3 時序圖
6.2.4 通信圖
6.2.5 狀態機圖
6.3 本章總結
6.4 練習題
6.5 課下設計――編程作業
第7章 需求分析、領域建模與對象設計
7.1 統一過程模型
7.1.1 統一過程模型的概念
7.1.2 統一過程模型的迭代性質
7.2 需求分析的概念與方法
7.2.1 軟件需求的三個不同層次的含義
7.2.2 需求的獲取與分析
7.2.3 需求獲取方法
7.3 用例圖與用例建模
7.3.1 用例圖
7.3.2 用例建模
7.4 用例建模實例
7.5 領域模型的概念與創建方法
7.6 領域模型實例
7.7 對象設計與職責分配模式
7.7.1 信息專家模式
7.7.2 創造者模式
7.7.3 低耦合模式
7.7.4 高內聚模式
7.7.5 控制器模式
7.7.6 多態模式
7.7.7 純虛構模式
7.7.8 間接模式
7.7.9 受保護變化模式
7.8 本章總結
7.9 練習題
第8章 面向對象分析與設計案例
8.1 賓館預訂與入住系統需求描述
8.1.1 中文描述
8.1.2 英語描述
8.2 賓館預訂與入住系統的領域模型
8.3 賓館預訂與入住軟件系統分析
8.3.1 賓館預訂與入住軟件系統用例建模
8.3.2 系統分析的目的
8.3.3 系統分析中對象的設計
8.3.4 軟件體系結構的選擇
8.3.5 賓館預訂與入住系統的用例分析與實現
8.4 賓館預訂與入住系統的設計
8.4.1 用戶輸入/輸出設計
8.4.2 賓館預訂與入住系統數據庫設計
8.5 類的詳細設計
8.5.1 控制類Controller的詳細設計
8.5.2 賓館類Hotel的詳細設計
8.5.3 訂單類Booking的詳細設計
8.5.4 客戶類Customer的詳細設計
8.5.5 房間類Room的詳細設計
8.5.6 服務類Service的詳細設計
8.5.7 費用類Fee的詳細設計
8.6 賓館預訂與入住系統的實現
8.6.1 實現圖
8.6.2 實現策略
8.6.3 類的實現
8.6.4 關聯的實現
8.6.5 操作的實現
8.7 本章總結
8.8 練習題
8.9 課下設計――編程作業
8.10 課程項目:一個面向對象分析與設計的軟件項目
參考文獻