Modulli dasturlashning kelib chiqish tarixi.
Mavzu:Modulli dasturlashning kelib chiqish tarixi. Reja: 1.Kirish. 2.Dasturlash tarixining bosqichma-bossqich rivojlanishi. 3.Modullar va uning xususiyatlari. 4. Konseptual model haqida. 5.Xulosa
Modulli dasturlashda, masalan, Modula2 kabi tilda prosedurali dasturlashda topilgan ayrim kamchiliklarni bartaraf etishga urinib ko’rildi. Modulli dasturlash dasturni bir necha tarkibiy bo’laklarga, yoki, boshqacha qilib aytganda, modullarga bo’lib tashdlaydi. Agar prosedurali dasturlash ma’lumotlar va prosedsralarni bo’lib tashlasa, modulli dasturlash, undan farqli o’laroq, ularni birlashtiradi. Modul ma’lumotlarning o’zidan hamda ma’lumotlarga ishlov beradigan proseduralardan iborat. Dasturning boshqa qismlariga moduldan foydalanish kerak bo’lib qolsa, ular modul interfeysiga murojaat etib qo’yaqoladi. Modullar barcha ichki axborotni dasturning boshqa qismlarida yashiradi. Biroq modulli dasturlash ham kamchiliklardan holi emas. Modullar kengaymas bo’ladi, bu degani kodga bevosita kirishsiz hamda uni to’g’ridan-to’g’ri o’zgartirmay turib modulni qadamma-qadam uzgartirish mumkin emas. Bundan tashqari, bitta modulni ishlab chiqishda, uning funksiyalarini boshqasiga o’tkazmay (delegat qilmay) turib boshqasidan foydalanib bo’lmaydi. Yana garchi modulda turni belgilab bo’lsa-da, bir modul boshqasida belgilangan turdan foydalana olmaydi. Modulli va prosedurali dasturlash tillarida tuzilmalashtirilgan va tuzilmalashtirilmagan ma’lumotlar o’z «tur»iga ega. Biroq turni kengaytirish usuli, agar «agregatlash» deb ataluvchi usul yordamida boshqa turlarni yaratishni hisobga olmaganda, mavjud emas. Va, nihoyat, modulli dasturlash — bu yana proseduraga mo’ljallangan gibridli sxema bo’lib, unga amal qilishda dastur bir necha proseduralarga bo’linadi. Biroq endilikda proseduralar ishlov berilmagan ma’lumotlar ustida amallarni bajarmaydi, balki modullarni boshqaradi. Obyektga mo’ljallangan dasturlash (OMD) modulli dasturlashdan keyingi mantiqiy pog’onani egallaydi, u modulga nasldan-naslga o’tishni va polimorfizmni qo’shadi. OMD dan foydalanr ekan, dasturchi dasturni bir qator oliy darajali obyektlarga bo’lish yo’li bilan tizimlashtiradi. Har bir obyekt hal qilinayotgan muammoning ma’lum bir tomonini modellashtiradi. OMD endilikda dasturni bajarish jarayonini boshqarish uchun dasturchi diqqatini proseduralarni ketma-ketlikda chaqirib olish ro’yxatini tuzib o’tirishga qaratmaydi. Buning o’rniga obyektlar o’zaro aloqada bo’ladi. OMYo yordamida ishlab chiqilgan dastur hal qilinayotgan muammoning amaldagi modeli bo’lib xizmat qiladi.
Dasturlash — predmet va texnikaning nisbatan yosh va tez г ivojlanayotgan sohasi. Mavjud dasturiy va texnik vositalarni real ishlab chiqish va tarmoqlashtirishni olib borish tajribasi doimo qayta izlanishni talab etadi. Natijada yangi usullar, uslublar va texnologiyalar paydo bo‘ladi, ular o‘z navbatida, dasturiy ta’minlashni ishlab chiqishning yanada zamonaviy vositalari uchun asos bo'lib xizmat qiladi. Yangi texnologiyalarni yaratish jarayonlarini tekshirish va ularning asosiy yo‘nalishlarini aniqlash, bu texnologiyalarni dasturlashning rivojlanish darajasi hamda dasturchilar ixtiyoridagi dasturiy va apparat vositalarining xususiyatlari bilan solishtirish maqsadga muvofiqdir. XX asrning 60-yillari boshida «dasturlash inqirozi» yuz berdi. U operatsion tizimlar kabi murakkab dasturiy ta’minotni ishlab chiqishga uringan firmalar loyihalarni tugallashning barcha muddatlaridan kechikkan edi. Loyiha joriy etilishidan oldinroq eskirib qolar, uning qiymati ortib borar va, natijada, ko‘pgina loyihalar shu tariqa tugallanmay qolib ketar edi. Ikkinchi bosqich 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.) 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’m inlagan holda umumiy g‘oyaning amalga oshirilishini ko‘zda tutgan edi. Bir vaqtning o‘zida algoritmlar konstruksiyasiga cheklashlar kiritilar, ular ta’rifning formal modellari, shuningdek, algoritmlarni loyihalashtirishning maxsus usuli—qadama - 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’lum otlar sohasining «ko‘rinishliligi»ning chegaralanishini ta’minlar edi. Bu guruhning eng ma’lum tillaridan PL/1, ALGOL-68, Pascal, С ni misol qilib ko‘rsatish mumkin. Tarkibiy dasturlash bilan bir vaqtda boshqa konsepsiyalarga asoslangan ko‘p miqdordagi tillar paydo boldi, 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’lum otlar tuzilishining rivojlanishini talab qildi. Buning oqibatida tillarda ma’lum otlarning foydalanish turlarini belgilash imkoniyati paydo bo‘ldi. Ayni paytda global ma’lum otlar bilan ishlashda kelib chiqadigan xatolar miqdorini kam aytirish 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’lum otlarni alohida modullarga (kichik dasturlar kutubxonasi) ajratilishini ko‘zda tutadi. Masalan, grafik resurslar moduli, printerga chiqarish kichik dasturlari moduli (1.5-rasm). 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 ++) tillarining zamonaviy versiyalari, Ada va Modula tillari ta’minlaydi.
Modulli dasturlashdan foydalanish dasturiy ta’minotning 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 qismlarining 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. Uchinchi bosqich — dasturlashga obyektli yondashuv (XX asrning 80-yillari o‘rtasidan 90-yillar oxirigacha). Obyektga mo‘ljallangan dasturlash har biri muayyan turdagi (klassdagi) nusxa bo‘lgan obyektlar majmuasi ko‘rinishida dasturning taqdim etilishiga asoslangan murakkab dasturiy ta’minlashni yaratish texnologiyasi sifatida aniqlanadi, bunda klasslar xususiyatlarni meros qilib olish bilan birga iyerarxiyani hosil qiladi. Bunday tizimdagi dasturiy obyektlarning o‘zaro harakati xabarlarni uzatish yo‘li orqali amalga oshiriladi (1.6-rasm). Dasturning obyektli tuzilishidan ilk bor XX asrning 60-yillaridayoq paydo bo‘lgan murakkab tizimlarni imitatsiyali modellashtirish tili - Simula da foydalanilgan. Modellashtirish tillari uchun tabiiy hisoblangan dasturni taqdim etish usuli modellashtirishning boshqa ixtisoslashtirilgan tili — Smalltalk tilida rivojlanishni davom ettirgan (XX asrning 70-yillari), keyin esa, Pascal, C++, Modula, Java kabi dasturlashning universal tillariga ko‘chirilgan. Modulli dasturlashga nisbatan obyektga mo'ljallangan dasturlashning asosiy yutug‘i dasturiy ta’minotni ishlab chiqishni ancha yengillashtiruvchi dasturiy ta’minotning «yanada tabiiyroq» bo'laklanishi hisoblanadi. Bu ma’lumotlarni yanada to‘liqroq lokallashtirish va ularning ishlov berish kichik dasturlari bilan integratsiyalashishiga olib keladi. 0 ‘z navbatida, mazkur holat dasturning alohida qismlari (obyektlar)ning mustaqil ishlab chiqilishini olib borish imkonini beradi. Bundan tashqari, obyektli yondashish merosiylik, polimorfizm, kompozitsiyalash, to‘ldirish mexanizmlariga asoslangan dasturlarni tashkil etishning yangi usullarini taklif etadi. Bu mexanizmlar nisbatan oddiy obyektlardan murakkab obyektlarni qurish imkoniyatini beradi. Natijada kodlardan qayta foydalanish ko‘rsatkichi ancha oshadi va turli maqsadlarda Global muammolar Asosiy dastur Ma’lumotlar Ma’lumotlarMa’lumotlar motlarModul 1 n1 1 Lokal ma’lumotlar kichik dasturlar .. Ma’lumotlar Ma’lumotlarMa’lumotlar motlarModul k nk 1 Lokal ma’lumotlar kichik dasturlar … 1.5-rasm. Modullardan tashkil topgan dasturlar arxitekturasi.