簡介
EXPRESS 信息建模語言( ISO 10303 - 11) 是產品模型數據交換標準 ( STandards for the Exchange of Product model data, STEP ) ) ) ) ISO 10303 的 核心。EXPRESS 語言提供了一種中性機制, 可以與各種編程環境( 如 C, C+ + 和 FORTRAN 等) 銜接。不同編程環境中的數據可以通過互動產生的 EXPRESS 語言數據檔案進行互動。使用 EXPRESS 語言的好處還在於, 它既能被計算機編譯, 又能被人們閱讀。ISO 制定這一標準的初衷是建立一個統一的產品數據交換標準。除了 STEP 委員會的專家對 CAD /CAM /CAPP 產品數據描述和交換標準進行制定以外, 許多從事商務和信息工程的專家也開始研究用EXPRESS /STEP 作為數據建模的主要工具。筆者基於對企業建模的研究以及 EXPRESS 語言的以上特點, 把 EXPRESS 語言套用於企業建模, 並給出具體的套用方法和實例 。
EXPRESS 語言的主要框架為:
Schema
Entity Supertype,Subtype
Algorithm
Function
Procedure
Rule,Where
對客觀事物進行描述時, 首先要考慮各種事物的主體, 在EXPRESS 語言中抽象為實體( Entity) 。很多事物主體的集合又可以形成更大的概念 ))) 模式( Schema) , 它是對相互聯繫的一組事物的描述。超類( Supertype) 、子類(Subtype) 反映了 Entity 間的繼承關係;Function, Procedure 都是對 Entity 屬性的描述,Rule, Where 指的是 Entity 所受的約束和條件。另外, 還有一些具體語句, 如 identifier, unique, if ,then,, 等等。從結構上來說, EXPRESS 語言的特點之一就是 Schema 和 Entity 的嵌套定義, 通過 Schema 和Entity 的相互引用, 把事物的屬性及其之間的聯繫描述清楚。在STEP 中還提出了一種與 EXPRESS 語言相對應的產品模型圖形描述方法)) ) EXPRESS )G , 它用圖形的方法描述概念與概念之間的關係, 便於人們對 EXPRESS 語言的理解。
對象特徵
EXPRESS允許某些實體定義為另一些實體的子類,子類繼承其超類的特性(即屬性和規則),這就創建了一種子類/超類的繼承關係 。
子類/超類
一個實體通過一個Subtype描述說明為子類,通過顯式supertype或隱式描述說明為超類。當隱式說明為超類時,是指它至少存在它的一個子類的實體說明中,即至少另一個實體中出現subtype說明為它的子類。
1、屬性繼承(Attribute Inheritance)和重說明(Re-declaration)
超類屬性在子類的範圍中是可見的,即子類繼承其超類的所有屬性。 EXPRESS支持多重繼承(multi-ple inheritance)即繼承其所有超類的所有屬性。當多類繼承出現同名屬性時,通過施加超類實體名於繼承的屬性前以解決同名歧義性。
除此之外,EXPRESS還支持屬性重說明,即超類屬性可以在子類中重新說明以進一步提高描述能力。有三種重新說明方式,超類中屬性類型可以改為其一個值域的特殊子集(約束其範圍,如數可以進一步約束為整數);超類中的可選(optional)屬性可以更改為強制(mandatory)屬性(即強化其表現作用);超類中的顯式屬性可以更改子類中的導出屬性(即減弱其表現作用)。顯然通過子類對超類的屬性重說明,進一步地明確了實際需要,增加了描述事物的能力。
2、規則繼承(rule inheritance)
每個套用於超類實體的局部或全域規則同樣套用於子類實體。這樣子類繼承所有超類的所有規則。不能改變或刪除任何繼承的規則。但是可以添加新的規則以進一步約束子類。
子類/超類約束
EXPRESS規定,一個子類實體的實例需要其所有超類的實例,一個超類實體需要零個或一個子類實例。子類/超類約束可以放在子類/超類實例的組合中,通過supertype declaration說明。
1、抽象超類
EXPRESS通過abstract supertype定義不可直接實例化(be instantiated)的超類,但抽象超類可以和至少一個子類一起被實例化。這就是說,抽象超類實例描述的信息不完備,必須進一步和其子類聯合起來方能表達一確切的概念,這一點和C++中的虛擬對象說明類同。
2、ONEOF關係
如果超類實體將要和一組可能的子類實例的一個一起實例化,那么ONEOF約束用來指定這種選擇,這種選擇可以是一個單個子類或其他子類/超類約束的表達式,即ONEOF(… )括弧內的項可以是子類/超類約束的遞歸定義項。例如,
ENTITY pet
ABSTRACT SUPERTYPE OF (ONEOF(cat, rabbit,dog,… ));
name: pet name;
END ENTYTY;
ENTITY catSUBTYPE OF(pet)…END ENTYTY;
…
3、ANDOR關係
如果一個超類的多個子類不是異或(mutually ex-clusive)的關係,即不是相互排斥的,那么該超類實例可以包括其多個子類的多個實例,子類間的這種關係用ANDOR約束指定。如
ENTITY personSUPERTYPE OF (employee ANDOR sutdent);
…
END ENTYTY;
…
4、AND關係
如果超類被分成幾組互不相容的子類(即多個O-NEOF組),就是說有不只一種方式分類超類,那么組間關係用AND約束指定。
ENTITY personSUPERTYPE OF (ONEOF ( male,female) AND ONE-OF (citizen,alien));
…
END ENTYTY;
5、子類間的預設約束
如果超類約束沒有在超類實體中說明,那么其子類(如果有)應該是彼此互相相容的,即是說,好象所有子類已經隱式說明為ANDOR關係。如果超類約束在其某些子類上,那么其他子類仍然預設為ANDOR關係。
套用
用 EXPRESS 語言表達企業模型
1、儘管 EXPRESS 語言看起來像通常的程式語言, 但它畢竟不是計算機程式語言, 不能用來定義可執行程式, 只能定義程式執行所需要的數據, 用於描述複雜的數據關係, 並實現其數據的共享與交換。因而, EXPRESS 語言不具有對產品生產過程的描述功能, 不能用 EXPRESS 語言描述過程視圖。
2、 企業模型用 EXPRESS 語言描述時, 打破功能、信息、資源和組織等模型之間的界限, 形成一個由許多 entity 數據信息組成的 EXPRESS 語言的整體信息庫, 這些 entity 可以利用 supertype of( ,) 和 sub-type of( ,) 語句來嵌套定義。
3、 在企業建模方面, EXPRESS ) G 可以省略,建模者可以直接根據功能、信息、資源和組織等視圖寫出 EXPRESS 語言, 這些模型傳統的圖形描述方法已被人們接受, 又便於理解, 較 EXPRESS ) G 的套用更為普遍。採用 EXPRESS 語言描述方法是因為它便於計算機編譯及企業模型信息的交換。
4、用 EXPRESS 語言描述具體企業模型的方法如下: 用 EXPRESS 語言描述功能模型時, 把每個功能活動以及它的每一個輸入( I) 、輸出( O) 、控制( C) 和機制( M ) 看作一個 entity。對於每個 entity, 把圖號與功能活動編號之和作為 entity 的 identifier, 把控制( C) 看作各種約束, 把輸出( O) 看作 function 的返回值, 把輸入( I) 和機制( M) 看作 function 所調用的參數。 º用 EXPRESS 語言描述信息模型時, 把每個信息實體看作一個 entity, 信息實體編號作為它的identifier, 信息實體的所有屬性以及與其他實體的關係都作為 entity 的屬性。»用 EXPRESS 語言描述資源模型時, 把每個資源實體看作一個 entity, 把資源實體的屬性作為 entity 的屬性。¼ 組織模型的描述與資源模型類似。