Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

2. Ohjelmistotuotannon osa-alueet

Samankaltaiset esitykset


Esitys aiheesta: "2. Ohjelmistotuotannon osa-alueet"— Esityksen transkriptio:

1 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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
Vesiputousmalli Esitutkimus Tarkistus Vaatimukset Tarkistus Määrittely Tarkistus Suunnittelu Tarkistus Toteutus Testaus Integrointi Testaus Käyttöönotto ja Ylläpito Tarkistus 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. 2. Ohjelmistotuotannon osa-alueet

7 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
Termien sekamelskaa… Vaatimus, asiakasvaatimus, toiminnallinen vaatimus, ei-toiminnallinen vaatimus, ohjelmistovaatimus, ominaisuus, ohjelmiston toiminto Ei vakiintuneita termejä 2. Ohjelmistotuotannon osa-alueet

11 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
!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 Prosessimallit – prototyyppi
määrittely suunnittelu toteutus vaatimus-määrittely määritä vaatimukset toteuta järjestelmä järjestelmän hyötykäyttö rakenna prototyyppi demonstroi prototyyppiä korjaukset käyttäjän arviointi OK suorituskyky arkkitehtuuri ja toimintoja uusia tavoitteita 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 Prosessimallit – spiraali
vaatimusmäärittely määrittely (suunnittelu) (toteutus) iteratiivisuus keskeinen periaate riskien jatkuva analyysi prosessin uudelleen ohjaaminen riskianalyysin tulosten mukaan riskianalyysi tuotanto arviointi suunnittelu jatkamis- tai lopettamis- päätös 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
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. 2. Ohjelmistotuotannon osa-alueet

29 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2. Ohjelmistotuotannon osa-alueet
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 2.6 Elinkaarikustannukset
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. 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


Lataa ppt "2. Ohjelmistotuotannon osa-alueet"

Samankaltaiset esitykset


Iklan oleh Google