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