Блок-схема

Диаграмма, представляющая рабочий процесс или процесс

Простая блок-схема, иллюстрирующая процесс устранения неисправности лампы .

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

Блок-схема показывает шаги в виде блоков различных видов, а их порядок — путем соединения блоков стрелками. Это схематическое представление иллюстрирует модель решения данной проблемы. Блок-схемы используются при анализе, проектировании, документировании или управлении процессом или программой в различных областях. [1]

Обзор

Блок-схема цикла for в стиле C , представляющая следующий код:
для (i=0;i<5;i++) printf("*"); 
В результате цикла будут напечатаны пять звездочек.

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

  • Шаг процесса, обычно называемый действием , обозначается прямоугольным прямоугольником.
  • Решение обычно обозначается ромбом.

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

Блок-схемы отображают определенные аспекты процессов и обычно дополняются другими типами диаграмм. Например, Каору Ишикава определил блок-схему как один из семи основных инструментов контроля качества , наряду с гистограммой , диаграммой Парето , контрольным листом , контрольной диаграммой , диаграммой причинно-следственных связей и диаграммой рассеяния . Аналогично в 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, можно считать расширениями блок-схемы.

Типы

Шаблон блок-схемы IBM

Стернекерт (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ИмяОписание
Поточная линия (стрелка) [17]Показывает порядок работы процесса. Линия, исходящая из одного символа и указывающая на другой. [16] Стрелки добавляются, если поток не является стандартным сверху вниз, слева направо. [17]
Терминал [16]Указывает начало и конец программы или подпроцесса. Представлен в виде стадиона , [16] овального или скругленного (филе) прямоугольника. Обычно они содержат слово «Начало» или «Конец» или другую фразу, сигнализирующую о начале или конце процесса, например «отправить запрос» или «получить продукт».
Процесс [17]Представляет собой набор операций, изменяющих значение, форму или местоположение данных. Представлено в виде прямоугольника . [17]
Решение [17]Показывает условную операцию, которая определяет, какой из двух путей выберет программа. [16] Операция обычно представляет собой вопрос «да/нет» или тест «истина/ложь». Представлена ​​в виде ромба . [ 17]
Ввод/вывод [17]Указывает на процесс ввода и вывода данных, [17] как при вводе данных или отображении результатов. Представлено в виде ромба . [16]
Аннотация [16] (Комментарий) [17]Указание дополнительной информации о шаге в программе. Представлено в виде открытого прямоугольника с пунктирной или сплошной линией, соединяющей его с соответствующим символом на блок-схеме. [17]
Предопределенный процесс [16]Показывает именованный процесс, который определен в другом месте. Представлен в виде прямоугольника с двойными вертикальными краями. [16]
Соединитель на странице [16]Пары маркированных соединителей заменяют длинные или запутанные линии на странице блок-схемы. Представлены небольшим кружком с буквой внутри. [16] [20]
Внестраничный соединитель [16]Маркированный соединитель для использования, когда цель находится на другой странице. Представлен как домашняя пластина -образный пятиугольник . [16] [20]

Другие символы

Стандарты ANSI/ISO включают символы, выходящие за рамки основных форм. Некоторые из них: [19] [20]

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

Параллельная обработка

  • Параллельный режим представлен двумя горизонтальными линиями в начале или конце одновременных операций [19]

Для параллельной и одновременной обработки горизонтальные линии [21] или горизонтальная полоса [22] параллельного режима указывают начало или конец раздела процессов, которые могут выполняться независимо:

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

Программное обеспечение для построения диаграмм

Скриншот программного обеспечения для создания блок-схем Flowgorithm

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

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

Смотрите также

Ссылки

  1. ^ SEVOCAB: Словарь по программной системной инженерии. Термин: Блок-схема . Получено 31 июля 2008 г.
  2. ^ Гилбрет, Фрэнк Банкер; Гилбрет, Лилиан Моллер (1921). "Схемы процессов" (PDF) . Архивировано из оригинала (PDF) 2015-05-09 . Получено 2016-05-06 . . Американское общество инженеров-механиков.
  3. ^ Грэм, Бен С. младший (10 июня 1996 г.). «Люди прежде всего». Основной доклад на Workflow Canada .
  4. ^ Американское общество инженеров-механиков (1947) Стандарт ASME; схемы операций и технологических процессов . Нью-Йорк, 1947. (онлайн-версия)
  5. ^ Хартри, Дуглас (1949). Вычислительные приборы и машины. Издательство Иллинойсского университета. С. 112.
  6. ^ Баше, Чарльз (1986). Первые компьютеры IBM . MIT Press. стр. 327. ISBN 9780262022255.
  7. ^ Голдстайн, Герман (1972). Компьютер от Паскаля до фон Неймана . Princeton University Press. С. 266–267. ISBN 0-691-08104-2.
  8. ^ Тауб, Абрахам (1963). Собрание сочинений Джона фон Неймана . Т. 5. Macmillan. С.  80–151 .
  9. ^ Боль, Ринн: «Инструменты для структурированного и объектно-ориентированного проектирования», Prentice Hall, 2007.
  10. ^ ab Алан Б. Стернекерт (2003) Управление критическими инцидентами . стр. 126
  11. ^ Эндрю Веронис (1978) Микропроцессоры: проектирование и применение . стр. 111
  12. Мэрилин Бол (1978) Руководство для программистов . стр. 65.
  13. ^ Марк А. Фрайман (2001) Качество и улучшение процессов . стр. 169.
  14. ^ Ёкояма, Тетсуо; Аксельсен, Хольгер Бок; Глюк, Роберт (январь 2016 г.). «Основы языков обратимых блок-схем». Теоретическая информатика . 611 : 87–115 . doi : 10.1016/j.tcs.2015.07.046 .
  15. ^ Краковский, Марина (июнь 2021 г.). «Принимая на себя удар». Сообщения ACM . 64 (6): 18– 20. doi : 10.1145/3460214 .
  16. ^ abcdefghijklm Гэри Б. Шелли; Мисти Э. Вермаат (2011). Discovering Computers, Complete: Your Interactive Guide to the Digital World . Cengage Learning. стр. 691–693. ISBN 978-1-111-53032-7.
  17. ^ abcdefghijk Harley R. Myler (1998). "2.3 Блок-схемы". Основы инженерного программирования на C и Fortran . Cambridge University Press. С.  32–36 . ISBN 978-0-521-62950-8.
  18. ^ "ISO 5807:1985: Обработка информации. Символы и условные обозначения в документации для данных, программных и системных блок-схем, программных сетевых диаграмм и диаграмм системных ресурсов". Международная организация по стандартизации. Февраль 1985 г. Получено 23 июля 2017 г.
  19. ^ abc Flowcharting Techniques GC20-8152-1 (PDF) . IBM. Март 1970 г. стр. 10. Архивировано (PDF) из оригинала 15 октября 2021 г.
  20. ^ abc "Что означают различные формы блок-схем?". RFF Electronics . Получено 23 июля 2017 г.
  21. ^ Джонатан В. Вальвано (2011). Встроенные микрокомпьютерные системы: взаимодействие в реальном времени . Cengage Learning. стр.  131– 132. ISBN 978-1-111-42625-5.
  22. ^ ab Робби Т. Накацу (2009). Рассуждение с помощью диаграмм: принятие решений и решение проблем с помощью диаграмм . John Wiley & Sons. стр.  68–69 . ISBN 978-0-470-40072-2.
  23. ^ Майерс, Брэд А. «Визуальное программирование, программирование по примерам и визуализация программ: таксономия». Бюллетень ACM SIGCHI. ​​Том 17. № 4. ACM, 1986.

Дальнейшее чтение

  • ISO 5807 (1985). Обработка информации. Символы и условные обозначения в документации для данных, программных и системных блок-схем, программных сетевых диаграмм и диаграмм системных ресурсов. Международная организация по стандартизации.{{cite book}}: CS1 maint: числовые имена: список авторов ( ссылка )
  • ISO 10628 : Схемы для химической и нефтехимической промышленности
  • ECMA 4: Блок-схемы (отозван – список отозванных стандартов)
  • Шультайс, Луис А. и Эдвард М. Хейлигер. «Методы построения блок-схем. Архивировано 14 июля 2021 г. в Wayback Machine ». (1963); с введением Эдварда Хейлигера.
  • Методы построения блок-схем: руководство IBM от 1969 г. (5 МБ; PDF)
Взято с "https://en.wikipedia.org/w/index.php?title=Flowchart&oldid=1272187031"