Tietojärjestelmien kehittämisen ongelmia

Download Report

Transcript Tietojärjestelmien kehittämisen ongelmia

Tietojärjestelmätyön
perusteet
402T11A
3 op.
Tuija Kuisma
1
Opintojakson sisältö
pääpiirteittäin








Tietojärjestelmä käsitteenä
Tietojärjestelmien kehittämisen vaiheet
Tietojärjestelmätyön tavoitteet ja sisältö
Tietojärjestelmien kehittämismallit
Järjestelmätyön työvälineet ja –tekniikat
Ohjelmistojen kehittämisen erityisvaatimuksia
Kuvausmenetelmät tietojärjestelmätyössä
MS-Visio
2
Opintojakson suorittaminen ja
arviointi

Kurssin läpäistäkseen on


Hyväksyttävästi tehtävä ja palautettava annetut
ryhmätyöt ja
Läpäistävä opintojakson lopussa oleva tentti
3
Kurssimateriaali


Lähiopetuksen materiaali (pääosin ka.ramk.fi
–palvelimelle)
Kirjana R.Pohjosen ‘Tietojärjestelmien
kehittäminen’ (koulun kirjastossa muutamia
kappaleita + e-kirjana)
4
Tietojärjestelmä on
Atk-sanakirjan mukaan…
1. Ihmisistä, tietojenkäsittelylaitteista,
tiedonsiirtolaitteista ja ohjelmista koostuva
järjestelmä, jonka tarkoitus on tietoja
käsittelemällä tehostaa tai helpottaa jotakin
toimintaa tai tehdä toiminta mahdolliseksi
(Käsitteenä laajempi ja monitahoisempi ilmiö kuin
tietokoneohjelma tai -ohjelmisto, joiden synonyyminä sitä usein
käytetään).
2.
Abstrakti systeemi, jonka muodostavat
tiedot ja niiden käsittelysäännöt.
5
Eräs määritelmä

Tietokoneperustainen järjestelmä, joka
tarjoaa tietylle käyttäjäryhmälle informaatiota
heidän mielenkiinnon kohteistaan tietyssä
organisatorisessa ympäristössä (Iivari &
Hirschheim)
6
Tietojärjestelmät muodostuvat





ihmisistä
hardware- ja software-komponenteista
proseduureista
datasta
informaatiosta
7
Tietojärjestelmistä…


Tietojärjestelmiä on kaikissa organisaatioissa
(toimintayksiköissä), mutta kaikki ne eivät ole
automaattisia tai formaalisti määriteltyjä tai
edes tiedostettuja.
Toimintayksikön sisällä toiminnot voidaan
jakaa



perustoimintoihin
ohjaustoimintoihin ja
tukitoimintoihin
8
YHTEISKUNTA
KILPAILIJAT
TOIMINTAYKSIKKÖ
ASIAKKAAT
OHJAUSTOIMINNOT
RAAKA-AINEET
VALTIOVALTA
PERUSTOIMINNOT
TUOTTEET
TUKITOIMINNOT
SUORITTAVA TOIMINTA
OMISTAJAT
ALIHANKKIJAT
9
Toimintayksikön toiminnot



Perustoiminnot ovat toimintayksikön
primaaritoimintoja, eli toimintoja, jotka
mahdollistavat yksikön olemassaolon. Esim. jotakin
tuotetta valmistavan toimintayksikön perustoimintoja
ovat kaikki tuotteen valmistamiseen liittyvät
toiminnot.
Ohjaustoiminnot ovat yksikön toiminnan
suunnitteluun, toimeenpanoon ja valvontaan liittyvät
toiminnot.
Tukitoimintoihin kuuluu henkilöstöhallinto,
taloushallinto, tietohallinto, tuotekehitys ja huolto.
10
Systeemien
tarkastelunäkökulmat



Prosessinäkemys tarkastelee systeemin tuotosten
määrittelyä ja tuotosten tekemiseen tarvittavia
raaka-aineita ja loogisen tason toimintasääntöjä.
Rakennenäkemys tarkastelee systeemiin kuuluvia
komponentteja, niiden rakenteita ja suhteita.
Vuorovaikutusnäkemys tarkastelee systeemin ja
sen ympäristön välisiä suhteita (mihin, miten ja
milloin systeemi on vuorovaikutuksessa
ympäristöönsä)
11
Tietojärjestelmien asema
toimintayksiköissä

Syyt, miksi tietojärjestelmiä käytetään,
voidaan karkealla tasolla ryhmitellä kolmeen
luokkaan:



perus-, liike- ja operatiivisten toimintojen
tukeminen
johdon päätöksenteon tukeminen
strategisen kilpailuedun saavuttaminen
12
Tietojärjestelmien roolit
toimintayksiköissä
Päätöstukijärjestelmät
Toimistoautomaatiojärjestelmät
TOIMINTAYKSIKKÖ
OHJAUSTOIMINNOT
PERUSTOIMINNOT
Tuotannonohjausjärjestelmät
Prosessinohjausjärjestelmät
Sulautetut
järjestelmät
TUKITOIMINNOT
Taloushallinnon ja
henkilöstöhallinnon
järjestelmät
Toimistoautomaatiojärjestelmät
SUORITTAVA TOIMINTA
13
Käsitteitä
Toimistoautomaatiojärjestelmä (office automation systems)


apuvälineohjelmisto/työkaluohjelmisto, jota käytetään dokumenttien
hallintaan ja pienehköjen töiden automatisointiin
Tapahtumankäsittelyjärjestelmä (transaction processing
systems, on-line systems)


käsittelee erilaisia organisaation tapahtumia ja transaktioita, yleensä
monenkäyttäjän sovelluksia
Suorakäsittely (online processing)Eräkäsittely (batch p.)



suorakäsittelyssä käyttäjät ovat tosiaikaisessa yhteydessä
tietokantaan, esim. paikkavarausjärjestelmät
eräkäsittelyssä tapahtumat ensin kerätään ja suoritetaan
myöhemmin, vaikkapa yöaikaan, esim. laskutusajot
Reaaliaikajärjestelmä (real-time systems)



kontrolloivat jotakin ympäristöä ja keräävät tietoa sen toiminnasta,
käsittelevät keräämänsä tiedon ja palauttavat tulokset takaisin ko.
ympäristöön, joka sitten tarvittaessa muuttaa niiden perusteella
toimintaansa
esim. prosessinohjausjärjestelmät
14
Käsitteitä

Päätöstukijärjestelmä (DSS=decision-support systems)


Johdon tietojärjestelmä (MIS=management information
systems, ESS=executive support systems)


päätöstukijärjestelmiä, jotka auttavat johtoa esim. organisaation
toiminnanohjauksessa tai strategisessa suunnittelussa
Asiantuntija- ja tietämyspohjaiset järjestelmät (expert
systems, knowledge-based systems)



tuottavat informaatiota päätöksen teon tueksi analysoimalla
organisaatiota koskevaa tietoa
rajatun erikoisalueen tietoa sisältävä järjestelmä, joka pyrkii
simuloimaan asiantuntijan (henkilön) toimintaa
päätöksentekotilanteessa
esim. lääkärien käytössä oleva järjestelmä, jonne tiedot syötetään
ja järjestelmä antaa arvion mahdollisesta sairaudesta ja siihen
sopivasta lääkityksestä
Tietotyön tukijärjestelmät (KWS=knowledge work support)

tietojärjestelmiä jotka auttavat tietotyötä tekeviä luomaan ja
integroimaan uutta tietoa
15
Mitä tietojärjestelmien
kehittämisellä tarkoitetaan

Atk-sanakirjan mukaan: Tietojärjestelmien
kehittäminen (information systems development, ISD) on
uusien tietojärjestelmien laatimista tai nykyisten oleellista
muuttamista. Systeemityö on tietojärjestelmien
suunnittelua, ohjelmointia ja ylläpitoa.

Oppikirjamme mukainen määritelmä:
Tietojärjestelmien kehittäminen on kehitysryhmän
tietyssä ympäristöissä kohdejärjestelmälle suorittama
muutosprosessi, joka tapahtuu kohdejärjestelmälle
asetettujen tavoitteiden mukaisesti.
16
Miksi tietojärjestelmiä
kehitetään?





Osana organisaation oman toiminnan
kehittämistä
Auttaa tavoitteiden saavuttamisessa
Auttaa vaativimpien tavoitteiden
asettamisessa
Mahdollistaa uudet toiminnot
Tehostaa olemassa olevia toimintoja
17
Mitä kehittämisellä
tarkoitetaan?



Uusien järjestelmien kehittämistä tai
Olemassaolevien järjestelmien muuttamista
Muutosprosessi





Havainnointi (nykytila)
Tavoitteiden asettaminen (pyrkimys)
Suoritus (työ)
Ohjaus (kontrolli/arviointi)
Muutos (muuttunut kohde)
18
Tietojärjestelmien kehittäminen
KEHITYSRYHMÄ
ASETTAA
SUORITTAA
OHJAA
TAVOITTEET
OVAT
OMINAISUUKSIA
HAVAINNOI
KOHDEJÄRJESTELMÄ
MUUTOSPROSESSI
KOHDEJÄRJESTELM
Ä
19
Näkemyksiä tietojärjestelmätyön
tavoitteista







Toimintokeskeinen 1960 –
 siirrettiin tietokoneella tehtäväksi aikaisempia käsin suoritettuja
toimintoja, kuten kirjanpito, laskutus, palkanlaskenta
Tietokeskeinen 1975 –
 suuret, keskitetyt tietovarastot otettiin käyttöön, tarkoituksena palvella
monia toimintoja ja käyttäjiä
Käyttäjäkeskeinen 1980 –
 käyttäjät mukaan suunnitteluun, kiinnitettiin huomiota käyttöliittymien
ominaisuuksiin
Asiakaskeskeinen 1985 –
 asiakkaan mukaan suunnitteluun
Prosessikeskeinen 1990 –
 järjestelmän toimintaa pyrittiin tehostamaan, kehitettiin
tiedonsiirtoyhteyksiä
Viestintäkeskeinen 1995 –
 tietosisältöjen kehittäminen, sähköinen tiedotus otettiin laajemmin
käyttöön
Muutoskeskeinen 2000 –
20
 jatkuva muutosprosessi käynnissä, stabiilitilaa ei edes tavoitella
Tietojärjestelmien
kehittämisen ongelmia
1. Epäonnistuneet kehittämishankkeet ja –
projektit



projekti ei koskaan valmistu
projektin ylittää resurssit (taloudelliset, aika- ja
henkilöresurssit)
Syitä:


tekniset syyt
puutteellinen projektinhallinta


ryhmätyö organisointi ja hallinta
projektien sisäinen ja ulkoinen kommunikaatio
21
Tietojärjestelmien
kehittämisen ongelmia
Systeemityön tuottavuus ja kustannukset
2.




tietojärjestelmät yhä suurempia,
monimutkaisempia, vaativampia
tietojärjestelmien rakentamiskustannukset
kasvaneet
tietojärjestelmien tuottamiselle asetetut
vaatimukset kiristyneet
systeemityössä tarvitaan työvoimaa jatkuvasti
lisää  kustannukset nousevat
22
Tietojärjestelmien
kehittämisen ongelmia
Tietojärjestelmien kehittämisen laadulliset
ongelmat
3.



virheet ja puutteet järjestelmän toiminnassa
järjestelmä ei vastaa asiakkaan vaatimuksia
järjestelmää ei jostain syystä voida ottaa käyttöön
Järjestelmän ylläpitoon liittyvät ongelmat
4.

mitä tärkeämpi järjestelmä on, sitä kauemmin se
elää ja sitä enemmän resursseja kuluu sen
ylläpitoon (vain 1/3 tietojärjestelmien
kehittämistyöstä on uusien järjestelmien
kehittämistä, loput vanhojen järjestelmien
ylläpitotyötä)
23
Ohjelmistotuotannon
erityispiirteitä


Monimutkaisuus
Näkymättömyys


Muunnettavuus



ohjelmistoille asetettuja vaatimuksia tarkennetaan ja
muunnetaan, toimintaympäristöt muuttuvat
Ainutkertaisuus
Skaalautumattomuus


tuotteen valmiusasteen määrittäminen hankalaa
aiemmin hyväksi todetut menetelmät eivät välttämättä toimi
suuremmissa projekteissa
Epäjatkuvuus

pienikin vika ohjelmistossa saattaa lamaannuttaa koko
järjestelmän
24
Ongelmia aiheuttavat myös…






ihmisten epärealistinen usko omiin kykyihinsä ja
teknologian tarjoamiin mahdollisuuksiin
nopeasti muuttuva teknologia
järjestelmien integrointi
erilaiset toimintaympäristöt
käyttäjäkohtaisesti räätälöidyt järjestelmäversiot
tietojärjestelmiä on vaikea hahmottaa
kokonaisuutena, joten eri sidosryhmillä voi olla
erilaisia näkemyksiä ja odotuksia järjestelmän
suhteen
25
26
Ohjelmistoprosessi (software process)



on kokonaisuus, jolla ohjataan tietojärjestelmän
kehittämistä järjestelmän idean syntymisestä aina
järjestelmästä luopumiseen saakka
kattaa järjestelmän koko elinkaaren
mitä tarkemmin määritelty, noudatettu, toistettavissa
oleva, optimoitu ja hyväksytty ohjelmistoprosessi on,
sitä korkeammalla kypsyystasolla organisaatio on
27
Systeemin elinkaari (information
system life-cycle)






Systeemin elinkaari alkaa tietojärjestelmän
kehittämisajatuksen esittämisestä ja päättyy
tietojärjestelmästä luopumiseen.
Se pitää sisällään tietojärjestelmän ylläpitotoimia ja
kehittämisaktiviteetteja.
Projektin elinkaari tarkoittaa samaan hankkeeseen
liittyvien työvaiheiden ja tehtävien joukkoa, jonka
tuloksena uusi tietosysteemi saadaan aikaan.
Elinkaaren vaihejaolla pyritään määrittämään eri
tehtävät, niiden ajoitus ja riippuvuudet toisistaan.
Systeemin elinkaari on yleensä pidempi kuin projektin
elinkaari.
Vaikka elinkaaren eri toiminnot kuvataan peräkkäisinä,
ovat ne käytännössä usein päällekkäisiä.
28
Tietojärjestelmien rakentaminen

kohteen määrittely ja rajaus




rakenteen suunnittelu ja kuvaaminen



sovituilla malleilla
mallin toteutus valitulla työvälineellä
ratkaisun testaus




mikä on tavoite
mitkä ovat tuloksen laadun mittarit
vastuuhenkilöt, työryhmä, resurssit
tuloksen vertailu tavoitteisiin
laadun mittaaminen
ratkaisun testaus vaihtoehtoisilla tekijöillä
mallin käyttö ja kehittäminen
29
Systeemin kehittämismalleista


Yleisimpiä kehittämismalleja ovat:
 klassinen systeemin kehittämismalli
 puolirakenteellinen systeemin kehittämismalli
 rakenteellinen systeemin kehittämismalli ja
 prototyyppiperusteinen tietosysteemin
kehittämismalli.
Tietojärjestelmien suunnittelussa käytetään usein
ns. top-down –läheistymistapaa eli toiminnallista
osittamista.
30
Systeemin kehittämismalleista

1.
2.
3.
Kehittämismallin tehtävänä on:
Määritellä tarkasti ne toiminnot, joita systeemin
suunnittelun yhteydessä on käytävä läpi.
Määritellä osaprojektien väliset säännöt.
Määritellä projektin ohjauksen kannalta
tarkoituksenmukainen ohjausaikajänne, joka
sisältää ajalliset tarkastuspisteet hankkeen
jatkamispäätöksen tekemiseksi.
31
Klassinen systeemin
kehittämismalli



Sen osat ovat:
 systeemianalyysi,
 systeemisuunnittelu ja
 toteutusvaihe
Bottom-up –periaate (mallin heikkous),
vesiputousmalli
Lineaarinen, toinen toistaan seuraava
toteutusjärjestys
32
Tietojärjestelmän
kehittämisen
vesiputousmalli
Esitutkimus
Määrittely /
Analyysi
Suunnittelu
(design)
Toteutus
Testaus
Käyttöönotto
Ylläpito
33
Klassinen systeemin
kehittämismalli






Vesiputousmallin lähtökohtana lienee teollisuuden
kokoonpanolinjojen töiden suunnittelumalli.
Periaate, että mitään ei valmistu ennen kuin hankkeen
kaikki vaiheet on kokonaisuudessaan käyty läpi, ei
toimi tietojärjestelmien kehittämisen yhteydessä.
Mallin mukaan edellisen vaiheen tulee olla valmis,
ennen kuin seuraavaan vaiheeseen voidaan siirtyä.
Testaus vasta loppuvaiheessa ei myöskään sovi
tietojärjestelmien kehittämiseen.
Lineaarinen suorittamisjärjestys ontuu myös, sillä
usein hankkeen edetessä huomataan asioita, joita ei
suunnittelun alkuvaiheessa olla osattu ottaa
huomioon.
Em. puutteista huolimatta edelleen yleisessä
käytössä.
34
Puolirakenteinen systeemin
kehittämismalli


Eroaa vesiputousmallista 2 eri kohdassa:

bottom-up –periaatteen mukainen koodin
tuottaminen, moduulien testaus ja systeemin
testaus on korvattu top-down –toteutuksella,
missä korkeamman tason moduulit koodataan ja
testataan ensin (rakenteellista ohjelmointia)

klassinen suunnittelu on korvattu rakenteellisella
suunnittelulla
Top-down –lähestymistapa mahdollistaa systeemin
osien erillisen kehittämisen sekä ohjelmiston
koodaamisen ja systeemin testauksen
rinnakkaisesti.
35
Rakenteellinen systeemin
kehittämismalli
Malli koostuu kahdeksasta eri aktiviteetista:
1. Esitutkimus
2. Vaatimusmäärittely
3. Systeemianalyysi
4. Suunnittelu
5. Toteutus
6. Testaus
7. Käyttöönotto
8. Ylläpito
36
Esitutkimus (feasibility study)





tarkoituksena selvittää, onko tietojärjestelmän
rakentaminen mahdollista ja mielekästä (tuotetaan
tietoa päättäjille) ja jos on, niin
kehitettävän systeemin vastuullisten käyttäjien
tunnistaminen ja systeemin kokonaiskuvan
tuottaminen (pääsyötteet ja -suoritteet)
nykysysteemin puutteiden tunnistaminen
mihin ongelmiin järjestelmä toisi ratkaisun
luodaan alustava suunnitelma kehittämishankkeen
läpiviemiseksi
37
Vaatimusmäärittely (requirement
specification)





Dokumentti, johon on koottu kehitettävän järjestelmän
toiminnalliset ja ei-toiminnalliset vaatimukset.
Vaatimukset määrittelevät eri sidosryhmien tarpeet (user
requirements) järjestelmän suhteen, mutta eivät ota kantaa
siihen, millainen teknisen toteutuksen tulisi olla.
Toiminnalliset vaatimukset määrittävät sen, mitä
järjestelmän odotetaan tekevän; miten se kommunikoi
ympäristönsä kanssa ja miten eri sidosryhmät sitä käyttävät.
Ei-toiminnalliset vaatimukset määrittävät, millaisten
reunaehtojen vallitessa järjestelmä täyttää toiminnalliset
vaatimuksensa, esim. vastausajat, kapasiteetti ja
käytettävyys.
Joskus järjestelmän toiminnallisille vaatimuksille asetetaan
myös rajoitteita (constraints).
38
Vaatimusmäärittely


Asiakasvaatimusten keräämiseen käytetään
 haastatteluja
 aivoriihiä ja ideointipalavereja
 markkinatutkimuksia
 ym.
Ongelmia
 vaatimusten keskeneräisyys, ristiriitaisuus ja
epämääräisyys (esim. ’järjestelmän tulee tehostaa
kirjaston toimintaa’)
 vaatimusten todellisen tarkoituksen selvittäminen
39
Systeemianalyysi (System analysis)




tarkoituksena selvittää, mitä kehitettävän järjestelmän tulee tehdä
analysoimalla vaatimusmäärittelyä pyritään johtamaan
järjestelmän toiminnallinen määrittely (functional specification),
joka on toteutusriippumaton
luodaan loogisen tason kuvaus järjestelmän toiminnoista, sen
käsittelemästä tiedosta, yhteyksistä ympäristöön jne.
em. asiat tehdään/dokumentoidaan

mallintamalla käyttäjän toimintaympäristö tietovirtakaavioina,
kohdemalleina, tilamuutoskaavioina jne.

tuottamalla ympäristömalli ja systeemin käyttäytymismalli

tuottamalla tietojen ja tietokantojen kuvaukset

määrittelemällä järjestelmän suorituskyky, käytettävyys,
virhetilanteista toipuminen ja turvallisuus

tuottamalla tarkat hyöty-/kustannuslaskelmat hankkeen budjetin
muodostamiseksi
40

jne.
Suunnittelu (Design)






tässä vaiheessa suunnitellaan, miten järjestelmä toteutetaan
analyysissä tuotettu järjestelmän toiminnallinen määrittely
muunnetaan tekniseksi määrittelyksi (technical specification)
suunnittelu jakautuu yleensä arkkitehtuuri- ja
moduulisuunnitteluun
arkkitehtuurisuunnittelussa järjestelmän yleinen rakenne
määritetään ja jaetaan järjestelmä (mahdollisimman itsenäisiin)
moduuleihin, jotta toteutustyö voidaan jakaa tiimeille tai
yksittäisille työntekijöille
moduulien väliset kytkennät ovat kriittisiä, sillä mitä enemmän
niitä on, sitä monimutkaisempi ja vaikeammin ylläpidettävä
järjestelmä on
moduulisuunnittelussa suunnitellaan jokaisen moduulin
41
sisäinen rakenne
Toteutus (Implementation)




ohjelma koodataan ja ohjelmamoduulit sekä
mahdollinen tietokanta integroidaan
tietojärjestelmäsovellukseksi
toteutuksessa käytetään jotakin ohjelmointikieltä tai
sovelluskehitintä
toteutusvälineen valintaan vaikuttavat:
 sovellusalue (matemaattinen, relaatiotietokantapohjainen jne.)
 käytetyt menetelmät ja mallit (esim. oliokuvausmenetelmien kanssa olio-ohjelmointikielet)
 tehokkuusvaatimukset (toiset kielet tehokkaampia)
 toteutus- ja käyttöympäristö (Windows, UNIX tms.)
huom! siirrettävyys, ylläpidettävyys, dokumentointi
42
Testaus (testing)



testauksen tarkoitus on löytää ohjelmistosta virheitä
testaus jaetaan yleensä:
 moduulitestaukseen
 sisäinen testaus (testaa sisäisiä algoritmeja)
 ulkoinen testaus (testaa ohjelmistokomponenttien
tulosarvojen oikeellisuutta)
 integrointitestaukseen
 etsitään vikoja moduulien yhteistoiminnasta
 järjestelmätestaukseen
 etsitään virheitä koko järjestelmän toiminnoista
hyväksymistestien määrittely (acceptance test generation)
 laadunvarmistuksen välineenä käytetään
hyväksymistestejä
 muodostetaan laatukriteerit
43
Käyttöönotto (installation)




järjestelmän asennus
toteutettu ja testattu järjestelmä otetaan käyttöön
mahdollinen tietokantakonversio

olemassa olevan tietokannan muunnos uuteen
järjestelmään sopivaan muotoon
käyttäjien ja ylläpitohenkilökunnan koulutus
44
Ylläpito (maintenance)





ohjelmiston elinkaaren pisin vaihe, vie n. 70%
kaikista resursseista, joita järjestelmään käytetään
sen elinkaaren aikana
korjaava ylläpito tarkoittaa järjestelmän
käyttöönoton jälkeen havaittujen virheiden
korjaamista
sopeuttava ylläpito tarkoittaa järjestelmän
siirtämistä uusiin käyttöympäristöihin
täydentävä ylläpito tarkoittaa uusien
ominaisuuksien lisäämistä järjestelmään
ennakoiva ylläpito tarkoittaa järjestelmän tai sen
dokumentaation tason parantamista tulevia
ylläpitotilanteita varten
45
Kehittämisen vaiheista


tietojärjestelmien kehittäminen ei useinkaan kulje
lineaarisesti em. vaiheesta toiseen, vaan paljon
esiintyy myös
 samanaikaisuutta ja limittäisyyttä
 takaisinkytkentöjä
 poikkeustapauksia
 prosessin keskeytyksiä jne.
tietojärjestelmän kehittäminen sisältää myös koko sen
elinkaaren läpi jatkuvia toimintoja, kuten
 vaatimustenhallinta
 laadunvarmistus
 dokumentaatio
 riskien hallinta
46
Prototyyppiperusteinen
tietojärjestelmän kehittämismalli




kehitettävä systeemi mallinnetaan toimivalla
tietojärjestelmämallilla (epätäydellinen demo), eikä
paperilla tehtävillä kuvauksilla
järjestelmän toiminnot pyritään havainnollistamaan
tietokoneella
apuna käytetään mm. näyttögeneraattoria,
raporttigeneraattoria, kyselykieltä jne.
vaarana, että protoilu tulee liian kalliiksi ja
suurimittaiseksi prosessiksi tai että prototyyppi jää
systeemin viimeiseksi versioksi
47
Prototyyppiperusteinen
tietojärjestelmän kehittämismalli

soveltuu hyvin projekteihin, joissa:
 käyttäjällä ei ole halua tai valmiuksia abstraktien
sanallisten suunnitelmien tarkasteluun
 käyttäjä ei kykene ilmaisemaan tarpeitaan
riittävän yksityiskohtaisesti, mutta pystyy
tekemään valintoja nähdessään esimerkkejä
 suunniteltava järjestelmä on on-line –järjestelmä,
jossa käyttäjä työskentelee päätteellä paljon
 systeemin ohjelmiston algoritminen rakenne on
yksinkertainen (ei tarvita yksityiskohtaista
spesifiointia)
48
Prototyyppilähestymistapa
Tavoitteet
Määritä
vaatimukset
Vaatimukset
Rakenna
prototyyppi
Korjauksia
Käyttäjän
arviointi
Suorituskyky
Demoa
prototyyppiä
OK
Toteuta
järjestelmä
Arkkitehtuuri
ja toimintoja
Järjestelmä
Uusia
tavoitteita Hyötykäyttö
49
Spiraalimalli (spiral model)



iteratiivinen, uusi elinkaarimalli
prosessiin liittyvien riskien jatkuva analysointi ja
toiminnan muutos riskianalyysin perusteella
seuraavaa neljää vaihetta toistetaan jatkuvasti,
kunnes järjestelmä on valmis:







suunnittelu (tavoitteiden, vaihtoehtojen ja rajoitusten
määrittely)
riskianalyysi (eri vaihtoehtojen ongelmien arviointi)
tuotanto (seuraavan vaiheen valmistus)
asiakkaan suorittama arviointi (tarkastuspiste ennen
seuraavaa kierrosta)
järjestelmä tarkentuu sitä mukaa, kun edetään kohti
spiraalin ulompia kehiä
prosessi keskeytetään, jos riskit liian suuria
tarkoitus kuitenkin pienentää riskejä joka iteraatiolla
50
Systeemianalyysi



sen tekee yleensä organisaation useista
sidosryhmistä koostuva ryhmä
työskentely on projektiluonteista, aikakriittistä
ja tulossidonnaista
analyysissä on kiinnitettävä huomiota
tuloksena syntyvän tietojärjestelmän
tuottavuuteen, laatuun ja ylläpidettävyyteen
jne.
51
Systeemianalyysissä



mallit muodostavat yleisen kuvauksen:
 systeemin suhteesta ympäristöön
 sen tietosisällöstä ja
 tietojen käsittelyprosesseista sekä
 systeemin toteutusteknologiasta.
mallien tulee olla toiminnallisia ohjeita muulle työlle
mallit ovat abstrakteja, usein vain paperilla olevia
kuvauksia systeemistä
52
Tietojärjestelmien yhteydessä
malleja käytetään:



järjestelmän suunnitteluun
vaihtoehtojen arviointiin
kohteen analysointiin
53
Systeemianalyysissä
informaatiojärjestelmiä kuvataan:









Tietovirtakaavioilla (Data Flow Diagrams)
Kohdemalleilla (Entity-Relationship Diagrams)
Tilanmuutoskaavioilla (State Transition Diagrams)
Rakennekaavioilla
Tapahtumalistoilla
Tietohakemistoilla
Prosessikuvauksilla
ym. menetelmillä / malleilla
valitusta systeemianalyysimetodologian riippuu, mitä
malleja käytetään
54
Malleista…

mallit eivät ole ainoastaan tietojärjestelmien
suunnitteluun soveltuvia, vaan niitä voidaan käyttää
myös esim.
 biologisten
 taloudellisten ja
 teollisuuden prosessien kuvaamiseen
 sekä myös poliittisten järjestelmien ja
 materiaalivirtojen kuvaamiseen.
55
Systeemityön tekijät


Aikoinaan tietojärjestelmien kehittämisessä olivat
mukana vain atk-ammattilaiset, sillä kehitettiin
lähinnä laskennallisia sovelluksia tai automatisoitiin
aikaisemmin manuaalisesti suoritettuja rutiineja.
Järjestelmän tulevat käyttäjät olivat usein samoja
atk-ammattilaisia.
Nykyään tietotekniikka levinnyt lähes kaikkiin
työtehtäviin ja kehittäjien ja käyttäjien roolit ovat
eriytyneet. Järjestelmät ovat monimutkaisia
organisatorisia ja sosiaalisia kokonaisuuksia, joilla
laaja vaikutus ympäristöönsä  käyttäjät/asiakkaat
mukaan kehittämistyöhön
56
Systeemityön tekijät
1.
Tietojärjestelmän kehittäjät
 määrittelijät (system analysts), jotka tekevät
esitutkimuksen, vaatimusmäärittelyn ja
järjestelmäanalyysin
 suunnittelijat (system designers), jotka luovat
toteutussuunnitelmat ja
 ohjelmoijat (programmers), jotka toteuttavat
järjestelmän määrittelyjen ja suunnitelman
mukaan
57
Systeemityön tekijät
Tietojärjestelmän käyttäjät
2.




yleensä kohdeorganisaation työntekijöitä
tuntevat järjestelmän kohdealueen hyvin ja ovat siksi
korvaamattomia tietolähteitä vaatimusmäärittelyssä
ja analyyseissä
käyttäjät voivat osallistua kehittämishankkeisiin
 vastaamalla kyselyihin tai antamalla haastatteluja
 toimimalla asiantuntijoina projektiryhmässä
 joissain tapauksissa osallistua myös määrittely- ja
suunnittelutyöhön
käyttäjät voidaan jaotella
 operationaalisiin käyttäjiin, esimies-käyttäjiin ja
johtotason käyttäjiin tai
 amatööreihin, noviiseihin ja ammattilaisiin
58
Systeemityön tekijät
3.
Johto
 operationaalinen johto vastaa järjestelmän
toimialueen töiden ja työntekijöiden valvonnasta
 tietohallinnon johto osallistuu työnsä puolesta
hankkeiden päätöksentekoon
 yleisjohto on kiinnostunut siitä, miten
kehitettävä järjestelmä edesauttaa organisaation
strategisten tavoitteiden saavuttamista.
59
Ongelmia kehitystyössä





erilaiset odotukset ja tavoitteet kehitettävän
järjestelmän suhteen
yhteisen ’kielen’ puuttuminen käyttäjillä ja kehittäjillä
käyttäjien vastarinta
käyttäjäryhmien väliset eturistiriidat
kehittämishankkeesta voi tulla ’politikoinnin ja
valtataistelun väline eri työntekijäryhmien välillä
60
Laatu ja laadunvarmistus



Laadulla tietojärjestelmien yhteydessä tarkoitetaan
yleensä järjestelmän kykyä täyttää käyttäjän
kohtuulliset toiveet ja odotukset.
Näin laatu on subjektiivinen, käyttäjästä ja
käyttöympäristöstä riippuva käsite.
Samalla tarkastellaan myös tietojärjestelmäprosessin
laatua eli toiminnallista laatua.
61
Laatu ja laadunvarmistus




Nykyisen laatuajattelun mukaan tuotteen laatuun vaikutetaan
parhaiten toiminnan laadun kautta.
Tuotteen tekemisessä käytettävää toimintatapaa kutsutaan
yrityksen laatujärjestelmäksi, joka kuvataan
laatukäsikirjassa.
Laatujärjestelmän tarkoituksena on taata, että
tuotantoprosessissa syntyy tiettyä laatutasoa olevia tuotteita
sovitussa aikataulu- ja budjettikehyksessä.
Laatujärjestelmiin liittyy toiminnan todistettavuus ja
jäljitettävyys, eli organisaation ulkopuolisen tahon on kyettävä
toteamaan, että organisaatio toimii laatujärjestelmän
mukaisesti. Tämä voidaan yleensä todentaa tutkimalla
62
tarkastuspöytäkirjoja, muistioita, virheraportteja yms.
Laatu ja laadunvarmistus



Toiminnan laatua voidaan valvoa esim. auditoinneilla,
joissa tarkistetaan, että toiminta on laatujärjestelmän
mukaista.
Tuotteen laadunvarmistuksella on 2 tarkoitusta:
 pyritään estämään virheiden pääseminen tuotteeseen
 pyritään löytämään tehdyt virheet mahdollisimman
aikaisessa vaiheessa
Tuotteen laadunvarmistuksessa puhutaan usein
 verifioinnista eli että tuote vastaa määrityksiään
(building the product right)
 validoinnista eli että tuote sopii käyttötarkoitukseensa
63
(building the right product).
Dokumentaatio




Tietojärjestelmien kehittämisprojekteissa
dokumentaatiolla tarkoitetaan järjestelmää kuvaavien
dokumenttien tuottamisesta.
Kehitysprojektin koosta ja monimutkaisuudesta riippuu,
kuinka laajamittaista dokumentaatiota tarvitaan. Tietty
perusdokumentaatio tulee kuitenkin jokaisella
rakennettavalla järjestelmällä olla.
Usein kiireen vaivatessa määrittely- ja
suunnitteluvaiheiden dokumentointi voi jäädä
pintapuoliseksi. Dokumenttien ylläpito voi myös unohtua.
Joskus tilanne voi olla päinvastainenkin, eli
dokumentoinnista nousee koko järjestelmäkehityksen
tärkein vaihe ja se vie kaiken ajan ja resurssit.
64
Dokumentaatio


Ohjelmistoprosessiin liittyvä dokumentaatio voidaan
jakaa kolmeen ryhmään, joita ovat:
 tuotteen dokumentaatio (tekninen dokumentaatio,
käyttöohjeet ja koulutusmateriaalit)
 projektinhallinnan dokumentit (projektisopimus,
projektisuunnitelma, projektin loppuraportti yms.)
 laatujärjestelmän dokumentit (laatukäsikirja,
dokumenttimallit, laatujärjestelmän raportit yms.).
Yleensä organisaatiossa määritellään kaikille
dokumenteille mallit (perusrunko), jotta
kehittämishankkeiden dokumentaatio olisi
yhdenmukaista. Nämä mallit liitetään osaksi
laatujärjestelmää.
65
Riskienhallinta


Tietojärjestelmien kehittämisessä riskiksi
määritellään tilanne tai asia, joka saattaa haitata
järjestelmälle tai sen kehittämiselle asetettuja
tavoitteita.
Menestyksekäs riskienhallinta on osa onnistunutta
tietojärjestelmähanketta.
66
Riskienhallinta

Eräs riskienhallinnan lähestymistapa:
1. Tunnista ja arvioi riskit



tunnista riskit ja analysoi niiden vaikutukset
priorisoi riskit niiden vaikutusten ja
esiintymistodennäköisyyksien mukaan
laadi riskien top 10 -lista
2. Tee päätökset riskien ratkaisemiseksi
 aloita suurimmista riskeistä
3. Toteuta riskien ratkaisemiseksi tehdyt päätökset
 lisää päätösten edellyttämät muutokset
projektisuunnitelmaan
 laadi riskienhallintasuunnitelma vakavimmille riskeille
67
Vaatimustenhallinta
(requirements management)



Vaatimustenhallinnan tehtävänä on varmistaa, että
valmis järjestelmä on asiakkaan toiveiden mukainen.
Järjestelmälle asetetut vaatimukset muuttuvat tai
lisääntyvät usein kehitystyön aikana ja kehittäjien on
kyettävä reagoimaan muuttuneeseen tilanteeseen 
ratkaisuna koko elinkaaren kattava vaatimustenhallinta.
Esim: Asiakas ilmoittaa haluavansa järjestelmään
uuden ominaisuuden. Uusi vaatimus lisätään
tarkemmin analysoimatta hankkeen tavoitteisiin 
seuraa aikataulun ja budjetin ylityksiä.
68
Vaatimustenhallinta



Jokaisessa projektissa tulisi olla määritelty muutospyyntökäytäntö (change request) uusien vaatimusten käsittelyä
varten.
Seuraavista asioista tulisi huolehtia:
 tiedotus (kaikille osapuolille uuden vaatimuksen
vaikutuksesta)
 päätös (uuden vaatimuksen aiheuttamista toimenpiteistä)
 vastuunotto (se taho, joka päätöksen tekee, kantaa
vastuun sen seurauksista, kuten esim. budjetin ylityksestä)
Vaatimusten tulee olla jäljitettäviä, eli ohjelmistoprosessin
aikana pitää tallentaa myös informaatiota vaatimusten
muutoksista ja niiden perusteella tehdyistä ratkaisuista.
69
Uudelleenkäytettävyys




Uudelleenkäytettävyys tarkoittaa ohjelmistotuotannossa
aikaisemmin rakennetun ohjelmiston osan uudelleen käyttöä.
Uudelleenkäyttö edellyttää tavallista enemmän paneutumista
määrittelyyn, suunnitteluun ja toteutukseen ja vaatii näin
enemmän resursseja ensimmäisessä projektissa. Varsinainen
hyöty saadaan vasta seuraavissa projekteissa.
Uudelleenkäyttö voi olla:
 hyväksi havaittujen ideoiden kopioimista ja kierrätystä
 yleiskäyttöisten aliohjelmien kokoaminen kirjastoksi
 kokonaisen sovelluksen toimintalogiikan uusiokäyttämistä
(järjestelmä vain räätälöidään haluttuun käyttöön sopivaksi)
Komponentti (component): riippumaton, täydellisellä
toiminnallisuudella varustettu kokonaisuus, jonka julkinen
palvelurajapinta määrittää sen, miten komponentti on liitettävissä
70
muihin komponentteihin (vrt. moduuli).