Л . Н. Гумилев атындағы Еуразия Ұлттық Университеті
Көлік-энергетика факультеті
Стандарттау, сертификаттау және метрология кафедрасы
Обьектіге бағытталған
программалау элементтері
Тобы:СиС-23
Орындаған: Марат Еркежан
Тексерген: Каршалова Д.Г.
Астана, 2023
Мазмұны
Объектілі-бағытталған программалау тарихы
Объектілі-бағытталған программалаудың негізгі принциптері
Объектілі-бағытталған программалаудың қасиеттері
ОБП тілдері
Объектілі-бағытталған программалау тарихы
Объектілі-бағытталған программалау – процедуралық программалау идеологиясының дамуы нәтижесінде пайда болды. Одан да басқа, қазіргі объектілі бағытталған программалауда – оқиға (оқиғалы бағытталған программалау деп те атайды) және компонент (компоненттік программа) түсінігі көптеген мағына береді.
Бұл программалаудың алғашқы тілі – Симула болып табылады. 1967 жылы пайда болған бұл тіл шындыққа революциялық идеяны: объектіні, класстарды, виртуальді әдістерді және т.б ұсынды, сондықтан мұның барлығы қазіргі замандағыларға қабылдана қоймады. Соған қарамастан, көптеген концепциялар Smalltalk тілінде Алан Кей және Дэн Ингаллспен бірге дамытты. Дәл осы тіл ең алғашқы ұзақ таратылған объектілі бағытталған программалау тілі болып табылады.
Объектілі-бағытталған программалаудың негізгі принциптері
Программалау түсінігінде объектілі бағытталған программалау программаны программалық объектілер жиынтығы түрінде көрсетуге негізделген күрделі программалық қамсыздандыруды құру технологиясы түрінде анықталады. Бұл жерде объектінің өзі қандай да бір тип (класс) экземпляры болып табылады, ал кластар қасиеттерді тұқым қуалау арқылы иерархия құрады. Мұндай жүйеде программалық объектілер қарым қатынасы хабарламаларды жіберу арқылы іске асырылады. Объектілі бағытталған программалаудың негізгі артықшылығы модульдік программалаумен салыстырғанда модульдер арасында жіберілген ақпарат көлемінің азаюы және модуларалық байланыстар санының қысқаруы.
Абстрактілеу — есептің пәндік облысында абстрактілерді ерекшелеу процесі. Абстракция дегеніміз қандай да бір объектінің оны барлық басқа объект түрлерінен ерекшелейтін сипаттамалар жиынтығы. Осылайша берілген объект ерекшеліктерімен шешілетін есептің әрі қарай қарастырылуы және талдануы жағынан нақты анықтайды.
Қатынауды шектеу — абстракцияны іске асыратын жеке элементтерін шектеу.
Модульділік — программалық жүйелерді құруда программаны жеке бөліктер түрінде жүзеге асыру принципі.
Иерархиялық — абстрактордың реттелген немесе ранжирленген жүйесі. Иерархиялық принципі программалық жүйелерді құруда иерархияларды қолдануды қарастырады.
Типтеу — объектілер қасиеттеріне салынатын және әр түрлі типті абстракцияның өзара алмасуына жол бермейтін шектеу.
Параллельділік — бірнеше абстракцияның қасиеттері бір уақытта активт күйде болады.
Тұрақтылық — абстракцияның процестен тәуелсіз болу қасиеті.
Осы аталған 7-принциптің төртеуі жүзеге асырылатын болса, онда тіл – объектілі бағытталған болып саналады.
Объектілі-бағытталған программалаудың негізгі қасиеттері:
Объектілі – бағытталған программалаудың негізгі үш қасиеті бар: инкапсуляция, полиморфизм және мұрагерлік (тұқым қуалау).
Инкапсуляция. Кластың мәліметтер структурасы сыртынан Си тіліндегі структураға және Паскальда немесе QuickBasic-тегі жазба тәрізді объектілі бағытталған тілдер мәліметтерінің типіне ұқсас. Сондықтан, осындай структура элементтері (класс мұшелері) тек мәліметтер ғана емес, сондай-ақ әдісте (яғни процедура мен функция) бола алады. Мұндай біріктіру – инкапсуляция деп аталады.
Полиморфизм. Полиморфизм – бұл әдістің мәліметтерін шақыру кезінде қандай класстың объектісі қолданылатынан тәуелді болып келетін әр түрлі программалық кодқа (полиморфты код) – бір атпен берілген функцияның сәйкес келу құбылысы. Полиморфизм – класс ұрпақтарының міндетті түрдегі сигнатуралық әдіспен берілген класстың алдыңғы ұрпақтарының реализациялық әдісін өзгертумен қамтамасыз етіледі. Бұл класс ұрпақтарының өзгермейтін интерфэйсінің сақталуын қамтамасыз етеді және әр түрлі класпен берілген кодта әдіс атымен байланысуды жүзеге асырады. Мұнда шақыру қай кластың объектісімен жүзеге асырылады, мәліметтер атымен берілген әдіс те сол кластан алынады. Мұндай механизм динамикалық (жай) байланысу деп атайды.
Жай және күделі палиморфизм. Кез – келген прогаммалау тілінде класстар иерархиясын құру үшін полимарфизм механизмі қарастырылған. Ол иерархияның әр түрлі деңгей класстары үшін қандай да бір аты бойынша біріккен әдістің әр түрлі аспектілерін анықтауға мүмкіндік береді. Полимарфизмді жай және күрделі деп бөледі. Жай полимарфизм ерте байланысу механизміне негізделеді. Ал күрделі полимарфизм кеш байланысу механизмін қолданылады.
Жай немесе статикалық полимарфизм С++ тілінде компиляция кезінде қолданылады және функцияларды қайта анықтау механизмі көмегімен іске асырылады. Мұндай полиморфты функциялар С++ -те қайта анықталатындар деп аталады. Жалпы ережелерге сәйкес олар қайталанатын параметр типімен және сигнатурамен яғни жіберілетін параметр сонымен типімен және кезектесу ретімен ерекшеленеді.
Мұрагерлік. Мұрагерлік – класс алдындағы ұрпақтың барлық қасиеттерін және әдістерін сақтай отырып, бір кластың басқа кластан пайда болу мүмкіндігі. Мұрагерлік қатынасымен байланысқан кластар жиынтығы – иерархия деп атайды. Нақтырақ айтқанда, объект келесі объектінің негізгі қасиеттерін мұра ете алады және тек оған ғана сәйкес кескіндер қоса алады. Мұрагерлік маңызды, себебі ол кластар иерархиясын қолдану үлкен информация лектерін басқарылатындай етеді.
Объектілі-бағытталған программалау тілдері
Программаларды дайындауда объекттік тәсілді өнімді қолдану үшін осы тәсілді қолдайтын программалау тілі қажет. Яғни объектілер кластарының сипаттамасын алуға, объектілік типтердің деректерін құруға объектілерімен операциялар орындауға мүмкіндік болу керек.
Осындай тілдердің алғашқысы барлық деректерді кейбір кластардың объектілері болып табылатын, ал кластардың жалпы жүйесі алдын-ала анықталған базалық кластардың негізінде иерархиялық құрылым сияқты салынатын SmallTalk тілі болды.
Программалау тәжірибесі бойынша программалаудың технологиясындағы кез-келген әдістемелік тәсілді басқа тәсілдерді қарастырмай қолдануға болмайды. Бұл объектіге бағытталған тәсілге де жатады. Объектілі бағытталған программалаудың пайдалылығы бір қатар типтік проблемаларда бар, пайдаланушымен диалогтарды программалау және т.б. Бірақ та тағы да басқа есептер бар, бұнда объектілік тәсілді қолдану артық еңбекті шығындауынан басқа ештемеге әкелмейді. Осыған байланысты объектілік тәсілді басқа әдіс танымдарымен байланыстыруға мүмкіндік жасайтын программалаудың объектіге бағытталған тілдері көп таралды.
Пайдаланылған әдебиеттер тізімі
1. Атре Ш. Структурный подход к организации баз данных. – М.: Финансы и статистика, 1983. – 320 с.
2. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989. – 351 с.
3. Мартин Дж. Планирование развития автоматизированных систем. – М.: Финансы и статистика, 1984. – 196 с.
4. Мейер М. Теория реляционных баз данных. – М.: Мир, 1987. – 608 с.
5. Цикритизис Д., Лоховски Ф. Модели данных. – М.: Финансы и статистика, 1985. – 344.
6. Хаббард Дж. Автоматизированное проектирование баз данных. – М.: Мир, 1984. – 294.