Наташа Косинова. Варю айти СУП
2.28K subscribers
56 photos
3 videos
8 files
312 links
Я системный аналитик, тимлид, ментор, тренер и автор айти курсов. Работаю в айти сфере с 2006 года. Мой канал про айти, без лапши успешного успеха. Варю айти СУП здорового человека)

Мои услуги:
https://nkosinova.taplink.ws

Написать мне @tasha_kvitka
Download Telegram
#блоксхема #мойопыт #капитаночевидность #капитанНЕочевидность #мысливслух #нотации #системныйанализ

Блок - схема, недооцененная диаграмма, или универсальный инструмент?

Я люблю блок-схему и считаю одним из самых универсальных инструментов. И как всегда, тут важно понимать правила применения. Так как в институте у меня не было uml, bpmn и других нотаций, много было блок-схем, и нас гоняли по ним и по ГОСТу построения подобных диаграмм. И не зря!

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

Так ли это?
Посмотрим вглубь.
1.Я больше не знаю российских ГОСТов, в которых бы так хорошо описывались нотации, как это сделано по блок-схеме.
2.Название то какое! Это схема из блоков) с чёткой типизацией блоков.
3.Это визуализация графа, в основе которого лежат сети Петри и планарный граф. А граф мы можем применить для описания алгоритма.
4.Ну и не дураки всё таки придумали визуализацию алгоритмов (так я конечно про любую нотацию могу сказать))).
5.Это первая диаграмма, которую использовали для описания алгоритмов, которые уже превращали в код (если это не так, то расскажите мне дополнительно).

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

Блок-схема имеет правила составления, что даёт нам возможность достаточно чётко разложить процесс.
Попробую эти правила описать:
1.У блок-схемы всегда есть начало и конец, это единственные элементы, в которых допускается изображение разрыва потока.
2.Каждый элемент - это шаг процесса, а они чётко определены гостом и операциями, которые допустимы в ЭВМ:
👉ввод/вывод,
👉действия,
👉логический блок,
👉печать,
👉подпроцесс (процедура).
Есть ещё дополнительные блоки: цикл, документы, соединитель, комментарии.
Даже если вы по такой классификации разложите шаги процесса уже будет очень мощно! Что вцелом даёт возможность далее и функционую архитектуру решения более чётко описать.
3.Я написала про планарный граф, это правило нам говорит о том, что наша Блок-схема должна минимально иметь пересечения линий (а лучше вообще не иметь пересечения, если они есть, что-то не так с проектированием). Отличное ограничение, которые в любой нотации стоит держать в голове.
4.Правило "шампура", мы должны создавать шаги процесса так, чтобы у нас был основной поток, и изображение диаграммы похоже на нанизывание кусочков шашлыка на шампур. Ветки и пелти могут уходить в блок и возвращаться в основной процесс.
5.Чаще всего диаграмма идёт сверху в низ. Слева направо мне не очень нравится такие диаграммы рисовать и читать.
6.Если у нас получается очень длинная диаграмма, то возможно стоит задуматься о том, чтобы процесс делить на этапы и выделять процедуры. Учиться видеть, какие куски процесса можно переиспользовать и выделять их в подпроцессы, процедуры, описывать отдельно.
7.В диаграмме не должно быть разрывов. Нужно проверять правила, что из блока не должно быть несколько выходящих стрелок, допустима только одна. Если вам нужно ветвление, нужно воспользоваться логическим блоком.
8.Обязательно проверять диаграмму на скрытые циклы, где нарушена логика операций и процесс может зациклится.
9.В логическом элементе условие и стрелочки должны быть подписаны. При этом это логика, то есть вопрос должен быть локаничен и иметь ответы "да" - "нет".
10.Мы рисовали подобные диаграммы на листе бумаги, по правилу, что каждый блок расположен под другим и имеют одинаковую ширину и высоту, что тоже учит формулировать текст шага так, чтобы он уместился в блок, был понятен, и одновременно локаничен.
Начало 👆
Блок - схема

#блоксхема #мойопыт #капитаночевидность #капитанНЕочевидность #мысливслух #нотации #системныйанализ

В завершение скажу, что да ГОСТ морально устарел, есть диаграммы активити, которые на 90% похожи на блок-схему. Но вот эти правила, ограничения и фундамент в виде теорий построения графов нас держит в определённых ограничениях и заставляют задавать неудобные вопросы и более чётко проектировать решения именно для реализации на вычислительных машинах.
Плюс как ни крути, маленькие и иногда и не очень маленькие, полезные зерна проектирования прорастут и помогут уже в современных нотациях повышать качество.

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

Диаграмма и нотация фактически для вас трафарет, что даст получить хороший результат! 📌
Please open Telegram to view this post
VIEW IN TELEGRAM