2017-05-06 64 views
1

想象一下下面的類人OCL是它允許寫操作的約束和屬性

================ 
| Person | 
|--------------| 
|- name  | 
|- age   | 
|--------------| 
|+ drinkWater()| 
|+ drinkBeer() | 
================ 

使用OCL,是有可能設定一個約束的操作drinkBeer()?例如只允許Person> = 21歲的人喝啤酒?

+0

這是可能的,但我從不使用OCL。它有純粹的學術氣味。我總是寫出人類可讀的約束。 –

回答

1
context Person::drinkBeer() 
pre Adult: self.age >= 21 

應該可能做到。

+0

非常感謝我做了另一篇文章相關:http://stackoverflow.com/questions/43819795/ocl-write-constraint-on-an-operation-of-class-a-and-attribute-of-class- b – S12000