Как составить контекстную диаграмму

Денис Бесков

Руководитель школы,
основной автор федерального профстандарта системного аналитика,
Certified Professional for Requirements Engineering

  • Зачем нужна

  • Как устроена

  • Как создавать

  • Как тестировать

  • Как применять

  • Происхождение

Контекстная диаграмма

Зачем нужна контекстная диаграмма?

Обсуждение и визуализация назначения и границ системы

Контекстная диаграмма прежде всего позволяет быстро, кратко и ёмко описать назначение и границы системы, выявить и устранить коллективные расхождения в их понимании, показать и договориться о её масштабе.

Быстрое выявление функциональных системных требований

Второе её назначение — служить источником для быстрой генерации первичного набора системных функциональных требований при необходимости проектирования системы не «сверху-вниз», от бизнес-модели, бизнес-требований, модели деятельности организации, требований заинтересованных лиц, модели использования, как предлагает нам системная инженерия, а «из середины».

Как устроена контекстная диаграмма

Контекстная диаграмма относится к категории диаграмм, описывающих систему на уровне «чёрного ящика» — а именно, только внешние свойства (в данном случае — потоки данных), но не содержание системы.

Контекстная диаграмма содержит 3 основных компонента:

  1. Проектируемый объект (например, система)
  2. Взаимодействующие с проектируемым объектом элементы окружения (группы пользователей, смежные системы)
  3. Потоки данных (исходящие и входящие)

Пример контекстной диаграммы для программной системы управления Заказами в ресторане:

Потоки данных могут передаваться между окружением и (программной) системой любым образом — с помощью графического пользовательского интерфейса (GUI), командной строки (CLI), программных вызовов (API), почтовых сообщений и т.д.

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

В стандартной форме не принято указывать виды интерфейсов взаимодействия и тем более протоколы, чтобы не усложнять диаграмму и не пытаться принимать вторичные решения, пока не приняты первичные.

Пример контекстной диаграммы для программной системы автоматизации Единого расчётного центра (ЕРЦ) коммунальных услуг:

Как создавать контекстную диаграмму

Контекстная диаграмма может разрабатываться в ходе рабочего семинара, в ходе серии интервью или на основе результатов серии интервью.

Контекстную диаграмму можно рисовать на маркерной доске, в среде проектирования или в онлайн-инструменте (Google Draw, Draw.io, Miro и т.д.). Мы рекомендуем маркерную доску или онлайн-инструмент с совместным редактированием.

Порядок разработки контекстной диаграммы на рабочем семинаре:

  1. Из числа заинтересованных лиц собирается рабочая группа (обычно от 3 до 5 человек)
  2. Рабочая группа фиксирует в центре диаграммы название конкретной системы
  3. Рабочая группа выдвигает и отображает группы пользователей, которые должны взаимодействовать с системой, обсуждает их перечень, дополняет его
  4. Рабочая группа выдвигает и отображает смежные системы, которые должны взаимодействовать с системой, обсуждает их перечень, дополняет его
  5. Рабочая группа последовательно проходит по каждому элементу окружения и описывает потоки данных, связывающие его с системой
  6. Рабочая группа проводит тестирование контекстной диаграммы, дополняя диаграмму по ходу тестирования

Для экономии времени участников тестирование можно производить 1-2 участниками, однако это ухудшает осведомлённость группы о найденных проблемах, поэтому мы не рекомендуем так делать.

Как тестировать контекстную диаграмму

Диаграмму можно тестировать 2-мя способами — через контроль соответствия входных и выходных данных системы или через сквозной устный сценарий использования системы.

Тестирование контекстной диаграммы с помощью парных соответствий

Контроль соответствия входных и выходных данных системы опирается на принцип (aka «Закон сохранения данных»), что если в систему попадают какие-то данные (входной поток), они должны как-то использоваться для как минимум одного выходного потока.

И наоборот, если есть выходной поток, то система либо должна генерировать эти данные согласно каким-то правилам (например, случайно) или формировать их на основе каких-то других входных данных.

Более формально парные соответствия можно проконтролировать через таблицу, например:

Тестирование контекстной диаграммы с помощью сквозного сценария

В зависимости от сложности системы, можно проводить неформальное или формальное тестирование диаграммы через сквозной сценарий её использования.

Как выглядит неформальное тестирование — один из участников семинара, опираясь на конкретные потоки данных и указывая их на диаграмме, рассказывает возможный сквозной сценарий использования системы, начиная с логически более ранних событий и продолжая последующими, например:

  1. Система загружает реестр пользователей из AD
  2. Администратор настраивает полномочия пользователей
  3. и т.д.

Фактически такой рассказ служит своеобразной «нарративной» формой изложения концепции (использования) системы, наколеночно, но тем не менее достаточно эффективно подменяет создание полной модели использования для целей контекстной диаграммы.

По ходу рассказа остальные участники помечают на диаграмме задействованные в сценарии потоки, дают свои комментарии, оперативно вносят изменения и дополнения в диаграмму. Очень часто в таком сценарии обнаруживаются пропущенные потоки данных.

При желании такой сквозной сценарий можно разработать и записать, сделав его приложением к контекстной диаграмме, иллюстрирующим текстом работу системы.

Как применять контекстную
диаграмму после её создания

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

Контекстная диаграмма не создаётся один раз и навсегда, она может эволюционировать в ходе проекта. Другое дело, что каждое изменение диаграммы по сути означает изменение рамок системы и должно внимательно отрабатываться проектной командой.

Выявление и контроль полноты (функциональных) системных требований

При создании системных требований возникает риск упустить что-то важное или наоборот, избыточно проработать очевидное.

Чтобы не упустить что-то важное среди системных функций, можно применять:

  1. Трассировку системных требований на требования заинтересованных лиц
  2. Модель использования системы (обычно в форме набора сценариев использования, use case’ов)
  3. Контекстную диаграмму системы

Контекстная диаграмма может эффективно использоваться для выявления первичного набора системных функциональных требований. Каждый поток данных на диаграмме по сути означает, подразумевает какую-то функцию.

Наибольшие гарантии даёт применение всех 3-х методов, однако контекстная диаграмма — это самый простой и дешёвый их них, поэтому часто стоит начинать проработку системных требований именно с неё.

Чтобы убедиться в том, что при выявлении первичного набора системных функциональных требований вы не упустили ни один из нарисованных потоков данных, бывает полезно развернуть потоки данных в таблицу, на которую потом страссировать порождённые ей требования:

Если выполнить все рекомендации статьи, то у вас может получиться такая схема трассировок:

В канонической форме не делают различий в том, как на диаграмме показываются группы пользователей и смежные системы, однако вы можете ввести собственные правила для большей наглядности, например, разный цветовой фон.

Откуда взялась контекстная диаграмма
и почему до сих пор актуальна

Похоже что контекстная диаграмма в той или иной форме использовалась человечеством в разное время, однако свою каноническую форму получила у Тома ДеМарко в 70-80-х годах в семействе методологий Structured Analysis and Structured Design как верхний уровень диаграммы потоков данных — DFD (Data Flow Diagram).

При создании нотации и языка UML его авторы не взяли в него контекстную диаграмму, а использовали диаграмму схожего назначения — диаграмму использования (Use Case Diagram, UCD).

Диаграмма использования фокусируется только на части потоков данных, применение которых помогает агентам в достижении важных для них результатов и, таким образом, относится к более высокому уровню — уровню модели использования.

По задумке авторов UML, отсутствие всех потоков данных не позволяет использовать UCD для выявления функциональных требований непосредственно, а требует предварительной проработки сценариев использования и извлечения ФТ уже из них.

Таким образом диаграммы не взаимозаменяемы, а скорее дополняют друг друга и поэтому для сложных систем полезно строить обе диаграммы.

Подписаться на новые статьи

Научиться создавать эффективные системные требования

Научиться создавать эффективные системные требования под руководством опытного наставника с использованием контекстных диаграмм, а также ещё 10 других современных аналитических техник, можно на нашем онлайн-курсе «Системный анализ и Разработка требований к ИТ-системам»

Как нарисовать контекстную диаграмму в Visio, Word и лучшем онлайн-инструменте

Контекстная диаграмма помогает объяснить системный процесс и его связь с внешними объектами. Объяснить их устно довольно сложно, особенно когда нет иллюстраций. В связи с этим мы предлагаем вам составить контекстную диаграмму, когда заинтересованные стороны хотят понять границы и детали системы, которая будет разработана в проекте.

Этот визуальный инструмент показывает поток информации между внешними компонентами и системой. В соответствии с этим, этот путеводитель продемонстрирует процедуру того, как сделать контекстную диаграмму в Word, Visio и с помощью лучшей онлайн-программы. Без дальнейших разговоров, давайте погрузимся в этот пост.

Нарисовать контекстную диаграмму

  • Часть 1. Нарисуйте контекстную диаграмму онлайн
  • Часть 2. Нарисуйте контекстную диаграмму с помощью Visio
  • Часть 3. Как сделать контекстную диаграмму в Word
  • Часть 4. Часто задаваемые вопросы о создании контекстных диаграмм

Часть 1. Нарисуйте контекстную диаграмму онлайн

Вы можете построить и развить свою контекстную диаграмму с помощью лучшего веб-приложения, такого как MindOnMap. Кроме того, программа позволяет проводить мозговой штурм идей, создавать концептуальные карты, планы проектов и т. д. Каждая диаграмма начинается с одной центральной темы, когда создается с нуля. С другой стороны, вы можете нарисовать свою контекстную диаграмму с заранее разработанными темами и шаблонами. В результате вы можете мгновенно создать профессиональную и исчерпывающую контекстную диаграмму.

Что касается настройки, пользователи могут форматировать текст, формировать и вставлять значки, ссылки и изображения для уточнения тем или пунктов. Кроме того, вы также можете добавить символ перекрестной ссылки, используя функцию отношения. Кроме того, приложение поддерживает сочетания клавиш для быстрого создания контекстной диаграммы. Теперь давайте создадим контекстную диаграмму онлайн с помощью этой программы.

1

Доступ к веб-сайту MindOnMap

Прежде всего, откройте свой любимый веб-браузер и посетите веб-сайт программы, введя ее ссылку в адресную строку браузера. После этого вы попадете на главную или домашнюю страницу инструмента. Отсюда вы увидите Создайте свою ментальную карту кнопка. Отметьте его, чтобы начать создание контекстной диаграммы.

Начать создание диаграммы

2

Выберите макет

После этого вы попадете в окно панели инструментов. Отсюда выберите желаемый макет для контекстной диаграммы. Затем вы попадете на главную панель редактирования. Кроме того, вы можете выбрать одну из рекомендованных тем ниже, чтобы начать работу.

Выберите макет

3

Редактировать текст и настраивать контекстную диаграмму

На этот раз отредактируйте шаблон в соответствии с вашими предпочтениями. Просто дважды щелкните конкретный узел и введите необходимую информацию. Вы также можете отформатировать текст или фигуру, перейдя в меню «Стиль» в правом боковом меню.

Добавить текст Настроить диаграмму

4

Поделитесь контекстной диаграммой

Когда вы закончите, вы можете позволить другим увидеть ваш проект. Нажмите кнопку «Поделиться» в верхней правой части интерфейса. Затем появится диалоговое окно. Отсюда вы можете установить пароль и действительную дату. После этого нажмите на Скопировать ссылку и пароль кнопку и раздайте ссылку вашим целевым людям.

Поделиться контекстной диаграммой

5

Экспорт контекстной диаграммы

Наконец, вы экспортируете свою контекстную диаграмму в различные форматы изображений и документов. Ударь Экспорт и отметьте целевой формат. Вот как нарисовать контекстную диаграмму онлайн с помощью MindOnMap.

Экспорт диаграммы

Часть 2. Нарисуйте контекстную диаграмму с помощью Visio

Все мы знаем, насколько популярно приложение Microsoft Visio для программ построения диаграмм. Его возможности расширены для создания векторной графики и диаграмм, таких как контекстные диаграммы. Инструмент предоставляет основные символы диаграмм, шаги процесса, диаграммы ER и многое другое. Однако этот инструмент не входит в пакет Microsoft Office. Вам нужно будет приобрести программу отдельно. Следуйте приведенным ниже инструкциям, чтобы получить краткое руководство по созданию контекстной схемы в Visio.

1

Запустите Visio на своем компьютере и выберите Диаграмма модели потока данных в окне приборной панели. Затем запустится панель редактора.

Выберите шаблоны

2

Затем добавьте символы, необходимые для создания контекстной диаграммы. Вы можете легко сделать это, быстро перетащив символы из Формы меню в левой части холста.

Добавить фигуры

3

После этого расположите фигуры в соответствии со своими предпочтениями и отрегулируйте размер или цвет заливки. Затем добавьте текст на контекстную диаграмму с помощью Текстовое окно в верхней части интерфейса.

Редактировать текст

4

Закончив создание контекстной диаграммы, перейдите к Файл, с последующим Экспорт меню. Наконец, выберите подходящий формат. Вот как сделать контекстную диаграмму в Visio.

Сохранить контекстную диаграмму

Часть 3. Как сделать контекстную диаграмму в Word

Другой инструмент, который вы можете использовать для создания контекстной диаграммы, — это Microsoft Word. Помимо своего характера в качестве инструмента для обработки текстов, приложение позволяет создавать различные иллюстрации и диаграммы. Создание контекстной диаграммы с помощью графической функции SmartArt инструмента может помочь вам в этом. Кроме того, он предлагает формы, которые можно использовать для создания диаграмм. Эта функция полезна, особенно если вы являетесь пользователем Microsoft Word. С другой стороны, вот как нарисовать контекстную диаграмму в Word.

1

Получите доступ к приложению Word на своем ПК и откройте новую пустую страницу.

Открыть пустой документ

2

После этого перейдите к Вставлять вкладку на ленте и выберите СмартАрт. Выберите шаблон, который подходит для нужной иллюстрации, в графическом окне SmartArt.

Доступ к графике SmartArt

3

Затем шаблон будет добавлен на главную панель редактирования. На этот раз нарисуйте текстовое поле и введите текст, который хотите вставить. Вы также можете настроить шаблон по своему усмотрению из Дизайн вкладка

Настроить диаграмму

4

Наконец, перейдите к Файл > Экспорт. После этого выберите целевой формат. Вот так быстро можно сделать контекстную диаграмму в Word.

Сохранить диаграмму

Часть 4. Часто задаваемые вопросы о создании контекстных диаграмм

Что вы подразумеваете под контекстной диаграммой в DFD?

В DFD вам нужно будет создать контекстную диаграмму или самый первый уровень всего процесса. Он отображает базовый обзор системы, позволяя вам понять ее с первого взгляда.

Какие существуют виды ДФД?

Диаграмма потока данных бывает двух разных типов. Сюда входят физические и логические диаграммы DFD или потоков данных.

Что вы подразумеваете под контекстным представлением?

Когда вам нужно определить взаимодействия между системой и средой, взаимодействия, зависимости и отношения, мы называем это контекстным представлением действия.

Вывод

Вот оно! Вы только что научились нарисовать контекстную диаграмму с помощью Visio и Слово. Кроме того, вы научились делать контекстную диаграмму онлайн. Вы можете выбирать между автономными и онлайн-методами на основе представленных инструментов. Однако, если вы хотите бесплатно нарисовать контекстную диаграмму в Интернете, вам следует использовать MindOnMap. В противном случае используйте Visio и Word, если бюджет не является проблемой.

Время на прочтение
8 мин

Количество просмотров 48K

Процесс документирования архитектуры программного обеспечения может показаться пугающим. Но на самом деле достаточно всего 5 диаграмм, чтобы объяснить структуру вашей системы практически любому. 

Задача архитектора решений ― четко донести проект системы до бизнеса, руководителей проектов и разработчиков. Нельзя просто нарисовать одно изображение, это невозможно и не принесет никому пользы. Вместо этого лучше сгруппировать различные проблемы и создать набор диаграмм, описывающих каждое представление. Конечно, есть миллиард способов сделать это. Как выбрать подходящий? За время работы в качестве архитектора решений я чаще всего использовал 5 диаграмм: контекстную диаграмму C4, диаграмму контейнеров, развертывания, последовательности и вариантов использования. В этой статье я рассмотрю подробно каждую из них.

Контекстная диаграмма

Веб-сайт, посвященный модели С4 (Context, Container, Component and Code), довольно хорошо объясняет свои диаграммы, я же поделюсь своим представлением, как эта модель работает.

Любая система работает в некотором контексте — окружении. В первую очередь, это пользователи и другие системы. Пользователи могут иметь разные роли, такие как создатель контента, читатель, администратор. Также они могут быть внутренними или внешними. Другие программы могут быть источником данных для вашей системы или получать информацию от нее. Важно понимать этот контекст, чтобы правильно спроектировать систему и напомнить себе о необходимости интеграции с внешними системами.

Пример

Context diagram

Context diagram

На этой диаграмме показана цифровая платформа необанкинга, представленная синим прямоугольником в центре.

Как рисовать

  • Определите пользователей.

  • Определите внешние системы.

  • Создайте единый прямоугольник, изображающий вашу систему.

  • Добавьте связи между системой, пользователями и внешними системами.

  • Напишите содержательные комментарии по каждому компоненту.

Инструменты

Существуют различные инструменты, которые можно использовать для создания контекстной диаграммы. Существуют трафареты C4 для OmniGraffle, примеры C4 для LucidChart, шаблоны есть также в draw.io. Чтобы использовать диаграммы как код, попробуйте PlantUML.

Допустим, мы хотим нарисовать такую диаграмму для цифровой платформы необанковского обслуживания с помощью uml:

@startuml
!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Context.puml
' uncomment the following line and comment the first to use locally
' !include C4_Context.puml


Person(customer, "Customer", "A bank client")
System(abc_system, "Digital Platform", "Allows freelancers and business owners see their transactions.")

System_Ext(idnow, "IDNow", "System for KYC and Qualified Eletronic Signatures")
System_Ext(pay, "Google Pay/Apple Pay", "Google Pay and Apple Pay systems")
System_Ext(dms, "DMS", "Document Management System")
System_Ext(crm, "CRM", "CRM")
System_Ext(current, "Existing Banking System", "Banking Backoffice")

Rel(abc_system, pay, "uses")
Rel(customer, abc_system, "Uses")


Rel_L(abc_system, idnow, "integrates")
Rel_Neighbor(abc_system, dms, "uploads files")
Rel_D(abc_system, crm, "integrates")
Rel_U(abc_system, current, "uses")

@enduml

Мы определяем человека, систему, внешние системы и отношения между ними. Предикаты Person, System и System_ext имеют 3 параметра: ключ, заголовок и описание. Предикат Rel также имеет 3 параметра, но они разные: ключ одной сущности, ключ другой и тип отношений между сущностями.

Нарисовать контекстную диаграмму можно любым удобным инструментом. Здесь можно найти несколько отличных примеров.

Важно

Контекстная диаграмма — это первое, что вы создаете при работе с системой. Если этого не сделать, это может стоить вам пропущенных интеграций и ошибок при проектировании системы. Контекст может включать некоторые детали более низкого уровня, это нормально.

Я боролся с контекстной диаграммой для одной банковской системы. Она должна была включать только недавно созданную систему и одного клиента, который не принесет никакой ценности. После согласования я добавил API Gateway и существующий Auth Provider, который мы собирались использовать. Таким образом, контекстная диаграмма стала обретать смысл и позволяла опустить эти элементы из диаграмм нижнего уровня.

Алексей, архитектор решений

У нас в разработке была образовательная система. На момент выпуска Alpha мы поняли, что аналитическая система не получает данные от клиентского приложения. Если бы у нас была контекстная диаграмма, мы бы не сделали такой ошибки. К счастью, это было легко исправить.

Джон, архитектор решений.

Резюме

Контекстная диаграмма — это важнейшее представление, обеспечивающее высочайший уровень понимания людей и систем, с которыми будет взаимодействовать ваша будущая система.

Диаграмма контейнеров

Контейнеры здесь не означают обязательно докер-контейнеры. Контейнер — это любой развертываемый объект или хранилище данных с точки зрения C4. Это может быть мобильное приложение, веб-сайт, виртуальная машина, докер-контейнер, база данных или хранилище объектов; все, что вы можете развернуть. По моему опыту эта диаграмма – самая сложная, а потому привлекает к себе особое внимание. Это, можно сказать, главная диаграмма, над которой нужно работать!

Эта диаграмма в разы масштабнее и более нагруженная, чем предыдущая. То, что было одним прямоугольником, теперь состоит из нескольких прямоугольников и стрелок. Эти прямоугольники теперь и являются контейнерами.

Пример

Container diagram

Container diagram

Как рисовать      

  • Определите список сущностей: микросервисы, хранилища, внешние сервисы.

  • Поместите их на диаграмму.

  • Добавьте комментарии о назначении каждого компонента и технологии, которую он реализует.

  • Добавьте соединения со стрелками.

  • Добавьте значимые метки к каждой стрелке.

  • Подберите цвет схемы.

  • Создайте легенду.

Инструменты

То же, что и для контекстной диаграммы: Draw.io, OmniGraffle, LucidChart и другие.

Важно

  • Обратите внимание, что элементы расположены столбцами. Первый столбец — это просто API-шлюз, второй ― первая группа сервисов, затем вторая группа сервисов, затем несколько хранилищ. Таким образом вы продемонстрируете многоуровневую архитектуру, которая поможет понять границы и обязанности.

  • Когда количество микросервисов превысит однозначное число, ваши линии соединения начнут пересекаться. В академических книгах говорится, что для удобочитаемости нужно избегать пересечений. К сожалению, это не всегда возможно. Но не расстраивайтесь, диаграмму можно сделать удобочитаемой, используя разные цвета или ширину линий или разные стили линий (пунктирные, сплошные и т. д.).

  • Если вы используете специальный инструмент, (как я), вам необходимо включить блок легенды. Сами по себе стрелки и цвет непонятны — легенда объясняет всё это.

  • Очень распространенный вопрос, когда используешь облака, включать ли вы управляемые сервисы, такие как очереди сообщений? Я обычно отвечаю: «Нет». Это усложняет диаграмму, делает её нечитабельной. Если некоторые сервисы обмениваются данными через очередь сообщений, отобразите её с помощью стрелки отдельного типа.

Я учу своих коллег-архитекторов применять многоуровневый подход при создании схем контейнеров или компонентов и соединений. Эти диаграммы, как правило, включают в себя множество объектов, и их многослойная структуризация улучшает читаемость.

Илья, архитектор предприятия.

Резюме

Диаграмма контейнера даёт представление о том, из каких развертываемых элементов состоит серверная часть, и как эти компоненты взаимодействуют друг с другом.

Диаграмма последовательностей

Первые две диаграммы показывают, как элементы системы соотносятся друг с другом. Однако они не могут продемонстрировать, что происходит внутри системы. Например, пользователь регистрируется в вашей системе. Какие компоненты задействованы? Какие действия срабатывают? Как компоненты взаимодействуют друг с другом? Диаграмма последовательностей может ответить на эти вопросы.

Пример

Вверху мы видим взаимодействующие объекты: люди, веб-приложения и мобильные приложения, внешние системы, сервисы и хранилища данных. У каждого объекта есть вертикальная линия внизу. Взаимодействие между сервисами обозначено горизонтальными стрелками между вертикальными линиями. Эти стрелки могут быть разных типов в зависимости от того, синхронная это операция или асинхронная. Серые прямоугольники показывают, что процесс занимает некоторое время, и длина должна указывать на продолжительность: чем длиннее прямоугольник, тем больше время.

Как рисовать

  • Выберите функцию (вход, покупка и т. д.).

  • Определите сущности, участвующие в этом процессе.

  • Поместите их на диаграмму.

  • Добавьте взаимодействие (стрелки).

  • Добавьте ценные комментарии к каждой стрелке.

Инструменты

К сожалению, OmniGraffle не подходит для диаграмм последовательности. Поэтому для создания этой диаграммы я использую draw.io и LucidChart. Последний вариант является хорош тем, что вы можете рисовать диаграмму вручную или использовать диаграмму последовательности UML.

Важно

  • Диаграмма последовательностей абсолютно необходима при разработке новой функции, которую вы добавляете в систему. Он показывает части системы, которые функция затрагивает, точки интеграции с внешним программами и контракты, которые команда должна будет создать или обновить.

  • Диаграмма последовательности также полезна для QA инженеров. Она дает представление о том, где могут быть обнаружены потенциальные проблемы, и служит источником истины для тестовых случаев.

Проект шёл уже несколько месяцев, а некоторые части системы не были готовы к долгожданной функции. Стейкхолдеры были недовольны. Мы обсудили вопрос и договорились проектировать архитектуру до начала разработки. Диаграммы последовательностей очень помогли: мы получили полную картину до написания кода, а не после.

Владимир, Архитектор решений

Резюме

Диаграммы последовательности позволяют документировать поведение системы в различных бизнес-сценариях.

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

С помощью диаграмм контекста, контейнеров и диаграммы последовательностей, можно понять, из каких частей состоит система, как они связаны и взаимодействуют друг с другом. Но вряд ли они могут ответить на вопросы доступности, масштабируемости и безопасности. В этом поможет схема развертывания.

Есть несколько разных вещей, которые необходимо отобразить.

  • Вычислительные ресурсы. Это могут быть виртуальные машины, докеры, кластеры Kubernetes и облачные функции. Мобильные устройства и настольные компьютеры также можно рассматривать как вычислительные ресурсы.

  • Хранилища. Постоянные хранилища данных, такие как реляционные базы данных и базы данных nosql, хранилища двоичных файлов, таких как изображения, музыка и видео, хранилища больших данных и так далее.

  • Ресурсы обмена сообщениями. Установки Kafka / RabbitMQ, Google Cloud pub / sub, AWS SQS и другие.

  • Сети. Ваши компьютеры используют сети для связи друг с другом. Должны отображаться как физические, так и виртуальные сети.

  • Зоны доступности. Вы можете думать о них как о центрах обработки данных.

  • Узлы инфраструктуры. DNS-серверы, балансировщики нагрузки, брандмауэры, сети CDN

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

Как нарисовать

  • Разместите основные блоки: браузеры, мобильные устройства, общедоступное облако, центры обработки данных.

  • Разместите вычислительные ресурсы и ресурсы хранения.

  • Добавьте узлы инфраструктуры.

  • Добавьте сети.

  • Добавьте сетевые вызовы между узлами.

  • Добавьте ресурсы мониторинга.

Пример

В C4 нотации есть дополнительная диаграмма развертывания:

Обратите внимание на имена вычислительных ресурсов, их типы и номера узлов.

Другой пример для облака AWS:

Distributed Load Testing by AWS

Distributed Load Testing by AWS

Инструменты

Существует множество инструментов для создания схемы развертывания. OmniGraffle, LucidChart, Draw.io и другие прекрасно справляются с этой задачей, если установлены соответствующие шаблоны.

Важно

Каждая система имеет требования к безопасности, производительности, доступности и другим возможностям. Диаграмма развертывания помогает удовлетворить эти требования. В большинстве случаев диаграмма развертывания единственная, отображающая сетевые аспекты вашего решения. Диаграмма развертывания должна ясно и понятно показывать, как запросы проходят через систему.

Резюме

Диаграмма развертывания дополняет понимание системы с точки зрения внешнего вида.

Диаграмма вариантов использования

Предыдущие диаграммы были в основном техническими, в то время как диаграмма вариантов использования больше ориентирована на бизнес. Он показывает, как люди взаимодействуют с вашей системой на очень высоком уровне. Сами варианты использования можно рассматривать как бизнес-возможности, которые я описывал в этой статье.

Как рисовать

  • Нарисуйте прямоугольник. Это будет граница системы.

  • Определите, кто будет работать с системой.

  • Добавьте варианты использования внутри системы с помощью овалов.

  • Добавьте связи между участниками и вариантами использования.

Примеры

Инструменты

Архитектор может нарисовать диаграмму с помощью любого графического редактора и того же набора инструментов, что и для других диаграмм. Omnigraffle, LucidChart, Draw.io работают хорошо. Помните, что эта диаграмма является структурированной, поэтому вы можете использовать UML для её создания. В этом помогает PlantUml или LucidChart.

Резюме

  • Используйте контекстную диаграмму, чтобы отобразить представление системы на самом высоком уровне.

  • Документируйте варианты использования с соответствующей диаграммой.

  • Масштабируйте внутренние компоненты системы с помощью контейнеров и диаграмм развертывания.

  • Документируйте конкретные бизнес-кейсы с помощью диаграмм последовательности.

Контекстная
диаграмма

– это модель, представляющая систему
как набор иерархических действий, в
которой каждое действие пре­образует
некоторый объект или набор объектов.
Высшее действие иерархии называется
действием контекста – это самый высокий
уро­вень, который непосредственно
описывает систему. Уровни ниже на­зываются
порожденными декомпозициями и представляют
подпро­цессы родительского действия.

При
создании модели сначала необходимо
изобразить самый высокий уровень –
действие контекста. Наименование
действия опи­сывает систему
непосредственно и, как правило, состоит
из одного активного глагола в сочетании
с обобщающим существительным, ко­торое
разъясняет цель деятельности с точки
зрения самого общего взгляда на систему,
в наше случае это процесс «сборки и
ремонта компьютеров». (рис.3). Контекстная
диаграмма изображает
деятельность самого верхнего уровня и
обозначает границу моделирования
относительно цели, воз­можностей и
точки зрения. На
контекстной диаграмме специфицируемая
система представляется в виде одного
единственного процесса, связанного с
внешними сущностями потоками данных.
Контекстная диаграмма представляет
требования к системе на самом верхнем
уровне – уровне взаимодействия с
окружением.

На
нашей контекстной диаграмме изображен
процесс «Сборки и ремонта компьютеров»
(рис.3) его входные и выходные данные, а
также механизмы и управление.

  1. Входное
    «Заказы клиентов»;

  2. Входное
    «Ввод комплектующих»;

  3. Входное
    «Расценки»;

  4. Управление
    «Устав предприятия»;

  5. Управление
    «Законодательство РФ»;

  6. Механизм
    «Персонал»;

  7. Механизм
    «Клиент»;

  8. Выходные
    «Готовая продукция»;

  9. Выходные
    «Отчеты»;

  10. Выходные
    «Документы».

Рисунок
3 – Контекстная диаграмма процесса
«Сборки и ремонта компьютеров»

Декомпозиция
используется при моделировании
информационных систем для разделения
функций на составляющие части. Диаграммы
декомпозиции предназначены для
детализации функций и получаются при
разбиении контекстной диаграммы на
крупные подсистемы (функциональная
декомпозиция) и описывающие каждый
подсистему и их взаимодействие.
Единственная функция,
представленная на контекстной диаграмме
верхнего уровня, может быть разложена
на основные подфункции посредством
создания дочерней диаграммы. В свою
очередь, каждая из этих подфункций может
быть разложена на составные части
посредством создания дочерней диаграммы
следующего, более низкого уровня, на
которой некоторые или все функции также
могут быть разложены на составные части.
Каждая дочерняя диаграмма содержит
дочерние блоки и стрелки, обеспечивающие
дополнительную детализацию родительского
блока. В связи с этим, нами было произведена
декомпозиция контекстной диаграммы A0
процесса «сборки и ремонта компьютера»
на 4 функциональных блока (рис.4):

  1. Принятие
    заказа (входящие «заказы клиентов»,
    выходящие «Информация по заказу»,
    управление «устав предприятия»,
    механизмы «Клиент» и «Персонал»);

  2. Обработка
    заказа (входящие «Информация по заказу»,
    «Ввод комплектующих» и «Расценки»,
    выходящий «Заказ», управление «устав
    предприятия», механизм «Персонал»);

  3. Сборка
    и тестирование (входящий «Заказ»,
    выходящий «Данные о готовой продукции»,
    механизм «Персонал»);

  4. Оформление
    сдачи заказа (входящее «Данные о готовой
    продукции», выходящие «Документ»,
    «Готовая продукция» и «Отчеты»,
    управление «Устав предприятия» и
    «Законодательство РФ»).

Рисунок
4 – Диаграмма декомпозиции процесса
«сборки и ремонта компьютеров»

Далее
представлен процесс создания конфигурации
на базе 1С Предприятие для организации
занимающейся сборкой и ремонтом
компьютеров.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Чтобы определить «узкие» и слабые места в работе любой организации, найти зоны ответственности и безответственности, рекомендуется составлять ее карту деятельности. На карте подробно изображаются все бизнес-процессы и работы, которые происходят в компании. Наш эксперт, бизнес-тренер Александр Сагалович рассказывает, как сделать это при помощи одного из самых удобных инструментов – нотации IDEF0.

Фото с сайта foto.basov.com.uaФото с сайта foto.basov.com.uaФото с сайта foto.basov.com.ua

Фото с сайта foto.basov.com.ua

– Нотация IDEF0 предназначена для детального описания структуры бизнес-процессов. Достоинство методов, которые она использует в том, что все процессы изображаются графически, и при этом делается акцент на их соподчиненности, показе логической зависимости и взаимосвязи.

О том, как работать с нотацией и пользоваться ею, я расскажу в материале, который состоит из трех частей. В качестве примеров будем рассматривать рисунки, которые являются составной частью нотации IDEF0. Иногда мы вновь будем возвращаться к некоторым из них и дополнять новой информацией.

Составление контекстной диаграммы

Прежде всего, нам необходимо составить общую контекстную диаграмму. Иными словами, сделать общее описание, как бизнес-процессы взаимодействуют с внешней средой, т.е. с контекстом.  Это делается при помощи графического изображения различных потоков, которыми система (компания) обменивается с внешней средой в ходе своей деятельности.

Для примера, построим схему такого процесса, как выполнение заявок клиентов по доставке товаров, которые находятся в условном логистическом центре. Товар этот хранится на складе, и перед отгрузкой его надо еще и скомплектовать.
 

Рисунок 1. Контекстная диаграмма

Опишем не всю систему процессов условного логистического центра, а только лишь ее часть, опустив этапы доставки товара на склад и его хранения, а также различные управленческие и вспомогательные процессы. Затем полученные знания можно масштабировать на все остальные процессы и деятельность компании.

Итак, суть процесса состоит в следующем:

  • Клиенты передали товар на хранение на склад. Речь может идти как о внутренних (цеха, отдел закупок, отдел продаж или еще кто-то), так и о внешних клиентах (заказчики и покупатели).
  • Затем клиенты присылают заявки на отгрузку и доставку товара в заранее определенные точки разгрузки. Отметим, что такие процессы, как комплектация товара на складе, отгрузка, доставка и разгрузка производятся силами логистического центра.
  • Одновременно клиенты должны получать необходимую информацию о ходе исполнения заказа, т.е. отслеживать статус выполнения своих заявок, а также узнавать о возможных сбоях и нарушениях.

Декомпозиция работ и создание стрелок

Для составления нотации IDEF0 используется два типа объектов: работы и стрелки.

Работы – это процессы, функции или задачи, которые происходят в течение определенного времени и имеют конкретные результаты. Здесь и далее термин «работа» будем использовать как синоним терминов «процесс» или «функция» и подразумевать, что речь идет именно о них.

Каждой из работ должно быть присвоено название. На схеме работы обозначаются прямоугольниками, с вписанными внутри названиями.

По сути уже рассмотренная контекстная диаграмма (рисунок 1) является описанием одной работы самого верхнего уровня. Например, «Доставлять товар» является процессом верхнего уровня для таких процессов как «Следовать к месту разгрузки», «Отгружать товар», «Подписывать и оформлять накладные документы» и т.д. Таким образом, процесс верхнего уровня состоит из процессов более низкого уровня. 

Работа высшего уровня, которая изображается на контекстной диаграмме, может быть декомпозирована на так называемые родственные работы (работы, которые можно условно рассматривать как слагаемые для работы верхнего уровня). В свою очередь, по отношению к этим родственным работам, процесс высшего уровня будем являться так называемой родительской работой.

Родственные работы также могут быть детализированы. Схема, на которой отображены декомпозированные работы, называют диаграммой декомпозиции. 

Рисунок 2. Диаграмма декомпозиции верхнего уровня

На диаграмме декомпозиции может быть размещено от 2 до 8 работ, но рекомендуется размещать от 3 до 6.

Прямоугольники на диаграмме, внутри которых вписываются названия работ, обычно располагаются по диагонали от левого верхнего угла к правому нижнему. Такой порядок называется доминированием. По замыслу, сначала располагается самая важная работа, выполняемая в первую очередь.

В реальности же это доминирование очень условно, а работы в целом могут выполнятся одновременно, последовательно, с разной длительностью цикла исполнения и т.д. Стрелки – это данные, которые помогают дополнить информацию о происходящих процессах. Стрелки бывают двух видов:

  • Внутренние стрелки: информация и материальные ресурсы, которыми работы могут обмениваться между собой.
  • Граничные стрелки: информация и материальные ресурсы, которыми ваша компания во время функционирования бизнес-процессов (во время работ) обменивается с внешней средой.

Еще существует пять типов стрелок:

1. Вход (input) – материал и/или информация, которые используются работой для производства продукта (выхода). Допускается, что работа может не иметь ни одного входа. Стрелка входа рисуется, как входящая в левую грань прямоугольника, обозначающего работу. К примеру, на рисунке 2 к таким стрелкам относятся:

  • «Товар на складе» – относится к работе «Комплектовать товар». Это материальный ресурс, который в ходе выполнения работы преобразуется в продукт «Собранный товар».
  • «Заявки от клиентов» – относится к работе «Принимать и обрабатывать доставки». Информационный ресурс, который используется в ходе данной работы для формирования планов по доставке и комплектации заказа. В реальности для формирования планов еще необходимая информация о свободных мощностях склада и службы доставки (далее на схеме СД). Но чтобы не перегружать схему, будем условно считать, что эта информация присутствует в вашей реальной практике.
  • «Отчет о комплектовании» – относится к работе «Доставлять товар». Это информация, которая поступает от работы по комплектации товара к работе по его доставке, чтобы просигнализировать, что товар собран и можно подавать автомобиль на его загрузку.

2. Управление (control) – различная управляющая информация постоянного или оперативного характера (регламенты, стандарты, чертежи, планы, приказы и т.д.).

Каждая работа должна иметь хотя бы одну управляющую стрелку. Они должны располагаться вверху прямоугольника.  Если посмотреть на рисунок 2, то можно заметить, что «План доставок» на рисунке обозначен как стрелка, относящаяся к типу «вход», на самом деле она должна являться стрелкой управления и должна находится, соответственно, вверху прямоугольника. То же самое относится и к стрелке «План комплектования».

Сейчас эти стрелки умышленно были расставлены «неправильно». Дело в том, что на практике иногда трудно определить, к какому из двух типов относится стрелка – ко «входу» или к «управлению». Отмечу, если действие, которое обозначает стрелка, будет в дальнейшем преобразовано, или же оно несет сугубо информационную функцию – стрелка относится к типу «вход». А вот если «продукт», доставленный стрелкой, в ходе работы не изменяется, а используется как нормативный (планирующий, информационный документ), то стрелка относится к типу «управление».

В дальнейшем мы еще вернемся к рисунку 2 и дополним его.

3. Выход (output) – материал или информация, которая производятся работой. Каждая работа должна иметь хотя бы один выход. Он рисуется как выходящая стрелка из правого ребра прямоугольника. На рисунке 2 выходами являются, например, «Собранный товар» – относится к работе «Комплектовать товар».

4. Механизм (mechanism) – это ресурсы, которые используются в ходе выполнения работы. Это могут быть станки, персонал, программное обеспечение, автомобили и т.д. Данный тип стрелок входит в прямоугольник снизу. По вашему усмотрению, эти стрелки могут и не отображаться на схеме.

В нашем примере на рисунке к механизмам относятся: персонал, складская техника, складской комплекс, транспорт.

5. Вызов (call) – стрелка, указывающая на другой (альтернативный) вариант выполнения работы. Рисуется как исходящая из нижней грани прямоугольника. Используется для указания того, что некоторая работа выполняется за пределами описываемой системы. В некоторых программных средствах стрелки вызова используются для слияния и разделения различных моделей.

На рисунке 3 стрелка вызова «Передача доставки на аутсорсинг» обозначает, что при определенном сценарии развития событий доставка будет выполнять силами внешнего исполнителя, в соответствии с другой моделью выполнения работ.

Рисунок 3. Пример стрелки типа «Вызов»

Продолжение следует.

Добавить комментарий