Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

Этап 6: Проектирование развёртывания и инфраструктуры

Цель: Определить, как система будет развёрнута и как будет работать в целевой среде.

Задачи:

  • Выбор хостинга (собственные серверы, облако, аренда).

  • Проектирование топологии сети (DMZ, внутренние сегменты).

  • Определение требований к аппаратному обеспечению (CPU, RAM, диск).

  • Планирование резервного копирования и восстановления.

  • Проектирование масштабирования (горизонтальное, вертикальное).

  • Настройка балансировки нагрузки.

  • Проектирование мониторинга и логирования.

Результаты: Схема развёртывания, спецификация оборудования, план резервного копирования.

4. Документирование на этапе проектирования

Основные документы, создаваемые на этапе проектирования:

Документ

Содержание

Технический проект (ТП)

Описание архитектуры системы, состава подсистем, выбранных технологий.

Пояснительная записка

Обоснование принятых проектных решений.

Схема архитектуры

Графическое представление компонентов и связей.

Спецификация API

Описание всех доступных API-методов.

Схема базы данных

ER-диаграммы, даталогическая модель, SQL-скрипты.

Диаграммы классов (UML)

Для ООП-проектов.

Макеты интерфейсов

Wireframes и mockups.

Описание пользовательских сценариев

Use Cases.

План тестирования (начальный)

Стратегия тестирования, основанная на архитектуре.

План развёртывания

Инструкции по установке и настройке.

5. Методологии и подходы к проектированию

5.1. Структурный подход

  • Основан на алгоритмической декомпозиции.

  • Использует диаграммы потоков данных (DFD), структурные карты.

  • Характерен для процедурных языков.

5.2. Объектно-ориентированный подход

  • Основан на объектной декомпозиции.

  • Использует UML (Unified Modeling Language) — унифицированный язык моделирования.

  • Диаграммы UML: классов, последовательности, состояний, деятельности, компонентов, развёртывания.

  • Стандарт для современных систем.

5.3. Сервис-ориентированный подход (SOA)

  • Система строится как набор слабосвязанных сервисов.

  • Акцент на интерфейсах и протоколах взаимодействия.

5.4. Проектирование, управляемое предметной областью (DDD)

  • Сложные системы проектируются вокруг бизнес-логики.

  • Вводится понятие предметной области, ограниченных контекстов, сущностей, объектов-значений, агрегатов, репозиториев.

5.5. Domain-Driven Design (DDD)

  • Entity — объект с уникальным идентификатором (например, Пользователь).

  • Value Object — объект, определяемый только своими атрибутами (например, Адрес).

  • Aggregate — кластер связанных объектов, рассматриваемый как единое целое (например, Заказ с его позициями).

  • Repository — механизм доступа к агрегатам.

  • Domain Service — сервис, содержащий бизнес-логику, не привязанную к конкретной сущности.

6. Пример: Проектирование интернет-магазина (продолжение)

Этап 1. Системное проектирование

  • Выбрана трёхуровневая архитектура: фронтенд (React), бэкенд (Django REST Framework), БД (PostgreSQL).

  • Система разделена на модули: каталог, корзина, заказы, пользователи, админка.

  • Взаимодействие: фронтенд общается с бэкендом через REST API.

Этап 2. Проектирование БД

  • Выделены сущности: Category, Product, User, Cart, CartItem, Order, OrderItem.

  • Построена ER-диаграмма.

  • Таблицы нормализованы до 3НФ.

  • Созданы SQL-скрипты.

Этап 3. Проектирование UI/UX

  • Созданы карты пользовательских путей: "поиск товара → добавление в корзину → оформление заказа".

  • Разработаны wireframes всех основных страниц.

  • Дизайнер подготовил цветные макеты в Figma.

Этап 4. Проектирование классов и API

  • Определены основные модели Django (классы Python).

  • Спроектированы сериализаторы для API.

  • Создана спецификация OpenAPI для всех эндпоинтов:

    • GET /api/products/ — список товаров.

    • GET /api/products/{id}/ — детальная информация.

    • POST /api/cart/items/ — добавить в корзину.

    • POST /api/orders/ — создать заказ.

Этап 5. Проектирование интеграции

  • Определена интеграция с платёжным шлюзом (например, Stripe или YooKassa).

  • Описан формат запросов и обработка вебхуков.

Этап 6. Проектирование развёртывания

  • Выбран облачный хостинг (например, Яндекс.Облако).

  • Спроектирована схема: балансировщик → несколько экземпляров бэкенда → одна БД.

  • Запланировано резервное копирование БД ежедневно.