2015-08-15 2 views
0

Я новичок в OCL, я использую papyrus on eclipse luna 4.4.2 У меня есть диаграмма классов с именем CLIENT с ограничением {все атрибуты недоступны} вторым классом с именем Customer with ограничение {все атрибуты являются обязательными}, а другой вызов класса, имеющий атрибут происхождения с ограничением {происхождение обязательным}

Как написать ограничение OCL, которое соответствует формальному языку? также хотел бы знать, как проверить правильность синтаксиса?Как написать противопоказание OCL

+0

Если вы хотите проверить синтаксис ограничений OCL, вы можете использовать оценочную консоль [Eclipse MDT/OCL] (https://wiki.eclipse.org/OCL) или попробовать [Dresden OCLs] (http : //www.dresden-ocl.org/index.php/DresdenOCL), где вы можете загрузить свою модель. Но имейте в виду, что Dresden OCL в настоящее время не имеет активного разработчика, но очень зрелый. – lschuetze

+0

Уважаемый Реджи thx за ваш быстрый ответ, я все еще жду ответа на то, как написать ограничение OCL описать на каждом из классов Client, Customer и Address. может кто-то мне помочь –

+0

Вы должны указать, что означает * вне сферы действия *. Кроме того, я не уверен, что вы можете перебирать все функции класса, поскольку это метапрограммирование. Есть ли много возможностей для каждого класса? – lschuetze

ответ

0

В случае коллекции он проверяет наличие непустоты и, в противном случае, на атрибут, который он проверяет на наличие ненулевого значения.

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

Для других классов, которые вы должны сделать это для каждого атрибута. Если вы хотите сделать это для каждого атрибута с одним инвариантом, вам нужно сформулировать их на метамодели.

+0

Извините Ischuetze, Что означает мета-иерархия? вы имеете в виду имя класса? ожидаю услышать от тебя –

Смежные вопросы