Kotisivu | Edellinen sivu | Ylös | Seuraava sivu


21.1 Mihin ohjelmistotuotantoa tarvitaan?


Tietokoneohjelmia on tehty tähänkin saakka varsin usein ilman mitään erityistä "ohjelmistotuotantoa". Miksi ohjelmien suunnitteluun ja tekemiseen pitäisi "keksiä" kaiken maailman malleja ja työkaluja?

Vastauksena tähän tutustutaan seuraavaksi muutamiin ohjelmistoalan ongelmiin, joista useiden merkitys on korostunut vasta viime aikoina.

Ainakin osa näistä ongelmista voidaan välttää (tai ainakin pienentää ongelmaa), jos tietokonejärjestelmän suunnittelussa käytetään hyväksi jotain ohjelmistotuotannon apuvälinettä tai malllia.


Sulautetut järjestelmät

Tietotekniikan käyttöalue on laajentunut nopeasti. Enää tietotekniikkaa ja ohjelmia ei käytetä vain erillisissä tietokoneissa, vaan ne ovat levinneet sulautetuissa järjestelmissä kaikkialle.

  • Esimerkkejä sulautetuista järjestelmistä, joissa tietotekniikka on tärkeänä osana:
    • (Matka)puhelimet ja puhelinverkot
    • Tehtaiden automaation ohjaus
    • Lentokoneiden navigointijärjestelmät
    • Metsäharvesterit
    • Televisiot
    • Liikennevalojen ohjaus

Sulautettujen järjestelmien ohjelmistojen tulisi olla erityisen luotettavia, koska ohjelmistovian korjaaminen jälkikäteen voi olla hankalaa (esim. avaruusluotain).


Suuret ohjelmistot

Myös perinteiset tietokoneohjelmat ovat muuttuneet luonteeltaan. Ohjelmilta vaaditaan yhä monipuolisempia asioita, joten ohjelmien koko ja monimutkaisuus kasvaa välttämättä.

  • Esimerkiksi puhelinkeskuksen hallintaohjelmiston koko saattaa ohjelmakoodina olla jopa 5 miljoonaa koodiriviä. Tällaisen ohjelman suunnitteleminen ja kirjoittaminen on erittäin vaativaa.
  • Suurten ohjelmistojen yhteydessä korostuvat myös projektin aikataulu- ja budjettiongelmat. Tarkkoja arvioita on etukäteen lähes mahdotonta antaa, jolloin ollaan usein ylioptimistisia (muistelkaapa verohallituksen verotusohjelmaa!)

Luotettavuusvaatimukset

Tietotekniikan leviäminen on aiheuttanut myös sen, että tietokoneita käytetään yhä useammin sovelluksissa, jossa virheitä ei yksinkertaisesti saa tapahtua.

  • Hyvänä esimerkkinä voi olla esim. lentokoneen navigointijärjestelmä tai röntgenkoneen ohjaustietokone. Pienikin ohjelmavirhe saattaa helposti maksaa useita ihmishenkiä.
  • Kun luotettavuusvaatimuksiin lisätään ohjelmistojen suuri koko, kärjistyvät ongelmat; usean miljoonan koodirivin kokoisen ohjelman kirjoittaminen ilman yhtään virhettä (niin kirjoitus- kuin ajatusvirhettä) tuntuu ylivoimaiselta!
  • Kiire ja alimitoitetusta budjetista johtuva työvoimapula varmistavat vielä sopivasti sen, että virheitä varmasti syntyy, eikä niitä koskaan ehditä etsiä saati korjata.

Henkilöstön vaihtuvuus

Hyvin usein ohjelmistoa joudutaan jälkikäteen muuttamaan, joskus jopa pitkänkin ajan kuluttua. Jos ohjelmiston alkuperäiset tekijät ovat vain "istuneet ja koodanneet", on todennäköistä, ettei kukaan enää pysty ymmärtämään, miten ohjelma oikein toimii.

Erityisen ongelmalliseksi tämä tulee, jos ohjelman tekijät eivät enää ole yrityksen palveluksessa, jolloin asiaan täysin vihkiytymättömien täytyy yrittää saada selkoa toisten kirjoittamasta sekasotkusta.

Tämän vuoksi olisi tärkeää, että koko ohjelmiston kehityskulku saataisiin selkeästi dokumentoitua, jotta se olisi ymmärrettävissä myöhemminkin.

  • Usein dokumentointi käytännössä jätetään tekemättä, koska on kiire... Tämä kostautuu.

Ratkaisu ongelmiin?

Lähes kaikki edellä esitetyt ongelmat johtuvat itse tietotekniikan ja sen käyttöalueen luonteesta, joten niihin ei mitään poppakonstia löydy.

Kuitenkin olisi välttämätöntä saada aikaan ohjelmistoja, jotka ovat samaan aikaan suuria ja luotettavia, ja jotka silti saadaan toteutettua sovitussa aikataulussa sovittuun hintaan.

Ohjelmistotuotannon tarkoituksena on luoda malleja ja ohjeita, joita noudattamalla näihin tavoitteisiin päästäisiin.

  • Tietenkään mikään malli ei sellaisenaan sovi läheskään kaikkiin tilanteisiin.
  • Ennen kaikkea ohjelmistotuotannon mallit määräävät, kuinka ihmisten tulisi toimia. Ihmisethän virheet aiheuttavat.



Kotisivu | Edellinen sivu | Ylös | Seuraava sivu
Sanahaku | Hakemisto