Ohjelmistotuotanto
Kuvauksen kirjoitti: Kalle Riuttanen L4773
Lyhyt kuvaus käsitteestä tai aiheesta
Ohjelmistotuotanto on kokonaisuus/yleisnimitys ohjelmien sekä ohjelmisto kokonaisuuksien valmistukselle. Se sisältää erilaiset ohjelmien valmistus menetelmät, prosessinhallinnan ja ylipäätään kaiken toiminnan jonka päämääränä on valmistaa jokin tietokoneohjelma tai -ohjelmisto. Ohjelmistotuotannossa käytetään elinkaarimallia projektien hallinnan pohjana ja yleensä kaupalliset ohjelmistot tuotetaan projektityönä. Ohjelmiston elinkaari voi jatkua pitkälle vielä senkin jälkeen kun ohjelma tai ohjelmisto on julkaistu, esimerkiksi kehityksen tai vähintääkin ylläpidon merkeissä. Projektin laajuus vaikuttaa käytettävien menetelmien valintaan.
Vesiputousmalli
Projekti etenee tasolta toiselle yhteen suuntaan. Jokainen vaihe dokumentoidaan ja dokumentointia käytetään pohjana aina seuraavalle vaiheelle. Vesiputousmalli on hyvä yleiskuvaus ohjelmistotuotannon prosesseista, mutta sitä on kehitetty eri suuntiin jotta se soveltuisi paremmin käytäntöön.
Prototyyppimenetelmä
Prototyyppimallissa ulkoasu (eli yleensä ohjelman käyttöliittymä) asetetaan etusijalle. Projektien alkuvaiheessa saadaankin siis mahdollisimman nopeasti prototyyppi asiakkaan tarkasteltavaksi. Näin asiakas voi nähdä tuotteen ulkoasun ja antaa kehitys ideoita sekä antaa palautetta mahdollisista muutoksista. Koska backend- sekä bisnespuolen kehitys on tässä kohtaa alkuvaiheessa, voidaan suuriakin muutoksia vielä tehdä kohtuullisen vaivattomasti.
RUP
Neljä vaihetta, perustuu iteraatioihin ja pohjautuu esiputousmalliin.
Ketterät menetelmät
Ketterät menetelmät korostavat muutosten hallintaa sekä mahdollisimman nopeita iteraatiosyklejä. Niitä on siis kehitetty sopiviksi nopeasti muuttuviin ympäristöihin, joissa perinteisen vesiputousmallin soveltaminen ei olisi mahdollista sen "hitauden vuoksi".
Elinkaaren vaiheet
Ohjelmistotuotannon prosessi jakautuu eri vaiheisiin, jotka voidaan karkeasti jakaa kehitykseen sekä ylläpitoon.
Vaatimusanalyysi
Asetetaan tuotteelle tavoitteet, jotka sen tulisi täyttää julkaisuun mennessä. Tämä vaihe toteutetaan yleensä tiiviissä yhteistyössä asiakkaan kanssa ja vaiheen lopussa saadaan valmiiksi dokumentoituna asiakasvaatimukset.
Järjestelmä-/Ohjelmistosuunnittelu
Tähän vaiheeseen sisältyy mm. järjestelämintegraatio ja toiminnallinen- sekä arkkitehtuurisuunnittelu. Toiminnallisen määrittelyn dokumentoinnissa kuvataan ohjelmiston/järjestelmän toiminnot ja lopputuloksena on määrittelydokumentti. Arkkitehtuurisuunnittelu keskittyy kuvaamaan määrittelydokumentin pohjalta järjestelmän teknisen arkkitehtuurin tarkasti.
Toteutus
Edellinen vaihe on nyt luonut pohjan toteutuksen aloitukselle. Suurin osa varsinaisesta koodauksesta tapahtuu tässä vaiheessa, mutta toteus on yleensä vain noin 10-20 % projektikokonaisuudesta. Vaiheen lopputuloksena on toimiva ohjelmisto, joka on valmiina testaukseen.
Testaus
Testauksen tehtävänä on löytää mahdollisimman paljon virheitä ja heikkouksia ohjelmistosta, jotta sitä voidaan kehittää stabiilimmaksi ennen julkaisua. Ohjelmistotestaus voidaan jakaa integraatio-, yksikkö-, regressio- sekä hyväksyntätestaamiseen. Hyväksyntätestaus on näistä ehkä kriittisin, sillä määritellyt hyväksyntätestit on läpäistävä ennen julkaisua.
Julkaisu
Ohjelmisto on valmis käyttöönottoon ja hyväksyntätestit on läpäisty.
Ylläpito
Ylläpito sisältää kaikki julkaisun jälkeiset toimentpiteet, joita ohjelmisto vaatii toimiakseen.
Linkit ulkopuolisiin lähteisiin
Avainsanat harjoitustehtävän repositoriossa
- Asiakas - Customer
- Dokumentinhallinta - Document Management
- Ohjelmistoarkkitehti - Software architech
- Vesiputousmalli - Waterfall- model
- Yksikkötesti - Unit Test
- Rational Unified Process (RUP)
- Vaatimustenhallinta - Requirement Management
- Toiminnallinen vaatimus (Functional Requirement)
- Ei-toiminnnallinen vaatimus - Non functional requirement
- Jatkuva integrointi(Continuous Integration)
- Integraatio testaus
- Kayttoonotto (Service Deployment)
- Yllapito (Maintenance)