Ikkinchi bosqich - dasturlashning strukturali tuzilishi (XX asrning 60-70 yillari). Dasturlashning strukturali yondoshuvi bu dasturiy ta'minotni ishlab chiqishning barcha bosqichlarini amalga oshirishni o'z ichiga olgan tavsiya etilgan texnologik usullar to'plamidir. Strukturaviy yondashuv murakkab tizimlarning parchalanishiga (qismlarga bo'linishiga) asoslangan bo'lib, keyinchalik alohida kichik (40-50 operatorgacha) kichik dasturlar shaklida amalga oshiriladi. Bo’linishning boshqa tamoyillari paydo bo'lishi bilan (obyektiv, mantiqiy va boshqalar) bu usul protsedurali dekompozitsiya deb nomlandi.
Bo’linishga nisbatan ilgari qo'llanilgan protsedurali yondashuvdan farqli o'laroq, strukturaviy yondashuv muammoni eng sodda tuzilmaning pastki topshiriqlari iyerarxiyasi sifatida aks ettirishni talab qildi. Shuning uchun dizayn "yuqoridan pastga" amalga oshirildi va pastki dasturlarning interfeyslarini ishlab chiqishni ta'minlaydigan umumiy g'oyani amalga oshirishni nazarda tutdi. Shu bilan birga, algoritmlarni loyihalashga cheklovlar kiritildi, ularni tavsiflashning rasmiy modellari, shuningdek algoritmlarni loyihalashning maxsus usuli - bosqichma-bosqich detallashtirish usuli tavsiya etildi.
Strukturaviy dasturlash tamoyillarini qo'llab-quvvatlash protsedurali dasturlash tillari deb ataladigan poydevorga qo'yildi. Ushbu guruhning eng mashhur tillari qatoriga PL / 1, ALGOL-68, Paskal, C kiradi.
Strukturali dasturlash bilan bir vaqtda, boshqa konsepsiyalar asosida juda ko'p tillar paydo bo'ldi, ammo ularning aksariyati raqobatga dosh berolmadi. Ba'zi tillar shunchaki unutilgan, boshqalarning g'oyalari keyinchalik ishlab chiqilayotgan tillarning keyingi versiyalarida ishlatilgan.
Ishlab chiqilayotgan dasturiy ta'minotning murakkabligi va hajmining yanada o'sishi ma'lumotlarni tuzilishini rivojlantirishni talab qildi. Natijada, tillar uchun maxsus ma'lumot turlarini aniqlash mumkin bo'ladi.
Shu bilan birga, global ma'lumotlar bilan ishlashda yuzaga keladigan xatolar sonini kamaytirish uchun dasturning global ma'lumotlariga kirishni cheklash istagi kuchaygan. Natijada modulli dasturlash texnologiyasi paydo bo'ldi va rivojlana boshladi.
Modulli dasturlash bir xil global ma'lumotlardan foydalanadigan qism dasturlar guruhlarini alohida kompilyatsiya qilingan modullarda (qism dastur kutubxonalari) ajratishni o'z ichiga oladi, masalan, grafik resurslar moduli, printerni chiqish tartiblari moduli (1.4-rasm). Ushbu texnologiyadan foydalanilganda modullar orasidagi ulanishlar maxsus interfeys orqali amalga oshiriladi, shu bilan birga modulni amalga oshirishga kirish (qism dastur korpuslari va ba'zi "ichki" o'zgaruvchilar) taqiqlanadi. Ushbu texnologiyani Paskal va C (C ++) tillarining zamonaviy versiyalari, Ada va Modula tillari qo'llab-quvvatlaydi.
1.4-rasm. Modullardan tashkil topgan dastur arxitekturasi
Modulli dasturlashdan foydalanish bir nechta dasturchilar uchun dasturiy ta'minotni ishlab chiqishni ancha soddalashtirdi. Endi ularning har biri o'zlarining modullarini mustaqil ravishda ishlab chiqishlari mumkin, bu maxsus belgilangan modullararo interfeyslar orqali modullarning o'zaro ta'sirini ta'minlaydi. Bundan tashqari, keyinchalik modullar boshqa ishlanmalardagi o'zgarishsiz ishlatilishi mumkin edi, bu esa dasturchilarning samaradorligini oshirdi.
Amaliyot shuni ko'rsatdiki, modulli dasturlash bilan birgalikda tuzilgan yondashuv hajmi 100000 operatordan oshmaydigan yetarlicha ishonchli dasturlarni olishga imkon beradi [10].
Dastlab, bunday modul shunchaki ozmi-ko'pmi tasodifiy ma'lumotlar va pastki dasturlar to'plami edi. Bunday modullarda, xuddi ko'rinib turganidek, birgalikda o'zgarishi mumkin bo'lgan kichik dasturlar to'plandi. Dasturlar alohida modullardan tashkil topgan. Modullar bir-biriga qanchalik kam bog'liq bo'lsa, bunday dasturlarning samaradorligi shunchalik yuqori bo'ladi. Modullarning maksimal mustaqilligini ta'minlash uchun boshqa modullar tomonidan chaqiriladigan protseduralarni (ochiq protseduralar) ushbu modul tarkibidagi ma'lumotlarni qayta ishlaydigan yordamchi protseduralardan (yopiq protseduralar) aniq ajratish kerak. Modulga kiritilgan ma'lumotlar ham ochiq va yopiq bo'linadi.
Modulli dasturlashning torligi shundaki, qism dasturlarni chaqirishda interfeysdagi xato faqat dasturni bajarish paytida aniqlanadi (modullarning alohida kompilyatsiyasi tufayli bu xatolarni ilgari aniqlash mumkin emas). Dastur hajmining oshishi bilan odatda modullararo interfeyslarning murakkabligi oshadi va ma'lum bir vaqtdan boshlab dasturning alohida qismlarining o'zaro ta'sirini oldindan ko'rish imkonsiz bo'lib qoladi. Keng ko'lamli dasturiy ta'minotni ishlab chiqish uchun obyekt yondashuvidan foydalanish taklif qilindi.
Do'stlaringiz bilan baham: |