Блок-схема (Flowchart)

Блок-схема (Flowchart) - це тип діаграми, яка представляє робочий потік або процес. Блок-схему також можна визначити як схематичне зображення алгоритму, покрокового підходу до вирішення завдання.

Блок-схема (Flowchart) є одним з інструментів в розділі "Візуальні дані та інформація (4.6.6 Visual Data And Information)" в PMBOK 7, та визначається там як:"Ця діаграма зображує входи, дії процесу та виходи одного або декількох процесів у системі."

На блок-схемі кроки зображуються у вигляді блоків різного виду, а їх порядок - у вигляді стрілок, що з'єднують блоки між собою. Таке схематичне зображення ілюструє модель розв'язання певної проблеми. Блок-схеми використовуються для аналізу, проектування, документування або управління процесом чи програмою в різних галузях.

Проста блок-схема, що відображає процес усунення несправності лампи.

Огляд блок-схеми

Блок-схеми (Flowcharts) використовуються для проектування та документування простих процесів або програм. Як і інші типи діаграм, вони допомагають візуалізувати процес. Дві з багатьох переваг - недоліки та вузькі місця, які можуть стати очевидними. На блок-схемах зазвичай використовуються такі основні символи:

  • Крок процесу, який зазвичай називають діяльністю, позначається прямокутною рамкою.
  • Рішення зазвичай позначається ромбом.

Блок-схема (Flowchart) називається "крос-функціональною", якщо вона розділена на різні вертикальні або горизонтальні частини, щоб описати контроль різних організаційних підрозділів. Символ, що з'являється в певній частині, знаходиться під контролем цієї організаційної одиниці.

Крос-функціональна блок-схема дозволяє автору правильно визначити відповідальність за виконання дії або прийняття рішення, а також показати відповідальність кожної організаційної одиниці за різні частини одного процесу.

Блок-схеми (Flowcharts) відображають певні аспекти процесів і зазвичай доповнюються іншими типами діаграм. Наприклад, Каору Ісікава визначив блок-схему як один із семи основних інструментів контролю якості, поряд з гістограмою, діаграмою Парето, контрольним листом, контрольною діаграмою, причинно-наслідковою діаграмою та діаграмою розсіювання. Аналогічно, в UML, стандартній мові концептуального моделювання, що використовується при розробці програмного забезпечення, діаграма діяльності, яка є різновидом блок-схеми, є лише одним з багатьох різних типів діаграм.

Діаграми Насі-Шнейдермана та діаграми Дракона - це альтернативна нотація для позначення потоку процесів.

Поширені альтернативні назви:

  • блок-схема (flow chart),
  • схема процесу (process flowchart),
  • функціональна блок-схема (functional flowchart),
  • карта процесу (process map),
  • діаграма процесу (process chart),
  • функціональна діаграма процесу (functional process chart),
  • модель бізнес-процесу (business process model),
  • модель процесу (process model),
  • діаграма потоку процесу (process flow diagram),
  • діаграма робочого процесу (work flow diagram),
  • діаграма бізнес-потоку (business flow diagram).

Терміни "блок-схема (flowchart)" і "діаграма потоків (flow chart)" використовуються як взаємозамінні.

Основою графової структури блок-схеми є граф потоків, який абстрагує типи вузлів, їхній вміст та іншу допоміжну інформацію.

Історія блок-схем

Перший структурований метод документування технологічного процесу, "потокова технологічна карта", був представлений Френком і Ліліан Гілбретами в презентації "Технологічні карти: Перші кроки у пошуку найкращого способу виконання роботи" для членів Американського товариства інженерів-механіків (ASME) у 1921 році.

Інструменти Гілбрета швидко увійшли до навчальних програм з промислової інженерії. На початку 1930-х років промисловий інженер Аллан Могенсен (Allan H. Mogensen) почав навчати бізнесменів використанню деяких інструментів промислової інженерії на своїх конференціях зі спрощення роботи в Лейк-Плесіді, штат Нью-Йорк.

Арт Спінангер, випускник класу Могенсена 1944 року, повернувся з цими інструментами до компанії Procter and Gamble, де розробив їхню програму "Свідома зміна методів" (Deliberate Methods Change Program). Бен С. Грем, ще один випускник 1944 року, директор інженерного відділу Formcraft в Standard Register Industrial, застосував блок-схему до обробки інформації, розробивши багатопотокову блок-схему для представлення кількох документів та їхніх взаємозв'язків.

У 1947 році ASME прийняла набір символів, взятий з оригінальної роботи Гілбрета, як "Стандарт ASME: Операційні та потокові діаграми процесів". (ASME Standard: Operation and Flow Process Charts).

Дуглас Гартрі у 1949 році пояснив, що Герман Ґолдштейн і Джон фон Нейман розробили блок-схему (спочатку діаграму) для планування комп'ютерних програм. Його сучасна версія була підтверджена інженерами IBM та особистими спогадами Ґолдстіна. Оригінальні блок-схеми програмування Гольдштейна і фон Неймана можна знайти в їхній неопублікованій доповіді "Планування та кодування задач для електронно-обчислювального приладу, частина II, том 1" (1947), яка відтворена в зібраннях творів фон Неймана.

Блок-схема стала популярним інструментом для опису комп'ютерних алгоритмів, але її популярність знизилася в 1970-х роках, коли інтерактивні комп'ютерні термінали та мови програмування третього покоління стали поширеними інструментами для комп'ютерного програмування, оскільки алгоритми можуть бути виражені більш стисло у вигляді вихідного коду на таких мовах. Часто застосовують псевдокод, який використовує загальні ідіоми таких мов без суворого дотримання деталей конкретної мови.

На початку 21 століття блок-схеми все ще використовувалися для опису комп'ютерних алгоритмів. Сучасні техніки, такі як UML-діаграми діяльності та Дракон-діаграми, можна вважати розширенням блок-схеми.

Види блок-схем

Стернекерт (Sterneckert, 2003) припустив, що блок-схеми можна моделювати з точки зору різних груп користувачів (наприклад, менеджерів, системних аналітиків і клерків), і що існує чотири основних типи схем:

  • Блок-схеми документів (Document flowcharts), що показують елементи керування потоком документів через систему
  • Блок-схеми даних (Data flowcharts), що показують елементи керування потоком даних у системі
  • Системні блок-схеми (System flowcharts), що показують елементи керування на фізичному або ресурсному рівні
  • Блок-схеми програми (Program flowchart), що показує елементи керування програмою в системі

Зверніть увагу, що кожен тип блок-схем фокусується на якомусь елементі управління, а не на самому потоці.

Однак, існують і інші класифікації. Наприклад, Ендрю Вероніс (1978) назвав три основні типи блок-схем: системна блок-схема, загальна блок-схема і детальна блок-схема. Того ж року Мерилін Бол (1978) стверджувала, що "на практиці в плануванні рішень використовуються два види блок-схем: системні блок-схеми і блок-схеми програм...".

Пізніше Марк А. Фрайман (2001) виявив більше відмінностей: "Блок-схеми рішень, логічні блок-схеми, системні блок-схеми, блок-схеми продуктів і блок-схеми процесів - це лише деякі з різних типів блок-схем, які використовуються в бізнесі та уряді".

Крім того, багато технік діаграм схожі на блок-схеми, але мають іншу назву, наприклад, діаграми діяльності UML.

Структурні елементи блок-схеми

Загальні символи

Американський національний інститут стандартів (ANSI) встановив стандарти для блок-схем та їхніх символів у 1960-х роках. Міжнародна організація зі стандартизації (ISO) прийняла символи ANSI у 1970 році. Чинний стандарт ISO 5807 був переглянутий у 1985 році.

Як правило, блок-схеми рухаються зверху вниз і зліва направо.

Flowchart Line.svg
Flowline (Arrowhead)

Лінія потоку - стрілка (Flowline - Arrowhead) - показує порядок роботи процесу. Лінія, що виходить від одного символу і вказує на інший. Стрілки додаються, якщо потік не є стандартним зверху вниз, зліва направо.

Flowchart Terminal.svg
Terminal

Термінал (Terminal) - вказує на початок і кінець програми або підпроцесу. Представлений у вигляді стадіону, овалу або закругленого прямокутника. Зазвичай вони містять слово "Старт" або "Кінець", або іншу фразу, що сигналізує про початок або кінець процесу, наприклад, "надіслати запит" або "отримати продукт".

Flowchart Process.svg
Process

Процес (Process) - представляє набір операцій, які змінюють значення, форму або розташування даних. Зображується у вигляді прямокутника.

Flowchart Decision.svg
Decision

Рішення (Decision) - Показує умовну операцію, яка визначає, яким з двох шляхів піде програма. Операція зазвичай являє собою питання "так/ні" або тест "істина/хибність". Зображується у вигляді ромба (ромб).

Flowchart IO.svg
Input/Output

Введення/виведення (Input/Output) - вказує на процес введення та виведення даних, як при введенні даних, так і при виведенні результатів. Зображується у вигляді ромба.

Flowchart Annotation.svg
Annotation (Comment)

Анотація-коментар (Annotation-Comment) - вказує на додаткову інформацію про крок у програмі. Зображується у вигляді відкритого прямокутника з пунктирною або суцільною лінією, що з'єднує його з відповідним символом на блок-схемі.

Flowchart Predefined Process.svg
Predefined Process

Заздалегідь визначений процес (Predefined Process) - Показує процес з іменем, який визначено деінде. Відображається у вигляді прямокутника з подвійною вертикальною лінією.

Flowchart Connector.svg
On-page Connector

З'єднувач на сторінці (On-page Connector) - пари маркованих з'єднувачів замінюють довгі або заплутані лінії на сторінці блок-схеми. Зображуються у вигляді маленького кружечка з літерою всередині.

Off page connector.png
Off-page Connector

Позасторінковий з'єднувач (Off-page Connector) - маркований з'єднувач для використання, коли ціль знаходиться на іншій сторінці. Представлений у вигляді п'ятикутника у формі домашньої сторінки.

Інші символи

Стандарти ANSI/ISO включають символи, що виходять за межі основних форм. Деякі з них:

Flowchart database
Data File or Database

Файл даних або база даних (Data File or Database) - дані, представлені циліндром, що символізує дисковий накопичувач.

Flowchart Document
Single documents

Окремі документи (Single documents) - представлені у вигляді прямокутника з хвилястою основою.

Flowchart Document multiple
Multiple documents

Кілька документів (Multiple documents) - представлені у вигляді стопки прямокутників з хвилястими основами.

Flowchar Manual input
Manual operation

Ручна операція (Manual operation) - Представлена трапецією з найдовшою паралельною стороною вгорі, для позначення операції або коригування процесу, які можуть бути виконані тільки вручну.

Flowchart manual input
Manual input

Ручне введення (Manual input) - представлено чотирикутником, верхня частина якого нерівномірно нахилена вгору зліва направо, подібно до вигляду клавіатури збоку.

Flowchart Preparation
Preparation or Initialization

Підготовка або ініціалізація (Preparation or Initialization) - представлений витягнутим шестикутником, спочатку використовувався для таких дій, як встановлення перемикача або ініціалізація процедури.

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

  • Паралельний режим (Parallel Mode) представлений двома горизонтальними лініями на початку або в кінці одночасних операцій

При паралельній і одночасній обробці горизонтальні лінії або горизонтальна смуга в паралельному режимі вказують на початок або кінець ділянки процесів, які можуть виконуватися незалежно один від одного:

  • На розгалуженні процес створює один або більше додаткових процесів, що позначається смужкою з одним вхідним шляхом і двома або більше вихідними шляхами.
  • При з'єднанні два або більше процесів продовжують роботу як один процес, що позначається смужкою з кількома вхідними шляхами і одним вихідним шляхом. Усі процеси мають завершитися до того, як продовжиться єдиний процес.

Якщо стаття була для вас корисна підпишіться на розсилку або на мій телеграм канал.