По моему мнению, эти два не обязательно отдельные случаи использования. При выявлении вариантов использования постарайтесь учитывать точку зрения пользователя. Показ файла пользователю может быть одним из этапов всего процесса открытия файла.
Если у вас есть только один тип файла, и это то, что всегда происходит, достаточно одного варианта использования. Если у вас есть разные типы файлов, которые пользователь может выбрать и загрузить, и каждый раз, когда происходит что-то другое, было бы неплохо извлечь первую часть, чтобы избежать повторения, но это зависит. В этом случае используйте расширение. (хотя это может быть обработано альтернативными потоками)
Несколько баллов:
1. Обратите внимание, что include и extension не являются зависимостями, зависимость - это еще одно отношение в UML.
2- Хорошие варианты использования - это те, которые не зависят от пользовательского интерфейса. Сосредоточьтесь на том, чего хочет достичь пользователь. Не принимайте решения, связанные с пользовательским интерфейсом, при написании сценариев использования.
3- Когда «A» включает в себя «B», «B» происходит каждый раз, когда происходит «A». Это похоже на безусловный вызов функции от «А» до «В». Таким образом, «B» всегда может быть частью «A». Мы разделяем «B» для повторного использования и модульности.
4- Некоторые профессионалы рекомендуют по возможности избегать продления. Наличие расширяет и включает в себя не обязательно подразумевает профессиональные диаграммы UC. Они могут снизить читабельность и ясность.