У цьому розділі представлена модель прецедентів (use case model), яка візуалізує та деталізує функціональні можливості Системи аналізу медіа-контенту з точки зору взаємодії з користувачами та адміністраторами.
@startuml
top to bottom direction
actor "Користувач" as User
actor "Адміністратор" as Admin
Admin -u-|> User
usecase "user_register\nРеєстрація" as Registration
usecase "user_login\nАвторизація" as Login
usecase "media_search\nПошук даних за фільтрами" as SearchAndFilter
User -l-> Registration
User -r-> Login
User -u-> SearchAndFilter
usecase "acc_manip\nКерування обліковими\n записами користувачів" as ManipAccount
usecase "source_manip\nКерування джерелами інформації" as ManipSource
Admin --> ManipAccount
Admin --> ManipSource
@enduml
Ця діаграма відображає основні функціональні можливості, доступні звичайному користувачеві системи.
@startuml
actor "Користувач" as User
usecase "user_register\nРеєстрація" as Registration
usecase "user_login\nАвторизація" as Login
usecase "media_search\nПошук даних за фільтрами" as SearchWithFilters
usecase "pass_rec\nВідновлення паролю" as PasswordRecovery
User --> Registration
User --> Login
PasswordRecovery .u.> Login: <<extends>>
User --> SearchWithFilters
@enduml
user_exists Обліковий запис з такими даними вже існує
wrong_credentials Неправильно введені дані
ОСНОВНИЙ СЦЕНАРІЙ:
1. Користувач тисне на кнопку "Зареєструватися"
2. Користувач отримує поля для вводу даних і вводить реєстраційні дані для свого облікового запису
3. Користувач натискає кнопку "Зареєструватися" і відсилає дані системі (можлива wrong_credentials)
4. Система реєструє користувача (можлива user_exists)
@startuml
|Користувач|
start
:Користувач натискає на кнопку "Зареєструватися";
|Система|
:Система отримує запит на реєстрацію;
:Система надсилає форму для реєстрації;
|Користувач|
:Користувач отримує форму \nдля реєстрації і заповнює її;
:Користувач натискає на кнопку "Зареєструватися";
|Система|
:Система отримує дані з форми;
:Система перевіряє дані користувача;
note right #ffaaaa
wrong_credentials
user_exists
end note
:Система реєструє новий обліковий запис;
|Користувач|
:Користувач отримує доступ \nдо свого нового облікового запису;
stop;
@enduml
2. Користувач отримує поля для вводу даних і вводить пароль та логін для свого облікового запису
3. Користувач натискає кнопку "Увійти" і відсилає дані системі
4. Система авторизує користувача (можливі wrong_password та no_user)
@startuml
|Користувач|
start
:Користувач натискає на кнопку "Увійти";
|Система|
:Система отримує запит на авторизацію;
:Система надсилає форму для авторизації;
|Користувач|
:Користувач отримує форму \nдля авторизації і заповнює її;
:Користувач натискає на кнопку "Увійти";
|Система|
:Система отримує дані з форми;
:Система перевіряє дані користувача;
note right #ffaaaa
wrong_password
no_user
end note
:Система надає користувачу доступ \nдо його облікового запису;
|Користувач|
:Користувач отримує доступ \nдо свого облікового запису;
stop;
@enduml
Користувач отримав потрібну інформацію, що була зібрана і проаналізована системою
ВИКЛЮЧНІ СИТУАЦІЇ:
no_data За запитом нічого не знайдено
ОСНОВНИЙ СЦЕНАРІЙ:
1. Користувач обирає потрібні йому фільтри та тисне на кнопку "Пошук"
2. Система починає пошук медіа контенту в базі за вказаними фільтрами (можлива no_data)
3. Система повертає рехультат пошуку користувачеві
@startuml
|Користувач|
start
:Користувач натискає на кнопку "Пошук";
|Система|
:Система отримує запит на пошук;
:Система надсилає форму з фільтрами \nдля більш детального пошуку;
|Користувач|
:Користувач отримує форму \nдля пошуку і заповнює її;
:Користувач натискає на кнопку "Пошук";
|Система|
:Система отримує дані з форми;
:Система здійснює пошук інформації \nза вказаними фільтрами;
note right #ffaaaa
no_data
end note
:Система формує звіт по знайденій інформації;
:Система відправляє користувачу сформований звіт;
|Користувач|
:Користувач отримує звіт по інформації, \nяку хотів знайти;
stop;
@enduml
already_has_rights Користувач вже має додаткові права в системі
rights_deny Адміністратор відмовляє користувачеві в наданні додаткових прав у системі
ОСНОВНИЙ СЦЕНАРІЙ:
1. Користувач надає запит на отримання додаткових прав в системі
2. Адміністратор отримує запит користувача на отримання додаткових прав в системі (можлива rights_deny)
3. Адміністратор надає додаткові права користувачу в системі (можливі user_not_found та already_has_rights)
4. Користувач отримує додаткові права в системі
@startuml
|Користувач|
start
:Користувач надає запит адміністратору \nна отримання додаткових прав в системі;
|Адміністратор|
:Адміністратор отримує запит користувача \nна отримання додаткових прав в системі;
note right #ffaaaa
rights_deny
end note
:Адміністратор надає користувачу \nдодаткові права в системі;
note right #ffaaaa
user_not_found
already_has_rights
end note
|Користувач|
:Користувач отримує додаткові права в системі;
stop;
@enduml
Адміністратор хоче додати нове джерело інформації в систему
РЕЗУЛЬТАТ:
В систему успішно додано нове джерело інформації
ВИКЛЮЧНІ СИТУАЦІЇ:
invalid_source Джерело не дійсне
already_added_source Джерело вже було додано в систему раніше
ОСНОВНИЙ СЦЕНАРІЙ:
1. Адміністратор створює нове джерело інформації, натиснувши на кнопку "Додати джерело"
2. Адміністратор вводить посилання на джерело
3. Система проводить перевірку на валідність джерела (можливі invalid_source та already_added_source)
4. Система додає нове джерело до списку доступних джерел інформації
@startuml
|Адміністратор|
start
:Адміністратор натискає на кнопку "Додати джерело";
|Система|
:Система отримує запит \nна додання нового джерела;
:Система надсилає форму \nдля додання нового джерела;
|Адміністратор|
:Адміністратор отримує форму \nдля додання нового джерела;
:Адміністратор у формі вводить посилання на джерело \nта певну додаткову інформацію про це джерело;
:Адміністратор натискає на кнопку "Додати джерело";
|Система|
:Система отримує дані з форми;
:Система перевіряє джерело на валідність;
note right #ffaaaa
invalid_source
already_added_source
end note
:Система додає нове джерело \nдо списку доступних джерел інформації;
|Адміністратор|
stop;
@enduml