diff --git a/docs/use-cases/README.md b/docs/use-cases/README.md index 7fbafd4..bf5dc48 100644 --- a/docs/use-cases/README.md +++ b/docs/use-cases/README.md @@ -44,4 +44,375 @@ @enduml - \ No newline at end of file + + +## Схеми використання для окремих діячів + +Схема використання для гостя: + +@startuml + + :Гість: as Guest + + (ACCOUNT.CREATE\nСтворити обліковий запис) as CreateAccount + (USER.LOGIN\nПройти ідентифікацію в системі) as LogIn + (USER.TAKE_ANON_SURVEY\nПройти анонімне опитування) as TakeAnonSurvey + + Guest -u-> CreateAccount + Guest --> LogIn + Guest -r-> TakeAnonSurvey + +@enduml + +Схема використання для зареєстрованого користувача: + +@startuml + + :Зареєстрований користувач: as AuthorisedUser + + (ACCOUNT.DELETE\nВидалити обліковий запис) as DeleteAccount + (ACCOUNT.MODIFY\nЗмінити властивості облікового запису) as ModifyAccount + (USER.CREATE_SURVEY\nСтворити опитування) as CreateSurvey + (USER.DELETE_SURVEY\nВидалити опитування) as DeleteSurvey + (USER.GET_SURVEY_RESULT\nПереглянути відповіді на опитування) as GetSurveyResult + (USER.LOGOUT\nСкинути дані про ідентифікацію в системі) as LogOut + (USER.MODIFY_SURVEY\nРедагувати опитування) as ModifySurvey + (USER.STAT_SURVEY\nПереглянути властивості опитування) as StatSurvey + (USER.TAKE_ANON_SURVEY\nПройти анонімне опитування) as TakeAnonSurvey + (USER.TAKE_NAMED_SURVEY\nПройти поіменне опитування) as TakeNamedSurvey + + AuthorisedUser -r-> ModifyAccount + AuthorisedUser -u-> DeleteAccount + AuthorisedUser -u-> LogOut + AuthorisedUser -d-> CreateSurvey + AuthorisedUser -u-> DeleteSurvey + AuthorisedUser --> StatSurvey + AuthorisedUser -d-> ModifySurvey + AuthorisedUser --> GetSurveyResult + AuthorisedUser -l-> TakeAnonSurvey + AuthorisedUser -d-> TakeNamedSurvey + +@enduml + +## Сценарії використання +### Для гостя + +| ID | ACCOUNT.CREATE | +|:-----------------:|:------------------------------------------------------------------------------------------------------:| +| Назва | Створити обліковий запис | +| Учасники | Користувач, система | +| Передумови | Відсутні | +| Результат | Обліковий запис користувача | +| Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму
001.002 Ідентичний псевдонім вже існує | +@startuml + |Користувач| + start + : Вводить бажаний псевдонім у поле вводу псевдоніму; + : Вводить пароль у поле вводу паролю; + : Натискає на кнопку створення облікового запису; + |Система| + : Створює обліковий запис користувача; + note right #lightpink + Можливі 001.001, 001.002 + end note + |Користувач| + stop +@enduml + +| ID | USER.LOGIN | +|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| Назва | Пройти ідентифікацію в системі | +| Учасники | Користувач, система | +| Передумови | Користувач має обліковий запис | +| Результат | Користувач ідентифікований в системі | +| Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму
001.003 Користувач ввів псевдонім, якого не існує в системі
001.004 Користувач ввів неправильний пароль до облікового запису | +@startuml + |Користувач| + start + : Вводить псевдонім у поле вводу псевдоніму; + : Вводить пароль у поле вводу паролю; + : Натискає кнопку ідентифікації; + |Система| + : Ідентифікує користувача; + note right #lightpink + Можливі 001.001, 001.003, 001.004 + end note + |Користувач| + stop +@enduml + +| ID | USER.TAKE_ANON_SURVEY | +|:-----------------:|:------------------------------------:| +| Назва | Пройти анонімне опитування | +| Учасники | Користувач, система | +| Передумови | Відсутні | +| Результат | Запис відповідей на опитування | +| Виключні ситуації | 001.006 Запитане опитування не існує | +@startuml + |Користувач| + start + : Переходить на сторінку проходження опитування; + |Система| + : Виводить перелік запитань опитування; + note right #lightpink + Можлива 001.006 + end note + |Користувач| + : Вводить відповіді на запитання; + : Натискає кнопку надсилання відповідей; + |Система| + : Записує відповіді на опитування; + note right #lightpink + Можлива 001.006 + end note + : Виводить прощальне повідомлення; + |Користувач| + stop +@enduml + +### Для зареєстрованого користувача + +| ID | ACCOUNT.DELETE | +|:-----------------:|:-----------------------------------------:| +| Назва | Видалити обліковий запис | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі | +| Результат | Відсутність облікового запису користувача | +| Виключні ситуації | 001.005 Користувач не ідентифікований | +@startuml + |Користувач| + start + : Натискає на кнопку видалення облікового запису; + |Система| + : Виводить кнопку-запит на підтвердження видалення облікового запису; + |Користувач| + : Натискає на кнопку підтвердження видалення облікового запису; + |Система| + : Видаляє обліковий запис; + note right #lightpink + Можлива 001.005 + end note + |Користувач| + stop +@enduml + +| ID | ACCOUNT.MODIFY | +|:-----------------:|:-------------------------------------:| +| Назва | Змінити властивості облікового запису | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі | +| Результат | Зміна властивостей облікового запису | +| Виключні ситуації | 001.005 Користувач не ідентифікований | +@startuml + |Користувач| + start + : Натискає на кнопку редагування облікового запису; + |Система| + : Виводить інтерфейс для редагування облікового запису; + note right #lightpink + Можлива 001.005 + end note + |Користувач| + : Вказує бажані зміни властивостей облікового запису; + : Натискає на кнопку внесення змін до властивостей облікового запису; + |Система| + : Змінює властивості облікового запису; + |Користувач| + stop +@enduml + +| ID | USER.CREATE_SURVEY | +|:-----------------:|:--------------------------------------------------------------------------------------------------------:| +| Назва | Створити опитування | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі | +| Результат | Створене опитування | +| Виключні ситуації | 001.005 Користувач не ідентифікований
001.007 Користувач ввів неприпустимі символи в назві опитування | +@startuml + |Користувач| + start + : Переходить на сторінку створення опитування; + note right #lightpink + Можлива 001.005 + end note + |Система| + : Виводить інтерфейс створення опитування; + |Користувач| + : Задає інформацію про запитання та тип опитування; + : Натискає кнопку збереження опитування; + |Система| + : Створює опитування; + note right #lightpink + Можлива 001.007 + end note + : Виводить посилання на проходження опитування; + |Користувач| + stop +@enduml + +| ID | USER.DELETE_SURVEY | +|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:| +| Назва | Видалити опитування | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі, користувач є власником опитування | +| Результат | Відсутність опитування | +| Виключні ситуації | 001.005 Користувач не ідентифікований
001.006 Запитане опитування не існує
001.008 Користувач не є власником опитування | +@startuml + |Користувач| + start + : Натискає на кнопку видалення опитування; + |Система| + : Виводить запит на підтвердження видалення опитування; + |Користувач| + : Натискає на кнопку підтвердження видалення опитування; + |Система| + : Видаляє опитування; + note right #lightpink + Можливі 001.005, 001.006, 001.008 + end note + |Користувач| + stop +@enduml + +| ID | USER.GET_SURVEY_RESULT | +|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:| +| Назва | Переглянути відповіді на опитування | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі, користувач є власником опитування | +| Результат | Інформація про відповіді на опитування | +| Виключні ситуації | 001.005 Користувач не ідентифікований
001.006 Запитане опитування не існує
001.008 Користувач не є власником опитування | +@startuml + |Користувач| + start + : Натискає на кнопку перегляду відповідей на опитування; + |Система| + : Виводить інформацію про відповіді на опитування; + note right #lightpink + Можливі 001.005, 001.006, 001.008 + end note + |Користувач| + stop +@enduml + +| ID | USER.LOGOUT | +|:-----------------:|:----------------------------------------:| +| Назва | Скинути дані про ідентифікацію в системі | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі | +| Результат | Користувач не ідентифікований в системі | +| Виключні ситуації | 001.005 Користувач не ідентифікований | +@startuml + |Користувач| + start + : Натискає на кнопку виходу з облікового запису; + |Система| + : Скидає інформацію про ідентифікацію користувача; + note right #lightpink + Можлива 001.005 + end note + |Користувач| + stop +@enduml + +| ID | USER.MODIFY_SURVEY | +|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:| +| Назва | Редагувати опитування | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі, користувач є власником опитування | +| Результат | Змінене опитування | +| Виключні ситуації | 001.005 Користувач не ідентифікований
001.006 Запитане опитування не існує
001.008 Користувач не є власником опитування | +@startuml + |Користувач| + start + : Переходить на сторінку редагування опитування; + |Система| + : Виводить інтерфейс редагування опитування; + note right #lightpink + Можливі 001.005, 001.006, 001.008 + end note + |Користувач| + : Задає інформацію про зміни в опитуванні; + : Натискає кнопку збереження змін в опитуванні; + |Система| + : Змінює опитування; + |Користувач| + stop +@enduml + +| ID | USER.STAT_SURVEY | +|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:| +| Назва | Переглянути властивості опитування | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі, користувач є власником опитування | +| Результат | Інформація про властивості опитування | +| Виключні ситуації | 001.005 Користувач не ідентифікований
001.006 Запитане опитування не існує
001.008 Користувач не є власником опитування | +@startuml + |Користувач| + start + : Натискає на кнопку перегляду інформації про опитування; + |Система| + : Виводить інформацію про опитування; + note right #lightpink + Можливі 001.005, 001.006, 001.008 + end note + |Користувач| + stop +@enduml + +| ID | USER.TAKE_ANON_SURVEY | +|:-----------------:|:------------------------------------:| +| Назва | Пройти анонімне опитування | +| Учасники | Користувач, система | +| Передумови | Відсутні | +| Результат | Запис відповідей на опитування | +| Виключні ситуації | 001.006 Запитане опитування не існує | +@startuml + |Користувач| + start + : Переходить на сторінку проходження опитування; + |Система| + : Виводить перелік запитань опитування; + note right #lightpink + Можлива 001.006 + end note + |Користувач| + : Вводить відповіді на запитання; + : Натискає кнопку надсилання відповідей; + |Система| + : Записує відповіді на опитування; + note right #lightpink + Можлива 001.006 + end note + : Виводить прощальне повідомлення; + |Користувач| + stop +@enduml + +| ID | USER.TAKE_NAMED_SURVEY | +|:-----------------:|:-----------------------------------------------------------------------------:| +| Назва | Пройти поіменне опитування | +| Учасники | Користувач, система | +| Передумови | Користувач ідентифікований в системі | +| Результат | Запис відповідей на опитування та відомості про користувача | +| Виключні ситуації | 001.005 Користувач не ідентифікований
001.006 Запитане опитування не існує | +@startuml + |Користувач| + start + : Переходить на сторінку проходження опитування; + |Система| + : Виводить перелік запитань опитування; + note right #lightpink + Можливі 001.005, 001.006 + end note + |Користувач| + : Вводить відповіді на запитання; + : Натискає кнопку надсилання відповідей; + |Система| + : Записує відповіді на опитування та відомості про користувача; + note right #lightpink + Можлива 001.006 + end note + : Виводить прощальне повідомлення; + |Користувач| + stop +@enduml