Блок-схема (Flowchart)
Блок-схема (Flowchart) - це тип діаграми, яка представляє робочий потік або процес. Блок-схему також можна визначити як схематичне зображення алгоритму, покрокового підходу до вирішення завдання.
Блок-схема (Flowchart) є одним з інструментів в розділі "Візуальні дані та інформація (4.6.6 Visual Data And Information)" в PMBOK 7, та визначається там як:"Ця діаграма зображує входи, дії процесу та виходи одного або декількох процесів у системі."
На блок-схемі кроки зображуються у вигляді блоків різного виду, а їх порядок - у вигляді стрілок, що з'єднують блоки між собою. Таке схематичне зображення ілюструє модель розв'язання певної проблеми. Блок-схеми використовуються для аналізу, проектування, документування або управління процесом чи програмою в різних галузях.
![](https://www.maxzosim.com/content/images/2023/06/image-30.png)
Огляд блок-схеми
Блок-схеми (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](https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Flowchart_Line.svg/100px-Flowchart_Line.svg.png)
Лінія потоку - стрілка (Flowline - Arrowhead) - показує порядок роботи процесу. Лінія, що виходить від одного символу і вказує на інший. Стрілки додаються, якщо потік не є стандартним зверху вниз, зліва направо.
![Flowchart Terminal.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/Flowchart_Terminal.svg/100px-Flowchart_Terminal.svg.png)
Термінал (Terminal) - вказує на початок і кінець програми або підпроцесу. Представлений у вигляді стадіону, овалу або закругленого прямокутника. Зазвичай вони містять слово "Старт" або "Кінець", або іншу фразу, що сигналізує про початок або кінець процесу, наприклад, "надіслати запит" або "отримати продукт".
![Flowchart Process.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Flowchart_Process.svg/100px-Flowchart_Process.svg.png)
Процес (Process) - представляє набір операцій, які змінюють значення, форму або розташування даних. Зображується у вигляді прямокутника.
![Flowchart Decision.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Flowchart_Decision.svg/100px-Flowchart_Decision.svg.png)
Рішення (Decision) - Показує умовну операцію, яка визначає, яким з двох шляхів піде програма. Операція зазвичай являє собою питання "так/ні" або тест "істина/хибність". Зображується у вигляді ромба (ромб).
![Flowchart IO.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Flowchart_IO.svg/100px-Flowchart_IO.svg.png)
Введення/виведення (Input/Output) - вказує на процес введення та виведення даних, як при введенні даних, так і при виведенні результатів. Зображується у вигляді ромба.
![Flowchart Annotation.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/e/e3/Flowchart_Annotation.svg/100px-Flowchart_Annotation.svg.png)
Анотація-коментар (Annotation-Comment) - вказує на додаткову інформацію про крок у програмі. Зображується у вигляді відкритого прямокутника з пунктирною або суцільною лінією, що з'єднує його з відповідним символом на блок-схемі.
![Flowchart Predefined Process.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Flowchart_Predefined_Process.svg/100px-Flowchart_Predefined_Process.svg.png)
Заздалегідь визначений процес (Predefined Process) - Показує процес з іменем, який визначено деінде. Відображається у вигляді прямокутника з подвійною вертикальною лінією.
![Flowchart Connector.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Flowchart_Connector.svg/50px-Flowchart_Connector.svg.png)
З'єднувач на сторінці (On-page Connector) - пари маркованих з'єднувачів замінюють довгі або заплутані лінії на сторінці блок-схеми. Зображуються у вигляді маленького кружечка з літерою всередині.
![Off page connector.png](https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Off_page_connector.png/50px-Off_page_connector.png)
Позасторінковий з'єднувач (Off-page Connector) - маркований з'єднувач для використання, коли ціль знаходиться на іншій сторінці. Представлений у вигляді п'ятикутника у формі домашньої сторінки.
Інші символи
Стандарти ANSI/ISO включають символи, що виходять за межі основних форм. Деякі з них:
![Flowchart database](https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Flowchart_database.svg/54px-Flowchart_database.svg.png)
Файл даних або база даних (Data File or Database) - дані, представлені циліндром, що символізує дисковий накопичувач.
![Flowchart Document](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Flowchart_Document.svg/64px-Flowchart_Document.svg.png)
Окремі документи (Single documents) - представлені у вигляді прямокутника з хвилястою основою.
![Flowchart Document multiple](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Flowchart_Document_multiple.svg/64px-Flowchart_Document_multiple.svg.png)
Кілька документів (Multiple documents) - представлені у вигляді стопки прямокутників з хвилястими основами.
![Flowchar Manual input](https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/Flowchar_Manual_input.svg/67px-Flowchar_Manual_input.svg.png)
Ручна операція (Manual operation) - Представлена трапецією з найдовшою паралельною стороною вгорі, для позначення операції або коригування процесу, які можуть бути виконані тільки вручну.
![Flowchart manual input](https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Flowchart_manual_input.svg/66px-Flowchart_manual_input.svg.png)
Ручне введення (Manual input) - представлено чотирикутником, верхня частина якого нерівномірно нахилена вгору зліва направо, подібно до вигляду клавіатури збоку.
![Flowchart Preparation](https://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Flowchart_Preparation.svg/70px-Flowchart_Preparation.svg.png)
Підготовка або ініціалізація (Preparation or Initialization) - представлений витягнутим шестикутником, спочатку використовувався для таких дій, як встановлення перемикача або ініціалізація процедури.
Паралельна обробка
- Паралельний режим (Parallel Mode) представлений двома горизонтальними лініями на початку або в кінці одночасних операцій
При паралельній і одночасній обробці горизонтальні лінії або горизонтальна смуга в паралельному режимі вказують на початок або кінець ділянки процесів, які можуть виконуватися незалежно один від одного:
- На розгалуженні процес створює один або більше додаткових процесів, що позначається смужкою з одним вхідним шляхом і двома або більше вихідними шляхами.
- При з'єднанні два або більше процесів продовжують роботу як один процес, що позначається смужкою з кількома вхідними шляхами і одним вихідним шляхом. Усі процеси мають завершитися до того, як продовжиться єдиний процес.
Якщо стаття була для вас корисна підпишіться на розсилку або на мій телеграм канал.