15-ma'ruza Dasturiy ta'minotni ishlab chiqishga ob'yektiv yondashuv
15.1. Dasturlashda ob'ektlar va munosabatlar. Dasturiy ta'minotni ishlab chiqishga ob'ektiv yondashuvning mohiyati.
Atrofimizdagi dunyo ob'ektlar va ular o'rtasidagi munosabatlardan iborat. Ob'ekt ma'lum bir mohiyatni o'zida mujassam etgan va ma'lum bir holatga ega bo'lib, vaqt o'tishi bilan berilgan bilan har qanday munosabatda bo'lgan boshqa ob'ektlarning ta'siri natijasida o'zgarishi mumkin. U ichki tuzilishga ega bo'lishi mumkin: u o'zaro munosabatlarda bo'lgan boshqa ob'ektlardan iborat bo'lishi mumkin. Bunga asoslanib, siz ob'ektlardan dunyoning ierarxik tuzilishini qurishingiz mumkin. Biroq, bizni o'rab turgan dunyoni har bir aniq ko'rib chiqish uchun ba'zi ob'ektlar bo'linmas ("nuqta") hisoblanadi va ko'rib chiqish maqsadlariga qarab, bunday (bo'linmas) ob'ektlar ierarxiyaning turli darajalarida olinishi mumkin. Munosabatlar ba'zi ob'ektlarni bog'laydi: bu ob'ektlarning birlashuvi qandaydir xususiyatga ega deb taxmin qilishimiz mumkin. Agar munosabat n ta ob'ektni bog'lasa, bunday munosabat n-ary (n-ary) deb ataladi. Har qanday o'ziga xos munosabat bilan bog'lanishi mumkin bo'lgan ob'ektlar birlashmasining har bir joyida turli xil ob'ektlar bo'lishi mumkin, ammo juda aniq (bu holda ular: ma'lum bir sinf ob'ektlari deyishadi). Unar munosabat ob'ektning (tegishli sinfning) xossasi deyiladi. Ob'ektning holatini ushbu ob'ekt xususiyatlarining qiymati yoki bilvosita u yoki bu munosabat bilan bog'liq bo'lgan ob'ektlar birlashmalarining xususiyatlarining qiymati bilan o'rganish mumkin.
Atrofimizdagi dunyoni bilish yoki o'zgartirish jarayonida biz doimo dunyoning u yoki bu soddalashtirilgan modelini (model dunyosini) hisobga olamiz, bunda biz atrofimizdagi dunyoning ba'zi ob'ektlari va ba'zi munosabatlarini o'z ichiga olamiz. , qoida tariqasida, ierarxiyaning bir darajasi. Ichki tuzilishga ega bo'lgan har bir ob'ekt ushbu tuzilish ob'ektlarini va ularni bog'laydigan munosabatlarni o'z ichiga olgan o'zining model dunyosini ifodalashi mumkin. Shunday qilib, bizni o'rab turgan dunyoni (ba'zi bir taxminlarda) model dunyolarining ierarxik tuzilishi sifatida ko'rib chiqish mumkin.
Hozirgi vaqtda atrofimizdagi dunyoni bilish yoki o'zgartirish jarayonida turli xil ma'lumotlarni qayta ishlash uchun kompyuter texnologiyalari keng qo'llaniladi. Shu munosabat bilan ob'ektlar va munosabatlarning kompyuter (axborot) tasviri qo'llaniladi. Har bir ob'ekt ma'lumot sifatida uning holatini aks ettiruvchi ma'lumotlar tuzilmasi bilan ifodalanishi mumkin. Ushbu ob'ektning xususiyatlari to'g'ridan-to'g'ri ushbu tuzilmaning alohida komponentlari sifatida yoki ushbu ma'lumotlar strukturasidagi maxsus funktsiyalar orqali o'rnatilishi mumkin. N> 1 uchun N-ariy munosabatlar faol shaklda ham, passiv shaklda ham ifodalanishi mumkin. Faol shaklda N-mahalliy munosabat N-lokal funktsiyani (tegishli ob'ektlar birligi xossasining qiymatini aniqlash) yoki ularning ba'zilarining holatini o'zgartiruvchi protsedurani amalga oshiradigan ba'zi dastur fragmenti bilan ifodalanadi. ifodalangan munosabat bilan bog'langan ob'ektlarning tasvirlari holatiga ko'ra. Passiv shaklda bunday munosabat muayyan munosabatlarga bog'liq bo'lmagan umumiy protseduralar bo'yicha qabul qilingan konventsiyalar asosida talqin qilinadigan ba'zi ma'lumotlar tuzilmasi (shuningdek, ushbu munosabat bilan bog'langan ob'ektlarning tasvirlarini ham o'z ichiga olishi mumkin) bilan ifodalanishi mumkin (masalan, , munosabat asosi ma'lumotlar). Har qanday holatda, munosabatlar ko'rinishi ma'lumotlarni qayta ishlashning ba'zi faoliyatini belgilaydi.
Model dunyosini o'rganayotganda foydalanuvchi kompyuterdan turli xil usullarda ma'lumot olishi (yoki olishni xohlashi) mumkin. Bitta yondashuv bilan u o'zini qiziqtirgan ob'ektlarning individual xususiyatlari yoki ba'zi ob'ektlar o'rtasidagi har qanday o'zaro ta'sir natijalari to'g'risida ma'lumot olishdan manfaatdor bo'lishi mumkin. Buning uchun u o'zini qiziqtirgan funktsiyalarni bajaradigan u yoki bu dasturiy ta'minot tizimini yoki tegishli ma'lumotlar bazasidan foydalangan holda o'zini qiziqtirgan munosabatlar to'g'risida ma'lumot berishga qodir bo'lgan qandaydir axborot tizimini ishlab chiqishni buyuradi. Kompyuter texnologiyalari rivojlanishining dastlabki davrida (kompyuterlar yetarli darajada yuqori quvvatga ega bo'lmagan holda) kompyuterlardan foydalanishga bunday yondashuv mutlaqo tabiiy edi. Aynan u oldingi ma'ruzalarda batafsil muhokama qilingan dasturiy ta'minot tizimlarini ishlab chiqishga funktsional (relyatsion) yondashuvni qo'zg'atgan. Ushbu yondashuvning mohiyati PS tuzilmasini va unga kiritilgan dasturlarning matnlarini qurish uchun funktsiyalarni (aloqalarni) ajratishdan tizimli foydalanishdan iborat. Shu bilan birga, buyurtma qilingan va amalga oshirilgan funktsiyalar qo'llaniladigan ob'ektlarning o'zlari qismlarga bo'lingan (ushbu funktsiyalarni bajarish uchun zarur bo'lgan darajada) va ushbu funktsiyalarni amalga oshirish uchun qulay shaklda taqdim etilgan. Shunday qilib, foydalanuvchini qiziqtiradigan model dunyosining ajralmas va adekvat kompyuter tasviri ta'minlanmagan: uni ishlatilgan SS bilan taqqoslash foydalanuvchi uchun juda mashaqqatli ish bo'lishi mumkin, model haqidagi ma'lumotlar hajmi va xarakterini biroz kengaytirishga urinishlar. foydalanuvchini qiziqtiradigan dunyo. bunday podstansiyalardan olingan bo'lsa, ularni jiddiy modernizatsiya qilishga olib kelishi mumkin. Dasturiy ta'minotni ishlab chiqishga ushbu yondashuv ko'pchilik tomonidan qo'llab-quvvatlanadi dasturlash tillari, montaj tillari va protsessual tillardan (FORTRAN, Paskal) funktsional tillarga (LISP) va mantiqiy dasturlash tillariga (PROLOGUE) qadar.
Kompyuterdan foydalangan holda model dunyosini o'rganishning boshqa yondashuvi bilan foydalanuvchi ob'ektlarning o'zaro ta'siri natijasida holatining o'zgarishini kuzatishdan manfaatdor bo'lishi mumkin. Buning uchun kompyuterda foydalanuvchini qiziqtirayotgan ob'ektning yetarli darajada yaxlit tasvirlanishi talab qilinadi va bu ob'ekt ishtirok etadigan munosabatlarni amalga oshiruvchi dasturiy komponentlar u bilan aniq bog'langan. Ushbu yondashuvni amalga oshirish uchun ob'ektlarning (model dunyosi) o'zaro ta'siri jarayonlarini taqlid qiluvchi dasturiy ta'minotni yaratish kerak edi. An'anaviy ishlab chiqish vositalari bilan bu juda zerikarli vazifa ekanligi isbotlangan. To'g'ri, bunday modellashtirishga qaratilgan dasturlash tillari paydo bo'ldi, ammo bu zarur dasturiy ta'minot tizimlarini ishlab chiqish vazifasini qisman soddalashtirdi. Dasturiy ta'minot tizimlarini ishlab chiqishda ob'ektiv yondashuv ushbu muammoni hal qilishga to'liq javob beradi. Uning mohiyati PS strukturasini va unga kiritilgan dasturlar matnlarini qurishda ob'ektlarning parchalanishidan tizimli foydalanishdan iborat. Bunday holda, bunday PS tomonidan bajariladigan funktsiyalar (munosabatlar) turli darajadagi ob'ektlarning munosabatlari orqali ifodalangan, ya'ni ularning parchalanishi ob'ektlarning parchalanishiga sezilarli darajada bog'liq edi.
Ob'ektli yondashuv haqida gapirganda, biz qanday ob'ektlar haqida gapirayotganimizni ham aniq tushunishimiz kerak: foydalanuvchi model dunyosi ob'ektlari, ularning axborot tasviri, dasturiy ta'minot tizimi yordamida yaratilgan dastur ob'ektlari. Bundan tashqari, tegishli ob'ektlar ("passiv" ob'ektlar) va sub'ektlar ("faol" ob'ektlar) o'rtasida farqlash kerak.