Как преобразовать естественный язык в ограничение OCL?
У меня есть диаграмма классов, которые состоят из класса по имени SYSTEM. Я написал ограничение на доступность этой системы.
Например:
Система должна быть доступна 24/7.
Теперь я хочу преобразовать вышеупомянутое утверждение в ограничение OCL. Я новичок в OCL. Я искал и пробовал некоторые исследовательские работы и видео, но не нашел ничего конкретного для доступности.
1 ответ
Ar run time: OCL оценивает и проверяет запрос, используя мгновенное состояние системы.
OCL не поддерживает время, но вы можете использовать Google для Temporal OCL, чтобы посмотреть, что делают различные исследователи. В более широком смысле время является активной областью исследований без твердых решений. Без изменений, OCL может получить доступ только к переменной времени работы и проверить, что она превышает 24 часа... При первом запуске ваша система должна давать сбой, потому что она не была доступна 24/7?
Если вы рассматриваете ваш конкретный запрос, это, очевидно, невозможно. На практике проектировщики могут анализировать частоту отказов в системах с одной / двумя / тремя /… кратными избыточностями в отношении соответствующих предсказуемых механизмов отказов. Ни одна система не сможет пережить непредвиденный сбой, не говоря уже о враждебном действии со стороны какого-то инсайдера или хорошо информированного постороннего лица. Опять же более реалистично, должен быть SLA, который принимает определенное количество времени простоя в год, чем меньше время простоя, тем выше стоимость.
Во время разработки вы можете использовать OCL в качестве формулировки ограничений вашего дизайна. например, математика, которая вычисляет совокупную частоту отказов одного сервера, или составную частоту отказов избыточных серверов. Но OCL не будет моим первым выбором для сложных вычислений с плавающей запятой.