Программная инженерия
Для моделирования ИТ-систем используют три основных подхода: универсальный язык UML, структурные ER-диаграммы (для баз данных) и иерархическую модель C4 с уровнями от контекста до кода. Справочники UML, ER и C4 располагаются на вкладке Программная инженерия.

UML
Unified Modeling Language (UML) — это стандартизированный язык для визуального моделирования систем, который используется для разработки программного обеспечения и других сложных систем. UML включает в себя набор диаграмм, каждая из которых служит для отображения различных аспектов системы. Поддерживаются следующие типы диаграмм UML:
- Диаграмма классов
- Диаграмма компонентов
- Диаграмма развертывания
- Диаграмма активности
- Диаграмма последовательности
- Диаграмма состояний
- Диаграмма коллаборации
- Диаграмма случаев использования
- Диаграмма информационных потоков
- Диаграмма пакетов
- Диаграмма профиля.
ER-диаграммы
Entity-Relationship (ER) диаграммы — это инструмент моделирования данных, который используется для проектирования баз данных. Они позволяют моделировать сущности данных, связи между ними, их атрибуты для дальнейшего создания таблиц реляционной СУБД.
С4
C4 (Context, Containers, Components, Code) — это нотация для визуализации и документирования архитектуры программного обеспечения через четыре уровня абстракции, от общего контекста системы до деталей реализации.
Дорожная карта (Roadmap)
Дорожная карта (Roadmap) — это инструмент стратегического планирования, который визуализирует эволюцию системы, продукта или технологического стека во времени.
UML
Unified Modeling Language (UML) — это язык моделирования, разработанный для визуализации, спецификации, конструирования и документирования программных систем. UML был разработан в 1990-х годах с целью объединения различных методов объектно-ориентированного проектирования в единый стандартный язык, который мог бы быть использован для описания как программного обеспечения, так и других систем. UML предоставляет универсальный и гибкий инструмент для моделирования и проектирования сложных систем. Он поддерживает множество аспектов, позволяя моделировать как структуру, так и поведение системы, и может быть использован на различных стадиях жизненного цикла разработки программного обеспечения.
Цели UML
Основной целью UML является обеспечение универсального средства для описания архитектуры программного обеспечения и других систем, включая их структуры, поведение и взаимодействие. UML позволяет разработчикам и аналитикам создать понятные модели, которые помогают в проектировании, разработке и поддержке программных систем.
Применение UML
UML используется на различных стадиях разработки программного обеспечения, начиная с анализа требований и проектирования до реализации и тестирования. Модели, созданные с помощью UML, помогают в документировании системы и обеспечивают четкое представление о её архитектуре и функциональности.
Основные элементы UML
Основные элементы UML представлены в таблице 1.
Диаграммы UML
Язык UML включает в себя несколько ключевых элементов и типов диаграмм, которые позволяют моделировать различные аспекты системы. Основные типы диаграмм UML представлены в таблице 2.
| Тип диаграммы | Описание |
|---|---|
| Диаграмма классов | Представляет классы, их атрибуты, методы и связи между ними, такие как ассоциации, наследование и агрегация. |
| Диаграмма компонентов | Показывает компоненты системы и их связи, а также развертывание этих компонентов на физическом уровне. |
| Диаграмма развертывания | Отображает развертывание программных компонентов на аппаратных узлах и связи между этими узлами. |
| Диаграмма активности | Показывает последовательность действий, поток управления и взаимодействие между активностями в системе. |
| Диаграмма последовательности | Показывает порядок сообщений и взаимодействий между объектами во временной последовательности. |
| Диаграмма состояний | Отображает состояние объекта, переходы между состояниями и события, которые приводят к этим переходам. |
| Диаграмма коллаборации | Отображает взаимодействие между объектами или компонентами в системе, акцентируя внимание на их взаимосвязях. |
| Диаграмма случаев использования | Показывает функции или цели системы с точки зрения её пользователей и взаимодействие между ними. |
| Диаграмма информационных потоков | Показывает, как информация перемещается между различными компонентами системы и как она используется. |
| Диаграмма пакетов | Отображает организацию элементов модели в логические группы или пакеты, показывая их зависимости и связи. |
| Диаграмма профиля | Позволяет определять и применять специализированные профили для расширения стандартных элементов UML. |
ER
ER-диаграмма (Entity-Relationship Diagram) — это инструмент для моделирования данных, используемый для визуального представления сущностей, их атрибутов и связей между ними. Она служит основой для проектирования реляционных баз данных и помогает понять структуру данных и их взаимосвязи. В программе реализована нотация ER диаграммы «Crow’s foot». Основные компоненты ER-диаграммы
- Сущности (Entities): представляют собой объекты или концепции, которые имеют значение для системы и для которых нужно хранить данные. Например, в системе управления складом сущностями могут быть: Товар, Склад, Транспортное средство.
- Атрибуты (Attributes): описывают характеристики или свойства сущностей. Например, для сущности Товар атрибутами могут быть Артикул, Название, Вес, Габариты, Категория.
- Связи (Relationships): показывают, как сущности взаимодействуют друг с другом. Например, связь между Товаром и Складом может обозначать, что товар хранится на складе.
Классы связей на ER-диаграмме
В ER-диаграммах связи (или отношения) между сущностями могут быть различными в зависимости от того, сколько записей одной сущности может быть связано с записями другой сущности. В таблице 3 приведено подробное описание каждого типа связи.
C4
Нотация C4 — это созданный Саймоном Брауном язык для моделирования архитектуры программного обеспечения, который использует идею иерархии представлений для упрощения понимания модели. Основная цель C4 — предоставить набор согласованных диаграмм, которые описывают статическую структуру системы, начиная с высокоуровневого контекста и последовательно углубляясь в детали. Нотация C4 предлагает простую, интуитивно понятную архитектуру программной системы. C4 используется на этапах проектирования, документирования и сопровождения программных систем.
Элементы нотации C4
Элементы нотации C4 представлены в таблице 3.
Структура и уровни нотации C4
Нотация C4 построена вокруг четырех основных типов диаграмм, каждый из которых соответствует своему уровню детализации и предназначен для своей аудитории. Описания типов диаграмм C4 представлены в таблице 3
| Тип диаграммы | Целевая аудитория | Описание и ключевые вопросы |
|---|---|---|
| Диаграмма контекста (1-й уровень) | Все заинтересованные стороны | Показывает систему в масштабе. Что делает система, кто её использует и с какими внешними системами она взаимодействует. |
| Диаграмма контейнеров (2-й уровень) | Архитекторы, разработчики | Раскрывает высокоуровневую технологическую архитектуру. Из каких крупных приложений (контейнеров) состоит система и как они взаимодействуют? |
| Диаграмма компонентов (3-й уровень) | Разработчики, архитекторы | Детализирует один контейнер. Из каких компонентов состоит конкретное приложение и как они между собой связаны? |
| Диаграмма кода (4-й уровень) | Разработчики | Показывает детальную реализацию компонента. Какие классы, интерфейсы используются и как они связаны? |