O‘zbekiston respublikasi oliy ta’lim, fan va innovatsiyalar vazirligi
Download 183 Kb.
|
Dildora
- Bu sahifa navigatsiya:
- Enkapsulyatsiya[ tahrir | manbasini tahrirlash ]
- Meros olish[ tahrir | manbasini tahrirlash ]
- Polimorfizm[ tahrir | manbasini tahrirlash ]
Maʼlumotlarni abstraktsiyalash obyektga yoʻnaltirilgan dasturlashning eng muhim va zarur xususiyatlaridan biridir. Maʼlumotlarning abstraktsiyasi tashqi dunyoga faqat muhim maʼlumotlarni taqdim etish, qoʻshimcha tafsilotlarini yoki amalga oshirish jarayonini yashirishni anglatadi. Misol uchun, mashina boshqarayotgan odamning hayotiy misolini koʻrib chiqamiz. Odam faqat gazni bosish mashina tezligini oshirishini yoki tormozni bosish mashinani toʻxtatib qoʻyishini biladi, lekin u gazni bosganda tezlik qanday ortib borayotganini bilmaydi, u mashinaning ichki mexanizmida, motor qanday ishlayotgani haqida bilmaydi va bilishi ham muhim emas.Abstraktsiya ham xuddi shu tamoyilga asoslanadi, yaʼni bizqanday amallar bajara olishimizni bilamiz, lekin bu amallar qanday bajarilishini bilmaymiz. Abstraktsiyaga javada abstrakt klass va interfeyslar orqali erishiladi. Java dasturlash tilida keltirilgan misol:
interface Calculator{ void add(int a, int b); void subtract(int a, int b); void multiply(int a, int b); void divide(int a, int b); } Enkapsulyatsiya[tahrir | manbasini tahrirlash]Inkapsulyatsiya Inkapsulyatsiya maʼlumotlarni bir butun sifatida yigʻish deb taʼriflanadi. Bu kod va u boshqaradigan maʼlumotlarni birlashtiradigan mexanizm. Inkapsulyatsiyada klassning oʻzgaruvchilari yoki maʼlumotlari har qanday boshqa klassdan yashiriladi va ularga faqat ular eʼlon qilingan klassning metodlari orqali kirish mumkin. Bunda klassdagi maʼlumotlar boshqa klasslardan yashiringani uchun, u maʼlumotlarni yashirish deb ham ataladi.[4] Meros olish[tahrir | manbasini tahrirlash]Meros olish Meros olish — obyektga yoʻnaltirilgan dasturlash ning muhim ustunidir. Klassning boshqa klassdan xossa va xususiyatlarni olish qobiliyati meros olish deb ataladi. Biz klass yozganimizda, biz boshqa klasslardan xususiyatlarni meros qilib olamiz. Shunday qilib, biz sinf yaratganimizda, barcha xususiyatlar va funktsiyalarni qayta-qayta yozishimiz shart emas, chunki ular unga ega boʻlgan boshqa sinfdan meros boʻlishi mumkin. Meros foydalanuvchiga kodni iloji boricha qayta ishlatish va uning ortiqchaligini kamaytirish imkonini beradi. Polimorfizm[tahrir | manbasini tahrirlash]Polimorfizm soʻzi koʻp shakllarga ega boʻlishni anglatadi. Oddiy soʻzlar bilan aytganda, klassning metodi turli vaziyatlarda turlicha amal bajaradi. Masalan, odam bir vaqtning oʻzida turli xil xususiyatlarga ega boʻlishi mumkin. Odam kabi bir vaqtning oʻzida ota, er, xodim. Shunday qilib, bir odam turli vaziyatlarda turli xil xatti-harakatlarga ega va bunga polimorfizm deyiladi. Polimorifzmni ikki turi bor, birinchisi, bir klassning ichida bir xil nomli va qabul qiluvchi qiymatlari soni va turi boʻyicha farq qiluvchi metodlardan foydalanish. Bu polimorfizm asosan bir xil vazifani bajaruvchi koʻplab turli nomdagi metodlar yaratilishini oldini olish uchun qoʻllaniladi. Yaʼni murakkablikdan qochish uchun. Ikkinchiu turdagi polimorfizmda esa, ota klassdagi metod bola klassda qayta yoziladi. Obyektlarni e`lon qilishda ma`lum bir talablar bajarilishi kerak: - obyekt turi asosiy daturning (modullarining) Type bo`limida e`lon qilinishi mumkin. Qism-programmalarda lokal obyektlarni e`lon qilish mumkin emas; - obyekt turini aniqlashda ma`lumotlar maydoni metodlar maydonidan oldin kelishi kerak; - obyekt komponentasi sifatida fayl kelishi mumkin emas, va aksincha, fayl “obyekt” turidagi komponentaga ega bo`lishi mumkin emas. ObjPos obyekti orqali matn ekranidagi birorta belgi holati aniqlanadi. Endi belgini o`zini aniqlovchi va uning ustida ma`lum bir ish bajaruvchi ObjSym obyektini aniqlaylik. Agar bu obyektning aniqlanishiga e`tibor beradigan bo`lsak, unda ObjPos obyektidagi ma`lumotlar va Get_line, Get_Col funksiyalaridan foydalanilgan. Sym va Print komponentalari yangidan qo`shilgan va Init protsedurasi qaytadan yozilgan. Ko`rinib turibdiki, ObjSym obyekti ObjPos obyekti xususiyatlarini vorislik qilib olgan. Umuman aytganda, OYPda vorislik–bu obyektlarning oddiy tuzilishdan murakkab tuzilishga tomon obyekt xususiyatlarini olib o`tishi va rivojlanishidir. Vorislikni aniqlanishi. Bu misoldan ko`rinib turibdiki, Init protsedurasi Line, Col va ObjPos.Init komponentalarini vorislik bo`yicha ishlatmoqda. Obyektlarni aniqlashni xuddi shu yo`sinda davom ettirib belgini, uning ranglar atributi bilan birga aniqlovchi obyekni aniqlashimiz mumkin. Bunda yangi obyekt ObjSym vorisi bo`lib, unga kerakli maydonlar va atiribut bilan ishlovchi metodni ko`shish kerak bo`ladi. Hosil bo`lgan obyekt ObjPosga nisbatan uchinchi bosqich vorisi bo`ladi. ObjPosga nisbatan vorislik bosqichi ObjSym bilan bir bosqichda bo`lgan obyektlarni ham yaratish mumkin. Misol uchun ekranga satr chiqaradigan obyekt yaratmoqchi bo`lsak, u ObjPos vorisi bo`ladi. Vorislikda hosil bo`luvchi yangi turlarda ajdod obyektlardagi identifikatorlarni qaytadan e`lon qilish mumkin emas. Lekin bu cheklanish metodlarga taalluqli emas, ya`ni har bir voris obyekt yuqoridagi aniqlangan metodlarni, yangidan e`lon qilishi mumkin (o`ziga xoslikdan kelib chiqqan holda). Bunga misol sifatida Print metodini ko`rsatishimiz mumkin. Bu hollarda har bir obyekt uchun o`z metodi (Print) ishlaydi. Vorislikda ham obyektlar iyerarxiyasidagi oxirgi aniqlangan metod ishlaydi. Oby`ekt qiymatlarini berish. Obyektlarni vorislik xususiyatidan kelib chiqqan holda, obyekt turidagi o`zgaruvchilar uchun qiymat berishning quyidagi qoidasi aniqlangan. Obyekt o`zgaruvchilarga faqat o`z turidagi o`zgaruvchi qiymatini berib qolmasdan, balki shu o`zgaruvchi turidan hosil bo`luvchi turdagi o`zgaruvchilar qiymatlarini berish mumkin. Xuddi shu qoida protsedura va funksiyalar uchun ularning «obyekt» turidagi parametrlar qiymatini berishda amal qiladi. Misol uchun Var ObjPosVar : ObjPos; ObjSymVar : ObjSym; ... ObjPosVar : ObjSymVar; ObjSymVar qiymatlarini ObjPosVar ga o`tkazish uchun yuqoridagi qiymat berish yetarli. Bunda ObjPos ning ga vorislik bilan o`tgan maydonlari mos qiymat bilan to`ldiriladi. Umuman aytganda, obyektlar uchun qiymat berish Ajdod Я Voris sxema bilan amalga oshadi. Bu holda chap tomondagi o`zgaruvchining barcha maydonlarining qiymat olishi kafolatlanadi, aks holda vorisdagi «ortiqcha» maydonlar qiymati aniqlanmay qolishi mumkin. Obyekt turidagi o`zgaruvchilar dinamik bo`lishi mumkin, ya`ni ular ko`rsatgich ko`rinishi sifatida aniqlangan bo`lishi mumkin. ObjPosVarPtr: ^ ObjPos; ObjSymVarPtr : ^ ObjSym; Bu yerda ham dinamik obyektlar bilan ishlash protseduralari va qiymat berishning yuqoridagi qoida amal qiladi. OYP da vorislik va polimorfizm OYPda polimorfizm. Obyektlarga mos turdagi qiymatlarni berishdagi turlar moslashuvi protsedura va funksiyalarga parametrlarni berishda ham saqlanib qoladi. Obyekt turidagi formal parametrga o`z turidagi yoki shu turdan hosil bo`lgan turdagi faktik parametrlarni berish mumkin. Obyektlarning bunday muvofiqlashuv xususiyatiga polimorfizm deyiladi. Misol tariqasida ekranga belgi yoki satrni chop qiluvchi obyektlarni ko`ramiz. .Biz oldindan barcha obyektlarda PRINT metodini aniqlagan edik. Polimorf obyektni aniqlaydigan protsedurada faqat bitta yozuvi bor. Lekin tashqi ko`rinishi bo`yicha to`g`ri bo`lsa ham, bu misol to`g`ri ishlamaydi. Faktik parametr turi qanday bo`lishiga qaramasdan faqat OBJPOS obyektidagi PRINT ishlaydi, chunki obyektlarda statik metodlar ishlatilgan. Statik metodlar. Metodlarning bunday ishlanishiga sabab, ularga mos keluvchi ko`rsatgichlar kompilatsiya paytida aniqlanadi. Kompilator tomonidan statik metodlar qayta ishlovi xuddi statik o`zgaruvchilar ustida bajariladigan kabi amalga oshiriladi. Qandaydir iyerarxiyani hosil qiluvchi obyektlar metodlari ustidagi kompilator bajaradigan ishi quyidagilardan iborat: Metod chaqirilishida kompilator shu metodni chaqiruvchi obyekt turini aniqlaydi. Tur aniqlangandan keyin kompilator shu obyekt turi chegarasida metodni izlaydi. Metodni topgandan keyin unga chaqiruvni amalga oshiradi. Agar obyekt turi chegarasida metod topilmasa, kompilator shu turni hosil qilgan bevosita ajdod obyektdan metodni izlaydi va topilgan holda unga bog`lanish o`rnatadi. Agar bevosita ajdodda ham metod topilmasa, undan yuqoridagi ajdod obyektga o`tiladi va hokazo. Hech bir obyektda metod topilmasa, xato haqida xabar beriladi. Bu amallar bajarilishidan quyidagi muhim xossa kelib chiqadi: agar ajdod obyektlardagi metod boshqa metodlarga murojaat qilinadigan bo`lsa, garchi avlod obyekt ham shunday metodlarga ega bo`lsa ham aynan shu ajdod obyekt metodlari ishlaydi. Yuqoridagi misolga nisbatan kompilator 1 va 2 amallari qo`llaniladi va har qanday murojaatda ham ObjPos.Print metodi amal qiladi. Bu misolni to`g`ri ishlashi uchun Print metodi virtual bo`lishi kerak. Virtual metodlar. To`la ma`noda obyektlar polimorfizmi virtual metodlar yordamida amalga oshiriladi. Obyekt turini aniqlashda metod sarlavhasidan keyin Virtual so`zini qo`yish bilan aniqlanadi. Procedure ( ); Virtual; Function ( ):; Virtual; Virtual metodlar aniqlanishida quyidagi shartlar bajarilishi kerak. Ajdod obyekt turida birorta metod virtual qilib aniqlangan bo`lsa, shu turdan hosil bo`luvchi barcha obyektlarda ham shu nomdagi metodlar virtual bo`lishi kerak, ya`ni virtual metod keyinchalik statik deb e`lon qilinishi mumkin emas. Agar virtual metod avlod obyektlarda qayta aniqlanadigan bo`lsa, bu metod nomi va formal parametrlar, ularning joylashuvi o`zgarmasligi kerak. Agar virtual metod funksiya bo`lsa, uning qiymatini turi o`zgarmasligi kerak. Obyekt turida obyektni initsializatsiya qiluvchi metod bo`lishi kerak. Bu metod boshqa metodlardan e`lonida Procedure so`zi o`rnida Constructor so`zini ishlatilishi bilan farq qiladi. Bu kalit so`z virtual metodlar uchun boshlang`ich aniqlash ishlarini amalga oshiradi. Tarkibida virtual metodga ega obyekt albatta konstruktor bo`lishi kerak. Konstruktor virtual metodlardan oldin chaqirilishi shart, aks holda noaniq holat yuzaga keladi. O`z ichida virtual metodi bor obyekt turidagi har bir o`zgaruvchi alohida o`z konstruktori bilan initsializatsiya qilinishi kerak. Har bir obyekt turi o`zining “virtual metodlar jadvali”ga (VMT) ega bo`ladi. Bu jadvalda obyekt turi, har bir virtual protsedura va funksiyalar kodlarining adreslari saqlanadi. Birorta obyekt turidagi o`zgaruvchi tomonidan virtual metod chaqirilganda bu metod adresi VMT jadvalidan aniqlanadi. Konstruktorning vazifasi obyekt turidagi har bir o`zgaruvchi bilan VMT jadvalini bog`lashdir. Har bir obyekt uchun VMT yagona bo`ladi. Obyektda bir nechta konstruktor e`lon qilingan bo`lishi mumkin. Konstruktor statik bo`lishi kerak, uning ichidagi chaqiriluvchi metodlar virtual bo`lishi mumkin. Protsedura va funksiyalar polimorf obyektni uzatganda (virtual metodi bor), u holda undagi virtual metodlar adreslari mos obyektlar orqali VMT jadvaliga uzatiladi. Bu hol obyekt turini e`lon qilingandagi metodni bajarilishini kafolatlaydi. Aniqroq qilib aytadigan bo`lsak, agar Z obyekt Y obyektdan virtual metodlarni vorislik orqali olsa va bu metoddagi boshqa metodlarga murojaat bo`ladigan bo`lsa, oxirgi metodlar Z obyektidan olinadi (statik metodlarda Y olinar edi). Endi oxirgi misolni qaytadan yozib chiqamiz. Obyektga yo‘naltirilgan dasturlash tillari C++ dasturlash tili C++ da quyidagi ma’lumot turlari ishlatiladi: int, float, double, char -belgili tur, string – belgilar qatori. O‘zgaruvchilarni e’lon qilish quyidagicha amalga oshiriladi: float x1,x2,x3,y1,y2; int d1,d2; O‘zguruvchilarni e’lon qilish va initsializatsiya qilishni bitta operator bilan amalga oshirish ham mumkin: int nVariable = 1; O‘zgarmas deb istalgan doimiy kattalikga aytamiz. O‘zgaruvchilar singari o‘zgarmaslar ham turlarga ega: const int a=25; const float b=12.27; const char plus=’+’; const string b=”Rezult”; Istalgan chop kilinuvchi belgilar bilan ishlash uchun char yoki string turidagi o‘zgaruvchilardan foydalanish mumkin. C++ da bitta ifodada har xil turdagi o‘zgaruvchilar ishlatilishi mumkin: int nValuel=1; double fValue=nValuel+1.0; O‘zgaruvchilar ustida operatsiyalar bajarish mumkin: ko‘shish, ko‘paytirish, ayirish, bo‘lish va hokaza. Masalan: int varl; int var2=1;varl=2*var2; nVariable= nVariable+2; nVariable+=2; C++ da dastur tuzilmasi kuyidagi ko‘rinishga ega bo‘lishi mumkin: // Eng sodda dastur intmain() { return 0; } Bu yerda main – dasturning bosh funksiyasining nomi. C++ dasturining bajarilishi hamisha shu funksiyadan boshlanadi. Bu funksiya nomi bor (main), nomdan keyin aylana qavsda funksiya parametrlari keltiriladi. Bu funksiya kaytariluvchi natijaga ega. Bu erda return 0 operatori, funksiya 0 qiymatni qaytarishini bildiradi. C++ dadasturning bosh qismiga sarlavha fayllari kiritilishi lozim: #include int main() { return 1; } Fayllar sarlavhasi yaratilishida chop qilish uchun sinf aniqlanadi va uning obyekti cout aniqlanadi: 1-misol #include #include int main() { float x1,y1,x2; cout<<"Berilmalarnikiritish:\n"; cin>>x1>>x2; x1=sin(x1); y1=cos(x2)+x1; cout<<"y1= "< Delphi dasturlash tili Delphi tili obyektga yo‘naltirilgan dasturlash tilidir. Obyektga yo‘naltirilgan tilga yig‘ilgan imkoniyatlarga dasturlash tilining obyekt modellari deyiladi. Delphi 45 tilida obyekt modellari ishlatilishining amaliy natijasi komponentalarni yaratish va ularni qo‘llab quvvatlashdir. Obyektga yo‘naltirilgan dasturlash (OYD) – bu dastur ishlab chiqish usuli bo‘lib, uning asosida real dunyo obyekti va uning holatini ifodalovchi ma’lum strukturaga ega obyekt tushunchasi yotadi. Delphi tilida obyekt modelining qo‘llanilish natijasi bu komponentalarni qo‘llash va yaratishdir. Obyektga dasturlash asosi sinf va obyekt tushunchalaridir. Java dasturlash tili Java dasturlash tili — eng yaxshi dasturlash tillaridan biri bo‘lib unda korporativ darajadagi mahsulotlarni(dasturlarni) yaratish mumkin.Bu dasturlash tili Oak dasturlash tili asosida paydo boʻ ldi. Oak dasturlash tili 90-yillarning boshida Sun Microsystems tomonidan platformaga(Operatsion tizimga) bog‘liq bo‘lmagan holda ishlovchi yangi avlod aqlli qurilmalarini yaratishni maqsad qilib harakat boshlagan edi. Bunga erishish uchun Sun hodimlari C++ ni ishlatishni rejalashtirdilar, lekin ba’zi sabablarga koʻ ra bu fikridan voz kechishdi.Oak muvofaqiyatsiz chiqdi va 1995-yilda Sun uning nomini Java ga almashtirdi, va uni WWW rivojlanishiga hizmat qilishi uchun ma’lum o‘zgarishlar qilishdi. Java Obyektga Yoʻ naltirilgan Dasturlash(OOP-object oriented programming) tili va u C++ ga ancha oʻ xshash.Eng ko‘p yo‘l qo‘yildigan xatolarga sabab bo‘luvchi qismalari olib tashlanib, Java dasturlash tili ancha soddalashtirildi. Java kod yozilgan fayllar(*.java bilan nihoyalanuvchi) kompilatsiyadan keyin bayt kod(bytecode) ga o‘tadi va bu bayt kod interpretator tomonidan o‘qib yurgizdiriladi. Zamonaviy vizual dasturlash muhitlari IDE (Integrated development environment) — dasturlash tillari uchun muhit hisoblanadi, ko‘pchilik bu tushunchani aynan shundayligicha biladi, lekin bu ta’rifning ma’nosi nimaligini unchalik tushunmaydi. Bu maqolada aynan shu IDE abreviaturasini tushuntirishga bag‘ishlanadi. Dasturlash muhiti deganda, siz 46 yozayotgan kodlarni aynan qayerga yozish kerakligi tushuniladi. Misol uchun, oddiy «Блокнот» ham IDE vazifasini bajarishi mumkin. IDE sifatida, dasturlar yoki dasturlar yig‘indisi ishlatiladi. Zamonaviy va mashhur dasturlash muhitlariga quyidagilarni misol qilish mumkin(maqolada Windows tizimi nazarda tutilgan): PHPStorm — asosan PHP dasturchilar uchun; VisualStudio — .Net dasturchilar uchun; NetBeans — asosan java, php dasturchilar uchun; PHPDesigner — asosan web(PHP) dasturchilar uchun; Agar hali ham tushunarsiz bo‘lsa, boshqa mavzuda misol keltiraman. Siz kompyuter tuzatuvchi ustasiz, siz o‘z ishingizni qilishingiz uchun yaxshi sharoit kerak: elektr toki bilan ta’minlagan xona, kerakli qurilamalarga(tester, payalnik, otvyorka..) ega bo‘lishingiz, har hil turdagi ulanuvchi va ulovchi simlar bo‘lishi, kompyuterning asosiy ehtiyot qismlarining nusxasi va boshqalar. Umuman olib qaraganda, bunday sharoit bo‘lmasa ham usta bo‘laverasiz, lekin biror kompyuterni tuzatish uchun ancha vaqt kerak bo‘lib qoladi(kerakli jihozlarni kimdandur so‘rash kerak bo‘ladi, tok o‘chib qolsa, uni kelishini kutish). IDE ham shunday, qanchalik yaxshi va qulay muhit bo‘lsa, ishingiz ham shuncha tez va sifatli bitadi. Mukammal dasturlash muhitlarida, dasturchilar uchun hamma sharoitlar yaratilgan bo‘ladi, ya’ni biror loyihani tuzish uchun qo‘shimcha dasturlar kerak bo‘lmasligi lozim, misol uchun quyidagi imkoniyatlar bo‘ladi: — matn muharriri; — kompilyator/interpretator; — loyihaning barcha qismlarini avtomat yig‘uvchi; — xatolarni aniq ko‘rsatuvchi funksiyasi; — kod sintaksislarini yozishda yordam beradigan kutubxona; — kodni ishlatib ko‘rish uchun sharoit(emulyatorlar, brauzerlar); — terminal(konsol uchun); — versiyalar bilan ishlovchi modul(github); — katalog ierarxiyasi; Bunday dasturlash muhitlari, dasturchilarni biroz dangasa qilib qo‘yadi degan gap rost, lekin tez biror loyihani tuzmoqchi bo‘lsangiz, bularsiz ancha vaqt ketib qoladi. Dasturlash muhitlari: — PHPStorm; — VisualStudio; — RAD Studio; — KomodoIDE; — PHPDesigner; — KomodoEdit — VS Express; — NetBeans; — Aptana Studio; — Eclipse; Dasturlash tiliga qarab, kerakli IDE tanlanadi. Obyektga mo’ljallangan tahlil va loyihalash Obyektga mo’ljallangan tahlil va loyihalash (object-oriented analysis and design) ning bosh g’oyasi predmetga oid sohani va masalaning mantiqiy yechimini obyektlar (tushunchalar va mohiyatlar) nuqtai nazaridan ko’rib chiqishdan iborat. Obyektga mo’ljallangan tahlil jarayonida asosiy diqqat-e’tibor obyektlar (yoki tushunchalar)ning predmetga oid soha atamalarida ta’riflash va tavsiflashga qaratiladi. Obyektga mo’ljallangan tahlil jarayonida obyektga mo’ljallangan dasturlash tili vositalari bilan joriy qilinadigan mantiqiy dasturiy obyektlar aniqlanadi. Bu dasturiy obyektlar atributlar va metodlarni o’z ichiga oladi. Va, nihoyat, konstruksiyalash (construction) yoki obyektga mo’ljallangan dasturlash (object-oriented programming) jarayonida ishlab chiqilgan komponentlar va sinflarning joriy qilinishi ta’minlanadi. Obyektga mo’ljallangan tahlil va loyihalashning ayrim asosiy tamoyillarini qisqacha ko’rib chiqamiz. Keyinchalik biz barcha ko’rib chiqilgan atamalarning yanada aniqroq ta’rifini va yanada to’liqroq shifr yechimini beramiz. – Avval talablar tahlili (requiremens analysis) amalga oshiriladi hamda bu paytda modellashtirilayotgan tizimda sodir bo’layotgan asosiy jarayonlar va ularning presedentlar ko’rinishidagi ta’rifi ajratiladi. Presedent (precedent) – predmetga oid sohada sodir bo’layotgan jarayonlarning matniy tavsifi. – Ikkinchi qadam. Predmetga oid sohaning obyektga mo’ljallangan tahlili (object-oriented domain analysis). Bu qadamning vazifasi jarayon ishtirokchilarining faoliyat turlarini aniqlash hamda predmetga oid soha elementlarining turli kategoriyalarini aks ettiruvchi konseptual model (conceptual model) ni tuzishdan iborat. – Uchinchi qadam. Bunda kim nima bilan shug’ullanayotganini ko’rib chiqamiz. Aynan shu faoliyat obyektga mo’ljallangan loyihalash (object-oriented design) deb ataladi va bunda asosiy diqqat-e’tibor majburiyatlarni taqismlashga qaratiladi. Majburiyatlarni taqsimlash (responsibility assignment) da ilovadagi turli dasturiy obyektlarning vazifa va majburiyatlari ajratib ko’rsatiladi. Obyektga mo’ljallangan tahlil va loyihalashning muhim momenti shundan iboratki, bunda dasturiy tizim komponentlari o’rtasida majburiyatlar taqsimotini malakali o’tkazish ko’zda tutiladi. Gap shundaki, obyektga mo’ljallangan tahlil va loyihalashsiz ish ko’rib bo’lmaydi. Buning ustiga u robastlik, masshtablashish, kengayishlik va takroran qo’llash imkoniyatiga hal qiluvchi ta’sir ko’rsatadi. Obyektlarning majburiyatlari va o’zaro aloqalari sinflar diagrammasi (design class diagram) va o’zaro aloqalar diagrammasi (collaboration diagram) qo’llangan holda ifodalanadi. XULOSA Xulosa sifatida shuni qayd qilish mumkinki, hozirgi paytda keng rivojlanayotgan vizual programmalash tizimlarining asosida OYD yotadi va programmalashning bu usuli tobora kengaymoqda. Obyektga mo’ljallangan tahlil va loyihalashning muhim momenti shundan iboratki, bunda dasturiy tizim komponentlari o’rtasida majburiyatlar taqsimotini malakali o’tkazish ko’zda tutiladi. Gap shundaki, obyektga mo’ljallangan tahlil va loyihalashsiz ish ko’rib bo’lmaydi. Buning ustiga u robastlik, masshtablashish, kengayishlik va takroran qo’llash imkoniyatiga hal qiluvchi ta’sir ko’rsatadi. Obyektlarning majburiyatlari va o’zaro aloqalari sinflar diagrammasi (design class diagram) va o’zaro aloqalar diagrammasi (collaboration diagram) qo’llangan holda ifodalanadi. Ma’lumki, dastur tuzish sermashaqqat jarayon, lekin Delphi tizimi bu ishni sezilarli darajada soddalashtiradi va masala turiga qarab dastur tuzuvchi ishining 50– 80%ni tizimga yuklaydi. Delphi tizimi dasturni loyihalash va yaratish vaqtini kamaytiradi, hamda Windows muhitida ishlovchi dastur ilovalarini tuzish jarayonini osonlashtiradi. Delphi - Windows muhitida ishlaydigan dastur tuzish uchun qulay bo‘lgan vosita bo‘lib, kompyuterda dastur yaratish ishlarini avto- matlashtiradi, xatoliklarni kamaytiradi va dastur tuzuvchi mehnatini yengillashtiradi. Delphida dastur zamonaviy vizual loyihalash texnolo- giyasi asosida obyektga mo‘ljallangan dasturlash nazariyasini hisobga olgan holda tuziladi. Delphi tizimi Turbo Pascal 7.0. tilining rivoji bo‘lgan obyektga mo‘ljallangan Object Pascal dasturlash tilini ishlatadi. Obyektga mo‘ljallangan yondoshuv dasturiy tizimlarni dasturlash tiliga bog‘liq bo‘lmagan holda yaratishda modellardan sistematik foydalanishga asoslangan. Har bir model uning o‘zi aks ettirayotgan predmetning hamma xususiyatlarini ifodalay olmaydi, u faqat ba’zi juda muhim belgilarini ifodalaydi. Demak model o‘zi aks ettirayotgan predmetga nisbatan ancha sodda bo‘ladi. Bizga shu narsa muhimki model endi formal konstruktsiya hisoblanadi: modellarning formalligi esa ular orasidagi formal bog‘lanishlarni aniqlashni va ular orasida formal operatsiyalar bajarishni ta’minlaydi. Bu ish modellarni ishlab chiqishni va o‘rganishni hamda kompyuterda realizatsiya qilishni osonlashtiradi.Xususan esa, modellarning formal xarakteri yaratilayotgan dasturning formal modelini olishni ta’minlaydi. Har bir sinfni ikkita muhim jihati mavjud: u arxitektura birligini moduli hisoblanadi,va u bir necha ma’lumotlar turlarini aniqlagan holda sermazmun tushunchaga ega. Dastur tizimi sinflari hammasi bir-biri bilan o‘zaro aniq bog‘lanishda bo‘ladi. Obyektli dasturlash tizimida ikkita asosiy tur sinflarni o‘zaro bog‘lanishi aniqlangan.Birinchi bog‘lanish “Mijoz va Yetkazuvchi”, odatda mijoz bog‘lanishi 129 deb ataladi yoki ichma-ich bog‘lanishda bo‘ladi. Ikkinchi bog‘lanish “Ota-onalar va vorislar” bu odatda vorislik deb nomlanadi. Vorislik paytida bazaviy sinf yangi atributlar va operatsiyalar hisobiga yanada o‘sadi. Hosila sinfda odatda yangi ma’lumotlar a’zolari, xususiyatlar va metodlar paydo bo‘ladi. Obyektlar bilan ishlashda dasturchi odatda aniq masalani hal qilish uchun eng to‘g‘ri keladigan sinfni tanlaydi, hamda undan bitta yoki bir nechta voris avlod yaratadiki, ular o‘z otalarida mavjud imkoniyatlardan ko‘proq imkoniyatga ega bo‘ladilar. Do‘stona funksiyalar hosila sinfga barcha tashqi sinflar ma’lumotlari a’zolariga kirish huquqini olish imkonini beradilar. Funksiya shablonlari (parametrlangan turlar) bog‘langan funksiyalar oilasini tuzish imkonini beradi. Shablon kiritilishi uchun, hosil qilingan funksiya avtomatlashtirish, har xil tipli ma’lumotlarni qayta ishlashdan iborat. Masalan, algoritm tartiblash uchun har qaysi funksiyani o‘zini aniqlovchi tipi qo‘llaniladi. C++ o‘zi istisno xolatlarni yuzaga keltirmaydi. Ularni C++ ning throw operatoridan foydalangan dasturlar yuzaga keltiradi. Istisno yuzaga kelganda, throw operatoridagi nom berish ifodasi muvaqqat obyektni nomlaydi (initsiallashtiradi), Bunda muvaqqat obyektning turi ifoda argumenti (dalili) ning turiga mos keladi. Ushbu obyektning boshqa nusxlari, masalan, istisno obyektidan nusxa ko‘chirish konstruktori yordamida generatsiya qilinishi mumkin. Download 183 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling