Диаграмма системного контекста показывает, с какими программными системами взаимодействует наша и какие действующие лица ее используют.
P.S. Внешние для вас программные системы начинаются там, где заканчивается ваша зона ответственности как команды разработки 🙂
Создается достаточно просто - в центре сама программная система, вокруг прочие участники диаграммы + взаимодействия между получившимися элементами.
Выглядит просто
🟢помогает понять, что за систему мы создаем/создали + кто и как ее использует
🟢может быть удобным стартом для диалога между техническими и "нетехническими" специалистами
🟢в одном месте собирает информацию о существующих межсистемных взаимодействиях
На мой вкус, за кажущейся простотой скрывается удобный инструмент для диалога с бизнесом и смежными командами. Им же обычно вообще не особо важно, что у вас там за сервисы и архитектура, а важен именно этот, очень высокоуровневый вид.
Элементы, присутствующие на диаграмме: программные системы и действующие лица.
Наличие технических деталей: нет. На ней мы не указываем технологии, порты, протоколы, etc.
Аудитория: Технические и нетехнические специалисты внутри и вне вашей команды.
Рекомендуется ли к созданию автором модели: Да.
Про диаграмму системного контекста и (микро)сервисы
Тут в комментариях случился небольшой диалог о С4 в больших финтехах :)
Нюанс, который я сейчас опишу, мне кажется для них очень полезным.
Т.к. границы программной системы - это границы зоны ответственности вашей команды, то, допустим, вы отвечаете в большой системе за один или несколько сервисов. Прочими занимаются другие команды разработки.
Тогда вы можете принять только этот ваш один или несколько сервисов за вашу программную систему на диаграмме контекста!
Тогда в центре будет элемент про ваши сервисы, а вокруг - сервисы прочих команд как внешние программные системы.
Честно-честно, так можно, пруфы тут - https://c4model.com/abstractions/microservices