Ohjelmistokehitys
Ohjelmistokehitys on sisältää ohjelmistojen kehityksen laajemmalla vastuulla kuin pelkkä ohjelmointi, etenkin vaatimusmäärittelyn ja testaamisen osalta.[1] Ohjelmistokehitys on joukko aktiviteetteja kuten uuden kehitys, muokkaus, uudelleenkäyttäminen, uudelleen suunnittelu, ylläpito tai muita aktiviteetteja, jotka johtavat ohjelmistotuotteisiin.[2]
Eräissä yhteyksissä ohjelmistokehittäjä ja ohjelmistosuunnittelija tekevät samanlaisia tehtäviä ja termit voivat tarkoittaa samaa. Eräissä yhteyksissä termit eroavat ja suunnittelijalla on laajempi vastuu kaikkien ohjelmistokomponenttien yhteen toimivuudesta. Lisäksi joissain yhteyksissä termien käyttö voi olla rajatumpaa tarkoittamaan vain tiettyjä asiantuntijoita.[3]
Ohjelmistokehityksen menetelmät
[muokkaa | muokkaa wikitekstiä]Ohjelmistokehityksessä on useita suuntauksia. Eräiden väitteiden mukaan perinteiset menetelmät ovat "fiktiota, joka antaa kuvan hallinnasta ja symbolista statusta". Menetelmien sanotaan olevan liian mekaanisia luonteeltaan ollakseen käyttökelpoisia. Perinteisiä menetelmiä on kutsuttu "tavoittamattomiksi ideaaleiksi ja opasteeksi utopistisissa kehitystilanteissa".[4]
Eräitä ohjelmistokehityksen suuntauksia ovat:[5]
- vesiputousmalli
- V-malli
- inkrementaalinen malli
- RAD-malli
- ketterä ohjelmistokehitys (engl. agile)
- iteratiivinen malli
- spiraalimalli
Jatkuva toimitus on eräs ohjelmistokehityksen periaate, jossa ohjelmisto pidetään jatkuvasti toimituskelpoisena.[6]
Ohjelmistotuotannon menetelmät
[muokkaa | muokkaa wikitekstiä]Ohjelmistokehitys on osa ohjelmistotuotantoa, jossa se on usein viimeisiä vaiheita prosessissa.
Ohjelmistokehitysprosesseihin liittyy seuraavia standardeja:
- ISO/IEC 12207
- ISO 9000
- ISO/IEC 15504
- ISO/IEC 24744
- SPEM 2.0
Ohjelmakoodin uudelleenkäytettävyys (ohjelmiston uudelleenkäyttö, engl. software reuse) tarkoittaa ohjelmistojärjestelmien toteuttamista olemassa olevasta ohjelmistosta tyhjästä tekemisen sijaan.[7] Käsite on peräisin Naton ohjelmistokehityskonferenssista vuonna 1968, jossa käsiteltiin suurten ja luotettavien ohjelmistojärjestelmien kehitystä hallitulla ja kustannustehokkaalla tavalla.[7] Konferenssia pidetään ohjelmistokehityksen alan syntypaikkana.[7]
Verrattaessa ohjelmistoprojektien kehitysmallien tuottavuutta ja laatua vain yksi käytäntö on liittynyt sekä korkeaan tuottavuuteen että alhaiseen virhemäärään: varhaisen prototyypin julkaiseminen.[8] Perinteisten ja joustavampien kehitysprosessien välillä ei välttämättä ole haittaa mahdollisesta konfliktista, koska ne perustuvat johdonmukaisille käytännöille, jotka jossain tapauksissa on suunnattu valintojen välisten erojen käsittelyyn.[8]
Katso myös
[muokkaa | muokkaa wikitekstiä]Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Application Development bestpricecomputers.co.uk. Viitattu 26.10.2020. (englanniksi)
- ↑ http://www.npd-solutions.com/glossary.html (Arkistoitu – Internet Archive)
- ↑ Software Developer Vs. Software Engineer: What’s The Difference? forbes.com. 15.5.2024. Viitattu 30.10.2024. (englanniksi)
- ↑ Pekka Abrahamsson, Outi Salo, Jussi Ronkainen, Juhani Warsta: Agile software development methods: Review and analysis 2002. VTT Technical Research Centre of Finland. ISBN 951-38-6010-8 ISSN 1235-0621 Viitattu 30.10.2024. (englanniksi)
- ↑ Marian Stoica & Marinela Mircea & Bogdan Ghilic-Micu: Software Development: Agile vs. Traditional revistaie.ase.ro. 2013. doi:10.12948/issn14531305/17.4.2013.06 Viitattu 1.11.2024. (englanniksi)
- ↑ Eero Laukkanen & Juha Itkonen & Casper Lassenius: Problems, causes and solutions when adopting continuous delivery—A systematic literature review sciencedirect.com. doi:10.1016/j.infsof.2016.10.001 Viitattu 1.11.2024. (englanniksi)
- ↑ a b c Krueger, Charles W.: Software Reuse (PDF) public.imtbs-tsp.eu. Viitattu 26.10.2020. (englanniksi)
- ↑ a b Trade-offs between productivity and quality in selecting software development practices researchgate.net. lokakuu 2003. doi:10.1109/MS.2003.1231158 Viitattu 27.10.2020. (englanniksi)
Kirjallisuutta
[muokkaa | muokkaa wikitekstiä]- Peter Naur; Brian Randell; Friedrich Ludwig Bauer; NATO Science Committee: Software engineering : report on a conference sponsored by the NATO Science Committee. Brussels : Scientific Affairs Division, NATO, 7th to 11th October 1968. (englanniksi)
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- Kuvia tai muita tiedostoja aiheesta Ohjelmistokehitys Wikimedia Commonsissa