edu-dis-labs-vodyana/docs/use-cases/README.md

505 lines
32 KiB
Markdown
Raw Normal View History

2024-04-23 20:25:38 +03:00
# Модель прецедентів
## Загальна схема
<center style="
border-radius: 4px;
border: 1px solid #cfd7e6;
box-shadow: 0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025);
padding: 1em;
">
@startuml
:Гість: as Guest
:Зареєстрований користувач: as AuthorisedUser
2024-04-23 22:16:08 +03:00
(<b>ACCOUNT.CREATE</b>\nСтворити обліковий запис) as CreateAccount
(<b>ACCOUNT.DELETE</b>\nВидалити обліковий запис) as DeleteAccount
(<b>ACCOUNT.MODIFY</b>\nЗмінити властивості облікового запису) as ModifyAccount
(<b>SURVEY.LINK.CREATE</b>\nСтворити посилання на опитування) as CreateLink
(<b>SURVEY.LINK.DELETE</b>\nВидалити посилання на опитування) as DeleteLink
(<b>SURVEY.LINK.MODIFY</b>\nЗмінити властивості посилання на опитування) as ModifyLink
2024-04-23 22:16:08 +03:00
(<b>USER.CREATE_SURVEY</b>\nСтворити опитування) as CreateSurvey
(<b>USER.DELETE_SURVEY</b>\nВидалити опитування) as DeleteSurvey
(<b>USER.GET_SURVEY_RESULT</b>\nПереглянути відповіді на опитування) as GetSurveyResult
(<b>USER.LOGIN</b>\nПройти ідентифікацію в системі) as LogIn
(<b>USER.LOGOUT</b>\nСкинути дані про ідентифікацію в системі) as LogOut
(<b>USER.MODIFY_SURVEY</b>\nРедагувати опитування) as ModifySurvey
(<b>USER.STAT_SURVEY</b>\nПереглянути властивості опитування) as StatSurvey
(<b>USER.TAKE_ANON_SURVEY</b>\nПройти анонімне опитування) as TakeAnonSurvey
(<b>USER.TAKE_NAMED_SURVEY</b>\nПройти поіменне опитування) as TakeNamedSurvey
2024-04-23 20:25:38 +03:00
Guest -u-> CreateAccount
Guest --> LogIn
Guest -r-> TakeAnonSurvey
AuthorisedUser -r-> ModifyAccount
AuthorisedUser -u-> DeleteAccount
AuthorisedUser -r-> CreateLink
AuthorisedUser -l-> DeleteLink
AuthorisedUser -u-> ModifyLink
2024-04-23 20:25:38 +03:00
AuthorisedUser -u-> LogOut
AuthorisedUser --> CreateSurvey
AuthorisedUser -u-> DeleteSurvey
AuthorisedUser --> StatSurvey
AuthorisedUser --> ModifySurvey
AuthorisedUser --> GetSurveyResult
AuthorisedUser -l-> TakeAnonSurvey
AuthorisedUser -d-> TakeNamedSurvey
@enduml
</center>
## Схеми використання для окремих діячів
Схема використання для гостя:
@startuml
:Гість: as Guest
(<b>ACCOUNT.CREATE</b>\nСтворити обліковий запис) as CreateAccount
(<b>USER.LOGIN</b>\nПройти ідентифікацію в системі) as LogIn
(<b>USER.TAKE_ANON_SURVEY</b>\nПройти анонімне опитування) as TakeAnonSurvey
Guest -u-> CreateAccount
Guest --> LogIn
Guest -r-> TakeAnonSurvey
@enduml
Схема використання для зареєстрованого користувача:
@startuml
:Зареєстрований користувач: as AuthorisedUser
(<b>ACCOUNT.DELETE</b>\nВидалити обліковий запис) as DeleteAccount
(<b>ACCOUNT.MODIFY</b>\nЗмінити властивості облікового запису) as ModifyAccount
(<b>USER.CREATE_SURVEY</b>\nСтворити опитування) as CreateSurvey
(<b>USER.DELETE_SURVEY</b>\nВидалити опитування) as DeleteSurvey
(<b>USER.GET_SURVEY_RESULT</b>\nПереглянути відповіді на опитування) as GetSurveyResult
(<b>USER.LOGOUT</b>\nСкинути дані про ідентифікацію в системі) as LogOut
(<b>USER.MODIFY_SURVEY</b>\nРедагувати опитування) as ModifySurvey
(<b>USER.STAT_SURVEY</b>\nПереглянути властивості опитування) as StatSurvey
(<b>USER.TAKE_ANON_SURVEY</b>\nПройти анонімне опитування) as TakeAnonSurvey
(<b>USER.TAKE_NAMED_SURVEY</b>\nПройти поіменне опитування) as TakeNamedSurvey
(<b>SURVEY.LINK.CREATE</b>\nСтворити посилання на опитування) as CreateLink
(<b>SURVEY.LINK.DELETE</b>\nВидалити посилання на опитування) as DeleteLink
(<b>SURVEY.LINK.MODIFY</b>\nЗмінити властивості посилання на опитування) as ModifyLink
AuthorisedUser -r-> ModifyAccount
AuthorisedUser -u-> DeleteAccount
AuthorisedUser -r-> CreateLink
AuthorisedUser -l-> DeleteLink
AuthorisedUser -u-> ModifyLink
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 Користувач ввів заборонені символи в поле псевдоніму<br>001.002 Ідентичний псевдонім вже існує |
@startuml
|Користувач|
start
: Вводить бажаний псевдонім у поле вводу псевдоніму;
: Вводить пароль у поле вводу паролю;
: Натискає на кнопку створення облікового запису;
|Система|
: Створює обліковий запис користувача;
note right #lightpink
<b>Можливі 001.001, 001.002</b>
end note
|Користувач|
stop
@enduml
| ID | USER.LOGIN |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Пройти ідентифікацію в системі |
| Учасники | Користувач, система |
| Передумови | Користувач має обліковий запис |
| Результат | Користувач ідентифікований в системі |
| Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму<br>001.003 Користувач ввів псевдонім, якого не існує в системі<br>001.004 Користувач ввів неправильний пароль до облікового запису |
@startuml
|Користувач|
start
: Вводить псевдонім у поле вводу псевдоніму;
: Вводить пароль у поле вводу паролю;
: Натискає кнопку ідентифікації;
|Система|
: Ідентифікує користувача;
note right #lightpink
<b>Можливі 001.001, 001.003, 001.004</b>
end note
|Користувач|
stop
@enduml
| ID | USER.TAKE_ANON_SURVEY |
|:-----------------:|:------------------------------------:|
| Назва | Пройти анонімне опитування |
| Учасники | Користувач, система |
| Передумови | Відсутні |
| Результат | Запис відповідей на опитування |
| Виключні ситуації | 001.006 Запитане опитування не існує |
@startuml
|Користувач|
start
: Переходить на сторінку проходження опитування;
|Система|
: Виводить перелік запитань опитування;
note right #lightpink
<b>Можлива 001.006</b>
end note
|Користувач|
: Вводить відповіді на запитання;
: Натискає кнопку надсилання відповідей;
|Система|
: Записує відповіді на опитування;
note right #lightpink
<b>Можлива 001.006</b>
end note
: Виводить прощальне повідомлення;
|Користувач|
stop
@enduml
### Для зареєстрованого користувача
| ID | ACCOUNT.DELETE |
|:-----------------:|:-----------------------------------------:|
| Назва | Видалити обліковий запис |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Відсутність облікового запису користувача |
| Виключні ситуації | 001.005 Користувач не ідентифікований |
@startuml
|Користувач|
start
: Натискає на кнопку видалення облікового запису;
|Система|
: Виводить кнопку-запит на підтвердження видалення облікового запису;
|Користувач|
: Натискає на кнопку підтвердження видалення облікового запису;
|Система|
: Видаляє обліковий запис;
note right #lightpink
<b>Можлива 001.005</b>
end note
|Користувач|
stop
@enduml
| ID | ACCOUNT.MODIFY |
|:-----------------:|:-------------------------------------:|
| Назва | Змінити властивості облікового запису |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Зміна властивостей облікового запису |
| Виключні ситуації | 001.005 Користувач не ідентифікований |
@startuml
|Користувач|
start
: Натискає на кнопку редагування облікового запису;
|Система|
: Виводить інтерфейс для редагування облікового запису;
note right #lightpink
<b>Можлива 001.005</b>
end note
|Користувач|
: Вказує бажані зміни властивостей облікового запису;
: Натискає на кнопку внесення змін до властивостей облікового запису;
|Система|
: Змінює властивості облікового запису;
|Користувач|
stop
@enduml
| ID | SURVEY.LINK.CREATE |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:|
| Назва | Додати посилання на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач авторизований у системі |
| Результат | Нове посилання на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
@startuml
|Користувач|
start
: Натискає кнопку створення посилання на опитування;
|Система|
: Виводить налаштування для нового посилання;
note right #lightpink
<b>Можливі 001.005, 001.006, 001.008</b>
end note
|Користувач|
: Вводить налаштування для нового посилання;
: Натискає на кнопку створення посилання;
|Система|
: Створює нове посилання;
|Користувач|
stop
@enduml
| ID | SURVEY.LINK.DELETE |
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Видалити посилання на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач авторизований у системі |
| Результат | Видалення посилання на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує |
@startuml
|Користувач|
start
: Натискає кнопку видалення посилання;
|Система|
: Виводить кнопку підтвердження видалення посилання;
|Користувач|
: Натискає на кнопку підтвердження видалення посилання;
|Система|
: Видаляє посилання;
note right #lightpink
<b>Можливі 001.005, 001.006, 001.008, 001.009</b>
end note
|Користувач|
stop
@enduml
| ID | SURVEY.LINK.MODIFY |
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Змінити властивості посилання на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач авторизований у системі |
| Результат | Зміна властивостей посилання на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує |
@startuml
|Користувач|
start
: Натискає кнопку редагування властивостей посилання;
|Система|
: Виводить налаштування для обраного посилання;
note right #lightpink
<b>Можливі 001.005, 001.006, 001.008, 001.009</b>
end note
|Користувач|
: Вводить юажані зміни властивостей посилання;
: Натискає на кнопку збереження властиностей посилання;
|Система|
: Змінює властивості посилання;
|Користувач|
stop
@enduml
| ID | USER.CREATE_SURVEY |
|:-----------------:|:--------------------------------------------------------------------------------------------------------:|
| Назва | Створити опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Створене опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.007 Користувач ввів неприпустимі символи в назві опитування |
@startuml
|Користувач|
start
: Переходить на сторінку створення опитування;
note right #lightpink
<b>Можлива 001.005</b>
end note
|Система|
: Виводить інтерфейс створення опитування;
|Користувач|
: Задає інформацію про запитання та тип опитування;
: Натискає кнопку збереження опитування;
|Система|
: Створює опитування;
note right #lightpink
<b>Можлива 001.007</b>
end note
: Виводить посилання на проходження опитування;
|Користувач|
stop
@enduml
| ID | USER.DELETE_SURVEY |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:|
| Назва | Видалити опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Відсутність опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
@startuml
|Користувач|
start
: Натискає на кнопку видалення опитування;
|Система|
: Виводить запит на підтвердження видалення опитування;
|Користувач|
: Натискає на кнопку підтвердження видалення опитування;
|Система|
: Видаляє опитування;
note right #lightpink
<b>Можливі 001.005, 001.006, 001.008</b>
end note
|Користувач|
stop
@enduml
| ID | USER.GET_SURVEY_RESULT |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:|
| Назва | Переглянути відповіді на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Інформація про відповіді на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
@startuml
|Користувач|
start
: Натискає на кнопку перегляду відповідей на опитування;
|Система|
: Виводить інформацію про відповіді на опитування;
note right #lightpink
<b>Можливі 001.005, 001.006, 001.008</b>
end note
|Користувач|
stop
@enduml
| ID | USER.LOGOUT |
|:-----------------:|:----------------------------------------:|
| Назва | Скинути дані про ідентифікацію в системі |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Користувач не ідентифікований в системі |
| Виключні ситуації | 001.005 Користувач не ідентифікований |
@startuml
|Користувач|
start
: Натискає на кнопку виходу з облікового запису;
|Система|
: Скидає інформацію про ідентифікацію користувача;
note right #lightpink
<b>Можлива 001.005</b>
end note
|Користувач|
stop
@enduml
| ID | USER.MODIFY_SURVEY |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:|
| Назва | Редагувати опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Змінене опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
@startuml
|Користувач|
start
: Переходить на сторінку редагування опитування;
|Система|
: Виводить інтерфейс редагування опитування;
note right #lightpink
<b>Можливі 001.005, 001.006, 001.008</b>
end note
|Користувач|
: Задає інформацію про зміни в опитуванні;
: Натискає кнопку збереження змін в опитуванні;
|Система|
: Змінює опитування;
|Користувач|
stop
@enduml
| ID | USER.STAT_SURVEY |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:|
| Назва | Переглянути властивості опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Інформація про властивості опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
@startuml
|Користувач|
start
: Натискає на кнопку перегляду інформації про опитування;
|Система|
: Виводить інформацію про опитування;
note right #lightpink
<b>Можливі 001.005, 001.006, 001.008</b>
end note
|Користувач|
stop
@enduml
| ID | USER.TAKE_ANON_SURVEY |
|:-----------------:|:------------------------------------:|
| Назва | Пройти анонімне опитування |
| Учасники | Користувач, система |
| Передумови | Відсутні |
| Результат | Запис відповідей на опитування |
| Виключні ситуації | 001.006 Запитане опитування не існує |
@startuml
|Користувач|
start
: Переходить на сторінку проходження опитування;
|Система|
: Виводить перелік запитань опитування;
note right #lightpink
<b>Можлива 001.006</b>
end note
|Користувач|
: Вводить відповіді на запитання;
: Натискає кнопку надсилання відповідей;
|Система|
: Записує відповіді на опитування;
note right #lightpink
<b>Можлива 001.006</b>
end note
: Виводить прощальне повідомлення;
|Користувач|
stop
@enduml
| ID | USER.TAKE_NAMED_SURVEY |
|:-----------------:|:-----------------------------------------------------------------------------:|
| Назва | Пройти поіменне опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Запис відповідей на опитування та відомості про користувача |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує |
@startuml
|Користувач|
start
: Переходить на сторінку проходження опитування;
|Система|
: Виводить перелік запитань опитування;
note right #lightpink
<b>Можливі 001.005, 001.006</b>
end note
|Користувач|
: Вводить відповіді на запитання;
: Натискає кнопку надсилання відповідей;
|Система|
: Записує відповіді на опитування та відомості про користувача;
note right #lightpink
<b>Можлива 001.006</b>
end note
: Виводить прощальне повідомлення;
|Користувач|
stop
@enduml