UML形式化建模期末復習筆記

本文檔為xmind導出,可能存在缺少圖片等問題,建議下載思維導圖查看完整內容
鏈接: https://pan.baidu.com/s/17s-utC2C6Qg0tFp61Kw0ZQ?pwd=uq64 提取碼: uq64

概述

UML: Unified Modeling Language 統一建模語言

建模

  • 定義

    • 把不太理解的東西和一些已經較為理解、且十分類似的東西做比較,可以對這些不太理解的東西產生更深刻的理解,這種方法叫做建模
  • 原因

    • 不能完整地理解一個復雜的系統

    • 為了成功開發復雜的軟件項目

  • 四個目的

    • 幫助我們按照需要對系統進行可視化

    • 允許我們詳細說明系統的結構和行為

    • 給出了一個指導我們構造系統的模板

    • 對我們所做出的決策進行文檔化

  • 四項原則

    • 選擇要創建什么模型

    • 每一種模型可以在不同的精度級別上表示

    • 最好的模型是與現實相關聯的

    • 單個模型是不充分的, 對每一個重要的系統最好用一組幾乎獨立的模型去處理

模型

  • 建模產生的結果,就是模型

  • 模型是對事物的一種抽象和簡化

  • 每個模型都有一定的用途

  • 模型有我們所關心的所有信息,足矣

術語

  • 領域(Domain)

    • 指要解決的問題在現實中所處的行業、位置、關系等
  • 系統(System)

    • 由為完成一定目的而組織起來的子系統組成
  • 子系統(Subsystem)

    • 是一組元素的集合,代表了系統的一個部分,它有清晰的接口,這個接口可作為一個單獨的構件來實現
  • 模型(Model)

    • 表示對現實的完整而又自我一致的簡化,可以更好地理解系統
  • 視圖(View)

    • 是對系統模型的組織和結構的投影,注重于系統的一個方面
  • 圖(Diagram)

    • 一組元素的圖形表示

UML特點

  • 可視化語言

    • 原因

      • 與他人交流概念模型很容易出錯,除非每個人都說同一種語言
    • 好處

      • 顯式的模型有助于交流

      • 可視化建模能夠清晰定義軟件架構

      • 可視化建模能夠促進可重用性

      • 可視化建模能夠處理復雜性

      • 可視化建模能夠捕獲業務流程

  • 說明語言

  • 構建語言

  • 文檔語言

UML組成

  • 事物

    • 結構事物

      • 類(Class)

      • 接口(Interface)

      • 用例(Use case)

      • 協作(Collaboration)

      • 構件(Component)

      • 主動類(Active class)

      • 節點(Node)

      • 制品(Artifact)

    • 行為事物

      • 交互(Interaction)

      • 狀態機(State machine)

      • 活動(Activity)

    • 分組事物

      • 包(Package)
    • 注釋事物

      • 注釋(Annotational thing)
  • 關系

    • 依賴

    • 泛化

    • 關聯

    • 實現

    • 類圖

    • 對象圖

    • 用例圖

    • 構件圖

    • 順序圖

    • 通信圖

    • 時序圖

    • 活動圖

    • 制品圖

    • 包圖

    • 狀態圖

    • 部署圖

    • 交互概覽圖

關系

四種基本關系

  • 依賴關系(dependency)

    • 一個事物使用另一個事物的信息和服務

  • 泛化關系(generalization)

    • 一般事物(稱為超類或父類)和該事物的較為特殊的種類(稱為子類)之間的關系

  • 關聯關系(association)

    • 一個事物的對象與另一個事物的對象間的聯系

    • 自身關聯(reflexive association)

      • 同一個類的不同對象之間有連接
  • 實現關系(realization)

關聯關系的修飾

  • 名稱及其方向

  • 角色

    • 在關聯的每一端,表明相連的類在該關聯關系中的作用

  • 多重性(Multiplicity)

    • 對于關聯關系另一端的類的每個對象,本端的類可能有多少個對象出現
  • 聚合/組合(aggregation/composition)

    • 聚合

      • 整體有管理部分的特有的職責

      • 聚合可以替代多繼承

        • 繼承的好處是代碼重用,子類直接繼承了父類的功能。帶來的負面影響是為了繼承父類的某些功能,需要承載整個繼承樹的負荷,有時會使原本簡單的系統復雜化。

        • 組合/聚合則比較靈活,在需要的時候把其他模塊的功能集成到自己的系統。

    • 組合

      • 整體擁有部分的生命

關聯類(Association Class)

  • 問題

    • 在多對多關系中,一些屬性沒有辦法放在任何一個類中

連接Link

  • 連接是關聯的實例

  • 連接的是對象

  • 對象的圖形表示

公共機制(Common Mechanism)

定義

  • 是UML中適用于各種建模元素的公共建模方法

修飾(adornments)

  • 可見性

    • private: -

    • protected: #

    • public: +

    • implementation: ~

  • 注解(Note)

    • 用文字對一個(組)UML建模元素進行解釋、約束

    • 并不會影響注解的建模元素本身

擴展機制(extensibility mechanisms)

  • 構造型(stereotype)

    • 目的

      • 在各種不同的應用領域,用標準的建模元素無法充分表達所需內容

      • 需要在現有的建模元素的基礎上進行擴充,產生對特定建模問題特有的建模元素

    • 定義

      • 類似于已有的UML建模元素,但又是對特定的問題領域具有特殊含義的新的建模元素
    • 三種形式

      • 記名的構造型(named stereotype)

      • 構造型的圖標形式(stereotyped element as icon)

      • 帶有圖標的記名構造型(named stereotype with icon)

    • 圖形表示

  • 標記值(tagged value)

    • 目的

      • 出于某種原因需要增加一個新的構成以表達建模元素的某種特性
    • 圖形表示

      • 標記值的字符串由標記值的名字、取值、及分隔符組成

  • 約束(constraint)

    • 目的

      • 約束用來擴充UML建模元素的語義,以便增加新的規則或修改已有的規則

      • 對于一個完備的模型而言,此建模對象必須使該條件被滿足

    • 圖形表示

      • 用大括弧內的字符串表達式表示

      • 可以附加在表元素、依賴關系或注釋上

用例模型

從用戶的角度,面向用戶的需求,對產品外部功能的建模

需求分類

  • Functional

    • 系統做的事情
  • Non-functional

    • 系統的質量和屬性
  • 動態行為

系統邊界

  • 用戶角度

    • 外部特性:軟件系統通過其邊界呈現給用戶產品的特性
  • 開發者角度

    • 需要分析軟件產品與外界環境的聯系

      • 與軟件交互的對象

      • 軟件影響的對象

  • 立足于當前要解決的問題領域,系統邊界描述了系統內部與外部之間交互的集合

模型元素

  • 參與者

    • 代表位于系統之外并和系統進行交互的一類事物(人、物、其他軟件子系統等)

      • 軟件系統的使用者

      • 直接和軟件系統交互的軟件系統賴以運行的軟/硬件

      • 與軟件系統有信息交換的計算機外部設備

      • 通過它,可以對軟件系統與外界發生的交互進行分析和描述

    • 圖形表示

      • 參與者是人

      • 參與者是系統

    • 如何尋找參與者

      • 誰使用系統

      • 誰安裝系統、維護系統

      • 誰啟動系統、關閉系統

      • 誰從系統中獲取信息,誰提供信息給系統

      • 在系統交互中,誰扮演了什么角色

      • 系統會與哪些其他系統相關聯

      • 內/外部定時器

  • 用例

    • 系統為響應參與者引發的一個事件而執行的一系列的處理/動作,而這些處理應該為參與者產生一種有價值的結果

    • 要點

      • 用例是一項功能,而不是一個動作

      • 名稱必須是短小精悍的動名詞,如修改密碼

元素關系

  • 參與者與用例

    • 關聯關系
  • 參與者與參與者

    • 泛化關系
  • 用例與用例

    • 泛化關系

    • 包含關系

      • 基用例必須包含子用例,基用例才能正常進行

      • 可以用于整理出多個用例的共同行為

    • 擴展關系

      • 基用例在一定條件下,可以引入子用例

用例描述

  • 事件流描述

    • 使用建模元素

      • 標注

      • 交互圖和活動圖

  • 主次事件流

    • 主事件流

    • 次要事件流

  • 用例描述形式

概念

  • 對象

    • 擁有數據和行為的一個實體
    • 具有相同屬性和行為的一組對象的描述符

    • 類的選擇依賴于應用領域

    • 類的語義是為了描繪此對象代表的事物的性質

  • 多態(Polymorphic)

    • 同一類族的不同對象,可以用不同的行為處理同一條消息
  • 繼承(Inheritance)

    • 一種將兩個類關聯起來的方法,以便一個類可以使用另一個類的成員而無需重新定義它們

    • 繼承和泛化是一樣的

  • 封裝(Encapsulation)

    • 隱藏對象實現細節的過程
  • 接口(Interface)

    • 特定類或組件的服務的操作集合
  • 抽象(abstract)

圖形表示

  • 在顯示時,只有類名 是必須的,其余部分均可以隱藏(模型中仍然存在,但不顯示)

  • 類名

    • 簡單名字

    • 復雜名字

      • 簡單名字前面加上一個包含該類所在的模型包的名字

      • 這兩個名字之間用雙冒號(::)隔開

  • 對象

  • UML的隱藏原則

    • 隱藏一些對表達問題不重要的屬性或操作

實例

概念

  • 抽象概念的具體存在

  • 一個抽象概念可以對應多個實例

  • 一個實例可以與一個或多個抽象概念對應

表示

  • 命名

    • 具名實例

    • 孤體實例

      • 省略類型名

    • 匿名實例

  • 類型

  • 路徑名

交互

概念

  • 在任何有意義的系統中,對象都不是孤立存在的,它們之間通過傳遞消息進行交互

  • 對象之間為實現某一功能,必須實施的協作過程、動態行為,稱為交互

交互的建模元素

  • 對象

  • 參與者

  • 消息

    • 一個對象以某種方式啟動另一個對象的活動

    • 調用(call):啟動某個對象的操作

      • 操作是對象所實現的服務

      • 對象也可以給自己發送消息

    • 返回(return):操作向調用者返回一個值

    • 發送(send):向一個對象發送一個信息

      • 同步消息

      • 異步消息

    • 創建(create):此消息的發送導致目標對象被創建。

    • 銷毀(destroy):此消息的發送導致目標對象被銷毀

    • 消息的發送是有順序的
      在順序圖垂直方向上,由上而下順序執行
      因此每一消息都有一順序號

交互的約束

  • Association

    • 說明對應的對象通過關聯是可見的
  • Self

    • 說明對應的對象, 因為是本操作的調遣者,所以是可見的
  • global

    • 說明對應的對象在全局范圍內可見
  • local

    • 說明對應的對象在局部范圍內可見
  • parameter

    • 說明對應的對象 因為是一個參數,所以是可見的
  • 因為連接是關聯的實例,多重性不能用于連接

交互圖

順序圖 Sequence diagram

強調消息的時間順序

  • 對象

  • 參與者

  • 消息

  • 對象生存線
    代表一個對象在一個時間段內的存在

  • 控制焦點
    長條矩形
    代表一個對象直接地或通過一個子過程間接地執行一個動作的那段時間

    • 嵌套
  • 結構化控制(Frame、Fragment)

    • 可選執行 (標簽: opt)

    • 條件執行 (標簽:alt)

    • 并行執行 (標簽:par)

    • 循環(迭代)執行 (標簽:loop)

通信圖 Communication diagram

強調接收和發送消息的對象的組織結構

  • 對象

  • 連接

  • 在此連接上傳遞的消息

類圖 – 交互圖 :建模過程是相互補充的過程!

代碼與SD映射

public class Sale {
private Payment payment;
public void makePayment( Money cashTendered ) {
payment = new Payment( cashTendered );

//…
} //

}

活動圖

概念

  • 活動activity 與動作action

    • 一個活動是 一個業務過程中進行的、非原子的執行單元

    • 活動的執行最終延伸為一些獨立動作(Action)的執行

      • 動作是原子的

      • 動作不能被分解

  • 活動圖是 頂點和弧的集合,顯示從活動到活動的流

    • 活動節點

    • 對象值

    • 注解和約束

  • 活動節點:是活動的組織單元

    • 用一個兩頭為圓形的方框來表示

    • 可以有一個名字

    • 可以是一種偽代碼描述

    • 放大一個活動節點,可以看到另一個活動圖

    • 活動節點會持續一段時間來完成

  • 動作

    • 動作是一個特別的活動節點,它不能被細分

    • 在圖形表示上,活動節點和動作沒有區別

  • 控制流

    • 用叉箭頭來表示控制流 從一個節點傳到另一個節點

  • 分支

    • 用一個菱形來表示分支

    • 一個分支可以有一個進入流和多個離去流

    • 在每個離去流上必須設置一個監護條件!!

      • 條件放在方括號里

      • 條件不能重疊,以免二義性

      • 可以有 [else] 分支

    • 兩個控制路徑可以重新合并,無需監護條件

      - 分支節點有兩個輸出流,布爾類型詞語前綴表示不同的選擇條件- 合并節點是條件分支的結束
    
    • 迭代可以用分支節點來實現

  • 分岔 和 匯合 (Forking and Joining )

    • 在UML中,用同步棒來說明并行控制流的分岔和匯合
      同步棒是一條水平或垂直的粗線條

    • 一分多,多合一

    • 分岔和匯合條表示并發控制流 concurrent :

      • 多重性指標指明有多少并發的行為必須被處理

  • 泳道 Swimlanes

    • 將一個活動圖中的活動分組,每一組表示某個業務組織負責的活動集

    • 每個組被稱為一個泳道
      用一條垂直的實線把它們分開

    • 每個活動嚴格地屬于一個泳道
      轉移可以跨越泳道
      同步棒可以跨越泳道

    • 泳道是包(package)的一種

      • 分門別類的組織活動
  • 對象流

    • 用活動圖描述某個對象時,可以把所涉及的對象放置在活動圖上,并用一個依賴將這些對象連接到對它們進行創建、撤銷和修改的活動轉移上。
      這種包括依賴關系和對象的應用被稱為對象流

    • 活動可以創建 對象

    • 活動可以 修改對象的狀態

  • 活動節點的嵌套

    • 當活動被激發或退出時,有可能包含布爾表達式

對系統的動態方面建模的五種圖中之一

  • 用例圖活動圖 / 順序圖/通信圖 /狀態圖

一張活動圖從本質上說是一個流程圖,顯示從活動到活動的控制流

動圖中還有一類特殊的狀態,用于表示活動的開始和結束

  • 起始狀態(start state)

  • 終止狀態(end state)

轉移表示對象將在當前狀態中執行動作,并在某個特定事件發生或某個特定的條件滿足時進入后繼狀態。

狀態圖

比較:順序圖 也是對 對象的動態行為進行建模,區別何在?

  • 一個是對象之間的協作 、(比較)一個是單個對象的動態行為

概念

  • 考察單個實體的動態行為,從不同的視點(ViewPoint)可有不同的選擇

  • 狀態(state)

    • 是對象的生命期中的一個條件或狀況

    • 在此期間,對象可以響應事件、執行某活動等

  • 狀態機(state machine)

    • 是一種行為,

    • 說明對象在它的生命期中, 響應事件所經歷的狀態序列 以及它們對每個事件的響應

  • 狀態圖(state diagram)

    • 狀態機可以用狀態圖來可視化。

    • 狀態圖顯示了一個狀態機,它強調從狀態到狀態的控制流

  • 狀態無關

    • 簡單、獨立的行為,或當前的行為并不依賴它們的過去時,不需要用一個狀態機建模
  • 狀態依賴

    • 對象的當前行為依賴于過去

      • 如,手機對于按下某個按鈕的反應,依賴于手機當前的狀態
    • 或者它的行為必須響應異步消息

  • 狀態組成

    • 1)名稱(name)

      • 每個單詞首字母大寫
    • 2)進入/退出動作(entry/exit action)

    • 3)內部遷移(internal transition)

      • Transitions that are handled without causing a change in state
    • 4)子狀態 (substate)

    • 5)延遲事件 (deferred event)

  • 事件

    • 是對一個在時間和空間上占有一定位置的、有意義的事情的描述

    • 在狀態機的語境中,一個事件是一個激勵的發生,它能夠觸發一個狀態遷移

    • 4種事件

      • 參量變化 change event

        • 布爾表達式值變化、定時器、溢出:是內部事件
      • 信號 signal (異步)

      • 調用 call (同步)

      • 時間事件 time event

        • 時間事件 是表示一段時間的推移

          • 用關鍵字after 后面跟著時間表達式

          • 用關鍵字at 表示某個絕對時間點上發生的時間事件

        • 變化事件 表示狀態的一個變化或某些條件得到滿足的事件

          • 用關鍵字 when后跟一個布爾表達式。當條件滿足,則引發變化事件
  • 遷移

    • A滿足一定狀態轉移到B

    • 5部分組成

      • 源狀態 source state

      • 事件觸發器 event trigger (觸發事件名稱)

      • 觸發條件 guard condition

      • 效應(effect) (或稱,遷移動作)

      • 目標狀態

    • 特殊的遷移

      • 自身遷移 self transition

        • 從狀態A 遷移到狀態A
      • 內部遷移 internal transition

        • 在狀態A內部 行為

圖形

  • 狀態

    • 一般狀態:圓角矩形

    • 初始狀態:實心圓

    • 結束狀態:“牛眼” (bull’s eye)

  • 事件

    • 觸發事件名[觸發條件]/遷移動作

      • 這三個部分都是可以省略的,但至少有一部分

      • 事件依附于表示遷移的箭線

  • 遷移

    • 叉形箭頭實線,從初始狀態指向目標狀態

狀態圖建模注意事項

  • 不允許孤立的狀態存在

  • 不允許只進不出的狀態遷移 (“黑洞”)

  • 不允許只出不進的狀態遷移 (“奇跡”)

  • 不允許沒有事件發生的遷移或者“遷移” 沒有指明具體的事件

狀態圖與交互圖、活動圖的比較

  • 交互

    • 對共同工作的 對象群體的 行為 建模

    • 動態行為

  • 狀態機

    • 對 單個對象的 行為 建模

      • 有時,可以對單個“完整系統”的行為建模

      • 說明對象在它的生命期中響應事件所 經歷的狀態序列以及對那些事件的 響應

    • 動態行為建模

  • 活動圖

    • 強調 從活動到活動的控制流、多個業務角色

    • 狀態圖是強調 對象潛在的狀態和這些狀態之間的遷移

子狀態機

  • 子狀態是嵌套在另一個狀態中的狀態

  • 并發(正交,orthogonal)子狀態

    • 在一個語境中,并發地執行兩個或多個狀態機

    • 如 ‘等人’和‘看書’是相交的

  • 順序(非正交)子狀態:轉態不相交,一次只能處于一個子系統

  • 分岔和匯合

    • 分岔:從一個外部狀態直接遷移到一個或多個正交狀態

      • 從帶有正交區域的組合狀態內的任一狀態離開的遷移導致控制離開所有的其它正交區域

      • 如,發生錯誤,從而迫使所有并行計算都被中斷

高級類

作用域

  • 實例作用域

  • 類目作用域(static)

    • 類圖中體現為屬性加下劃線

抽象類

  • 斜體名字

  • 不會被實例化,一般是基類,他的導出類會被實例化;定義了公共的屬性和方法(可以是純虛函數)

葉子類(leaf class)是沒有任何導出類的類

  • 類名下加約束{leaf}

根類(root)是沒有任何基類的類

  • 類名下加約束{root}

- aBoy:string[1…2]=xxx{constraint}

  • methodA(x:int=123):void{constraint}

特性約束

  • isQuery(query):它表明被修飾的操作是一個用于查詢的操作,此操作執行結束之后不會改變類的狀態

  • Sequential:

    • 表明被修飾的操作在其對象內不能同時有兩個以上的控制流。而這一點必須由操作的調用者來保證,對象本身不存在禁止兩個控制流被同時啟動的機制。 如果此操作的兩個或兩各以上的控制流在對象的交互中被啟動,則此操作的語義和完整性將不被保證
  • guarded:

    • 調用者可以同時啟動此操作的多個控制流,但這些控制流被對象自身轉換為順序執行的控制流。

    • 這意味著當多個控制流被同時啟動時,此操作的控制流或者正常執行,或者被自我阻塞,直至沒有其它控制流在正常執行為止

  • concurrent(并行的):操作可以有多個控制流被同時啟動,且正常的控制流可以同時運行,但操作的語義和完整性仍可保證

模版類

四種標準擴充

  • 《metaclass》定義類的類,它的對象是類

  • 《powertype》說明一個類目。其對象是給定父類的子類

  • 《stereotype》

  • 《utility》

導出依賴 : 《derive》導出依賴是依賴關系的變體

  • 在許多情形下,經常有一個類的兩個屬性是互不獨立的

  • 例如:有一個類Person,它代表一個人的相關信息,其中有一個屬性是生日BirthDate, 另一個屬性是年齡Age,

  • 顯然,Age是可以從BirthDate計算出的

允許《permit》:表示源從目標獲得特定的可見性

約束

  • 有序{order}

    • 表示關聯一端的對象是顯示有序的
  • 集合{set}

    • 對象唯一,不可以重復
  • 袋{bag}

    • 對象不唯一,可以重復
  • 有序集合{order set}

    • 對象唯一且有序
  • 表{list} 或序列 {sequence}

    • 對象有序但可以重復

接口

接口為構件指定外部行為特征,從而能夠實現軟件系統的構件化,即,遵循同一個接口的構件可以互相替換

接口只能擁有操作,不能擁有屬性

供接口/需接口

-  

簡單名字

  • 模型包名字的字符串內不包含路徑限定符(:😃

路徑名字

  • 名字字符串內包含有路徑限定符

Active Class 主動類

是一個類,其實例是主動對象,擁有一個或者多個進程|線程

其實例可以獨立運作、決定自己的行為

Active Object 主動對象

  • 是一個對象,擁有一個進程、或線程,并能夠啟動控制活動

構件

定義了良好接口的物理實現單元,它是系統中可替換的部分

用于描述軟件構件以及構件之間的組織和依賴關系

面向對象系統的物理方面建模時使用的兩種圖之一(另一種圖是部署圖)

構件和類

  • 構件在許多方面都與類相同

    • 二者都有名稱

    • 都可以實現一組接口

    • 都可以參與依賴、泛化和關聯關系;

    • 都可以被嵌套;都可以有實例;都可以參與交互。

  • 構件和類之間也有一些顯著的差別:

    • 類表示邏輯抽象,而構件表示存在于計算機中的物理抽象

    • 構件表示的是物理模塊而不是邏輯模塊,與類處于不同的抽象級別

    • 類可以直接擁有屬性和操作;而一般情況下,構件僅擁有只能通過其接口訪問的操作

端口和連接件

部署圖

計算節點《processor》

設備節點《device》

對象圖

描述在某一個時間點上一組對象的狀態以及它們之間的關系

分析:對象圖與通信圖之間的異同

  • 同:都是 對象之間的組織關系,都用到了 連接(Link)

  • 異:

    • 通信圖是動態圖,反映對象之間的交互,消息標簽依附于連接

    • 對象圖是靜態圖,反映某一瞬間,每個對象的屬性取值(狀態)

    • 對象圖可以看作通信圖在某一瞬間的快照

制品

制品為一個或者多個構件提供了物理承載(manifestation 表示、承載)

  • 比如,一個JAR文件

制品本身可以包含更多的其他制品

制品也可以依賴其他的制品

協作

協作是一組類、接口和其它元素的群體,它們共同工作以提供比各組成部分的總和 更強的合作行為

用例模型通過協作來實現

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

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

相關文章

隔離級別是如何實現的?

在數據庫管理系統中,隔離級別(Isolation Level)是用來定義事務在執行過程中可以看到其他事務執行中的操作的一個設置。這主要用于控制事務之間的并發性和數據一致性。SQL標準定義了四種隔離級別,每種級別都以不同的方式平衡了性能…

Swift 中的 StoreKit 測試

文章目錄 前言創建一個 StoreKit Demo使用 SKTestSessionaskToBuyEnabled 屬性總結前言 StoreKit 框架的第二次迭代是我在過去幾年中應用程序中最重大的變化。最近版本的 StoreKit 框架已完全采用了 Swift 語言特性,如 async 和 await。本篇內容我們將討論 StoreKitTest 框架…

【揭秘】嘴尚絕鹵味健康新風尚,讓你吃得美味又健康!

在快節奏的現代生活中,美食不僅是味蕾的享受,更是健康生活的追求。今天,我們要聊的就是備受食客們青睞的“嘴尚絕鹵味”——如何在享受美味的同時,也能兼顧健康飲食的理念。 一、鹵味文化,源遠流長 鹵味,作…

Redis緩存管理機制

在當今快節奏的數字世界中,性能優化對于提供無縫的用戶體驗至關重要。緩存在提高應用程序性能方面發揮著至關重要的作用,它通過將經常使用或處理的數據存儲在臨時高速存儲中來減少數據庫負載并縮短響應時間,從而減少系統的延遲。Redis 是一種…

navicat Lite 版

navicat Lite 版: Navicat 出了一個 Navicat Premium 的Lite版。 官方現在鏈接:https://www.navicat.com.cn/download/navicat-premium-lite#windows 從官網可以看到現在能夠下載最新版本 17,支持各種平臺

[vue2/vue3] 詳細剖析watch、computed、watchEffect的區別,原理解讀

前言:哈嘍,大家好,我是前端菜鳥的自我修養!今天給大家分享【深入剖析watch、computed、watchEffect的區別】,并提供具體代碼幫助大家深入理解,徹底掌握!原創不易,如果能幫助到帶大家…

為什么企業應用開發,c++干不過java?

在開始前剛好我有一些資料,是我根據網友給的問題精心整理了一份「c的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家!!! C/C這種東西,根本…

使用Optimum的BetterTransformer為常見的transformer結構模型進行推理加速

概述 🤗 Optimum 提供了一個名為 BetterTransformer 的 API,這是標準 PyTorch Transformer API 的快速路徑,能夠通過稀疏性和融合內核(如 Flash Attention)在 CPU 和 GPU 上實現有趣的加速。目前,BetterTr…

一個 API 客戶端和一份 TS 學習手冊

第75期: Insomnia:超好看的 API 客戶端 項目介紹: 一款適用于 GraphQL、REST、WebSockets 和 gRPC 的開源 API 客戶端,顏值超高。 跨平臺,支持 Mac、Windows 和 Linux。但不支持網頁版,需要下載客戶端。…

Supabase 自托管部署實踐

Supabase 是 Firebase 的開源替代品。使用 Postgres 數據庫、身份驗證、即時 API、邊緣函數、實時訂閱、存儲和向量嵌入來啟動您的項目。 Supabase介紹 Supabase 是一個開源的后端即服務(BaaS)平臺,提供了一系列工具和服務,幫助…

CrimsonEDR:一款惡意軟件模式識別與EDR策略評估工具

關于CrimsonEDR CrimsonEDR是一個功能強大的開源項目,該項目旨在幫助廣大研究人員識別特定的惡意軟件模式,以此來優化終端檢測與響應(EDR)的策略方案。通過使用各種不同的檢測方案,可以加深開發人員與研究人員加深對安…

SpringBoot入門實戰:SpringBoot整合WebSocket

1.背景介紹 SpringBoot是一個快速開發的框架,它可以幫助我們快速開發Web應用程序。SpringBoot整合WebSocket是SpringBoot的一個組件,它可以幫助我們快速開發WebSocket應用程序。 WebSocket是一種新的協議,它可以讓客戶端和服務器之間建立持久…

MSYS2教程(windows環境下使用linux工具)

MSYS2教程(windows環境下使用linux工具) 1.msys2簡介 MSYS2(Minimal SYStem 2)是一個集成了大量的GNU工具鏈、工具和庫的開源軟件包集合。它提供了一個類似于Linux的shell環境,可以在Windows系統中編譯和運行許多Linux應用程序和工具。 MS…

數據增強:目標檢測算法的煉金術

數據增強:目標檢測算法的煉金術 在目標檢測領域,數據增強技術是一種提高模型泛化能力和性能的關鍵方法。通過數據增強,我們可以從現有的訓練集中生成更多的訓練樣本,這些樣本通過應用不同的變換來模擬真實世界中的多樣性。本文將…

【網絡安全】一文帶你了解什么是【CSRF攻擊】

CSRF(Cross-Site Request Forgery,跨站請求偽造)是一種網絡攻擊方式,它利用已認證用戶在受信任網站上的身份,誘使用戶在不知情的情況下執行惡意操作。具體來說,攻擊者通過各種方式(如發送惡意鏈…

excel修改批量一列單價的金額并保留1位小數

1.打開表格,要把單價金額變成現在的兩倍,數據如下: 2.把單價這一列粘貼到一個新的sheet頁面,在B2單元格輸入公式:A2*2 然后按enter回車鍵,這時候吧鼠標放到B2單元格右下角,會出現一個黑色的小加號&#xf…

《信創數據庫沙龍上海站:共話發展,智啟未來》

2024 年 6 月 29 日周六 14:00,信創數據庫沙龍在上海市徐匯區建國西路 285 號科投大廈 13 樓金星廳成功舉辦。本次活動吸引了眾多學術界和產業界的專家、學者以及技術愛好者參與。 活動中,多位嘉賓帶來了精彩分享。薛曉剛探討了 Oracle 在國內的前景&a…

EAGLE-2:一種高效無損的推測性采樣方法,提升LLM的推理速度。

歡迎關注我的公眾號:Halo咯咯 01。概述 北京大學的研究人員聯合微軟研究院、滑鐵盧大學以及Vector研究所共同推出了EAGLE-2,這是一種利用上下文感知的動態草圖樹來增強推測性采樣的方法。EAGLE-2在先前的EAGLE方法基礎上進行了改進,不僅顯著…

python列表、元組、集合、字典整理

特征對比 下面是Python中列表、元組、集合和字典的特征對比表格: 特征列表 (List)元組 (Tuple)集合 (Set)字典 (Dictionary)定義符號[ ]( ){ }{ }可變性可變不可變可變可變有序性有序有序無序無序元素訪問通過索引訪問,索引從0開始通過索引訪問&#x…

一個啟動腳本例子

一、全部代碼 #!/bin/bash DATE$(date %Y%m%d)SOURCE"abc.jar" TARGET"backup/abc.jar.jew.$DATE"if [ -f "$SOURCE" ]; thencp "$SOURCE" "$TARGET" firm -f abc.jar mv abc_1.jar abc.jarpidNumps -ef | grep $SOURCE |…