Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Розроблення функціональних вимог до системи

Модель прецедентів

У цьому розділі представлена модель прецедентів (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

Схема використання для адміністратора

Ця діаграма демонструє функції, які доступні лише адміністратору системи для управління та конфігурації.

@startuml
actor "Адміністратор" as Admin

usecase "acc_manip\nКерування обліковими\n записами користувачів" as ManipAccount
usecase "source_manip\nКерування джерелами інформації" as ManipSource

usecase "delete_account\nВидалення облікового запису\n користувача" as DeleteAccount
usecase "add_source\nДодавання нового джерела" as AddSource
usecase "add_rights\nНадання додаткових прав\n користувачу" as GrantPermissions
usecase "delete_source\nВидалення джерела" as DeleteSource

Admin --> ManipAccount
DeleteAccount .u.> ManipAccount: <<extends>>
GrantPermissions .u.> ManipAccount: <<extends>>

Admin --> ManipSource
AddSource .u.> ManipSource: <<extends>>
DeleteSource .u.> ManipSource: <<extends>>
@enduml

Сценарії використання для користувача

Реєстрація

ID:user_register
НАЗВА:Реєстрація користувача
УЧАСНИКИ:Користувач, система
ПЕРЕДУМОВИ:Користувач не має облікового запису в системі
РЕЗУЛЬТАТ:Користувач має акаунт
ВИКЛЮЧНІ СИТУАЦІЇ: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

Авторизація

ID:user_login
НАЗВА:Авторизація користувача
УЧАСНИКИ:Користувач, система
ПЕРЕДУМОВИ:Користувач вже має обліковий запис в системі
РЕЗУЛЬТАТ:Користувач авторизований у системі
ВИКЛЮЧНІ СИТУАЦІЇ:wrong_password Введений хибний пароль
no_user Користувач не зареєстрований у системі
ОСНОВНИЙ СЦЕНАРІЙ:1. Користувач тисне на кнопку "Увійти"
2. Користувач отримує поля для вводу даних і вводить пароль та логін для свого облікового запису
3. Користувач натискає кнопку "Увійти" і відсилає дані системі
4. Система авторизує користувача (можливі wrong_password та no_user)
@startuml
|Користувач|
start
:Користувач натискає на кнопку "Увійти";
|Система|
:Система отримує запит на авторизацію;
:Система надсилає форму для авторизації;
|Користувач|
:Користувач отримує форму \nдля авторизації і заповнює її;
:Користувач натискає на кнопку "Увійти";
|Система|
:Система отримує дані з форми;
:Система перевіряє дані користувача;
note right #ffaaaa
wrong_password
no_user
end note
:Система надає користувачу доступ \nдо його облікового запису;
|Користувач|
:Користувач отримує доступ \nдо свого облікового запису;
stop;
@enduml

Пошук та фільтрація даних

ID:media_discover
НАЗВА:Пошук та фільтрація даних
УЧАСНИКИ:Користувач, система
ПЕРЕДУМОВИ:Користувач виконав авторизацію в системі
РЕЗУЛЬТАТ:Користувач отримав потрібну інформацію, що була зібрана і проаналізована системою
ВИКЛЮЧНІ СИТУАЦІЇ:no_data За запитом нічого не знайдено
ОСНОВНИЙ СЦЕНАРІЙ:1. Користувач обирає потрібні йому фільтри та тисне на кнопку "Пошук"
2. Система починає пошук медіа контенту в базі за вказаними фільтрами (можлива no_data)
3. Система повертає рехультат пошуку користувачеві
@startuml
|Користувач|
start
:Користувач натискає на кнопку "Пошук";
|Система|
:Система отримує запит на пошук;
:Система надсилає форму з фільтрами \nдля більш детального пошуку;
|Користувач|
:Користувач отримує форму \nдля пошуку і заповнює її;
:Користувач натискає на кнопку "Пошук";
|Система|
:Система отримує дані з форми;
:Система здійснює пошук інформації \nза вказаними фільтрами;
note right #ffaaaa
no_data
end note
:Система формує звіт по знайденій інформації;
:Система відправляє користувачу сформований звіт;
|Користувач|
:Користувач отримує звіт по інформації, \nяку хотів знайти;
stop;
@enduml

Сценарії викристання для адміністратора

Надання додаткових прав

ID:add_rights
НАЗВА:Надати додаткові права користувачу
УЧАСНИКИ:Адміністратор, користувач, система
ПЕРЕДУМОВИ:Користувач потребує додаткові права в системі
РЕЗУЛЬТАТ:Користувач отримує додаткові права в системі
ВИКЛЮЧНІ СИТУАЦІЇ:user_not_found Корисувача не знайдено в системі
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

Додання нового джерела

ID:add_source
НАЗВА:Додати нове джерело інформації в систему
УЧАСНИКИ:Адміністратор, система
ПЕРЕДУМОВИ:Адміністратор хоче додати нове джерело інформації в систему
РЕЗУЛЬТАТ:В систему успішно додано нове джерело інформації
ВИКЛЮЧНІ СИТУАЦІЇ: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

Видалення облікового запису користувача

ID:delete_account
НАЗВА:Видалити обліковий запис користувача
УЧАСНИКИ:Адміністратор, система
ПЕРЕДУМОВИ:Певний обліковий запис користувача має бути видалений з системи
РЕЗУЛЬТАТ:Обліковий запис видалено з системи
ВИКЛЮЧНІ СИТУАЦІЇ:delete_deny Адміністратор відхиляє запит на видалення облікового запису
already_deleted Обліковий запис був видалений з системи раніше
ОСНОВНИЙ СЦЕНАРІЙ:1. Адміністратор отримує запит на видалення облікового запису (можлива delete_deny)
2. Адміністратор дає згоду на видалення облікового запису
3. Система перевіряє наявність облікового запису користувача (можлива already_deleted)
4. Система видаляє обліковий запис користувача
@startuml
|Адміністратор|
start
:Адміністратор отримує запит \nна видалення облікового запису;
note left #ffaaaa
delete_deny
end note
:Адміністратор дає згоду \nна видалення облікового запису;
:Адміністратор робить запит \nна видалення облікового запису;
|Система|
:Система отримує запит \nна видалення облікового запису;
:Система перевіряє наявність \nоблікового запису користувача;
note right #ffaaaa
already_deleted
end note
:Система видаляє \nобліковий запис користувача;
|Адміністратор|
stop;
@enduml