для контекста UML Кроме этого, если А продолжается B, то B является подмножеством А.<extend> зависимость в UML
Но в UML, это наоборот, скажем, если А продолжается Б, то А подмножество B,
Почему это так странно?
для контекста UML Кроме этого, если А продолжается B, то B является подмножеством А.<extend> зависимость в UML
Но в UML, это наоборот, скажем, если А продолжается Б, то А подмножество B,
Почему это так странно?
Чтобы написать это с точки зрения прецедентов (я считаю, что это контекст, который вы имели в виду - если нет, исправьте меня), чтобы не думать о заказе еды в вашем любимом ресторане быстрого питания.
Основной вариант использования заключается в том, чтобы заказать еду, но она может быть продлено, если вы предлагаете купон на скидку. Каждый раз, когда вы проходите через это использование cale, вы получаете еду, но только при особых обстоятельствах вы платите меньше, чем обычно (или получаете дополнительный сэндвич).
Я нашел неплохой пример здесь: http://www.agilemodeling.com/essays/useCaseReuse.htm. Поскольку вы можете видеть, что регистрация для международного студента включает дополнительную проверку безопасности и применяется только к подмножеству заявок. Надеюсь, что это поможет.
Зависит от <<extend>>
используется только для случаев использования. Это означает, что в некоторых случаях один вариант использования распространяется на другого. В дальнейшем:
Клиент просмотров реквизиты счета. При определенных обстоятельствах клиент может также «Открыть открытые ордера» в разделе «Просмотреть сведения об учетной записи». Также возможно, что клиент будет «просматривать историю» как часть «Просмотреть сведения об учетной записи».
Это не имеет никакого отношения к обобщению/специализации.
<<extend>>
сбивает с толку в случае использования диаграмм. Наименьшая часть путаницы заключается в том, что диаграммы использования не используются!
Используемый кейс - это документ, а не диаграмма. Например, приведенная выше диаграмма, возможно, была составлена из следующего текста прецедента:
Удлинители:
1a. Если клиент нажимает ссылку «Открыть заказы»
Открытые заявки клиентов
1b. Если клик нажимает ссылку «Просмотреть историю»
История просмотров клиентов
В более детальной модели эти «точки расширения» будут указаны в элементе использования «Просмотреть данные учетной записи» на диаграмме. Но это, по-моему, ужасно громит диаграмму.
Я первый действительно узнал UML, прочитав «UML Distilled» от Мартина Фаулера. Я только что проверил эту книгу, прежде чем публиковать этот ответ, и обнаружил, что Фаулер предлагает игнорировать <<extend>>
.
Но в UML «extend» похож на «specializaton», правильно? – omg
Да, но эти термины также разные. Вы используете расширение по отношению к прецедентам и специализацию по отношению к классам. – maciejkow
о, еще раз спасибо. В конце концов, я хочу знать, что «распространяется» аналогично «specializaton», без контекста UML? – omg
UML не использует термин «расширение/расширение». Вместо этого он использует термин «обобщать/обобщать»; люди также часто называют это «наследованием/наследованием».
Если B является обобщением A (то есть A наследуется от B), то A является подмножеством B. Это должно стать ясным из отношения «is-a»: если каждый A является B, то A является очевидно, подмножество B. В вашей терминологии, если A расширяет B, A является подмножеством B.
Тип - предикат: для каждого объекта вы можете определить, принадлежит ли оно предикату. Расширение предикатного средства, чтобы сделать его более ограничительным.
Term extend используется в контексте диаграмм использования. – maciejkow
Как вы сказали: Расширение предиката означает сделать его более ограничительным. Так что «простирание» похоже на «специализация», верно? – omg
Я не думаю, что это подразумевается под OP. Зачем использовать слово «подмножество» при обращении к случаям использования? См. Также http://stackoverflow.com/questions/1182967/a-logical-doubt-about-extend-and-generalize от того же автора. –
о, похоже, это недоразумение в «расширении». Для другого примера, если теория B основана на теории A, но покрывает больше, мы говорим теорию B (глагол). A. Вот что этот глагол здесь, кажется, не «расширяется», правильно? Извините, английский язык не является моим родным языком .. – omg
UML's определение «расширение» означало бы, что если теория B расширила теорию A, она описала бы некоторый краевой случай с дополнительными условиями и выводами, а не более общей. Однако я вижу, что это немного запутанно. – maciejkow
@ maciejkow, поэтому вы подразумеваете, что глагол должен быть «обобщен». Я хочу знать, что это несколько запутывает для носителей английского языка? Или, если быть более конкретным, «обобщать» и «расширять»? Или эти два слова идут совершенно иначе Если A расширяет B, то A является подмножеством B.But, если A обобщает B, то B является подмножеством A, правильно? – omg