Блок-схема
Блок -схема — это тип диаграммы , которая представляет рабочий процесс или процесс . Блок-схему также можно определить как схематическое представление алгоритма , пошагового подхода к решению задачи.
На блок-схеме шаги показаны в виде блоков разных типов, а их порядок показан путем соединения блоков стрелками. Это схематическое представление иллюстрирует модель решения данной проблемы . Блок-схемы используются при анализе, проектировании, документировании или управлении процессом или программой в различных областях. [1]
Обзор
[ редактировать ]Блок-схемы используются для разработки и документирования простых процессов или программ. Как и другие типы диаграмм, они помогают визуализировать процесс. Два из многих преимуществ являются недостатками, и узкие места могут стать очевидными. В блок-схемах обычно используются следующие основные символы:
- Шаг процесса, обычно называемый действием , обозначается прямоугольным прямоугольником.
- Решение обычно обозначается ромбом.
Блок-схема называется «кросс-функциональной», когда она разделена на разные вертикальные или горизонтальные части для описания управления различными организационными подразделениями. Символ, появляющийся в определенной части, находится под контролем этого организационного подразделения. Кросс-функциональная схема позволяет автору правильно расположить ответственность за выполнение действия или принятие решения, а также показать ответственность каждой организационной единицы за разные части единого процесса.
Блок-схемы представляют определенные аспекты процессов и обычно дополняются другими типами диаграмм. Например, Каору Исикава определил блок-схему как один из семи основных инструментов контроля качества , наряду с гистограммой , диаграммой Парето , контрольным листом , контрольной диаграммой , диаграммой причин и следствий и диаграммой разброса . Точно так же в UML , стандартной нотации концептуального моделирования, используемой при разработке программного обеспечения, диаграмма деятельности , которая представляет собой тип блок-схемы, является лишь одним из многих различных типов диаграмм.
Диаграммы Насси-Шнейдермана и диаграммы Дракона являются альтернативными обозначениями потока процессов.
Общие альтернативные названия включают: блок-схему, блок-схему процесса, функциональную блок-схему, карту процесса, диаграмму процесса, диаграмму функционального процесса, модель бизнес-процесса, модель процесса, блок -схему процесса , диаграмму рабочего процесса , диаграмму бизнес-процесса. Термины «блок-схема» и «блок-схема» используются как взаимозаменяемые.
Базовая графовая структура блок-схемы представляет собой блок-граф, который абстрагирует типы узлов, их содержимое и другую вспомогательную информацию.
История
[ редактировать ]Первый структурированный метод документирования процесса, « схема процесса », был представлен Фрэнком и Лилиан Гилбрет в презентации «Диаграммы процессов: первые шаги в поиске лучшего способа выполнения работы» для членов Американского общества специалистов. Инженеры-механики (ASME) в 1921 году. [2] Инструменты Гилбретов быстро нашли применение в учебных программах по промышленному проектированию . В начале 1930-х годов промышленный инженер Аллан Х. Могенсен начал обучать деловых людей использованию некоторых инструментов промышленного проектирования на своих конференциях по упрощению труда в Лейк-Плэсиде , Нью-Йорк .
Арт Спинэнгер, выпускник класса Могенсена в 1944 году , отнес инструменты обратно в компанию «Проктер энд Гэмбл» , где разработал программу преднамеренного изменения методов. Бен С. Грэм , еще один выпускник 1944 года, директор по проектированию форм в 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 | Имя | Описание |
---|---|---|
Выкидная линия (стрелка) [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]
Программное обеспечение для построения диаграмм
[ редактировать ]Для создания блок-схем можно использовать любую программу рисования, но она не будет иметь базовой модели данных для обмена данными с базами данных или другими программами, такими как управления проектами системы или электронные таблицы . Существует множество пакетов программного обеспечения, которые могут автоматически создавать блок-схемы либо непосредственно из исходного кода языка программирования, либо из языка описания блок-схем.
Существует несколько приложений и языков визуального программирования. [23] которые используют блок-схемы для представления и выполнения программ. Обычно они используются в качестве учебных пособий для начинающих студентов.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ SEVOCAB: Словарь по проектированию программных систем . Термин: Блок-схема . Проверено 31 июля 2008 г.
- ^ Гилбрет, Фрэнк Банкер; Гилбрет, Лилиан Моллер (1921). «Схемы процессов» (PDF) . Архивировано из оригинала (PDF) 9 мая 2015 г. Проверено 6 мая 2016 г. . Американское общество инженеров-механиков.
- ^ Грэм, Бен С. младший (10 июня 1996 г.). «Люди на первом месте» . Основной доклад на конференции Workflow Canada .
- ^ Американское общество инженеров-механиков (1947) Стандарт ASME; рабочие и технологические карты . Нью-Йорк, 1947 год. ( онлайн-версия )
- ^ Хартри, Дуглас (1949). Счетные приборы и машины . Издательство Университета Иллинойса. п. 112.
- ^ Баше, Чарльз (1986). Первые компьютеры IBM . Массачусетский технологический институт Пресс. п. 327 . ISBN 9780262022255 .
- ^ Голдстайн, Герман (1972). Компьютер от Паскаля до фон Неймана . Издательство Принстонского университета. стр. 266–267 . ISBN 0-691-08104-2 .
- ^ Тауб, Авраам (1963). Собрание сочинений Джона фон Неймана . Том. 5. Макмиллан. стр. 80–151.
- ^ Боль, Ринн: «Инструменты для структурированного и объектно-ориентированного проектирования», Прентис Холл, 2007.
- ^ Перейти обратно: а б Алан Б. Стернекерт (2003) Управление критическими инцидентами . п. 126
- ^ Эндрю Веронис (1978) Микропроцессоры: дизайн и применение . п. 111
- ^ Мэрилин Бол (1978) Руководство для программистов . п. 65.
- ^ Марк А. Фрайман (2001) Улучшение качества и процессов . п. 169 .
- ^ Ёкояма, Тецуо; Аксельсен, Хольгер Бок; Глюк, Роберт (январь 2016 г.). «Основы обратимых языков блок-схем» . Теоретическая информатика . 611 : 87–115. дои : 10.1016/j.tcs.2015.07.046 .
- ^ Краковский, Марина (июнь 2021 г.). «Принимая тепло» . Коммуникации АКМ . 64 (6): 18–20. дои : 10.1145/3460214 .
- ^ Перейти обратно: а б с д и ж г час я дж к л м Гэри Б. Шелли; Мисти Э. Вермаат (2011). Полное знакомство с компьютерами: ваш интерактивный путеводитель по цифровому миру . Cengage Обучение. стр. 691–693 . ISBN 978-1-111-53032-7 .
- ^ Перейти обратно: а б с д и ж г час я дж к Харли Р. Майлер (1998). «2.3 Блок-схемы» . Основы инженерного программирования на C и Fortran . Издательство Кембриджского университета. стр. 32–36. ISBN 978-0-521-62950-8 .
- ^ «ISO 5807:1985: Обработка информации. Символы и обозначения документации для данных, блок-схем программ и систем, сетевых диаграмм программ и диаграмм системных ресурсов» . Международная организация по стандартизации. Февраль 1985 года . Проверено 23 июля 2017 г.
- ^ Перейти обратно: а б с Методы построения блок-схем GC20-8152-1 . ИБМ. Март 1970 г. с. 10.
- ^ Перейти обратно: а б с «Что означают различные формы блок-схем?» . РФФ Электроника . Проверено 23 июля 2017 г.
- ^ Джонатан В. Вальвано (2011). Встроенные микрокомпьютерные системы: интерфейс реального времени . Cengage Обучение. стр. 131–132. ISBN 978-1-111-42625-5 .
- ^ Перейти обратно: а б Робби Т. Накацу (2009). Рассуждение с помощью диаграмм: принятие решений и решение проблем с помощью диаграмм . Джон Уайли и сыновья. стр. 68–69. ISBN 978-0-470-40072-2 .
- ^ Майерс, Брэд А. « Визуальное программирование, программирование на примерах и визуализация программ: таксономия ». Бюллетень ACM SIGCHI. Том. 17. № 4. АСМ, 1986.
Дальнейшее чтение
[ редактировать ]- ИСО 5807 (1985). Обработка информации. Символы и условные обозначения документации для данных, блок-схем программ и систем, сетевых диаграмм программ и диаграмм системных ресурсов . Международная организация по стандартизации.
{{cite book}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ISO 10628 : Диаграммы для химической и нефтехимической промышленности.
- ECMA 4: Блок-схемы (отозвано – список отозванных стандартов)
- Шультайс, Луи А. и Эдвард М. Хейлигер. « Методы построения блок-схем. Архивировано 14 июля 2021 г. в Wayback Machine ». (1963); с введением Эдварда Хейлигера.
Внешние ссылки
[ редактировать ]- Методы создания блок-схем : руководство IBM от 1969 г. (5 МБ; PDF)