MBSE建模學習之十:包圖及模型擴展


包圖PackageDiagram

包圖是定義模型架構的圖。模型的架構主要是通過“包”(Package)來組織的。包圖的代表元素是一個“包”元素(元素-Element,是指模型中任何一種數據),圖中定義的元素默認的命名空間就是這個包。除了“包”之外,包圖的代表元素也可以是一個“模型”(Model)、“模型庫”(ModelLibrary),或者是一個“概要文件”(Profile)元素。

包圖經常用來定義整體的模型架構,也就是模型的層級關系。這種情況下,包圖中一般顯示的元素是各層級的“包”或其它作為類型的元素。也可以在包圖中直接定義各種類型元素,例如通用的“模塊”(Block)、“值類型”(ValueType)、“接口模塊”(InterfaceBlock)等。這時候,包圖和模塊定義圖的作用并沒有太大差別(模塊定義圖的代表元素一般也是一個包)。在智睿思維基于模型的系統工程軟件中,你只需要切換包圖的默認圖形工具欄為模塊定義圖的工具欄,就可以在包圖中添加各種類型。另外,包圖也可以定義擴展標準模型元素的構造型,為標準元素添加建模時的構造型屬性。

例如,下面的包圖定義了MagicGrid方法論中“問題域”的模型架構(我們接下來會用幾篇文章詳細說明MagicGrid方法論,敬請關注公眾號)

MBSE建模學習之十:包圖及模型擴展的圖1

包(Package

包的作用是用來組織模型中元素數據,相當于元素數據存放的一個目錄。包是包中元素的“命名空間”?!懊臻g”是為了唯一標識一個模型元素的空間,在一個“命名空間”中,不允許元素的名稱重復。例如,在一個房子中每個人的名字是唯一的,在一層樓中每個房子的名稱(編號)也是唯一的。再向上,這個大樓、小區等各層空間的名稱都唯一,這樣就可以建立一套唯一的路徑名稱。SysML中模型元素的命名原理就是這樣,包含了所有各層命名空間路徑的名稱稱為元素的“完全限定名稱”(fully qualified name,各層路徑用“::”分隔。例如在上面的包圖中,“電功率”模塊的完全限定名稱是“1 問題域::黑盒::3 系統上下文::交換項目::電功率”。 除了包之外,其它很多元素也可以用作“命名空間”。例如“模型”、“模型庫”、“概要文件”和包類似,相等于一個文件夾。“模塊”也是一個命名空間,它是模塊中的屬性或方法的命名空間。

包導入關系

SysML圖中顯示的元素并不一定就是這個圖的代表元素包含的元素。根據模型說明的需要,經常也會顯示其它包中的元素。當元素的命名空間不是這個圖的代表元素(默認命名空間),也沒有關系能表示這個元素的命名空間的時候(例如命名空間包含關系,或者在另外一個包的內部顯示),這個元素就會顯示“完全限定名稱”,就是包含了一長串路徑的名稱。有時候,顯示了太長路徑的名稱也不利于顯示和閱讀模型。這時,可以建立一個“包導入”關系(公有或私有),將名稱很長的元素“導入”到當前圖代表元素下面。這時候,被導入的元素就只顯示名稱了。下面是解決方案系統架構圖中顯示邏輯架構中模塊的例子,為了建立和顯示兩個架構之間的抽象映射關系(解決方案架構中模塊應該都有邏輯架構的模塊對應),上圖是沒有導入關系的視圖,下圖是建立了導入關系后的視圖(在MBSES軟件中,模型瀏覽器上包節點可以通過右鍵菜單直接建立包導入關系,也不一定要顯示到圖中)。

MBSE建模學習之十:包圖及模型擴展的圖2

模型庫(ModelLibrary

模型庫是指一套通用的、可以重復使用的元素。這些元素通常用“模型庫”元素作為它們的命名空間?!澳P蛶臁本褪沁@樣一種專門存放模型庫元素的“包”。

在實施MBSE的過程中,需要將那些通用的、或者以后會重復使用的模型作為模型庫管理起來。在新產品研制、建模的時候,引用這些通用的或已有的模型,會使建模工作起到事半功倍的效果。當然,萬事開頭難,剛開始應用MBSE技術需要打基礎的過程。打好基礎了才能見到成效。

一般企業實施MBSE,需要建立這些模型庫:

1)企業通用的值類型、單位模型庫。產品的性能參數屬性一般建為模塊的值屬性。如果這個性能參數具有專業的工程意義,需要建立對應的值類型及單位。企業建立統一的庫,可以在每個項目中使用,避免重復。

建模軟件中一般也有通用的庫。最基礎的值類型庫就是SysML標準中的“基本數值類型”(PrimitiveValueTypes)庫,這個庫中包含最原始的數據類型,有“Real”(實數)、“Integer(整數)、“Boolean(布爾,值只能是True、False這樣數據)、“Complex”(復數,有實部、虛部)、“String”(字符串)。更復雜的值類型,需要從這些基本數據類型繼承、再定義。

SysML標準的附錄中有“ISO 80000”國際標準計量單位庫,包含各專業常用的值類型和單位。(有需要這個庫的用戶請微信聯系“智睿思維MBSE18022886980獲取)。

其它企業專用的值類型或單位,需要建立企業自己專用的模型庫。

2)專用的約束模塊庫。約束模塊是包含可重用的參數圖仿真公式的模塊。企業在進行系統性能指標分析的時候,通用的約束公式可以建立為模型庫,在任何項目和產品上可以使用。通用的約束模塊模型庫,是經過仿真驗證是正確的方程。使用通用的庫,避免每個人自己去花時間寫公式和驗證公式。

3)通用的標準模塊。這些模塊是在多個項目或產品中共用的標準部件。建立一次,然后抽取出來作為模型庫,可以重復使用。

概要文件(Profile)、構造型(Stereotype)和模型擴展

為什么MBSE的技術路線有多種,而以UML\SysML建模語言的方法論和技術路線成為主流?是因為UML\SysML語言超強大的擴展能力和系統性。我們知道,SysML是從UML擴展來的,SysML本身就是一個應用于系統工程技術領域的“概要文件”?!案乓募北硎疽惶讟藴实臄U展定義的模型庫,是包含了一套擴展元素定義的“包”。

構建概要文件的主要元素是“構造型”。“構造型”類似一個“類”(在UML自身描述語法中,它是從類繼承的概念元素),它有“屬性”。定義了一個“構造型”,當把它應用在已有概念元素上,是生成一個這個構造型的實例,定義這個實例具體的值,并附加到原先這個概念元素上來給它增加新的屬性或意義。

我們來看看在SysML標準中對“Block(模塊)的定義:

MBSE建模學習之十:包圖及模型擴展的圖3

Block”本質上是對類擴展的一個構造型,增加了一個“isEncapsulated”(是否封裝的,True的話表示這個模塊是一個黑盒子,外部的連接器只能連到它的端口上;False的話可以連接到它內部)一個構造型屬性。當我們在圖中定義一個“Block”的時候,其實是定義了一個“Class”(類)并應用了“Block”構造型。例如定義了一個“M8汽車”模塊,圖中顯示如下:

MBSE建模學習之十:包圖及模型擴展的圖4

構造型“?block?”會顯示在上面,構造型的屬性會顯示在“{}”中。

如果對已有概要文件或原始的UML模型元素進行擴展,可以定義新的構造型。從已有構造型繼承,或直接擴展UML元素。例如下面定義一個“?汽車?”構造型,定義了“設計階段”、“類型”的構造型屬性。把這個構造型應用到上面的“M8汽車”,為它增加專用的模型屬性。構造型屬性可以顯示在專用的分區中,也可以只顯示在節點的頭部。

MBSE建模學習之十:包圖及模型擴展的圖5

要區分構造型的屬性和“模塊”類本身屬性的差別。構造型屬性在建模的時候就確定了具體值、可以輸入值和保存值。“模塊”類本身的屬性是在實例化的時候才有值。例如這個“M8汽車”模塊,有一個“重量”的值屬性,這是在對模塊仿真、生成它的實例的時候才有具體值。在上面這個例子中,“類型”屬性其實也可以是“汽車”類的值屬性(當建模的目的是為了車輛信息的管理的時候)。但是當我們的目的是為了設計車、明確這個模型是某種類型的車(如“電動車”)的模型,它的模型會具有一些專門的特征或要求(“電動車”的模型應該有電池模塊,工作原理應該用“電”來驅動)的時候,我們把它作為構造型屬性。

對某種專業的應用領域,對模型標準的擴展可能還需要專門的視圖、建模方法去支持。這時候可能還需要對建模軟件的功能進行對應的二次開發。隨著MBSE應用技術的不斷發展,可能會出現很多專用技術領域的擴展UML\SysML建模標準及軟件工具。


文章來源:智睿思維MBSE

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2
1
1