Ohjelmistotuotanto 1970-luvulta 2000-luvulle

Näyttely

Ohjelmistojen rakentaminen on kallista ja tulosten laatu usein huono. Seuraavassa käydään läpi tähän johtaneita syitä ja nykytiedon tarjoamia ratkaisuja sekä tutkimuksen haasteita 2000-luvulle siirryttäessä.
Ohjelmistojen tekemisessä oli 1970-luvulla seur. vaiheet:
  • Esitutkimus: voisiko atk ylipäätään tuoda säästöjä ?
  • Syst. ja kone: yleissuunnittelu ja konetyypin valinta
  • Henkilöstö: hankkiminen ja koulutus
  • Suunnittelu: yksityiskohdat ja ohjelmalogiikka
  • Ohjelmointi: pöytätestaus, siirto koneelle, testaaminen
  • Installointi: asennus ja käyttöönotto
  • Laajentaminen: uusien mahdollisuuksien etsiminen
1970-luvulla varastojärjestelmä saattoi olla seuraavanlainen:
  • 1: Saapuneet toimitukset nauhalla
  • 2: Lajittelu erillisellä ohjelmalla
  • 3: Saapuneet toimitukset nauhalla lajiteltuna
  • 4: Pääajo tietokoneella
  • 5: Vanha varastotilanne nauhalla
  • 6: Uusi varastotilanne nauhalla (Uusi varastotilanne on seuraavalla kerralla vanha)
  • 7: Korjaukset, tuotemuutokset, toimitukset jne. reikäkorteilla
  • 8: Varastolista
  • 9: Virhelista
1970-luvun prosessi oli ajankohdalleen sopiva:
  • Koneet kalliita => laskettava kannattavuus tarkkaan
  • Koneita vähän => ohjelmat tehtävä ilman koneen käyttöä
  • (Esimerkki ohjelmoinnin vaiheista kirjan kuvassa ohessa)
  • Kullakin järjestelmällä vain muutama tekijä
  • Tekijät tunsivat sovellusalueen ja koulutettiin atk-tehtäviin
1970-luvulla järjestelmät olivat yksinkertaisia, järjestelmillä oli yhteisiä osia hyvin vähän ja rakentamisen jälkeen tarvittu ylläpito oli vähäistä.
Mutta 1980-luvulla iskee ohjelmistokriisi
  • Järjestelmissä on paljon virheitä
  • Järjestelmät eivät vastaa käyttäjien tarpeita
  • Projektit venyvät ja järjestelmät myöhästyvät
  • Tekeminen onkin huomattavasti suunniteltua kalliimpaa
  • Hankkeita lopetetaan, kun niistä ei synny tulosta
Monimutkaisuus kasvoi:
  • Järjestelmien koko kasvoi => ei voi hallita ilman välineitä
  • Suorakäyttöisyys =>käyttöliittymä monimutkaistui huomattavasti
  • Versioiden tiheä ilmestyminen => => uutta tehdään ennen edellisen valmistumista ja => tiedostojen versioiden hallitseminen hankalaa
  • Paljon käyttäjiä eri puolilla maailmaa => => asennusten ylläpito hankalaa ja lisäksi muutosvaatimuksia tulee koko ajan
Uusi, monimutkainen maailma:
  • Variointi: Esim. suomi/englanti ja samalla myös Win/UNIX/VMS => halutun yhdistelmän kokoaminen hankalaa
  • Paljon tekijöitä => kommunikointi hankalaa
  • Tekijät eri paikkakunnilla => tiedostojen päivitysongelmia
Kriisin syynä kaiken kasvu ja monimutkaisuuden lisääntyminen
1990-luvulla kehitettiin ratkaisuja kriisiin:
  • Tukitoiminnot: versioiden, laadun yms. hallitseminen
  • Vaatimusten hallinnan painottaminen
  • Virheiden välttäminen uusilla menetelmillä
  • Virheiden havaitseminen tarkastusmenettelyillä
Erilaiset elinkaaret eri tarkoituksiin:
  • Perinteiset: vesiputous, spiraali, prototyypit, ...
  • Uudet nopeasti reagoivia ja notkeita: Scrum, Extreme Programming, ...
2000-luvun haasteita tutkimukselle:
  • Tukitoimintojen parempi ymmärtäminen ja kehittäminen
  • Tukitoimintojen automatisoiminen
  • Prosessien kehittäminen
  • Empiirinen ohjelmistotuotannon tutkimus
  • Kognitiivinen ergonomia
  • Työvälineiden kehittäminen ohjelmointiin ja ylläpitoon
  • Korkean laadun ja hyvän tuottavuuden saavuttaminen
Mitä on muuttunut vuosikymmenten aikana ?
  • Järjestelmät monimutkaistuvat jatkuvasti ja vanhat menetelmät eivät sovi monimutkaisille järjestelmille !
  • Tarvitaan parempia menetelmiä, joita on helppo hallita !
  • Toimivat ja voimakkaat menetelmät eivät synny itsestään
  • Menetelmien kehittämiseen tarvitaan tutkimusta !
Alkukuva: Aki Rissanen

Esitysohjelma: Veli-Pekka Laasonen


Viimeksi päivitetty: 17.12.2002

Jorma.Sajaniemi@Joensuu.Fi