§ 5.2. Murakkab tizimni ishlab chiqish
Dekompozitsiya (bo’linish)ning roli. Deykstra ta’kidlaganidek, "murakkab tizimlarni boshqarish usuli qadim zamonlardan ma’lum bo’lgan - divide et impera (разделяй и властвуй bo’lib tashla va hukmronlik qil)". Murakkab dasturiy ta’minot tizimini loyihalashda uni iloji boricha kichikroq tizimlarga bo’lish kerak, ularning har biri mustaqil ravishda takomillashtirilishi mumkin. Bunday holda, biz inson miyasining imkoniyatlaridan oshmaymiz: tizimning har qanday darajasini tushunish uchun biz uning bir necha qismlari haqidagi ma’lumotlarni bir vaqtning o’zida yodda tutishimiz kerak (hammasi ham emas). Tizimning murakkabligi tizimni bo’lishga majbur qiladi.
Bo’limlarni ajratish uchun algoritmik yoki ob’ektga asoslangan dekompozitsiyadan foydalanish mumkin. Algoritm bo’yicha bo’linishi hodisalar tartibiga qaratilgan, ob’ektlar bo’yicha bo’linishi esa ob’ekt yoki harakat sub’ekti bo’lgan agentlarga asosiy e’tiborni qaratadi. Biroq, biz murakkab tizimni bir vaqtning o’zida ikkita usulda qura olmaymiz, bu usullar asosan ortogonaldir. Biz tizimni algoritmlar yoki ob’ektlar bo’yicha bo’lishni boshlashimiz kerak, so’ngra hosil bo’lgan tuzilmadan foydalanib, muammoga boshqa nuqtai nazardan qarashga harakat qilishimiz kerak. Birinchi holda, biz o’zgaruvchilarni, massivlarni, oddiy ma’lumotlar tuzilmalarini qayta ishlaydigan murakkab dasturlarni olamiz, ikkinchi holatda - nafaqat ma’lumotlarni, balki ularni qayta ishlash uchun kichik dasturlarni ham o’z ichiga olgan murakkab tuzilmalarga ega bo’lamiz. Tajriba shuni ko’rsatadiki, ob’ektni bo’laklarga bo’lishdan boshlash foydali bo’ladi. Shu tarzda boshlash bizga dasturiy tizimlarning murakkabligini tartibga solishga yordam beradi.
Abstraktsiyaning roli
Millerning tajribalarida, odatda, odam bir vaqtning o’zida atigi 7 ± 2 birlik ma’lumotni qabul qilishi aniqlandi. Bu raqam ma’lumotlarning mazmuniga bog’liq emas. Millerning o’zi ta’kidlaganidek: "Xotiramiz hajmi biz qabul qila oladigan, qayta ishlash va eslab qolishimiz mumkin bo’lgan axborot miqdoriga jiddiy cheklovlar qo’yadi. Bir vaqtning o’zida bir nechta kanallar orqali va alohida bo’limlar ketma -ketligi ko’rinishida kirish ma’lumotlarining oqimini tashkil qilib, biz bu axborot oqimini to’xtashimiz mumkin. Zamonaviy terminologiyada buni bo’linish yoki abstraktsiyani ajratib olish deb ataladi. Odamlar murakkablikni yengish uchun juda samarali texnologiyani ishlab chiqdilar. Biz undan xulosa chiqaramiz.
Murakkab ob’ektni to’liq yarata olmasak, biz unchalik muhim bo’lmagan tafsilotlarni e’tiborsiz qoldiramiz va shuning uchun biz ob’ektning umumlashtirilgan, ideallashtirilgan modeli bilan shug’ullanamiz. Va biz hali ham bir vaqtning o’zida katta miqdordagi ma’lumotni qamrab olishimiz kerak bo’lsa-da, abstraktsiya tufayli biz ancha katta semantik hajmdagi axborot birliklaridan foydalanamiz. Bu, ayniqsa, biz dunyoni ob’ektga yo’naltirilgan nuqtai nazardan qaraganimizda to’g’ri keladi, chunki ob’ektlar haqiqiy dunyoning abstraktsiyasi sifatida alohida to’yingan izchil axborot birliklari hisoblanadi.
Do'stlaringiz bilan baham: |