Keńeyiwshilik
Keńeyiwshilik yamasa Keńeytiwshilik (inglisshe Extensibility) – keleshektegi ósiwdi támiyinleytuǵın programmalıq injiniring hám sistema dizaynı principi. Keńeyiwshilik – sistemanı keńeytiw qabiletiniń hám keńeytiwdi ámelge asırıw ushın talap etiletuǵın kúsh dárejesiniń ólshemi. Keńeytiwler jańa funkcionallılıqtı qosıw yamasa bar funkcionallılıqtı ózgertiw arqalı ámelge asırılıwı múmkin. Princip bar sistema funkciyalarına zıyan jetkermesten jetilistiriwlerdi támiyinleydi.
Keńeyiwshilik sistema – onıń ishki strukturası hám maǵlıwmat aǵımı jańa yaki ózgertilgen funkcionallılıq tárepinen minimal túrde yaki tásir etpeytuǵın sistema, mısalı sistemanıń minez-qulqın ózgertkende, jaratıwshı yaki basqa baǵdarlamashılar tárepinen derek kodın qayta kompilyaciyalaw yaki ózgertiw zárúr bolmawı múmkin. Programmalıq támiynat sistemaları uzaq jasaytuǵınlıqtan hám paydalanıwshılar talap etken jańa funkciyalar hám qosılǵan funkcionallılıqlar ushın ózgertiliwi sebepli, Keńeyiwshilik baǵdarlamashılarǵa programmalıq támiynattıń imkaniyatların keńeytiwge yaki qosıwǵa imkaniyat beredi hám sistematikalıq qayta paydalanıwdı jeńillestiredi. Onıń ayırım kózqarasları paydalanıwshılardıń óz programmalıq proceduraların kirgiziwge ruqsat beretuǵın imkaniyatlardı hám jańa maǵlıwmat túrlerin anıqlaw, sonday-aq jańa formatlaw belgilew teglerin anıqlaw qabiletlerin óz ishine aladı.[1][2]
Keńeyiwshi dizayn
Programmalıq támiynattaǵı keńeytiwshi dizayn – barlıq nárseni aldın ala proektlestiriw múmkin emesligin qabıl etiw. Ózgerislerge jol beretuǵın jeńil programmalıq támiynat freymvorkı ornına támiyinlenedi. Keńeyiwshi elementin joǵaltpaw ushın kishi komandalar dúziledi, jumıs elementlerin túsinikli bólimlerge bóliw principine ámel etiledi, tómen baylanısıw hám joqarı qosılıw sıyaqlı dástúrli programmalıq támiynat rawajlandırıw máselelerinen qashıw hám dawamlı rawajlandırıwǵa múmkinshilik beriledi. Qosılıwlar turaqlı bolatuǵın keńeyiwshi dizayn ushın ózgeristi qabıl etiw áhmiyetli. Sistemanıń hár bir bólegi hár qanday ózgerisler menen islewge jaramlı boladı, al qosıw arqalı ózgeris ideyası pútkil sistema dizaynınıń orayı bolıp tabıladı. Keńeyiwshi dizayn jiyi ózgerislerdi qayta prioritetlestiriwdi qollap-quwatlaydı hám Agile metodologiyaları hám iterativ rawajlandırıw tárepinen qollap-quwatlanatuǵın principler bolǵan soraw boyınsha kishi basqıshlar menen funkcionallılıqtı ámelge asırıwǵa imkaniyat beredi. Keńeyiwshi rawajlandırıw waqtında az hám taza baylanıslardı, sonday-aq azaytılǵan qosılıw hám kóbirek baylanısqan abstrakciyalardı, qosımsha jaqsı anıqlanǵan interfeyslerdi júkleydi.[3]
Áhmiyeti
Adam fenomenleri sebepli barlıq baǵdarlamalıq támiynattıń tiykarında ózgeriwsheńlik bar, óytkeni baǵdarlamalıq támiynat – adamlar tárepinen rawajlandırılatuǵın hám saqlanatuǵın "evolyuciyalanıwshı substanciya", baǵdarlamalıq támiynat specifikaciyasında hám ámelge asırılıwında dawamlı sistema ózgerislerin payda etedi. Baǵdarlamalıq támiynat komponentleri kóbinese baylanısı bolmaǵan tárepler tárepinen óz aldına rawajlandırıladı hám jaylastırıladı. Sırtqı jetkerip beriwshilerden alınǵan komponentler óndiriwshiden basqa úshinshi tárep paydalanıwshıların esapqa ala otırıp, belgili bir jaylastırıw scenariyine tayar jaraspawı múmkin bolǵanlıqtan, beyimlesiwsheń baǵdarlamalıq támiynat komponentleri zárúr. Kóp baǵdarlamalıq támiynat sistemaları hám baǵdarlamalıq támiynat ónim liniyaları ulıwma baǵdarlamalıq támiynat arxitekturasına yaki geyde funkcionallılıq hám ámelge asırıwdıń úlken bólimlerine iye bolǵan, biraq keńeyiwshi bazalıq sistemanı talap etetuǵın hár túrli komponentler menen úskeneleniwi múmkin bolǵan bazalıq sistemadan alınadı.[4]
Óz aldına keńeyiwshi baǵdarlamalıq támiynat sistemaların dúziw – áhmiyetli másele. Óz aldına keńeyiwshi sistema eki adamǵa sistemaǵa keńeytiwlerdi óz aldına rawajlandırıwǵa ǵana emes, sonday-aq global pútinlik tekseriwisiz eki keńeytiwdi birlestiriwge de múmkinshilik beredi.[5]
Keńeyiwshilik mexanizmleriniń klassifikaciyası
Baǵdarlamalıq támiynattı keńeytiwdiń úsh túrli forması bar: aq qutılı keńeyiwshilik, kúlreń qutılı keńeyiwshilik hám qara qutılı keńeyiwshilik, bular qanday artefaktlar hám olardıń ózgertiliw usılları tiykarında anıqlanadı.
Aq qutı
Bul keńeyiwshilik formasında, baǵdarlamalıq sistema derek kodtı ózgertiw arqalı keńeytiliwi múmkin, hám bul eń iykemli hám eń az sheklewshi forma bolıp tabıladı. Ózgerislerdiń qalay qollanılıwına baylanıslı keńeyiwshiliktiń eki sub-forması bar: ashıq qutılı keńeyiwshilik hám shiyshe qutılı keńeyiwshilik.
Ashıq qutı
Ashıq qutılı keńeytiletuǵın sistemalarda ózgerisler invazivlik túrde orınlanadı; yaǵnıy dáslepki derek kodı tikkeley xakerlik etiledi. Bul jaǵdayda derek kodınıń ashıq bolıwı hám onı ózgertiwge ruqsat beretuǵın derek kodı licenziyası kerek boladı. Ashıq qutılı keńeyiwshilik kóbinese qátelerdi dúzetiw, ishki kodtı qayta qurıw yamasa baǵdarlamalıq ónim versiyasın jańalaw ushın qollanıladı.
Shiyshe qutı
Shiyshe qutılı keńeyiwshilik (arxitektura basqarılatuǵın freymvorklar dep te ataladı) baǵdarlamalıq sistemanıń derek kodı ashıq bolǵan jaǵdayda keńeytiliwine ruqsat beredi, biraq kodtı ózgertiwge ruqsat etpewi múmkin. Keńeytiwler dáslepki sistemadan bólek bolıwı kerek, yaǵnıy dáslepki sistema tásir etilmeydi. Bul keńeyiwshilik formasınıń bir mısalı - obektke baǵdarlanǵan qollanba freymvorkları, olar keńeyiwshilikke ádette miyraslaw hám dinamikalıq baylanıstırıw arqalı erisedi.
Qara qutı
Qara qutılı keńeyiwshilikte (maǵlıwmat basqarılatuǵın freymvorklar dep te ataladı) sistemanıń implementaciyası haqqında hesh qanday maǵlıwmatlar qollanılmaydı; tek interfeys specifikaciyaları beriledi. Bul kózqaras aq qutılı kózqaraslarǵa qaraǵanda sheklengen. Qara qutılı keńeytiwler ádette sistema konfiguraciya qollanbaları arqalı yamasa qollanbaǵa tiyisli skriptlew tillerin komponent interfeyslerin anıqlaw arqalı ámelge asırıladı.
Kúlreń qutı
Kúlreń qutılı keńeyiwshilik taza aq qutılı hám taza qara qutılı kózqaraslar arasındaǵı kelisim bolıp, derek kodtı tolıq ashıwǵa tiykarlanbaydı. Baǵdarlamashılarǵa sistemanıń arnawlı interfeysin bere aladı, onda barlıq ashıq abstrakciyalar hám keńeytiwlerdiń qalay rawajlandırılıwı kerekligi haqqında specifikaciyalar kórsetiledi.[6]
Keńeyiwshilik hám qayta qollanılıwshılıq
Keńeyiwshilik hám qayta qollanılıwshılıqtıń kóp ayrıqsha qásiyetleri ulıwma, sonıń ishinde tómen baylanıs, modullik hám joqarı qáwipli elementlerdiń hár túrli baǵdarlamalıq sistemalar ushın qurılıw imkaniyatı, bul baǵdarlamalıq sistemalardıń jiyi ortaq elementlerdi úlesiwi baqlawı menen ilhamlanǵan. Qayta qollanılıwshılıq keńeyiwshilik penen birge texnologiyanıń basqa proektke az rawajlandırıw hám támiyinlew waqtı menen birge joqarı isenimlilik hám izbe-izlikti támiyinlep ótkeriwge imkaniyat beredi.[7]
Qáwipsizlik
Zamanagóy operaciyalıq sistemalar qurılma drayverleri hám júkleniwshi yadro modulleri arqalı keńeyiwshilikti qollaydı. Kóp zamanagóy qollanbalar plaginler, keńeytiw tilleri, appletler hám t.b. arqalı keńeyiwshilikti qollaydı. Keńeyiwshilikti kóbeytiw tendenciyası baǵdarlamalıq qáwipsizlikke unamsız tásir etedi.[8]
CGI - veb-serverlerdiń keńeyiwshilikti támiyinlewiniń tiykarǵı qurallarınıń biri. Ayırım adamlar CGI skriptlerin "úlken qáwipsizlik tesigi" dep qaraydı.[9]
Derekler
- ↑ Johansson, Niklas, and Anton Löfgren. Designing for Extensibility: An Action Research Study of Maximizing Extensibility by Means of Design Principles. N.p.: n.p., n.d. University of Gothenburg Department of Applied Information Technology, 29 May 2009. Web. 26 Apr. 2014. <https://gupea.ub.gu.se/bitstream/2077/20561/1/gupea_2077_20561_1.pdf>.
- ↑ Rouse, Margaret. "Extensible." SearchSAO. N.p., Mar. 2007. Web. 27 Apr. 2014. <https://web.archive.org/web/20161206223814/http://searchsoa.techtarget.com/definition/extensible (Wayback Machine saytında 2016-12-06 sánesinde arxivlengen)>.
- ↑ Kelly, Allan. "The Philosophy of Extensible Software." ACCU-Professionalism in Programming (2002): Web. 27 Apr. 2014. <http://accu.org/index.php/journals/391>.
- ↑ Zenger, Matthias. "1.2 Characteristics of Extensibility Mechanisms." Programming Language Abstractions for Extensible Software Components. Lausanne: Swiss Federal Institute of Technology, 2004. N. pag. Web. 26 Apr. 2014. <http://zenger.org/papers/thesis.pdf>.
- ↑ Martin Rytter and Bo Nørregaard Jørgensen. "Independently Extensible Contexts". Published in "Software Architecture: 4th European Conference , ECSA 2010, Copenhagen, Denmark, August 23-26, 2010, Proceedings". 2010. p. 327.
- ↑ Zenger, Matthias. "1.3 Classification of Extensibility Mechanisms." Programming Language Abstractions for Extensible Software Components. Lausanne: Swiss Federal Institute of Technology, 2004. N. pag. Web. 26 Apr. 2014.
- ↑ Zenger, Matthias. "1.1.1 Reusability." Programming Language Abstractions for Extensible Software Components. Lausanne: Swiss Federal Institute of Technology, 2004. N. pag. Web. 26 Apr. 2014.
- ↑ Gary McGraw."Software Security: Building Security in".2006.p. 9.
- ↑ Len Bass, Paul Clements, Rick Kazman. "Software Architecture in Practice". 2003. p. 339.