1
Ohjelmointi, palvelimet ja muu edistyneempi käyttö / Vs: Sain ohjelmaprojektin "valmiiksi"
« Uusin viesti kirjoittanut AimoE tänään kello 20:04 »Tällä hetkellä Anthropicin, OpenAI:n ja Googlen LLM:t tuottavat sinänsä varsin luotettavaa koodia. Bugeja tulee jonkin verran etenkin uusia ominaisuuksia lisätessä, kun LLM:llä ei yleensä ole aukotonta käsitystä koko projektista, mutta väittäisin, että jälki on parempaa kuin suurimmalla osalla ammattikoodareista.
Keskustelusta saa sen käsityksen, että tekoälyä käytetään vain koodin kirjoittamiseen, vaikka ohjelmistokehitys on nimenomaan kehittämistä. Kysynpä vaan paljonko uusien ominaisuuksien kehityksessä menee aikaa testailuun ja viankorjauksiin verrattuna käytössä olevan ohjelmiston viankorjauksiin? Muuttaako tekoäly niiden suhdetta?
Tietoturvan osalta riskit ovat pitkälti samat kuin itse koodatuissa projekteissa. Ehkäpä vaarallisin on netistä ladattaviin kirjastoihin ujutettu tahallinen haittakoodi, joka voi hyvinkin osua omalle kohdalle mm. JavaScript, Python ja Rust-projekteissa, joissa käytetään laajasti peruskirjastojen ulkopuolista koodia, jossa on edelleen riippuvuuksia muihin kolmannen osapuolen paketteihin. Palvelinohjelmissa ja nettisovelluksissa on lisäksi perinteiset ongelmat rajapintojen turvaamisessa ja syötteen käsittelyssä. Näitäkin voi toisaalta analysoida tekoälyn avulla.
Silloin kun koetaan, että ohjelmisto ei toimi kuten sen odotetaan toimivan, kyse voi olla
- siitä, että sitä ei ole koodattu kuten oli tarkoitus (tahallaan tai vahingossa) tai
- siitä, että jokin asia olisi alunperinkin pitänyt funtsata paremmin tai
- siitä, että muuttuneet olosuhteet vaativat uuden funtsauskierroksen.
Miten ohjelmiston on ”tarkoitus toimia” määritellään viime kädessä kirjoittamalla testitapauksia ja tietysti lähdekoodia, mutta funtsauksestakin täytyy jäädä joku jälki jonnekin; ohjelmistosta ja sen ominaisuuksista täytyy voida viestiä, sopia ja tehdä päätöksiä ihan ihmisten kesken.
Onko tekoälyllä mitään roolia siinä, miten inhimilliset funtsaukset kirjataan ja miten niitä tulkitaan koodauksessa? Tai miten käyttöoppaita laaditaan? Tai miten käyttäjien/asiakkaiden/sidosryhmien näkemyksiä kerätään, seulotaan ja tulkitaan vaatimustenhallinnan tarpeisiin?

Tuoreimmat viestit