www.wikidata.uk-ua.nina.az
Aspektno oriyentovane programuvannya AOP angl aspect oriented programming AOP paradigma programuvannya yaka dozvolyaye viokremiti perehresnu naskriznu funkcionalnist cross cutting concern Zmist 1 Meta stvorennya 2 Osnovni ponyattya 3 Perevagi vikoristannya 4 Sposobi zastosuvannya 5 Nedoliki 6 Zasobi rozrobki 7 PrimitkiMeta stvorennya RedaguvatiSuchasni programni sistemi chasto virishuyut velicheznu kilkist nadskladnih zavdan sho potrebuyut horoshih inzhenernih navichok vid yihnih rozrobnikiv ta nadijnosti instrumentalnih zasobiv rozrobki Pri zrostanni skladnosti takih sistem zrostaye i programnij kod rozrobniku staye vse vazhche ohopiti vsi detali realizaciyi sistemi Pri pidtrimci velikih programnih zasobiv zrostaye chas znahodzhennya ta vipravlennya pomilki uskladnyuyetsya dodavannya novih harakteristik oskilki staye vse vazhche viznachiti naskilki zmini vplinut na sistemu chi ne vnesut dodatkovih pomilok ta defektiv Dlya virishennya takih zavdan zastosovuyut riznomanitni inzhenerni zasobi yak ot bagatofunkcionalni seredovisha rozrobki shabloni proektuvannya gotovi programni karkasi tosho Chasto zgaduvanim nedolikom ob yektno oriyentovanogo pidhodu ye nemozhlivist lokalizaciyi naskriznoyi funkcionalnosti v odnomu klasi 1 Yak priklad takoyi funkcionalnosti chasto nazivayut neobhidnist vedennya zhurnaliv podij keruvannya vinyatkovimi situaciyami perevirku prav dostupu Kod sho vidpovidaye za danu funkcionalnist chasto rozkidanij po riznih klasah Ce z odnogo boku ne dozvolyaye skoncentruvati uvagu na osnovnij biznes logici klasu i uskladnyuye chitannya kodu Z inshogo boku uskladnyuyetsya vnesennya zmin u metodi roboti naskriznoyi funkcionalnosti sho ne zavzhdi mozhna vipraviti pravilnim vikoristannyam interfejsiv chi shabloniv proektuvannya Narazi aspektno oriyentovanij pidhid chasto vikoristovuyut dlya realizaciyi vishenavedenih prikladiv prote yak zauvazhuyut deyaki avtori 2 na comu sfera zastosuvannya aspektno oriyentovanogo pidhodu ne obmezhuyutsya oskilki vin mozhe buti vikoristanij dlya proektuvannya bud yakih sistem sho mistyat naskriznu funkcionalnist V rezultati nayavnosti zajvoyi perehresnoyi funkcionalnosti rozroblyuvanij modul mistit zaplutanij kod sho zadovolnyaye rizni programni vimogi Negativni vlastivosti takogo kodu 3 Rozkidanij kod Oskilki naskrizna funkcionalnist zachipaye bagato moduliv sistemi to j vikliki ciyeyi funkcionalnosti budut rozkidani po vsij sistemi Napriklad yaksho programa mistit zasobi monitoringu produktivnosti roboti z bazoyu danih to j vikliki ciyeyi funkcionalnosti budut rozmisheni vsyudi de potribno pracyuvati z bazoyu danih Nayavnist rozkidanogo kodu maye negativnij vpliv na proektuvannya ta realizaciyu sistemi Vazhkist vidslidkovuvannya priznachennya modulya oskilki vin mistit odnochasno funkcionalnist dlya zadovolennya riznih vimog Skladnist abo nemozhlivist povtornogo vikoristannya modulya u programah z inshoyu naskriznoyu funkcionalnistyu Velika jmovirnist pomilok Nayavnist kodu dlya realizaciyi funkcionalnosti riznogo rodu v odnomu moduli mozhe prizvesti do togo sho zhodne iz zavdan ne otrimaye dostatnoyi uvagi rozrobnika Vazhkist suprovodu Yaksho z yavlyayetsya neobhidnist u zmini naskriznoyu funkcionalnosti taka zmina zachipaye bagato moduliv sistemi sho v kincevomu rahunku mozhe prizvesti do problem sumisnosti Dlya virishennya zavdannya lokalizaciyi naskriznoyi funkcionalnosti bula rozroblena metodologiya aspektno oriyentovanogo programuvannya AOP Osnovni ideyi AOP buli sformulovani ideologom metodologiyi G Kinzhalesom 1 Vin takozh rozrobiv najpopulyarnishu nadbudovu movi programuvannya Java dlya roboti z aspektami AspectJ Osnovni ponyattya RedaguvatiDo osnovnih ponyat aspektno oriyenovanogo programuvannya nalezhat 3 Aspekt angl aspect modul abo klas yakij realizuye naskriznu funkcionalnist Aspekt zminyuye povedinku inshogo kodu zastosovuyuchi poradi v tochkah z yednannya viznachenih deyakim zrizom Porada angl advice dodatkova logika kod yakij povinen buti viklikanij z tochki z yednannya Porada mozhe buti vikonana do pislya abo zamist tochki z yednannya Cil angl target ob yekt do yakogo budut zastosovuvatisya poradi Tochka z yednannya angl join point tochka v vikonuvanij programi viklik metodu stvorennya ob yekta zvernennya do zminnoyi de slid zastosuvati poradu Zriz angl pointcut nabir tochok z yednannya Zriz viznachaye chi pidhodit dana tochka z yednannya do zadanoyi poradi Vprovadzhennya angl introduction zmina strukturi klasu ta abo zmina iyerarhiyi uspadkuvannya dlya dodavannya funkcionalnosti aspektu v chuzhoridnij kod Perepletennya angl weaving zv yazuvannya ob yektiv z vidpovidnimi aspektami mozhlive na etapi kompilyaciyi zavantazhennya abo vikonannya programi Perevagi vikoristannya RedaguvatiAspektno oriyentovanij pidhid rozglyadaye programnu sistemu yak nabir moduliv kozhen z yakih virazhaye osoblivist funkcionuvannya sistemi Pri proektuvanni sistemi rozrobnik vibiraye moduli tak shob kozhen iz nih realizovuvav pevnu funkcionalnu vimogu Natomist v ramkah ob yektno oriyentovanogo pidhodu realizaciya deyakih vimog do programi chasto ne mozhe buti lokalizovana v okremomu moduli v rezultati chogo kod sho vidobrazhaye taki funkcionalni zavdannya bude znahoditis u riznih modulyah napriklad kod vedennya zhurnalu podij Yak pidtverdzhuyut doslidzhennya aspektno oriyentovanij pidhid zmenshuye skladnist rozroblyuvanogo kodu 4 Tradicijnoyu harakteristikoyu rozmiru program ye kilkist ryadkiv vihidnogo kodu Napriklad odniyeyu z takih metrik ye ocinki Holsteda Osnovu ciyeyi metriki skladayut chotiri vimiryuvani harakteristiki programi Chislo unikalnih operatoriv programi Chislo unikalnih operandiv programi Zagalne chislo operatoriv v programi Zagalne chislo operandiv v programi Druga najinformativnisha grupa ocinok skladnosti program metriki skladnosti potoku upravlinnya program Yak pravilo za dopomogoyu cih ocinok operuyut abo shilnistyu kerivnih perehodiv useredini program abo vzayemozv yazkami cih perehodiv V rezultati provedenih doslidzhen na osnovi rozrobki sistemi avtorizaciyi z vikoristannyam aspektno oriyentovanogo pidhodu vstanovleno sho metriki kodu v cilomu na 10 40 nizhche nizh v OOP realizaciyi sho pozitivnim chinom vplivaye na sistemu oskilki na kozhnu metriku resurs bude vitracheno menshe chasu Sposobi zastosuvannya RedaguvatiVikoristannya aspektno oriyentovanogo pidhodu ne vimagaye povnoyi vidmovi vid ob yektno oriyentovanoyi realizaciyi oskilki jogo mozhna vprovadzhuvati lishe chastkovo Bilshe togo takij pidhid efektivno dopovnyuye ob yektno oriyentovanij kod Yak pokazuyut doslidzhennya aspektno oriyentovanih program 5 blizko 2 yih kodu pov yazana z specifichnimi mehanizmami movi aspektno oriyentovanogo programuvannya napriklad AspectJ 12 z bazovimi mehanizmami 86 ye ob yektno oriyentovanim Same tomu isnuyut roboti po vdoskonalennyu programnih karkasiv angl frameworks za dopomogoyu tehnologiyi aspektiv 6 Ob yektno oriyentovanij programnij karkas mistit komponenti sho stanovlyat yadro funkcionuvannya ta komponenti sho mistyat dodatkovu funkcionalnist Pri vikoristanni frejmvorku standartna funkcionalnist rozshiryuyetsya za dopomogoyu nasliduvannya Zastosuvannya aspektno oriyentovanogo pidhodu dozvolyaye z odnogo boku rozdiliti na okremi moduli naskriznu funkcionalnist yadra z inshogo boku legko dodavati funkcionalnist vikoristovuyuchi aspekti yadra Efektivno mozhna zastosovuvati aspektno oriyentovane programuvannya dlya optimizaciyi shabloniv proektuvannya 7 Pershoyu znachnoyu perevagoyu ye zdatnist lokalizuvati kod shablonu proektuvannya v odnomu aspekti abo pari tisno pov yazanih aspektiv na vidminu vid movi Java de kod shablonu mozhe buti rozkidanim po bagatom klasam Mozhlivist bachiti ves kod v odnomu misci maye ryad suttyevih perevag Chitachi kodu mozhut legshe zrozumiti shablon yaksho vin ves znahoditsya v odnomu misci Rozrobniki mozhut vikoristati zrozumili nazvi dlya opisu aspektu sho dozvolit inshim rozrobnikam legshe zrozumiti shablon Yaksho vinikla neobhidnist zminiti realizaciyu shablonu ce mozhna zrobiti v odnomu misci zamist togo shob shukati realizaciyu po vsij sistemi Doslidzhennya vikoristannya aspektno oriyentovanogo pidhodu provodilisya v riznih galuzyah Napriklad pri rozrobci mobilnih Java igor mozhna optimizuvati keruvannya igrovim ekranom stvorennya igrovih personazhiv zavantazhennya i vidobrazhennya malyunkiv tosho 8 Krim togo za dopomogoyu tochok z yednannya mozhna vprovadzhuvati neobov yazkovu funkcionalnist napriklad vidobrazhennya fonovih zobrazhen lishe na pristroyah pevnogo tipu Zaproponovani metodi zastosuvannya aspektno oriyentovanogo pidhodu dlya rozrobki bagatoagentnih sistem 9 de agent avtonomna programna odinicya sho pri vikonanni zavdannya reaguye na navkolishnye seredovishe ta spilkuyetsya z inshimi programami agentami napriklad programi kupivlya tovariv v Interneti V danomu vipadku aspekti mozhna zastosuvati dlya proektuvannya kilkoh platform komunikaciyi agentiv dodatkovih mozhlivostej navchannya riznih rolej ta protokoliv vzayemodiyi Nedoliki RedaguvatiYe kilka prichin sho strimuyut rozrobnikiv vid aktivnogo zastosuvannya tehnologiyi aspektno oriyentovanogo programuvannya hocha ci nedoliki sprostovuyutsya v deyakih robotah 2 Nedostatnya rozvinenist movnih zasobiv ta konstrukcij sho dozvolyayut zaprogramuvati aspekti Neobhidnist rozrobki najkrashih kompilyatoriv dlya optimizaciyi aspektnogo kodu Vidsutnist dostatno rozvinutih zasobiv pidtverdzhennya efektivnosti vikoristannya danogo pidhodu v kozhnomu konkretnomu vipadku Pevni skladnoshi vidlagodzhennya ta testuvannya rozroblenih program Prote najvazhlivishim strimuvalnim faktorom ye neobhidnist formuvannya svoyeridnogo mislennya dlya proektuvannya sistem v terminah naskriznoyi funkcionalnosti Tomu aspektno oriyentovanij pidhid ne zdobuv znachnogo poshirennya prote ye perspektivnoyu tehnologiyeyu dlya vivchennya 10 Zasobi rozrobki RedaguvatiDlya praktichnogo vprovadzhennya aspektno oriyentovanogo pidhodu vikoristovuyutsya rizni instrumentalni zasobi odnim z yakih ye rozshirennya movi Java pid nazvoyu AspectJ sho dozvolyaye vprovaditi aspektnu funkcionalnist v rozroblyuvani Java proekti za dopomogoyu rozshirennya sintaksisu abo anotacij Pri stvorenni AspectJ pered yiyi vlastivostyami stavilisya nastupni vimogi 11 Zvorotna sumisnist vsi Java programi povinni uspishno vikonuvatisya na AspectJ Sumisnist platformi vsi AspectJ programi povinni zapuskatisya na standartnij virtualnij mashini Sumisnist zasobiv rozrobki vklyuchaye seredovishe rozrobki zasobi dokumentuvannya i proektuvannya Sumisnist programuvannya programuvannya na AspectJ povinne spravlyati vrazhennya rozshirennya movi Java Krim cogo isnuyut j inshi Java frejmvorki dlya roboti z aspektami porivnyalna harakteristika yakih navoditsya u tablici 12 Feature issue AspectJ AspectWerkz JBoss AOP Spring dynaaopWeaving time Compile load time Compile load time Compile load run Runtime RuntimeTransparency Transparent Transparent Choice Factory FactoryPer instance aspects No No Yes Yes YesConstructor field throw and cflow interception All All Some Some NoneAnnotations No Yes Yes Yes NoStandalone Yes Yes Yes No YesAOP Alliance No No No Yes YesAffiliation IBM BEA JBoss Spring Primitki Redaguvati a b http citeseerx ist psu edu viewdoc download doi 10 1 1 37 4987 amp rep rep1 amp type pdf a b Arhivovana kopiya Arhiv originalu za 22 listopada 2011 Procitovano 17 zhovtnya 2011 a b Arhivovana kopiya Arhiv originalu za 6 lyutogo 2012 Procitovano 17 zhovtnya 2011 Arhivovana kopiya Arhiv originalu za 6 lyutogo 2012 Procitovano 17 zhovtnya 2011 Arhivovana kopiya Arhiv originalu za 20 sichnya 2010 Procitovano 17 zhovtnya 2011 Arhivovana kopiya Arhiv originalu za 6 bereznya 2016 Procitovano 17 zhovtnya 2011 Arhivovana kopiya Arhiv originalu za 4 bereznya 2016 Procitovano 17 zhovtnya 2011 http citeseerx ist psu edu viewdoc download doi 10 1 1 91 9134 amp rep rep1 amp type pdf http citeseerx ist psu edu viewdoc download doi 10 1 1 66 1702 amp rep rep1 amp type pdf Arhivovana kopiya Arhiv originalu za 16 serpnya 2011 Procitovano 17 zhovtnya 2011 Arhivovana kopiya Arhiv originalu za 8 listopada 2016 Procitovano 17 zhovtnya 2011 Arhivovana kopiya Arhiv originalu za 30 veresnya 2007 Procitovano 22 kvitnya 2007 nbsp Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Aspektno oriyentovane programuvannya amp oldid 35922215