Есть ли разница между UML Use case "extends" и inherance? - PullRequest
4 голосов
/ 25 сентября 2010

Или «extends» - это вариант использования, наследующий другой?

- обновление

Просто пояснение, я прочитал книги и сделал многодиаграммы.Но я просто не вижу никакой разницы между расширениями на UML и непереносимостью.Как сказал Билл, UML extends указывает на необязательное поведение, но в результате вы получаете новое поведение, которое можете или не можете использовать.Так в чем же разница?

Ответы [ 4 ]

2 голосов
/ 25 сентября 2010

Это очень похоже на наследование. См. Подробное описание этой концепции здесь.

Наслаждайтесь!

2 голосов
/ 25 сентября 2010

Я думаю, что в UML разница заключается в том, что «расширение» основано на точках расширения, что означает, что должна быть именованная точка в случае использования, где будет применяться расширение. Семантика не очень точна в этом. Наследование для вариантов использования означает изменение некоторого поведения, а не точное указание где.

Другой важный момент касается наследования и принципа подстановки Лискова. Вы должны иметь возможность использовать один вариант использования, который наследуется от другого, в любом месте, где вы можете использовать другой. Это не относится к пониманию того, как «расширяется». Когда один вариант использования расширяется другим, это означает, что один может быть изменен другим, но все же он содержит основной путь сценария, который может быть разветвлен и присоединен расширяющим вариантом использования. Я думаю, что это разница между структурным и поведенческим наследованием. Наследование связано с достижением одной и той же цели и удовлетворением тех же интересов - с теми же ограничениями ответственности и поведения, где расширение касается модификации структуры пути сценария, которая может быть вызвана дополнительными интересами, такими как проверка ошибок.

Наследование на самом деле не очень хороший механизм для использования в случаях использования, в сочетании с наследованием акторов, что имеет больше смысла, оно может привести к нежелательным парадоксам. Следуя совету Алистер Кокберн (Написание эффективных сценариев использования), наследование следует использовать только для выражения вариаций в технических деталях или форматах данных для конкретного варианта использования.

1 голос
/ 26 сентября 2010

В инструменте, который я использую в своей компании, у нас есть ограничения на моделирование.

Наследование: От актера к актору, от UseCase к Usecase, от System к System.Вы не можете иметь другие наследования на диаграмме, потому что я получил запрещенный знак.

Расширить можно только между двумя вариантами использования, но не между другими элементами.

Iна самом деле не вижу разницы между наследованием и распространяется между двумя вариантами использования.Я буду продолжать читать следующие посты, потому что после прочтения всех ответов я все еще не понимаю: -)

1 голос
/ 25 сентября 2010

Extends используется для добавления дополнительного, необязательного поведения к расширяемому варианту использования, но не изменяет никакого поведения в базовом сценарии.

Унаследованный вариант использования будет замените одно или несколько поведений унаследованного варианта использования.Другими словами, изменение поведения базового варианта использования, а не просто добавление новой функциональности.Обратите внимание, что наследование вариантов использования не совсем то же самое, что и наследование классов.

См. эту статью .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...