Ishlamaydigan muammoni hal qilish jarayonini ifodalovchi oddiy oqim diagrammasi 
**Oqim diagrammasi** ish jarayonini aks ettiruvchi diagramma turidir. Sxemani algoritmning diagrammatik tasviri, vazifani bosqichma-bosqich hal qilish usuli sifatida ham aniqlash mumkin.

Oqim diagrammasi qadamlarni har xil turdagi *qutilar* shaklida va qutilarni *strelkalar* bilan bogʻlash orqali ularning tartibini koʻrsatadi. Ushbu diagrammali tasvir berilgan muammoni hal qilish modelini tasvirlaydi. Oqim sxemalari turli sohalarda jarayon yoki dasturni tahlil qilish, loyihalash, hujjatlashtirish yoki boshqarishda qo‘llaniladi.

Umumiy koʻrinish
----------------

Oqim diagrammasi (sexamasi) 
**Oqim sxemalari** oddiy jarayonlar yoki dasturlarni loyihalash va hujjatlashtirishda ishlatiladi. Boshqa turdagi diagrammalar singari, ular nima sodir boʻlayotganini tasavvur qilishda yordam beradi va shu bilan jarayonni tushunishga yordam beradi, shuningdek, jarayonning kamchiliklari va muammolari kabi unchalik aniq boʻlmagan xususiyatlarni topishga yordam beradi. Har xil turdagi oqim sxemalari mavjud: har bir turning oʻziga xos qutilari va yozuvlari mavjud. Oqim diagrammasidagi ikkita eng keng tarqalgan quti turlari:

* **Qayta ishlash bosqichi**, odatda *faoliyat* deb ataladi va toʻrtburchak quti sifatida belgilanadi.
* Odatda **olmos** sifatida koʻrsatilgan qaror.

Turli xil tashkiliy boʻlinmalarni boshqarishni tavsiflash uchun diagramma turli *vertikal* yoki *gorizontal* qismlarga boʻlinganida, oqim diagrammasi „oʻzaro faoliyat" deb taʼriflanadi. Muayyan qismda paydo boʻladigan belgi ushbu tashkiliy boʻlinmaning nazorati ostida boʻladi. Oʻzaro funktsional oqim sxemasi muallifga harakatni bajarish yoki qaror qabul qilish uchun javobgarlikni toʻgʻri aniqlashga va har bir tashkiliy boʻlinmaning bitta jarayonning turli qismlari uchun javobgarligini koʻrsatishga imkon beradi.

Oqim sxemalari jarayonlarning maʼlum tomonlarini tasvirlaydi va odatda boshqa turdagi diagrammalar bilan toʻldiriladi. Masalan, *Kaoru Ishikawa* gistogrammasi, *Pareto* diagrammasi, nazorat varagʻi, nazorat diagrammasi, sabab va taʼsir diagrammasi va tarqalish diagrammasi yonida sifatni nazorat qilishning yettita asosiy vositalaridan biri sifatida oqim sxemasini aniqladi. Xuddi shunday, UML da, dasturiy taʼminotni ishlab chiqishda qoʻllaniladigan standart konseptsiyani modellashtirish belgisi, oqim sxemasining bir turi boʻlgan faoliyat diagrammasi juda koʻp turli xil diagramma turlaridan biridir.

**Nassi-Shneiderman** diagrammalari va **Drakon** diagrammalar jarayon oqimining muqobil belgisidir.

Umumiy muqobil belgilarga quyidagilar kiradi: *oqim diagrammasi, jarayon sxemasi, funktsional oqim diagrammasi, jarayon xaritasi, jarayon sxemasi, funktsional jarayon sxemasi, biznes-jarayon modeli, jarayon modeli, jarayon oqimi diagrammasi, ish oqimi diagrammasi, biznes oqimi diagrammasi.* „Blok sxemasi" va „oqim sxemasi" atamalari bir-birining oʻrnida ishlatiladi.
Oqim diagrammasining asosiy grafik strukturasi *oqim grafigi* boʻlib, u tugun turlarini, ularning mazmunini va boshqa yordamchi maʼlumotlarni ajratib turadi.

Tarixi
------

Jarayonlar oqimini hujjatlashtirishning birinchi tizimli usuli — „oqim jarayonlari diagrammasi" mexanik muhandislar (ASME) 1921-yilda*Frank* va *Lillian Gilbreth* tomonidan  Amerika Jamiyati aʼzolariga „Jarayon jadvallari: ishni bajarishning eng yaxshi usulini topishdagi birinchi qadamlar" taqdimotida taqdim etilgan. Gilbreths asboblari tezda sanoat muhandisligi oʻquv dasturlariga kirib bordi. 1930-yillarning boshlarida sanoat muhandisi Allan H. Mogensen New Yorkning Lake Placid shahrida boʻlib oʻtgan ishni soddalashtirish boʻyicha konferensiyalarida ishbilarmonlarni sanoat muhandisligining baʼzi vositalaridan foydalanishga oʻrgatishni boshladi.

*Art Spinanger*, Mogensen sinfining 1944-yil bitiruvchisi, asboblarni Procter and Gamble kompaniyasiga qaytarib berib, u yerda oʻzlarining ataylab usullarni oʻzgartirish dasturini ishlab chiqdi. Ben S. Graham, yana bir 1944-yil bitiruvchisi, *Standard Register Industrial* kompaniyasining **Formcraft** muhandisligi direktori, bir nechta hujjatlarni va ularning munosabatlarini taqdim etish uchun koʻp oqimli jarayonlar diagrammasini ishlab chiqishda oqim jarayonlari sxemasini axborotga ishlov berishda qoʻlladi. 1947-yilda ASME Gilbrethning asl asaridan olingan belgilar toʻplamini *"ASME standarti: Operatsiya va oqim jarayonlari diagrammasi"* sifatida qabul qildi.

1949-yilda Douglas Hartree *Herman Goldstine va John von Neumann* kompyuter dasturlarini rejalashtirish uchun oqim sxemasini (dastlabki diagramma) ishlab chiqqanligini tushuntirdi. Uning zamonaviy hisobi IBM muhandislari  va Goldstinening shaxsiy xotiralari tomonidan maʼqullangan. *Herman Goldstine va John von Neumann*ning asl dasturlash sxemalarini ularning nashr etilmagan maʼruzasida topish mumkin, „Elektron hisoblash asboblari uchun muammolarni rejalashtirish va kodlash, II qism, 1-jild" (1947), bu fon Neumanning toʻplangan asarlarida aks ettirilgan.

Blok-sxema kompyuter algoritmlarini tavsiflash uchun mashhur vositaga aylandi, lekin uning mashhurligi 1970-yillarda, interaktiv kompyuter terminallari va uchinchi avlod dasturlash tillari kompyuter dasturlash uchun umumiy vositaga aylanganda pasaydi, chunki algoritmlarni bunday tillarda dastlabki kod sifatida qisqaroq ifodalash mumkin. Koʻpincha psevdokod qoʻllaniladi, u maʼlum bir tilning tafsilotlariga qatʼiy rioya qilmasdan bunday tillarning umumiy idiomalaridan foydalanadi. XXI asr boshlarida ham kompyuter algoritmlarini tavsiflash uchun oqim sxemalaridan foydalanilgan. UML faoliyat diagrammalari va **Drakon** diagrammalari kabi zamonaviy usullarni oqim sxemasining kengaytmalari deb hisoblash mumkin.

Turlari
-------

**Sterneckert** (2003) **oqim sxema**larini turli foydalanuvchilar guruhlari (masalan, menejerlar, tizim tahlilchilari va kotiblar) nuqtai nazaridan modellashtirish mumkinligini va toʻrtta umumiy tur mavjudligini taklif qildi:

* *Tizim orqali hujjat aylanishi ustidan nazoratni koʻrsatadigan hujjat oqimi sxemalari*
* *Tizimdagi maʼlumotlar oqimi ustidan nazoratni koʻrsatadigan maʼlumotlar oqimi sxemalar*i
* *Jismoniy yoki resurs darajasida boshqaruvni koʻrsatadigan tizim sxemalari*
* *Tizim ichidagi dasturdagi boshqaruv elementlarini koʻrsatadigan dastur sxemasi*

Eʼtibor bering, oqim sxemasining har bir turi alohida oqimning oʻziga emas, balki qandaydir boshqaruvga qaratilgan.
Biroq, turli xil tasniflar mavjud. Masalan, *Andrew Veronis* (1978) oqim sxemalarining uchta asosiy turini nomladi: **tizim sxemasi, umumiy oqim sxemasi va batafsil oqim sxemasi.** Oʻsha yili Marilyn Bohl (1978) „amalda yechimlarni rejalashtirishda ikki xil oqim diagrammasi qoʻllaniladi: **tizim sxemalari va dastur sxemalari**…". Yaqinda Mark A. Fryman (2001) koʻproq farqlarni aniqladi: „Qarorlar sxemalari, mantiqiy sxemalar, tizimlar oqim diagrammalari, mahsulot oqim diagrammalari va jarayonlar oqim diagrammalari biznes va hukumatda qoʻllaniladigan turli xil oqim diagrammalaridan faqat bir nechtasi".

Bundan tashqari, koʻplab diagramma usullari oqim(blok) diagrammalariga oʻxshaydi, lekin UML faoliyat diagrammasi kabi boshqa nomga ega.

Qurilish bloklari
-----------------

### Umumiy belgilar

 **Amerika Milliy Standartlar Instituti** (ANSI) 1960-yillarda oqim sxemalari va ularning belgilari uchun standartlarni oʻrnatdi. Xalqaro standartlashtirish tashkiloti (ISO) 1970-yilda *ANSI* belgilarini qabul qilgan. Amaldagi standart ISO 5807 1985-yilda qayta koʻrib chiqilgan. Odatda, oqim sxemalari yuqoridan pastga va chapdan o‘ngga o‘tadi.

| ANSI/ISO shakllari | Nomi | Tavsif |
| --- | --- | --- |
|  | Oqim chizigʻi (Oʻq boshi) | Jarayonning ishlash tartibini koʻrsatadi. Bir belgidan kelib, boshqasiga ishora qiluvchi chiziq. Arrowheads are added if the flow is not the standard top-to-bottom, left-to right. |
|  | Terminal | Dastur yoki kichik jarayonning boshlanishi va tugashini bildiradi. oval or rounded (fillet) rectangle. They usually contain the word „Start" or „End", or another phrase signaling the start or end of a process, such as „submit inquiry" or „receive product". |
|  | Jarayon | Maʼlumotlarning qiymati, shakli yoki joylashuvini oʻzgartiruvchi operatsiyalar toʻplamini toʻrtburchak shaklida ifodalaydi. |
|  | Qaror | Dastur ikki yoʻldan qaysi birini tanlashini aniqlaydigan shartli amalni koʻrsatadi. |
|  | Kirish/chiqish | Maʼlumotlarni kiritish va chiqarish jarayonini koʻrsatadi, xuddi maʼlumotlarni kiritish yoki natijalarni koʻrsatish kabi. |
|  | Izoh | Dasturdagi qadam haqida qoʻshimcha maʼlumotni koʻrsatuvchi. Ochiq toʻrtburchaklar shaklida tasvirlangan, uni oqim diagrammasidagi mos keladigan belgi bilan bogʻlaydigan chiziq yoki qattiq chiziq. |
|  | Oldindan belgilangan jarayon | Boshqa joyda belgilangan jarayonni koʻrsatadi. Ikki marta urilgan vertikal qirralari boʻlgan toʻrtburchaklar shaklida ifodalanadi. |
|  | Sahifadagi ulagich | Yorliqli ulagichlar juftligi oqim diagrammasi sahifasida uzun yoki chalkash chiziqlar oʻrnini bosadi. Ichkarida harfli kichik doira bilan ifodalanadi. |
|  | Sahifadan tashqari ulagich | Boshqa sahifada boʻlganda foydalanish uchun etiketli ulagich. |

### Boshqa belgilar

ANSI/ISO standartlari asosiy shakllardan tashqari quyidagi belgilarni oʻz ichiga oladi. Ayrimlari:

| Shakl | Nomi | Tavsif |
| --- | --- | --- |
| Flowchart database | Maʼlumotlar fayli yoki maʼlumotlar bazasi | Disk qurilmasini bildiruvchi silindr bilan ifodalangan maʼlumotlar. |
| Flowchart Document | Hujjat | Toʻlqinsimon asosli toʻrtburchak shaklida taqdim etilgan yagona hujjatlar. |
| Flowchart Document multiple | Bir nechta hujjatlar toʻlqinli asosli toʻrtburchaklar toʻplami sifatida taqdim etiladi. |
| Flowchar Manual input | Qoʻlda ishlanadigan opsiyalar | Tepasida eng uzun parallel tomoni boʻlgan trapezoid bilan ifodalanadi, faqat qoʻlda bajarilishi mumkin boʻlgan operatsiya yoki jarayonni sozlash uchun. |
| Flowchart manual input | Qoʻlda kiritish opsiyalari | To'rtburchak bilan ifodalangan, tepasi klaviaturaning yon koʻrinishi kabi chapdan oʻngga tartibsiz qiyshaygan. |
| Flowchart Preparation | Tayyorlash yoki ishga tushirish | Choʻzilgan oltiburchak bilan ifodalangan, dastlab kalitni oʻrnatish yoki tartibni ishga tushirish kabi qadamlar uchun ishlatilgan. |

Parallel jarayonlar
-------------------

* *Parallel rejim bir vaqtda bajariladigan operatsiyalar boshida yoki oxirida ikkita gorizontal chiziq bilan ifodalanadi.*

Parallel va bir vaqtda ishlov berish uchun Parallel rejim gorizontal chiziqlari yoki gorizontal chiziq mustaqil ravishda bajarilishi mumkin boʻlgan jarayonlar boʻlimining boshlanishi yoki oxirini koʻrsatadi:

* Vilkada jarayon bir yoki bir nechta qoʻshimcha jarayonlarni yaratadi, ular bitta kiruvchi va ikki yoki undan ortiq chiqish yoʻllari boʻlgan chiziq bilan koʻrsatilgan.
* Birlashtirishda ikki yoki undan ortiq jarayonlar bir nechta kiruvchi va bitta chiqish yoʻli boʻlgan chiziq bilan koʻrsatilgan yagona jarayon sifatida davom etadi. Yagona jarayon davom etgunga qadar barcha jarayonlar yakunlanishi kerak.

Dasturiy taʼminot
-----------------

### Diagramma tuzish

Flowgoritm
Har qanday chizma dasturidan oqim diagrammalarini yaratish uchun foydalanish mumkin, ammo ularda maʼlumotlar bazalari yoki loyihalarni boshqarish tizimlari yoki elektron jadval kabi boshqa dasturlar bilan maʼlumotlarni almashish uchun asosiy maʼlumotlar modeli boʻlmaydi. Toʻgʻridan-toʻgʻri dasturlash tilining manba kodidan yoki oqim sxemasini tavsiflash tilidan avtomatik ravishda oqim diagrammalarini yaratishi mumkin boʻlgan koʻplab dasturiy paketlar mavjud.

Bir nechta ilovalar va vizual dasturlash tillari mavjud boʻlib, ularda dasturlarni koʻrsatish va bajarish uchun sxemalar ishlatiladi. Odatda, ular boshlangʻich talabalar uchun oʻqitish vositalari sifatida ishlatiladi. Masalan: *Flowgorithm, Raptor, LARP, Visual Logic, Fischertechnik ROBO Pro* va *VisiRule*.

Manbalar
--------

1. ↑
2. ↑
3. ↑
4. ↑  American Society of Mechanical Engineers (1947) ASME standard; operation and flow process charts. New York, 1947
5. ↑
6. ↑
7. ↑
8. ↑
9. ↑   Bohl, Rynn: „Tools for Structured and Object-Oriented Design", Prentice Hall, 2007.
10. ↑  Alan B. Sterneckert (2003) Critical Incident Management
11. ↑   Andrew Veronis (1978) Microprocessors: Design and Applications
12. ↑   Marilyn Bohl (1978) A Guide for Programmers. p. 65
13. ↑  Mark A. Fryman (2001) Quality and Process Improvement.
14. ↑
15. ↑
16. ↑
17. 1 2  „What do the different flowchart shapes mean?".  RFF Electronics. Qaraldi: 23-iyul 2017-yil.
18. ↑
19. ↑

Havolalar
---------

* *Blok(oqim) sxemasi texnikasi* Wayback Machine saytida arxivlandi (2011-05-15).
* *Rasmiy website*