Skip to content

Пример описания архитектуры системы 1С по модели C4

License

Notifications You must be signed in to change notification settings

ivanmolodec/c4-1c-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Пример описания архитектуры системы 1С по модели C4

License Stars GitHub issues OpenYellow

Диаграммы как код

Подход является составной частью принципа "Архитектура как код", позволяя создавать несколько диаграмм архитектуры программного обеспечения из единой модели при помощи программных языков моделирования. Одной из таких моделей является C4 (Context Container Component Code). Данный пример реализован на двух программных языках моделирования: DSL Structurizr и PUML.

Модель C4

Модель С4 довольно трудно полноценно использовать для продумывания архитектуры системы. Особенно если мы говорим о архитектуре уровня ERP или, например, доработок типовых конфигураций. Существующие слои предлагается использовать в следующей интерпритации.

  • Исходный код на DSL
  • Исходный код на PUML

L1 - System Context (System Landscape) - Интеграционный ландшафт

Слой, на котором отображается как система взаимодействует с пользователями и другими внешними системами. По умолчанию в системный контекст входят только пользователи и системы, которые непосредственно взаимодействуют с основной системой. Если нам нужно видеть системы и пользователей, которые влияют на систему опосредованно, можно использовать вид System Landscape (Системный ландшафт), в котором будут отображены все системы, описанные в модели. Описание кода L1

Пример диаграммы системного контекста сгенерированной Structurizr

image

Пример диаграммы системного контекста сгенерированной PlantUML

image

Пример диаграммы системного ландшафта сгенерированной Structurizr

image

Пример диаграммы системного ландшафта сгенерированной PlantUML

image

L2 - Container - Подсистемы

В рамках описания архитектуры системы на платформе 1С контейнерами предлагается считать подсистемы конфигурации. При наличии большого количества подсистем и отсутствия требований к описанию каждой подсистемы можно объединять их в блоки (например, все подсистемы БСП в одном контейнере). Описание кода L2

Пример диаграммы контейнеров (подсистем) сгенерированной Structurizr

image

Пример диаграммы контейнеров (подсистем) сгенерированной PlantUML

image

L3 - Component - Объекты конфигурации

На слое компонентов детализируется состав объектов в подсистеме и описывается их взаимодействие. Компонентом является объект метаданных. Описание кода L3

Пример диаграммы компонентов (объектов) сгенерированной Structurizr

image

Пример диаграммы компонентов (объектов) сгенерированной PlantUML

image

L4 - Code - Код/Структуры данных

Не используется, но можно на этом уровне сделать принципиальное описание структуры общих модулей или ER-диаграммы объектов из слоя компонентов.

Описание кода L4

Дополнительные инструменты визуализации диаграмм

В случае описания небольшой системы/подсистемы можно использовать Mermaid - инструмент для визуализации диаграмм, ренедринг которого поддерживается напрямую в GitHub. Синтаксис похож на PUML с некоторыми отличиями и ограничениями.

C4Context
title Example 1C C4 - System Context

Person(SystemUser1, "Пользователь-исполнитель")
Person(SystemUser2, "Пользователь-руководитель")
System(System1C, "Система на платформе 1С")
System(OtherSystem1, "Внешняя система 1")
System(OtherSystem2, "Внешняя система 2")

Rel(OtherSystem1, System1C, "Передача данных по НСИ", "AMQP")
Rel(System1C, OtherSystem2, "Передача остатков по складам", "HTTPS")
Rel_D(SystemUser2, System1C, "Смотрит отчеты")
Rel_U(SystemUser1, System1C, "Вводит данные")

Loading

Заимствования

1ce-icons-for-plantuml

About

Пример описания архитектуры системы 1С по модели C4

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages