Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект / Лабы_Итог_Финал.docx
Скачиваний:
0
Добавлен:
12.03.2026
Размер:
3.87 Mб
Скачать

2.3. Нефункциональные требования

В таблице 5 указаны нефункциональные требования к производительности.

Таблица 5 - Требования к производительности

Параметр

Значение

Комментарий

Время отклика UI

≤ 2 секунд

Для 95% запросов

Время загрузки изображения

≤ 5 секунд

При скорости интернета 5 Мбит/с

Одновременных пользователей

100

На бесплатном тарифе PythonAnywhere

Пропускная способность

1000 запросов/час

Максимальная нагрузка

Время обработки запроса

≤ 200 мс

Для API endpoints

Требования к надежности:

  • Доступность системы: 98.5% в рабочее время (9:00-21:00)

  • Время восстановления после сбоя: ≤ 30 минут

  • Сохранность данных: 100% (резервное копирование раз в сутки)

  • Потеря данных при сбое: 0

Требования к безопасности:

  • Аутентификация: логин/пароль, хэширование

  • Защита от атак: встроенная защита Django

  • Валидация файлов: проверка MIME-типа и расширения

  • Ограничение загрузок: не более 10 файлов в минуту с одного IP

Требования к удобству использования (UX):

  • Обучение новичка: ≤ 5 минут

  • Интуитивный интерфейс: Bootstrap 5 компоненты

  • Адаптивность: поддержка мобильных устройств (≥ 320px)

  • Поддержка браузеров: Chrome 80+, Firefox 75+, Safari 14+

2.4. Бизнес-требования

Целевая аудитория:

  • Фотографы-любители

  • Дизайнеры для портфолио

  • Студенты для учебных проектов

  • Блогеры для хранения медиа

Экономические показатели:

  • Стоимость эксплуатации: 0 (бесплатный хостинг)

  • Масштабируемость: до 1000 пользователей без изменения архитектуры

2.5. Технические требования

Требования к программному обеспечению

Серверная часть:

  • Python 3.9 или выше

  • Django 4.2.7

  • Pillow 10.0.0

  • PostgreSQL

Клиентская часть:

  • Bootstrap 5.1.3

  • Современный браузер с поддержкой HTML5

  • JavaScript

2.6. Требования к аппаратному обеспечению

Минимальная конфигурация для разработки:

  • Процессор: 2 ядра, 2 ГГц

  • ОЗУ: 4 ГБ

  • Диск: 10 ГБ свободного места

  • Интернет: 10 Мбит/с

Конфигурация для хостинга (PythonAnywhere бесплатный тариф):

  • Дисковое пространство: 512 МБ

  • ОЗУ: 512 МБ

  • CPU: ограничено 100 операций в секунду

2.7. Требования к интерфейсам

Внешние интерфейсы:

  • REST API

  • SMTP для отправки email (восстановление пароля)

Внутренние интерфейсы:

  • База данных через Django ORM

  • Файловая система для хранения изображений

  • Кэширование через локальную память

2.8. Требования к данным

Форматы данных:

  • Изображения: PNG

  • Метаданные: JSON в базе данных

  • Логи: текстовые файлы, ротация ежедневно

3. Архитектура системы

Для начала составим бизнес процесс нашей системы (рисунок 1).

Рисунок 1 – Бизнес-процесс

Используем трехуровневую клиент-серверную архитектуру. На рисунке 2 представлены основные компоненты архитектуры.

Рисунок 2 – Компоненты архитектуры системы

Система построена на основе трёхуровневой (трехзвенной) клиент-серверной архитектуры, что обеспечивает логическое разделение уровней представления, бизнес-логики и данных. Такое разделение упрощает разработку, масштабирование, сопровождение и обеспечение безопасности системы.

Ниже представлена визуальная схема архитектуры (рисунок 3) и описание каждого уровня.

Рисунок 3 – Архитектура системы

Уровень представления (Presentation Layer)

Пользователь взаимодействует с системой через веб-браузер или мобильное приложение.

Пользовательский интерфейс предоставляет следующие функциональные возможности:

  • просмотр ленты изображений;

  • поиск изображений по ключевым словам, категориям и тегам;

  • добавление изображений в избранное;

  • публикация собственных изображений;

  • взаимодействие с контентом (лайки, комментарии).

Уровень представления не содержит бизнес-логики и взаимодействует с системой исключительно через HTTP-запросы к серверу бизнес-логики (backend).

Уровень бизнес-логики (Business Logic)

Уровень бизнес-логики представлен серверным приложением (Backend Web API), которое обрабатывает все запросы от клиентов.

Функции уровня бизнес-логики включают:

  • аутентификацию и авторизацию пользователей (логин, пароль);

  • обработку пользовательских запросов;

  • управление изображениями и пользовательским контентом;

  • взаимодействие с базой данных;

  • загрузку медиафайлов в объектное хранилище.

При запросе контента сервер бизнес-логики выполняет поиск и обработку метаданных изображений, включая их описание, категории, теги и URL медиафайлов. Сервер бизнес-логики передаёт медиафайлы напрямую.

Уровень данных (Data Layer)

Уровень данных включает в себя следующие компоненты: