Ma’lumotlar va algoritmlarni strukturalashtirish (tuzilmalashtirish)
Ma’lumotlar tuzilmalarini bilish, ularni saqlash va qayta ishlash xotirani tejash va protsessor vaqti sarfini kamaytirish nuqtai nazaridan eng samarali usullarni qo’llash imkonni beradi. Yana bir afzalligi, ma’lumotlarga tuzilmaviy yondoshuv murakkab dasturiy mahsulotlarni yaratish imkoniyati hisoblanadi. Zamonaviy dasturiy paketlar juda murakkab mahsulotlar hisoblanib, bunda minglab, millionlab satrli kodlarni hisoblashga to’g’ri keladi. Tabiiyki, bunday dasturiy mahsulotlarni “birdaniga (bir vaqtning o’zida)” ishlab chiqish imkoniyati yo’q, bular ba’zi bir tuzilmalar, ya’ni ularning tashkil etuvchi qismlari va ular orasidagi bog’liqliklar ko’rinishida ishlab chiqilishi mumkin. To’g’ri tuzilmaga keltirilgan mahsulotni ishlab chiqishning har bir bosqichida ishlab chiquvchining diqqatini mahsulotning alohida qismlariga qaratilishini talab etadi.
Katta dasturiy mahsulotlarni tuzilmalashtirishda mumkin bo’lgan yondoshuvlar mavjud. Bulardan biri algoritmlarni tuzilmalashtirishda “yuqoridan quyiga” loyihalash yoki “yuqoridan quyiga dasturlash” yondoshuvi bo’lsa, ikkinchisi, ma’lumotlarni tuzilmalashtirishda esa, “quyidan yuqoriga” loyihalash yoki “quyidan yuoriga dasturlash” yondoshuvlari hisoblanadi.
Birinchi holatda (yondoshuvda) dastur bajarishi kerak bo’lgan harakatlar tuzilmalashtiriladi. Ishlab chiqilishi ko’zda tutilgan katta va murakkab dasturni loyihalash kichik hajmdagi bir nechta qism masalalarning yechimlari ko’rinishida hal qilinadi. Shunday qilib, qo’yilgan masalaning to’liq yechimini taqdim etuvchi eng yuqorida turuvchi dasturiy modul, qismmasalalarni yechimini beruvchi modullarga murojaatni amalga oshiradigan yetarli darajada juda oddiy bo’lib chiqadi. Loyihalashning birinchi bosqichida qismmasalalarning dasturiy modullari “qopqoq” ko’rinishda amalga oshiriladi. Shundan so’ng har bir qismmasala o’z navbatida yuqoridagi qoida bo’yicha dekompozitsiya (qismlarga ajratish) qilinadi. Qism masalalarga ajratish jarayoni dekompoziyaning keyingi bosqichida aniq bir masalaning yechimini beradigan holatga kelgunga qadar davom ettiriladi. Dekompozitsiyaning eng quyi holati eng kichik instrumental vosita darajasigacha keltirilishi (masalan, tanlab olingan dasturlash tilidagi bitta operatorgacha dekompozitsiyalash) mumkin.
Ikkinchi yondoshuvda tuzilmalashtirish ma’lumotlarga asoslanadi. Har bir dasturiy mahsulot uchun hamma vaqt Buyurtmachi mavjud. Buyurtmachida esa kiruvchi ma’lumotlar bo’lib, ishlab chiqiladigan dasturiy mahsulot ushbu kiruvchi ma’lumotlarni chiquvchi ma’lumotlarga akslantirish xususiyatlarini o’z ichiga olgan bo’lishi kerak. Dasturlashning instrumental vositalari esa faqat tayanch (oddiy, sodda) ma’lumotlar turi va ular ustida bajariladigan amallarni taqdim etadi. Tayanch ma’lumotlar turini qayta ishlash uchun yoki buyurtmachining kiruvchi ma’lumotlariga moslashtirish uchun dasturchilar juda murakkab ma’lumotlar turlari va ular ustida bajariladigan yangi amallarni yaratishi kerak bo’ladi. Ma’lumotlar turini kompozitsiya (birlashtirish) qilishning oxirgi bosqichida masalaning to’liq yechimini beruvchi mos ravishda kiruvchi va chiquvchi ma’lumotlar va ular ustida bajariladigan amallarni tadbiq etishladi.
Xulosa:
Ixtiyoriy loyihani amalga oshirishda qarama-qarshi amallar, ya’ni ma’lumotlar tuzilmalarini ishlab chiqish natijalari bo’yicha algoritmning tuzilishini doimiy ravishda tuzatib borish va aksincha, algoritmlarga mos ravishda ma’lumotlar tuzilmasida tuzatishlar kiritish ishlari bajarib boriladi.