出版時(shí)間:2012-5 出版社:科學(xué)出版社 作者:周華 編 頁數(shù):424 字?jǐn)?shù):723250
內(nèi)容概要
軟件設(shè)計(jì)與體系結(jié)構(gòu)從CDIO工程理念出發(fā),圍繞構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)、運(yùn)作(Operate)四個(gè)方面展開闡述,以一種嶄新的視角展現(xiàn)軟件設(shè)計(jì)和體系結(jié)構(gòu)的內(nèi)容,盡可能做到覆蓋面廣和內(nèi)容新穎,在保持經(jīng)典內(nèi)容的基礎(chǔ)上,力求提供來自業(yè)界最新的內(nèi)容和進(jìn)展。
構(gòu)思(C)給出一個(gè)軟件要做什么的總體思路;設(shè)計(jì)(D)給出一個(gè)軟件怎么做的方法和手段;實(shí)現(xiàn)(I)給出一個(gè)軟件實(shí)際做出來的實(shí)現(xiàn)技術(shù)和路線;運(yùn)作(O)給出一個(gè)軟件如何成功運(yùn)作的模式和方法。CDIO各個(gè)部分相對(duì)獨(dú)立但又互有聯(lián)系,能夠讓讀者以全面的、主動(dòng)的和實(shí)用的方式學(xué)習(xí)和掌握相關(guān)內(nèi)容,并著重強(qiáng)調(diào)工程實(shí)踐訓(xùn)練和綜合能力培養(yǎng)。
軟件設(shè)計(jì)與體系結(jié)構(gòu)可作為計(jì)算機(jī)相關(guān)專業(yè)本科生和研究生的教材,同時(shí)也是軟件工程領(lǐng)域?qū)I(yè)人員的優(yōu)秀參考讀物。
作者簡(jiǎn)介
周華
書籍目錄
第一篇 構(gòu)思篇(Conceive)第1章 軟件環(huán)境1.1 軟件與軟件分類1.1.1 軟件的特點(diǎn)1.1.2 軟件的分類1.2 程序設(shè)計(jì)語言與開發(fā)環(huán)境1.2.1 程序設(shè)計(jì)語言1.2.2 開發(fā)環(huán)境1.3 數(shù)據(jù)庫環(huán)境1.3.1 關(guān)系數(shù)據(jù)庫1.3.2 面向?qū)ο髷?shù)據(jù)庫1.3.3 非結(jié)構(gòu)化數(shù)據(jù)庫1.4 平臺(tái)環(huán)境1.4.1 集成平臺(tái)1.4.2 虛擬化平臺(tái)1.4.3 云平臺(tái)1.5 軟件工程環(huán)境1.5.1 軟件過程模型1.5.2 軟件工程經(jīng)濟(jì)學(xué)1.5.3 軟件過程管理1.5.4 軟件維護(hù)及演化1.6 習(xí)題與思考題第2章 軟件需求2.1 軟件需求與需求工程概述2.1.1 需求的定義2.1.2 需求工程概述2.2 需求獲取2.2.1 引言2.2.2 需求獲取的實(shí)質(zhì)2.2.3 常用方法2.3 需求建模與分析2.3.1 面向?qū)ο蠼?.3.2 過程建模2.3.3 數(shù)據(jù)建模2.4 需求規(guī)約與驗(yàn)證2.4.1 需求規(guī)約2.4.2 需求驗(yàn)證2.5 需求管理2.6 習(xí)題與思考題第3章 軟件體系結(jié)構(gòu)3.1 “4+1”視圖模型3.1.1 邏輯視圖3.1.2 開發(fā)視圖3.1.3 進(jìn)程視圖3.1.4 物理視圖3.1.5 場(chǎng)景3.2 軟件體系結(jié)構(gòu)的定義3.3 軟件體系結(jié)構(gòu)的核心模型3.4 軟件體系結(jié)構(gòu)描述方法3.5 軟件體系結(jié)構(gòu)描述語言(ADL)3.6 軟件體系結(jié)構(gòu)設(shè)計(jì)原則3.7 基于體系結(jié)構(gòu)的軟件開發(fā)過程3.8 軟件體系結(jié)構(gòu)的風(fēng)格3.8.1 管道-過濾器風(fēng)格3.8.2 分層風(fēng)格3.8.3 客戶/服務(wù)器風(fēng)格3.8.4 瀏覽器/服務(wù)器風(fēng)格3.8.5 事件驅(qū)動(dòng)風(fēng)格3.9 體系結(jié)構(gòu)模式3.9.1 從混沌到結(jié)構(gòu)3.9.2 分布式系統(tǒng)3.9.3 交互系統(tǒng)3.9.4 適應(yīng)性系統(tǒng)3.10 習(xí)題與思考題第二篇 設(shè)計(jì)篇(Design)第4章 軟件設(shè)計(jì)4.1 設(shè)計(jì)目標(biāo)及要素4.2 設(shè)計(jì)原則4.2.1 抽象化4.2.2 模塊化4.2.3 信息隱藏4.2.4 模塊的功能獨(dú)立性4.2.5 降低模塊間耦合度的方法4.3 設(shè)計(jì)規(guī)約4.4 設(shè)計(jì)方法4.4.1 結(jié)構(gòu)化設(shè)計(jì)方法4.4.2 面向?qū)ο蟮脑O(shè)計(jì)4.5 習(xí)題與思考題第5章 統(tǒng)一建模語言UML5.1 UML核心概念5.1.1 元素5.1.2 具名元素5.1.3 命名空間5.1.4 可打包元素5.1.5 可重定義元素5.1.6 分類器5.1.7 特性5.1.8 注解5.1.9 關(guān)系5.2 UML關(guān)鍵字與版型5.2.1 關(guān)鍵字5.2.2 版型5.3 UML圖示5.3.1 類圖5.3.2 對(duì)象圖5.3.3 包圖5.3.4 組件圖5.3.5 合成結(jié)構(gòu)圖5.3.6 部署圖5.3.7 用例圖5.3.8 活動(dòng)圖5.3.9 狀態(tài)機(jī)圖5.3.10 交互圖5.3.11 順序圖5.3.12 通信圖5.3.13 計(jì)時(shí)圖5.4 習(xí)題與思考題第6章 設(shè)計(jì)模式6.1 模式思維方法6.1.1 模式的概念6.1.2 模式的重要性6.1.3 軟件設(shè)計(jì)模式的分類6.1.4 模式描述模板6.1.5 模式思維的步驟6.2 設(shè)計(jì)模式概述6.2.1 創(chuàng)建型模式6.2.2 結(jié)構(gòu)型模式6.2.3 行為型模式6.3 習(xí)題與思考題第7章 軟件復(fù)用7.1 概述7.1.1 概念7.1.2 軟件復(fù)用的發(fā)展7.1.3 可復(fù)用的軟件制品7.1.4 軟件復(fù)用的分類7.1.5 軟件復(fù)用的困難與建議7.1.6 軟件復(fù)用的宗旨7.2 分析復(fù)用7.2.1 分析過程復(fù)用7.2.2 分析制品復(fù)用7.3 設(shè)計(jì)復(fù)用7.3.1 設(shè)計(jì)過程復(fù)用7.3.2 基于構(gòu)件的設(shè)計(jì)復(fù)用7.4 代碼復(fù)用7.5 測(cè)試復(fù)用7.5.1 面向復(fù)用的測(cè)試用例設(shè)計(jì)過程7.5.2 復(fù)用測(cè)試用例描述要素7.6 習(xí)題與思考題第8章 軟件界面設(shè)計(jì)8.1 軟件界面設(shè)計(jì)概述8.1.1 軟件界面分析8.1.2 軟件界面開發(fā)過程8.1.3 軟件界面設(shè)計(jì)基本原則8.2 人機(jī)界面基礎(chǔ)知識(shí)8.2.1 認(rèn)知心理學(xué)8.2.2 軟件人機(jī)工程學(xué)8.2.3 藝術(shù)設(shè)計(jì)8.3 界面的定量分析8.3.1 GOMS擊鍵層模型8.3.2 界面效率的測(cè)量8.3.3 Fitts律和Hick律8.4 人本界面8.4.1 認(rèn)知和關(guān)注點(diǎn)8.4.2 界面模式與單調(diào)性8.4.3 統(tǒng)一性和元?jiǎng)幼?.4.4 易用性和幫助機(jī)制8.5 移動(dòng)設(shè)備界面設(shè)計(jì)8.6 習(xí)題與思考題第三篇 實(shí)現(xiàn)篇(Implement)第9章 Web開發(fā)技術(shù)9.1 Web開發(fā)概述9.1.1 運(yùn)作原理及概念9.1.2 開發(fā)語言及技術(shù)概述9.1.3 Web應(yīng)用的特點(diǎn)9.2 Web服務(wù)器9.2.1 Microsoft IIS9.2.2 Apache9.2.3 Tomcat9.2.4 J2EE服務(wù)器9.2.5 Nginx9.3 服務(wù)器端開發(fā)技術(shù)及框架9.3.1 Java技術(shù)9.3.2 .Net技術(shù)9.3.3 PHP技術(shù)9.3.4 Ruby技術(shù)9.3.5 MVC框架9.3.6 Spring框架9.4 Web前端開發(fā)技術(shù)9.4.1 HTML9.4.2 CSS層疊樣式表9.4.3 JavaScript技術(shù)9.4.4 AJAX技術(shù)9.4.5 Silverlight技術(shù)9.5 習(xí)題與思考題第10章 數(shù)據(jù)庫開發(fā)技術(shù)10.1 SQL語言10.2 數(shù)據(jù)庫和表10.2.1 創(chuàng)建及刪除數(shù)據(jù)庫10.2.2 創(chuàng)建表10.2.3 修改表10.2.4 刪除表10.3 索引10.3.1 創(chuàng)建索引10.3.2 刪除索引10.4 查詢10.4.1 SELECT語句10.4.2 多表查詢10.4.3 子查詢10.4.4 集合運(yùn)算10.4.5 聚集函數(shù)10.5 數(shù)據(jù)維護(hù)10.5.1 插入10.5.2 更新10.5.3 刪除10.6 視圖10.6.1 創(chuàng)建視圖10.6.2 刪除視圖10.7 游標(biāo)10.7.1 聲明游標(biāo)10.7.2 打開和關(guān)閉游標(biāo)10.7.3 刪除游標(biāo)10.7.4 應(yīng)用游標(biāo)10.8 存儲(chǔ)過程10.8.1 存儲(chǔ)過程創(chuàng)建與修改10.8.2 執(zhí)行存儲(chǔ)過程10.8.3 刪除存儲(chǔ)過程10.9 觸發(fā)器10.9.1 創(chuàng)建觸發(fā)器10.9.2 刪除觸發(fā)器10.10 習(xí)題與思考題第11章 軟件成本估算技術(shù)11.1 軟件成本估算的步驟11.1.1 建立目標(biāo)11.1.2 計(jì)劃所需的數(shù)據(jù)與資源11.1.3 準(zhǔn)確說明軟件需求11.1.4 盡可能詳細(xì)地做出估算11.1.5 采用多個(gè)獨(dú)立的方法與資源11.1.6 比較與迭代估算11.1.7 跟蹤與變更11.2 軟件成本估算的方法11.2.1 算法模型11.2.2 專家判斷11.2.3 通過推理來進(jìn)行估算11.2.4 帕金森估算11.2.5 價(jià)格策略估算11.2.6 自頂向下估算11.2.7 自底向上估算11.2.8 各方法的總結(jié)比較11.3 基本COCOMO模型軟件成本估算11.3.1 模型定義與假設(shè)11.3.2 軟件開發(fā)模式分類11.3.3 組織型基本COCOMO模型11.3.4 其他模式COCOMO模型11.4 習(xí)題與思考題第12章 軟件架構(gòu)技術(shù)12.1 構(gòu)件技術(shù)12.1.1 軟件構(gòu)件技術(shù)基礎(chǔ)12.1.2 基于構(gòu)件的軟件工程12.2 軟件架構(gòu)綜述12.2.1 企業(yè)架構(gòu)12.2.2 業(yè)務(wù)架構(gòu)12.2.3 應(yīng)用架構(gòu)12.2.4 信息架構(gòu)12.3 中間件12.3.1 中間件的目標(biāo)及地位12.3.2 中間件的基本類型12.3.3 常見中間件技術(shù)介紹12.4 習(xí)題與思考題第13章 軟件集成技術(shù)13.1 軟件合成與軟件集成13.2 軟件集成模式13.2.1 集成適配器模式13.2.2 集成消息器模式13.2.3 集成正面模式13.2.4 集成媒介器模式13.3 企業(yè)應(yīng)用集成13.3.1 EAI的產(chǎn)生和意義13.3.2 企業(yè)應(yīng)用系統(tǒng)的分類13.3.3 企業(yè)應(yīng)用集成的基本原則13.4 數(shù)據(jù)集成13.4.1 數(shù)據(jù)集成的基本概念13.4.2 參考數(shù)據(jù)模型13.4.3 數(shù)據(jù)集成的元數(shù)據(jù)管理13.5 基于消息服務(wù)的集成框架13.5.1 消息傳輸模型13.5.2 消息代理任務(wù)13.5.3 消息代理拓?fù)浣Y(jié)構(gòu)13.5.4 消息代理產(chǎn)品的選擇13.5.5 使用J2EE的企業(yè)消息傳遞13.6 過程集成13.6.1 工作流和工作流管理系統(tǒng)13.6.2 跨組織過程集成13.7 習(xí)題與思考題第14章 軟件測(cè)試技術(shù)14.1 軟件測(cè)試概述14.1.1 軟件測(cè)試技術(shù)的發(fā)展14.1.2 軟件開發(fā)與軟件測(cè)試14.1.3 軟件測(cè)試基本原理與原則14.1.4 軟件測(cè)試模型14.1.5 測(cè)試心理學(xué)14.1.6 測(cè)試覆蓋14.2 軟件測(cè)試管理14.2.1 質(zhì)量改進(jìn)模型PDCA14.2.2 測(cè)試需求14.2.3 測(cè)試計(jì)劃14.2.4 測(cè)試設(shè)計(jì)及測(cè)試用例14.2.5 測(cè)試執(zhí)行14.2.6 測(cè)試記錄與跟蹤14.2.7 回歸測(cè)試14.2.8 總結(jié)與報(bào)告14.3 軟件測(cè)試技術(shù)14.3.1 黑盒測(cè)試與白盒測(cè)試14.3.2 手工測(cè)試與自動(dòng)化測(cè)試14.3.3 單元測(cè)試14.3.4 數(shù)據(jù)庫性能檢查14.3.5 壓力測(cè)試14.3.6 安全性測(cè)試14.3.7 安裝測(cè)試14.3.8 環(huán)境測(cè)試14.4 測(cè)試工具14.5 習(xí)題與思考題第四篇 運(yùn)作篇(Operate)第15章 軟件架構(gòu)師角色與職責(zé)15.1 軟件架構(gòu)師的定義15.2 軟件架構(gòu)師的工作場(chǎng)景15.3 軟件架構(gòu)師的角色15.4 軟件架構(gòu)師與其他角色的關(guān)系及區(qū)別15.4.1 軟件架構(gòu)師與產(chǎn)品經(jīng)理的關(guān)系及區(qū)別15.4.2 軟件架構(gòu)師與項(xiàng)目經(jīng)理的關(guān)系及區(qū)別15.4.3 軟件架構(gòu)師與系統(tǒng)分析員的關(guān)系及區(qū)別15.5 軟件架構(gòu)師的職責(zé)15.6 軟件架構(gòu)師的所應(yīng)具備的能力15.7 軟件架構(gòu)師的工作評(píng)價(jià)標(biāo)準(zhǔn)15.8 習(xí)題與思考題第16章 軟件運(yùn)作模式16.1 軟件企業(yè)的崛起16.1.1 大型科研項(xiàng)目的研究是軟件業(yè)的萌芽16.1.2 獨(dú)立軟件產(chǎn)品的出現(xiàn)預(yù)示軟件業(yè)開始步入正軌16.1.3 企業(yè)解決方案讓軟件業(yè)開始興盛16.1.4 個(gè)人電腦及互聯(lián)網(wǎng)的普及讓軟件業(yè)繁榮16.2 傳統(tǒng)的軟件運(yùn)作模式16.3 基于Free的運(yùn)作模式16.3.1 自由軟件16.3.2 免費(fèi)軟件16.3.3 共享軟件16.3.4 案例16.4 基于開源的運(yùn)作模式16.4.1 開源軟件16.4.2 開源軟件盈利模式16.4.3 案例16.5 基于服務(wù)的運(yùn)作模式16.5.1 軟件企業(yè)職能轉(zhuǎn)變16.5.2 基礎(chǔ)設(shè)施即服務(wù)(IaaS)16.5.3 平臺(tái)即服務(wù)(PaaS)16.5.4 軟件即服務(wù)(SaaS)16.6 習(xí)題與思考題第17章 案例分析17.1 Google搜索引擎17.1.1 營(yíng)銷模式17.1.2 運(yùn)作分析17.2 Twitter17.2.1 營(yíng)銷模式17.2.2 運(yùn)作分析17.3 Facebook17.3.1 營(yíng)銷模式17.3.2 運(yùn)作分析17.4 淘寶17.4.1 營(yíng)銷模式17.4.2 運(yùn)作分析17.5 習(xí)題與思考題參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁: 插圖: 1.3.2 面向?qū)ο髷?shù)據(jù)庫 面向?qū)ο蠹夹g(shù)是一種按照人們對(duì)現(xiàn)實(shí)世界的認(rèn)識(shí)和思維的方式來研究和模擬客觀世界的方法學(xué)。它將現(xiàn)實(shí)世界不同的具體事物看成是“對(duì)象”,將具有同樣性質(zhì)的某一類對(duì)象的群體抽象成“類”,每一個(gè)對(duì)象都有自己內(nèi)部的屬性和運(yùn)動(dòng)規(guī)律,不同對(duì)象的相互作用和聯(lián)系構(gòu)成了我們研究的客觀世界。面向?qū)ο蠓椒▽W(xué)所提出的類、對(duì)象、方法、消息、封裝、繼承、多態(tài)等概念為我們更好地研究和模擬客觀世界提供了堅(jiān)實(shí)的理論基礎(chǔ)。 面向?qū)ο蠹夹g(shù)雖然源自于程序設(shè)計(jì)語言,然而由于面向?qū)ο蠓椒▽W(xué)本身所具有的良好機(jī)制和能力使得該技術(shù)被不斷地運(yùn)用于其他領(lǐng)域:如面向?qū)ο筌浖こ獭⒚嫦驅(qū)ο蟛僮飨到y(tǒng)、面向?qū)ο髷?shù)據(jù)庫等,其中面向?qū)ο髷?shù)據(jù)庫系統(tǒng)(OODBMS:Object Oriented Data Base Management System)就是數(shù)據(jù)庫技術(shù)與面向?qū)ο蠹夹g(shù)的有機(jī)結(jié)合,并由此誕生了第三代數(shù)據(jù)庫系統(tǒng),并成為當(dāng)前數(shù)據(jù)庫領(lǐng)域研究和發(fā)展的主要方向之一。 1.面向?qū)ο髷?shù)據(jù)庫的發(fā)展 在面向?qū)ο蠹夹g(shù)和數(shù)據(jù)庫技術(shù)相結(jié)合的過程中,基本上是沿著下面幾種途徑發(fā)展的: (1)純粹的面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)(即OODBMS)。這種途徑往往是以一種面向?qū)ο笳Z言為基礎(chǔ),增加數(shù)據(jù)庫的功能,主要是支持持久對(duì)象和實(shí)現(xiàn)數(shù)據(jù)共享。面向?qū)ο蟮臄?shù)據(jù)庫不僅在處理多媒體等數(shù)據(jù)類型時(shí)可以做到游刃有余,而且在應(yīng)用系統(tǒng)開發(fā)速度和維護(hù)等方面有著極大的優(yōu)越性。面向?qū)ο髷?shù)據(jù)庫系統(tǒng)產(chǎn)生于20世紀(jì)80年代后期,它利用類來描述復(fù)雜對(duì)象,利用類中封裝的方法來模擬對(duì)象的復(fù)雜行為,利用繼承性來實(shí)現(xiàn)對(duì)象的結(jié)構(gòu)和方法的重用。面向?qū)ο髷?shù)據(jù)庫系統(tǒng)對(duì)一些特定應(yīng)用領(lǐng)域(如CAD等),能較好地滿足其應(yīng)用需求。但是,這種純粹的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)并不支持SQL語言,在通用性方面失去了優(yōu)勢(shì),因而其應(yīng)用領(lǐng)域受到了很大的局限。 (2)對(duì)象關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。把面向?qū)ο蠹夹g(shù)與關(guān)系數(shù)據(jù)庫相結(jié)合,建立對(duì)象關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),這種系統(tǒng)既支持已經(jīng)被廣泛使用的SQL,具有良好的通用性,又具有面向?qū)ο筇匦裕С謴?fù)雜對(duì)象和復(fù)雜對(duì)象的復(fù)雜行為,是對(duì)象技術(shù)和傳統(tǒng)關(guān)系數(shù)據(jù)庫技術(shù)的最佳融合。1997年,對(duì)象關(guān)系數(shù)據(jù)庫的出現(xiàn)和發(fā)展應(yīng)該算是數(shù)據(jù)庫技術(shù)的一次革命,對(duì)象技術(shù)和關(guān)系技術(shù)之間互補(bǔ)的優(yōu)點(diǎn),吸引著全球數(shù)據(jù)庫廠商競(jìng)相研究開發(fā)。如何在現(xiàn)有的關(guān)系型數(shù)據(jù)庫產(chǎn)品中加入對(duì)象技術(shù),繼開發(fā)面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫成為數(shù)據(jù)庫軟件廠商競(jìng)爭(zhēng)的一個(gè)焦點(diǎn)。 (3)ORM(對(duì)象關(guān)系映射)。該技術(shù)的出現(xiàn)是為了在關(guān)系型數(shù)據(jù)庫的基礎(chǔ)上解決“阻抗失諧(Impedance Mismatch)”矛盾,簡(jiǎn)單來說,其本質(zhì)是:對(duì)象系統(tǒng)與關(guān)系系統(tǒng)在如何處理實(shí)體之間的互動(dòng)方面所采取的方式是截然不同的。表面上看,對(duì)象系統(tǒng)和關(guān)系系統(tǒng)彼此非常合適,但若深入研究,就會(huì)發(fā)現(xiàn)二者存在本質(zhì)差異。ORM技術(shù)提出了一種解決該問題的方法,即在對(duì)象層和關(guān)系層間建立一個(gè)映射層(Mapping Layer),通過這種方式,數(shù)據(jù)源中的關(guān)系數(shù)據(jù)可以透明地進(jìn)入對(duì)象領(lǐng)域,以對(duì)象的面貌出現(xiàn),供上層應(yīng)用使用。
編輯推薦
《軟件工程系列規(guī)劃教材:軟件設(shè)計(jì)與體系結(jié)構(gòu)》是軟件工程系列規(guī)劃教材之一,可作為計(jì)算機(jī)相關(guān)專業(yè)本科生和研究生的教材,同時(shí)也是軟件工程領(lǐng)域?qū)I(yè)人員的優(yōu)秀參考讀物。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
軟件設(shè)計(jì)與體系結(jié)構(gòu) PDF格式下載