Modullar va ularning xususiyatlari Yetarlicha murakkab dasturiy ta’minotni loyihalashtirishda uning umumiy tuzilmasi belgilangandan so‘ng, loyihachi fikriga ko‘ra, keyingi dekompozitsiyaga muhtoj bo‘lmagan elementlar olingunga qadar tanlangan yondashuvga muvofiq holda komponentlar dekompozitsiyasi bajariladi.
Avval eslatib o‘tilganidek, hozirgi paytda ishlab chiqilayotgan dasturiy ta’minot dekompozitsiyasining tegishli yondashuv bilan bog`liq ikki usuli qo‘llaniladi:
• protsedurali (yoki tuzulmaviy-yondashuv nomi bo‘yicha);
• obyektli.
Ko‘rsatilgan dekompozitsiya usullaridan tashqari dasturlash nazariyasida dekompozitsiyasining boshqa usullari ham belgilanadi: mahsulot faktlari va qoidalariga — mantiqiy dekompozitsiya va hokazo. Mazkur dekompozitsiya usullari sun’iy intellekt tillarida qo'llaniladi, shu boisdan ular ushbu darslikda
ko‘rib chiqilmaydi.
Qaror qabuli bilan bog‘liq funksiyalar yuqori darajadagi tagdasturlar, bevosita qayta ishlash esa quyi darajadagi tagdasturlar orqali ijobatlanadigan tagdasturlar iyerarxiyasi protsedurali dekompozitsiya natijasi hisoblanadi. Bu dasturlashga tuzilmaviy yondashuvning boshqa tavsiyalari bilan birgalikda shakllantirilgan
vertikal boshqaruv tamoyili bilan muvofiqlashadi. U, shuningdek, har qanday tagdastur o‘zining chaqirgan tagdastur boshqaruvini qaytarishini talab qilgan holda boshqaruv berilishining ehtimolli variantlarini ham chegaralaydi.
Obyektli dekompozitsiya natijasi obyektlar uyg‘unligi bo‘lib, tegishli maydonlar bilan ishlovchi ma’lumotlar va usullar uyg‘unligini ifodalagan holda keyinroq ayrim maxsus ishlab chiqiluvchi namunalar (sinflar) sifatida aniqlanadi.
Shunday qilib, har qanday dekompozitsiya usulida amalga oshirish jarayonida modullarga aylantiriladigan kichik dasturlarning tegishli ma’lumotlari bilan bog'liq majmua vujudga keltiriladi.
Modullar Avtonom kompilyatsiyalanuvchi dasturiy birlik modul deyiladi. ≪Modul≫ atamasi an’anaviy ravishda ikki ma’noda qo‘llaniladi. Dastlab, dasturlar o‘lchami nisbatan katta bo`lmagan va barcha tagdasturlar alohida kompilyatsiyalangan paytda kichik dastur, ya’ni murojaat nom bo‘yicha bajariladigan dastur fragmentlari bog‘liqligining davomiyligi modul deb tushuniladi. Vaqt o‘tib, dasturlar o‘lchami ancha ortdi va resurslar: konstantlar,
o‘zgaruvchilar, namunalar, sinflar va tagdasturlar bayonlari kutubxonasini yaratish imkoniyati paydo bo‘lgach, ≪modul≫ atamasi dasturiy resurslarning avtonom kompilyatsiyalanuvchi majmui ma’nosida ham qo‘llana boshlandi.
Modul ma’lumotlarni xotiraning umumiy sohalari yoki parametrlari orqali olishi mumkin. Dastavval modullarga (hali tagdastur sifatida tushunilayotgan) quyidagi talablar qo‘yilardi:
• alohida kompilyatsiya;
• bitta kirish va chiqish nuqtasi;
• vertikal boshqaruv tamoyiliga mosligi;
• boshqa modullarni chaqiruv imkoniyati;
• katta bo`lmagan o‘lcham (50—60 til operatorigacha);
• chaqiruv tarixiga bog‘liq bo'lmaslik;
• bitta funksiyani bajarish.
Bitta kirish nuqtasi, bitta chiqish nuqtasi, chaqiruv tarixidan mustaqillik va vertikal boshqaruv prinsipiga muvofiqlik talablarining boisi shunda ediki, o‘sha paytlarda operativ xotira hajmiga bo‘lgan jiddiy cheklovlar tufayli dasturchilar kodlarning maksimal takrorlanuvchanligi ehtimoli mavjud dasturlar ishlab chiqishga
majbur edilar. Natijada bir necha kirish va chiqish nuqtalari mavjud tagdasturlar nafaqat oddiy hoi, balki dasturlashning yuqori toifasi sanalardi. Oqibati esa shu ediki, dasturlarni nafaqat modifikatsiyalash, balki tushunish, ba’zan esa shunchaki to‘liq sozlash ham juda murakkab bo‘lardi.
Vaqt o‘tib, tuzilmaviy yondashuvning asosiy talablarini dasturlash tillari quvvatlaydigan va modul deganda alohida kompilyatsiyalanuvchi resurslar kutubxonasi tushuniladigan bo‘lgach, modullar mustaqilligi asosiy talabga aylandi.
Amaliyot ko‘rsatdiki, modullar mustaqilligi darajasi qanchalik yuqori bo‘lsa, shunchalik ravishda:
• alohida modulda va butun dasturda tartibni bilish hamda muvofiq ravishda uni testlash, sozlash va modifikatsiyalash yengil bo‘ladi;
• eski xatolarni tuzatishda yoki dasturlarga o‘zgarishlar kiritishda yangi xatolar paydo bo‘lishining ehtimoli, ya’ni ≪to‘liqligi≫ effekt paydo bo‘lishi ehtimoli kamayadi;
• dasturchilar guruhi tomonidan dasturiy ta’minot ishlab chiqilishini tashkillashtirish osonlashadi va uni kuzatish yengillashadi. Shunday qilib, modullar qaramligini kamaytirish loyiha texnologikligini yaxshilaydi. Modullar (dasturlar, kutubxonalar) mustaqilligi darajasini ikki mezon bo‘yicha — ulashuv 2 va aloqadorlik bo'yicha baholanadi.