本書的目的是提供一本實用的和易于理解的面向對象設計的入門教程,它要求讀者具有面向對象程序設計語言的知識(最好是Java),而且闡述了UML的原則和應用。本書針對的讀者主要是計算機科學或軟件工程專業(yè)的大學本科高年級學生或碩士生,當然也希望其他讀者會發(fā)覺這本書是有用的。 本書的總體設想是強調設計的表示法與代碼之間的聯(lián)系?,F(xiàn)在已經有許多討論用UML進行系統(tǒng)分析和設計的教程,不過對最終產品,即被開發(fā)系統(tǒng)的代碼,給予特別注意的還不多見。然而UML實質上是一種表達面向對象程序的設計語言,從這個角度考慮該語言的表示法和語義看來是很自然的。在過去幾年,我已發(fā)現(xiàn)這是把設計表示法的真實含義傳授給學生的好方法。 與這個總體設想有關,本書有兩個主要目標。第一個是提供一個使用UML描述的面向對象開發(fā)的完整示例。開始講述需求,最后講述一個完整的可執(zhí)行代碼,這個代碼可以運行、修改和擴展。 教程的目標限制了可以考慮的事例的規(guī)模。為此,本書采用一個典型的獨立的桌面應用系統(tǒng),作為范例體系結構。它支持圖形用戶界面并與關系數(shù)據(jù)庫接口。在這個框架中,正文仔細地對某些核心功能的開發(fā)進行了探討,并把系統(tǒng)的擴展作為練習留給讀者。 第二個目標是對UML在開發(fā)這種應用的重要方面提供指導。特別把重點放在清楚地闡明此設計語言的結構和表示法,并通過示例說明設計和面向對象程序實現(xiàn)之間的緊密關系。這些問題在許多書中講的相當粗略。然而,如果對此沒有清楚的理解,就難以正確使用UML。 UML是一個龐大而復雜的語言,學習UML時的危險是被這些表示法的細節(jié)所淹沒。為了避免這點,本書使用的是足以用于開發(fā)桌面應用的UML的一個子集。并發(fā)性、活動圖和除了部署圖的簡要敘述外的其他部分,都作了相當大的省略。UML語言的這些方面對于UML的“工業(yè)化”應用顯然是重要的,但是這些已超出本書針對的讀者的經驗。