Foydalanuvchi:Humoyun Maksudovich Sultonov/qumloq
Kodning muammoli sohalarini aniqlash usullari
tahrirDasturiy ta'minot rot (bit rot, kod chirish, dasturiy ta'minot eroziyasi, dasturiy ta'minotning parchalanishi yoki dasturiy ta'minot entropiya) - dasturiy ta'minotning vaqt o'tishi bilan degradatsiyasi, yomonlashishi yoki foydalanish yoki unumdorligini yo'qotish.
Dasturiy ta'minot foydalanuvchisi tajribasi nuqtai nazaridan, u apparatni o'z ichiga olgan ekologik evolyutsiyani boshqaradi. Dasturiy ta'minotdan amaliy foydalanishning ob'ektiv yo'qolishining birinchi sababi - amaliy operatsion muhit sifatida xost tizimining yo'qolishi.
Jargon fayli, xakerlik haqidagi ma'lumotlar to'plami, "bit rot" ni "hech narsa o'zgarmagan" bo'lsa ham, vaqt o'tishi bilan dasturiy ta'minot dastur degradatsiyasining kulgili tushuntirishi sifatida ta'riflaydi. ; Buning ortidagi g'oya deyarli dasturni tashkil etuvchi bitlar radioaktiv parchalanishga duchor bo'lganga o'xshaydi[1].
Sabablari
tahrirDasturiy ta'minotning chirishiga bir qancha omillar sabab bo'ladi, jumladan, dasturiy ta'minot ishlaydigan muhitning o'zgarishi, dasturiy ta'minotning o'zi qismlari o'rtasidagi muvofiqlikning buzilishi va foydalanilmaydigan yoki kam ishlatiladigan kodda xatolar paydo bo'lishi.
Atrof-muhit o'zgarishi
tahrirDastur muhitida, xususan, dastur ishlab chiqaruvchisi kutmagan o'zgarishlar sodir bo'lganda, dasturiy ta'minot avvalgidek ishlamasligi mumkin. Masalan, ko‘pgina dastlabki kompyuter o‘yini dizaynerlari o‘z o‘yinlarida CPU soat tezligi dan taymer sifatida foydalanishgan[2]. Biroq, yangi protsessor soatlari tezroq edi, shuning uchun o'yin tezligi mos ravishda oshib, vaqt o'tishi bilan o'yinlarni kamroq foydalanishga aylantirdi.
Bir martalik imkoniyati
tahrirMuhitda dastur dizayneri bilan bog'liq bo'lmagan, balki uning foydalanuvchilari bilan bog'liq o'zgarishlar mavjud. Dastlab, foydalanuvchi tizimni ish holatiga keltirishi va ma'lum vaqt davomida benuqson ishlashi mumkin edi. Ammo, tizim to'g'ri ishlashni to'xtatganda yoki foydalanuvchilar konfiguratsiya boshqaruviga kirishni xohlasalar, turli kontekst va mavjud bo'lmagan ma'lumotlar (parol yo'qolgan, ko'rsatmalar etishmayotgan yoki oddiygina boshqarish qiyin) tufayli ular dastlabki qadamni takrorlay olmaydilar. [foydalanuvchi interfeysi]] birinchi marta sinov va xato orqali sozlangan). Axborot arxitektori Yonas Söderstryom ushbu kontseptsiyani "Onceability" deb atadi[3], va uni "texnik tizimdagi sifat, u muvaffaqiyatsizlikka uchraganidan keyin foydalanuvchi tizimni qayta tiklashiga to'sqinlik qiladi" deb belgilaydi.
Foydalanilmayotgan kod
tahrirHujjat filtrlari yoki boshqa dasturlar tomonidan foydalanish uchun mo'ljallangan interfeyslar kabi kamdan-kam ishlatiladigan kod qismlarida e'tibor berilmaydigan xatolar bo'lishi mumkin. Foydalanuvchi talablari va boshqa tashqi omillarning o'zgarishi bilan ushbu kod keyinroq bajarilishi mumkin, bu esa xatolarni ochib beradi va dasturiy ta'minotni kamroq funktsional qiladi.
Kamdan-kam yangilangan kod
tahrirOddiy dasturiy ta'minotga texnik xizmat ko'rsatish va tizimlar ham dasturiy ta'minotning chirishiga olib kelishi mumkin. Xususan, dasturda bir-biridan bir-biridan uzoqlikda ishlaydigan bir nechta qismlar mavjud bo'lsa, bir qismning o'zgarishi boshqalarga qanday ta'sir qilishini hisobga olmagan holda xatolar kiritishi mumkin.
Ba'zi hollarda, bu dasturiy ta'minot foydalanadigan kutubxonalar shaklida bo'lishi mumkin, bu dasturiy ta'minotga salbiy ta'sir ko'rsatadigan tarzda o'zgartiriladi. Agar ilgari dasturiy ta'minot bilan ishlagan kutubxonaning eski versiyasi boshqa dasturiy ta'minot bilan ziddiyat yoki eski versiyada topilgan xavfsizlik kamchiliklari tufayli endi foydalanilmasa, dastur uchun kerakli kutubxonaning mos versiyasi bo'lmasligi mumkin. foydalanish.
Onlayn ulanish
tahrirZamonaviy tijorat dasturlari ko'pincha litsenziyani tekshirish va ma'lumotlarga kirish uchun onlayn serverga ulanadi. Agar dasturiy ta'minotni quvvatlantiradigan onlayn xizmat o'chirilgan bo'lsa, u ishlamay qolishi mumkin[4][5].
2010-yillarning oxiridan boshlab koʻpchilik veb-saytlar xavfsiz HTTPS ulanishlardan foydalanadi. Biroq, buning uchun amal qilish muddati tugaydigan ildiz sertifikat deb nomlangan shifrlash kalitlari talab qilinadi. Sertifikatlarning amal qilish muddati tugagandan so'ng, kalitlar doimiy ravishda yangilanmaguncha qurilma ko'pgina veb-saytlarga ulanishni yo'qotadi[6].
Yana bir muammo shundaki, 2021-yil mart oyida TLS 1.0 va TLS 1.1 eski shifrlash standartlari eskirgan edi[7]. Bu shuni anglatadiki, kamida TLS 1.2-ni qo'llab-quvvatlamaydi operatsion tizimlar, brauzerlar va boshqa onlayn dasturlar ko'pchilik veb-saytlarga ulana olmaydi, hatto yamoqlarni yuklab olish yoki brauzerni yangilash uchun ham, agar shunday bo'lsa. bular mavjud. Bu ba'zan "TLS apokalipsisi" deb ataladi.
Aksariyat veb-saytlarga ulana olmaydigan mahsulotlar qatoriga PowerMacs, eski Unix qutilari va Server 2008/Windows 7 dan eski Microsoft Windows versiyalari kiradi (hech bo'lmaganda uchinchi tomon brauzeridan foydalanmasdan). Server 2008/Windows 7 da Internet Explorer 8 brauzeri TLS 1.2 ni qo'llab-quvvatlaydi, lekin u sukut bo'yicha o'chirib qo'yilgan[8].
Tasnifi
tahrirDasturiy ta'minot chirishi odatda "harakatsiz chirish" yoki "faol chirish" deb tasniflanadi.
Harakatsiz chirish
tahrirHozirda foydalanilmayotgan dasturiy ta'minot asta-sekin yaroqsiz holga keladi, chunki dasturning qolgan qismi o'zgaradi. Foydalanuvchi talablari va dasturiy ta'minot muhitining o'zgarishi ham yomonlashuvga yordam beradi.
Faol chirish
tahrirTo'g'ri yumshatish jarayonlari izchil qo'llanilmasa, doimiy ravishda o'zgartirilayotgan dasturiy ta'minot vaqt o'tishi bilan o'z yaxlitligini yo'qotishi mumkin. Biroq, ko'pgina dasturiy ta'minot yangi talablarga javob berish va xatolarni tuzatish uchun doimiy o'zgarishlarni talab qiladi va har safar o'zgartirish kiritilganda dasturiy ta'minotni qayta ishlab chiqish kamdan-kam amaliy bo'ladi. Bu dastur uchun mohiyatan evolyutsiya jarayonini yaratadi va uni asl muhandislik dizaynidan uzoqlashishiga olib keladi. Buning va o'zgaruvchan muhitning oqibati sifatida, asl dizaynerlar tomonidan qilingan taxminlar bekor bo'lishi mumkin, bu esa xatolarni keltirib chiqarishi mumkin.
Amalda, yangi xususiyatlarni qo'shish hujjatlarni yangilashdan ustun qo'yilishi mumkin; Hujjatlarsiz, lekin dasturning ayrim qismlariga tegishli maxsus bilimlar yo'qolishi mumkin. Buni qaysidir darajada kodlash konventsiyalari uchun eng yaxshi joriy amaliyotga rioya qilish orqali kamaytirish mumkin.
Faol dasturiy ta'minotning chirishi dasturning tijorat muddati tugashi bilan sekinlashadi va keyingi rivojlanish to'xtaydi. Foydalanuvchilar ko'pincha qolgan dasturiy ta'minot xatosilar ustida ishlashni o'rganadilar va hech narsa o'zgarmasligi sababli dasturiy ta'minotning harakati izchil bo'ladi.
Misollar
tahrirAI dasturi misoli
tahrirAI tadqiqotining dastlabki kunlaridan boshlab ko'plab seminal dasturlar tuzatib bo'lmaydigan dasturiy ta'minot chirishidan aziyat chekdi. Masalan, original SHRDLU dasturini (tabiiy tilni tushunishning dastlabki dasturi) har qanday zamonaviy kompyuter yoki kompyuter simulyatorida ishga tushirib bo'lmaydi, chunki u LISP va PLANNER hali rivojlanish bosqichida bo'lgan kunlarda ishlab chiqilgan va shuning uchun nostandart makrolar va endi mavjud bo'lmagan dasturiy ta'minot kutubxonalaridan foydalanadi.
Forklangan onlayn forum misoli
tahrirFaraz qilaylik, administrator ochiq kodli forum dasturidan foydalangan holda forum yaratdi, so'ngra yangi funksiya va opsiyalarni qo'shish orqali uni jiddiy o'zgartirdi. Ushbu jarayon mavjud kodga keng ko'lamli o'zgartirishlar kiritishni va ushbu dasturiy ta'minotning asl funksiyasidan chetga chiqishni talab qiladi.
Bu erdan, dasturiy ta'minotning chirishi tizimga ta'sir qilishi mumkin bo'lgan bir necha usullar mavjud:
- Administrator tasodifan bir-biriga yoki asl dasturiy ta'minotga zid bo'lgan o'zgarishlar kiritishi mumkin, bu esa forumning kutilmaganda o'zini tutishiga yoki umuman ishlamay qolishiga olib keladi. Bu ularni juda yomon ahvolga solib qo'yadi: ular asl koddan juda og'ishganligi sababli, texnik yordam va forumni qayta tiklashda yordam olish qiyin bo'ladi.
- Asl forumning manba kodida xavfsizlik teshigi topilgan bo'lishi mumkin, bu xavfsizlik tuzatishini talab qiladi. Biroq, administrator kodni juda keng o'zgartirganligi sababli, yamoq ularning kodi uchun to'g'ridan-to'g'ri qo'llanilmasligi mumkin, bu esa administratordan yangilanishni samarali tarzda qayta yozishni talab qiladi.
- O'zgartirishlar kiritgan ma'mur o'z lavozimini bo'shatib, yangi administratorga to'liq hujjatlarga ega bo'lmagan murakkab va jiddiy o'zgartirilgan forumni qoldirishi mumkin. O'zgartirishlarni to'liq tushunmasdan, yangi ma'mur uchun mojarolar va xatolarni kiritmasdan o'zgartirishlar kiritish qiyin. Bundan tashqari, asl tizimning hujjatlari endi mavjud bo'lmasligi yoki undan ham yomoni, funktsional talablardagi nozik farqlar tufayli chalg'ituvchi bo'lishi mumkin.
Wiki misoli
tahrirAytaylik, veb-master MediaWiki ning eng so'nggi versiyasini, masalan, Vikipediya kabi wikilarni quvvatlovchi dasturiy ta'minotni o'rnatadi va keyin hech qachon yangilanishlarni qo'llamaydi. Vaqt o‘tishi bilan veb-xost o‘z versiyalarini dasturlash tili (masalan, PHP) va ma’lumotlar bazasi (masalan, MariaDB) vebmaster bilan maslahatlashmasdan yangilashi mumkin. Etarlicha uzoq vaqtdan so'ng, bu oxir-oqibat yangilanmagan murakkab veb-saytlarni buzadi, chunki PHP va MariaDB ning eng so'nggi versiyalarida ba'zi [[o'rnatilgan funksiya|o'rnatilgan funksiyalar] qiyin eskirgan o'zgarishlar bo'ladi. ]], orqaga moslik ni buzadi va o‘ta xavfli xatolarga sabab bo‘ladi. Yangilanmagan veb-sayt dasturiy ta'minoti bilan yuzaga kelishi mumkin bo'lgan boshqa muammolarga xavfsizlikning zaifliklari va spam kiradi.
Refaktoring
tahrirRefaktoring dasturiy ta'minotning chirishi muammosini hal qilish vositasidir. Bu mavjud kodni tashqi xatti-harakatlariga ta'sir qilmasdan tuzilishini yaxshilash uchun qayta yozish jarayoni sifatida tavsiflanadi[9]. Bunga oʻlik kodni olib tashlash va keng koʻlamda oʻzgartirilgan va endi samarali ishlamaydigan boʻlimlarni qayta yozish kiradi. Dasturiy ta'minotning tashqi xatti-harakatlarini o'zgartirmaslik uchun ehtiyot bo'lish kerak, chunki bu nomuvofiqlikni keltirib chiqarishi va shu bilan dasturiy ta'minotning chirishiga hissa qo'shishi mumkin. Refaktoring haqida gap ketganda e'tiborga olinishi kerak bo'lgan ba'zi dizayn tamoyillari kodning ierarxik tuzilishini saqlab qolish va kod tuzilmalarini soddalashtirish va umumlashtirish uchun abstraksiya ni amalga oshirishdir[10].
Shuningdek qarang
tahrirMa'lumotnomalar
tahrir- ↑ Raymond, Eric „Bit rot“. The Jargon File. Qaraldi: 2013-yil 3-mart.
- ↑ Salemi, Joe. PC Magazine (en). Ziff Davis, Inc., 1992-01-28 — 286-bet.
- ↑ Jonas Söderström. „Onceability: The consequence of technology rot“. 2021-yil 3-iyunda asl nusxadan arxivlangan.
- ↑ Amadeo, Ron „The (updated) history of Android“ (en-us). Ars Technica (2016-yil 31-oktyabr). Qaraldi: 2021-yil 31-oktyabr.
- ↑ „Adobe CS2 is Now Available for Free, Sort Of“. Mobile Magazine (2013-yil 14-yanvar). 2013-yil 18-yanvarda asl nusxadan arxivlangan. Qaraldi: 2013-yil 20-yanvar.
- ↑ Paul Wagenseil. „Apocalypse deferred: These Android devices will no longer go offline next fall“ (en). Tom's Guide (2020-yil 24-dekabr). Qaraldi: 2023-yil 16-mart.
- ↑ „RFC ft-ietf-tls-oldversions-deprecate: Deprecating TLS 1.0 and TLS 1.1“ (en). IETF Datatracker (2021-yil 23-mart). Qaraldi: 2023-yil 16-mart.
- ↑ „Windows 7 adds support for TLSv1.1 and TLSv1.2 - IEInternals - Site Home - MSDN Blogs“. 2013-yil 26-dekabrda asl nusxadan arxivlangan.
- ↑ Fowler, Martin „What Is Refactoring“ (2007-yil 11-oktyabr). Qaraldi: 2007-yil 22-noyabr.
- ↑ Suryanarayana, Girish, Ganesh Samartyam va Tushar Sharma. Dasturiy ta'minot dizayni hidlari uchun refaktoring: Texnik qarzni boshqarish / Girish Suryanarayana, Ganesh Samarthyam, Tushar Sharma. 1-nashr. Waltham, Massachusets; Morgan Kaufmann, 2015. Chop etish.