Блок -схема — это тип диаграммы , которая представляет собой рабочий процесс или последовательность действий . Блок-схему также можно определить как схематическое представление алгоритма , пошагового подхода к решению задачи.
Блок-схема показывает шаги в виде блоков различных видов, а их порядок — путем соединения блоков стрелками. Это схематическое представление иллюстрирует модель решения данной проблемы. Блок-схемы используются при анализе, проектировании, документировании или управлении процессом или программой в различных областях. [1]
Блок-схемы используются для проектирования и документирования простых процессов или программ. Как и другие типы диаграмм, они помогают визуализировать процесс. Два из многочисленных преимуществ — это то, что недостатки и узкие места могут стать очевидными. Блок-схемы обычно используют следующие основные символы:
Блок-схема описывается как «кросс-функциональная», когда она разделена на различные вертикальные или горизонтальные части, чтобы описать контроль различных организационных единиц. Символ, появляющийся в определенной части, находится под контролем этой организационной единицы. Кросс-функциональная блок-схема позволяет автору правильно определить ответственность за выполнение действия или принятие решения и показать ответственность каждой организационной единицы за различные части одного процесса.
Блок-схемы отображают определенные аспекты процессов и обычно дополняются другими типами диаграмм. Например, Каору Ишикава определил блок-схему как один из семи основных инструментов контроля качества , наряду с гистограммой , диаграммой Парето , контрольным листом , контрольной диаграммой , диаграммой причинно-следственных связей и диаграммой рассеяния . Аналогично в UML , стандартной нотации концептуального моделирования, используемой при разработке программного обеспечения, диаграмма деятельности , которая является типом блок-схемы, является лишь одним из многих различных типов диаграмм.
Диаграммы Насси-Шнейдермана и диаграммы Дракона являются альтернативной формой записи потока процесса.
Распространенные альтернативные названия включают: блок-схема, блок-схема процесса, функциональная блок-схема, карта процесса, диаграмма процесса, функциональная блок-схема процесса, модель бизнес-процесса, модель процесса, диаграмма потока процесса , диаграмма потока работы , диаграмма бизнес-потока. Термины «блок-схема» и «блок-схема» используются взаимозаменяемо.
Базовая структура блок - схемы представляет собой потоковый граф, который абстрагирует типы узлов, их содержимое и другую вспомогательную информацию.
Первый структурированный метод документирования потока процесса, « график потока процесса », был представлен Фрэнком и Лилиан Гилбрет в презентации «Графики процессов: первые шаги в поиске наилучшего способа выполнения работы» для членов Американского общества инженеров-механиков (ASME) в 1921 году . [2] Инструменты Гилбрет быстро нашли свое место в учебных программах по промышленной инженерии . В начале 1930-х годов промышленный инженер Аллан Х. Могенсен начал обучать деловых людей использованию некоторых инструментов промышленной инженерии на своих конференциях по упрощению работы в Лейк-Плэсиде , штат Нью-Йорк .
Арт Спинангер, выпускник класса Могенсена 1944 года , привез инструменты обратно в Procter and Gamble , где он разработал их Программу преднамеренного изменения методов. Бен С. Грэм , другой выпускник 1944 года, директор по инжинирингу Formcraft в Standard Register Industrial , применил схему поточного процесса к обработке информации, разработав схему многопоточного процесса для представления нескольких документов и их взаимосвязей. [3] В 1947 году ASME принял набор символов, полученный из оригинальной работы Гилбрета, как «Стандарт ASME: Схемы операций и поточного процесса». [4]
Дуглас Хартри в 1949 году объяснил, что Герман Голдстайн и Джон фон Нейман разработали блок-схему (первоначально диаграмму) для планирования компьютерных программ. [5] Его современный отчет был одобрен инженерами IBM [6] и личными воспоминаниями Голдстайна. [7] Оригинальные блок-схемы программирования Голдстайна и фон Неймана можно найти в их неопубликованном отчете «Планирование и кодирование задач для электронного вычислительного прибора, часть II, том 1» (1947), который воспроизведен в собрании сочинений фон Неймана. [8]
Блок-схема стала популярным инструментом для описания компьютерных алгоритмов , но ее популярность снизилась в 1970-х годах, когда интерактивные компьютерные терминалы и языки программирования третьего поколения стали обычными инструментами для компьютерного программирования , поскольку алгоритмы могут быть выражены более кратко в виде исходного кода на таких языках . Часто используется псевдокод , который использует общие идиомы таких языков без строгого соблюдения деталей конкретного. Кроме того, блок-схемы не очень подходят для новых методов программирования, таких как рекурсивное программирование .
Тем не менее, блок-схемы все еще использовались в начале 21-го века для описания компьютерных алгоритмов . [9] Некоторые методы, такие как диаграммы активности UML и диаграммы Drakon, можно считать расширениями блок-схемы.
Стернекерт (2003) предположил, что блок-схемы можно моделировать с точки зрения различных групп пользователей (таких как менеджеры, системные аналитики и клерки), и что существует четыре основных типа: [10]
Обратите внимание, что каждый тип блок-схемы фокусируется на определенном виде контроля, а не на самом конкретном потоке. [10]
Однако существуют и другие классификации. Например, Эндрю Веронис (1978) назвал три основных типа блок-схем: системная блок-схема , общая блок-схема и подробная блок-схема . [11] В том же году Мэрилин Бол (1978) заявила: «На практике при планировании решений используются два вида блок-схем: системные блок-схемы и программные блок-схемы ...». [12] Совсем недавно Марк А. Фрайман (2001) выявил больше различий: «Блок-схемы решений, логические блок-схемы, системные блок-схемы, блок-схемы продуктов и блок-схемы процессов — вот лишь некоторые из различных типов блок-схем, которые используются в бизнесе и государственном управлении». [13]
Кроме того, многие методы построения диаграмм похожи на блок-схемы, но носят другое название, например, диаграммы деятельности UML .
Обратимые блок-схемы [14] представляют собой парадигму в вычислениях, которая фокусируется на обратимости вычислительных процессов. В отличие от традиционных вычислительных моделей, где операции часто необратимы, обратимые блок-схемы гарантируют, что любой атомарный вычислительный шаг может быть обращен. Обратимые блок-схемы, как показано, столь же выразительны, как и обратимые машины Тьюринга, и являются теоретической основой для структурированного обратимого программирования и энергоэффективных обратимых вычислительных систем. [15]
Американский национальный институт стандартов (ANSI) установил стандарты для блок-схем и их символов в 1960-х годах. [16] Международная организация по стандартизации (ISO) приняла символы ANSI в 1970 году. [17] Текущий стандарт, ISO 5807 , был опубликован в 1985 году и последний раз пересматривался в 2019 году. [18] Обычно блок-схемы располагаются сверху вниз и слева направо. [19]
Стандарты ANSI/ISO включают символы, выходящие за рамки основных форм. Некоторые из них: [19] [20]
Для параллельной и одновременной обработки горизонтальные линии [21] или горизонтальная полоса [22] параллельного режима указывают начало или конец раздела процессов, которые могут выполняться независимо:
Любая программа для рисования может быть использована для создания блок-схем, но они не будут иметь базовой модели данных для обмена данными с базами данных или другими программами, такими как системы управления проектами или электронные таблицы . Существует множество программных пакетов, которые могут автоматически создавать блок-схемы, либо непосредственно из исходного кода языка программирования, либо из языка описания блок-схем.
Существует несколько приложений и визуальных языков программирования [23] , которые используют блок-схемы для представления и выполнения программ. Обычно они используются в качестве учебных пособий для начинающих студентов.
{{cite book}}
: CS1 maint: числовые имена: список авторов ( ссылка )