
簡介這份復習資料面向《UML系統(tǒng)分析與設計》課程學習者系統(tǒng)梳理關聯多重度、類關系判定、交互圖對比、高內聚概念、UML圖功能區(qū)分、四種基本關系以及概念類識別等高頻考點適用于期末備考、考研復試或考前自測查漏。資料以1份doc文檔打包容量僅132KB內容緊湊可直接打開打印便于隨時翻閱。文檔按試題考點逐條解析不僅給出答案還詳細解釋原理例如客戶與訂單的多重度判斷、順序圖與協作圖在時間順序與組織結構上的優(yōu)劣比較、領域模型對軟件設計的啟發(fā)以及GRASP設計模式、統(tǒng)一過程階段、FURPS需求分類等拓展內容。此外針對類圖、用例圖、交互圖、SSD圖等題型還配有簡要的畫圖思路和答案要點幫助讀者理解UML各圖在實際項目中的使用場景而非死記硬背。目前已有404人學習下載說明該整理對同類復習需求具有參考價值。無論系統(tǒng)學習UML建模還是考前集中突破這份試題詳解都能幫助快速理清知識脈絡提升應試與設計能力。1. 別把 UML 復習教材當小說試題真正在考的是讀圖與建模能力打開一套《UML 系統(tǒng)分析與設計復習試題》不少人第一反應是「把概念背熟、把每個圖的樣子記住」可真到了閉卷作答選擇題能蒙對簡答能寫幾句建模題卻總是拿不滿分。原因是這類復習試題的命制邏輯從來不是考「你見過這張圖」而是考「給你一段業(yè)務描述你能不能畫出對的圖再給你一張圖你能不能說出它錯在哪、為什么」。也就是說讀圖、譯圖、改圖這三項能力才是得分主線背誦只是入場券。這套文章適合三類人期末備考但手里只有課件和真題的人準備求職筆試、需要快速把 UML 系統(tǒng)分析與設計知識撿起來的人以及已經畫過不少圖、卻總在關系方向、多重度、消息箭頭上被扣分的熟手。我會直接把復習試題拆成題型、考點、建模題的判分點、自測流程和常見翻車現場來寫每個部分都能直接對應到你手里的那張卷子上。2. 從試題反推考點選擇題與簡答題的高頻落點清單把復習試題整體攤開看題型結構大體是三種概念辨析類選擇題、術語與區(qū)別類簡答題、讀圖改錯與建模題。我習慣先按題型反推考點而不是按章節(jié)順序去背書因為同一考點會被不同題型反復考只是問法不一樣。題型常見占分主要考什么最容易失分的位置選擇題三成上下圖的分類、關系辨析、符號識別把包含關系和擴展關系記反簡答題兩成上下圖與圖的區(qū)別、術語解釋、建模步驟只答名詞不展開場景建模題 / 讀圖改錯四到五成根據描述畫圖、給圖挑錯關聯方向、多重度、消息箭頭這個比例在不同學校的卷子里會有浮動但「建模題占大頭」幾乎是一致的。所以復習順序應當是先搞定選擇題里的分類和關系辨析再用簡答題把「區(qū)別類問題」的表達練順最后把大部分時間留給畫圖。2.1 結構圖與行為圖選擇題第一步分類選擇題里最基礎也最??嫉氖前?UML 的圖分成結構圖和行為圖兩類。結構圖描述系統(tǒng)的靜態(tài)骨架行為圖描述系統(tǒng)在時間維度上發(fā)生了什么。常見問法是「下列哪一組全部屬于結構圖」或者「交互圖包含哪些成員」。結構圖類圖、對象圖、包圖、組件圖、部署圖、復合結構圖。行為圖用例圖、活動圖、狀態(tài)機圖、順序圖、通信圖、定時圖、交互概覽圖。一個容易記錯的地方是用例圖。很多人以為用例畫的是功能列表屬于結構但 UML 里用例圖描述的是參與者與系統(tǒng)之間的交互行為所以歸到行為圖。我的記憶習慣是「動詞找行為」結構圖里的元素大多是名詞行為圖里的元素大多含著動作或事件。選擇題還喜歡考順序圖和通信圖的關系。記住一句話語義等價側重點不同。順序圖強調時間順序通信圖強調對象之間的鏈接關系??荚嚴锍霈F「順序圖能直接轉換為通信圖」這種判斷答案是對的。2.2 關系辨析包含、擴展、聚合、組合、同步異步選擇題和簡答題的共用考點是關系辨析。這些關系是 UML 里最容易翻車的地方因為名字聽起來接近語義差別卻很大。用例圖里最??嫉氖前P系和擴展關系。包含關系表示基用例執(zhí)行過程中一定會用到被包含的用例它是公共的、必需的子流程畫成虛線箭頭從基用例指向被包含用例。擴展關系表示在某些條件下才插入的可選或異常分支畫成虛線箭頭從擴展用例指向基用例的擴展點。類圖里最??嫉氖蔷酆虾徒M合。聚合是整體與部分可以分開存在比如部門和員工部門沒了員工還在組合是整體與部分生命周期綁定比如訂單和訂單項訂單刪了訂單項沒有獨立存在的意義。畫法上一個用空心菱形一個用實心菱形。順序圖里最??嫉氖峭较ⅰ惒较⒑头祷叵?。同步消息用實線實心箭頭發(fā)送后要等對方返回異步消息用實線開放箭頭發(fā)送完繼續(xù)往下走返回消息用虛線箭頭。選擇題經常給一個箭頭畫法讓你選它表示什么這時候只要認準「實心箭頭是請求、虛線是返回、開放箭頭多半是異步」就能定位。2.3 高頻簡答題的三段式答法簡答題的題目來來去去就那么幾道只是換一個圖讓你比較。常見的有類圖和 ER 圖的區(qū)別、狀態(tài)圖和活動圖的區(qū)別、順序圖和通信圖的區(qū)別、用例圖和活動圖在需求分析中的分工。我一般建議用三段式回答先一句話定位這張圖屬于哪一類、用來解決什么問題再寫兩點本質區(qū)別最后補一個使用場景說明什么情況下選它。比如問狀態(tài)圖和活動圖的區(qū)別可以這樣答狀態(tài)圖屬于行為圖用來描述單個對象在生命周期內的事件驅動變化核心是狀態(tài)、事件和遷移活動圖描述的是一段業(yè)務流程的執(zhí)行順序核心是活動、分支和并發(fā)。選型場景上描述訂單從創(chuàng)建到完成的狀態(tài)流轉用狀態(tài)圖描述一次請假審批的流程用活動圖。這個答法不需要長篇大論但每一條都踩在得分點上。閱卷時通常是按要點給分一句話定位給一分兩點區(qū)別給兩分場景例子再給一分比堆一段概念要穩(wěn)得多。3. 建模題怎么不丟分用例圖、類圖、順序圖的答題順序與判分點建模題是復習試題里的重頭戲也是大多數人覺得自己「畫出來了但分不高」的部分。我批過不少模擬卷發(fā)現失分往往不是因為圖丑而是因為關系方向錯、多重度漏標、消息箭頭用錯這些恰恰是閱卷時最容易被盯住的硬傷。建模題有個共性邏輯先讀描述再找元素最后標關系。不管畫哪種圖都不要一上來就畫框連線先把題干里的關鍵對象圈出來。下面按三種最常見的建模題分別說清楚答題順序和判分點。3.1 用例圖從需求描述里撈參與者和用例用例圖的第一步是找參與者。參與者不一定是人也可以是外部系統(tǒng)或定時器。判斷標準是它是否與系統(tǒng)發(fā)生直接交互。第二步是找用例題干里的動詞短語基本就是候選用例命名規(guī)范是「動詞賓語」比如「提交領用申請」「審批借用記錄」。舉個例子一段典型的建模題描述是設備管理員負責維護設備臺賬員工可以發(fā)起領用申請主管審批通過后由倉庫管理員辦理出庫。這里參與者有三個設備管理員、員工、主管、倉庫管理員。用例則包括維護設備臺賬、發(fā)起領用申請、審批申請、辦理出庫。畫圖時的判分點有三處。第一參與者畫在系統(tǒng)邊界框外面用例畫在框里面邊界框標識出系統(tǒng)名稱。第二用例命名必須是動詞短語寫成「設備」或「臺賬」這類名詞會被扣分。第三關系要不要標包含或擴展要謹慎只有存在公共子流程才用包含只有存在可選分支才用擴展。有一個判斷包含關系的小技巧把兩個用例放進去看能不能拆開。如果每個用例執(zhí)行時都必經某一段那這段就是被包含用例如果某段只是偶爾走、或者走錯了才觸發(fā)那就是擴展用例。比如「發(fā)起領用申請」和「校驗庫存」之間如果每次申請都要校驗庫存就畫成包含關系。3.2 類圖名詞抽類、關聯方向與多重度類圖建模題的來源通常和用例圖是同一段描述所以第一步還是圈名詞。題干里的名詞都可能是候選類但要經過兩輪過濾第一輪去掉純屬性類名詞比如編號、日期、數量它們更適合做屬性而不是類第二輪合并同名異義和同義異名的概念比如「員工」和「申請人」在同一場景里指同一類角色就要合并。過濾后得到的候選類開始畫關聯。關聯方向是建模題里最容易被扣分的地方。我習慣用一個句式自檢從 A 讀到 B每個 A 對應多少個 B這句話通順方向就對了。比如部門和員工讀作「一個部門對應 1 到多個員工」關聯方向就是部門指向員工多重度標在員工那端。多重度是另一個判分重點。1 表示恰好一個0..1 表示零個或一個* 表示零到多個1..* 表示一個到多個。畫的時候最常見的問題是把多重度標在錯誤的一端或者干脆不標。我會在答題時養(yǎng)成習慣每條關聯的兩端都檢查一遍先從整體端讀一遍再從部分端讀一遍確認語義一致。如果題干里出現了整體和部分共生死的意思比如訂單刪除后訂單項沒有意義就畫組合關系實心菱形在整體端如果只是松散地歸屬比如部門里包含員工員工可以調崗就畫聚合空心菱形。繼承關系和依賴關系也要留意出現「是一種」的描述畫泛化出現「臨時使用」的描述畫依賴。3.3 順序圖生命線、激活條、消息方向順序圖的建模題通常給一段場景描述要求畫出多個對象之間的交互過程。答題順序是先確定參與交互的對象再從上到下排生命線然后按時間順序畫消息最后檢查返回消息和組合片段。消息方向的判分點主要在箭頭上。同步調用畫實線實心箭頭返回結果畫虛線箭頭異步消息畫實線開放箭頭。很多人在返回消息上畫成實心箭頭一道題從第三筆開始就錯了。另外消息的語義方向是從發(fā)送方指向接收方不是從接收方指向發(fā)送方畫反了整條交互邏輯就亂了。激活條也是判分點。對象從接收消息開始到處理完返回消息為止生命線上要畫一個細長矩形表示對象在這段時間內處于激活狀態(tài)。沒有激活條的順序圖在閱卷時會被視為沒掌握基本要素。循環(huán)和分支用組合片段表示。循環(huán)用 loop多條件分支用 alt可選步驟用 opt。這些操作符要寫在組合片段的左上角并標注條件。如果題干里有「重復查詢直到成功」「根據角色走不同流程」這類描述沒有對應組合片段一定會被扣分。4. 自己出模擬題從往年卷到可閉卷自測的最小流程很多同學復習 UML 系統(tǒng)分析與設計時手里只有一兩套復習試題做完就沒了然后開始到處找新題。我的做法不太一樣我會用「換殼法」把往年的試題改寫出一套變體卷考點保持不變只換業(yè)務領域和名詞這樣訓練出來的不是對某張圖的記憶而是對建模過程的遷移能力。具體流程分三步先整理考點清單再改寫題干場景最后閉卷自測并對照判分點估分。整套流程不需要大量題庫一套往年卷就能生成五六套變體。4.1 換殼法換領域不換結構先拿出一道做過的建模題把題干里的業(yè)務名詞全部替換成另一個領域的概念同時保留參與者數量、關系結構、生命周期這些核心骨架。比如原題是圖書借閱場景借閱人、圖書、借閱記錄可以換成實驗室設備領用場景員工、設備、領用記錄。做換殼對照時要確??键c沒變。原領域要素換殼后的要素保留的考點借閱人員工參與者識別圖書設備候選類過濾借閱記錄領用記錄組合關系續(xù)借可選延期可選擴展關系超期罰款逾期提醒狀態(tài)遷移我自己驗證過換殼后的卷子做起來比原題更容易暴露問題因為場景不熟沒法靠印象里的答案去蒙只能靠對建模規(guī)則的理解一步步推。4.2 用腳本從題干池隨機組卷復習到后期我習慣把選擇題和簡答題整理成一個題干池每次隨機抽一組來自測避免總是先做到熟悉的題。下面這個腳本可以幫你在本地快速生成一套變體卷。# 隨機組卷腳本從題干池抽題按題型控制數量 import random # 題干池示例每個條目含題干、題型、考點 question_pool [ {text: 下列哪張圖屬于行為圖, type: choice, point: 圖的分類}, {text: 包含關系和擴展關系的區(qū)別是什么, type: short, point: 用例關系}, {text: 聚合和組合的生命周期差異在哪里, type: short, point: 類圖關系}, {text: 順序圖中返回消息的箭頭畫法是, type: choice, point: 消息類型}, {text: 根據描述畫出用例圖, type: model, point: 用例建模}, # 實際使用時按自己的題庫繼續(xù)往下加 ] def make_paper(pool, choice8, short2, model1, seedNone): # 設置隨機種子便于同一套題可復現 if seed is not None: random.seed(seed) choices [q for q in pool if q[type] choice] shorts [q for q in pool if q[type] short] models [q for q in pool if q[type] model] paper [] paper random.sample(choices, min(choice, len(choices))) paper random.sample(shorts, min(short, len(shorts))) paper random.sample(models, min(model, len(models))) random.shuffle(paper) # 打亂題型順序模擬真實卷面 return paper paper make_paper(question_pool, choice2, short2, model1, seed42) for i, q in enumerate(paper, 1): print(f{i}. [{q[type]}] {q[text]}考點{q[point]})這段腳本的邏輯是先按題型過濾題干池再從每類題里隨機抽取指定數量最后整體打亂順序避免每次自測時題型固定排列。參數里 choice 控制選擇題數量short 控制簡答題數量model 控制建模題數量seed 用來固定隨機結果方便你隔幾天重做同一套題時能對比答案。用這種方法組出來的卷子每次的題目組合都不一樣但對考點的覆蓋率是可控的。需要注意的是這個腳本只負責抽題不負責評分。自測時建議把答案單獨寫在另一張紙上做完再對照判分點估分否則眼睛會不自覺地往答案上瞟自測效果會大打折扣。4.3 閉卷自測與兩遍評分法閉卷做完一套變體卷后我建議用兩遍評分法來判分。第一遍只看要點完整性圖里該有的元素有沒有簡答的三段式結構是否齊全這遍給的是「要素分」。第二遍把自己當成閱卷老師專門挑三類硬傷關系方向是否畫反、多重度是否漏標、消息箭頭是否用錯。這遍扣的是「準確分」。兩遍分數都記錄在考點清單后面。凡是第二遍被扣分的地方回到對應章節(jié)重新看一遍規(guī)則然后把錯題回填到題干池里下一輪自測時加大這類題目的抽取權重。我一般會保持每周一次閉卷自測建模題每題嚴格限制在十五分鐘內時間一到就停筆這樣能提前適應考場的節(jié)奏。5. 復習與答題中最容易翻車的四個坑現象、原因、補救寫法這部分內容來自我批改模擬卷和復盤真題的踩坑記錄。每條都是「現象 → 原因 → 解決」的順序寫你可以在復習階段對照自查也可以在考前快速過一遍。5.1 把類圖畫成數據庫表現象是畫類圖時類名上寫的是「員工表」屬性里寫了主鍵 id、外鍵 department_id還標了 VARCHAR、INT 這類數據類型。整張圖看起來像一張 ER 圖或者建表語句。閱卷時這類圖會被判定為沒有掌握領域模型和設計模型的層次。原因是沒有區(qū)分「數據建?!购汀笇ο蠼!?。類圖描述的是類的職責、屬性和操作之間的關系屬性應該寫業(yè)務概念比如員工編號、姓名、所屬部門而不是數據庫字段和類型。解決方法是畫類圖前先問一句這個屬性是業(yè)務上關心的還是存儲上需要的業(yè)務關心的留下存儲細節(jié)全部去掉。部門與員工之間畫關聯并標注多重度即可不要畫成外鍵連線。5.2 包含關系和擴展關系用反現象是題干里寫「員工提交領用申請如果庫存不足則進入補貨流程」有些同學的用例圖會畫成「提交領用申請」包含「補貨流程」或者反過來把必要的登錄步驟畫成擴展。原因是對定義只背了關鍵詞沒理解觸發(fā)條件。包含關系是每次都會執(zhí)行的公共子流程擴展關系是滿足特定條件才進入的可選分支。補貨流程明顯是庫存不足時才觸發(fā)所以它應該是擴展關系。解決方法是畫完關系后做一次場景模擬沿著主流程走一遍看這個分支是不是每次都經過。每次都經過的畫包含偶爾進入、條件觸發(fā)的畫擴展。方向也不要記反擴展關系的箭頭從擴展用例指向基用例方向畫反同樣會扣分。5.3 順序圖里返回消息畫成實線箭頭現象是對象 A 調用對象 B 的方法B 處理完返回結果這條返回消息被畫成了和調用消息一樣的實線實心箭頭。整張圖看起來消息都在一個方向流動但語義全錯了。原因是對消息類型只記住了名稱沒有記住箭頭約定的區(qū)分。同步調用、異步調用和返回消息各有各的畫法閱卷時首先看的就是箭頭。解決方法是把三種畫法固定成一個口訣刻在腦子里實心箭頭是同步請求開放箭頭是異步信號虛線箭頭是返回結果。畫完順序圖后逐條檢查箭頭凡是「對方答復」性質的消息一律改成虛線。5.4 狀態(tài)圖畫成流程圖現象是題目要求畫某設備的狀態(tài)圖結果畫出來一張帶開始、判斷、結束的活動流程圖從上到下堆了一排步驟每個步驟之間用箭頭連起來。原因是沒有抓住狀態(tài)圖和活動圖的本質區(qū)別。狀態(tài)圖是事件驅動的關注單個對象在生命周期中可能處于哪些狀態(tài)以及什么事件觸發(fā)狀態(tài)遷移活動圖是流程驅動的關注多個活動之間的先后順序和分支合并。解決方法是畫狀態(tài)圖前先列一張狀態(tài)表把對象可能處于的狀態(tài)名詞都寫出來比如待借出、已借出、已歸還、已報廢再為每個遷移標上觸發(fā)事件。如果畫出的是動詞步驟而不是名詞狀態(tài)說明思路還停留在流程圖階段。6. 考前一晚的白紙驗證法十五分鐘畫一張圖的自查習慣復習到考前一晚很多人會選擇把復習試題從頭到尾再看一遍。我不建議這么做因為看答案屬于被動輸入到考場上能不能主動輸出是另一回事。我養(yǎng)成的習慣是白紙驗證法拿一張空白 A4 紙不看任何資料隨機抽三個考點每個考點閉卷畫一張圖時間限制在十五分鐘內。驗證清單固定為四問圖的要素是否齊全比如類圖有沒有標多重度順序圖有沒有畫激活條。關系種類是否標對包含擴展、聚合組合、同步異步有沒有混用。方向是否可讀把每條關系讀成一句通順的中文。能不能用一句話向別人解釋這張圖畫了什么。如果四問都能答上來這個考點基本是穩(wěn)的。如果哪一問卡住了立刻翻對應章節(jié)補上后再閉卷重畫一次。我當年復習時白紙默畫最常暴露的問題是順序圖里返回消息箭頭畫錯第一遍檢查時自己都沒發(fā)現直到對照判分點列表才看出來。后來我把判分點全部變成白紙上的打勾項畫完先自查再翻答案這個習慣讓建模題的正確率明顯穩(wěn)定下來??记澳且煌砼c其抱著復習試題反復看不如用一小時把高頻考點全部默畫一遍。畫錯的地方就是你第二天最容易丟分的地方提前暴露比在考場上暴露劃算得多。希望這個白紙驗證法能幫到你也祝你在 UML 系統(tǒng)分析與設計的考試里少踩幾個坑把建模題的每一分都拿穩(wěn)。本文還有配套的精品資源點擊獲取