官术网_书友最值得收藏!

前言

在20世紀90年代,面向對象技術以其顯著的優勢成為計算機軟件領域的主流技術,隨后該技術在大多數發達國家的軟件開發中得到了相當廣泛的運用。在我國的軟件產業界,面向對象技術的學習與應用熱潮出現于20世紀90年代后期,如今面向對象分析與設計技術也已經得到了廣泛的應用。

當前,產業界需要大量掌握面向對象分析與設計技術的高級應用型開發人才。很多計算機學院和軟件學院在軟件工程教學中開設了相應的課程,旨在使學生不僅會使用一種或者幾種面向對象編程語言來編程,更重要的是能運用面向對象方法進行系統建模,即通過面向對象分析(Object-Oriented Analysis,OOA)和面向對象設計(Object-Oriented Design,OOD)建立系統的分析模型和設計模型。

邵維忠教授和楊芙清院士合著的兩本著作[17-18]在廣泛借鑒國際上各種OOA與OOD方法的同時,根據作者長期的研究與實踐形成了自己的方法特色。其中最主要的特色有三條:一是提倡充分運用面向對象方法的基本概念,限制擴充概念的引入,通過加強過程指導而保持建模概念的簡練;二是對UML(Unified Modeling Language,統一建模語言)所采用的與面向對象有關的概念進行深入解析,給出了自己的見解;三是其OOD部分比以往的著作內容更為詳細,并且更強調用OO概念表達各種全局性的設計決策。這兩部學術專著作為教材適合于理論性強的研究生教學。

本書旨在提供一本更適合應用型人才培養的教材。在思想體系上,本書繼承了參考文獻[17]和[18]所提出的理論和方法。但是作為一本適合應用型人才培養的教材,本書與它們相比有以下不同:

?減少了理論闡述和對不同學術觀點的討論,增加了對如何運用概念的講解。

?著重講述了面向對象的應用技術。

?在各章的正文部分增加了例題,在各章之后給出了習題。

?通過案例講述了如何運用面向對象方法進行分析與設計。

本書既是一本教材,也可作為從事軟件開發的工程技術人員的參考書。由于以上幾個特點,本書與參考文獻[17]和[18]相比具有更強的普及性,適用于更廣大的讀者群。

UML是一個由國際對象管理組織(Object Management Group,OMG)采納的建模語言規范,目前在軟件工業界已經被廣泛接受。但UML的內容過于龐大和復雜(這是UML本身的復雜性造成的),多數工程技術人員和讀者反映其學習難度很大。UML中的許多內容是用于構造UML元模型的,對于大多數面向應用的軟件開發者來說,這些概念是用不著的。還有一些概念在軟件系統的建模中很少使用,這是因為UML是各方面成果融合的產物,它要盡量地適合各領域。特別是UML不僅僅是用于面向對象開發的軟件建模語言,它還可用于其他方面的建模,例如建筑業或機器制造業也可用它進行建模。基于上述因素,本書選用了UML中常用的概念來控制技術的復雜性。由于本書加強了運用基本概念解決各種復雜的分析與設計問題的過程指導,因此所選用的概念和表示法仍能保持表達能力的完整性。對本書而言,有些概念并非必不可少的,但為了方便讀者理解這些常見概念,本書也適當地進行了講解,同時也給出了一些運用基本的OO概念代替這些概念的方法。

本書所采用的概念和表示法與UML 2.4保持一致。在中文術語方面,本書與我國的行業規范《面向對象的軟件系統建模規范》完全一致。作為該規范的主要起草者,本書作者曾經與國內很多專家、學者和企業界的專業人士進行過反復研究討論,從而對該規范達成共識。

進行軟件開發,應該遵循一定的過程指導。過程指導為完成軟件系統開發的步驟提供詳細指導,其中包括模型、工具和技術。本書所講述的過程指導的思想來自參考文獻[17]和[18],即本書所采用的開發過程,是在借鑒了較為流行的多種開發過程的基礎上,根據青鳥工程的成果和作者的科研及工程實踐的經驗總結出來的。

像使用其他開發方法一樣,用面向對象方法進行軟件系統建模的目的是要建立相應的模型。總的來講,本書把模型分為功能需求模型、分析模型和設計模型。針對建立各種模型所使用的圖以及其中的一些具體的模型元素,本書還給出了相應的規約。

對于面向對象的軟件建模,需要有建模工具的支持。本書對此類工具所應具有的主要功能進行了講述,并介紹了兩款面向對象的軟件建模工具。

與第1版相比,本版進行了如下改進:

?對面向對象概念的定義更為準確,對概念的解釋更加豐富和深入,對建模指導方面的內容進行了充實。

?第1版中的建模語言采用UML 2.0,然而至本版寫作時OMG發布了UML 2.4,其中模型圖的種類、圖元素的表示法以及一些解釋都發生了變化,因此本版的建模語言采用了UML 2.4。

?解決了作者和熱心的讀者在第1版的使用中發現的一些問題。

?為了加強對分析與設計建模策略和技巧的理解,本版給出了更多的應用實例。

以下簡要地介紹本書的概貌,使讀者對它有一個提綱挈領的了解。

第1章集中介紹了面向對象方法的基本思想和原則,解釋了它的基本概念,論述了它的主要優點,并簡單介紹了它的發展歷史和現狀,以及與本書密切相關的UML 2.4。

第2章首先概述了面向對象分析所面臨的問題,然后對其進行了綜述,在綜述中闡述了面向對象分析模型和過程模型。

第3章全面地講解了建立功能需求模型所使用的概念與表示法,并詳述了如何使用它們來建立功能需求模型。

第4章詳細地講述了類圖中所使用的概念與表示法,并詳述了如何使用它們來建立類圖。

第5章講述了建立輔助模型所用到的幾種圖——順序圖、通信圖、活動圖、狀態機圖和包圖,其中詳細地講述了這些圖中所使用的概念與表示法。

第6章說明了面向對象分析與設計的關系,并闡述了面向對象設計模型和過程模型。

第7章詳述了如何針對實現條件對分析模型進行補充與調整,完成問題域部分設計。

第8章詳述了進行人機交互設計所需要考慮的因素,并從分析和設計兩個方面詳述了如何進行人機交互設計。

第9章詳述了什么是控制流,如何識別與定義控制流,以及如何協調控制流之間的同步。

第10章講述了數據管理部分的設計。本章首先對數據庫進行了簡介,然后詳細講解了如何使用關系數據庫系統對永久對象及它們之間的關系進行存儲與檢索。

第11章介紹如何描述與構造系統的構件,詳細講解了構件圖及其應用。本章還講述了制品圖和部署圖。

第12章講述了一些在面向對象設計中經常使用的設計模式。

第13章從耦合、內聚和復用等方面講述了如何評價面向對象的設計模型。

第14章首先講述如何把一個較為復雜的系統劃分成一系列子系統,然后說明了如何對系統或子系統進行可視化建模,以及從那些方面建立系統的模型,此外還闡述了如何保證模型的一致性。

第15章通過一個具體的案例分析,說明如何用面向對象方法進行建模。

最后本書給出了兩個附錄。附錄A講述了兩款面向對象的軟件建模工具。附錄B給出了對用面向對象方法進行軟件系統建模時所生成的文檔的主要編制要求。

本書的研究工作和寫作得到了北京大學邵維忠教授的大力幫助。邵維忠教授對書稿提出了十分難得的寶貴修改意見,本書的很多內容也來自他作為第一作者的著作[17-18]。邵維忠教授具有嚴謹的治學態度、深厚的學術功底以及敏銳的洞察力,他的指導使我受益良多。在此致以衷心的感謝!

本書的研究工作和寫作得到了楊芙清院士和梅宏院士所領導的學術隊伍的支持,也得到了國家自然科學基金項目(61272159)、北京市自然科學基金資助項目(4122036)、國家重點基礎研究發展規劃項目(2011CB302604)和國家863高技術研究發展計劃項目(2012AA011202)的資助。在此謹向上述單位表示衷心的感謝!

對書中存在的錯誤和疏漏之處,懇請各位讀者給予批評指正,并通過電子郵件(mzy@sei.pku.edu.cn)或其他方式進行更有意義的討論。

麻志毅

2013年1月于北京大學

主站蜘蛛池模板: 三亚市| 金寨县| 东海县| 滁州市| 东平县| 东山县| 万荣县| 五大连池市| 武安市| 开阳县| 沂源县| 惠东县| 吴忠市| 永福县| 和田县| 登封市| 博乐市| 武宁县| 张家界市| 榆社县| 沈阳市| 宜春市| 太仓市| 涞水县| 环江| 双峰县| 六盘水市| 玉田县| 陆良县| 丽水市| 石景山区| 山西省| 临清市| 三原县| 咸宁市| 喀喇| 宁乡县| 静海县| 高唐县| 宕昌县| 阿图什市|