УП.05 — Разработка модели архитектуры ИС на примере "Интернет-магазин"

Для ознакомления со списком лекций, перейдите по ссылке.

Цель

Спроектировать и отобразить графически основные компоненты системы, их взаимодействие и место в общей структуре.

1. Выбор типа архитектуры

Для веб-приложений, таких как интернет-магазин, наиболее распространена трехуровневая (трехзвенная) архитектура. Она обеспечивает модульность, масштабируемость и безопасность.

2. Декомпозиция архитектуры на модели (диаграммы)

Создаем несколько взаимосвязанных моделей:

Модель 1: Контекстная диаграмма (Диаграмма окружения)

Показать взаимодействие системы с внешними системами и субъектами:

Модель 2: Компонентная диаграмма (Логическая архитектура)

Основные программные модули и связи между ними:

Модель 3: Физическая архитектура (Деплоймент-диаграмма)

Реальные компоненты системы на серверах:

flowchart TD
    subgraph Internet [Интернет]
        direction LR
        A1[Пользователи]
        A2[Администраторы]
    end

    subgraph DMZ [Демилитаризованная зона]
        B1[Балансировщик нагрузки]
    end

    subgraph InternalNetwork [Внутренняя сеть]
        subgraph WebTier [Веб-уровень]
            C1[Веб-сервер 1]
            C2[Веб-сервер 2]
        end

        subgraph AppTier [Уровень приложений]
            D1[Сервер приложений 1]
            D2[Сервер приложений 2]
        end

        subgraph DataTier [Уровень данных]
            E1[Кластер БД]
            E2[Сервер кеша]
        end
    end

    A1 --> B1
    A2 --> B1
    B1 --> C1
    B1 --> C2
    C1 --> D1
    C2 --> D2
    D1 --> E1
    D2 --> E2

Модель 4: Модель данных (ER-диаграмма)

Структура базы данных — основные сущности и связи:

erDiagram
    USERS {
        int id PK
        string email
        string password_hash
        string name
    }

    PRODUCTS {
        int id PK
        string name
        text description
        decimal price
        int category_id FK
    }

    CATEGORIES {
        int id PK
        string name
    }

    ORDERS {
        int id PK
        int user_id FK
        datetime order_date
        string status
        decimal total_amount
    }

    ORDER_ITEMS {
        int id PK
        int order_id FK
        int product_id FK
        int quantity
        decimal price
    }

    USERS ||--o{ ORDERS : "places"
    CATEGORIES ||--o{ PRODUCTS : "contains"
    ORDERS ||--o{ ORDER_ITEMS : "includes"
    PRODUCTS }o--o{ ORDER_ITEMS : "in"

Оформление в отчете по УП.05

Эта работа показывает ваше понимание, как реализовать архитектуру на практике.