200 likes | 391 Views
Ohjelmistotekniikka ja projektinhallinta, 4 op. OHJELMISTON ELINKAARIMALLIT Seppo Räsänen Savonia-ammattikorkeakoulu Terveysala, kuopio 18.8.2008. Ohjelmiston elinkaari ja vaihejakomallit …. Ohjelmiston elinkaari ja vaihejakomallit ….
E N D
Ohjelmistotekniikka ja projektinhallinta, 4 op OHJELMISTON ELINKAARIMALLIT Seppo Räsänen Savonia-ammattikorkeakoulu Terveysala, kuopio 18.8.2008
Ohjelmiston elinkaari ja vaihejakomallit … • Elinkaari = Aika, joka kuluu ohjelmiston kehittämisen aloittamisesta käytöstä poistumiseen • Elinkaarimalleja ovat mm. • Vesiputous (yleisin malli) • Evo • Protoilu • Spiraali • Jne…
mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot Esitutkimus millainen järjestelmä täyttää ongelman vaatimukset Määrittely miten järjestelmä toteutetaan ja ositetaan Suunnittelu Toteutus osien ohjelmointi Integrointi ja testaus osien liittäminen yhteen Ohjelman luovuttaminen asiakkaalle = asennus ja koulutus Käyttöönotto ja ylläpito Vesiputousmalli…
Vesiputousmalli… • Kaikkiin vaiheisiin liittyy tarkastuksia, katselmointeja ja testausta laadunvarmistus • Tarkastuksilla ja testaamisella pyritään kitkemään virheet mahdollisimman aikaisessa vaiheessa kustannukset virheen korjaamiselle kertaantuvat mitä pitemmälle projektissa on edetty • Katselmoinnit järjestetään yleensä tietyn vaiheen lopuksi • Projektin tilanteen läpikäynti ja todennetaan, että kaikki tietyn vaiheen tavoitteet on saavutettu ja dokumentit ovat kunnossa
Vesiputousmalli… • Esitutkimus • tavoitteena on asettaa yleiset vaatimukset järjestelmälle • määrittää asiakkaan tarpeet, asiakasvaatimukset, odotukset • ei ota kantaa millainen järjestelmän tulee olla • antaa vastauksen kysymykseen, miksi järjestelmä tai ohjelmisto tulisi tehdä tai miksi se pitäisi jättää tekemättä • mielletään myös osaksi määrittelyä tarpeiden analysointi ja tarkentuminen jatkuu läpi koko määrittelyvaiheen
Vesiputousmalli… • Määrittely • asiakasvaatimuksista johdetaan ohjelmistovaatimukset • ohjelmistovaatimukset määrittelevät toteutettavan järjestelmän • tuotetaan dokumentti, jossa kuvataan ohjelmiston toiminnot, toteutuksen ei-toiminnalliset vaatimukset ja rajoitukset • toiminnallinen määrittely (IEEE830) • Ohjelmiston toiminnoissa määritellään: • toteutettavat ominaisuudet, käyttöliittymä, liitynnät muihin järjestelmiin • Ei-toiminnallisia vaatimuksia: • Vasteajat, käytettävyys, suoritusteho • Rajoituksissa kuvataan mm.: • käytössä oleva muistin määrä, tietty ohjelmointiympäristö, tietty käyttöjärjestelmä
Vesiputousmalli… • Suunnittelu • suunnitellaan toimintojen toteutus • määrittely muutetaan tekniselle kielelle eli järjestelmän toteutuksen kuvaukseksi • tekninen määrittely (IEEE1016) jaetaan yleensä kahteen osaan: • arkkitehtuurisuunnittelu • osien työnjako ja rajapinnat • tavoitteena toisistaan riippumattomat moduulit, jolloin yhden moduulin muutokset eivät vaikuta muihin moduuleihin • uudelleenkäytettävyyden lisääminen • tekninen määrittely • moduulisuunnittelu • moduulisuunnittelu • suunnitellaan jokaisen itsenäisen moduulin sisäinen rakenne • yksittäinen suunnittelija voi suunnitella, toteuttaa ja testata moduulin
Vesiputousmalli… • Ohjelmointi • kirjoitetaan ohjelma • ohjelmoija yleensä yksikkötestaa oman ”koodinsa ennen varsinaista testausvaihetta • Testaus • tavoite on yksinkertaisesti löytää ohjelmistosta virheitä • suoritetaan yleensä monella tasolla alkaen ohjelmointivaiheen yksikkötestauksella ja päättyen järjestelmätestaukseen • V-malli
Järjestelmä- testaus Määrittely testauksen suunnittelu ja tulosten verifiointi Integrointi- testaus Arkkitehtuuri- suunnittelu Moduuli- testaus Moduuli- suunnittelu Ohjelmointi Vesiputousmalli… Hyväksymis- koe Tarpeet / sopimus -Moduulitestauksen paljastamat virheet ovat ohjelmointivirheitä -Integrointitestauksessa esiin tulevat virheet johtuvat suunnitteluvirheistä -Järjestelmätestaus vaiheessa paljastuvat virheet, voivat pahimmassa tapauksessa johtaa koko prosessin alkuun eli virheellisesti suoritettuun määrittelyvaiheeseen
Vesiputousmalli… • Moduulitestaus • virheitä etsitään yksittäisistä moduuleista • testaus suunnitellaan moduulisuunnittelun yhteydessä • Integrointitestaus • virheitä etsitään moduulien yhteistoiminnasta • testaus suunnitellaan arkkitehtuurisuunnittelun yhteydessä • Järjestelmätestaus • virheitä etsitään koko järjestelmän toiminnoista ja suorituskyvystä • testaus suunnitellaan määrittelyvaiheessa
Vesiputousmalli… • Käyttöönotto- ja ylläpito • koulutetaan käyttäjät • otetaan järjestelmä tuotantokäyttöön • ratkotaan asiakkaiden ongelmia • korjataan virheitä • muutetaan ohjelmaa vaatimusten muuttuessa • lisätään uusia ominaisuuksia ohjelmaan
Määrittely Määrittely Määrittely Suunnittelu Suunnittelu Suunnittelu Toteutus Toteutus Toteutus Testaus Testaus Testaus Versio 1 Versio 2 Versio 3 Evo-malli…
Evo-malli… • Evo-malli • pyritään ensimmäisessä vaiheessa rakentamaan perusjärjestelmä, jota myöhemmissä vaiheissa kehitetään • jokainen vaihe on vesiputousmallin mukainen • voidaan käyttää: • tuotekehitysprojekteissa, joiden tarkoituksena on julkistaa esimerkiksi vuosittain uusi versio tuotteesta • projektissa, jossa versioita tehdään n kappaletta ennen lopullista järjestelmää. Ominaisuuksia lisätään kierros kierrokselta • ongelmaksi saattaa muodostua julkaistun version virheiden korjaus ja asiakkaiden ongelmien ratkominen • versioiden ominaisuudet tulee myös suunnitella järkevästi, ettei uusia ominaisuuksia lisätä liikaa tai liian vähän seuraavaan versioon
Varsinainen tuoteprojekti Proto-projekti Määrittely Määrittely Suunnittelu Suunnittelu Toteutus Toteutus Testaus Testaus Prototyyppi Järjestelmä Protoilu…
Protoilu… • Protoilu • tehdään jonkinlainen kokeilumalli ennen kuin varsinaista järjestelmää aletaan kehittämään • voidaan selvittää epäselviä asiakasvaatimuksia • uudet tekniset ratkaisut voidaan testata prototyypeillä ennen kuin päätetään ratkaisun käyttöönotosta • käyttöliittymien suunnittelu on järkevää tehdä protoilemalla • suorituskyky voidaan varmistaa etukäteen erityisillä suorituskykyprototyypeillä • Kun prototyyppi on kehitetty, niin sen jälkeen on useita vaihtoehtoja jatkolle • ajateltu järjestelmä ei tuo asiakkaalle lisäarvoa ja projekti ”ammutaan alas” tai aloitetaan protoilu alusta hieman eri perspektiivistä • määritellään järjestelmä, jota aletaan kehittämään alusta alkaen uudestaan • jatketaan prototyypin kehittelyä oikeaksi järjestelmäksi
Protoilu… • Protoilu • Protoilun ongelmana on, että asiakas saattaa luulla järjestelmän olevan jo suurimmalta osin valmis • todellisuudessa ”demo-polut” ovat yleensä kapeita ja käyttäjien toimenpiteisiin vastataan esimerkiksi kovakoodatuilla viesteillä • Aina ei kannata protosta tehdä valmiin näköistä • asiakkaalle selviää ohjelmiston tarkoitus, mutta myös se, että työt ovat alkutekijöissään
Spiraali… • Spiraalimallissa yhdistetään elinkaarimalli ja protoilu. • Spiraalimallissa huomioidaan myös yhtenä keskeisenä osana mahdolliset riskit. • Spiraalimalli soveltuu erityisesti suurten järjestelmien ja ohjelmien suunnitteluun.
Ohjelmiston elinkaari ja vaihejakomallit … • Kysymyksiä • Kommentteja