stringtranslate.com

Блок-схема

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

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

Блок-схема показывает шаги в виде блоков различных видов, а их порядок — путем соединения блоков стрелками. Это схематическое представление иллюстрирует модель решения данной проблемы. Блок-схемы используются при анализе, проектировании, документировании или управлении процессом или программой в различных областях. [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 включают символы, выходящие за рамки основных форм. Некоторые из них: [19] [20]

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

Для параллельной и одновременной обработки горизонтальные линии [21] или горизонтальная полоса [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 . IBM. Март 1970. С. 10.
  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.

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

Внешние ссылки