面向?qū)ο蠓治雠c設(shè)計(jì) 第2版(雙色版) 麻志毅
定 價(jià):69 元
- 作者:麻志毅
- 出版時(shí)間:2024/5/1
- ISBN:9787111749493
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書是一本關(guān)于面向?qū)ο蠓治雠c設(shè)計(jì)的教材,講述了面向?qū)ο蟮幕舅枷、主要概念以及相?yīng)的表示法,并給出了詳細(xì)的建模過程指導(dǎo)。本書注重理論與實(shí)踐相結(jié)合,通過給出大量的例題、內(nèi)容較為詳盡的案例分析以及對(duì)建模概念的詳細(xì)剖析,闡明了如何進(jìn)行面向?qū)ο蟮姆治雠c設(shè)計(jì)。
本書適合作為高等院校計(jì)算機(jī)學(xué)院(或信息學(xué)院等)和軟件學(xué)院的軟件工程專業(yè)、計(jì)算機(jī)專業(yè)和相關(guān)專業(yè)的高年級(jí)本科生、工程碩士的教材,也可作為培訓(xùn)班師生以及從事軟件開發(fā)的工程技術(shù)人員的參考書。
面向?qū)ο蠹夹g(shù)以其顯著的優(yōu)勢(shì)已經(jīng)成為計(jì)算機(jī)軟件領(lǐng)域的主流技術(shù)。本書是一本適合應(yīng)用型人才培養(yǎng)的關(guān)于面向?qū)ο蠓治雠c設(shè)計(jì)的教材。
進(jìn)行面向?qū)ο蠓治雠c設(shè)計(jì)需要一套概念與表示法。本書所采用的概念和表示法與UML 2.4保持一致,但并不是全盤采用。本書提倡充分運(yùn)用面向?qū)ο蠓椒ǖ幕靖拍睿拗茢U(kuò)充概念的引入,通過加強(qiáng)過程指導(dǎo)而保持建模概念的簡(jiǎn)練。
進(jìn)行面向?qū)ο蠓治雠c設(shè)計(jì)需要一套過程指導(dǎo)。本書所采用的開發(fā)過程,是在借鑒了較為流行的多種面向?qū)ο箝_發(fā)方法的基礎(chǔ)上,根據(jù)青鳥工程的成果和作者參與的科研及工程實(shí)踐的經(jīng)驗(yàn)總結(jié)出來的,該過程指導(dǎo)具有實(shí)用性和廣泛的適應(yīng)性。
前言
在20世紀(jì)90年代,面向?qū)ο蠹夹g(shù)以其顯著的優(yōu)勢(shì)成為計(jì)算機(jī)軟件領(lǐng)域的主流技術(shù),隨后該技術(shù)在大多數(shù)發(fā)達(dá)國(guó)家的軟件開發(fā)中得到了相當(dāng)廣泛的運(yùn)用。在我國(guó)的軟件產(chǎn)業(yè)界,面向?qū)ο蠹夹g(shù)的學(xué)習(xí)與應(yīng)用熱潮出現(xiàn)于20世紀(jì)90年代后期,如今面向?qū)ο蠓治雠c設(shè)計(jì)技術(shù)也已經(jīng)得到了廣泛的應(yīng)用。
當(dāng)前,產(chǎn)業(yè)界需要大量掌握面向?qū)ο蠓治雠c設(shè)計(jì)技術(shù)的高級(jí)應(yīng)用型開發(fā)人才。很多計(jì)算機(jī)學(xué)院和軟件學(xué)院在軟件工程教學(xué)中開設(shè)了相應(yīng)的課程,旨在使學(xué)生不僅會(huì)使用一種或者幾種面向?qū)ο缶幊陶Z言來編程,更重要的是能運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)建模,即通過面向?qū)ο蠓治觯∣bjectOriented Analysis, OOA)和面向?qū)ο笤O(shè)計(jì)(ObjectOriented Design, OOD)建立系統(tǒng)的分析模型和設(shè)計(jì)模型。
邵維忠教授和楊芙清院士合著的兩本著作[17-18]在廣泛借鑒國(guó)際上各種OOA與OOD方法的同時(shí),根據(jù)作者長(zhǎng)期的研究與實(shí)踐形成了自己的方法特色。其中最主要的特色有三條:一是提倡充分運(yùn)用面向?qū)ο蠓椒ǖ幕靖拍睿拗茢U(kuò)充概念的引入,通過加強(qiáng)過程指導(dǎo)而保持建模概念的簡(jiǎn)練;二是對(duì)UML(Unified Modeling Language, 統(tǒng)一建模語言)所采用的與面向?qū)ο笥嘘P(guān)的概念進(jìn)行深入解析,給出了自己的見解;三是其OOD部分比以往的著作內(nèi)容更為詳細(xì),并且更強(qiáng)調(diào)用OO概念表達(dá)各種全局性的設(shè)計(jì)決策。這兩部學(xué)術(shù)專著作為教材適合于理論性強(qiáng)的研究生教學(xué)。
本書旨在提供一本更適合應(yīng)用型人才培養(yǎng)的教材。在思想體系上,本書繼承了參考文獻(xiàn)[17]和[18]所提出的理論和方法。但是作為一本適合應(yīng)用型人才培養(yǎng)的教材,本書與它們相比有以下不同:
減少了理論闡述和對(duì)不同學(xué)術(shù)觀點(diǎn)的討論,增加了對(duì)如何運(yùn)用概念的講解。
著重講述了面向?qū)ο蟮膽?yīng)用技術(shù)。
在各章的正文部分增加了例題,在各章之后給出了習(xí)題。
通過案例講述了如何運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行分析與設(shè)計(jì)。
本書既是一本教材,也可作為從事軟件開發(fā)的工程技術(shù)人員的參考書。由于以上幾個(gè)特點(diǎn),本書與參考文獻(xiàn)[17]和[18]相比具有更強(qiáng)的普及性,適用于更廣大的讀者群。
UML是一個(gè)由國(guó)際對(duì)象管理組織(Object Management Group, OMG)采納的建模語言規(guī)范,目前在軟件工業(yè)界已經(jīng)被廣泛接受。但UML的內(nèi)容過于龐大和復(fù)雜(這是UML本身的復(fù)雜性造成的),多數(shù)工程技術(shù)人員和讀者反映其學(xué)習(xí)難度很大。UML中的許多內(nèi)容是用于構(gòu)造UML元模型的,對(duì)于大多數(shù)面向應(yīng)用的軟件開發(fā)者來說,這些概念是用不著的。還有一些概念在軟件系統(tǒng)的建模中很少使用,這是因?yàn)閁ML是各方面成果融合的產(chǎn)物,它要盡量地適合各領(lǐng)域。特別是UML不僅僅是用于面向?qū)ο箝_發(fā)的軟件建模語言,它還可用于其他方面的建模,例如建筑業(yè)或機(jī)器制造業(yè)也可用它進(jìn)行建模;谏鲜鲆蛩,本書選用了UML中常用的概念來控制技術(shù)的復(fù)雜性。由于本書加強(qiáng)了運(yùn)用基本概念解決各種復(fù)雜的分析與設(shè)計(jì)問題的過程指導(dǎo),因此所選用的概念和表示法仍能保持表達(dá)能力的完整性。對(duì)本書而言,有些概念并非必不可少的,但為了方便讀者理解這些常見概念,本書也適當(dāng)?shù)剡M(jìn)行了講解,同時(shí)也給出了一些運(yùn)用基本的OO概念代替這些概念的方法。
本書所采用的概念和表示法與UML 24保持一致。在中文術(shù)語方面,本書與我國(guó)的行業(yè)規(guī)范《面向?qū)ο蟮能浖到y(tǒng)建模規(guī)范》完全一致。作為該規(guī)范的主要起草者,本書作者曾經(jīng)與國(guó)內(nèi)很多專家、學(xué)者和企業(yè)界的專業(yè)人士進(jìn)行過反復(fù)研究討論,從而對(duì)該規(guī)范達(dá)成共識(shí)。
進(jìn)行軟件開發(fā),應(yīng)該遵循一定的過程指導(dǎo)。過程指導(dǎo)為完成軟件系統(tǒng)開發(fā)的步驟提供詳細(xì)指導(dǎo),其中包括模型、工具和技術(shù)。本書所講述的過程指導(dǎo)的思想來自參考文獻(xiàn)[17]和[18],即本書所采用的開發(fā)過程,是在借鑒了較為流行的多種開發(fā)過程的基礎(chǔ)上,根據(jù)青鳥工程的成果和作者的科研及工程實(shí)踐的經(jīng)驗(yàn)總結(jié)出來的。
像使用其他開發(fā)方法一樣,用面向?qū)ο蠓椒ㄟM(jìn)行軟件系統(tǒng)建模的目的是要建立相應(yīng)的模型?偟膩碇v,本書把模型分為功能需求模型、分析模型和設(shè)計(jì)模型。針對(duì)建立各種模型所使用的圖以及其中的一些具體的模型元素,本書還給出了相應(yīng)的規(guī)約。
對(duì)于面向?qū)ο蟮能浖,需要有建模工具的支持。本書?duì)此類工具所應(yīng)具有的主要功能進(jìn)行了講述,并介紹了兩款面向?qū)ο蟮能浖9ぞ摺?br>與第1版相比,本版進(jìn)行了如下改進(jìn):
對(duì)面向?qū)ο蟾拍畹亩x更為準(zhǔn)確,對(duì)概念的解釋更加豐富和深入,對(duì)建模指導(dǎo)方面的內(nèi)容進(jìn)行了充實(shí)。
第1版中的建模語言采用UML 20,然而至本版寫作時(shí)OMG發(fā)布了UML 24,其中模型圖的種類、圖元素的表示法以及一些解釋都發(fā)生了變化,因此本版的建模語言采用了UML 24。
解決了作者和熱心的讀者在第1版的使用中發(fā)現(xiàn)的一些問題。
為了加強(qiáng)對(duì)分析與設(shè)計(jì)建模策略和技巧的理解,本版給出了更多的應(yīng)用實(shí)例。
以下簡(jiǎn)要地介紹本書的概貌,使讀者對(duì)它有一個(gè)提綱挈領(lǐng)的了解。
第1章集中介紹了面向?qū)ο蠓椒ǖ幕舅枷牒驮瓌t,解釋了它的基本概念,論述了它的主要優(yōu)點(diǎn),并簡(jiǎn)單介紹了它的發(fā)展歷史和現(xiàn)狀,以及與本書密切相關(guān)的UML 24。
第2章首先概述了面向?qū)ο蠓治鏊媾R的問題,然后對(duì)其進(jìn)行了綜述,在綜述中闡述了面向?qū)ο蠓治瞿P秃瓦^程模型。
第3章全面地講解了建立功能需求模型所使用的概念與表示法,并詳述了如何使用它們來建立功能需求模型。
第4章詳細(xì)地講述了類圖中所使用的概念與表示法,并詳述了如何使用它們來建立類圖。
第5章講述了建立輔助模型所用到的幾種圖——順序圖、通信圖、活動(dòng)圖、狀態(tài)機(jī)圖和包圖,其中詳細(xì)地講述了這些圖中所使用的概念與表示法。
第6章說明了面向?qū)ο蠓治雠c設(shè)計(jì)的關(guān)系,并闡述了面向?qū)ο笤O(shè)計(jì)模型和過程模型。
第7章詳述了如何針對(duì)實(shí)現(xiàn)條件對(duì)分析模型進(jìn)行補(bǔ)充與調(diào)整,完成問題域部分設(shè)計(jì)。
第8章詳述了進(jìn)行人機(jī)交互設(shè)計(jì)所需要考慮的因素,并從分析和設(shè)計(jì)兩個(gè)方面詳述了如何進(jìn)行人機(jī)交互設(shè)計(jì)。
第9章詳述了什么是控制流,如何識(shí)別與定義控制流,以及如何協(xié)調(diào)控制流之間的同步。
第10章講述了數(shù)據(jù)管理部分的設(shè)計(jì)。本章首先對(duì)數(shù)據(jù)庫進(jìn)行了簡(jiǎn)介,然后詳細(xì)講解了如何使用關(guān)系數(shù)據(jù)庫系統(tǒng)對(duì)永久對(duì)象及它們之間的關(guān)系進(jìn)行存儲(chǔ)與檢索。
第11章介紹如何描述與構(gòu)造系統(tǒng)的構(gòu)件,詳細(xì)講解了構(gòu)件圖及其應(yīng)用。本章還講述了制品圖和部署圖。
第12章講述了一些在面向?qū)ο笤O(shè)計(jì)中經(jīng)常使用的設(shè)計(jì)模式。
第13章從耦合、內(nèi)聚和復(fù)用等方面講述了如何評(píng)價(jià)面向?qū)ο蟮脑O(shè)計(jì)模型。
第14章首先講述如何把一個(gè)較為復(fù)雜的系統(tǒng)劃分成一系列子系統(tǒng),然后說明了如何對(duì)系統(tǒng)或子系統(tǒng)進(jìn)行可視化建模,以及從那些方面建立系統(tǒng)的模型,此外還闡述了如何保證模型的一致性。
第15章通過一個(gè)具體的案例分析,說明如何用面向?qū)ο蠓椒ㄟM(jìn)行建模。
最后本書給出了兩個(gè)附錄。附錄A講述了兩款面向?qū)ο蟮能浖9ぞ。附錄B給出了對(duì)用面向?qū)ο蠓椒ㄟM(jìn)行軟件系統(tǒng)建模時(shí)所生成的文檔的主要編制要求。
本書的研究工作和寫作得到了北京大學(xué)邵維忠教授的大力幫助。邵維忠教授對(duì)書稿提出了十分難得的寶貴修改意見,本書的很多內(nèi)容也來自他作為第一作者的著作[17-18]。邵維忠教授具有嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、深厚的學(xué)術(shù)功底以及敏銳的洞察力,他的指導(dǎo)使我受益良多。在此致以衷心的感謝!
本書的研究工作和寫作得到了楊芙清院士和梅宏院士所領(lǐng)導(dǎo)的學(xué)術(shù)隊(duì)伍的支持,也得到了國(guó)家自然科學(xué)基金項(xiàng)目(61272159)、北京市自然科學(xué)基金資助項(xiàng)目(4122036)、國(guó)家重點(diǎn)基礎(chǔ)研究發(fā)展規(guī)劃項(xiàng)目(2011CB302604)和國(guó)家863高技術(shù)研究發(fā)展計(jì)劃項(xiàng)目(2012AA011202)的資助。在此謹(jǐn)向上述單位表示衷心的感謝!
對(duì)書中存在的錯(cuò)誤和疏漏之處,懇請(qǐng)各位讀者給予批評(píng)指正,并通過電子郵件(mzy@seipkueducn)或其他方式進(jìn)行更有意義的討論。
麻志毅
2013年1月于北京大學(xué)
麻志毅 博士,北京大學(xué)信息技術(shù)高等研究院副院長(zhǎng)、智能軟件中心主任。長(zhǎng)期從事軟件工程方面的教學(xué)與科研工作。在國(guó)內(nèi)外學(xué)報(bào)或會(huì)議上發(fā)表多篇學(xué)術(shù)論文,主持或參加國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863)、國(guó)家重大基礎(chǔ)研究(973)、國(guó)家科技支撐計(jì)劃和國(guó)家自然科學(xué)基金等多項(xiàng)國(guó)家科研項(xiàng)目。主要研究領(lǐng)域?yàn)檐浖こ讨苇h(huán)境、面向?qū)ο蠹夹g(shù)和面向服務(wù)計(jì)算技術(shù)等。曾獲國(guó)家科技進(jìn)步二等獎(jiǎng)和國(guó)家科技攻關(guān)優(yōu)秀成果獎(jiǎng)等國(guó)家部委獎(jiǎng)勵(lì)多項(xiàng)。
目錄
前言
教學(xué)建議
第一部分概述
第1章面向?qū)ο蠓椒ǜ耪?br>1.1傳統(tǒng)軟件開發(fā)方法中存在的問題
1.2面向?qū)ο蟮幕舅枷?br>1.3面向?qū)ο蟮幕驹瓌t
1.4面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)
1.5面向?qū)ο蠓椒ǖ陌l(fā)展史及現(xiàn)狀簡(jiǎn)介
1.6關(guān)于統(tǒng)一建模語言UML
習(xí)題
第二部分面向?qū)ο蠓治?br>第2章什么是面向?qū)ο蠓治?br>2.1分析面臨的主要問題
2.2面向?qū)ο蠓治鼍C述
習(xí)題
第3章建立需求模型——用況圖
3.1系統(tǒng)邊界
3.2參與者
3.2.1概念與表示法
3.2.2識(shí)別參與者
3.3用況
3.3.1概念與表示法
3.3.2用況與參與者之間的關(guān)系
3.3.3用況之間的關(guān)系
3.3.4捕獲用況
3.3.5用況模板
3.4用況圖
3.5檢查與調(diào)整
3.6用況模型與OOA模型
3.7例題
習(xí)題
第4章建立基本模型——類圖
4.1對(duì)象與類
4.1.1概念與表示法
4.1.2識(shí)別對(duì)象與類
4.1.3審查與篩選
4.1.4抽象出類并進(jìn)行調(diào)整
4.1.5認(rèn)識(shí)對(duì)象的主動(dòng)行為并識(shí)別主動(dòng)對(duì)象
4.1.6類的命名
4.1.7建立類圖的對(duì)象層
4.2屬性與操作
4.2.1屬性
4.2.2操作
4.3關(guān)系
4.3.1繼承
4.3.2關(guān)聯(lián)
4.3.3聚合
4.3.4依賴
4.4接口
習(xí)題
第5章建立輔助模型
5.1順序圖
5.1.1概念與表示法
5.1.2順序圖中的結(jié)構(gòu)化控制
5.1.3建立順序圖
5.2通信圖
5.2.1概念與表示法
5.2.2建立通信圖
5.3活動(dòng)圖
5.3.1概念與表示法
5.3.2建立活動(dòng)圖
5.4狀態(tài)機(jī)圖
5.4.1概念與表示法
5.4.2建立狀態(tài)機(jī)圖
5.5包圖
5.5.1概念與表示法
5.5.2如何劃分與組織包
習(xí)題
第三部分面向?qū)ο笤O(shè)計(jì)
第6章什么是面向?qū)ο笤O(shè)計(jì)
6.1OOA與OOD的關(guān)系
6.2面向?qū)ο笤O(shè)計(jì)模型和過程
習(xí)題
第7章問題域部分的設(shè)計(jì)
7.1復(fù)用類
7.2增加一般類以建立共同協(xié)議
7.3提高性能
7.4按編程語言調(diào)整繼承
7.5轉(zhuǎn)化復(fù)雜關(guān)聯(lián)并決定關(guān)聯(lián)的實(shí)現(xiàn)方式
7.6調(diào)整與完善屬性
7.7構(gòu)造及優(yōu)化算法
7.8決定對(duì)象間的可訪問性
7.9定義對(duì)象實(shí)例
7.10其他
習(xí)題
第8章人機(jī)交互部分的設(shè)計(jì)
8.1什么是人機(jī)交互部分
8.2如何分析人機(jī)交互部分
8.3如何設(shè)計(jì)人機(jī)交互部分
8.3.1設(shè)計(jì)輸入與輸出
8.3.2命令的組織
8.3.3用OO概念表達(dá)所有的界面成分
8.3.4銜接界面模型和問題域模型
8.4人機(jī)交互部分的設(shè)計(jì)準(zhǔn)則
習(xí)題
第9章控制驅(qū)動(dòng)部分的設(shè)計(jì)
9.1什么是控制驅(qū)動(dòng)部分
9.2控制流
9.3如何設(shè)計(jì)控制驅(qū)動(dòng)部分
9.3.1識(shí)別控制流
9.3.2審查
9.3.3定義控制流
9.3.4進(jìn)程間和線程間的通信
9.3.5控制流間的同步
習(xí)題
第10章數(shù)據(jù)管理部分的設(shè)計(jì)
10.1什么是數(shù)據(jù)管理部分
10.2數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
10.2.1關(guān)系數(shù)據(jù)庫
10.2.2面向?qū)ο髷?shù)據(jù)庫
10.3如何設(shè)計(jì)數(shù)據(jù)管理部分
10.3.1針對(duì)關(guān)系數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)存取設(shè)計(jì)
10.3.2針對(duì)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的數(shù)據(jù)存取設(shè)計(jì)
10.3.3針對(duì)文件系統(tǒng)的數(shù)據(jù)存取設(shè)計(jì)
習(xí)題
第11章構(gòu)件及部署部分的設(shè)計(jì)
11.1構(gòu)件設(shè)計(jì)
11.1.1概念與表示法
11.1.2構(gòu)件的內(nèi)部結(jié)構(gòu)
11.1.3對(duì)構(gòu)件的行為建模
11.1.4對(duì)構(gòu)件的實(shí)現(xiàn)建模
11.2部署設(shè)計(jì)
11.2.1概念與表示法
11.2.2對(duì)系統(tǒng)的部署建模
習(xí)題
第12章若干典型的設(shè)計(jì)模式
12.1引言
12.2外觀模式
12.3適配器模式
12.4策略模式
12.5觀察者模式
12.6抽象工廠模式
12.7工廠方法模式
習(xí)題
第13章OOD的評(píng)價(jià)準(zhǔn)則
13.1耦合
13.2內(nèi)聚
13.3復(fù)用
13.4其他評(píng)價(jià)準(zhǔn)則
習(xí)題
第四部分系統(tǒng)與模型
第14章系統(tǒng)與模型
14.1系統(tǒng)與子系統(tǒng)
14.1.1概念與表示法
14.1.2對(duì)體系結(jié)構(gòu)模式建模
14.1.3劃分子系統(tǒng)
14.2模型
14.2.1模型的含義
14.2.2模型和視圖
14.2.3模型的抽象層次
14.2.4模型間的一致性檢查
習(xí)題
第五部分建模實(shí)例
第15章案例:教學(xué)管理系統(tǒng)
15.1系統(tǒng)的功能需求
15.2建立需求模型
15.2.1劃分子系統(tǒng)
15.2.2識(shí)別參與者
15.2.3識(shí)別用況
15.2.4對(duì)需求進(jìn)行捕獲與描述
15.3系統(tǒng)分析
15.3.1尋找類
15.3.2建立狀態(tài)機(jī)圖
15.3.3建立類圖
15.3.4建立順序圖
15.4系統(tǒng)設(shè)計(jì)
15.4.1問題域部分設(shè)計(jì)
15.4.2界面部分設(shè)計(jì)
15.4.3數(shù)據(jù)管理部分設(shè)計(jì)
習(xí)題
附錄
附錄A面向?qū)ο蟮能浖9ぞ?br>附錄B文檔編制指南
參考文獻(xiàn)