Если есть еще неизвестный производитель, он использует включенный случай Добавить производителя.
Но если это еще неизвестный тип, есть расширение? Это не имеет никакого смысла для меня.
Я не совсем уверен, что для меня это тоже имеет смысл.
В спецификации UML2 говорится о включении (раздел 16.3.5):
Отношение включения между двумя вариантами использования означает, что поведение, определенное в этом случае, включено в
поведение базового варианта использования. Отношение включения предназначено для использования при наличии общих частей
поведение двух или более вариантов использования. Эта общая часть затем извлекается в отдельный вариант использования, который будет включен всеми
базовые варианты использования, имеющие эту общую часть. Поскольку основное использование отношения включения предназначено для повторного использования общих частей,
то, что остается в базовом сценарии использования, обычно не является завершенным само по себе, а зависит от включенных частей, чтобы иметь смысл. это
отражается в направлении взаимосвязи, указывая, что базовый вариант использования зависит от дополнения, а не от недостатка
наоборот.
Выполнение включенного варианта использования аналогично вызову подпрограммы. Все поведение включенного варианта использования
выполняется в одном месте во включенном сценарии использования до возобновления выполнения включенного варианта использования.
...
Обратите внимание, что включенный вариант использования не является обязательным и всегда требуется для правильного выполнения включающего варианта использования.
И из расширений (раздел 16.3.3):
Это отношение указывает, что поведение варианта использования может быть расширено поведением другого (обычно
дополнительный) вариант использования. Расширение происходит в одной или нескольких определенных точках расширения, определенных в расширенном использовании.
дело. Обратите внимание, что расширенный вариант использования определяется независимо от расширенного варианта использования и имеет смысл
независимо от расширяющегося варианта использования. С другой стороны, расширенный вариант использования обычно определяет поведение, которое может
не обязательно быть значимым само по себе. Вместо этого расширяющий вариант использования определяет набор приращений модульного поведения, которые
увеличить выполнение расширенного варианта использования при определенных условиях.
...
Если условие расширения является истинным в то время, когда первая точка расширения достигнута во время выполнения
расширенный вариант использования, тогда также будут выполнены все соответствующие фрагменты поведения расширенного варианта использования. Если
условие ложно, расширение не происходит.
Варианты использования - довольно процедурные вещи, которые можно найти в языке OOD. Включает в себя подпрограммы звонки. Расширения являются необязательными процедурами, такими как условная логика или шаблонный метод шаблона , где основной метод может вызывать или не вызывать более конкретную реализацию.
Поскольку вариант использования является классификатором, вы можете использовать те же отношения обобщения между вариантами использования, что и между классами, чтобы обозначить обобщение. Расширение и включение обозначают необязательные и обязательные подчиненные поведения.
Было бы разумно, если бы только Добавить производителя можно было вызывать из разных мест, но Добавить новый тип продукта существует только для этого случая. Это правильно? Спасибо!
В нем говорится, что всякий раз, когда вы добавляете товар, вы всегда добавляете нового производителя, а иногда вы можете добавить новую категорию товара. В нем не указано, вызывается ли какой-либо из вариантов использования из другого места, хотя обычно вы бы отделили включенные варианты использования только в том случае, если бы они были. Учитывая, что реальные производители делают разные продукты, это, вероятно, плохо сформированный пример.