Kun suunnitteluvaihe on valmis ja tekninen määrittely on laadittu, siirrytään toteutusvaiheeseen. Toteutusvaiheessa tekninen määrittely muutetaan toimivaksi ohjelmakoodiksi. Tämä on vaihe, jossa suunnitelmat ja dokumentit heräävät eloon varsinaisena ohjelmistona.
Toteutusvaiheessa ohjelmoijat kirjoittavat koodia valittujen ohjelmointikielten ja teknologioiden avulla. Työ perustuu teknisessä määrittelyssä tehtyihin päätöksiin: arkkitehtuuriratkaisuihin, luokkasuunnitelmaan, tietokantarakenteeseen ja rajapintamäärittelyihin.
Hyvät ohjelmointikäytännöt ovat olennainen osa laadukasta toteutusta. Niiden noudattaminen helpottaa koodin ylläpitoa ja jatkokehitystä.
Koodausstandardit määrittelevät projektin yhtenäiset käytännöt. Ne voivat sisältää:
Monet ohjelmointikielet ja frameworkit tarjoavat virallisia tai yleisesti hyväksyttyjä standardeja (esim. Google C++ Style Guide ja Qt Coding Conventions C++:lle, Airbnb JavaScript Style Guide JavaScriptille).
Toteutusvaiheessa ohjelmoijat suorittavat yksikkötestauksia kehittäessään koodia. Yksikkötestaus on pienimpien ohjelman osien (funktiot, metodit, luokat) testaamista erillään muusta järjestelmästä. Tämä eroaa varsinaisesta testausvaiheesta, joka tulee toteutuksen jälkeen ja jossa testataan koko järjestelmää kokonaisuutena.
Debuggaus eli virheiden jäljitys on olennainen osa ohjelmointityötä. Kehittäjät käyttävät debuggaustyökaluja (debugger) koodin suorituksen seuraamiseen, muuttujien arvojen tarkasteluun ja virheiden paikantamiseen.
Tyypillisiä debuggaustoimintoja:
Versionhallinta on välttämätön työkalu modernissa ohjelmistokehityksessä. Yleisin versionhallintajärjestelmä on Git.
Versionhallinnan hyödyt:
Tyypillinen Git-työnkulku sisältää toiminnot: clone, pull, add, commit, push ja merge.
Koodin katselmointi (code review) on prosessi, jossa toinen ohjelmoija tarkastaa kirjoitetun koodin ennen sen yhdistämistä pääkoodiin. Tämä on tärkeä laatutoimenpide.
Koodin katselmoinnissa tarkistetaan:
Refaktorointi tarkoittaa koodin sisäisen rakenteen parantamista muuttamatta sen ulkoista toimintaa. Refaktoroinnin tavoitteena on tehdä koodista luettavampaa, ylläpidettävämpää ja tehokkaampaa.
Tyypillisiä refaktorointitoimenpiteitä:
Refaktorointi tulisi tehdä pienissä askelissa ja varmistaa yksikkötestien avulla, että toiminnallisuus säilyy.
Koodin dokumentointi on tärkeää järjestelmän ymmärtämisen ja ylläpidon kannalta. Dokumentointia tapahtuu usealla tasolla:
Monet ohjelmointikielet tukevat automaattista dokumentaation generointia lähdekoodista (esim. Javadoc, Doxygen, Sphinx).
Jatkuva integraatio (Continuous Integration, CI) on käytäntö, jossa koodimuutokset yhdistetään yhteiseen koodipohjaan usein, jopa useita kertoja päivässä. Automaattiset testit ajetaan jokaisen yhdistämisen yhteydessä.
CI:n hyötyjä:
Yleisiä CI-työkaluja ovat Jenkins, GitLab CI, GitHub Actions ja Travis CI.
Kun toteutusvaihe on valmis tai riittävän pitkällä, siirrytään varsinaiseen testausvaiheeseen. Testausvaiheessa koko järjestelmää testataan kokonaisuutena järjestelmällisesti, ja varmistetaan että se täyttää vaatimusmäärittelyssä asetetut vaatimukset. Testausvaihe on siis laajempi ja järjestelmällisempi prosessi kuin toteutuksen aikana tapahtuva yksikkötestaus.