1 / 36

2. Ohjelmistotuotannon osa-alueet

2. Ohjelmistotuotannon osa-alueet. Ohjelmistotuotannon osa-alueet. Laatujärjestelmä ohjaa yrityksen tuotanto Yrityksen henkilöstö on yleensä organisoitu linjaorganisaatioksi, projektien toteutus projektiorganisaatiossa

aliza
Download Presentation

2. Ohjelmistotuotannon osa-alueet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2. Ohjelmistotuotannon osa-alueet 2. Ohjelmistotuotannon osa-alueet

  2. Ohjelmistotuotannon osa-alueet • Laatujärjestelmä ohjaa yrityksen tuotanto • Yrityksen henkilöstö on yleensä organisoitu linjaorganisaatioksi, projektien toteutus projektiorganisaatiossa • Tietojärjestelmäprojekti sisältää kehitysprosessin, jossa on ainakin seuraavat vaiheet • Määrittely • Suunnittelu • Ohjelmointi • Testaus • Käyttöönotto, ylläpito • Projektinhallinnan tukitoiminnat • Tuotteenhallinta • Laadunvarmistus • Dokumentointi • Vaatimustenhallinta, riskienhallinta 2. Ohjelmistotuotannon osa-alueet

  3. 2.1 Ohjelmiston elinkaari • Ohjelmiston elinkaarella (life cycle) tarkoitetaan aikaa, joka kuluu ohjelmiston kehittämisen aloittamisesta sen poistamiseen käytöstä. • Vaihejakomalli kertoo miten ohjelmiston kehitystyö tai koko elinkaari jaetaan vaiheisiin ja miten vaiheet sijoittuu toisiinsa nähden • Tavallisin vaihejakomalli on vesiputousmalli • malli! • valittava kehittämishankkeen mukaan • perusmalleja ovat mm. • vesiputousmalli • prototyyppimalli • spiraalimalli • Unified Process 2. Ohjelmistotuotannon osa-alueet

  4. Vesiputousmalli • vanhin systeemityön etenemisen malli, vesiputousmalli (waterfall model) 1960-luvun lopulta • peräkkäinen, eteenpäin kulkeva prosessi • Mallista on olemassa useita eri muunnelmia, mutta yleensä mallista erotetaan seuraavan kuvan mukaiset vaiheet • Kaikkiin vaiheisiin liittyy laadunvarmistustoimenpiteitä (tarkastuksia, katselmuksia, testausta) • ongelmia • peräkkäisyys ei ole kehittämishankkeissa yleensä näin suoraviivaista • vaiheen suoritus paljastaa edellisen vaiheen ongelmia -> korjauksia • tarkistuspisteet kiinteitä vaiheiden päätöksiä • varsinaiset tulokset syntyvät myöhään prosessin aloittamisesta • kuitenkin yleisimmin käytetty ja sovellettu prosessimalli 2. Ohjelmistotuotannon osa-alueet

  5. Esitutkimus Tarkistus Vaatimukset Tarkistus Määrittely Tarkistus Suunnittelu Tarkistus Toteutus Testaus Käyttöönotto ja Ylläpito Tarkistus Integrointi Testaus Vesiputousmalli 2. Ohjelmistotuotannon osa-alueet

  6. Mistä kehittämisprosessi alkaa? • tarve kehittää uutta tai ylläpitää vanhaa • asiakkaan tarpeet, tekninen kehitys, muut kehittämishankkeet, … • Strategiatyö: tietohallintostrategian uudistaminen • koko organisaation tietojenkäsittelyn kehittäminen • selvitys organisaation tietojärjestelmien tilasta ja niiden kehitystarpeista • perusta pitkän tähtäimen organisaation tietotekniikkaa ja tietojenkäsittelyä koskeville päätöksille sekä tietojärjestelmien ja muiden tietojenkäsittelyn kehittämishankkeiden priorisoinnille ks. http://www.titu.jyu.fi/julkaisut/julk09/index2.htm 2. Ohjelmistotuotannon osa-alueet

  7. Esitutkimus • Esitutkimus (feasibility study, initial business study) • edellytykset hankkeen toteuttamiselle • onko rakentaminen mahdollista ja mielekästä? • miksi järjestelmä tulisi rakentaa? • mitkä ovat pääasialliset tavoitteet? • sidosryhmät, jotka liittyvät järjestelmään? • ratkaisuvaihtoehdot? • riskit? • hinta-arvio? • muut resurssit? • Syntyy päätös, jatketaanko hanketta vai ei. 2. Ohjelmistotuotannon osa-alueet

  8. Vaatimusmäärittely (requirements analysis) • Yleiset järjestelmätason vaatimukset eli asiakasvaatimukset (customer requirements, business requirements) • Varastonvalvontasovelluksen kiertonopeuden kasvatus 10%:lla • Määrittävät mitä asiakas tarvitsee, muttei ota vielä kantaan, millainen järjestelmä tarvitaan • Kerätään toiminnallisia vaatimuksia, ei-toiminnallisia vaatimuksia ja rajoitteita • Mitattavuus • Vääristä asiakasvaatimuksista ei voi päätyä hyvään tietojärjestelmään!! • Asiakastarpeiden määritys on tosin vaikeaa • Erilaisia käyttäjiä • Erilaisia tehtäviä, joihin järjestelmää käytetään • Käyttäjillä erilainen it-osaamistausta  vaatimusmäärittely 2. Ohjelmistotuotannon osa-alueet

  9. Määrittely • (Järjestelmä)analyysi eli määrittely (system analysis, requirement analysis) määrittelee järjestelmän sisältämät toiminnot (MITÄ järjestelmä tekee) • vaatimuksista johdetaan järjestelmän toiminnot • käytännössä tarkennetaan ja formuloidaan vaatimusmäärittelyn tulokset, ”kootaan” toiminnot • näkökulma siirtyy käyttäjästä toteuttajaan • kuvataan toiminnot yksityiskohtaisesti • mitä toiminnossa tapahtuu (käyttäjän näkökulmasta) • missä järjestyksessä asioita tehdään • mitkä ovat järjestelmän tehtäviä, mitkä käyttäjän • toimintojen väliset yhteydet • määritellään ja tarkennetaan rajoitukset • tarkistetaan ja tarkennetaan riskiluettelo • tietokannan alustava kuvaus • tiedot, joita järjestelmässä tallennetaan  Toiminnallinen määrittely 2. Ohjelmistotuotannon osa-alueet

  10. Termien sekamelskaa… • Vaatimus, asiakasvaatimus, toiminnallinen vaatimus, ei-toiminnallinen vaatimus, ohjelmistovaatimus, ominaisuus, ohjelmiston toiminto • Ei vakiintuneita termejä 2. Ohjelmistotuotannon osa-alueet

  11. Suunnittelu Design) • Määrittelyvaiheessa kuvatut toiminnot suunnitellaan (MITEN järjestelmä toiminnon tekee) • arkkitehtuurisuunnittelu (architectural design) • järjestelmän yleinen rakenne, moduulit • esim. • aliohjelmat, komponentit, oliot • keskittyy kuvaamaan rakenneosien kokonaisuutta • moduulisuunnittelu (module design) • jokaisen rakenneosan yksityiskohtainen kuvaus • kuvataan • rakenneosan tehtävä • rajapinta (input, output) • rakenneosan toiminta, miten moduuli tehtävänsä hoitaa  Tekninen määrittely 2. Ohjelmistotuotannon osa-alueet

  12. Toteutus (implementation, programming) • toteutusvälinen valinta • sovellusalue • käytetyt menetelmät ja ohjelmistotuotannon mallit • tehokkuusvaatimukset • toteutus- ja käyttöympäristö • onnistumiseen vaikuttaa • vastaavuus vaatimuksiin • toiminnallisen ja teknisen määrittelyn noudattaminen (ja niiden oikeellisuus!) • siirrettävyys • ylläpidettävyys • ohjelmointityyli • dokumentti • ohjelmakoodi • kommentointi erittäin tärkeää!  Ohjelmakoodi 2. Ohjelmistotuotannon osa-alueet

  13. Testaus (testing) • testauksen tarkoituksena löytää ohjelmistosta virheitä • testaus • testauksen suunnittelu (testisuunnitelmat, testitapaukset) • testiympäristön luonti • testin suorittaminen • tulosten tarkastelu • testaus + löytyneiden virheiden korjaus > 50% resursseista • V-malli esittää eri testaustasot • Moduulitestaus • Integrointitestaus, • Järjestelmätestaus • Testi voi olla lisäksi • hyväksymistestaus • käytettävyystestaus • alfa- tai betatestaus 2. Ohjelmistotuotannon osa-alueet

  14. Testauksen V-malli Vaatimus-määrittely ja määrittely Järjestelmä-testaus Arkkitehtuurisuunnittelu Integrointi-testaus Moduuli-suunnittelu Moduuli-testaus Toteutus 2. Ohjelmistotuotannon osa-alueet

  15. Testaus • Moduulitestaus • testattavana on yksittäinen moduuli • moduulin toimintaa verrataan moduulisuunnittelun ja arkkitehtuurisuunnittelun dokumentteihin • testauksen suorittaa moduulin toteuttaja • testipeti (test bed) • testiajurit (test driver) •  simuloi kutsuvaa ohjelmaa • tynkämodulit (test stubs) •  simuloi aliohjelmia • Integrointitestaus • testataan moduulien välisten rajapintojen toimivuutta • yhdistetään moduulit osajärjestelmiksi • testauksen tuloksia verrataan suunnitteludokumentteihin 2. Ohjelmistotuotannon osa-alueet

  16. Testaus • Järjestelmätestaus • testauksen tuloksia verrataan määrittelyvaiheen dokumentteihin • Järjestelmätestaukseen voi liittyä • kenttätestaus • hyväksymistestaus • Testaaja muu kuin kehittäjä • Testataan myös ei-toiminnallisia ominaisuuksia: • kuormitustesti, luotettavuustesti, käytettävyystesti, jne. • Jos virhe löytyy järjestelmätestissä, se on moninkertaisesti kalliimpaa korjata, kuin jos se olisi löytynyt jo moduulitestivaiheessa! 2. Ohjelmistotuotannon osa-alueet

  17. Käyttöönotto (Installation) • olemassa olevien tietojen, tiedostojen ja tietokantojen siirtäminen uuteen järjestelmään • aikaisempien järjestelmien rinnakkaisuus • koulutus ja käyttöohjeet • uudet työtavat, tietojärjestelmät, … • muutokset fyysisessä ja teknisessä ympäristössä (uusia koneita, laitteita tai ohjelmistoja) 2. Ohjelmistotuotannon osa-alueet

  18. Ylläpito (Maintenance) • Ylläpito on • pisin yksittäinen vaihe • tuotantokäytössä olevan järjestelmän toimintakunnosta huolehtiminen • virheiden korjausta • jatkokehitystä • muut muutostoimenpiteet • ylläpito voi olla • korjaavaa • sopeuttavaa • täydentävää tai • ennakoivaa ylläpitoa • vaikeutena • puutteellinen dokumentaatio • konfiguraation hallinta • yhteiset arkkitehtuurit (tai pikemminkin niiden puute) 2. Ohjelmistotuotannon osa-alueet

  19. !Huomattavaa! • Edellä esitetty vaihejako • kuvaa elinkaaren aikaisia tehtäviä ERÄÄLLÄ tavalla ryhmiteltynä • ei ota kantaa päällekkäisyyksiin • ei huomio poikkeustapauksia • vaiheiden tehtävät voivat olla osittain limittäisiä; vaiheita voidaan yhdistää, …. • on aina sovellettava kehityshankekohtaisesti • on myös läpi koko elinkaaren tapahtuvia toimintoja (laadunvarmistus, dokumentointi, vaatimustenhallinta, riskienhallinta…) 2. Ohjelmistotuotannon osa-alueet

  20. 2.2 Prosessimallit – prototyyppi(elinkaarimalli, prosessimalli) • vesiputousmallin heikkoutena on myöhäinen tulosten näkyminen asiakkaalle • prototyyppimalli (protoilu) perustuu siihen, että järjestelmästä laaditaan nopeasti asiakkaalle esiteltävä prototyyppi • täydellinen ulkoasultaan, yleinen toiminnallisuus • puutteellinen yksityiskohdiltaan • prosessi sisältää • käyttäjän vaatimusten ja tavoitteiden analysointi • prototyypin rakentaminen • prototyypin parantelu asiakkaan toiveiden mukaan • lopullisen järjestelmän rakentaminen • ongelmia • voi johtaa kaksinkertaiseen rakentamiseen • prototyyppi ei välttämättä paljasta kaikkia yksityiskohtiin meneviä ongelmia • nopeasti tehdyt huonot ratkaisut saattavat heijastua lopulliseen järjestelmään 2. Ohjelmistotuotannon osa-alueet

  21. vaatimukset määritä vaatimukset rakenna prototyyppi korjaukset uusia tavoitteita käyttäjän arviointi suorituskyky demonstroi prototyyppiä OK toteuta järjestelmä arkkitehtuuri ja toimintoja järjestelmän hyötykäyttö Prosessimallit – prototyyppi määrittely suunnittelu toteutus vaatimus-määrittely tavoitteet testaus määrittely suunnittelu toteutus käyttöönotto ja ylläpito 2. Ohjelmistotuotannon osa-alueet

  22. Prosessimallit – prototyyppi • Prototyyppimalli soveltuu • Uuden teknisen ratkaisun vaatiman kokeilun tekemiseen • Etsittäessä epäselviä asiakasvaatimuksia • Käyttö: • Prototyypin valmistuttua sen perusteella määritellään toteutettava järjestelmä, joka sitten toteutetaan alusta alkaen uudelleen • Prototyyppi kehitetään valmiiksi järjestelmäksi • Protoilu on hyödyllinen erityisesti käyttöliittymiä määriteltäessä • Ongelmia lisäksi • Prototyypin viimeistelty ulkoasu harhauttaa valmiusasteen suhteen • Protoilusilmukoiden määrä: loputon proton parantelu 2. Ohjelmistotuotannon osa-alueet

  23. iteratiivisuus keskeinen periaate riskien jatkuva analyysi prosessin uudelleen ohjaaminen riskianalyysin tulosten mukaan suunnittelu riskianalyysi jatkamis- tai lopettamis- päätös arviointi tuotanto Prosessimallit – spiraali vaatimusmäärittely määrittely (suunnittelu) (toteutus) testaus käyttöönotto suunnittelu toteutus testaus 2. Ohjelmistotuotannon osa-alueet

  24. Prosessimallit – spiraali • Spiraalimalli perustuu neljään vaiheeseen, joita toistetaan jatkuvasti tarkentaen, kunnes järjestelmä on valmis • suunnittelu • tavoitteiden, vaihtoehtojen ja rajoitusten määrittely • riskianalyysi • vaihtoehtoihin liittyvien ongelmien arviointi • tuotanto • edellisiin perustuvan järjestelmävaiheen valmistus • asiakkaan arviointi • tarkistuspiste ennen seuraavaa iterointikierrosta 2. Ohjelmistotuotannon osa-alueet

  25. Prosessimallit – spiraali • spiraalimalli ei kiinnitä tuotantovaiheen menetelmiä • voi sisältää esim. sisäkkäisen vesiputousmallin tai prototyyppilähestymistavan soveltamista • yksityiskohdat tarkentuvat askelittain • jos riskit kasvavat liikaa, toteutus voidaan keskeyttää • uusin; kokemuksia käytännön soveltuvuudesta vielä vähän • ongelmia • asiakkaiden mukaan saaminen • vaatii riskianalyysin hallitsemista • iteratiivisena mallina aikaa vievä 2. Ohjelmistotuotannon osa-alueet

  26. Prosessimallit – Unified Process • Neljä vaihetta, joiden sisällä suoritetaan vesiputousmallin mukaisia tehtäviä • on syntynyt oliokeskeisen ohjelmointitavan myötä • Aloitus (Inception) • Määritellään sovellusalue, tuotteen ominaisuudet, tarvittaessa proto; päätetään aloitetaanko kehitystyö  alustava projektisuunnitelma • Kehitys (Elaboration) • Perusarkkitehtuurin toteutus, alustava käyttöohje • Rakentaminen (Construction) • Vesiputousmallin vaiheita iteroiden kehitetään järjestelmää pala palalta • Uudet ominaisuudet • Siirtäminen (Transaction) • Siirretään järjestelmä asiakkaan laiteympäristöön, koulutus, … 2. Ohjelmistotuotannon osa-alueet

  27. Ketterät menetelmät (agile) • Iteraatiot lyhyitä; jatkuva kehittäminen • Testitapausten suorittaminen automatisoidaan • Uuden ominaisuuden tai ohjelmamuutoksen ohjelmointi etenee seuraavasti: • Ohjelmoidaan muutokselle yksi tai useampi testitapauksia • Ajetaan kaikki testitapaukset • Jos virheitä, • aloitetaan muutoksen ohjelmointi • Kohtaan 2 • XP (Extreme programming) • Jatkuva testaus • Pariohjelmointi (pair programming) • (toinen koodaa, toinen kommentoi tuotosta heti) • Hyviä tuloksia pienehköissä projekteissa 2. Ohjelmistotuotannon osa-alueet

  28. 2.3 Laatu, laatujärjestelmä ja laadunvarmistus • Laatu = • Ohjelmistotuotteen kyky vastata käyttäjänsä kohtuulliset toiveet ja odotukset • Tuotteen laatu • Toiminnan laatu • Tuotteen laatuun vaikutetaan toiminnan laadun kautta • Toiminnan laatu = tuotteen laatuun positiivisesti vaikuttavat toimintatavat • Laatujärjestelmä • Tuotteen tekemisessä käytettävä yrityksen toimintatapa • Tavoite on taata, että tuotantoprosessi tuottaa suunniteltua laatutasoa olevia tuotteita aikataulun ja budjetin mukaisesti • Laatukäsikirja ja ohjeet • Esim. http://www.cs.tut.fi/ohj/laatu/ 2. Ohjelmistotuotannon osa-alueet

  29. Laatujärjestelmä • Todistettavuus, jäljitettävyys • Tarkastuspöytäkirjat, virhedokumentit, pöytäkirjat, laatumittaukset, muut dokumentit • ISO 9001 –standardi • Laatujärjestelmän perusasiat • Laatusertifikaatin voi hakea joltain sertifiointielimeltä (SFS), joilla osoitetaan laatujärjestelmän olevan standardin mukainen • Osoittaa, että toimitaan laatujärjestelmän mukaan – ei sitä, että laatujärjestelmä on erinomainen … • Käytännönläheinen keino parantaa toimintatapoja: • Kirjataan nykytilanne mahdollisimman totuudenmukaisesti • Analysoidaan toimintatavat, etsitään muutokset, jotka parantavat toiminnan lopputulosta 2. Ohjelmistotuotannon osa-alueet

  30. Laadunvarmistus • Laatujärjestelmän auditointi • Toiminnan laadunvarmistus • Laatujärjestelmän systemaattinen läpikäynti, varmistus, että toiminta on laatujärjestelmän mukaista • Tuotteen laadunvarmistus • Estää virheiden pääsyä tuotteeseen • Auttaa virheiden löytymistä tuotteesta mahdollisimman aikaisin • Testaus, vaihetuotteiden tarkastus • Verfifiointi: ”are we building the product right” • Validointi: ”are we building the right product” • Tarkastukset, katselmukset 2. Ohjelmistotuotannon osa-alueet

  31. 2.4 Dokumentointi, tuotteenhallinta • Dokumentaation perusta • Projektisuunnitelma • Määrittelydokumentti (toiminnallinen määrittely) • Suunnitteludokumentti (tekninen määrittely) • Testaussuunnitelma • Ylläpito aiheuttaa dokumentteihin muutoksia • Päivitykset tahtovat jäädä tekemättä • Dokumentaation ylläpidettävyys? 2. Ohjelmistotuotannon osa-alueet

  32. Tuotteenhallinta • Ohjelmisto koostuu • Komponenteista • Ohjelmakomponentit • Dokumentit • Ohjaustiedostot • Konfiguraatio on komponenttien kokoelma, josta tietty tuotteen versio koostuu • Sekä komponenteista, että konfiguraatioista voi olla eri versioita • Eri versioilla saattaa olla erilaisia yhteensopivuusvaatimuksia esim. laitteiston, käyttöjärjestelmän, tietokannan, käyttöliittymän ja tietoliikenneyhteyksien suhteen • Tuotteenhallintaan liittyy mm. • Nimeämissäännöt, konfiguraatioiden muodostamisessa sovellettavat menetelmät, muutosten hallinta, arkistointi, komponenttien ja konfiguraatioiden hallintamenetelmät 2. Ohjelmistotuotannon osa-alueet

  33. 2.5 Ohjelmistotyö projektina • Esitutkimusprojekti • Määrittelyprojekti • Suunnitteluprojekti • Käyttöönottoprojekti • Koulutusprojekti • … • Projekti jaetaan vaiheisiin, vaiheet tehtäviin ja tehtävien työmäärät arvioidaan • Tehtävät sijoitetaan kalenteriin, tehtäville annetaan vastuuhenkilöt • Tehtävät mahdollisimman lyhyitä ja selkeitä • Projektin koko: yksittäinen projekti ei saisi ylittää kalenterivuotta eikä 5:tä henkilötyövuotta 2. Ohjelmistotuotannon osa-alueet

  34. Projektit • Useimmat projektit ylittävät aikataulunsa ja budjettinsa • Vaatimukset muuttuvat • Henkilöstöongelmat • Sovellusalueen ja uuden tekniikan tuntemattomuus • Mm. verohallituksen järjestelmäuudistus 1989 • Verotus myöhästyi yli puoli vuotta • Syitä: ”.. Riskien hallitsemattomuutta, epärealistisia aikataulutuksia, toteutusmahdollisuuksien virhearviointeja…” • Miksi projektit epäonnistuvat yhä uudelleen? 2. Ohjelmistotuotannon osa-alueet

  35. Ohjelmiston erikaarikustannusten jakautuminen eri vaiheisiin vaihtelee tapauksittain suurimmat säästöt saavutetaan ylläpitokustannuksia pienentämällä Suunnittelun ja dokumentaation merkitys Virheiden ennaltaehkäisy tärkeää 2.6 Elinkaarikustannukset 2. Ohjelmistotuotannon osa-alueet

  36. 2.7 Rationaalinen tuotantoprosessi • Ohjelmistotyö on harvoin rationaalista • Tehdyt ratkaisut perustuvat usein intuitioon ja ovat lähes umpimähkäisiä • Rationaalista tuotantoprosessia ei voi noudattaa orjallisesti, koska • Vaatimuksia ei täysin tunneta alkuvaiheessa • Toteutukseen liittyvät lisämääreet selviävät projektin aikana • Kaikkia tosiseikkoja ei pystytä käsittelemään virheettömästi • Tosiseikat muuttuvat ulkoisista syistä • Aikaisemmin opittu sitoo • Uudelleenkäyttö ohjaa myös usein omituisiin ratkaisuihin • Silti rationaaliseen prosessimalliin pitäisi pyrkiä, koska • Ohjeita vaiheiden toteuttamiseen • Tapahtuu oppimista • Prosessin tuntemus helpottaa projektin suunnittelua ja seurantaa • Ulkopuolisen on helpompi arvioida tilannetta 2. Ohjelmistotuotannon osa-alueet

More Related