2. Ohjelmistotuotannon osa-alueet

Slides:



Advertisements
Samankaltaiset esitykset
Testaus ja testausympäristöt
Advertisements

Laatujärjestelmä marjatiloilla/jatkojalostajalla
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestauksen raportointiohje Testitapauksen raportointi Havainnon raportointi.
Suunnitelma ohjelmiston testaukseen
Käytettävyystestaus GenMetrics projektissa Jonas Alam
4. Vaatimusten hallinta Ohjelmistotuotantoprosessin tavoitteena
Tietokannan suunnittelu
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestaus – Kick-off.
Tekninen suunnit-telu
Dokumentointi RASE
Ohjelmiston elinkaarimallit
T Projektikatselmus GenCode PS iteraatio
Ohjelmiston toteutus (teknisestä näkökulmasta)
E-Commerce 2010: Business, Technology, Society 6e
Tietojärjestelmän suunnittelu
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Ketterä testaus ja testauslähtöinen kehitys
Korkeakoulujen ja opetusministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto RAKETTI-XDW Käsitemäärittely,
T Projektikatselmus GenCode PS iteraatio
(Joskus puhutaan myös komponenttitestauksesta.) Pienin kokonaisuus, joka on järkevä testata erikseen. ● Perinteisesti yksittäinen aliohjelma. ● Olio-ohjelmien.
T Personal SE assignment Project progress tracking and control.
3. Spesifikaatioiden laatiminen
Ohjelmistotekniikka - Tenttiin valmistautumisesta Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Oliosuunnittelu.
Laatujärjestelmät.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
(mukaellen Haikala & Mikkonen 2011, 29)
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Kommunikointi kommunikoinnin ongelmia aiheuttaa
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Onnistunut IT-projekti - Haaveesta totta? Tiken näkemys
Esitutkimus (tarvekartoitus)
Heikki Salokanto Valvoja: prof. Jukka Manner Ohjaaja: DI Pekka Pajuoja, TEKES Sovelluskehitysympäristön virtualisoinnin tuomat edut ja haitat.
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Tukiasemaohjaimen ohjelmiston muutostoimitusten automatisoitu testaustyöympäristö Mikko Harila Työn valvoja:Professori Sven-Gustav Häggman Työn.
Ohjelmistotuotanto.
Systeemityö 2 Vesiputousmalli Teppo Räisänen, Principal Lecturer
T Loppudemo Kaffetauko eAuction
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestaus – Miksi ja miten?
Testaus Testaus Testauksella pyritään löytämään virheitä, jotka sitten korjataan. Yksittäinen testi on yleensä ohjelman suoritus (tietyillä.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Vaatimustenhallinta.
T Henkilökohtainen SE harjoitus
Analyysi. Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien.
T Personal SE Assignment Pauli Aho Personal SE Assignment Valittu aihe ja menetelmä Käytettävyystestaus (usability testing) ISO :
Tik Tietojenkäsittelyopin ohjelmatyö Palautuspalaveri 1 Projektin esittely lyhyesti Projektin tilanne Vaiheen lopputulokset Seuraavan vaiheen (MÄ)
Tik Tietojenkäsittelyopin ohjelmatyö Palautuspalaveri 3 Projektin esittely lyhyesti Projektin arviointi –projektin tila –suunnitelmat P1-vaiheelle.
Tik Tietojenkäsittelyopin ohjelmatyö Palautuspalaveri 2 Projektin esittely lyhyesti Projektin tilanne Vaiheen lopputulokset Seuraavan vaiheen (SU)
T Projektikatselmus Ampel Projektisuunnitteluvaihe (Versio 1.0)
Liiketoimintaprosessit ja MS Visio 2010
Ohjelmistotuotannon osa- alueet Kevät 2002 Päivi Ovaska LTKK/Tite.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Ohjelmistotekniikka kevät 2003 Ohjelmistotekniikan määritelmä Ohjelmistotekniikka (Software Engineering) tarkoittaa pätevien insinööriperiaatteiden vakiinnuttamista.
Ohjelmistotekniikka Vaatimustenhallinta Kevät 2002 Päivi Ovaska LTKK/Tite.
jew1 Systeemityön eteneminen opintojaksolla Ohjelmiston suunnittelutaito Opintojakson eteneminen.ppt.
Sosiaalinen markkinointi Monikulttuurinen ehkäisevä päihdekasvatus Ohjausryhmän suunnittelupäivä
MIKÄ ON PROJEKTI / HANKE?. Projekti  …. On joukko ihmisiä ja muita resursseja, jotka on tilapäisesti koottu yhteen suorittamaan tiettyä tehtävää,
Kansallinen palveluväylä PERTIVA-kokous
Sosiaali- ja terveydenhuollon organisaatio- ja palvelutiedon hallinta
18. Testaus.
Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4
THL – SÄHKÖINEN JULKAISEMINEN MÄÄRITTELYTYÖPAJA
Tietojärjestelmät KEHITTÄMINEN JOHTO KIRJANPITO TILAUSTEN KÄSITTELY
Vaatimusmäärittely kehitysprosessissa
Arvioinnista arkipäivää
(mukaellen Haikala & Mikkonen 2011, 29)
Esityksen transkriptio:

2. Ohjelmistotuotannon osa-alueet

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. http://www.cs.tut.fi/ohj/laatu/ 2. Ohjelmistotuotannon osa-alueet

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

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

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

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

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

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

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

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