💀
Второй курс РПО
Язык UML
Язык UML
  • Сложности при разработке программного обеспечения
  • Почему появилось ООП и в чём его смысл?
  • Как программировали до ООП и почему это стало проблемой?
  • Как появился ООП и почему он спас программирование
  • Как планировать код до его написания: ООАП
  • Системный анализ и моделирование: как понимать сложные системы
  • Что такое объекты?
  • Экскурс в Диаграммы
  • История развития языка UML
  • 56-я Практическая
  • Диаграмма развёртывания
  • Диаграмма сотрудничества
  • Паттерны - что это?
  • Для второкурсников
Powered by GitBook
On this page
  • Диаграмма развертывания (Deployment Diagram)
  • Что это такое?
  • Основные элементы:
  • Как записывать?
  • Простой пример:
  • Зачем это нужно?
  • Как чертить?

Диаграмма развёртывания

Диаграмма развертывания (Deployment Diagram)

Что это такое?

Это схема, которая показывает, как софт запускается в реальном мире: какие сервера, устройства и связи между ними. Если обычные UML-диаграммы говорят "что делать", то эта говорит "где это крутится".


Основные элементы:

  1. Узел (Node) – физическая или виртуальная машина, где что-то работает.

  2. Экземпляр узла (Node instance) – конкретный запущенный узел (например, один из множества серверов в кластере).

  3. Компонент (Component) – часть системы, например, сервер базы данных или веб-приложение.

  4. Экземпляр компонента (Component instance) – конкретный запущенный компонент.

  5. Интерфейс (Interface) – точка взаимодействия компонента с внешним миром.

  6. Объект (Object) – данные или сервисы, работающие в узле.

  7. Активный объект (Active object) – объект, который управляет процессами или потоками выполнения.

  8. Зависимость (Dependency) – обозначает зависимость одного элемента от другого.

  9. Связь (Connection) – соединение между элементами (например, HTTP или TCP/IP).

  10. Точка изгиба связей (Point) – позволяет корректировать изгибы линий для удобства чтения диаграммы.

  11. Комментарий (Note) – дополнительное описание на диаграмме.

  12. Коннектор комментария (Note connector) – линия, соединяющая комментарий с элементом.


Как записывать?

1. Узел (Node)

node [shape=box, style=filled, fillcolor=lightgray];
Server [label="Сервер"];

2. Экземпляр узла (Node instance)

node [shape=box, style=dashed];
Server1 [label="Сервер #1"];

3. Компонент (Component)

node [shape=component];
App [label="Веб-приложение"];

4. Интерфейс (Interface)

node [shape=ellipse];
API [label="API-интерфейс"];

5. Объект (Object)

node [shape=parallelogram];
Data [label="Файл конфигурации"];

6. Активный объект (Active object)

node [shape=doubleoctagon];
Process [label="Менеджер процессов"];

7. Зависимость (Dependency)

App -> Database [label="Использует"];

8. Связь (Connection)

Server -> App [label="HTTP"];

9. Комментарий (Note)

note [shape=note, style=filled, fillcolor=yellow];

Простой пример:

Допустим, у нас есть веб-приложение, которое хранит данные в базе. Это выглядит так:

  digraph DeploymentDiagram {
    rankdir=LR;
    node [shape=box, style=filled, fillcolor=lightgray];
    
    WebServer [label="Веб-сервер (Nginx)"];
    AppServer [label="Приложение (Node.js)"];
    Database [label="БД (PostgreSQL)"];
    
    WebServer -> AppServer [label="HTTP"];
    AppServer -> Database [label="SQL запросы"];
  }

Зачем это нужно?

  • Помогает разработчикам и девопсам понимать, где и как крутится код.

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

  • Улучшает коммуникацию в команде – не надо гадать, где живёт сервис.


Как чертить?

  1. Определи основные узлы (серверы, облака, базы).

  2. Расставь компоненты внутри узлов.

  3. Нарисуй связи между ними (чем общаются, по каким протоколам).

  4. Проверяй на понятность – если друг не врубился за минуту, надо упростить.

Previous56-я ПрактическаяNextДиаграмма сотрудничества

Last updated 2 months ago