Software development eli ohjelmistotuotanto on yhteisnimitys menetelmille, joita käytetään tietokoneohjelmistoja tuotettaessa.
Jotta ohjelmistokehitys voitaisiin suorittaa järjestelmällisesti, ohjelmistotuotannossa pyritään mallintamaan kehitysprosessia niin sanotun elinkaarimallin mukaisesti. Elinkaarimallissa ohjelmiston kehitys nähdään mahdollisimman laajana, aikasidonnaisena prosessina, jossa ohjelmiston tekninen kehittäminen on vain osa kokonaisketjua. Elinkaari jakautuu kahteen pääluokkaan, jotka ovat kehitys ja ylläpito.
Erilaisia software development-malleja ovat esimerkiksi vesiputousmalli, prototyyppimenetelmä, RUP-malli ja ketterät menetelmät.
Software development – kehitysvaiheet
Ohjemistokehitysprosessin tyypillisiin kehitysvaiheisiin kuuluvat vaatimusmäärittely, toiminnallinen määrittely, arkkitehtuurisuunnittelu, käyttöliittymäsuunnittelu, toteutus, testaus, julkistus ja käyttöönotto.
Vaatimusanalyysin tarkoituksena on selvittää, mitä tarpeita ohjelmiston tulisi täyttää. Toiminnallinen määrittely kuvaa kaikki toiminnot, joita ohjelmiston tulisi tehdä. Arkkitehtuurisuunnittelu kuvaa ohjelmistokomponentit, jotka toteuttavat määrittelyn vaatimat toiminnot.
Toteutus käsittää varsinaisen ohjelmiston koodaamisen valitulla ohjelmointikielellä. Testausvaiheessa tutkitaan luotujen toimintojen kykyä toimia oikein käytännön tilanteessa. Kun ohjelmisto valmistuu tai toimii riittävän hyvin, se julkaistaan.
Software development languages – ohjelmointikielet
Ohjelmistoja koodataan ohjelmointikielillä, jotka valitaan sen mukaan, mikä parhaiten palvelee halutun ohjelmiston kehittämistä. Yleisimpiä ohjelmointikieliä ovat esimerkiksi Java, C, C++, C#, Python, Php, JavaScript, Swift, Ruby, Objective C ja Scala.
Kaupallinen software development suoritetaan yleensä projektityönä, mutta toisaalta useiden ohjelmistojen kehitys ja ylläpitäminen jatkuvat niiden koko elinkaaren ajan. Ohjelmistoja voidaan tarpeen mukaan päivittää ja uudistaa. Ylläpitotyötä voidaan tehdä jatkuvasti, tai toisiaan seuraavina määrämittaisina projekteina.
Ohjelmistokehityksen ja sovelluskehityksen osaajayritykset
Ohjelmistokehitykseen liittyvät referenssitoteutukset