Компьютерлік бағдарламалық құралдар: негіздері мен эволюциясы [Информатика]
Организация : С.Рахимов атындағы жалпы орта мектеп
Должность : оқытушы
Дата : 05.10.2016
Номер журнала : 11-2021
Аннотация
Бұл мақала компьютердің бағдарламалық құралдарының негізгі түрлерін, даму эволюциясын және қазіргі заманғы бағдарламалау парадигмаларын зерттеуге арналған. Жұмыстың мақсаты — бағдарламалық қамтамасыз етудің жүйелік (базалық) және қолданбалы деңгейлерін талдау, сондай-ақ бағдарламалау тілдерінің машиналық кодтардан объектіге бағытталған технологияларға дейін даму барысын сипаттау. Зерттеуде әдебиеттерді талдау, жүйелеу және салыстырмалы талдау әдістері қолданылды. Мақалада бағдарламалық құралдардың құрылымы мен жіктелуі, трансляторлар мен интерпретаторлардың рөлі, сондай-ақ объектіге бағытталған бағдарламалаудың (ОБП) үш негізгі принципі — инкапсуляция, мұрагерлік және полиморфизм қарастырылады [1, б. 15; 2, б. 45]. Автор символдық бағдарламалау тілдерінің пайда болуының маңыздылығын және олардың бағдарламалаушының жұмысын қалай жеңілдеткенін атап көрсетеді. Нәтижелер бағдарламалық құралдардың дамуының бағдарламалауды демократияландыруға, есептеу техникасына қол жеткізуді кеңейтуге және күрделі ақпараттық жүйелерді құруға ықпал еткенін көрсетеді. Қорытындыда бағдарламалық құралдардың қазіргі заманғы ақпараттық қоғамдағы рөлі мен болашақ даму бағыттары қарастырылады.
Кіріспе
Ақпараттық технологиялар дәуірінде компьютерлік бағдарламалық құралдар (БҚ) қоғамның барлық салаларының дамуының негізгі қозғаушы күшіне айналды. Бұл құралдарсыз қазіргі есептеуіш техниканың жұмыс істеуі мүмкін емес, өйткені олар адам мен машина арасындағы байланысты қамтамасыз ететін "дәнекер тіл" ретінде әрекет етеді. Тақырыптың өзектілігі бағдарламалық құралдардың үнемі өсіп келе жатқан үлесімен, олардың қиындығы мен күрделілігінің артуымен және оларды дамытуға қойылатын заманауи талаптармен байланысты. Теориялық маңыздылығы бағдарламалық қамтамасыз етуді жіктеу мен сипаттаудың жүйелі тұжырымдамасын жасауға бағытталса, практикалық маңыздылығы студенттер мен жас мамандарға бағдарламалық құралдардың негізгі қағидалары туралы түсінік беруге бағытталған. Зерттеудің мақсаты — бағдарламалық құралдардың құрылымдық-функционалдық ерекшеліктерін жан-жақты талдау және олардың даму тарихындағы негізгі кезеңдерді анықтау.
Негізгі бөлім. Компьютерлік бағдарламалық құралдарды жалпы екі ірі санатқа бөлуге болады: жүйелік (базалық) бағдарламалық қамтамасыз ету және қолданбалы бағдарламалық қамтамасыз ету. Біріншісі компьютердің өзін басқаруға, оның аппараттық ресурстарын үйлестіруге және қолданбалы бағдарламалардың жұмысына қолайлы орта жасауға арналған. Оған операциялық жүйелер, драйверлер, трансляторлар (компиляторлар мен интерпретаторлар) және қызметші программалар (утилиттер) жатады [3, б. 78]. Екіншісі — пайдаланушының нақты тапсырмаларын (мәтінді өңдеу, есептеулер жүргізу, графика құру, деректер базасымен жұмыс істеу) шешуге бағытталған.
Бағдарламалық құралдардың даму тарихы машиналық командаларды пайдалана отырып, екілік кодта бағдарлама жазудан басталды. Бұл өте еңбек қиын және қателерге бейім процес еді. Оны жеңілдету үшін алғашқы алгоритмдік тілдер мен символдық кодтау әдістері пайда болды. Символдық тілдерде командалар мен деректердің адрестері идентификаторлар (символдар) арқылы белгіленді, бұл бағдарламалаушыны адрестерді қолмен есептеуден босатып, бағдарламаны жасау уақытын айтарлықтай қысқартты. Алайда, мұндай тілдерде жазылған бағдарламаны компьютер тікелей орындай алмайды, оны машиналық кодқа аудару үшін арнайы бағдарлама — транслятор қажет. Трансляторлар (компиляторлар) түпнұсқа кодты талдап, оны машина түсінетін нысанға түрлендіреді, сонымен қатар синтаксистік қателерді табады. Кейбір тілдер үшін интерпретаторлар қолданылады, олар бағдарламаны жолдан-жолға оқып, бірден орындайды, бұл әсіресе оқу және жылдам прототиптеу мақсаттары үшін ыңғайлы.
Бағдарламалау парадигмаларының дамуы процедуралық бағдарламалаудан объектіге бағытталған бағдарламалауға (ОБП) қарай қозғалыспен сипатталады. ОБП бағдарламаны нақты әлем объектілерінің модельдері ретінде құруға мүмкіндік береді. Оның негізіне үш принцип қаланып, олар ОБП тілдерінің (C++, Java, C#, Python) күші болып табылады.
Инкапсуляция — бұл деректер мен олармен жұмыс істейтін әдістерді бір бірімен топтастыру (капсулалау) принципі. Бұл объектінің ішкі құрылымын жасыра отырып, онымен тек анықталған интерфейс (әдістер) арқылы әрекеттесуге мүмкіндік береді. Осылайша, объектінің ішкі өзгерістері оны пайдаланатын бағдарлама кодтарына әсер етпейді, бұл кодтың сенімділігін арттырады және қателерді азайтады [4, б. 112].
Мұрагерлік — бұл жаңа кластарды (объекті типтерін) әзірлеу кезінде бар кластардың қасиеттерін меншіктену мүмкіндігі. Мысалы, "Көлік" базалық класынан "Жүк көлігі" және "Жеңіл көлік" сияқты туынды кластар жасауға болады, олар базалық кластың барлық өрістері мен әдістерін "мурагерлікке" алады. Бұл кодтың қайта пайдалану мүмкіндігін арттырып, артық қайталануды болдырмайды.
Полиморфизм — бір интерфейстің (әдістің атауының) әртүрлі класстар үшін әртүрлі жүзеге асырылу мүмкіндігі. Мысалы, "Есептеу" деген атауы бар әдіс "Шеңбер" класы үшін ауданын есептесе, "Тік төртбұрыш" класы үшін периметрін есептеуі мүмкін. Бұл бағдарламаларға икемділік пен абстракция деңгейін арттырады [5, б. 89].
Қазіргі заманғы бағдарламалық құралдардың дамуы интеграцияланған әзірлеу орталарына (IDE), көп платформалық қолданбаларға, бұлттық қызметтерге және жасанды интеллект элементтерін қамтитын бағдарламаларға бет бұруда. Сонымен қатар, ашық бастапқы кодты (open source) қозғалыс бағдарламалық құралдарды әзірлеу және тарату үлгісін түбегейлі өзгертті, қауымдастықтардың ынтымақтастығын арттырды. Автоматтандырылган тестілеу, үздіксіз интеграция (CI/CD) және контейнерлену (Docker сияқты) сияқты тәжірибелер заманауи бағдарламалық қамтамасыз етуді әзірлеу процесін жеделдетіп, сапасын арттырды.
Бағдарламалық құралдардың келешектегі даму бағыттарына кванттық есептеулерге арналған арнайыландырылған тілдер мен құралдарды дамыту, киберфизикалық жүйелердегі кіріктірілген бағдарламалық қамтамасыз етудің маңыздылығының артуы, сондай-ақ бағдарламалауды жеңілдету және демократияландыруды жалғастыратын low-code/no-code платформаларының таралуы жатады. Осының барлығы бағдарламалық құралдарды тек техникалық құрал ретінде емес, сонымен бірге инновациялар мен жаңа экономикалық қатынастардың драйвері ретінде түсіну қажеттілігін көрсетеді.
Қорытынды
Компьютерлік бағдарламалық құралдар — бұл қазіргі ақпараттық қоғамның инфрақұрылымы мен экономикасының ажырамас бөлігі. Олардың машиналық кодтардан символдық тілдерге, ал одан объектіге бағытталған және функционалдық парадигмаларға дейін болған тарихи эволюциясы бағдарламалаудың қолжетімділігін айтарлықтай арттырып, күрделі жүйелерді құруға жол ашты.
Жүргізілген талдау бағдарламалық құралдардың жүйелік және қолданбалы деңгейлерге жіктелуінің қажеттілігін растайды, өйткені олардың әрқайсысы компьютер жүйесінің тиімді жұмысында өзіндік маңызды функцияны атқарады. Объектіге бағытталған бағдарламалаудың негізгі принциптері — инкапсуляция, мұрагерлік және полиморфизм — қазіргі уақытта көптеген ірі жобалардың негізін құрайтын сенімді, икемді және қайта пайдалануға болатын код жасауға мүмкіндік береді.
Сонымен қатар, бағдарламалық құралдардың дамуы тек технологиялық прогресті ғана емес, сонымен бірге әлеуметтік өзгерістерді де білдіреді: білімге қол жеткізуді кеңейту, жаңа кәсіптердің пайда болуы және инновациялардың жылдамдығын арттыру. Болашақта бағдарламалық құралдардың дамуы жаңа парадигмалардың пайда болуымен, жасанды интеллектпен тереңірек интеграцияласуымен және қауіпсіздік, өнімділік пен қолдану ыңғайлылығына қойылатын талаптардың өсуімен сипатталады деп күтуге болады. Демек, бағдарламалық құралдардың негіздерін түсіну тек бағдарламашылар үшін ғана емес, сонымен бірге заманауи әлемнің кез келген белсенден қатысушысы үшін де маңызды болып қала береді.
Әдебиеттер тізімі
- Кнут Д. Э. Есептеуіш машиналарды бағдарламалау өнері. Т. 1: Негізгі алгоритмдер. – М.: Мир, 1976. – 735 б.
- Мейер Б., Бодуэл К. Бағдарламалау әдістері. Т. 2. – М.: Мир, 1982. – 368 б.
- Таненбаум Э. С. Заманауи операциялық жүйелер. – 4-ші басылым. – СПб.: Питер, 2015. – 1120 б.
- Буч Г. Объектіге бағытталған талдау және жобалау. – 2-ші басылым. – М.: Бином, 2019. – 720 б.
- Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. – Boston: Addison-Wesley, 1994. – 395 p.
- Stroustrup B. The C++ Programming Language. – 4th Edition. – Boston: Addison-Wesley, 2013. – 1366 p.
- Әдістемелік журналға мақала жариялаудың негізгі талаптары [Электронды ресурс] – https://adisteme.kz/rules.html