SysML模塊定義圖(BDD, Block Definition Diagram)

1、引言微信

SysML中的模塊定義圖,英文爲 「Block Definition Diagram」,簡稱BDD,是系統建模過程當中最爲常見的圖之一,BDD是一種結構圖,它主要對系統的結構組成以及組成元素間的關係進行描述。SysML中的圖相似於UML中的類圖,在學習的過程當中能夠以類比的方式進行學習。異步

2、模塊定義圖介紹 學習

以下圖所示,BDD中能夠包含 包、模型、模型庫、視圖、模塊和約束模塊。其中最爲重要和常見的是模塊和約束模塊。包、模型、模型庫、視圖在後續系列文章中論述,咱們僅關注BDD中經常使用的模塊和約束模塊,本文重點介紹模塊。網站

約束模塊是SysML中的一種定義元素,常見狀況下在約束模塊中定義約束表達式。約束模塊通常用於搭配參數圖構建系統的數學模型。spa

1. 模塊的表達方式設計

模塊時SysML中的基本單元,其對應於系統中的任意實體,咱們可使用模塊對系統中的實體進行建模。經過帶有<<block>>標識的矩形框表示,其後帶有模塊的名稱(用戶自定義),另外,還能夠經過可選的其餘分隔框,用來標識模塊的其餘組成。例以下圖所示,該模塊定義爲 包含 值屬性 和 操做屬性分隔框。 3d

 BDD屬性包含行爲屬性和結構屬性。顧名思義,結構屬性表達了實體的結構組成該部分,而行爲屬性則表達了實體所具備的行爲特徵。對象

1.1 結構特性blog

以下圖所示,結構特性包含值屬性、組成屬性、引用屬性、約束屬性、端口共 5 種類型,其在模塊中分隔框的頭部表示參考下圖中的英文表示。已值屬性爲例,其分隔框頭部標識爲 values,其餘的屬性相似。
繼承

 

 

  值屬性:SysML規定的命名規則爲 <value name>:<type>[<multiplicity>] = <default value>。值屬性的類型(type)是在SysML圖中某處定義的「value type」(值類型也是一種SysML元素,用戶能夠靈活定義值類型).

  約束屬性:SysML規定的命名規則爲 <constraint name>:<type> 。約束名稱爲用戶自定義,約束類型是用戶在SysML圖的某庫定義的 約束模塊 的名稱。通常狀況下,約束模塊用於定義一種數學關係約束,約束屬性是對約束模塊的引用。

  引用屬性:SysML規定的命名規則爲  <reference name>:<type>[<multipicity>]。type是用戶在SysML的某庫定義的模塊或者執行者,大部分狀況下是模塊,相似於UML 中類與類間的引用。SysML中引用表示的是一種 「須要」 語義,引用屬性標示了引用模塊與被引用模塊之間存在關聯,多是爲了數據交換、實踐傳遞等,總之,兩者之間存在聯繫。

  組成部分屬性:  SysML規定的命名規則爲 <part name> : <type> [<multiplicity>]。type是用戶在SysML的某庫定義的模塊名稱。multiplicity表示了實例的數量。組成屬性標示的是一種 「所屬」 關係,模塊是由組成部分屬性所映射的模塊組成。這種 「所屬」關係所表述的意義不只僅侷限於物理層面的「所屬」,如發動機是汽車的組成部分。一樣能夠表述邏輯的所屬,例如邏輯上的軟件元素間的所屬關係。另外,所屬還有一層含義,SysML明確聲明,組成部分屬性一次只能屬於一個複雜結構,但能夠移除。

  端口: 端口表示了一種結構對外提供的交互點,外部能夠經過該交互點與模塊進行交互-數據或事件等等。端口與軟件的接口概念不一樣,其含義更加普遍。端口能夠表明任意類型的交互點,例如物理的鏈接點,軟件層面的消息隊列,公司間的交互點如網站、郵箱等等。對端口的理解不要侷限於軟件接口,要從更加抽象的層次去理解和定義。你們只要記住其本質:端口是某一結構對外部結構提供的交互點,是結構間進行數據或事件、功能交換點的一種方式和抽象。另外,從端口的本質咱們能夠看出,它表明了一種「封裝」的思想,這是面向對象的最多見而且最爲關鍵的特性之一。封裝有助於隱藏實現的細節,下降系統認知的複雜性以及系統間的耦合度。SysML V1.2和 V1.3的端口類型略有不一樣,在後續系列文章中再進行詳細說明。

 

1.2 行爲特性

  行爲屬性是對系統或結構的行爲的表達,在SysML中包括 操做(operations )和 接收(receptions)。操做表示一種調用後執行的行爲,也就說operations是基於調用事件觸發的。通常狀況下,operations表明一種同步行爲,但SysML並無對其作嚴格限制,設計者能夠把任何行爲定義爲操做。

  操做:  經過「operations」進行標識,其格式爲:<operation name>  (<parameter list>)  : <return type>[<multiplicity>]。操做是一種調用事件觸發的行爲,能夠具備返回值和輸入及輸出參數。SysML中對此不作同步和異步行爲的區分,均可以經過 「操做」 進行表述。

    接收:  經過「receptions」進行標識,其格式爲:<<signal>> <reception name>  (<parameter list>) 。操做是一種信號事件觸發的行爲,且,其老是表明異步行爲,無返回值,參數只有輸入,沒有輸出。注意標識中的<<signal>>,這是必須的標識。另外,接收名稱須要與模型某處定義的<<signal>>模型元素的名稱一致。

 

3、模塊間的關係

  相似於UML的類圖間的關係,SysML模塊間也存在關聯、泛化和依賴關係,其中關聯又能夠分爲 引用關聯和組合關聯。

1. 引用關聯

    引用關聯表示雙方存在一種鏈接,雙方能夠相互訪問。

    SysML中模塊間的引用關聯經過實線標識,若實線無箭頭,則表明雙向訪問,如有箭頭,則表示單向的訪問。舉例以下圖所示,模塊A和B存在關聯關係,連接名稱爲「Link」,A中有B的引用屬性bList,多樣性爲 1 -  5個。模塊B中有模塊A的引用屬性a,多樣性爲 1 個。

 

2. 組合關聯

    組合關聯表達的是一種構成關係,組合段的模塊實例由組成部分端的實例組合而成。

    SysML中組合關聯的標識法是帶有實心菱形的實線。沒有箭頭表示雙向訪問,有箭頭表示單向訪問。菱形端是組合端,另外一端是組成部分端。舉例以下圖所示,模塊A是模塊的結構組成部分。A和B是雙向引用。在B中有模塊A的引用屬性a,多樣性爲 1 個。在模塊A中有關於模塊B的引用b,多樣性爲 0 - 1 個。因爲B是組成端,A是組成部分端,所以,在A中最多隻能有 1 個B引用實例。

 

3. 泛化

    泛化表達的是一種繼承關係,子類型繼承超類型的特性,並對超類型特性進行擴展或重定義。泛化是可傳遞的。從廣義上講,泛化對應於面向對象思想中的繼承,泛化有利於設計者面向抽象進行設計。設計者能夠基於繼承方式擴展出新的子類型,利用依賴倒置的原則實現便捷的擴展,所以這種設計方式有利於提升系統的可擴展性。

    SysML中泛化關係的標識法爲一條帶有空心三角箭頭的實線。超類型位於箭頭段,子類型位於非箭頭段。舉例以下圖所示,模塊A繼承自模塊B.

 

4. 依賴

    依賴表述的是兩個模塊間一方依賴於另外一方,當另外一方改變時,則依賴房可能也須要改變。這也是模型間跟蹤性的體現。

    SysML中依賴關係經過帶有箭頭的虛線標識。箭頭端是被依賴着,非箭頭端是依賴者。同時,SysML中對依賴關係進行了泛化,定義了幾種特定類型的依賴關係,例如需求圖中常常出現的跟蹤、知足、驗證等多種關係都是依賴的特定類型。以下圖所示,模塊A依賴於模塊B。

4、總結

  模塊定義圖描述了系統的結構化信息,包括系統的結構類型及關係、結構提供以及須要的服務、結構所遵循的約束、系統中的值類型。

  模塊間的泛化關係提現了面向抽象設計的思想,方便系統的擴展。

  模塊的結構特性「端口」體現了封裝的思想,下降系統間的耦合。

  約束模塊及約束屬性描述了模塊結構的約束關係,通常和參數圖搭配使用,用於構建系統的數學模型。

     BDD描述告終構及結構件的關係,但未給出結構間聯繫的內部結構,這些有內部模塊圖IBD補充。

  BDD涉及了約束屬性和約束模塊,但精確的系統數學模型搭建還須要參數圖的配合。

 

微信公衆號 「SystemEngineeringLab

相關文章
相關標籤/搜索