See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Perdirbimo klaida - Vikipedija

Perdirbimo klaida

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

Ariane raketa
Ariane raketa

Perdirbimo klaida (angl. reuse error) – neapgalvotas pakartotinas turimo (ir teisingai dirbusio) programos fragmento pritaikymas naujame, jam netinkamame kontekste.

Žinomiausias tokios klaidos pavyzdys yra Arianne 5 raketos katastrofa (1996 m). Ji kilo todėl, jog raketa skrisdama pakrypo daugiau, nei buvo tikimasi ankstesniems skrydžiams sukurtoje raketos valdymo programinėje įrangoje. Raketos padėtis, kuri buvo nusakoma 64 bitų slankaus kablelio tipo kintamuoju, tapo nekonvertuojama į vėliau reikalingą 16 bitų sveikojo skaičiaus tipo reikšmę. Buvo mesta artimetinė išimtis, visiškai sustabdžiusi kursą valdančios programos darbą. Atsarginės valdymo sistema, kurios programinė įranga buvo tokia pati, irgi išėjo iš rikuotės beveik tuo pačiu metu.

Vos pakilusi, 3700 metrų aukštyje raketa nelauktai nukrypo nuo kurso tiek ir susprogo.

Nors buvo žinoma, jog šiame skrydyje raketa gali pakrypti ir daugiau, programuotojai į tai neatkreipė dėmesio ir neperrašė „gerai veikančio, patikrinto kodo“.

Perdirbimo klaida gali pasitaikyti visur, kur neapgalvotai pakartotinai panaudojami tegu ir veikiantys esami kodo fragmentai, nesigilinant į jų esmę. Jos išvengti padeda detalesnis kodo dokumentavimas, prielaidų (assertions) naudojimas bei enkapsuliacija.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -