Найти в Дзене
КиберMamedov 💻🔥

Разработка требований. Декомпозиция процессов контекстной диаграммы

Оглавление

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

Разработка требований: декомпозиция процессов контекстной диаграммы
Разработка требований: декомпозиция процессов контекстной диаграммы

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

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

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

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

Декомпозиция в формате масштабирования
Декомпозиция в формате масштабирования

Затем вы выбираете какой-то район города и видите теперь его границы, а он состоит из улиц. Масштабируете и видите границу конкретной улицы и т.д.

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

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

Понятно, как устроена декомпозиция? Если коротко, то это разбиение на составные части.

Декомпозиция процессов контекстной диаграммы

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

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

А из каких составных частей состоит наша контекстная диаграмма? Очень просто, из её явных сущностей:

  • Telegram;
  • Сотрудники;
  • Руководитель;
  • Google таблица.

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

Краткое пояснение декомпозиции процессов контекстной диаграммы
Краткое пояснение декомпозиции процессов контекстной диаграммы

Указали ссылку на рисунок, значит представляем схему декомпозиции.

Перед тем, как её увидеть нужно понимать принцип её построения. Декомпозиция предполагает три типа действий:

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

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

Сама декомпозиция
Сама декомпозиция

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

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

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

Краткая подводка к объяснению схемы
Краткая подводка к объяснению схемы

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

Описание типов действий происходящих в декомпозированой схеме
Описание типов действий происходящих в декомпозированой схеме

На этом декомпозиция Google таблицы закончена.

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

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