You are on page 1of 22

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ БІОРЕСУРСІВ І

ПРИРОДОКОРИСТУВАННЯ УКРАЇНИ

Кафедра комп’ютерних наук


Факультет інформаційних технологій
Дисципліна «Архітектура і проектування програмного забезпечення»

Лабораторна робота №4
Найважливіші архітектурні стилі для проектованої системи: багатошарова
архітектура

Виконав: студент групи ІПЗ-


21011бск
Журавльов Микита
Перевірив: Баранова Т. А.
Мета роботи: в результаті виконання роботи дослідити та визначити
особливості побудови та застосування багатошарової архітектури проектованої
системи.
Вступ:
Програми для редагування фото та відео є незамінними інструментами в
сучасній цифровій епоці. Вони надають користувачам можливість творчо
виразитися, покращити якість зображень та відеоматеріалів, створювати
захоплюючі візуальні ефекти та перетворювати звичайні медіафайли в шедеври.
Завдяки цим програмам, навіть недосвідчені користувачі можуть легко
ретушувати фотографії, обрізати та об'єднувати відеоролики, додавати ефекти,
текст та звукову доріжку. Програми для редагування фото та відео стають
незамінними інструментами для фотографів, відеографів, медіа-компаній,
маркетологів та всіх, хто хоче створювати вражаючі візуальні матеріали для
особистого використання або комерційних цілей.
Однією з головних технологій, що використовується, є комп'ютерний зір.
Комп'ютерний зір включає в себе такі технології як обробка зображень,
розпізнавання обличь, виявлення об'єктів, відстеження руху та багато інших.
Використання цих технологій дозволяє програмам для редагування фото та
відео автоматично виявляти обличчя, аналізувати контент, застосовувати
різноманітні фільтри та ефекти, а також виконувати редагування на основі
алгоритмів обробки зображень. Крім того, такі програми можуть
використовувати технології штучного інтелекту, машинного навчання та
комп'ютерного зору для розпізнавання об'єктів, автоматичного виправлення
дефектів та реалістичного створення спеціальних ефектів.
На основі програмного продукту InShot Pro або Photoshop, я створив
перелік основних функцій власної системи:
• Редагування фото: Набір інструментів для корекції зображень,
включаючи регулювання яскравості, контрастності, насиченості,
виправлення кольорової палітри, видалення червоних очей та
ретушування дефектів.
• Обрізка та масштабування: Можливість обрізати фото та відео в
потрібний розмір або співвідношення сторін. Здатність
масштабувати зображення без втрати якості.
• Додавання ефектів та фільтрів: Бібліотека готових ефектів,
фільтрів та стилізацій, які можна застосовувати до фото та відео для
створення бажаного настрою та візуального ефекту.
• Текст та графічні елементи: Можливість додавати текстові блоки,
написи, водяні знаки, мітки часу та графічні елементи до фото та
відео.
• Ретушування та клонування: Інструменти для видалення
непотрібних об'єктів, ретушування шкіри, виправлення помилок та
клонування об'єктів на зображенні.
• Шари та маски: Можливість робити складніші зміни, додавати
шари, використовувати маски для контролю видимості та ефектів
на різних частинах зображення.
• Анімація та переходи: Функціонал для створення анімацій,
переходів та слайд-шоу з відео та фотографій.
• Колажі та монтаж: Можливість об'єднувати кілька фото та відео в
одну композицію, створювати колажі та

Перелік функціональних та нефункціональних вимог, що мають бути


реалізовані в ПЗ.

Функціональні вимоги:
• Додавання медіафайлів: Користувач повинен мати змогу додавати
медіафайли до системи редагування медіаданих. Це можуть бути
фотографії, відео, аудіо або інші типи медіа.
• Редагування медіафайлів: Користувач повинен мати змогу редагувати
медіафайли, включаючи обрізку, зміну розміру, кольорову корекцію,
накладання фільтрів тощо.
• Створення медіаколажів: Система повинна надавати можливість
створювати медіаколажі, комбінуючи декілька медіафайлів в одному
проекті.
• Додавання тексту до медіафайлів: Користувач повинен мати
можливість додавати текстові елементи до медіафайлів, такі як заголовки,
підписи або водяні знаки.
• Експорт медіафайлів: Користувач повинен мати змогу експортувати
змінені медіафайли в різних форматах, таких як JPEG, PNG, MP4 тощо.
• Збереження змін: Система повинна автоматично зберігати всі внесені
зміни в медіафайли, щоб користувач міг повернутися до попередніх
версій, якщо потрібно.
• Попередній перегляд змін: Користувач повинен мати можливість
попереднього перегляду змін, які він зробив до медіафайлів, щоб
впевнитися, що результат відповідає його очікуванням.
• Класифікація та категоризація медіафайлів: Система повинна
надавати можливість класифікувати та категоризувати медіафайли для
легшого пошуку і організації. Наприклад, застосовувати мітки, теги або
створювати альбоми.
• Пошук медіафайлів: Користувач повинен мати змогу швидко знаходити
потрібні медіафайли за допомогою функції пошуку. Пошук може
здійснюватися за назвою, ключовими словами, датою чи іншими
параметрами.
• Створення слайд-шоу: Система може надавати можливість створювати
слайд-шоу з медіафайлів, де зображення або відео автоматично
програватимуться в послідовності з встановленими переходами і
ефектами.
• Застосування фільтрів та ефектів: Система може надавати набір
фільтрів та ефектів, які користувач може застосовувати до своїх
медіафайлів для створення бажаного настрою або візуального ефекту.
• Автоматичне розпізнавання обличчя та об'єктів: Система може мати
функціонал автоматичного розпізнавання обличчя та об'єктів на
зображеннях або відео. Це може включати функції розпізнавання осіб,
мітки для об'єктів, аналіз емоцій тощо.
• Мультиплатформеність: Система може бути розроблена для підтримки
різних платформ, таких як Andorid, Windows, macOS, Linux, що
дозволяє користувачам використовувати її на різних операційних
системах.
Нефункціональні вимоги:
1. Мінімальні системні вимоги на стороні клієнта:
ОС: Microsoft Windows 8-11, Android 9;
Браузер: Google Chrome 56, Opera GX, Mozilla Firefox;
Процесор: Intel Pentium, AMD64 або кращі моделі;
Відеокарта: DirectX 9 і WDDM версій 1.0 і більше;
Об’єм оперативної пам’яті: 2 ГБ;
2. Мінімальні системні вимоги на стороні сервера:
ОС: Microsoft Windows 8-11, Linux Debian;
Інтернет канал: Не нижче 100 мегабит;
Процесор: Intel Xeon E5-2620 v3 або краще
Відеокарта: Nvidia RTX 3060 або Quadro K4400 і краще;
Об’єм оперативної пам’яті: 24 ГБ;
3. На формі реєстрації або входу на сайті можуть бути наступні поля та
елементи:

Для форми реєстрації:


• Ім'я: поле для введення повного імені користувача.
• Електронна пошта: поле для введення адреси електронної пошти
користувача.
• Пароль: поле для введення паролю, який буде використовуватись
для входу на сайт.
• Підтвердження паролю: поле для підтвердження паролю,
введеного у попередньому полі.
• Кнопка "Зареєструватися": для підтвердження реєстрації та
створення облікового запису.
Для форми входу:
• Електронна пошта: поле для введення адреси електронної пошти,
пов'язаної з обліковим записом.
• Пароль: поле для введення паролю, пов'язаного з обліковим
записом.
• Кнопка "Увійти" або "Увійти на сайт": для підтвердження входу
на сайт.
Додатково, на формі реєстрації або входу можуть бути також присутні:
• Посилання на "Забули пароль?": для відновлення забутого
паролю шляхом надсилання інструкцій на вказану електронну
пошту користувача.
• Посилання на "Створити новий обліковий запис": для переходу
на форму реєстрації, якщо користувач ще не має облікового запису
на сайті.
• Поле для підтвердження згоди з правилами та умовами:
користувач може позначити це поле, щоб підтвердити, що він
ознайомився з правилами використання сайту або сервісу.
• Посилання на сторінку з політикою конфіденційності:
користувач може натиснути на це посилання, щоб ознайомитися з
політикою конфіденційності сайту або сервісу.
• Соціальні медіа кнопки: можуть бути додані кнопки або
посилання для входу або реєстрації через соціальні мережі, такі як
Facebook, Google, Twitter тощо.
• CAPTCHA: захисний механізм, який вимагає від користувача
введення перевірочного коду або розв'язання простої завдання для
підтвердження, що він не є роботом або автоматизованим
програмним засобом.
4. На головній сторінці веб-сервісу можуть бути наступні категорії
елементів і функціоналу:

Меню навігації:
• Домашня сторінка: перехід на головну сторінку сервісу.
• Редактор фото: перехід до інтерфейсу редагування фотографій.
• Редактор відео: перехід до інтерфейсу редагування відео.
• Шаблони: доступ до колекції готових шаблонів для фото і відео.
• Галерея: перегляд та організація збережених фото і відеофайлів.
• Профіль: управління особистими налаштуваннями та обліковим
записом користувача.
• Допомога/FAQ: доступ до довідкової інформації, часто задаваних
питань та підтримки.

Категорія "Редактор фото":


• Інструменти редагування: панель з різноманітними
інструментами, такими як пензель, клонування, налаштування
кольору тощо.
• Фільтри і ефекти: доступ до набору фільтрів та ефектів для зміни
вигляду фотографій.
• Корекція кольору та світлоти: інструменти для налаштування
яскравості, контрастності, тону, насиченості тощо.
• Ретушування: можливості для видалення дефектів, згладжування
шкіри, виправлення помилок та інших маніпуляцій зображенням.

Категорія "Редактор відео":


• Таймлайн та шпалери: інтерфейс для редагування послідовності
відео, додавання шпалер та зміни часових масштабів.
• Триммер: інструмент для обрізки відеофрагментів і видалення
непотрібних сцен.
• Ефекти і переходи: набір візуальних ефектів та переходів, які
можуть бути застосовані до відеофрагментів.
• Додавання аудіо: можливість додавання музики або звукових
ефектів до відео.
• Текст і заголовки: інструменти для додавання текстових
елементів, заголовків, надписів та підписів до відео.
• Кольорова корекція: налаштування кольорової палітри,
яскравості, контрастності та інших параметрів відео.
• Збереження та експорт: можливість зберігати відео у різних
форматах та роздільної здатності, а також експортувати відео для
публікації на соціальних медіа або інших платформах.
Категорія "Шаблони":
• Готові дизайни: колекція шаблонів для швидкого створення
стилізованих фотографій та відео з популярними ефектами.
• Рекламні шаблони: набір шаблонів для створення рекламних
матеріалів, банерів або постерів.
• Соціальні медіа шаблони: шаблони, оптимізовані для створення
контенту для соціальних мереж, таких як Instagram, Facebook,
YouTube тощо.
• Шаблони презентацій: готові шаблони для створення професійних
презентацій з відео- та фотоматеріалами.
Категорія "Галерея":
• Перегляд збережених фото і відеофайлів: можливість переглядати
списки збережених фотографій і відеофайлів у вигляді мініатюр або
списку.
• Організація та сортування: функції для створення альбомів або
категорій, розміщення фото і відео у папках, маркування тегами чи
кольоровими позначками для легшого пошуку і організації.
• Видалення та відновлення: можливість видалення непотрібних
фотографій або відеофайлів та відновлення їх з кошика в разі
потреби.
• Доступ до хмарних сховищ: можливість підключення до різних
хмарних сховищ, таких як Google Drive або Dropbox, для зберігання
і синхронізації файлів.

Категорія "Профіль":
• Особиста інформація: можливість перегляду та редагування
особистих даних користувача, таких як ім'я, електронна пошта,
фото тощо.
• Налаштування облікового запису: можливість зміни пароля,
вибору налаштувань приватності, мови інтерфейсу та інших
параметрів облікового запису.
• Статистика використання: відображення інформації про
використання сервісу, таку як кількість редагованих фото чи відео,
тривалість користування тощо.
• Підписки та оплата: можливість керування підписками на
додаткові функції або преміум-плани, перегляд історії платежів,
оновлення або скасування підписки.

Категорія "Допомога/FAQ":
• Часто задавані питання: перелік найпоширеніших запитань та
відповідей, які можуть допомогти користувачам знайти відповіді на
свої запитання.
• Інструкції та посібники: надання детальних посібників та
інструкцій по використанню різних функцій та інструментів
сервісу.
• Форма зворотного зв'язку: можливість зв'язатися з підтримкою
або командою розробників сервісу для вирішення технічних питань
або надання фідбеку.
• Оновлення та новини: повідомлення про оновлення сервісу, нові
функції або важливі оголошення для користувачів.
• Відеоуроки: набір навчальних відео, які демонструють різні
техніки та прийоми редагування фото і відео.

Інші елементи та функціонал:


• Мовні налаштування: можливість вибору мови інтерфейсу сервісу
для зручного користування.
• Пошукове поле: інтерактивне поле для швидкого пошуку фото,
відео, шаблонів або довідкової інформації.
• Кнопки соціальних медіа: можливість швидкого поширення
створених робіт на популярних платформах соціальних медіа.
• Підтримка різних пристроїв: адаптація інтерфейсу та функціоналу
для різних пристроїв, включаючи комп'ютери, планшети та
мобільні телефони.

Архітектура запропонованої системи та її опис.


Архітектура програми обробки та редагування медіаданих, яку було
згадано раніше, є клієнт-серверною. Ця архітектура є широко
використовуваною у сучасному програмуванні і включає в себе два основних
компоненти: клієнт і сервер. Клієнт - це програма, яка працює на комп'ютері
або мобільному пристрої користувача і забезпечує інтерфейс для взаємодії з
програмою. Сервер - це програма, яка запускається на віддаленому комп'ютері і
обробляє запити від клієнтів, а потім надсилає результати назад клієнту.
Модель клієнт-серверної взаємодії визначається на основі розподілу
обов'язків між клієнтом та сервером. У цій моделі можна виділити три рівні
операцій:

Користувацький рівень (Presentation Layer):


• Відповідальність клієнта: надання інтерфейсу користувача, включаючи
введення даних, відображення результатів та інтерактивну взаємодію з
програмою.
• Відповідальність сервера: надсилання та отримання даних з клієнта,
обробка користувацьких запитів та підготовка результатів для
відображення.

Бізнес-логіка (Application Logic):


• Відповідальність клієнта: передача параметрів запитів до сервера та
обробка проміжних результатів, які не потребують спеціалізованої
обробки на сервері.
• Відповідальність сервера: обробка бізнес-логіки, включаючи
обчислення, перевірку даних, виконання запитів до бази даних та інші
операції, пов'язані з основним функціоналом програми.

Дані (Data Layer):


• Відповідальність клієнта: збереження локальних копій даних, які
використовуються для взаємодії з сервером, наприклад, кешування даних
або локальна база даних.
• Відповідальність сервера: доступ до бази даних або інших джерел
даних, збереження та витягування інформації, необхідної для обробки
запитів клієнта.

У дворівневій клієнт-серверній архітектурі передбачається взаємодія між


двома програмними модулями - клієнтським і серверним. Залежно від того, як
розподіляються функції між ними, можна виділити наступні типи:
Товстий клієнт (Fat Client):
• У товстому клієнті значна частина логіки та обробки даних знаходиться
на клієнтському модулі.
• Клієнтський модуль може мати власну базу даних або кешувати певну
кількість даних з сервера.
• Сервер відповідає за надання доступу до основних даних та бізнес-логіки,
але значна частина обробки відбувається на клієнтському модулі.

Тонкий клієнт (Thin Client):


• У тонкому клієнті основна частина логіки та обробки даних знаходиться
на серверному модулі.
• Клієнтський модуль слугує в основному для відображення інтерфейсу
користувача та взаємодії з користувачем.
• Сервер відповідає за обробку бізнес-логіки, доступ до бази даних та
надання результатів для відображення на клієнтському модулі.

Трирівнева клієнт-серверна архітектура передбачає розділення


прикладного рівня від управління даними. На прикладному рівні
зосереджується логіка додатку, яка відокремлена від управління даними.
Програми проміжного рівня можуть функціонувати на спеціалізованих
серверах додатків, але їх також можна запускати під керуванням звичайного
веб-сервера. На третьому рівні здійснюється управління даними сервером
даних.
Щодо випадку програми редагування фото та відео, клієнтська частина може
бути представлена мобільним додатком, який дозволяє користувачу зробити
фото або відео, або завантажити вже існуючі файли з пристрою. Після цього,
користувач може виконувати різноманітні операції редагування, такі як
обрізання, зміна розміру, фільтри, ефекти, налаштування кольору тощо.
Коли користувач задовольнений результатом редагування, він може
надіслати змінений файл на сервер для подальшої обробки. Серверна
частина програми може включати алгоритми комп'ютерного зору та обробки
зображень для виконання складніших завдань, таких як видалення об'єктів,
розпізнавання облич, стабілізація відео тощо.
Після обробки на сервері, змінений файл може бути повернутий до клієнта
для перегляду та подальшого використання. Клієнтська частина також може
включати можливості збереження результуючого файлу на пристрої
користувача або його безпосереднє поширення через соціальні мережі або
інші канали.
Загалом, клієнт-серверна архітектура дозволяє ефективно розподілити
завдання між клієнтською та серверною частинами системи, забезпечуючи
швидкість та надійність обробки файлів редагування фото та відео.

Опис обґрунтування розміщення модулів за шарами.

Загальноприйнятим стилем архітектури для програмної системи редагування


фото та відео є багатошарова архітектура, також відома як n-рівнева
архітектура. Цей стиль широко використовується в розробці програмного
забезпечення і включає чотири основні рівні: презентаційний, бізнесовий,
рівень забезпечення збереження інформації та базу даних.
У програмній системі редагування фото та відео, багатошарова архітектура
дозволяє розділити функціональність на окремі блоки, які називаються
шарами. Кожен шар групує модулі, що надають повний набір функцій.
Кожен шар має своє завдання та відповідальність, і взаємодія між шарами
здійснюється через стандартизовані інтерфейси.
Розміщення модулів за шарами в програмній системі редагування фото та
відео є доброю практикою, оскільки дозволяє розбити програму на логічні
частини, які можуть бути розроблені та тестовані окремо. Це має наступні
переваги:

❖ Модульність: Розміщення модулів за шарами дозволяє розробляти та


тестувати програмне забезпечення у вигляді компонентів, що
працюють самостійно. Це полегшує розвиток та підтримку системи,
оскільки зміни в одному модулі не впливають на інші.
❖ Замінність: Розміщення модулів за шарами дозволяє замінювати
окремі модулі без впливу на решту системи. Це корисно, коли
необхідно змінити або покращити певні функції редагування фото та
відео, не змінюючи інших модулів.
❖ Переносимість: Розміщення модулів за шарами сприяє легкості
перенесення системи з одного середовища розробки до іншого. Модулі
можуть бути розроблені з використанням стандартних інтерфейсів та
загальних бібліотек, що спрощує перенос системи.
❖ Тестування: Розміщення модулів за шарами дозволяє зосередитися на
тестуванні кожного модуля окремо, спрощуючи виявлення та
виправлення помилок. Це полегшує розвиток високоякісної програми
редагування фото та відео.
❖ Підвищення продуктивності: Розміщення модулів за шарами може
зменшити час виконання системи, оскільки окремі модулі можуть бути
оптимізовані з використанням більш ефективних алгоритмів.
За таких умов, розміщення модулів за шарами в програмній системі
редагування фото та відео має декілька переваг. По-перше, це дозволяє
покращити якість та ефективність програми. Розміщення модулів за шарами
також сприяє створенню більш простої та зрозумілої архітектури програми, що
полегшує розуміння її функціональності та підтримку. Крім того, це може
зменшити кількість залежностей між модулями та покращити можливості
розширення програми.
Конкретно в програмі редагування фото та відео, модулі можуть бути
розміщені за шарами, що відповідають за такі функції як завантаження та
підготовка даних, обробка та аналіз фото та відео, застосування редагування та
ефектів, збереження змінений зображень у відповідному форматі та інші
функції. Розміщення модулів за шарами варто здійснювати з урахуванням
функцій та потреб програми, кращих практик програмування та забезпечення
якості коду.
Такий підхід допомагає створити більш організовану архітектуру програми,
зменшити її складність та спростити процес тестування. Розміщення модулів за
шарами є важливою технікою при проектуванні програм для редагування фото
та відео, оскільки воно дозволяє логічно групувати функціональні блоки
програми та покращує організацію коду.
Побудуємо схему, котра змоделює розміщення модулів за чотирма рівнями, а
саме презентаційного, бізнесового, збереження даних і база даних (Рис.1)
Рис.1. Схематичне зображення n-рівневої архітектури
Опис рівнів
На Презентаційному рівні програма отримує вхідне фото або відео та
перетворює його в цифровий формат. На цьому рівні також можуть
застосовуватися попередні обробки, такі як корекція кольору, обрізка та
ретушування зображень.
Бізнесовий рівень включає аналіз фото та відео за допомогою різних методів
обробки зображень та машинного навчання. Наприклад, програма може
визначати об’єкти, обличчя або сцени на зображенні та застосовувати
відповідні фільтри та ефекти.
Рівень збереження даних включає збереження редагованих фото та відео в
певному форматі або як вихідний файл. Цей рівень також може забезпечувати
можливість збереження робочих сесій та налаштувань користувача для
майбутнього використання.
База даних відповідає за збереження метаданих, таких як дата зйомки, розмір
файлу та параметри зображення. Вона також забезпечує можливість організації
та пошуку фото та відео за різними категоріями або ключовими словами.
Опис модулів
Презентаційний рівень
❖ Модуль редагування фото:

• Корекція кольору: Користувач може відрегулювати насиченість,


яскравість, контрастність та тон кольорів зображення. Він може
використовувати регулятори або вказувати значення вручну для
досягнення потрібного ефекту.
• Ретушування: Ця функція дозволяє користувачу видаляти
недоліки та дефекти на фотографії, такі як плями, подразнення
шкіри або дрібні дефекти. Він може використовувати інструменти
клонування, реставрації або ретуші, щоб зробити зображення
бездоганним.
• Обрізка: Користувач може обрізати зображення, видаляючи
непотрібні частини або змінюючи його формат. Він може вказувати
конкретні пропорції або вибирати заздалегідь встановлені розміри.
• Поворот: За допомогою цієї функції користувач може повернути
фотографію на будь-який кут. Він може вибирати між 90-
градусними обертами або вручну встановлювати бажаний кут
повороту.
Цей модуль відповідає за основні функції редагування та обробки фотографій.
Він надає користувачеві можливість виконувати різноманітні операції для
покращення зображення. Користувач може корегувати кольори, яскравість та
контраст, виправляти червоні очі, видаляти непотрібні об'єкти або додавати
ефекти та фільтри. Крім того, модуль дозволяє проводити обрізку та поворот
фотографій, виправляти перспективу та вирівнювати зображення.

❖ Модуль редагування відео:

• Обрізка: Користувач може обрізати відео, видаляючи непотрібні


фрагменти з початку, середини або кінця. Він може вказувати точні
часові мітки або відділяти фрагменти за допомогою візуальних
інструментів.
• Злиття кадрів: Ця функція дозволяє користувачу об'єднувати різні
кадри в єдине відео. Він може вибирати порядок кадрів, додавати
переходи між ними, щоб забезпечити плавний перехід між сценами.
Користувач може також налаштовувати тривалість кожного кадру
та використовувати спеціальні ефекти для створення вражаючих
переходів.
• Додавання ефектів: В цьому модулі користувач може
використовувати різноманітні ефекти для покращення візуальної
привабливості відео. Він може додавати фільтри, які змінюють
колірну палітру або стиль зображення, а також застосовувати
спеціальні ефекти, такі як чорно-біле зображення, сепія,
розмивання та багато інших.
• Налаштування звуку: Ця функція дозволяє користувачу
налаштовувати аудіо відео. Він може регулювати гучність,
видаляти шуми, додавати аудіо ефекти або накладати фонову
музику на відеоряд. Користувач може синхронізувати звук з відео
та виконувати точні настройки звукової доріжки.
Цей модуль забезпечує користувачеві можливість редагувати та обробляти
відео матеріали. Він надає інструменти для обрізки відео, злиття різних кліпів,
додавання переходів між ними та налаштування звуку. Користувач може
застосовувати ефекти до відео, включаючи кольорові фільтри, насиченість,
розмите зображення та багато іншого. Модуль також дозволяє користувачеві
виконувати редагування аудіо доріжок, включаючи зміну гучності, додавання
фонової музики та налаштування звукових ефектів.

❖ Модуль візуалізації та інтерфейсу користувача:

• Елементи управління: Інтерфейс модуля візуалізації та


інтерфейсу користувача містить різноманітні елементи управління,
такі як кнопки, розкривні списки, перемикачі та прапорці. Ці
елементи дозволяють користувачу вибирати опції та виконувати
різні дії.
• Меню: Модуль включає меню, яке містить список доступних
функцій та налаштувань. Користувач може обирати потрібні опції з
меню, яке зазвичай розташоване у верхній частині інтерфейсу. Це
дозволяє зручно навігувати по різних функціях та швидко
здійснювати потрібні дії.
• Панелі інструментів: У модулі присутні панелі інструментів, які
містять набір інструментів для редагування та обробки фото та
відео. Ці панелі містять кнопки та інші елементи керування, які
дозволяють вибирати потрібні інструменти та параметри для
редагування.
• Налаштування інтерфейсу: Користувач має можливість
налаштовувати інтерфейс модуля візуалізації та інтерфейсу
користувача відповідно до своїх вподобань. Він може змінювати
розташування елементів управління, налаштовувати вигляд панелей
інструментів, змінювати кольорову схему та розмір інтерфейсу. Це
дозволяє користувачу створити комфортне та зручне робоче
середовище.
• Збереження та експорт: Після завершення редагування фото чи
відео, модуль надає можливість зберегти результати роботи.
Користувач може обрати формат файлу (наприклад, JPEG для фото
або MP4 для відео) та вказати місце збереження. Крім того, модуль
може також підтримувати експорт в різні формати, що дозволяє
користувачу легко поділитися своїм редагованим контентом з
іншими.
• Інструменти керування проектом: В модулі присутні
інструменти для керування проектом, що дозволяють користувачу
зберігати, відкривати та організовувати свої робочі проекти. Це
може включати можливість створення папок, редагування назв та
описів проектів, а також впорядкування файлів у зручному порядку.

Цей модуль забезпечує інтерактивний інтерфейс для користувача, який


дозволяє зручно керувати процесом редагування фото та відео. Він включає
панелі інструментів, кнопки, меню та інші елементи управління, які
допомагають користувачеві вибирати потрібні опції та налаштування.
Інтерфейс модуля візуалізації та інтерфейсу користувача забезпечує зручну
навігацію між різними функціями програми, швидкий доступ до необхідних
інструментів та візуальну зворотну зв'язок, що дозволяє користувачу бачити
результати своїх дій у реальному часі.

Бізнесовий рівень
❖ Модуль фільтрації та обробки фото/відео:

• Вибір зображення або відео: Користувач може вибрати


зображення або відео, яке потребує фільтрації та обробки.
• Вибір фільтру або налаштування параметрів: Користувач може
вибрати готовий фільтр, наприклад, чорно-білий, сепія, винтаж, або
налаштувати параметри фільтру самостійно, такі як яскравість,
контрастність, насиченість тощо.
• Застосування фільтру: Обрані фільтри застосовуються до
зображення або відео, змінюючи їх вигляд або настрій.
• Обробка відео: Якщо вибрано відео, модуль дозволяє
встановлювати параметри обробки, такі як яскравість,
контрастність, розмите фону тощо, для різних часових проміжків
або між кадрами.

Цей модуль відповідає за фільтрацію та обробку фотографій та відео. Він надає


набір фільтрів та ефектів, які можна застосовувати до зображень з метою зміни
їх вигляду або створення спеціального настрою. Користувач може вибирати з
різних типів фільтрів, таких як чорно-білі, сепія, винтаж тощо, або
налаштовувати параметри фільтрів самостійно. Модуль також надає
можливість застосовувати обробку до відео, таку як насиченість, контрастність,
розмите фону тощо.

❖ Модуль додавання ефектів та фільтрів:

• Вибір зображення або відео: Користувач може вибрати


зображення або відео, до якого потрібно додати ефекти та фільтри.
• Вибір ефекту або налаштування параметрів: Користувач може
вибрати бажаний ефект або фільтр, наприклад, розмите тло, рамки,
переклади, переходи між кадрами тощо. Він також може
налаштувати параметри ефектів, які включають розмір, прозорість,
швидкість анімації тощо.
• Застосування ефекту: Обрані ефекти та фільтри додаються до
зображення або відео, змінюючи їх вигляд або створюючи
особливий стиль.
Цей модуль надає користувачеві набір ефектів та фільтрів, які можна додавати
до фотографій та відео з метою створення особливого стилю або настрою. Він
включає різні типи ефектів, такі як розмите тло, рамки, переклади, переходи
між кадрами тощо. Користувач може вибирати і налаштовувати ефекти згідно зі
своїми потребами та вподобаннями. Модуль також дозволяє застосовувати
ефекти до відео, змінюючи їх на різних часових проміжках або між кадрами.

❖ Модуль монтажу та композиції фото/відео:

• Вибір зображень або кадрів: Користувач може вибрати потрібні


зображення або кадри, які бажає включити до монтажу та
композиції проекту.
• Налаштування порядку та часових проміжків: Користувач може
встановити послідовність кадрів та їх часові проміжки. Він може
змінювати порядок, додавати або видаляти кадри, а також
встановлювати тривалість кожного кадру.
• Обрізка та розміщення: Модуль дозволяє користувачеві обрізати
кадри, вирізати непотрібні частини, а також налаштовувати їх
розмір та пропорції. Користувач може також встановлювати
розташування кадрів на сцені та їх масштаб.
• Додавання тексту та графічних елементів: Модуль надає
можливість додавати текстові елементи, водяні знаки, логотипи та
інші графічні об'єкти до фото або відео. Користувач може
налаштовувати їх розташування, розмір, кольори та анімацію
• Додавання переходів та зміна швидкості: Користувач може
додавати різні переходи між кадрами або сценами для створення
плавного переходу. Це можуть бути переходи типу затемнення,
зміна розміру, розмиття та інші. Крім того, модуль дозволяє
налаштовувати швидкість відтворення кадрів або змінювати часову
шкалу, що дозволяє створювати ефект уповільнення або
прискорення.
• Зміна звуку та додавання аудіо: Користувач може редагувати
звукову доріжку відео, включаючи зміну гучності, вирізання
частин, додавання звукових ефектів. Також модуль дозволяє
додавати окремі аудіо доріжки, такі як музика, голосовий коментар
чи звукові ефекти, і синхронізувати їх з відео.

Цей модуль відповідає за монтаж та композицію фотографій та відео. Він надає


користувачеві можливість об'єднувати різні зображення та кадри в один проект,
створюючи композицію. Користувач може регулювати порядок кадрів,
змінювати їх розміри, обрізка і вирізати непотрібні частини. Модуль також
надає можливість додавати текстові елементи, водяні знаки та інші графічні
об'єкти до фото та відео. Користувач може налаштовувати їх розташування,
розмір, кольори та анімацію. Модуль дозволяє виконувати монтажний процес,
збираючи різні кадри в послідовність та додавати переходи між ними, а також
налаштовувати швидкість відтворення, затримки та інші параметри.

Збереження даних
❖ Модуль збереження оригінальних файлів:

• Завантаження оригінального файлу: Коли користувач додає фото


або відео до програми, модуль приймає цей файл для подальшого
збереження.
• Створення копії оригінального файлу: Модуль створює точну
копію оригінального файлу та зберігає його на диску або в системі
зберігання.
• Забезпечення безпеки даних: Збережені оригінальні файли
захищаються від втрати або пошкодження шляхом зберігання їх в
безпечному місці, такому як зашифроване сховище або обліковий
запис користувача.

Цей модуль відповідає за збереження оригінальних файлів фото та відео


без будь-яких змін. При редагуванні, коли користувач завантажує фото
або відео до програми, модуль зберігає оригінальну копію цих файлів,
забезпечуючи їхню безпеку та збереження.

❖ Модуль збереження змінених версій фото/відео:

• Застосування змін до файлу: Після редагування фото або відео


користувачем, модуль отримує змінений файл для подальшого
збереження.
• Створення зміненої версії: Модуль створює копію зміненого
файла та зберігає його окремо від оригінального файла.
• Збереження змінених версій: Змінені версії файлів зберігаються
відокремлено від оригінальних файлів, щоб користувач міг
зберігати та використовувати їх в майбутньому без впливу на
оригінал.

Цей модуль відповідає за збереження змінених версій фото та відео після


редагування. Коли користувач застосовує різні ефекти, фільтри, обрізку,
кольорові корекції тощо до вихідних файлів, модуль зберігає ці змінені
версії. Це дозволяє користувачеві зберегти свою роботу та повернутися
до неї в майбутньому, не втрачаючи оригінальні дані.

❖ Модуль кешування та оптимізації доступу до даних:

• Кешування даних: Під час завантаження або редагування файлів,


модуль може створювати копії даних та зберігати їх у кеші для
швидкого доступу в майбутньому. Це може включати копіювання
фото або відео в оперативну пам'ять або на швидкий диск з метою
прискорення завантаження та обробки даних.
• Оптимізація доступу: Модуль може використовувати різні
алгоритми оптимізації доступу до даних, наприклад, кешування
популярних файлів або попереднє завантаження даних, що
ймовірно будуть використовуватися. Це дозволяє прискорити
процес завантаження та редагування файлів шляхом зменшення
часу, необхідного для доступу до них.
• Оптимізація ресурсів: Модуль виконує оптимізацію використання
ресурсів, таких як пам'ять та процесор, для забезпечення
ефективності роботи програми. Він може контролювати кількість
копій даних у кеші, видалювати непотрібні копії або управляти
пам'яттю, щоб запобігти перевантаженню системи.
• Поновлення кешу: Модуль може оновлювати кеш даних при зміні
або видаленні файлів користувачем. Це допомагає забезпечити
консистентність даних та уникнути використання застарілих копій
файлів, що були змінені або видалені ззовні.

Цей модуль відповідає за кешування та оптимізацію доступу до даних


фото та відео. Коли користувач відкриває або працює з файлами, модуль
може створити копії даних та зберігати їх у кеші для швидкого доступу в
майбутньому. Це поліпшує продуктивність програми, зменшує час
завантаження та обробки файлів, оскільки дані можуть бути використані з
кешу замість повторного завантаження зі збереження.

Бази даних

❖ Модуль управління метаданими фото/відео:

• Збір метаданих: Модуль збирає інформацію про властивості


фото та відео файлів, такі як назва, дата створення, розмір,
тип файлу, параметри камери, GPS-координати та інші
важливі атрибути.
• Збереження метаданих: Зібрані метадані зберігаються в базі
даних, де вони можуть бути легко доступні для подальшого
управління та пошуку.
• Структурування метаданих: Метадані можуть бути
структуровані та організовані за різними категоріями або
тегами для полегшення пошуку та фільтрації файлів.
• Індексування метаданих: Модуль створює індекси, які
допомагають ефективно знаходити файли на основі різних
критеріїв, таких як ключові слова, дата, теги або інші
атрибути.
• Оновлення метаданих: При необхідності модуль дозволяє
оновлювати метадані файлів, наприклад, змінювати назву,
додавати або видаляти теги, апаратні налаштування та інші
атрибути.
Цей модуль відповідає за управління метаданими фото та відео
файлів. Він забезпечує збір та збереження інформації про
властивості файлів, такі як назва, дата створення, розмір, тип
файлу, параметри камери, GPS-координати тощо. Метадані
зберігаються в базі даних і можуть бути структуровані та
індексовані для полегшення пошуку та управління фото та відео.

❖ Модуль індексування та пошуку фото/відео:

• Створення індексів: Модуль створює індекси, які


допомагають у швидкому та ефективному пошуку фото та
відео файлів. Це може включати індексацію за ключовими
словами, датою, тегами, параметрами камери та іншими
атрибутами.
• Збереження індексів: Створені індекси зберігаються в базі
даних для подальшого використання при пошуку файлів.
• Пошук файлів: Модуль здійснює пошук фото та відео файлів
на основі введених критеріїв. Він використовує створені
індекси для швидкого та точного знаходження файлів, що
задовольняють пошукові параметри. Користувач може
використовувати різні фільтри, ключові слова, дати або інші
атрибути, щоб точніше визначити результати пошуку.
• Представлення результатів: Знайдені файли
відображаються користувачеві у зручному форматі,
наприклад, списком або мініатюрними зображеннями.
Користувач може переглядати деталі про кожен файл, такі як
назва, розмір, метадані та іншу інформацію.
• Розширені можливості пошуку: Модуль може також
надавати розширені можливості пошуку, наприклад,
автоматичне розпізнавання образів або використання
алгоритмів машинного навчання для класифікації та
категоризації файлів за змістом. Це допомагає користувачеві
знайти файли, навіть якщо він не має точних критеріїв
пошуку.
• Взаємодія з результатами: Модуль надає можливість
користувачу взаємодіяти з результатами пошуку, наприклад,
переглядати, редагувати, видаляти або виконувати інші дії зі
знайденими файлами.

Цей модуль забезпечує індексування та пошук фото та відео файлів


у базі даних. Він створює індекси, які допомагають ефективно
знаходити файли на основі різних критеріїв, таких як ключові
слова, дата, теги або інші атрибути. Модуль використовує різні
алгоритми пошуку, що дозволяють швидко знаходити потрібні
файли у великих обсягах даних.

❖ Модуль забезпечення безпеки даних:

• Шифрування даних: Модуль застосовує механізми


шифрування до фото та відео файлів, щоб запобігти
несанкціонованому доступу до них. Він використовує
криптографічні алгоритми для перетворення даних в
зашифрований формат, який може бути розшифрований
тільки з використанням правильного ключа або пароля.
• Контроль доступу: Модуль контролює права доступу до
фото та відео файлів і забезпечує, щоб лише авторизовані
користувачі мали доступ до відповідних даних. Він
використовує систему аутентифікації та авторизації, де
кожному користувачеві присвоюються відповідні ролі та
права доступу.
• Резервне копіювання: Модуль виконує регулярні резервні
копії фото та відео файлів. Це дозволяє створити копії даних
і зберегти їх в безпечному місці, що забезпечує можливість
відновлення даних в разі випадкового видалення,
пошкодження або інших непередбачених подій.
• Моніторинг безпеки: Модуль моніторить активність
користувачів та системи з метою виявлення можливих загроз
безпеці. Він аналізує логи, спостерігає за підозрілими діями,
спробами несанкціонованого доступу або зміни даних. У разі
виявлення підозрілих активностей, модуль вживає заходів
для запобігання або виявлення вторгнень, таких як
блокування доступу, сповіщення адміністратора або
відновлення з резервних копій.
• Політики безпеки: Модуль дозволяє встановлювати та
керувати політиками безпеки для фото та відео даних. Це
включає встановлення вимог щодо складності паролів,
термінів дії сесій, обмежень доступу та інших правил
безпеки, що допомагають запобігти вразливостям і загрозам
безпеці даних.

Цей модуль відповідає за забезпечення безпеки даних фото та


відео. Він включає механізми шифрування, контролю доступу та
резервного копіювання, щоб забезпечити конфіденційність,
цілісність та доступність даних. Модуль може застосовувати
шифрування до файлів, щоб запобігти несанкціонованому доступу.
Він також виконує регулярні резервні копії, що дозволяє
відновлювати дані в разі випадкового видалення або пошкодження.
Крім того, модуль контролює права доступу до даних і забезпечує,
щоб лише авторизовані користувачі мали доступ до відповідних
даних. Це досягається шляхом встановлення рівнів доступу, ролей
користувачів та політик безпеки.

Висновок
Під час виконання лабораторної роботи були досліджені та визначені
особливості побудови та застосування багатошарової архітектури у програмній
системі для редагування фото та відео. Було описано, як буде виглядати
програмний продукт з використанням цієї архітектури та визначено переваги та
недоліки такої системи.

Щодо переваг, вже були визначені наступні:

❖ Модульність: розділення функціональності на окремі модулі спрощує


розробку, тестування та підтримку системи.
❖ Замінність: можливість заміни окремих модулів без впливу на решту
системи дозволяє легко розширювати та модифікувати функціональність.
❖ Переносимість: завдяки шаровій архітектурі, система може бути
ефективно перенесена на різні платформи та середовища.
❖ Спрощення тестування: кожен шар може бути протестований окремо, що
полегшує виявлення та виправлення помилок.
Однак, також існують деякі недоліки, які варто враховувати:

❖ Складність: розміщення модулів за шарами може збільшити складність


програми та зробити його менш зрозумілим для розробників.
❖ Збільшення кількості коду: кожен шар вимагає власного коду та
інтерфейсів для взаємодії з іншими шарами, що може призвести до
збільшення обсягу коду та зробити проект важчим для управління та
розвитку.
❖ Взаємодія між модулями: потребує добре спроектованої та зручної схеми
взаємодії, оскільки неправильно спроектована взаємодія може призвести
до проблем з виконанням програми та збільшенням кількості помилок.
❖ Виконання на повільних пристроях: багатошарова архітектура може
вимагати значних обчислювальних ресурсів та пам'яті, що може
становити проблему для виконання на повільних пристроях з
обмеженими ресурсами.

You might also like