Subyektke baǵdarlanǵan programmalastırıw
Esaplaw texnikasında, subyektke baǵdarlanǵan programmalastırıw — bul obyektlerdiń jaǵdayı (maydanları) hám minez-qulqı (metodları) obyektlerdiń ózine tán emes, al obyektlerdiń hár túrli subyektiv túsinikleri («subyektleri») tárepinen usınılatuǵın obyektke baǵdarlanǵan programmalıq támiynat paradigması. Bul termin hám koncepciyalar birinshi ret 1993-jıl sentyabrde konferenciya maqalasında járiyalandı, ol keyinirek 1986 hám 1996-jıllar arasında konferenciyada usınılǵan úsh eń tásirli maqalalardıń biri retinde tán alındı[1]. Sol maqalada kórsetilgenindey, Platon menen Kanttıń filosofiyalıq kózqarasları arasındaǵı «haqıyqıy» obyektlerdiń xarakteristikaları boyınsha qarama-qarsılıq penen analogiya jasaladı, biraq programmalıq támiynat obyektlerine qollanıladı. Mısalı, biz hámmemiz terekti ólshenetuǵın biyiklikke, salmaqqa, japıraq massasına hám t.b. iye dep qabıl etiwimiz múmkin bolsa da, qustıń kózqarasınan, terektiń azıq-awqat yamasa uya salıw maqsetleri ushın salıstırmalı bahası bolıwı múmkin, yamasa salıq inspektorınıń kózqarasınan, onıń belgili bir jılda belgili bir salıq salınatuǵın bahası bolıwı múmkin. Qustıń da, salıq inspektorınıń da qosımsha jaǵday informaciyası terektiń ózine tán dep esaplanıwı shárt emes, al qustıń hám salıq inspektorınıń túsinikleri tárepinen qosıladı hám Kanttıń analizine sáykes, biz ózimizge tán dep esaplaytuǵın xarakteristikalar ushın da sol bir nárse durıs bolıwı múmkin.
Subyektke baǵdarlanǵan programmalastırıw obyektlerdi táriyipleytuǵın klasslardı úlkenirek subyektlerdi qurıw ushın biriktiriliwi múmkin bolǵan «subyektlerge» shólkemlestiriwdi usınadı. Maydanlarǵa yamasa metodlarǵa kiriw noqatlarında bir neshe subyektlerdiń úlesleri biriktiriliwi múmkin. Bul noqatlar subyektlerdiń qosılıw noqatları retinde xarakterlengen. Mısalı, eger terek kesilse, qatnasıwshı metodlar qustıń hám salıq inspektorınıń subyektlerindegi háreketti terektiń óziniń háreketi menen biriktiriwdi talap etiwi múmkin. Sonlıqtan, bul negizinde programmalıq támiynattı islep shıǵıwdıń algoritmik (proceduralıq) yamasa kórinisti-jasırıwshı (obyekt) tábiyatına qarama-qarsı, kompoziciyalıq tábiyatına kózqaras.
Qatnaslar
Aspektke baǵdarlanǵan programmalastırıw menen qatnası
1997-jılı aspektke baǵdarlanǵan programmalastırıwdıń kirgiziliwi onıń subyektke baǵdarlanǵan programmalastırıw menen qatnası hám subyektler menen aspektler arasındaǵı ayırmashılıq haqqında sorawlar payda etti. Bul sorawlar bir neshe waqıt juwapsız qaldı, biraq 1999-jılı berilgen Aspektke baǵdarlanǵan programmalastırıw boyınsha patentte qaraldı, onda eki noqat aldınǵı kórkem ónerden xarakterli ayırmashılıqlar retinde payda boladı:
- aspekt programması a) kesip ótiwshi minez-qulıqtıń kirgiziliwi kerek bolǵan orınlanıw noqatın óz ishine alǵan kesip ótiwdi; hám b) kesip ótiw menen baylanıslı implementaciya bólimin óz ishine alǵan kesip ótiw háreketin óz ishine aladı, bul implementaciya bólimi kesip ótiwshi minez-qulıqtı ámelge asıratuǵın kompyuter oqıy alatuǵın programma kodın óz ishine aladı.
- aspekt kesip ótiwshi minez-qulıqtı obyekt klasslarına hám basqa programmalıq támiynat birliklerine ashıq túrde májbúrleydi
Subyektke baǵdarlanǵan kózqarasta, kesip ótiw aspekt (subyekt)ten bólek jaylastırılıwı múmkin hám minez-qulıq aspekt tárepinen májbúrlenbeydi, al kompoziciya qaǵıydaları menen basqarıladı. Arqaǵa qaraw sonday-aq aspektke baǵdarlanǵan programmalastırıwdı aspektler tárepinen ulıwma usıllarda qollanılatuǵın birlesiw noqatların sırtqı túrde májbúrlew ushın sorawǵa uqsas kesiw noqatınıń koncepciyasın kirgiziw hám onnan paydalanıw arqalı ajıratıwǵa da imkaniyat beredi.
Subyektke baǵdarlanǵan programmalastırıwdıń usınılıwında, birlesiw (qosılıw) noqatları qasaqana túrde maydanǵa kiriw hám metod shaqırıw menen sheklengen edi, sebebi bular jaqsı proektlestirilgen freymvorklardıń funkcional keńeytiwge ruqsat etiw ushın proektlestirilgen noqatları bolǵan. Sırttan májbúrlengen kesiw noqatların qollanıw áhmiyetli lingvistikalıq imkaniyat, biraq aspektke baǵdarlanǵan programmalastırıwdıń eń tartıslı ózgeshelikleriniń biri bolıp qalmaqta.
Aspektke baǵdarlanǵan programmalıq támiynattı islep shıǵıw menen baylanısı
Mıńjıllıq almasıwına qaray, bir neshe izertlew toparlarınıń obyektlerdi dúziw ushın bólek paketlengen jaǵdaydı hám funkciyanı biriktiriw yamasa qosıw arqalı isleytuǵın hár túrli texnologiyalardı izertlep atırǵanı anıq boldı. Ulıwma qızıǵıwshılıq tarawın Aspektke baǵdarlanǵan programmalastırıwdan onıń anıq patent anıqlamaları menen ajıratıw hám kompoziciyalıq texnologiyanıń tek kodlaw basqıshınan kóbirek nárseler menen islesetuǵının ayrıqsha kórsetiw ushın, bul texnologiyalar Aspektke baǵdarlanǵan Programmalıq Támiynattı Islep Shıǵıw termini[2] astında birge shólkemlestirildi hám bul tema boyınsha bir shólkem menen xalıqaralıq konferenciyalar seriyası baslandı. Aspektke baǵdarlanǵan programmalastırıw sıyaqlı, subyektke baǵdarlanǵan programmalastırıw, kompoziciya filtrleri, ózgeshelikke baǵdarlanǵan programmalastırıw hám adaptiv usıllar aspektke baǵdarlanǵan programmalıq támiynattı islep shıǵıw usılları dep esaplanadı.
Ólshemler
Kóp ólshemli máselelerdi ajıratıw, Hyper/J hám Másele Manipulyaciyası Ortalıǵı
Subyektke baǵdarlanǵan programmalastırıwdıń dáslepki formulirovkası onı qasaqana paketlew texnologiyası retinde qarastırǵan – funkciyalar hám maǵlıwmatlar tipleri keńisliginiń eki ólshemde de keńeytiwge imkaniyat beredi. Birinshi implementaciyalar C++ hám Smalltalk ushın bolǵan. Bul implementaciyalar subyektlerdiń qosılıwın táriyiplew ushın programmalıq támiynat belgileri hám kompoziciya qaǵıydaları koncepciyaların paydalanǵan.
Programmalıq támiynattı tek onıń paketleniwi boyınsha ǵana emes, al bul paketler qarastıratuǵın hár túrli máseleler boyınsha da analizlew hám kompoziciyalaw ushın jaqsıraq tiykar beriliwi kerek degen máselelerdi sheshiw ushın materialdıń anıq shólkemlestiriliwi kóp ólshemli «matrica» túrinde islep shıǵıldı, onda máseleler olardı ámelge asıratuǵın programmalıq támiynat birliklerine baylanıslı. Bul shólkemlestiriw kóp ólshemli máselelerdi ajıratıw dep ataladı hám onı táriyipleytuǵın maqalası ICSE 1999 Konferenciyasınıń eń tásirli maqalası retinde moyınlanǵan[3].
Bul jańa koncepciya Java programmalıq támiynatın biriktiriw ushın Hyper/J atı menen qural retinde ámelge asırıldı.
Kompoziciya hám subyekt koncepciyası talap specifikaciyaları yamasa hújjetlestiriw sıyaqlı orınlanatuǵın semantikası joq programmalıq támiynat artefaktlarına qollanılıwı múmkin. Eclipse ushın Másele Manipulyaciyası Ortalıǵı (CME) dep atalatuǵın bir izertlew quralları táriyiplengen, onda soraw, analiz, modellestiriw hám kompoziciya ushın qurallar kórinisti manipulyaciyalaw ushın sáykes plagin-adapterlerin paydalanıw arqalı hár qanday tildegi yamasa kórinistegi artefaktlarǵa qollanıladı.
Hyper/J kompoziciya dvijogınıń miyrasxorı CME-niń bir bólimi retinde islep shıǵıldı, ol kompoziciya dvijogınıń bir neshe elementleri ushın ulıwma usıldı paydalanadı:
- qosılıw noqatların anıqlaw ushın unifikaciyası bar soraw tili,
- qolaylı strukturalıq-baylanıs modeli,
- anıqlanǵan elementlerdi tártiplew ushın ishki jaylasqan graf specifikaciyası,
- hám qarama-qarsı qaǵıydalar arasındaǵı kelispewshiliklerdi sheshiw ushın prioritetli tártiplew specifikaciyası.
Hyper/J da, CME de sáykes túrde alphaWorks[4] yamasa sourceforge-dan[5] qoljetimli, biraq ekewi de belsendi qollap-quwatlanbaydı.
Subyektke baǵdarlanǵan programmalastırıw «úshinshi ólshem» retinde
Obyektke baǵdarlanǵan programmalastırıwdaǵı metodtı jiberiwdi «eki ólshemli» dep oylawǵa boladı, sebebi orınlanatuǵın kod metod atına da, sóz etilip atırǵan obyektke de baylanıslı. Bunı[6] procedura atı tikkeley, yamasa bir ólshemli, kishi rutinaǵa sheshiletuǵın proceduralıq programmalastırıw menen hám sonday-aq jiberiwshi yamasa subyekttiń de jiberiwge tiyisli bolǵan, úshinshi ólshemdi quraytuǵın subyektke baǵdarlanǵan programmalastırıw menen salıstırıwǵa boladı.
Derekler
- ↑ «Most Influential OOPSLA Paper Award». www.sigplan.org.
- ↑ «Home». AOSD.net.
- ↑ «SIGSOFT - ACM Special Interest Group on Software Engineering».
- ↑ «Legacy Communities - IBM Community» (23-aprel 2009-jıl).
- ↑ «Concern Manipulation Environment (CME)» (24-aprel 2015-jıl).
- ↑ «Journal of Object Technology: Context Oriented Programming».