Quyidagi kod ikkita tasdiqni o'z ichiga oladi, x> 0 va x> 1va ular haqiqatan ham ijro paytida ko'rsatilgan nuqtalarda to'g'ri keladi


Shartnoma bo'yicha dizayndagi tasdiqlar



Download 32,25 Kb.
bet2/4
Sana03.07.2022
Hajmi32,25 Kb.
#735304
1   2   3   4
Bog'liq
Dasturiy kodlarni tekshiruvchi kompilyator dasturini yaratish

Shartnoma bo'yicha dizayndagi tasdiqlar
Tasdiqlar hujjat shakli sifatida ishlashi mumkin: ular kod ishlashidan oldin kutadigan holatni tavsiflashi mumkin (uning old shartlarva kod tugagandan so'ng tugashi kerak bo'lgan holat ()keyingi shartlar); ular ham belgilashi mumkin invariantlar a sinfEyfel bunday tasdiqlarni tilga qo'shadi va sinfni hujjatlashtirish uchun ularni avtomatik ravishda chiqaradi. Bu usulning muhim qismini tashkil qiladi shartnoma bo'yicha loyihalash.
Ushbu yondashuv uni aniq qo'llab-quvvatlamaydigan tillarda ham foydalidir: da'volardan ko'ra tasdiqlash bayonotlaridan foydalanishning afzalligi Izohlar dastur har safar ishlaganda tasdiqlarni tekshirishi mumkin; agar tasdiq endi bajarilmasa, xato haqida xabar berish mumkin. Bu kodni tasdiqlashlar bilan sinxronlashdan saqlaydi.
Ish vaqtini tekshirish uchun tasdiqlar
Tasdiq dasturni amalga oshirishda dasturchi tomonidan qabul qilingan taxmin dastur bajarilayotganda haqiqiy bo'lib qolishini tekshirish uchun ishlatilishi mumkin. Masalan, quyidagilarni ko'rib chiqing Java kod:
int jami = countNumberOfUsers(); agar (jami % 2 == 0) { // jami teng } boshqa { // jami toq va manfiy emas tasdiqlash jami % 2 == 1; }
Yilda Java, % bo'ladi qoldiq operator (modul) va Java-da, agar uning birinchi operandasi salbiy bo'lsa, natija ham salbiy bo'lishi mumkin (matematikada ishlatiladigan moduldan farqli o'laroq). Bu erda dasturchi buni taxmin qildi jami manfiy emas, shuning uchun 2 ga bo'linishning qoldig'i har doim 0 yoki 1 bo'ladi. Tasdiq bu taxminni aniq qiladi: agar countNumberOfUsers salbiy qiymatni qaytaradi, dasturda xato bo'lishi mumkin.
Ushbu texnikaning asosiy afzalligi shundaki, xato yuzaga kelganda, u tez-tez noaniq effektlar orqali emas, balki darhol va to'g'ridan-to'g'ri aniqlanadi. Tasdiqlashda xatolik odatda kod joylashuvi haqida xabar berganligi sababli, ko'pincha xatolarni tuzatmasdan xatoni aniq belgilash mumkin.
Tasdiqlar ba'zida ijro etilishi kerak bo'lmagan nuqtalarda joylashtiriladi. Masalan, da'volarni sukut bo'yicha bandi almashtirish kabi tillarda bayonot CC ++va Java. Dasturchi qasddan ishlamaydigan har qanday vaziyat xatoga yo'l qo'yadi va dastur jimgina xato holatida davom etish o'rniga to'xtaydi. Yilda D. bunday tasdiq avtomatik ravishda qo'shilganda a almashtirish bayonotida a mavjud emas sukut bo'yicha band.
Yilda Java, tasdiqlar 1.4 versiyasidan beri tilning bir qismi bo'lib kelgan. Tasdiqlash muvaffaqiyatsizlikka olib keladi AssertionError dastur tegishli bayroqlar bilan ishlaganda, ularsiz assert so'zlari e'tiborga olinmaydi. Yilda C, ular standart sarlavha bilan qo'shiladi tasdiqlash belgilaydigan tasdiqlash (tasdiqlash) muvaffaqiyatsizlikka uchragan xato haqida signal beradigan, odatda dasturni tugatadigan so'l sifatida. Yilda C ++, ikkalasi ham tasdiqlash va kasset sarlavhalar tasdiqlash so'l.
Tasdiqlarning xavfi shundaki, ular xotira ma'lumotlarini o'zgartirish yoki ish vaqtini o'zgartirish orqali yon ta'sirga olib kelishi mumkin. Tasdiqlashlar dastur kodiga nojo'ya ta'sirlarni keltirib chiqarmasligi uchun ehtiyotkorlik bilan amalga oshirilishi kerak.
Tilda tasdiqlash konstruktsiyalari osonlikcha imkon beradi sinovga asoslangan rivojlanish (TDD) uchinchi tomon kutubxonasidan foydalanmasdan.

Download 32,25 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish