#блоксхема #мойопыт #капитаночевидность #капитанНЕочевидность #мысливслух #нотации #системныйанализ
Блок - схема, недооцененная диаграмма, или универсальный инструмент?
Я люблю блок-схему и считаю одним из самых универсальных инструментов. И как всегда, тут важно понимать правила применения. Так как в институте у меня не было uml, bpmn и других нотаций, много было блок-схем, и нас гоняли по ним и по ГОСТу построения подобных диаграмм. И не зря!
На вопрос, что выбрать из нотаций, чтобы изобразить процесс, алгоритм я всегда говорю блок - схему, или активити. Почему-то активити диаграмма стала не очень популярна. Ну конечно, у нас же есть bpmn, а блок-схема простая и пережиток старого. Дайте нам помоднее)
Так ли это?
Посмотрим вглубь.
✅1.Я больше не знаю российских ГОСТов, в которых бы так хорошо описывались нотации, как это сделано по блок-схеме.
✅2.Название то какое! Это схема из блоков) с чёткой типизацией блоков.
✅3.Это визуализация графа, в основе которого лежат сети Петри и планарный граф. А граф мы можем применить для описания алгоритма.
✅4.Ну и не дураки всё таки придумали визуализацию алгоритмов (так я конечно про любую нотацию могу сказать))).
✅5.Это первая диаграмма, которую использовали для описания алгоритмов, которые уже превращали в код (если это не так, то расскажите мне дополнительно).
И что самое для меня главное в любой нотации - это чётко понять правила составления диаграммы.
Соблюдая правила мы можем правильно применять, тот фундамент, что был заложен изначально. И увеличиваем качество проектирования.
Блок-схема имеет правила составления, что даёт нам возможность достаточно чётко разложить процесс.
Попробую эти правила описать:
✅1.У блок-схемы всегда есть начало и конец, это единственные элементы, в которых допускается изображение разрыва потока.
✅2.Каждый элемент - это шаг процесса, а они чётко определены гостом и операциями, которые допустимы в ЭВМ:
👉ввод/вывод,
👉действия,
👉логический блок,
👉печать,
👉подпроцесс (процедура).
Есть ещё дополнительные блоки: цикл, документы, соединитель, комментарии.
Даже если вы по такой классификации разложите шаги процесса уже будет очень мощно! Что вцелом даёт возможность далее и функционую архитектуру решения более чётко описать.
✅3.Я написала про планарный граф, это правило нам говорит о том, что наша Блок-схема должна минимально иметь пересечения линий (а лучше вообще не иметь пересечения, если они есть, что-то не так с проектированием). Отличное ограничение, которые в любой нотации стоит держать в голове.
✅4.Правило "шампура", мы должны создавать шаги процесса так, чтобы у нас был основной поток, и изображение диаграммы похоже на нанизывание кусочков шашлыка на шампур. Ветки и пелти могут уходить в блок и возвращаться в основной процесс.
✅5.Чаще всего диаграмма идёт сверху в низ. Слева направо мне не очень нравится такие диаграммы рисовать и читать.
✅6.Если у нас получается очень длинная диаграмма, то возможно стоит задуматься о том, чтобы процесс делить на этапы и выделять процедуры. Учиться видеть, какие куски процесса можно переиспользовать и выделять их в подпроцессы, процедуры, описывать отдельно.
✅7.В диаграмме не должно быть разрывов. Нужно проверять правила, что из блока не должно быть несколько выходящих стрелок, допустима только одна. Если вам нужно ветвление, нужно воспользоваться логическим блоком.
✅8.Обязательно проверять диаграмму на скрытые циклы, где нарушена логика операций и процесс может зациклится.
✅9.В логическом элементе условие и стрелочки должны быть подписаны. При этом это логика, то есть вопрос должен быть локаничен и иметь ответы "да" - "нет".
✅10.Мы рисовали подобные диаграммы на листе бумаги, по правилу, что каждый блок расположен под другим и имеют одинаковую ширину и высоту, что тоже учит формулировать текст шага так, чтобы он уместился в блок, был понятен, и одновременно локаничен.
Блок - схема, недооцененная диаграмма, или универсальный инструмент?
Я люблю блок-схему и считаю одним из самых универсальных инструментов. И как всегда, тут важно понимать правила применения. Так как в институте у меня не было uml, bpmn и других нотаций, много было блок-схем, и нас гоняли по ним и по ГОСТу построения подобных диаграмм. И не зря!
На вопрос, что выбрать из нотаций, чтобы изобразить процесс, алгоритм я всегда говорю блок - схему, или активити. Почему-то активити диаграмма стала не очень популярна. Ну конечно, у нас же есть bpmn, а блок-схема простая и пережиток старого. Дайте нам помоднее)
Так ли это?
Посмотрим вглубь.
✅1.Я больше не знаю российских ГОСТов, в которых бы так хорошо описывались нотации, как это сделано по блок-схеме.
✅2.Название то какое! Это схема из блоков) с чёткой типизацией блоков.
✅3.Это визуализация графа, в основе которого лежат сети Петри и планарный граф. А граф мы можем применить для описания алгоритма.
✅4.Ну и не дураки всё таки придумали визуализацию алгоритмов (так я конечно про любую нотацию могу сказать))).
✅5.Это первая диаграмма, которую использовали для описания алгоритмов, которые уже превращали в код (если это не так, то расскажите мне дополнительно).
И что самое для меня главное в любой нотации - это чётко понять правила составления диаграммы.
Соблюдая правила мы можем правильно применять, тот фундамент, что был заложен изначально. И увеличиваем качество проектирования.
Блок-схема имеет правила составления, что даёт нам возможность достаточно чётко разложить процесс.
Попробую эти правила описать:
✅1.У блок-схемы всегда есть начало и конец, это единственные элементы, в которых допускается изображение разрыва потока.
✅2.Каждый элемент - это шаг процесса, а они чётко определены гостом и операциями, которые допустимы в ЭВМ:
👉ввод/вывод,
👉действия,
👉логический блок,
👉печать,
👉подпроцесс (процедура).
Есть ещё дополнительные блоки: цикл, документы, соединитель, комментарии.
Даже если вы по такой классификации разложите шаги процесса уже будет очень мощно! Что вцелом даёт возможность далее и функционую архитектуру решения более чётко описать.
✅3.Я написала про планарный граф, это правило нам говорит о том, что наша Блок-схема должна минимально иметь пересечения линий (а лучше вообще не иметь пересечения, если они есть, что-то не так с проектированием). Отличное ограничение, которые в любой нотации стоит держать в голове.
✅4.Правило "шампура", мы должны создавать шаги процесса так, чтобы у нас был основной поток, и изображение диаграммы похоже на нанизывание кусочков шашлыка на шампур. Ветки и пелти могут уходить в блок и возвращаться в основной процесс.
✅5.Чаще всего диаграмма идёт сверху в низ. Слева направо мне не очень нравится такие диаграммы рисовать и читать.
✅6.Если у нас получается очень длинная диаграмма, то возможно стоит задуматься о том, чтобы процесс делить на этапы и выделять процедуры. Учиться видеть, какие куски процесса можно переиспользовать и выделять их в подпроцессы, процедуры, описывать отдельно.
✅7.В диаграмме не должно быть разрывов. Нужно проверять правила, что из блока не должно быть несколько выходящих стрелок, допустима только одна. Если вам нужно ветвление, нужно воспользоваться логическим блоком.
✅8.Обязательно проверять диаграмму на скрытые циклы, где нарушена логика операций и процесс может зациклится.
✅9.В логическом элементе условие и стрелочки должны быть подписаны. При этом это логика, то есть вопрос должен быть локаничен и иметь ответы "да" - "нет".
✅10.Мы рисовали подобные диаграммы на листе бумаги, по правилу, что каждый блок расположен под другим и имеют одинаковую ширину и высоту, что тоже учит формулировать текст шага так, чтобы он уместился в блок, был понятен, и одновременно локаничен.
Начало 👆
Блок - схема
#блоксхема #мойопыт #капитаночевидность #капитанНЕочевидность #мысливслух #нотации #системныйанализ
В завершение скажу, что да ГОСТ морально устарел, есть диаграммы активити, которые на 90% похожи на блок-схему. Но вот эти правила, ограничения и фундамент в виде теорий построения графов нас держит в определённых ограничениях и заставляют задавать неудобные вопросы и более чётко проектировать решения именно для реализации на вычислительных машинах.
Плюс как ни крути, маленькие и иногда и не очень маленькие, полезные зерна проектирования прорастут и помогут уже в современных нотациях повышать качество.
Самая большая проблема всех нотаций (это чисто моё мнение) состоит в том, что это визуализация большого комплекса теорий на которых строятся комплексы и сети, и первично это, а визуализация вторична, а мы учим наоборот. Аналитик гонится за тем, чтобы текстом или диаграммой быстро что-то зафиксировать, это не проектирование это дилетанство (другого слова не могу подобрать).
Поэтому мой призыв, если вы не уверены в своих силах и знаниях, берите нотацию как она есть и не придумывайте свои правила игры.
Диаграмма и нотация фактически для вас трафарет, что даст получить хороший результат!📌
Блок - схема
#блоксхема #мойопыт #капитаночевидность #капитанНЕочевидность #мысливслух #нотации #системныйанализ
В завершение скажу, что да ГОСТ морально устарел, есть диаграммы активити, которые на 90% похожи на блок-схему. Но вот эти правила, ограничения и фундамент в виде теорий построения графов нас держит в определённых ограничениях и заставляют задавать неудобные вопросы и более чётко проектировать решения именно для реализации на вычислительных машинах.
Плюс как ни крути, маленькие и иногда и не очень маленькие, полезные зерна проектирования прорастут и помогут уже в современных нотациях повышать качество.
Самая большая проблема всех нотаций (это чисто моё мнение) состоит в том, что это визуализация большого комплекса теорий на которых строятся комплексы и сети, и первично это, а визуализация вторична, а мы учим наоборот. Аналитик гонится за тем, чтобы текстом или диаграммой быстро что-то зафиксировать, это не проектирование это дилетанство (другого слова не могу подобрать).
Поэтому мой призыв, если вы не уверены в своих силах и знаниях, берите нотацию как она есть и не придумывайте свои правила игры.
Диаграмма и нотация фактически для вас трафарет, что даст получить хороший результат!
Please open Telegram to view this post
VIEW IN TELEGRAM