2015-08-15 64 views
0

我是OCL的新手,我在eclipse上使用papyrus luna 4.4.2 我有一個名爲CLIENT的類圖,約束{所有屬性超出範圍}第二個類名爲Customer,帶有約束{所有屬性都是強制性的}並且另一個類調用具有約束屬性出處的地址(來源應爲強制性的)

我應該如何編寫適合形式語言的OCL約束? 也想知道如何驗證語法的正確性?如何編寫OCL約束

+0

如果要檢查OCL約束的語法,可以使用[Eclipse MDT/OCL](https://wiki.eclipse.org/OCL)的評估控制檯,或者嘗試[德累斯頓OCL](http ://www.dresden-ocl.org/index.php/DresdenOCL)編輯器功能,您可以在其中加載模型。但請注意,德累斯頓OCL目前沒有任何活躍的開發者,但非常成熟。 – lschuetze

+0

親愛的Reggie thx爲了您的快速響應,我仍在等待如何編寫描述每個客戶端,客戶和地址類的OCL約束的響應。請問有人可以幫我 –

+0

你應該指定*超出範圍*的含義。此外,我不確定你可以迭代類的每個功能,因爲這是元編程。每個班級有很多功能嗎? – lschuetze

回答

0

在集合的情況下,它檢查非空,否則檢查非空的屬性。

context Address inv: self.provenance->notEmpty()

因爲你必須爲每個屬性做到這一點,其他類。如果你想爲每個具有一個不變量的屬性執行此操作,則必須在元模型上將它們表達出來。

+0

抱歉Ischuetze,元層次結構意味着什麼?你是指這個班的名字?期待您的回覆;靜候佳音 –