# Модель прецедентів ## Загальна схема
@startuml :Гість: as Guest :Зареєстрований користувач: as AuthorisedUser (ACCOUNT.CREATE\nСтворити обліковий запис) as CreateAccount (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.LOGIN\nПройти ідентифікацію в системі) as LogIn (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 Guest -u-> CreateAccount Guest --> LogIn Guest -r-> TakeAnonSurvey AuthorisedUser -r-> ModifyAccount AuthorisedUser -u-> DeleteAccount AuthorisedUser -u-> LogOut AuthorisedUser --> CreateSurvey AuthorisedUser -u-> DeleteSurvey AuthorisedUser --> StatSurvey AuthorisedUser --> ModifySurvey AuthorisedUser --> GetSurveyResult AuthorisedUser -l-> TakeAnonSurvey AuthorisedUser -d-> TakeNamedSurvey @enduml
## Схеми використання для окремих діячів Схема використання для гостя: @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