書名: | 軟件建模與設計:UML、用例、模式和軟件體係結構|3770403 |
圖書定價: | 85元 |
圖書作者: | (美)Hassan Gomaa |
齣版社: | 機械工業齣版社 |
齣版日期: | 2014/8/1 0:00:00 |
ISBN號: | 9787111467595 |
開本: | 16開 |
頁數: | 0 |
版次: | 1-1 |
作者簡介 |
Hassan Gomaa美國喬治梅森大學計算機科學和軟件工程係教授,並擔任係主任。他在軟件工程領域擁有30多年的學術界和工業界經驗,發錶瞭150多篇技術論文。除本書外,他還編*瞭《Designing Software Product Lines with UML))、《DesigningConcurrent,Distributed,and Real-Time Applications with UML))、《Software DesignMethods for Concu rrent and Real—Time Systems》三本書。 |
內容簡介 |
《軟件建模與設計:UML、用例、模式和軟件體係結構》介紹瞭關於軟件應用建模和設計的知識。從UML中的用例到軟件體係結構,本書展示瞭在解決現實世界問題的過程中如何應用COMET,介紹瞭針對各種體係結構的模式(包括客戶端/服務器以及基於構件的軟件體係結構中的客戶端/服務模式,麵嚮服務的體係結構中的代理、發現和事務模式,實時軟件體係結構中的實時控製模式,軟件産品綫體係結構中的分層模式)和軟件質量屬性(包括可維護性、可修改性、可測試性、可追蹤性、可伸縮性、可復用性、性能、可用性和安全性)。此外,還包含瞭四個案例研究(包括銀行係統、在綫購物係統、應急監控係統和自動引導車輛係統)。 《軟件建模與設計:UML、用例、模式和軟件體係結構》非常適閤作為高等院校相關專業高年級本科生或研究生軟件工程課程的教材,同時適閤對大規模軟件係統的分析、設計和開發感興趣的軟件工程師閱讀參考。 |
目錄 |
《軟件建模與設計:UML、用例、模式和軟件體係結構》 齣版者的話 譯者序 前言 本書導讀 緻謝 第一部分 概覽 第1章 引言 2 1.1 軟件建模 2 1.2 麵嚮對象方法與統一建模語言 2 1.3 軟件體係結構設計 3 1.4 方法和錶示法 3 1.5 COMET:一種基於UML的軟件應用建模和設計方法 4 1.6 UML標準 4 1.7 軟件體係結構的多視圖 5 1.8 軟件建模和設計方法的發展 5 1.9 麵嚮對象分析和設計方法的發展 7 1.10 並發、分布式和實時設計方法 8 1.11 總結 8 練習 8 第2章 UML錶示法概述 10 2.1 UML圖 10 2.2 用例圖 10 2.3 類和對象 11 2.4 類圖 12 2.4.1 關聯 12 2.4.2 聚閤和組閤層次 12 2.4.3 泛化和特化層次 13 2.4.4 可見性 13 2.5 交互圖 13 2.5.1 通信圖 13 2.5.2 順序圖 13 2.6 狀態機圖 14 2.7 包 15 2.8 並發通信圖 16 2.9 部署圖 17 2.10 UML擴展機製 17 2.10.1 構造型 18 2.10.2 標記值 18 2.10.3 約束 18 2.11 本書的約定 19 2.11.1 需求建模 19 2.11.2 分析建模 19 2.11.3 設計建模 20 2.12 總結 20 練習 20 第3章 軟件生存周期模型和過程 22 3.1 軟件生存周期模型 22 3.1.1 瀑布生存周期模型 22 3.1.2 瀑布模型的局限性 22 3.1.3 拋棄型原型 24 3.1.4 通過增量開發的演化式原型 24 3.1.5 拋棄型原型和增量開發的結閤 24 3.1.6 螺鏇模型 27 3.1.7 統一軟件開發過程 27 3.2 設計驗證和確認 28 3.2.1 軟件質量保證 29 3.2.2 軟件設計的性能分析 29 3.3 軟件生存周期的活動 29 3.3.1 需求分析和規約 29 3.3.2 體係結構設計 29 3.3.3 詳細設計 30 3.3.4 編碼 30 3.4 軟件測試 30 3.4.1 單元測試 30 3.4.2 集成測試 30 3.4.3 係統測試 30 3.4.4 驗收測試 30 3.5 總結 31 練習 31 第4章 軟件設計和體係結構概念 32 4.1 麵嚮對象概念 32 4.2 信息隱藏 33 4.2.1 麵嚮對象設計中的信息隱藏 34 4.2.2 信息隱藏示例 34 4.2.3 設計信息隱藏對象 36 4.3 繼承和泛化/特化 36 4.4 並發處理 37 4.4.1 順序應用與並發應用 38 4.4.2 並發對象 38 4.4.3 並發對象間的協作 38 4.4.4 同步問題 38 4.4.5 生産者/消費者問題 40 4.4.6 異步消息通信 40 4.4.7 帶迴復的同步消息通信 40 4.5 設計模式 41 4.6 軟件體係結構和構件 41 4.6.1 構件和構件接口 42 4.6.2 連接器 42 4.7 軟件質量屬性 42 4.8 總結 42 練習 43 第5章 軟件建模和設計方法概覽 44 5.1 COMET基於用例的軟件生存周期 44 5.1.1 需求建模 44 5.1.2 分析建模 44 5.1.3 設計建模 44 5.1.4 增量軟件構建 46 5.1.5 增量軟件集成 46 5.1.6 係統測試 46 5.2 COMET生存周期與其他軟件過程的比較 46 5.2.1 COMET生存周期與統一軟件開發過程對比 46 5.2.2 COMET生存周期與螺鏇模型對比 47 5.3 需求、分析和設計建模 47 5.3.1 需求建模中的活動 47 5.3.2 分析建模中的活動 47 5.3.3 設計建模中的活動 48 5.4 設計軟件體係結構 48 5.5 總結 49 練習 49 第二部分 軟件建模 第6章 用例建模 52 6.1 需求建模 52 6.1.1 需求分析 52 6.1.2 需求規約 53 6.1.3 軟件需求規約的質量屬性 53 6.2 用例 54 6.3 參與者 55 6.3.1 參與者、角色和用戶 55 6.3.2 主要和次要參與者 55 6.3.3 對參與者建模 55 6.3.4 誰是參與者 57 6.4 標識用例 57 6.5 用例模型中文檔化用例 57 6.6 用例描述示例 58 6.7 用例關係 59 6.8 包含關係 59 6.8.1 包含關係和包含用例示例 60 6.8.2 結構化冗長的用例 61 6.9 擴展關係 61 6.9.1 擴展點 62 6.9.2 擴展點和擴展用例示例 62 6.10 用例組織指南 64 6.11 規定非功能性需求 64 6.12 用例包 65 6.13 活動圖 65 6.14 總結 66 練習 67 第7章 靜態建模 68 7.1 類之間的關聯 68 7.1.1 類圖描述關聯 68 7.1.2 關聯的多重性 69 7.1.3 三元關聯 71 7.1.4 一元關聯 71 7.1.5 關聯類 71 7.2 組閤和聚閤層次 72 7.3 泛化/特化層次 73 7.4 約束 73 7.5 靜態建模和UML 74 7.6 係統上下文的靜態建模 75 7.7 使用UML構造型對類分類 76 7.8 外部類建模 77 7.8.1 從外部類開發軟件係統上下文類圖示例 78 7.8.2 參與者和外部類 78 7.8.3 從參與者開發軟件係統上下文類圖示例 79 7.9 實體類的靜態建模 80 7.10 總結 81 練習 82 第8章 對象和類組織 83 8.1 對象和類的組織準則 83 8.2 對應用類和對象建模 83 8.3 對象和類的組織分類 84 8.4 外部類與軟件邊界類 85 8.5 邊界類和對象 85 8.5.1 用戶交互對象 85 8.5.2 代理對象 86 8.5.3 設備I/O邊界對象 87 8.5.4 描述外部類和邊界類 88 8.6 實體類和對象 89 8.7 控製類和對象 90 8.7.1 協調者對象 90 8.7.2 狀態相關的控製對象 91 8.7.3 計時器對象 91 8.8 應用邏輯類和對象 92 8.8.1 業務邏輯對象 92 8.8.2 算法對象 92 8.8.3 服務對象 94 8.9 總結 94 練習 94 第9章 動態交互建模 96 9.1 對象交互建模 96 9.1.1 通信圖 96 9.1.2 順序圖 97 9.1.3 對象交互建模的分析和設計決策 97 9.1.4 順序圖和通信圖對比 98 9.1.5 用例和場景 98 9.1.6 通用和實例形式的交互圖 99 9.2 交互圖上的消息序列編號 99 9.2.1 交互圖上的消息標簽 99 9.2.2 交互圖上的消息序列編號 100 9.2.3 並發和可替換的消息序列 100 9.2.4 消息序列描述 101 9.3 動態交互建模 101 9.4 無狀態動態交互建模 101 9.5 無狀態動態交互建模示例 102 9.5.1 查看警報示例 102 9.5.2 下單請求示例 103 9.6 總結 110 練習 110 第10章 有限狀態機 112 10.1 有限狀態機和狀態轉換 112 10.1.1 事件 112 10.1.2 狀態 113 10.2 狀態圖示例 113 10.2.1 ATM狀態圖示例 113 10.2.2 微波爐狀態圖示例 115 10.3 事件和警戒條件 116 10.4 動作 117 10.4.1 狀態轉換中的動作 117 10.4.2 進入動作 119 10.4.3 退齣動作 119 10.5 層次化狀態圖 120 10.5.1 層次化狀態分解 121 10.5.2 復閤狀態 121 10.5.3 狀態轉換的聚閤 121 10.5.4 正交狀態圖 122 10.6 開發狀態圖的指導原則 123 10.7 從用例開發狀態圖 124 10.8 從用例開發狀態圖示例 125 10.8.1 為每個用例開發狀態圖 125 10.8.2 考慮可替換序列 126 10.8.3 開發集成的狀態圖 126 10.8.4 開發層次化狀態圖 128 10.9 總結 129 練習 130 第11章 狀態相關的動態交互建模 132 11.1 狀態相關的動態交互建模中的步驟 132 11.2 使用交互圖和狀態圖對交互場景建模 132 11.3 狀態相關的動態交互建模示例:銀行係統 133 11.3.1 確定主序列 133 11.3.2 確定可替換序列 135 11.3.3 主序列:有效PIN碼 136 11.3.4 可替換序列:無效PIN碼 136 11.3.5 可替換序列:第三次無效PIN碼 137 11.3.6 可替換序列:被盜的或過期的卡片 137 11.3.7 所有場景通用的交互圖 138 11.3.8 控製對象和狀態圖的編序 138 11.4 總結 140 練習 141 第三部分 軟件體係結構設計 第12章 軟件體係結構概覽 144 12.1 軟件體係結構以及基於構件的軟件體係結構 144 12.1.1 基於構件的軟件體係結構 144 12.1.2 體係結構構造型 145 12.2 軟件體係結構的多視圖 145 12.2.1 軟件體係結構的結構視圖 145 12.2.2 軟件體係結構的動態視圖 145 12.2.3 軟件體係結構的部署視圖 147 12.3 軟件體係結構模式 147 12.3.1 抽象分層體係結構模式 148 12.3.2 調用/返迴模式 150 12.3.3 異步消息通信模式 150 12.3.4 帶迴復的同步消息通信模式 153 12.4 描述軟件體係結構模式 153 12.5 接口設計 154 12.6 設計軟件體係結構 155 12.7 總結 157 練習 157 第13章 軟件子係統體係結構設計 159 13.1 軟件體係結構設計中的問題 159 13.2 集成通信圖 160 13.3 子係統設計中的關注點分離 162 13.3.1 復閤對象 162 13.3.2 地理位置 164 13.3.3 客戶端和服務 164 13.3.4 用戶交互 164 13.3.5 外部對象的接口 164 13.3.6 控製範圍 165 13.4 子係統組織準則 166 13.4.1 客戶端子係統 166 13.4.2 用戶交互子係統 166 13.4.3 服務子係統 168 13.4.4 控製子係統 168 13.4.5 協調者子係統 169 13.4.6 輸入/輸齣子係統 170 13.5 子係統間消息通信的決策 170 13.6 總結 172 練習 172 第14章 設計麵嚮對象的軟件體係結構 174 14.1 麵嚮對象的軟件體係結構的概念、體係結構和模式 174 14.2 設計信息隱藏類 174 14.3 設計類接口和操作 175 14.3.1 基於交互模型設計類操作 175 14.3.2 基於交互模型設計類操作示例 176 14.3.3 基於靜態模型設計類操作 177 14.4 數據抽象類 177 14.5 狀態機類 178 14.6 圖形用戶交互類 179 14.7 業務邏輯類 180 14.8 設計中的繼承 180 14.8.1 類繼承 180 14.8.2 抽象類 182 14.8.3 抽象類和子類示例 182 14.8.4 抽象超類和子類設計 184 14.9 類接口規約 185 14.10 信息隱藏類的詳細設計 186 14.10.1 賬戶抽象超類的詳細設計 187 14.10.2 支票賬戶子類的詳細設計 187 14.10.3 儲蓄賬戶子類的詳細設計 188 14.11 多態和動態綁定 188 14.12 Java中類的實現 189 14.13 總結 190 練習 190 第15章 設計客戶端/服務器軟件體係結構 192 15.1 客戶端/服務器體係結構的概念、體係結構和模式 192 15.2 客戶端/服務軟件體係結構的結構模式 192 15.2.1 多客戶端/單服務體係結構模式 192 15.2.2 多客戶端/多服務體係結構模式 194 15.2.3 多層客戶端/服務體係結構模式 195 15.3 客戶端/服務器體係結構的通信模式 195 15.3.1 帶迴復的同步消息通信模式 196 15.3.2 帶迴調的異步消息通信模式 196 15.4 客戶端/服務器係統的中間件 197 15.4.1 客戶端/服務器係統平颱 197 15.4.2 Java遠程方法調用 198 15.5 服務子係統的設計 199 15.5.1 順序性服務的設計 199 15.5.2 順序性服務設計示例 199 15.5.3 並發服務設計 200 15.6 包裝器類的設計 202 15.6.1 數據庫包裝器類的設計 202 15.6.2 數據庫包裝器類示例 202 15.7 從靜態模型到關係數據庫的設計 203 15.7.1 關係數據庫概念 203 15.7.2 確定主鍵 204 15.7.3 將關聯映射到外鍵 204 15.7.4 將關聯類映射到關聯錶 205 15.7.5 將整體/部分關係映射到關係數據庫 206 15.7.6 將泛化/特化關係映射到關係數據庫 207 15.8 總結 208 練習 208 第16章 設計麵嚮服務的體係結構 210 16.1 麵嚮服務的體係結構的概念、體係結構和模式 210 16.2 軟件體係結構代理者模式 211 16.2.1 服務注冊模式 211 16.2.2 代理者轉發模式 212 16.2.3 代理者句柄模式 212 16.2.4 服務發現模式 213 16.3 麵嚮服務的體係結構的技術支持 214 16.3.1 Web服務協議 214 16.3.2 Web服務 214 16.3.3 注冊服務 214 16.3.4 代理和發現服務 215 16.4 軟件體係結構事務模式 215 16.4.1 兩階段提交協議模式 216 16.4.2 復閤事務模式 218 16.4.3 長事務模式 218 16.5 協商模式 219 16.6 麵嚮服務體係結構中的服務接口設計 221 16.7 麵嚮服務體係結構中的服務協調 222 16.8 設計麵嚮服務的體係結構 223 16.9 服務復用 225 16.10 總結 225 練習 225 第17章 設計基於構件的軟件體係結構 227 17.1 基於構件的軟件體係結構的概念、體係結構和模式 227 17.2 設計基於構件的分布式軟件體係結構 228 17.3 復閤子係統和構件 228 17.4 使用UML建模構件 229 17.4.1 構件接口設計 229 17.4.2 供給和請求接口 230 17.4.3 連接器和交互構件 230 17.4.4 設計復閤構件 231 17.5 構件組織準則 232 17.5.1 與物理數據源的鄰近性 232 17.5.2 局部自治性 232 17.5.3 性能 233 17.5.4 特定硬件 233 17.5.5 I/O構件 234 17.6 組消息通信模式 234 17.6.1 廣播消息通信模式 234 17.6.2 訂閱/通知消息通信模式 234 17.6.3 使用訂閱和通知的並發服務設計 236 17.7 應用部署 237 17.7.1 應用部署事務 237 17.7.2 應用部署示例 239 17.8 總結 239 練習 239 第18章 設計並發和實時軟件體係結構 241 18.1 並發和實時軟件體係結構的概念、體係結構及模式 241 18.2 實時係統的特點 241 18.3 實時軟件體係結構中的控製模式 242 18.3.1 集中式控製體係結構模式 242 18.3.2 分布式控製體係結構模式 242 18.3.3 層次化控製體係結構模式 243 18.4 並發任務組織 244 18.5 I/O任務組織準則 244 18.5.1 事件驅動I/O任務 244 18.5.2 周期性I/O任務 245 18.5.3 按需驅動I/O任務 247 18.6 內部任務組織準則 248 18.6.1 周期性任務 248 18.6.2 按需驅動任務 248 18.6.3 控製任務 249 18.6.4 用戶交互任務 250 18.7 開發並發任務體係結構 252 18.8 任務通信和同步 254 18.8.1 異步(鬆耦閤)消息通信 254 18.8.2 帶迴復的同步(緊耦閤)消息通信 254 18.8.3 不帶迴復的同步(緊耦閤)消息通信 255 18.8.4 事件同步 255 18.8.5 信息隱藏對象上的任務交互 256 18.8.6 修正的並發通信圖 257 18.9 任務接口和任務行為規約 257 18.9.1 針對銀行服務任務的TIS示例 259 18.9.2 針對讀卡器接口任務的TIS示例 259 18.10 Java中並發任務的實現 260 18.11 總結 260 練習 261 第19章 設計軟件産品綫體係結構 262 19.1 演化軟件産品綫工程 262 19.2 軟件産品綫的需求建模 263 19.2.1 軟件産品綫的用例建模 263 19.2.2 特徵建模 264 19.3 軟件産品綫的分析建模 266 19.3.1 軟件産品綫的靜態建模 266 19.3.2 軟件産品綫的動態交互建模 266 19.4 軟件産品綫的動態狀態機建模 268 19.5 軟件産品綫的設計建模 269 19.5.1 建模基於構件的軟件體係結構 269 19.5.2 軟件體係結構模式 270 19.6 總結 270 練習 271 第20章 軟件質量屬性 272 20.1 可維護性 272 20.2 可修改性 273 20.3 可測試性 274 20.4 可追蹤性 274 20.5 可擴展性 276 20.6 可復用性 276 20.7 性能 277 20.8 安全性 278 20.9 可用性 278 20.10 總結 279 練習 279 第四部分 案例研究 第21章 客戶端/服務器軟件體係結構案例研究:銀行係統 282 21.1 問題描述 282 21.2 用例模型 282 21.2.1 “驗證PIN碼”用例 284 21.2.2 具體的“取款”用例 284 21.2.3 具體的“查詢賬戶”用例 285 21.2.4 具體的“轉賬”用例 286 21.3 靜態建模 286 21.3.1 問題域的靜態建模 286 21.3.2 係統上下文的靜態建模 286 21.3.3 實體類的靜態建模 289 21.4 對象組織 290 21.4.1 客戶端/服務器子係統組織 290 21.4.2 ATM客戶端對象和類的組織:邊界對象 291 21.4.3 ATM客戶端對象和類的組織:用例中的對象 292 21.4.4 服務子係統中的對象組織 293 21.5 動態建模 293 21.5.1 客戶端驗證PIN碼交互圖的消息序列描述 294 21.5.2 服務器端驗證PIN碼交互圖的消息序列描述 297 21.5.3 客戶端取款交互圖的消息序列描述 298 21.5.4 服務器端取款交互圖的消息序列描述 299 21.6 ATM狀態圖 303 21.6.1 處理客戶輸入復閤狀態 304 21.6.2 處理交易復閤狀態 306 21.6.3 結束交易復閤狀態 307 21.7 銀行係統的設計 308 21.8 集成通信模型 308 21.9 將係統劃分為子係統 310 21.10 ATM客戶端子係統的設計 310 21.10.1 設計ATM子係統並發任務體係結構 311 21.10.2 定義ATM子係統任務接口 312 21.10.3 設計ATM客戶端信息隱藏類 314 21.11 銀行服務子係統的設計 316 21.11.1 設計銀行服務子係統並發任務體係結構 316 21.11.2 設計銀行服務信息隱藏類 317 21.11.3 設計銀行服務接口 318 21.12 關係數據庫設計 318 21.13 銀行係統的部署 320 21.14 其他設計考慮 322 21.15 詳細設計 322 21.15.1 讀卡器接口任務的事件順序邏輯示例 322 21.15.2 ATM控製任務的事件順序邏輯示例 323 21.15.3 銀行服務任務的事件順序邏輯示例 324 第22章 麵嚮服務的體係結構案例研究:在綫購物係統 326 22.1 問題描述 326 22.2 用例建模 326 22.2.1 “瀏覽目錄”用例描述 327 22.2.2 “下單請求”用例描述 328 22.2.3 “處理配送訂單”用例描述 328 22.2.4 “確認配送和給客戶開賬單”用例描述 329 22.2.5“查看訂單”用例的活動圖 331 22.3 靜態建模 331 22.3.1 軟件係統上下文建模 331 22.3.2 問題域的靜態實體類建模 331 22.4 對象和類組織 332 22.5 動態建模 333 22.5.1 “瀏覽目錄”用例的動態建模 333 22.5.2 “下單請求”用例的動態建模 334 22.5.3 “處理配送訂單”用例的動態建模 335 22.5.4 “確認配送和給客戶開賬單”用例的動態建模 336 22.5.5 “查看訂單”用例的動態建模 337 22.6 麵嚮服務體係結構的代理者和包裝器技術支持 338 22.7 設計建模 338 22.7.1 麵嚮服務的體係結構概述 338 22.7.2 分層軟件體係結構 338 22.7.3 體係結構通信模式 339 22.7.4 並發軟件設計 339 22.7.5 服務接口設計 341 22.7.6 麵嚮服務的軟件體係結構設計 344 22.7.7 構件端口和接口設計 346 22.8 服務復用 347 第23章 基於構件的軟件體係結構案例研究:應急監控係統 348 23.1 問題描述 348 23.2 用例建模 348 23.2.1 “查看監控數據”用例描述 349 23.2.2 “查看警報”用例描述 349 23.2.3 “生成監控數據”用例描述 350 23.2.4 “生成警報”用例描述 350 23.3 靜態建模 351 23.4 動態建模 351 23.4.1 類和對象組織 351 23.4.2 用例的通信圖 352 23.4.3 “查看警報”用例的通信圖 352 23.4.4 “查看監控數據”用例的通信圖 353 23.4.5 “生成警報”用例的通信圖 354 23.4.6 “生成監控狀態”用例的通信圖 354 23.5 設計建模 355 23.5.1 集成的通信圖 355 23.5.2 基於構件的分層體係結構 355 23.5.3 體係結構通信模式 357 23.5.4 基於分布式構件的軟件體係結構 359 23.5.5 構件和服務接口設計 359 23.6 軟件構件部署 362 第24章 實時軟件體係結構案例研究:自動引導車輛係統 363 24.1 問題描述 363 24.2 用例建模 363 24.2.1 “移動到站點”用例 364 24.2.2 “發送車輛狀態”用例 364 24.3 靜態建模 365 24.3.1 概念靜態模型 365 24.3.2 軟件係統上下文建模 365 24.4 對象和類組織 366 24.5 動態狀態機建模 366 24.6 動態交互建模 367 24.6.1 “移動到站點”用例的動態建模 367 24.6.2 “發送車輛狀態”用例的動態建模 370 24.7 設計建模 370 24.7.1 集成通信圖 370 24.7.2 基於構件的工廠自動化係統軟件體係結構 370 24.7.3 自動引導車輛係統的軟件體係結構 372 24.7.4 並發軟件體係結構 373 24.7.5 體係結構通信模式 373 24.7.6 基於構件的軟件體係結構 375 24.7.7 構件接口設計 377 附錄A 軟件體係結構模式分類 379 附錄B 教學考慮 400 術語錶 402 練習答案 412 參考文獻 413 索引 420 |
好好
評分好好
評分慢慢看吧……
評分慢慢看吧……
評分質量很不錯
評分慢慢看吧……
評分質量很不錯
評分好好
評分質量很不錯
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有