Ohjelmointivirhe

Wikipedia
Ohjattu sivulta Ohjelmistovirhe
Loikkaa: valikkoon, hakuun
Vuonna 1945 ryhmä Harvard Mark II -tietokonetta testaavia insinöörejä löysi sen sisältä yöperhosen. Vaikeasti huomattavaa, pientä toimintavirhettä tarkoittava bug-sana oli kuitenkin jo silloin käytössä.

Ohjelmointivirhe eli bugi on tietokoneohjelman lähdekoodissa oleva virhe. Virheet jaetaan kahteen pääluokkaan: syntaksivirheet ja semanttiset virheet. Syntaksivirheet paljastuvat heti, koska kääntäjä ei pysty kääntämään sellaista ohjelmakoodia eikä ohjelmointikielen tulkki voi tulkaten suorittaa sellaista ohjelmakäskyä. Semanttinen virhe saa ohjelman toimimaan väärin jossain tilanteessa. Virheellinen toiminta saattaa johtua myös kääntäjän tai tulkin virheellisestä toiminnasta. Väärä toiminta määritellään tapauskohtaisesti ja joissain tapauksissa voi olla epäselvää, onko yllättävä toiminta virheellistä. Ohjelmointivirhe tapahtuu ohjelmointi- (implementointi eli toteutus) tai suunnitteluvaiheessa (speksaus) ja ilmenee ohjelmaa ajettaessa. Virheen korjaamisen kannalta on hankalaa, että se saattaa ilmetä vain jossain yksittäisessä ja harvinaisessa tilanteessa, jota on vaikea hahmottaa. Kaikissa hyödyllisissä tietokoneohjelmissa sanotaan olevan virheitä.

Ohjelmankirjoituksessa pätee virheen suurusluokkaan seuraava: Mitä myöhemmässä ohjelmistonkehityksen vaiheessa virhe tehdään, sitä helpompi se on korjata. Jos virhe tapahtuu jo suunnittelu- ja määrittelyvaiheessa, korjaaminen on usein hankalaa ja jopa mahdotonta. Hyvin kirjoitetuissa ohjelmissa niitä on suhteellisen vähän, ja ne ovat niin lieviä, etteivät ne estä ohjelmaa täyttämästä tarkoitustaan. Ohjelman, jossa on paljon vakavia virheitä, sanotaan olevan buginen. Sana tulee englannin kielen ludetta ja hyönteistä tarkoittavasta sanasta bug (suom. ötökkä). Sana on vanha insinööritermi, jota esimerkiksi Edison käytti kirjoittaessaan vuonna 1878:

»It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that ”Bugs”—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.»

Ohjelmointivirheellä selitetään myös usein ohjelmistosodankäyntiin liittyviä ohjelmistojen ”ominaisuuksia”, esimerkiksi ohjelmistoon jääneitä takaportteja ja turvallisuusrakenteiden ohituksia tai puskurin ylivuotovirhettä (ohjelmointivirheitä). Käytännössä tarkoituksellisen vian ja tahattomasti syntyneen ohjelmointivirheen erottaminen on lähes mahdotonta. Ne voidaan erottaa vain tietämällä virheen tavoite.

Ohjelmointivirheitä voidaan korjata muun muassa debugger-ohjelmilla.

Bugi-termin väitetään usein syntyneen vuonna 1945, kun ryhmä Harvard Mark II -tietokonetta testaavia insinöörejä löysi sen sisältä koiperhosen. Tämä ”bugi” oli kuitenkin löytäjistään hauska ja kirjaamisen arvoinen, koska termi oli jo silloin tunnettu.lähde? On kuitenkin mahdollista, että tämä ryhmä keksi termin debugata (engl. debug).lähde?

Katso myös[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]