700 likes | 928 Views
Tietojärjestelmätyön perusteet. 402T11A 3 op. Tuija Kuisma. 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
E N D
Tietojärjestelmätyön perusteet 402T11A 3 op. Tuija Kuisma
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
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
Kurssimateriaali • Lähiopetuksen materiaali (pääosin ka.ramk.fi –palvelimelle) • Kirjana R.Pohjosen ‘Tietojärjestelmien kehittäminen’ (koulun kirjastossa muutamia kappaleita + e-kirjana)
Tietojärjestelmä on Atk-sanakirjan mukaan… • 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). • Abstrakti systeemi, jonka muodostavat tiedot ja niiden käsittelysäännöt.
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)
Tietojärjestelmät muodostuvat • ihmisistä • hardware- ja software-komponenteista • proseduureista • datasta • informaatiosta
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
YHTEISKUNTA KILPAILIJAT TOIMINTAYKSIKKÖ ASIAKKAAT OHJAUSTOIMINNOT RAAKA-AINEET TUOTTEET PERUSTOIMINNOT TUKITOIMINNOT VALTIOVALTA SUORITTAVA TOIMINTA OMISTAJAT ALIHANKKIJAT
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.
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ä)
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
TOIMINTAYKSIKKÖ OHJAUSTOIMINNOT PERUSTOIMINNOT TUKITOIMINNOT SUORITTAVA TOIMINTA Tietojärjestelmien roolit toimintayksiköissä Päätöstukijärjestelmät Toimistoautomaatio-järjestelmät Tuotannonohjaus-järjestelmät Prosessinohjaus-järjestelmät Sulautetut järjestelmät Taloushallinnon ja henkilöstöhallinnon järjestelmät Toimistoautomaatio-järjestelmät
Käsitteitä • Toimistoautomaatiojärjestelmä (office automationsystems) • 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
Käsitteitä • Päätöstukijärjestelmä (DSS=decision-support systems) • tuottavat informaatiota päätöksen teon tueksi analysoimalla organisaatiota koskevaa tietoa • 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) • 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öntukijärjestelmät(KWS=knowledge work support) • tietojärjestelmiä jotka auttavat tietotyötä tekeviä luomaan ja integroimaan uutta tietoa
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.
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
Mitä kehittämisellä tarkoitetaan? • Uusien järjestelmien kehittämistä tai • Olemassaolevien järjestelmien muuttamista • Muutosprosessi • Havainnointi (nykytila) • Tavoitteidenasettaminen (pyrkimys) • Suoritus (työ) • Ohjaus (kontrolli/arviointi) • Muutos (muuttunutkohde)
Tietojärjestelmien kehittäminen KEHITYSRYHMÄ ASETTAA TAVOITTEET SUORITTAA OHJAA OVAT OMINAISUUKSIA HAVAINNOI KOHDE- JÄRJESTELMÄ KOHDE- JÄRJESTELMÄ MUUTOSPROSESSI YMPÄRISTÖ
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 – • 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
Tietojärjestelmien kehittämisen ongelmia • Systeemityön tuottavuus ja kustannukset • 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
Tietojärjestelmien kehittämisen ongelmia • Tietojärjestelmien kehittämisen laadulliset ongelmat • 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 • 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ä)
Ohjelmistotuotannon erityispiirteitä • Monimutkaisuus • Näkymättömyys • tuotteen valmiusasteen määrittäminen hankalaa • Muunnettavuus • ohjelmistoille asetettuja vaatimuksia tarkennetaan ja muunnetaan, toimintaympäristöt muuttuvat • Ainutkertaisuus • Skaalautumattomuus • 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
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
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
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ä.
Tietojärjestelmien rakentaminen • kohteen määrittely ja rajaus • mikä on tavoite • mitkä ovat tuloksen laadun mittarit • vastuuhenkilöt, työryhmä, resurssit • rakenteen suunnittelu ja kuvaaminen • sovituilla malleilla • mallin toteutus valitulla työvälineellä • ratkaisun testaus • tuloksen vertailu tavoitteisiin • laadun mittaaminen • ratkaisun testaus vaihtoehtoisilla tekijöillä • mallin käyttö ja kehittäminen
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.
Systeemin kehittämismalleista • 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.
Klassinen systeemin kehittämismalli • Sen osat ovat: • systeemianalyysi, • systeemisuunnittelu ja • toteutusvaihe • Bottom-up –periaate (mallin heikkous), vesiputousmalli • Lineaarinen, toinen toistaan seuraava toteutusjärjestys
Tietojärjestelmänkehittämisenvesiputousmalli Esitutkimus Määrittely / Analyysi Suunnittelu (design) Toteutus Testaus Käyttöön- otto Ylläpito
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ä.
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.
Rakenteellinen systeemin kehittämismalli Malli koostuu kahdeksasta eri aktiviteetista: • Esitutkimus • Vaatimusmäärittely • Systeemianalyysi • Suunnittelu • Toteutus • Testaus • Käyttöönotto • Ylläpito
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
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).
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
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 • 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 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, relaatiotietokanta-pohjainen jne.) • käytetyt menetelmät ja mallit (esim. oliokuvaus-menetelmien kanssa olio-ohjelmointikielet) • tehokkuusvaatimukset (toiset kielet tehokkaampia) • toteutus- ja käyttöympäristö (Windows, UNIX tms.) • huom! siirrettävyys, ylläpidettävyys, dokumentointi
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
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
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
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
Prototyyppiperusteinentietojä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
Prototyyppiperusteinentietojä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)
Prototyyppilähestymistapa Tavoitteet Määritä vaatimukset Vaatimukset Rakenna prototyyppi Korjauksia Käyttäjän arviointi Suorituskyky Demoa prototyyppiä OK Arkkitehtuuri ja toimintoja Toteuta järjestelmä Järjestelmä Uusia tavoitteita Hyötykäyttö
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