UML圖的各種類型以及軟件設計師考試考察的方式

UML建模

前言
常見的UML的類型
UML 比前兩題是更難的(略高,但是學會就可以了。前兩題是:數據流圖,數據庫的設計),因為UML圖有很多類型:用例圖,類圖與對象圖,順序圖,活動圖,狀態圖,通信圖,構件圖
所有會考察的UML圖的類型### 用例圖:
用例圖在案例分析中,主要考試2個方面:
1有關項目的詳細描述(會把一個完整的用例圖的某些參與者和某些用例給扣掉,讓大家根據題干的內容以及用例圖已有的結構來分析哪個位置的用例叫什么名稱,哪個位置的參與者對應的是哪個角色)
2要根據題目的意思,來分析2個用例之間是什么關系,是包含還是擴展,或者是泛化關系。
要求:對參與者和用例,緊扣題干,做一一匹配(前提是,需要知道在用例圖中,基本的圖例所表達的含義。)
例如:
圖中人是參與者,用箭頭指向的各個用例代表了這個參與者會使用到這些用例,然后要區分上面的用例是新增書籍,下方是查詢書籍,往往是分析用例之間的關系,來分析這2個用例。在這里涉及到了擴展關系。根據是否涉及到擴展關系,來分析,哪個位置是新增書籍信息,哪個是查詢書籍信息。
包含關系是include.(必須)
擴展關系是extent(非必須)
包含關系是指A用例會使用到某個用例,就是包含關系。
區分包含和擴展: 例如,查詢書籍,我可以直接查詢,不需要使用其他用例,但是我發現查詢到的信息有誤,我需要修改信息,那么我需要用到擴展,修改有時候需要有時不需要,但是包含是必須。
例如,在取款的時候,默認每次都會吐錢 ,那么每次都是包含關系。但是每次都提示是否打印憑條,那么打印憑條就不是必須的,就是擴展。

類圖與對象圖:

考察的方式有3種:
1 填類名(主要),方法名,屬性名
類圖與對象圖
填類名(最常考):要根據題干的信息,要確定在一個類圖當中哪一個類的類名 是什么,例如,把圖中的類名都刪掉,刪除之后只知道,有這么幾個類或者說對象,又知道之間的關系,來分析,哪個位置是哪個類。填類名
2 填多重度(主要)
有以下幾種表達方式,第一種代表了一個集合中的一個對象對應另外一個集合中的幾個對象,1就是對應一個對象,2就是對應2個對象
表達式還有另外的幾種表達方式,其中,0…(0到)和*是等價的,它們都代表了一個集合的一個對象對應了另一個集合的多個對象,這多個對象可以是0個,也可以是多個。等同的表達方式

另外一種形式 ,就是一個集合的一個對象對應了另一個集合的一個或多個對象。或者是1個到多個,但是至少是一個

填多重度: 在這里也有多重度,例如圈起來的1, 0…*,這就是多重度
填多重度填關系:
關系包括: 依賴關系,泛化關系,關聯關系,實現關系
其實真正要了解的是泛化、組合、聚合。依賴都出現的少。
一般呢,記得泛化以及實現,因為實現是對接口,泛化是對類,所以泛化和實現的箭頭都是空心箭頭,只是泛化關系用的是實線,實現關系用的是虛線。
各種關系

組合關系和聚合關系都是用菱形來表示的, 組合關系是實心的菱形,聚合關系是空心的菱形。
各種關系書籍列表和書籍之間的聚合關系,空心的菱形,借閱記錄列表和借閱記錄也是空心的菱形,也就是聚合關系。
在這里插入圖片描述非計算機類書籍與書籍, 計算機類書籍與書籍都是空心的箭頭,也就是泛化關系
在這里插入圖片描述

活動圖:

活動圖是和我們之前接觸的程序里的流程圖非常接近的一種圖。這種圖能表現整個處理流程的基本情況、分支的狀態,例如在圖中首先,用戶下訂單,然后從一個粗的橫線,引出了兩個分支,一方面是生成送貨單,另一方面是用戶選擇支付方式,在支付方式選擇這塊,是一個菱形,菱形指示了如果判斷為真如何,判斷為假如何,這種結構和程序流程圖是保持一致的。
在這里插入圖片描述這個粗橫線代表的是,從這個粗橫線開始產生了多少的并行的線程。注意: 并行的線程。如圖,產生了2個分支,然后在下一個粗橫線進行了合并,也就是在這里產生了2個分支。
活動圖分為帶甬道的活動圖和不帶甬道的活動圖,帶甬道的活動圖里指示了不同的對象,這樣劃分出來后,我們可以更加明確,哪個活動是歸屬與誰的,有它相應的責任人。
在這里插入圖片描述對于這種圖,我們需要了解: 一個流程和一個圖的對應,我們扣出一些空來,我們是否能夠給它還原的問題。其實,所有的圖要解決的問題是類似的,都是把完整的圖摳出一些空,看能不能把它恢復完整。解決機制也是一樣的,就是自己根據表述,來嘗試畫這個圖, 自己畫這個圖會怎么畫,然后再根據標準的圖例來判定哪些位置應該有哪些操作。

狀態圖:

表現得是狀態的變遷,所以把狀態圖也歸為動態圖,所以在狀態圖中,往往是以狀態為節點。
例如圖中的off on 都是狀態。
在這里插入圖片描述

那么,建線代表的是事件,觸發事件。 由一種狀態,觸發一個事件,會進入另外一種狀態,從而導致了狀態的變遷,這就是狀態圖。
狀態圖在考試的時候,如何考察: 往往會給出一個系統描述,描述的過程中會給出多種狀態的變遷,然后會把狀態圖扣掉,大家來填充狀態以及狀態變遷的條件,也就是觸發的事件(這種題往往比較容易解決,因為狀態在描述的過程中,我們好識別有哪些狀態,需要先識別一共有哪幾種狀態,一種狀態到另一種 狀態需要什么條件,恢復到上一種狀態需要什么條件都列出來)在這里插入圖片描述會員的升級和降級就可以使用狀態圖來表現。例如,普通的會員,有銀卡會員,金卡會員,鉆石會員,積分達到多少可以升級會員,從5000到銀卡,累積10000到金卡,狀態圖可以清晰的展示出來。

順序圖:

順序圖有這么一些組成的基本元素。有對象,一般寫在頂端,每一個對象引出一條生命線,用虛線畫下來,例如,在圖中每一個對象都是如此。

在這里插入圖片描述整體的執行順序是從上到下走,可以根據圖中的標號看出第n步,例如圖中第一步是卡片的插入,第二部是創建相應的session,第3,4步依次下來。有箭頭的方向代表了對象之間進行相應的交互的時候是從誰到誰來發送相應的消息,每一個箭頭所對應的其實是消息,以第一個消息為例,實際上是CardReader(讀卡器)想ATM系統發送了相應的消息。在這里插入圖片描述
順序圖最大的特點就是表現出了處理事物的時候,它的時間順序情況如何,按照順序一步一步下來的。
順序圖里,考試中考察方式: 核心點是放在消息里,因為順序圖是一種動態圖,動態圖表現的是對象之間的交互關系,所以往往會把順序圖中的某些消息摳掉,讓大家根據處理流程來分析某一步是干嘛的,例如圖中分析第6,7號是干嘛的,需要我們依據題目給出的描述,根據前面已有的1234條已有的完成的任務綜合分析后面還有哪些步驟要走(往往已經把這些專有的消息、名稱都已經列出來了,相當于做選擇題,讓大家選擇合適的詞語來填到這個位置來)。其次是填對象名。
順序圖往往比較簡單。

通信圖:

又稱之為協作圖,其實是順序圖的另一種表達方式。
在這里插入圖片描述

我們知道順序圖是上面一排對象,引出相應的生命線(虛線),對象之間的一些交互,以順序的方式表達了一些消息的傳遞,通過這種方式來讓人清晰的了解,整個流程執行順序是怎么樣的,涉及到了哪些對象,哪些對象參與什么操作。
通信圖和順序圖是類似的。
通信圖是和順序圖結構有了很大的變化,通信圖的對象是一些節點,對象的交互還是通過箭頭來標識,消息是在箭頭旁邊標注。通信圖和順序圖相比,就是時間上沒有那么明晰,其他方面基本保持一致。所以,順序圖和通信圖統稱為交互圖。
考試的時候一般會把對象摳掉一些,把需要傳遞的消息摳掉一些,然后做成填空題。通信圖和順序圖的差異: 順序圖會強調時間順序。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209514.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209514.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209514.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

3_CSS層疊樣式表基礎

第3章-CSS層疊樣式表基礎 學習目標(Objective) 掌握標簽選擇器的使用掌握類選擇器的使用了解id選擇器和通配符選擇器掌握font屬性和color屬性的應用 1.HTML的局限性 如果要改變下高度或者變一個顏色,就需要大量重復操作 總結: HTML滿足不了設計者的需…

Emacs之dired模式重新綁定鍵值v(一百三十一)

簡介: CSDN博客專家,專注Android/Linux系統,分享多mic語音方案、音視頻、編解碼等技術,與大家一起成長! 優質專欄:Audio工程師進階系列【原創干貨持續更新中……】🚀 優質專欄:多媒…

uniapp實戰 —— 輪播圖【數字下標】(含組件封裝,點擊圖片放大全屏預覽)

組件封裝 src\components\SUI_Swiper2.vue <script setup lang"ts"> import { ref } from vue const props defineProps({config: Object, })const activeIndex ref(0) const change: UniHelper.SwiperOnChange (e) > {activeIndex.value e.detail.cur…

Python——數據容器

數據容器操作的異同點 項目列表list元組tuple字符串str集合set字典dict元素數量支持多個支持多個支持多個支持多個支持多個元素類型任意任意僅字符任意key&#xff1a;除字典外任意類型&#xff1b;value&#xff1a;任意類型下標索引支持支持支持不支持不支持重復元素支持支持…

yarn link使用(npm link)

使用場景 前端開發中&#xff0c;兩個項目相互依賴時&#xff0c;使用yarn link(npm link)鏈接 例如&#xff1a;A項目依賴于本司自己的UI庫B&#xff0c;當我們修改了UI庫B中的某些代碼時&#xff0c;需本地驗證后再發布到私服&#xff0c;此時A項目與UI項目B通過yarn link連…

數據可視化:解鎖企業經營的智慧之道

在現代企業管理中&#xff0c;數據可視化已經成為了一項重要的工具。它不僅僅是簡單地展示數據&#xff0c;更是提供了深入理解數據、做出更明智決策的方法。作為一名可視化設計從業人員&#xff0c;我經手過一些企業自用的數據可視化項目&#xff0c;今天就來和大家聊聊數據可…

數字化升級,智慧醫療新時代——醫院陪診服務的技術創新

在信息技術飛速發展的今天&#xff0c;醫療服務正迎來數字化升級的新時代。本文將探討如何通過先進技術的應用&#xff0c;為醫院陪診服務注入更多智慧元素&#xff0c;提升患者和家屬的醫療體驗。 1. 創新醫療預約系統 # Python代碼演示醫療預約系統的簡單實現 class Medic…

輸入框的透明度影響placeholder的透明度怎么解決

有一個需求是需要寫如上圖所示的輸入框。 首先想到的是調整輸入的透明度 <div class"inputDiv"><img src"./images/search.png" /><input type"text" class"myInput" placeholder"請輸入標題關鍵字"/> &…

飛天使-linux操作的一些技巧與知識點

命令行光標移動到行首行尾 ctrl a 跳到首 ctrl e 跳到尾/etc/passwd rpm 包格式 RPM&#xff08;Red Hat Package Manager&#xff09;是一種常用的Linux軟件包管理系統&#xff0c;它使用特定的命名規則來標識和命名軟件包。RPM包的名稱格式通常遵循以下規則&#xff1a;…

Qt基礎-修改Qt Creator界面字體

Qt Creator設計時字體太小,有時需要自定義一下,本文講解如何修改Qt Creator界面字體。 一、創建樣式文件 創建CSS文件,定義名稱為custom-style.css 編寫內容: QWidget { font: 12pt "Microsoft YaHei"; }QPlainTextEdit { font: 12pt "Microsoft YaHei&…

FPGA時序分析與約束(0)——目錄與傳送門

一、簡介 關于時序分析和約束的學習似乎是學習FPGA的一道分水嶺&#xff0c;似乎只有理解了時序約束才能算是真正入門了FPGA&#xff0c;對于FPGA從業者或者未來想要從事FPGA開發的工程師來說&#xff0c;時序約束可以說是一道躲不過去的坎&#xff0c;所以這個系列我們會詳細介…

Python的sort()與sorted()排序函數的區別

文章目錄 一、工具二、需求三、簡單的使用例子四、原理分析Timsort算法主要特點&#xff1a;Timsort算法的工作原理&#xff1a;sort() 方法和 sorted() 函數的差異&#xff1a; 五、Python中的單例實現簡單示例 一、工具 Python 3.10.0 pycharm 2022 二、需求 最近做項目的…

微服務學習:RestTemplateWebClient發起的http請求實現遠程調用

http請求做遠程調用是與語言無關的調用&#xff0c;只要知道對方的ip,端口&#xff0c;接口路徑&#xff0c;請求參數即可 啟動類中配置&#xff1a; Beanpublic RestTemplate restTemplate(){return new RestTemplate();} Sevice中書寫方法 get Autowiredprivate RestTemp…

2023-2024 年重慶市職業院校技能大賽 高職組“軟件測試”賽項樣題

2023-2024 年重慶市職業院校技能大賽 高職組“軟件測試”賽項樣題 單元測試要求分析、代碼設計、設計測試數據、編寫測試腳本和 測試執行等&#xff1b;測試計劃、測試報告文檔設計與編寫&#xff1b;Web 端測試用例 設計、測試執行和 Bug 記錄&#xff1b; 自動化測試要求分析…

點擊按住說話按鈕事件有延遲

問題原因&#xff1a; 該問題原因是由于系統的某些手勢 delaysTouchesBegan 屬性為 YES&#xff0c;當按鈕處在某些特定位置時觸摸事件會先被這些系統的手勢攔截&#xff0c;系統不響應才會繼續分發&#xff0c;而按鈕的 UIControlEventTouchDown 事件是需要立即響應的&#xf…

Python數據處理的六種方式總結,Python零基礎學習

文章目錄 前言1、dedup()去重并排序2、traverse()拆分嵌套數組3、filter()數據篩選4、groupby()分組運算5、select()遍歷結果集6、sort()數據排序 總結 前言 在 Python 的數據處理方面經常會用到一些比較常用的數據處理方式&#xff0c;比如pandas、numpy等等。 今天介紹的這…

vue圖片預覽 90度旋轉

要在 Vue 3 中實現點擊按鈕讓圖片旋轉 90 度&#xff0c;你可以使用 CSS 轉換和 Vue 的事件處理來完成。這里是一個基本的示例&#xff1a; 首先&#xff0c;在你的組件的模板中&#xff0c;添加一個按鈕和一個應用轉換的圖像&#xff1a; <template> <div> <…

使用粗糙貼圖制作粗紋皮革手提包3D模型

在線工具推薦&#xff1a; 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時&#xff0c;有幾種不同的風格&#xf…

UniGui使用CSS優化PageControl

如題直接上代碼 .x-tab-bar-default-top{background-image:none!important;background-color:#FFF !important;border-color:#f0f0f0 !important;border-left:none!important;border-right:none!important}.x-tab-bar-strip-default{border-color:#f0f0f0 !important;backgrou…

Redisson出現問題總結

org.redisson.client.RedisAuthRequiredException: NOAUTH Authentication required… channel: 出現此問題的原因為沒有redis權限。解決方案在setAddress()后面加上setPassword()方法。 config.useSingleServer().setAddress("redis://localhost:6379").setPasswo…