Можно ли использовать UML с OCL для формальных спецификаций?

Я спрашиваю, потому что UML используется для неофициальных спецификаций и имеет некоторую двусмысленность в своей семантике. Однако я думаю, что OCL можно использовать для указания условий до/после, инвариантов и других ограничений достаточно эффективно.

Недавно я столкнулся с обозначением Z и алгебраическими спецификациями. Мой вопрос: достаточно ли комбинации UML и OCL для формальных спецификаций?


person Gabriel Ščerbák    schedule 11.05.2010    source источник
comment
@Robert Harvey Модульные тесты хороши, но они не являются формальными спецификациями, их можно использовать только для проверки конкретных примеров, а не всех возможных комбинаций входных и выходных данных.   -  person Gabriel Ščerbák    schedule 12.05.2010


Ответы (1)


Да, для большинства систем, которые вы можете построить.

Я имею в виду, что UML и OCL — это только полуформальные языки (их синтаксис четко определен, но их семантика формализована лишь частично, многие аспекты просто описаны на естественном языке в стандартных спецификациях документов). Таким образом, если вы строите критическую систему и вам нужно доказать правильность системы, то UML/OCL может оказаться недостаточным, но для многих других типов систем формальности, которые может обеспечить UML/OCL, достаточно хороши.

person Jordi Cabot    schedule 12.05.2010
comment
Спасибо, хотя ваш ответ начинается с «Да», результат, кажется, «Нет»:) Не могли бы вы привести какой-нибудь пример полезности семантической вариации? Я имею в виду, почему бы не полностью формализовать UML? - person Gabriel Ščerbák; 12.05.2010
comment
Многие пытались формализовать UML, но все они потерпели неудачу (UML слишком велик и сложен). В лучшем случае им удалось формализовать определенные подмножества путем повторного выражения UML на каком-либо формальном языке. - person Jordi Cabot; 14.05.2010