Зависимость <<extend>>
используется только для вариантов использования. Это означает, что один вариант использования расширяет другой при определенных обстоятельствах. В следующем:
Клиент просматривает данные учетной записи. При определенных обстоятельствах клиент может также «Просмотреть открытые заказы» как часть «Просмотр сведений об учетной записи». Также возможно, что клиент будет «Просмотреть историю» как часть «Просмотр сведений об учетной записи».
Это не имеет ничего общего с обобщением / специализацией.
<<extend>>
сбивает с толкув диаграммах вариантов использования. Наименьшая часть путаницы заключается в том, что диаграммы вариантов использования не являются вариантами использования!
Вариант использования - это документ, а не диаграмма. Например, приведенная выше диаграмма могла быть взята из следующего варианта использования:
- Клиент просматривает данные учетной записи.
Расширения:
1a. Если клиент нажимает ссылку «Открытые заказы»
Клиент просматривает открытые заказы
1b. Если клиент нажимает ссылку «Просмотр истории»
История просмотра клиента
В более подробной модели эти «точки расширения» будут перечислены в элементе варианта использования «Просмотр сведений об учетной записи» на диаграмме. Но, на мой взгляд, это ужасно загромождает диаграмму.
Сначала я действительно выучил UML, читая "UML Distilled" Мартина Фаулера. Я только что проверил эту книгу, прежде чем опубликовать этот ответ, и обнаружил, что Фаулер предлагает игнорировать <<extend>>
.