3. Nosozliklarni tuzatish va dasturni saqlash 3.1 Sinov ishi Ushbu tezis loyihasini amalga oshirishda haqiqiy ma'lumotlardan foydalanilgan. Barcha bo'limlar, fikrlar darhol ochiladi. Barcha chizmalar aniq va yorqin. EUMP rangda ishlangan.
3.2 Dasturni tuzatish va sinovdan o'tkazish usullari Nosozliklarni tuzatish, yuqorida aytib o'tganimizdek, ikki xil bo'ladi:
Sintaktik disk raskadrovka. Sintaktik xatolar kompilyator tomonidan aniqlangan, shuning uchun ularni tuzatish juda oson.
Semantik (semantik) disk raskadrovka. Uning vaqti sintaktik xatolar qolmagan paytda keladi, ammo dastur noto'g'ri natijalarni beradi. Bu erda kompilyator biron bir narsani o'zi aniqlay olmaydi, garchi dasturlash muhitida odatda disk raskadrovka uchun vositalar mavjud bo'lsa, biz bu haqda keyinroq gaplashamiz.
Nosozliklarni tuzatish - bu dasturdagi xatolarni lokalizatsiya qilish va tuzatish jarayoni.
Biz yozganimiz kabi, disk raskadrovka deyarli har doim dasturlashdan ko'proq vaqt talab etadi.
Xato aniqlash usullari:
Analitik - dasturning tuzilishi haqida etarlicha tasavvurga ega bo'lgan holda, biz uning matnini ishlamasdan qo'lda ko'rib chiqamiz.
Eksperimental - nosozliklarni chop etish va kuzatuv vositalaridan foydalangan holda dasturni ishga tushiring va uning natijalarini tahlil qiling. Ikkala usul ham o'zlariga mos keladi va odatda birgalikda qo'llaniladi.
Texnikadan tashqari, xatolarni aniqlashga yordam beradigan vositalar haqida ham ma'lumotga ega bo'lish yaxshi. Bu:
Favqulodda bosma - alohida bloklarning va umuman dasturning g'ayritabiiy bajarilishi to'g'risida xabarlarni namoyish etadi.
Dastur tugunlarida bosib chiqarish - dasturchi tomonidan tanlangan joylarda oraliq parametrlar qiymatlarini chiqarish. Odatda, bu algoritmning tanqidiy bo'limlari (masalan, keyingi bajarilish qiymati bog'liq) yoki murakkab formulalarning tarkibiy qismlari (alohida hisoblab chiqing va katta fraktsiyaning denominatorini ko'rsating).
Bevosita kuzatuv:
Arifmetik (tanlangan parametrlar qachon teng va qay tarzda o'zgarishi uchun);
Boolean (tanlangan bayonlar ketma-ketligi qachon va qanday bajariladi);
Ko'rsatkichlar doirasidan chiqib ketishini boshqarish;
O'zgaruvchilarga havolalarni kuzatish;
Kichik dasturlarga qo'ng'iroqlarni kuzatish;
Massiv elementlari indekslari qiymatlarini tekshirish va hk.
Bugungi rivojlanish muhiti ko'pincha bizdan paydo bo'lgan muammoga interfaol rejimda munosabat bildirishni so'raydi. Bunday holda siz:
O'zgaruvchilarning joriy qiymatlarini, xotiraning holatini, ishlamay qolgan algoritmning bo'limini ko'rish;
Dasturni bekor qilish;
Dasturga o'zgartirish kiriting va uni qayta ishga tushiring (kompilyator muhitda bu kodni qayta to'ldirishni talab qiladi; sharhlangan muhitda siz o'zgartirilgan bayonnomadan bajarishni davom ettirishingiz mumkin).