Объектіге бағытталған программалау
Кіріспе
Тарау І. Объектіге бағытталған программалау негіздері
1.1. Процедуралық бағдарламалаудан объектілі.бағытталған бағдарламалауға өту
Мұрагерлену
Полиморфизм және виртуалды әдістер
1.2. Объектіліреге бағытталған операциялық жүйелер
Тарау ІІ. Visual Basic ортасында объектіге бағытталған программалау
2.1. Visual Basic ортасында объектке бағдарланған бағдарламаға мысал
Қорытынды
Әдебиеттер тізімі
Тарау І. Объектіге бағытталған программалау негіздері
1.1. Процедуралық бағдарламалаудан объектілі.бағытталған бағдарламалауға өту
Мұрагерлену
Полиморфизм және виртуалды әдістер
1.2. Объектіліреге бағытталған операциялық жүйелер
Тарау ІІ. Visual Basic ортасында объектіге бағытталған программалау
2.1. Visual Basic ортасында объектке бағдарланған бағдарламаға мысал
Қорытынды
Әдебиеттер тізімі
Кіріспе
Ақпараттық технология – ЭЕМ-нің көмегімен ақпаратты жинау, енгізу, тасымалдау, сұрыптау, іздеу, реттеу, өзгерту және өңдеу жұмыстарының тізбегі. Ақпараттық технологияның өндірістік технологиядан айырмашылығы оны адамның қатысуынсыз роботтар іске асыратын үздіксіз процеске айналдыруға болмайды. Өйткені ол құжаттың көшірмесін алу, есепке енгізу, есеп шығару секілді жұмыстармен қатар шығармашылық ізденісті балап ететін шешімдер қабылдау, мәселені жүргізу жолын өзгерту, бірнеше мүмкіндіктерді салыстыра отырып, олардың ішінен ең тиімдісін іріктеп алу сияқты таңдау жұмыстарын кеңінен жүргізумен өте тығыз байланысты болады. Сондықтан ақпараттық технология "адамдық факторға" үлкен көңіл бөледі және оның шеберлік деңгейінің өсуіне әсер етеді.
Қазіргі кездегі ақпараттық технология ұғымын мәліметтер өңдеуге байланысты үш түрге жіктеуге болады. Олар: есепке алу, талдау және шешім қабылдау. Осы уақытқа дейін бұл жұмыстар адамның басқаруымен қағазға жазылған құжатты өңдеу түрінде өтетін, ал енді басқару, ұйымдастыру жұмыстарын ЭЕМ көмегімен автоматты түрде атқару жаңа ақпараттық технологияның тууына себепші болды. Бұл жаңа технологияның бұрынғы технологиядан (құжатты машинкада басу, байланысты телефонмен жүргізу, сөзді диктофонға жазу) айырмашылығы – тізбектеле орналасқан ақпараттық техника, "жылы жүзді" программалық жасақ және дамытылған компьютерлік байланысты кеңінен қолдану.
Ақпараттық технология – ЭЕМ-нің көмегімен ақпаратты жинау, енгізу, тасымалдау, сұрыптау, іздеу, реттеу, өзгерту және өңдеу жұмыстарының тізбегі. Ақпараттық технологияның өндірістік технологиядан айырмашылығы оны адамның қатысуынсыз роботтар іске асыратын үздіксіз процеске айналдыруға болмайды. Өйткені ол құжаттың көшірмесін алу, есепке енгізу, есеп шығару секілді жұмыстармен қатар шығармашылық ізденісті балап ететін шешімдер қабылдау, мәселені жүргізу жолын өзгерту, бірнеше мүмкіндіктерді салыстыра отырып, олардың ішінен ең тиімдісін іріктеп алу сияқты таңдау жұмыстарын кеңінен жүргізумен өте тығыз байланысты болады. Сондықтан ақпараттық технология "адамдық факторға" үлкен көңіл бөледі және оның шеберлік деңгейінің өсуіне әсер етеді.
Қазіргі кездегі ақпараттық технология ұғымын мәліметтер өңдеуге байланысты үш түрге жіктеуге болады. Олар: есепке алу, талдау және шешім қабылдау. Осы уақытқа дейін бұл жұмыстар адамның басқаруымен қағазға жазылған құжатты өңдеу түрінде өтетін, ал енді басқару, ұйымдастыру жұмыстарын ЭЕМ көмегімен автоматты түрде атқару жаңа ақпараттық технологияның тууына себепші болды. Бұл жаңа технологияның бұрынғы технологиядан (құжатты машинкада басу, байланысты телефонмен жүргізу, сөзді диктофонға жазу) айырмашылығы – тізбектеле орналасқан ақпараттық техника, "жылы жүзді" программалық жасақ және дамытылған компьютерлік байланысты кеңінен қолдану.
Әдебиеттер тізімі
1. Глушаков С.В. Сурядный А.С. Программирование на Visual Basic 6.0
2. Ананьев А.И., Федоров А.Ф. Самоучитель Visual Basic 6.0. – СПб.: БХВ –
3. Петербург, 2002г.
4. Visual Basic – Крепки орешок. Мак – Кинни
5. Браун С. Visual Basic 6.0 учебный курс. Питер, 2001г.
6. Гарнаев А.Ю. Visual Basic 6.0 разработка приложений. Петербург, 2001г.
7. Браун С. Visual Basic 6.0 учебный курс. SYBEX, 2007г.
8. Паньгина Н.Н. Изучение VBA в школе Компьютерные инструменты в образовании, № 2, 2003.
9. Титаренко Г. Visual Basic 6.0 – Киев: Издательская группа BHV, 2001г.
10. Симонович С.В., Евсеев Г.А. Занимательное программирование: Visual Basic 6.0
11. Лукин С.Н. Visual Basic 6.0 Самоучитель для начинающих
12. Кузьменко В.Г. Visual Basic 6.0 Самоучитель. Второе издание.
13. Карпов Б. Visual Basic 6.0. специальный справочник. “Издательство Питер”, 2000г.
1. Глушаков С.В. Сурядный А.С. Программирование на Visual Basic 6.0
2. Ананьев А.И., Федоров А.Ф. Самоучитель Visual Basic 6.0. – СПб.: БХВ –
3. Петербург, 2002г.
4. Visual Basic – Крепки орешок. Мак – Кинни
5. Браун С. Visual Basic 6.0 учебный курс. Питер, 2001г.
6. Гарнаев А.Ю. Visual Basic 6.0 разработка приложений. Петербург, 2001г.
7. Браун С. Visual Basic 6.0 учебный курс. SYBEX, 2007г.
8. Паньгина Н.Н. Изучение VBA в школе Компьютерные инструменты в образовании, № 2, 2003.
9. Титаренко Г. Visual Basic 6.0 – Киев: Издательская группа BHV, 2001г.
10. Симонович С.В., Евсеев Г.А. Занимательное программирование: Visual Basic 6.0
11. Лукин С.Н. Visual Basic 6.0 Самоучитель для начинающих
12. Кузьменко В.Г. Visual Basic 6.0 Самоучитель. Второе издание.
13. Карпов Б. Visual Basic 6.0. специальный справочник. “Издательство Питер”, 2000г.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 26 бет
Таңдаулыға:
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 26 бет
Таңдаулыға:
Кіріспе
Ақпараттық технология – ЭЕМ-нің көмегімен ақпаратты жинау, енгізу,
тасымалдау, сұрыптау, іздеу, реттеу, өзгерту және өңдеу жұмыстарының
тізбегі. Ақпараттық технологияның өндірістік технологиядан айырмашылығы оны
адамның қатысуынсыз роботтар іске асыратын үздіксіз процеске айналдыруға
болмайды. Өйткені ол құжаттың көшірмесін алу, есепке енгізу, есеп шығару
секілді жұмыстармен қатар шығармашылық ізденісті балап ететін шешімдер
қабылдау, мәселені жүргізу жолын өзгерту, бірнеше мүмкіндіктерді салыстыра
отырып, олардың ішінен ең тиімдісін іріктеп алу сияқты таңдау жұмыстарын
кеңінен жүргізумен өте тығыз байланысты болады. Сондықтан ақпараттық
технология "адамдық факторға" үлкен көңіл бөледі және оның шеберлік
деңгейінің өсуіне әсер етеді.
Қазіргі кездегі ақпараттық технология ұғымын мәліметтер өңдеуге байланысты
үш түрге жіктеуге болады. Олар: есепке алу, талдау және шешім қабылдау. Осы
уақытқа дейін бұл жұмыстар адамның басқаруымен қағазға жазылған құжатты
өңдеу түрінде өтетін, ал енді басқару, ұйымдастыру жұмыстарын ЭЕМ көмегімен
автоматты түрде атқару жаңа ақпараттық технологияның тууына себепші болды.
Бұл жаңа технологияның бұрынғы технологиядан (құжатты машинкада басу,
байланысты телефонмен жүргізу, сөзді диктофонға жазу) айырмашылығы –
тізбектеле орналасқан ақпараттық техника, "жылы жүзді" программалық жасақ
және дамытылған компьютерлік байланысты кеңінен қолдану.
Тарау І. Объектіге бағытталған программалау негіздері
1.2. Процедуралық бағдарламалаудан объектілі-бағытталған бағдарламалауға
өту
Процедуралық бағдарламалау жетпісінші жылдары бағдарламалаушылардың
еңбек өнімділігін арттыру қажеттілігінен туындап, сол кездегі көп
қолданылатын, мысалы Ассемблерге қарағанда бағдарламалық қамтаманы құру
үрдісін біршама қарапайым түрге келтіру және жеңілдету үшін құрылды.
Паскаль және Си процедуралық тілдері қамтамасыз ететін абстракцияның басқа
да бір жоғары деңгейі бағдарламалау өнімділігін арттыруға мүмкіндік берді.
Осылайша процедуралық бағдарламалау әдістемесінде қолданылатын табиғи
эволюциялық даму ретінде объектілі-бағытталған бағдарламалаудың концепциясы
қалыптасты.
Процедуралық бағдарламалауда кодтың бөлшектері блоктарға („қара
жәшіктер”) ұйымдастырылған модульдер мен функцияларға бөлінеді. Бұл блоктар
бағдарламалаушыдан өзінің мазмұнының күрделілігін жасырады, олардың
әрқайсысы мәліметтерге қажетсіз немесе авторланбаған кірудің алдын алу үшін
ақпаратты жасыруға тырысады. Теориялық түрде қара жәшік өзінің
юрисдикциясынан, шекарасынан тыс жатқан, сыртта жазылған қандайда бір
мәліметтерді өзгерту үшін қолданылмауы тиіс. Сонымен бірге, оның
бағдарламаға кейбір кері эффект (қоңыздар) беретін қабілеті болмау
керектігі жорамалданады. Бірақ өкінішке орай, шындығында: кері әсер ету
эффекттерінің саны бадарламаның өлшеміне тура пропорционал. Бағдарлама
үлкейген сайын, оның кодында қоңыздар тез байқалуы мүмкін.
Процедуралық бағдарламалау нақтылы өмірдің проблемаларын компьютер
тәріздес терминдерге түрлендіреді, олар бағдарлама жазуға себін тигізеді.
Объектілі-бағытталған бағдарламалау (ОББ), керісінше бағдарламада
қолданылатын, не қолданылмайтын заттарды идентификациялау арқылы, алайда
қойылған проблема бойынша нақтылы қарым-қатынастарды сақтайтын,
мәліметтердің модельдеріне бөліне алатын нақтылы өмірді модельдейді. Бұл
заттар компьютерде мәліметтердің жаңа типтері, яғни объекттер ретінде
бейнеленеді. Объекттер бағдарламаның мәтінінде класстар деп аталатын
мәліметтердің құрылымы ретінде анықталады; класстар хабарларды ұстап,
оларға әдістер арқылы кері жауап қайтарып спецификалық іс-әрекеттер орындай
алады. Егер сіз ОББ-ның мұндай терминдерімен бейтаныс болсаңыз, онда
төмендегілерді есте сақтаңыз:
• Объект – бұл орындалу барысындағы класстың бір түрі;
• әдіс – бұл класстың спецификациясында анықталғандай, объектіде
қамтылған класстың функция-мүшесі;
• хабар – бұл класстың әдісін шақыру.
Ескерту. Хабар ОББ технологиясында объектіні шақыру болып табылады.
ОББ-хабарлары мен Windows-хабарларын шатастыруға болмайды; Windows-тың
хабарлар жүйесі (Windows messaging) – бұл Windows-тың өз-өзімен және
операциялық жүйедегі белсенді үрдістерімен қарым-қатынас жасайтын ішкі
механизмі.
Класс және объект терминдері бірін-бірі жиі алмастырады, бірақ сіздер
олардың арасындағы айырмашылық барын білулеріңіз керек. Объект пен класс
терминдерінің қарым-қатынасын айқын ұғу үшін көздеріңізге қазіргі заманға
сай көркем де әсем үйді елестетіңіздер. Мұндай үй өзімен өзі пайда
болмайды, оны алдымен тұрғызу қажет. Алайда, ол үшін жұмысшылардың, құрылыс
материалдарының және техниканың болуы жеткіліксіз. Алдымен сәулетші үйді
жобалап, оның әрбір деталінің сызбасын даярлауы қажет. Тек содан кейін ғана
жұмысшылар құрылысқа кіріседі. Сызбалар үйді қалай салу керектігінің толық
спецификациясын көрсетеді. Бұл мысалда сызбалар классты, ал үй – сызбаларда
берілген спецификациялар бойынша құрылған нақтылы объектті білдіреді.
Әрине, біз үй мен үйдің сызбасы бірдей емес екеніне есеп бере аламыз,
ал бірақ абстрактілі түрде олар бірдей. Үйді салу үрдісінің барлық егжей-
тегжейлерін сызбадан, және де сызбадағы бар затты үйден табуға болады.
Басқа сөзбен айтқанда бұл класс пен объектінің байланысы емес.
Мысал ретінде ең қарапайым үйді қарастырайық. Үй-объект басқа
объектілерден, яғни шатыр, кереге, коммуникациялар және тағы басқалардан
тұрады; бұл объектілердің барлығы қазіргі заманға сай үйлердің көбісінде
кездеседі. Қарапайым сызбаны бастапқы нүкте ретінде пайдалана отырып,
сәулетші АЖЖ (автоматтандырылған жобалау жүйелері) бағдарламаларын қолданып
бастапқы жобаның кеңейтілуі болып табылатын, мысалы, бөлмелерді, екінші
қабатты одан да басқа заттарды қосу арқылы сызбаның басқа бір түрін ала
алады. Үй жоспарларының екінші бір бұл түрі өз кезегінде үшінші, бұдан да
бір күрделі сызбалар жиынын алуға мүмкіндік береді. Сіздер жақында осылайша
объекттерді де пайдалануға болатынына көз жеткізесіздер.
Ескерту. Сызба (класс) көптеген үйлерді (объекттер) салғанда
пайдаланылады. Осылайша біздің гипотетикалық үйімізді салу үшін қолданылған
объекттер әртүрлі конфигурацияларда қосылып, нәтижесінде әртүрлі үйлер
пайда болуы мүмкін.
Объектілер осы мәліметтермен әртүрлі операциялар орындайтын мәліметтерді
ғана емес, функцияларды да қамтығандықтан ОББ процедуралық бағдарламалаудың
ескі техникасындағы былықтан арылып, үлкен де, күрделі бағдарламалық
жабдықтарды оңай құруға, одан ары жүргізуге және модификациялауға мүмкіндік
береді.
Бұл екі бағдарламалау модельдерінің арасында көптеген сәйкестік
болғанымен, ОББ бағдарлама (класстың айнымалы-мүшелері) мәліметтерін және
осы мәліметтермен қарым-қатынасы бар функцияның (класстың әдістері)
мәліметтерін объектілерге жинақтауға мүмкіндік береді. Мәліметтер мен
функцияларды мұндай жинақтаудың (инкапсуляцияның) нәтижесінде объекттер өз
бетінше өмір сүріп не істеу және қашан істеу керектігін білетін тәрізді.
Бұдан басқа бір жетістігі объекттердің мәліметтері мен функцияларына қол
жеткізуге қолданылатын синтаксис, процедуралық кодқа қарағанда ОББ – кодын
аса оқылмалы етіп қолданысын жеңілдетеді. Ал өз бетінше сақталынатын
автномиялы объекттер бағдарламалаудың процедуралық түріне қарағанда тез
арада ең жақсы код жазуға себін туғызады.
Объектілі-бағытталған бағдарламалау процедуралық бағдарламалаудың ең
жақсы концепцияларын қамтып, олардың қолданысының тездетілуін жақсартады.
Кішігірім жобаларда ОББ жетістігі байқалмауы да мүмкін, ал үлкен жобаларда
міндетті түрде байқалады. Бұлар ОББ бағдарламаны жобалау және жазу
барысында бағдарламалаушыны бағдарламаның әртүрлі модульдерінің қарым-
қатынасына аса көңіл бөлуін талап етуінің арқасында орындалады. Шын мәнінде
кішігірім бағдарламаларды жазуда ОББ технологиясын қолданбай процедуралық
жолын пайдалану жеңіл. (Бұл жағдайда қандай да бір кодты жабыстыра салып,
оны алдын ала жобалаусыз жұмыс істету анағұрлым жеңіл.) Алайда,
бағдарламалар үлкейген сайын олар күрделене түседі де ебдейсізделінеді;
олардың қателерін табу күрделі, ал мәліметтерге қол жеткізу өте қиын.
Процедуралық жолмен құрылған модульдерді интеграциялау және жүргізу үрдісі
аса күрделі және көп уақыт алуы мүмкін. Бағдарламаның өлшемі үлкейген сайын
процедуралық қара жәшіктер көп арада істен шығады, ал оларды
модификациялағанда немесе бағдарламаны жүргізу уақытында оған қателер енуі
мүмкін. Үлкен бағдарламалар процедуралық жолмен жазылғанымен (қазіргі кезде
де жазылуда), ОББ бағдарламалаушының жұмысын жеңілдетеді және тездетеді, ал
коды тиімдірек болады.
Ескерту. Кішігірім бағдарламаларды процедуралық жолмен (оның
қарапайымдылығына байланысты) жазу жеңіл, ал үлкен бағдарламаларды
объектілі-бағдарламалаудың көмегімен құру тіпті оңай. ОББ
бағдарламалаушының ұйымшыл және тәртіпті болуын талап етеді, оны
объекттердің өз мәліметтерімен және басқа объекттердің мәліметтерімен қарым-
қатынасу әдісі талап етеді. Процедуралық бағдарламалау мен ОББ-ның негізгі
жайы ұқсас болғанымен, ОББ бағдарламалаушыға көп уақыт қолдануға болатын
код модулін құруға мүмкіндік береді. Оларды кез келген өлшемді жобаға
ешқандай тиімсіз қосалқы жағдайлардың пайда болуынан қорықпай енгізуге
болады.
Мұрагерлену
ОББ оқи бастаған бағдарламалаушыларды ең бастысы объекттер басқа
объекттердің қасиеттері мен функционалдық мүмкіндіктерін мұрагерлікке
иеленіп, ата-ана-ұрпақ қатынасын және объекттік иерархияларды тудыратыны
таң қалдырады. Бұл бағдарламалық код бірнеше функционалдық жіктерге бөліне
алатынын білдіреді. Функционалдық мүмкіндіктер (кез келген бір жіктің)
бағдарламалық кодтың ортақ фрагментіне негізделетін, әртүрлі қасиеттері бар
класстарға енгізілуі мүмкін. Жікке бөліну және кодты бірлесіп пайдалану
мүмкіндігі, объекттер бірінен бірі шекті өсетін класстардың иерархиясын
жобалауға мүмкіндік тудырады. Бұл қазіргі таңдағы тұрған іске өте ұқсас.
Алдыңғы класстың негізінде жаңа классты құру үрдісі мұрагерлену деп
аталады. Мұрагерлену туынды классқа (немесе класс-ұрпақ) алғы ата-класының
(немесе ата-тұяғының) барлық функционалдық мүмкіндіктерін иелендіреді.
Бұған қоса, туынды класс өзіндік есептерді шығару үшін алғы ата-класының
мүмкіндіктерін кеңейтеді.
Ескерту. СИ тліндегі класстардың атауы көп жағдайда С әрпінен, ал Object
Pascal тілінде Т әрпінен басталады.
Мысал үшін сізде әртүрлі жылжымалы құралдардың сипаттамалары мен
мүмкіндіктерін анықтайтын CVehicle деп аталатын өзіндік класс бар болсын
деп жориық. Бұл өзіндік класстың негізінде сіз әртүрлі объекттерді –
жылжымалы құралдарды құра аласыз. Мысалы, тікелей CVehicle класынан сіз
CLandVehicle, CWaterVehicle, CAirVehicle и CSpaceVehicle класстарын ала
аласыз. Әрбір туынды класс CVehicle-дың барлық мүмкіндіктерін мұрагерлікке
иеленеді, сонымен қатар қосымша мәліметтерді – жылжымалы құралдың әрбір
типіне класс анықтамасын айқындайтын мүшелері мен әдістерін де қамтиды. Ары
қарай класс анықтамалары осы туындаған бірінші деңгейлі класстардан жаңа
класстарды тудыру арқылы одан ары айқындалуы мүмкін. CLandVehicle-дан
CTruck, CCar, CMotocycle тудыруға болады. CWaterVehicle класының негізінде
сіз CJetSki, CBoat и CSubmarine класстарын құра аласыз. CAirVehicle класы
CJet, CHelicopter и CGlider класстарын тудыруы мүмкін. CSpaceVehicle класы
CStarShip, CShuttlecraft класстарын тудырады. Бұл класстардың барлығы
CVehicle өзіндік класынан туындап, класстардың қарапайым иерархиясын
құрайды.
Иерархияның әр деңгейінде класстар тығыз орналасқан сайын, жаңадан пайда
болған класстарда код көбірек қайталануы мүмкін. Оның қулығы объекттік
иерархияның кез келген деңгейінде өзіндік класстардың атрибуттары мен
операцияларын барлық объекттерге ортақ етуде және өзіндік класстардан
арнаулы класстарды алуда. Мұрагерлену сіз мүмкіндігіңізше қолдануға тиіс
тағы да бір қызық эффект береді: толық жөнделген кішігірім өзіндік класстар
берікті. Сіз күрделі класстарды құру барысында туынды класстарға енгізілген
код бөлігіне ғана назар аударуыңыз қажет. Жаңа классты құрудың әр
итерациясында толық жөнделген класс-ұрпақ кодына енгізілетін (яғни бірге
қосылатын) кодтың кішігірім саны мұрагерленуі мүмкін. Туынды класстардағы
кез келген қоңыздардың пайда болуын осы класстың жаңадан туындаған
кодынан байқауға болады. Егер класстарды кішігірім, өзіндік мақсаттарға
толық жету жолына бейімдеу арқылы жобаласа, онда класстар иерархиясының кез
келген деңгейіндегі жөндеу үрдісі біраз ықшамдалады.
Полиморфизм және виртуалды әдістер
ОББ-ның басқа бір есте қаларлық жетістігі әртүрлі типті объекттер бір
функцияны шақырғанда әртүрлі жауап қайтаруы мүмкін. Мысалы, біріншісі
екіншісінен туындайтын екі классты елестетіңіздер. Екі класс та Draw() деп
аталатын әдістен тұрады. Әр класс нені сызу керектігіне байланысты Draw()
хабарына әртүрлі жауап қайырады. Иерархиядағы әртүрлі объекттердің бір
хабарға әртүрлі жауап қайтаруы полиморфизм деп аталады, ол сөзбе-сөз
әртүрлі формаларды қамту және оларды өзгерту мүмкіндігін білдіреді.
Полиморфизм виртуалды әдістерді пайдалану арқасында туындалады және ОББ
үшін мұрагерлену сияқты аса маңызды болып табылады. Өзіндік класстағы
әдісті виртуалды деп баяндау туынды класстарға осы әдісті іске асыруды
өзгертуге мүмкіндік береді. Мысалы, Draw() әдісі өзіндік класста виртуалды
болып табылса, ал туындалған класстар онышамадан тыс жүктесе, онда Draw()
хабарларына полиморфты жауап алуға болады.
Ойдан құрастырылған CAirVehicle класын қарастырайық. CAirVehicle
класының жай ғана тік төртбұрыш сызатын (CAirVehicle классы абстрактілі
болғандықтан) Draw() әдісі болсын деп жориық. Екі CJet және CHelicopter
класстары CAirVehicle класының туындысы болып табылады, яғни олар одан
Draw() әдісін мұрагерленіп тік төртбұрышты сыза алады. Екі туынды класс
өзінің алғы ата-класына қарағанда аса абстрактілі болмағандықтан, олар
Draw() әдісін жүктеп (өзгертіп), әрқайсысы өз бетінше тік төртбұрыштан
басқа мағыналы сурет (мысалы реактивті ұшақ немесе тікұшақ) салуы мүмкін.
Полиморфизмнің тізбегі келесі жолмен жүзеге асырылады:
1. Бір ғана (кем дегенде) виртуалды әдісі бар өзіндік классты құру.
2. Өзіндік класстан туындалатын жаңа классты (немесе класстарды) құру.
3. Виртуалды әдісті (немесе өзіндік класстың әдісін) жүктеу.
4. Әрбір туынды класстағы виртуалды әдісті (немесе әдістерді)
шақырудағы жауап қайтару реакцияларының айырмашылығы.
Түйіндеп айтқанда, класс-ұрпақ өзінің барлық мәліметтері мен әдістерін
мұрагерлеріне тапсырады. Класс-ұрпақтан туындаған класстар өзіндік класста
виртуалды деп баяндалған кез келген әдісті өзгерте алады. Полиморфизм
логикалық түрде байланысқан объекттерге Draw() хабарларына әртүрлі жауап
қайтаруларына мүмкіндік береді.
1.2. Объектіліреге бағытталған операциялық жүйелер
Бір жағынан компьютердің аппаратурасы мен пайдаланушының есептері
арасындағы интерфейс болып табылатын , ал екінші жағынан есептеуіш
жүйесінің қорын тиімді қолдану және сенімділік есептеу ұйымдастыруына
арналған басқарушы және өңдеу программаларының комплексін операциялық жүйе
дейміз.
Әрбір программалық жасау құрауыштары операциялық жүйенің басқаруымен
жұмыс жасайды.
ЭЕМ аппаратурасына операциялық жүйеден басқа программалық жасау
құрауыштарының еш қайсысы қатыспайды.
Пайдаланушының өз программаларымен әрекеттестігі операциялық жүйенің
интерфейсі арқылы өтеді. Олардың әрбір командалары қолданбалы прграммаларға
өту үшін операциялық жүйеден өтеді.
Операциялық жүйенің орындайтын негізгі функциялары.
1. пайдаланушыдан қабылдайтын командалар және олардың өңдеуі;
2. басқа программаларды іске қосу, тоқтату, кідіру үшін қабылданатын
және орындалатын программалық сұраныс;
3. орындалатын программаларды оперативті жадыға жүктеу;
4. программаның иницияциясы(передача ей упр-я в рез-те пр-р исп-т прогр-
му)
5. барлық программалар мен деректердің идентификациясы;
6. деректер базасын басқару жүйесінің жұмысын жасау, программалық
жасаудың тиімділігін көтереді;
7. мультипрограммалау режимін жасау (екі және оданда көп программалардың
бір процессорда орындалуы);
8. барлық енгізу-шығару операцияларын ұйымдастыру және басқару
функцияларын жасау;
9. жадыны үлестіру;
10. берілген стратегиялар және қызымет көрсету пән бойынша есептердің
жоспарлауы мен диспетчерлеуі;
11. орындалатын программалар арасындағы деректер мен хабарлардың алмасу
кетігін ұйымдастыру;
12. деректердің сақтауын жасау; бір программаны басқа программаның
қатерінен сақтау;
13. жүйенің бөліктік жаңылысу кезінде берілетін қызымет;
14. программалау жүйесінің жұмысын жасау арқылы пайдаланушылар өз
программаларын дайындайды;
Операциялық жүйемен қатынасу қызметін алу үшін программаларға қажет
интерфейсті операциялық орта дейміз (енгізу-шығару операциясын орындау,
жадының участкесін алу немесе босату).
Әр бір программалау жүйесі өзіне сәйкес операциялық жүйеде жұмыс
жасайды. Операциялық жүйені қызыметтеу үшін арнайы жүйелік программалар
утилит дейміз.
Операциялық жүйені жіктеу. Операциялық жүйелер біріншіден жалпы және
арнайы тағайындалады. Есептерді өңдеу режимінде операциялық жүйе бір
программалы және мультипрограммалы режимдерге бөлінеді.
Бірсанашықтық есептеу жүйесінде бірнеше программаның бір уақытта
орындалып жатқандай көріністі біз мультипрограммалық есептеуді ұйымдастыру
тәсілі деп атаймыз.
Бұл терминдердің негізгі айырмашылығы.
Мультипрограммалық режимде бірнеше қолданбалардың параллелді орындалуын
жасайды, ал программист бұл механизмнің орындалуын ойластырмайды.Бұл
функцияларды операциялық жүйе өзі орындайды;барлық орындалатын
қолданбаларға өзі есептеу жүйесінің қорларын бөледі және қажет
әрекеттестіктерді орындайды. Керісінше , мультиесептік режимде
қолданбалардың әрекеттестігі параллель орындалуы қолданбалы
программистерден тәуелді.
Соңғы операциялық жүйелер дербес компьютерлер үшін мультипрограммалық
және мультиесептік режимдерді жүзеге асырады. Негізгі сәулеттік принциптері
бойынша операциялық жүйені микроядролық және монолиттіге бөлуге болады.
Бір жағынан бұл бөлініс шартты түрде көрсетілген. Мысал келтіретін болсақ
микроядролық операциялық жүйеге QNX негізгі уақыт операциялық жүйесін
қатынастыруға болады. Ал монолитті операциялық жүйесі WIN 9598 немесе
Linux операциялық жүйесі. Win ядросын біз өзгерте алмаймыз , бізге оның
алғашқы кодтары белгісіз және бізде ядроны жинау үшін арналған программалар
жоқ. Linux ОЖ-не біз керек программалық модульдермен драйверларды қосып
ядроны жинауымызға болады.
Операциялық жүйені қарастырғанда есептеуіш үрдіс түсініктемесі негізгі
болып саналады.
Бөлек программаның деректерімен бірге тізбекті санашықта орындалуын
тізбекті үрдіс деп атаймыз.Мысал келтіретін болсақ үрдістерге
пайдаланушының қолданбалы программаларының орындалуы, утилиттар және басқа
жүйелік программалар жатады.
Текстің редакциялауы, программаны аударуы, оның құрастыруы, орындалуы
үрдіс болуы мүмкін. Бір программаны аудару ол бір үрдіс, ал келесі
программаны аудару – ол басқа үрдіс.
Аударғыш дегеніміз программалық модульдердің қосымы және бір программа
ретінде жұмыс көрсетеді, бірақ аударғыштың өңдейтін деректері әртүрлі.
Қор түсініктемесі де үрдіс сияқты операциялық жүйесінде негізгі болып
саналады. Қорды үлестіру және басқару механизмдерін ұлғартуын процесс
концепциясы анықтайды. Жүйе ішінде үлестірілетін әрбір объектті қор деп
атайды. Ең бірінші есептеу жүйелерінде орындалып жатқан программаның толық
орындалуынан кейін келесі программа орындалатын. Орталық санашық есептерді
орындап , деректерді енгізу-шығару операцияларын басқаратын.
Оперативті жады мен сыртқы құрылғы арасында деректермен алмасу
орындалған кезде, санашық басқа есептерді орындамайтын.
Есептеу машиналарына арнайы контроллердерді енгізу арқасында орталық
санашықта есептер орындалуы және қабылданған деректерді шығару
операцияларын уақытпен үлестіруі табылды. Оның өзінде санашық әрбір енгізу-
шығару операциясы аяқталғанша және көп уақыт күтіп тұратын. Сол кезде
есептеу жүйесінің мультипрограммалық режимі жұмыс ұйымдастыруы керек. Бір
программа (немесе үрдіс ) келесі енгізу-шығару операциясының аяқталуын
күтсе ,онда келесі программаны шешімге қоюға болады. Операциялық жүйе
мультипрограмманы қолдайды және сұрату кезегін ұйымдастыру арқылы қорларды
тиімді қолдануға тырысады.
Бұл келісім жадыда бірнеше үрдістің санашықтың босауын күтіп, ал
бірнеше үрдістер босаған қорларды қолдануға дайын кезде орындалады. Бір
қорды қолдану үшін ( енгізу –шығару құрылғысы, деректер ... жалғасы
Ақпараттық технология – ЭЕМ-нің көмегімен ақпаратты жинау, енгізу,
тасымалдау, сұрыптау, іздеу, реттеу, өзгерту және өңдеу жұмыстарының
тізбегі. Ақпараттық технологияның өндірістік технологиядан айырмашылығы оны
адамның қатысуынсыз роботтар іске асыратын үздіксіз процеске айналдыруға
болмайды. Өйткені ол құжаттың көшірмесін алу, есепке енгізу, есеп шығару
секілді жұмыстармен қатар шығармашылық ізденісті балап ететін шешімдер
қабылдау, мәселені жүргізу жолын өзгерту, бірнеше мүмкіндіктерді салыстыра
отырып, олардың ішінен ең тиімдісін іріктеп алу сияқты таңдау жұмыстарын
кеңінен жүргізумен өте тығыз байланысты болады. Сондықтан ақпараттық
технология "адамдық факторға" үлкен көңіл бөледі және оның шеберлік
деңгейінің өсуіне әсер етеді.
Қазіргі кездегі ақпараттық технология ұғымын мәліметтер өңдеуге байланысты
үш түрге жіктеуге болады. Олар: есепке алу, талдау және шешім қабылдау. Осы
уақытқа дейін бұл жұмыстар адамның басқаруымен қағазға жазылған құжатты
өңдеу түрінде өтетін, ал енді басқару, ұйымдастыру жұмыстарын ЭЕМ көмегімен
автоматты түрде атқару жаңа ақпараттық технологияның тууына себепші болды.
Бұл жаңа технологияның бұрынғы технологиядан (құжатты машинкада басу,
байланысты телефонмен жүргізу, сөзді диктофонға жазу) айырмашылығы –
тізбектеле орналасқан ақпараттық техника, "жылы жүзді" программалық жасақ
және дамытылған компьютерлік байланысты кеңінен қолдану.
Тарау І. Объектіге бағытталған программалау негіздері
1.2. Процедуралық бағдарламалаудан объектілі-бағытталған бағдарламалауға
өту
Процедуралық бағдарламалау жетпісінші жылдары бағдарламалаушылардың
еңбек өнімділігін арттыру қажеттілігінен туындап, сол кездегі көп
қолданылатын, мысалы Ассемблерге қарағанда бағдарламалық қамтаманы құру
үрдісін біршама қарапайым түрге келтіру және жеңілдету үшін құрылды.
Паскаль және Си процедуралық тілдері қамтамасыз ететін абстракцияның басқа
да бір жоғары деңгейі бағдарламалау өнімділігін арттыруға мүмкіндік берді.
Осылайша процедуралық бағдарламалау әдістемесінде қолданылатын табиғи
эволюциялық даму ретінде объектілі-бағытталған бағдарламалаудың концепциясы
қалыптасты.
Процедуралық бағдарламалауда кодтың бөлшектері блоктарға („қара
жәшіктер”) ұйымдастырылған модульдер мен функцияларға бөлінеді. Бұл блоктар
бағдарламалаушыдан өзінің мазмұнының күрделілігін жасырады, олардың
әрқайсысы мәліметтерге қажетсіз немесе авторланбаған кірудің алдын алу үшін
ақпаратты жасыруға тырысады. Теориялық түрде қара жәшік өзінің
юрисдикциясынан, шекарасынан тыс жатқан, сыртта жазылған қандайда бір
мәліметтерді өзгерту үшін қолданылмауы тиіс. Сонымен бірге, оның
бағдарламаға кейбір кері эффект (қоңыздар) беретін қабілеті болмау
керектігі жорамалданады. Бірақ өкінішке орай, шындығында: кері әсер ету
эффекттерінің саны бадарламаның өлшеміне тура пропорционал. Бағдарлама
үлкейген сайын, оның кодында қоңыздар тез байқалуы мүмкін.
Процедуралық бағдарламалау нақтылы өмірдің проблемаларын компьютер
тәріздес терминдерге түрлендіреді, олар бағдарлама жазуға себін тигізеді.
Объектілі-бағытталған бағдарламалау (ОББ), керісінше бағдарламада
қолданылатын, не қолданылмайтын заттарды идентификациялау арқылы, алайда
қойылған проблема бойынша нақтылы қарым-қатынастарды сақтайтын,
мәліметтердің модельдеріне бөліне алатын нақтылы өмірді модельдейді. Бұл
заттар компьютерде мәліметтердің жаңа типтері, яғни объекттер ретінде
бейнеленеді. Объекттер бағдарламаның мәтінінде класстар деп аталатын
мәліметтердің құрылымы ретінде анықталады; класстар хабарларды ұстап,
оларға әдістер арқылы кері жауап қайтарып спецификалық іс-әрекеттер орындай
алады. Егер сіз ОББ-ның мұндай терминдерімен бейтаныс болсаңыз, онда
төмендегілерді есте сақтаңыз:
• Объект – бұл орындалу барысындағы класстың бір түрі;
• әдіс – бұл класстың спецификациясында анықталғандай, объектіде
қамтылған класстың функция-мүшесі;
• хабар – бұл класстың әдісін шақыру.
Ескерту. Хабар ОББ технологиясында объектіні шақыру болып табылады.
ОББ-хабарлары мен Windows-хабарларын шатастыруға болмайды; Windows-тың
хабарлар жүйесі (Windows messaging) – бұл Windows-тың өз-өзімен және
операциялық жүйедегі белсенді үрдістерімен қарым-қатынас жасайтын ішкі
механизмі.
Класс және объект терминдері бірін-бірі жиі алмастырады, бірақ сіздер
олардың арасындағы айырмашылық барын білулеріңіз керек. Объект пен класс
терминдерінің қарым-қатынасын айқын ұғу үшін көздеріңізге қазіргі заманға
сай көркем де әсем үйді елестетіңіздер. Мұндай үй өзімен өзі пайда
болмайды, оны алдымен тұрғызу қажет. Алайда, ол үшін жұмысшылардың, құрылыс
материалдарының және техниканың болуы жеткіліксіз. Алдымен сәулетші үйді
жобалап, оның әрбір деталінің сызбасын даярлауы қажет. Тек содан кейін ғана
жұмысшылар құрылысқа кіріседі. Сызбалар үйді қалай салу керектігінің толық
спецификациясын көрсетеді. Бұл мысалда сызбалар классты, ал үй – сызбаларда
берілген спецификациялар бойынша құрылған нақтылы объектті білдіреді.
Әрине, біз үй мен үйдің сызбасы бірдей емес екеніне есеп бере аламыз,
ал бірақ абстрактілі түрде олар бірдей. Үйді салу үрдісінің барлық егжей-
тегжейлерін сызбадан, және де сызбадағы бар затты үйден табуға болады.
Басқа сөзбен айтқанда бұл класс пен объектінің байланысы емес.
Мысал ретінде ең қарапайым үйді қарастырайық. Үй-объект басқа
объектілерден, яғни шатыр, кереге, коммуникациялар және тағы басқалардан
тұрады; бұл объектілердің барлығы қазіргі заманға сай үйлердің көбісінде
кездеседі. Қарапайым сызбаны бастапқы нүкте ретінде пайдалана отырып,
сәулетші АЖЖ (автоматтандырылған жобалау жүйелері) бағдарламаларын қолданып
бастапқы жобаның кеңейтілуі болып табылатын, мысалы, бөлмелерді, екінші
қабатты одан да басқа заттарды қосу арқылы сызбаның басқа бір түрін ала
алады. Үй жоспарларының екінші бір бұл түрі өз кезегінде үшінші, бұдан да
бір күрделі сызбалар жиынын алуға мүмкіндік береді. Сіздер жақында осылайша
объекттерді де пайдалануға болатынына көз жеткізесіздер.
Ескерту. Сызба (класс) көптеген үйлерді (объекттер) салғанда
пайдаланылады. Осылайша біздің гипотетикалық үйімізді салу үшін қолданылған
объекттер әртүрлі конфигурацияларда қосылып, нәтижесінде әртүрлі үйлер
пайда болуы мүмкін.
Объектілер осы мәліметтермен әртүрлі операциялар орындайтын мәліметтерді
ғана емес, функцияларды да қамтығандықтан ОББ процедуралық бағдарламалаудың
ескі техникасындағы былықтан арылып, үлкен де, күрделі бағдарламалық
жабдықтарды оңай құруға, одан ары жүргізуге және модификациялауға мүмкіндік
береді.
Бұл екі бағдарламалау модельдерінің арасында көптеген сәйкестік
болғанымен, ОББ бағдарлама (класстың айнымалы-мүшелері) мәліметтерін және
осы мәліметтермен қарым-қатынасы бар функцияның (класстың әдістері)
мәліметтерін объектілерге жинақтауға мүмкіндік береді. Мәліметтер мен
функцияларды мұндай жинақтаудың (инкапсуляцияның) нәтижесінде объекттер өз
бетінше өмір сүріп не істеу және қашан істеу керектігін білетін тәрізді.
Бұдан басқа бір жетістігі объекттердің мәліметтері мен функцияларына қол
жеткізуге қолданылатын синтаксис, процедуралық кодқа қарағанда ОББ – кодын
аса оқылмалы етіп қолданысын жеңілдетеді. Ал өз бетінше сақталынатын
автномиялы объекттер бағдарламалаудың процедуралық түріне қарағанда тез
арада ең жақсы код жазуға себін туғызады.
Объектілі-бағытталған бағдарламалау процедуралық бағдарламалаудың ең
жақсы концепцияларын қамтып, олардың қолданысының тездетілуін жақсартады.
Кішігірім жобаларда ОББ жетістігі байқалмауы да мүмкін, ал үлкен жобаларда
міндетті түрде байқалады. Бұлар ОББ бағдарламаны жобалау және жазу
барысында бағдарламалаушыны бағдарламаның әртүрлі модульдерінің қарым-
қатынасына аса көңіл бөлуін талап етуінің арқасында орындалады. Шын мәнінде
кішігірім бағдарламаларды жазуда ОББ технологиясын қолданбай процедуралық
жолын пайдалану жеңіл. (Бұл жағдайда қандай да бір кодты жабыстыра салып,
оны алдын ала жобалаусыз жұмыс істету анағұрлым жеңіл.) Алайда,
бағдарламалар үлкейген сайын олар күрделене түседі де ебдейсізделінеді;
олардың қателерін табу күрделі, ал мәліметтерге қол жеткізу өте қиын.
Процедуралық жолмен құрылған модульдерді интеграциялау және жүргізу үрдісі
аса күрделі және көп уақыт алуы мүмкін. Бағдарламаның өлшемі үлкейген сайын
процедуралық қара жәшіктер көп арада істен шығады, ал оларды
модификациялағанда немесе бағдарламаны жүргізу уақытында оған қателер енуі
мүмкін. Үлкен бағдарламалар процедуралық жолмен жазылғанымен (қазіргі кезде
де жазылуда), ОББ бағдарламалаушының жұмысын жеңілдетеді және тездетеді, ал
коды тиімдірек болады.
Ескерту. Кішігірім бағдарламаларды процедуралық жолмен (оның
қарапайымдылығына байланысты) жазу жеңіл, ал үлкен бағдарламаларды
объектілі-бағдарламалаудың көмегімен құру тіпті оңай. ОББ
бағдарламалаушының ұйымшыл және тәртіпті болуын талап етеді, оны
объекттердің өз мәліметтерімен және басқа объекттердің мәліметтерімен қарым-
қатынасу әдісі талап етеді. Процедуралық бағдарламалау мен ОББ-ның негізгі
жайы ұқсас болғанымен, ОББ бағдарламалаушыға көп уақыт қолдануға болатын
код модулін құруға мүмкіндік береді. Оларды кез келген өлшемді жобаға
ешқандай тиімсіз қосалқы жағдайлардың пайда болуынан қорықпай енгізуге
болады.
Мұрагерлену
ОББ оқи бастаған бағдарламалаушыларды ең бастысы объекттер басқа
объекттердің қасиеттері мен функционалдық мүмкіндіктерін мұрагерлікке
иеленіп, ата-ана-ұрпақ қатынасын және объекттік иерархияларды тудыратыны
таң қалдырады. Бұл бағдарламалық код бірнеше функционалдық жіктерге бөліне
алатынын білдіреді. Функционалдық мүмкіндіктер (кез келген бір жіктің)
бағдарламалық кодтың ортақ фрагментіне негізделетін, әртүрлі қасиеттері бар
класстарға енгізілуі мүмкін. Жікке бөліну және кодты бірлесіп пайдалану
мүмкіндігі, объекттер бірінен бірі шекті өсетін класстардың иерархиясын
жобалауға мүмкіндік тудырады. Бұл қазіргі таңдағы тұрған іске өте ұқсас.
Алдыңғы класстың негізінде жаңа классты құру үрдісі мұрагерлену деп
аталады. Мұрагерлену туынды классқа (немесе класс-ұрпақ) алғы ата-класының
(немесе ата-тұяғының) барлық функционалдық мүмкіндіктерін иелендіреді.
Бұған қоса, туынды класс өзіндік есептерді шығару үшін алғы ата-класының
мүмкіндіктерін кеңейтеді.
Ескерту. СИ тліндегі класстардың атауы көп жағдайда С әрпінен, ал Object
Pascal тілінде Т әрпінен басталады.
Мысал үшін сізде әртүрлі жылжымалы құралдардың сипаттамалары мен
мүмкіндіктерін анықтайтын CVehicle деп аталатын өзіндік класс бар болсын
деп жориық. Бұл өзіндік класстың негізінде сіз әртүрлі объекттерді –
жылжымалы құралдарды құра аласыз. Мысалы, тікелей CVehicle класынан сіз
CLandVehicle, CWaterVehicle, CAirVehicle и CSpaceVehicle класстарын ала
аласыз. Әрбір туынды класс CVehicle-дың барлық мүмкіндіктерін мұрагерлікке
иеленеді, сонымен қатар қосымша мәліметтерді – жылжымалы құралдың әрбір
типіне класс анықтамасын айқындайтын мүшелері мен әдістерін де қамтиды. Ары
қарай класс анықтамалары осы туындаған бірінші деңгейлі класстардан жаңа
класстарды тудыру арқылы одан ары айқындалуы мүмкін. CLandVehicle-дан
CTruck, CCar, CMotocycle тудыруға болады. CWaterVehicle класының негізінде
сіз CJetSki, CBoat и CSubmarine класстарын құра аласыз. CAirVehicle класы
CJet, CHelicopter и CGlider класстарын тудыруы мүмкін. CSpaceVehicle класы
CStarShip, CShuttlecraft класстарын тудырады. Бұл класстардың барлығы
CVehicle өзіндік класынан туындап, класстардың қарапайым иерархиясын
құрайды.
Иерархияның әр деңгейінде класстар тығыз орналасқан сайын, жаңадан пайда
болған класстарда код көбірек қайталануы мүмкін. Оның қулығы объекттік
иерархияның кез келген деңгейінде өзіндік класстардың атрибуттары мен
операцияларын барлық объекттерге ортақ етуде және өзіндік класстардан
арнаулы класстарды алуда. Мұрагерлену сіз мүмкіндігіңізше қолдануға тиіс
тағы да бір қызық эффект береді: толық жөнделген кішігірім өзіндік класстар
берікті. Сіз күрделі класстарды құру барысында туынды класстарға енгізілген
код бөлігіне ғана назар аударуыңыз қажет. Жаңа классты құрудың әр
итерациясында толық жөнделген класс-ұрпақ кодына енгізілетін (яғни бірге
қосылатын) кодтың кішігірім саны мұрагерленуі мүмкін. Туынды класстардағы
кез келген қоңыздардың пайда болуын осы класстың жаңадан туындаған
кодынан байқауға болады. Егер класстарды кішігірім, өзіндік мақсаттарға
толық жету жолына бейімдеу арқылы жобаласа, онда класстар иерархиясының кез
келген деңгейіндегі жөндеу үрдісі біраз ықшамдалады.
Полиморфизм және виртуалды әдістер
ОББ-ның басқа бір есте қаларлық жетістігі әртүрлі типті объекттер бір
функцияны шақырғанда әртүрлі жауап қайтаруы мүмкін. Мысалы, біріншісі
екіншісінен туындайтын екі классты елестетіңіздер. Екі класс та Draw() деп
аталатын әдістен тұрады. Әр класс нені сызу керектігіне байланысты Draw()
хабарына әртүрлі жауап қайырады. Иерархиядағы әртүрлі объекттердің бір
хабарға әртүрлі жауап қайтаруы полиморфизм деп аталады, ол сөзбе-сөз
әртүрлі формаларды қамту және оларды өзгерту мүмкіндігін білдіреді.
Полиморфизм виртуалды әдістерді пайдалану арқасында туындалады және ОББ
үшін мұрагерлену сияқты аса маңызды болып табылады. Өзіндік класстағы
әдісті виртуалды деп баяндау туынды класстарға осы әдісті іске асыруды
өзгертуге мүмкіндік береді. Мысалы, Draw() әдісі өзіндік класста виртуалды
болып табылса, ал туындалған класстар онышамадан тыс жүктесе, онда Draw()
хабарларына полиморфты жауап алуға болады.
Ойдан құрастырылған CAirVehicle класын қарастырайық. CAirVehicle
класының жай ғана тік төртбұрыш сызатын (CAirVehicle классы абстрактілі
болғандықтан) Draw() әдісі болсын деп жориық. Екі CJet және CHelicopter
класстары CAirVehicle класының туындысы болып табылады, яғни олар одан
Draw() әдісін мұрагерленіп тік төртбұрышты сыза алады. Екі туынды класс
өзінің алғы ата-класына қарағанда аса абстрактілі болмағандықтан, олар
Draw() әдісін жүктеп (өзгертіп), әрқайсысы өз бетінше тік төртбұрыштан
басқа мағыналы сурет (мысалы реактивті ұшақ немесе тікұшақ) салуы мүмкін.
Полиморфизмнің тізбегі келесі жолмен жүзеге асырылады:
1. Бір ғана (кем дегенде) виртуалды әдісі бар өзіндік классты құру.
2. Өзіндік класстан туындалатын жаңа классты (немесе класстарды) құру.
3. Виртуалды әдісті (немесе өзіндік класстың әдісін) жүктеу.
4. Әрбір туынды класстағы виртуалды әдісті (немесе әдістерді)
шақырудағы жауап қайтару реакцияларының айырмашылығы.
Түйіндеп айтқанда, класс-ұрпақ өзінің барлық мәліметтері мен әдістерін
мұрагерлеріне тапсырады. Класс-ұрпақтан туындаған класстар өзіндік класста
виртуалды деп баяндалған кез келген әдісті өзгерте алады. Полиморфизм
логикалық түрде байланысқан объекттерге Draw() хабарларына әртүрлі жауап
қайтаруларына мүмкіндік береді.
1.2. Объектіліреге бағытталған операциялық жүйелер
Бір жағынан компьютердің аппаратурасы мен пайдаланушының есептері
арасындағы интерфейс болып табылатын , ал екінші жағынан есептеуіш
жүйесінің қорын тиімді қолдану және сенімділік есептеу ұйымдастыруына
арналған басқарушы және өңдеу программаларының комплексін операциялық жүйе
дейміз.
Әрбір программалық жасау құрауыштары операциялық жүйенің басқаруымен
жұмыс жасайды.
ЭЕМ аппаратурасына операциялық жүйеден басқа программалық жасау
құрауыштарының еш қайсысы қатыспайды.
Пайдаланушының өз программаларымен әрекеттестігі операциялық жүйенің
интерфейсі арқылы өтеді. Олардың әрбір командалары қолданбалы прграммаларға
өту үшін операциялық жүйеден өтеді.
Операциялық жүйенің орындайтын негізгі функциялары.
1. пайдаланушыдан қабылдайтын командалар және олардың өңдеуі;
2. басқа программаларды іске қосу, тоқтату, кідіру үшін қабылданатын
және орындалатын программалық сұраныс;
3. орындалатын программаларды оперативті жадыға жүктеу;
4. программаның иницияциясы(передача ей упр-я в рез-те пр-р исп-т прогр-
му)
5. барлық программалар мен деректердің идентификациясы;
6. деректер базасын басқару жүйесінің жұмысын жасау, программалық
жасаудың тиімділігін көтереді;
7. мультипрограммалау режимін жасау (екі және оданда көп программалардың
бір процессорда орындалуы);
8. барлық енгізу-шығару операцияларын ұйымдастыру және басқару
функцияларын жасау;
9. жадыны үлестіру;
10. берілген стратегиялар және қызымет көрсету пән бойынша есептердің
жоспарлауы мен диспетчерлеуі;
11. орындалатын программалар арасындағы деректер мен хабарлардың алмасу
кетігін ұйымдастыру;
12. деректердің сақтауын жасау; бір программаны басқа программаның
қатерінен сақтау;
13. жүйенің бөліктік жаңылысу кезінде берілетін қызымет;
14. программалау жүйесінің жұмысын жасау арқылы пайдаланушылар өз
программаларын дайындайды;
Операциялық жүйемен қатынасу қызметін алу үшін программаларға қажет
интерфейсті операциялық орта дейміз (енгізу-шығару операциясын орындау,
жадының участкесін алу немесе босату).
Әр бір программалау жүйесі өзіне сәйкес операциялық жүйеде жұмыс
жасайды. Операциялық жүйені қызыметтеу үшін арнайы жүйелік программалар
утилит дейміз.
Операциялық жүйені жіктеу. Операциялық жүйелер біріншіден жалпы және
арнайы тағайындалады. Есептерді өңдеу режимінде операциялық жүйе бір
программалы және мультипрограммалы режимдерге бөлінеді.
Бірсанашықтық есептеу жүйесінде бірнеше программаның бір уақытта
орындалып жатқандай көріністі біз мультипрограммалық есептеуді ұйымдастыру
тәсілі деп атаймыз.
Бұл терминдердің негізгі айырмашылығы.
Мультипрограммалық режимде бірнеше қолданбалардың параллелді орындалуын
жасайды, ал программист бұл механизмнің орындалуын ойластырмайды.Бұл
функцияларды операциялық жүйе өзі орындайды;барлық орындалатын
қолданбаларға өзі есептеу жүйесінің қорларын бөледі және қажет
әрекеттестіктерді орындайды. Керісінше , мультиесептік режимде
қолданбалардың әрекеттестігі параллель орындалуы қолданбалы
программистерден тәуелді.
Соңғы операциялық жүйелер дербес компьютерлер үшін мультипрограммалық
және мультиесептік режимдерді жүзеге асырады. Негізгі сәулеттік принциптері
бойынша операциялық жүйені микроядролық және монолиттіге бөлуге болады.
Бір жағынан бұл бөлініс шартты түрде көрсетілген. Мысал келтіретін болсақ
микроядролық операциялық жүйеге QNX негізгі уақыт операциялық жүйесін
қатынастыруға болады. Ал монолитті операциялық жүйесі WIN 9598 немесе
Linux операциялық жүйесі. Win ядросын біз өзгерте алмаймыз , бізге оның
алғашқы кодтары белгісіз және бізде ядроны жинау үшін арналған программалар
жоқ. Linux ОЖ-не біз керек программалық модульдермен драйверларды қосып
ядроны жинауымызға болады.
Операциялық жүйені қарастырғанда есептеуіш үрдіс түсініктемесі негізгі
болып саналады.
Бөлек программаның деректерімен бірге тізбекті санашықта орындалуын
тізбекті үрдіс деп атаймыз.Мысал келтіретін болсақ үрдістерге
пайдаланушының қолданбалы программаларының орындалуы, утилиттар және басқа
жүйелік программалар жатады.
Текстің редакциялауы, программаны аударуы, оның құрастыруы, орындалуы
үрдіс болуы мүмкін. Бір программаны аудару ол бір үрдіс, ал келесі
программаны аудару – ол басқа үрдіс.
Аударғыш дегеніміз программалық модульдердің қосымы және бір программа
ретінде жұмыс көрсетеді, бірақ аударғыштың өңдейтін деректері әртүрлі.
Қор түсініктемесі де үрдіс сияқты операциялық жүйесінде негізгі болып
саналады. Қорды үлестіру және басқару механизмдерін ұлғартуын процесс
концепциясы анықтайды. Жүйе ішінде үлестірілетін әрбір объектті қор деп
атайды. Ең бірінші есептеу жүйелерінде орындалып жатқан программаның толық
орындалуынан кейін келесі программа орындалатын. Орталық санашық есептерді
орындап , деректерді енгізу-шығару операцияларын басқаратын.
Оперативті жады мен сыртқы құрылғы арасында деректермен алмасу
орындалған кезде, санашық басқа есептерді орындамайтын.
Есептеу машиналарына арнайы контроллердерді енгізу арқасында орталық
санашықта есептер орындалуы және қабылданған деректерді шығару
операцияларын уақытпен үлестіруі табылды. Оның өзінде санашық әрбір енгізу-
шығару операциясы аяқталғанша және көп уақыт күтіп тұратын. Сол кезде
есептеу жүйесінің мультипрограммалық режимі жұмыс ұйымдастыруы керек. Бір
программа (немесе үрдіс ) келесі енгізу-шығару операциясының аяқталуын
күтсе ,онда келесі программаны шешімге қоюға болады. Операциялық жүйе
мультипрограмманы қолдайды және сұрату кезегін ұйымдастыру арқылы қорларды
тиімді қолдануға тырысады.
Бұл келісім жадыда бірнеше үрдістің санашықтың босауын күтіп, ал
бірнеше үрдістер босаған қорларды қолдануға дайын кезде орындалады. Бір
қорды қолдану үшін ( енгізу –шығару құрылғысы, деректер ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz