Ну я думал что сначала нужно продумать кто взаимодействует с системой, а потом уже как они взаимодействуют друг с другом.
DEEPshadow, начать можно с определения границ системы (экторов), а потом уже для каждого эктора определить какие услуги они будут получать от системы. Но в общем случае позже может найтись новый ВИ, который сложно будет отнести к существующим экторам. Тогда придётся вводить нового эктора.
Я понимаю под main use cases, те "варианты использования" которые бы описывали сценарий и без которых выполнение сценария не возможна.
Под main use cases видимо подразумеваются наиболее часто используемые. Возможно есть какие-то более чёткие критерии отделения "main" от "не main". Я бы уточнил у преподавателя.
То есть в моем случае это выдача карты, механизм контроля доступа и отправка отчета для анализа. Если я как то понял не правильно поправьте меня.
Я бы выделил следующие ВИ:
1. Открыть проход
2. Ведение свайп-карт (CRUD)
3. Ведение считывателей (CRUD)
4. Рассылка отчёта
Сейчас попробую накидать диаграмму
Возникли следующие комментарии:
1. См. список ВИ выше.
2. Не нужно выделять два разных ВИ с разными именами ("create swipe card")
3. Не нужно выделять Student Service Center и HR. На самом деле это одна и та же роль типа "Администратор". Если правами доступа будет управлять кто-то другой типа начальника охраны, то нужна отдельная роль.
4. Первичных экторов принято указывать слева от ВИ, а вторичны справа.
5. Неверное использование "extend" ("формирование отчёта" не расширяет функционал "получить доступ") и "include" (Нельзя использовать функциональную декомпозицию).
6. CardReader и DataBase это не экторы, а часть системы. Их нужно удалить.
7. Нового и старого сотрудника/ученика выделять не нужно. Они будут отличаться только наличием свайп-карты, а роль одна и та же.
8. Зачем разделять сотрудников и учеников? Они будут как-то по разному взаимодействовать с системой?
9. Сотрудники/ученики не будут взаимодействовать с системой при получении/замене свайп-карты. Они будут взаимодействовать только с администратором.