Леммы ROSS
Лемма 1
Лемма 1. Доказательство
Предположим, что логическая развилка находится в операции. Тогда операция будет разделена на логические 3 части: одна часть до развилки и 2 части после. Это противоречит аксиоме атомарности.
Лемма 1. Следствие A
Если возникает потребность в логической развилке, то ее можно перенести на уровень выше или ниже. Логические развилки следует переносить:
- на уровень сценариев. В этом случае сценарий параметризирует вызов операции и обрабатывает результат выполнения операции;
- на уровень сервисов. В этом случае операция запрашивает у сервиса результат логических расчетов, выполненных внутри сервиса.
Лемма 2
Лемма 2. Доказательство
Предположим, что сценарий вызывается из другого сценария. Тогда сценарий имеет доступ к другому сценарию, а это противоречит аксиоме однородности. Предположим, что сценарий вызывается из операции. Тогда операция должна будет обработать результат выполнения сценария, т.е. содержать логическую развилку. Согласно лемме 1 логические развилки находятся в сервисах либо сценариях.
Лемма 3
Лемма 3. Доказательство
Предположим, что сервис имеет доступ к операции. Это противоречит аксиоме вложенности, следовательно сервис не имеет доступа к операциям.
Лемма 3. Следствие A
Если сервису нужно обратиться к операции A
, то это признак неявной зависимости. Как правило, сервис обслуживает запрос другой операции, например, операции B
. Операция B
всегда выполняется в контексте некоторого сценария (аксиома вложенности), значит, вызов операции A
следует добавить во все сценарии, где используется операция B
. Если операции A
и B
связаны безусловно, то их следует объединить в одну операцию.
Лемма 3. Следствие B
Если сервису нужно обратиться к операции, не следует «обходить» лемму 3 переносом операции в отдельный сценарий. Сценарий, состоящий из единственной операции, избыточен, поскольку эквивалентен операции.