"Dasturiy ta'minotni ishlab chiqishda tarkibiy yondashuv"
Dasturlashga tarkibiy yondashish (XX asrning 60-70-yillari). Dasturlashga tarkibiy yondashish dasturiy ta’minlashni ishlab chiqishning barcha bosqichlarining bajarilishini qamrab oluvchi tavsiya etilayotgan texnologik usullar majmuasidan iborat. Tarkibiy yondashish asosida uncha katta bo‘lmagan (40-50 operatorgacha) alohida kichik dasturlar ko‘rinishida keyingi amalga oshirish maqsadida murakkab tizimlar dekompozitsiyasi (qismlarga bo‘laklash) yotadi. Dekompozitsiya boshqa tamoyillari (obyektli, mantiqiy va h.k) ning paydo bo‘lishidan keyin ushbu usul protsedurali dekompozitsiya deb ataladi. Ilgariroq foydalanilgan dekompozitsiyaga protsedurali yondashishdan farqli ravishda tarkibiy yondashish eng sodda tuzilishdagi kichik masalalar iyerarxiyasi ko‘rinishida masalaning taqdim etilishini talab qilar edi.
Loyihalashtirish, shu tariqa «quyidan yuqoriga» amalga oshirilib, kichik dasturlar interfeyslarining ishlab chiqilishini ta’minlagan holda umumiy g‘oyaning amalga oshirilishini ko‘zda tutgan edi. Bir vaqtning o‘zida algoritmlar konstruksiyasiga cheklashlar kiritilar, ular ta’rifining formal modellari, shuningdek, algoritmlarni loyihalashtirishning maxsus usuli qadamma-qadam detallashtirish usuli tavsiya etilgan edi. Tarkibiy dasturlash tamoyillarini ta’minlash dasturlashning protsedurali tillari asosiga kiritilgan. Qoidaga ko‘ra, ular boshqaruvni uzatishning asosiy «tarkibiy» operatorlarini, kichik dasturlar kiritilishi, lokallashtirish va ma’lumotlar sohasining «ko‘rinishliligi»ning chegaralanishini ta’minlar edi. Bu guruhning eng ma’lum tillaridan PL/1, A L G O L -6 8 , Pascal, C ni misol qilib ko‘rsatish mumkin.
Tarkibiy dasturlash bilan bir vaqtda boshqa konsepsiyalarga asoslangan ko‘p miqdordagi tillar paydo bo‘ldi, ammo ularning ko‘pchiligi raqobatga bardosh bera olmadi. Qaysidir tillar unutildi, boshqa tillarning g‘oyalaridan, rivojlanayotgan tillarning keyingi versiyalaridan keyinchalik foydalanildi. Ishlab chiqilayotgan dasturiy ta’minot murakkabligi va o‘lchamlarining keyingi o‘sishi ma’lumotlar tuzilishining rivojlanishini talab qildi. Buning oqibatida tillarda ma’lumotlarning foydalanish turlarini belgilash imkoniyati paydo bo‘ldi. Ayni paytda global ma’lumotlar bilan ishlashda kelib chiqadigan xatolar miqdorini kamaytirish uchun dasturning global ma’lumotlaridan foydalanishni chegaralashga urinish kuchaydi. Natijada modulli dasturlash texnologiyasi paydo bo‘lib, rivojlana boshladi.
Modulli dasturlash aynan bir xil global ma’lumotlarni alohida modullarga (kichik dasturlar kutubxonasi) ajratilishini ko‘zda tutadi. Masalan, grafik resurslar moduli, printerga chiqarish kichik dasturlari moduli. Ushbu texnologiyadan foydalanishda modullar o‘rtasidagi aloqa maxsus interfeys orqali amalga oshiriladi, ayni vaqtda modulning amalga oshirilishidan (kichik dasturlar tanasi va ba’zi «ichki» o‘zgaruvchan) foydalanish taqiqlangan. Bu texnologiyani Pascal va C (C++) tillarining zamonaviy versiyalari, Ada va Modula tillari ta’minlaydi. Modulli dasturlashdan foydalanish dasturiy ta ’m inotning bir qancha dasturchilar tomonidan ishlab chiqilishini ancha osonlashtirdi. Endilikda ulardan har biri modullar o‘zaro ta’sirini maxsus aytib o‘tilgan modullararo interfeyslar orqali ta’minlab, o‘z modullarini mustaqil ishlab chiqishi mumkin edi. Bundan tashqari, modullardan keyinchalik o‘zgarishlarsiz boshqa ishlab chiqishlarda
foydalanish mumkin bo‘lgan.
Bu dasturchilarning mehnat unumdorligini oshiradi. Amaliyot shuni ko‘rsatdiki, modulli dasturlash bilan birgalikda tarkibiy yondashish o‘lchami 100 000 operatordan oshmagan yetarli darajada ishonchli dasturlarni yaratish imkonini beradi. Kichik dasturni chaqirishda interfeysdagi xato faqat dastur bajarilgandagina aniqlanishi (modullarning ajratilgan kompilyatsiyasi tufayli bu xatolarni ilgariroq aniqlashning iloji yo‘q) modulli dasturlashning tor joyi hisoblanadi. Odatda dastur o‘lchami kattalashganda modullararo interfeyslarning murakkabligi ortadi va qaysidir daqiqadan boshlab dastur alohida qism larining o‘zaro ta’sir ko‘rsatishini oldindan bilishning hech ham iloji yo‘q. Katta ko‘lamdagi dasturiy ta’minotni ishlab chiqish uchun obyektli yondashishdan foydalanish taklif etildi.