Statik tahlil nima?
Download 18.04 Kb.
|
Statik tahlil nima
Statik tahlil nima? Statik tahlil sinovdan o'tayotgan dasturiy ta'minotning dinamik bajarilishini o'z ichiga olmaydi va dasturni ishga tushirishdan oldin yuzaga kelishi mumkin bo'lgan nuqsonlarni dastlabki bosqichda aniqlay oladi. Statik tahlil kodlashdan so'ng va birlik sinovlarini bajarishdan oldin amalga oshiriladi. Statik tahlilni manba kodini avtomatik ravishda 'yurish' va mos kelmaydigan qoidalarni aniqlash uchun mashina amalga oshirishi mumkin. Klassik misol - bu leksik, sintaktik va hatto ba'zi bir semantik xatolarni topadigan kompilyator. Statik tahlilning afzalliklari nimada? Statik tahlilning asosiy afzalligi shundaki, u integratsiya va keyingi sinovlarga tayyor bo'lguncha kod bilan bog'liq muammolarni topadi. Statik kodni tahlil qilishning afzalliklari: Kodning zaif tomonlarini aniq joyda topishi mumkin. Uni kodni to'liq tushunadigan dasturiy ta'minotni ta'minlash bo'yicha ishlab chiquvchilar olib borishi mumkin. Manba kodini boshqa yoki kelajakdagi ishlab chiquvchilar osongina tushunishlari mumkin Bu tuzatishlar uchun tezroq burilishga imkon beradi Zaif tomonlar rivojlanish tsiklining ilgari uchraydi va bu tuzatish xarajatlarini kamaytiradi. Keyingi testlarda kamroq nuqsonlar Dinamik testlar yordamida aniqlanmaydigan yoki deyarli topilmaydigan noyob nuqsonlar aniqlanadi Amalga oshirilmaydigan kod O'zgaruvchan foydalanish (e'lon qilinmagan, foydalanilmagan) Chaqirilmagan funktsiyalar Chegara qiymatining buzilishi Statik kod tahlilining cheklovlari: Agar qo'lda o'tkazilsa, bu ko'p vaqt talab etadi. Avtomatlashtirilgan vositalar noto'g'ri ijobiy va noto'g'ri negativlarni ishlab chiqaradi. Statik kod tahlilini puxta o'tkazish uchun o'qitilgan kadrlar etarli emas. Avtomatlashtirilgan vositalar, hamma narsa ko'rib chiqilayotganligi to'g'risida noto'g'ri ma'lumotni berishi mumkin. Avtomatlashtirilgan vositalar faqat skanerlashda foydalanadigan qoidalar kabi yaxshi. Ish vaqti muhitida kiritilgan zaifliklarni topa olmaydi. Statik va dinamik tahlilni birlashtirish variantlari ko'rib chiqiladi, bu esa mahsulot etukligi bilan rivojlanishning oldingi bosqichlariga regressiyani oldini olishga yordam beradi. Ushbu ikki tomonlama yondashuv ko'pgina muammolarni hal qilish eng oson va arzon bo'lganda, rivojlanishning boshida oldini olishga yordam beradi. Statik tahlil vositalari xatolarni loyihaning boshida, odatda bajariladigan fayl yaratilishidan oldin topadi. Ushbu erta aniqlash, ayniqsa, dasturiy ta'minot maqsadli tizimda ishlash uchun etarli darajada to'liq to'liq bo'lmaguncha ishlab chiquvchilar dinamik tahlil vositalaridan foydalana olmaydigan yirik o'rnatilgan tizim loyihalari uchun foydalidir. Statik tahlil bosqichida manba kodining zaif nuqtalari bo'lgan joylari aniqlanadi va tavsiflanadi, jumladan yashirin zaifliklar, mantiqiy xatolar, amalga oshirishdagi nuqsonlar, parallel operatsiyalardagi noto'g'rilik, kamdan-kam uchraydigan chegara shartlari va boshqa ko'plab muammolar. Masalan, Klocwork Insight statik tahlil vositalari manba kodini sintaktik va semantik darajada chuqur tahlil qiladi. Ushbu vositalar, shuningdek, boshqaruv va ma'lumotlar oqimlarining murakkab protsessual tahlilini amalga oshiradi va ilg'or decoing texnikasidan foydalanadi, o'zgaruvchilar oladigan qiymatlarni baholaydi va ish vaqtida dasturning potentsial harakatini modellashtiradi. Ishlab chiquvchilar statik tahlil vositalaridan istalgan vaqtda ishlab chiqish bosqichida, hatto loyihaning faqat parchalari yozilgan bo'lsa ham foydalanishlari mumkin. Biroq, kod qanchalik to'liq bo'lsa, shuncha yaxshi bo'ladi. Statik tahlil yordamida barcha potentsial kodni bajarish yo'llarini ko'rish mumkin - bu loyiha 100% kodni qamrab olishni talab qilmasa, oddiy testlarda kamdan-kam hollarda bo'ladi. Misol uchun, statik tahlil chekka sharoitlari bilan bog'liq dasturiy xatolar yoki dizayn vaqtida sinovdan o'tkazilmagan yo'l xatolarini aniqlashi mumkin. Statik tahlil manba kod modeli asosida dasturning xatti-harakatlarini bashorat qilishga harakat qilganligi sababli, ba'zida "xato" topiladi, bu aslida mavjud emas - bu "noto'g'ri ijobiy" (noto'g'ri ijobiy) deb ataladi. Ko'pgina zamonaviy statik tahlil vositalari ushbu muammoning oldini olish va juda aniq tahlil qilish uchun takomillashtirilgan usullarni qo'llaydi. Statik tahlil dasturiy ta'minotni ishlab chiqish amaliyotida deyarli dasturiy ta'minotni ishlab chiqishning o'zi mavjud bo'lgan vaqtdan beri mavjud. Asl ko'rinishida tahlil dasturlash uslubi standartlariga (lint) muvofiqligini nazorat qilish uchun qisqartirildi. Ishlab chiquvchilar undan to'g'ridan-to'g'ri ish joylarida foydalanishgan. Xatolarni aniqlash haqida gap ketganda, dastlabki statik tahlil vositalari sirtdagi narsalarga e'tibor qaratdi: dasturlash uslubi va umumiy sintaksis xatolar. Masalan, hatto eng oddiy statik tahlil vositalari ham shunday xatolikni aniqlay oladi: int foo(int x, int* ptr) ( if(x & 1); ( *ptr = x; qaytish; ) ... ) Download 18.04 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling