Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Samankaltaiset tiedostot
Luku 10 Käyttöönoton suunnitteluja toteutusvaihe

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Luku 9 Testauksen suunnittelu ja valmistelu

Osa 3 Projektinhallinnan elinkaari

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Uudelleenkäytön jako kahteen

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston toteutussuunnitelma

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Automaattinen yksikkötestaus

Suunnitteluvaihe prosessissa

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Ohjelmistojen suunnittelu

S11-09 Control System for an. Autonomous Household Robot Platform

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Loppukatselmus

Convergence of messaging

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Ohjelmiston testaussuunnitelma

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

Hakemisto. Black box -testi 109 Braun, Larry 144. Center for International Project and Program Manag 231 CM. Katso Kokoonpanonhallinta

Onnistunut SAP-projekti laadunvarmistuksen keinoin

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Koodaamme uutta todellisuutta FM Maarit Savolainen

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

TOIMINNALLINEN MÄÄRITTELY MS

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

Soft QA. Vaatimusten muutostenhallinta. Ongelma

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Ohjelmistotekniikka - Luento 2

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Turvakriittisen projektin menetelmät ja työkalut

Test-Driven Development

Test-Driven Development

Luku 7 Analyysi- ja suunnitteluvaiheet

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

13/20: Kierrätys kannattaa koodaamisessakin

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

17/20: Keittokirja IV

Luku 6 Projektisuunnitteluvaihe

Ylläpito. Ylläpidon lajeja

2. Ohjelmistotuotantoprosessi

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Lohtu-projekti. Testaussuunnitelma

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

11. PALAVERIN PÖYTÄKIRJA. Jyväskylän Yliopisto Tietotekniikan laitos CONCEPT-projekti Paikka ja aika

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Riski = epävarmuuden vaikutus tavoitteisiin. Valtionhallinnossa = epävarmuuden vaikutus lakisääteisten tehtävien suorittamiseen ja tavoitteisiin

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

UCOT-Sovellusprojekti. Testausraportti

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

ERP järjestelmät. Mitä, miksi ja kuinka? Parhaita käytäntöjä. Kevät 2017 Lauri Tapola

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Ohjelmistojen mallintaminen, mallintaminen ja UML

Scrumin käyttö ketterässä sovelluskehityksessä

Projektinhallinta TARJA NISKANEN LÄHTEENÄ MM. KEHITTÄJÄN KARTTAKIRJA

Opiskelija osaa määritellä ohjelmiston tiedot ja toiminnot, suunnitella ohjelmiston rakenteen ja laatia ohjelmiston teknisen spesifikaation.

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio

Käyttötapausanalyysi ja testaus tsoft

Tapahtuipa Testaajalle...

EDISTYMISRAPORTTI - T2 Virtuaaliyhteisöjen muodostaminen Versio 1.2

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

1(5) TYÖSSÄOPPIMINEN JA AMMATTIOSAAMISEN NÄYTTÖ. Tutkinnon osa: Testaus 15 osp Tavoitteet:

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

Ohjelmistotuotantoprojekti

Suomen avoimien tietojärjestelmien keskus COSS ry

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan.

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Oppimisympäristön arvioiminen ja tunnistaminen tutkinnon perusteiden avulla

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan

8/20: Luokat, oliot ja APIt

T Testiraportti - järjestelmätestaus

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Transkriptio:

Luku 8 Rakennusvaihe Moduulisuunnittelu Detailed Design Programming Ohjelmointi Teknisen Complete suunnittelun Technical viimeistely Design Suunnittelukatselmuksen Design Perform suorittaminen Review Yhteisen Prepare testimateriaalin Common valmistelu Test Data Työyksikköjen Generate luominen ja and Code koodaus Work Units Conduct Yksikkötestaus Unit Test Työyksikköjen Design suunnittelu Work Units Tietokantasuunnitelman Database Complete viimeistely Design Testimateriaalin Prepare Test valmistelu Data Koodikatselmus Code Perform Review Conduct Jonotestaus String Test Tarkoitus Rakennusvaiheen tarkoitus on viimeistellä tarvittavien arkkitehtuurien (kehitys-, toteutus- ja toiminta-arkkitehtuurit) moduulisuunnittelu ja rakentaa sovellus tai järjestelmä sovittua ympäristöä ja sovittuja työkaluja käyttäen. Kehittäjät luovat halutun kaltaisen sovelluksen suunnitteludokumenttien mukaisesti. Yllä oleva prosessikaavio kuvaa rakennusvaiheessa suoritettavia aktiviteetteja.

100 8. Rakennusvaihe Tavoitteet Rakennusvaiheen avaintavoitteet ovat seuraavat: Valmistellaan ja päätetään järjestelmän kaikkien osien ja muunnosten moduulisuunnittelu. Luodaan suoritettavat moduulit. Testataan yksittäiset moduulit. Integroidaan komponentit. Testataan moduulien väliset yhteydet (jonotestaus). Aktiviteetit Moduulisuunnittelu Teknistä suunnittelua ohjeena käyttäen jokaisesta työyksiköstä valmistellaan yksityiskohtainen dokumentaatio. Työyksikkö tarkoittaa sellaista projektin loogista osaa, joka voidaan suunnitella ja kehittää erillään projektin muista osista ja myöhemmin integroida niihin tarpeen mukaan. Monet projektit koostuvat pienemmistä ja samanaikaisesti käynnissä olevista osaprojekteista, mikä voi huomattavasti nopeuttaa projektia ja julkistusaikataulua mutta mikä myös monimutkaistaa projektin hallintaa merkittävästi. Kun työyksikköjen tarkka dokumentointi on saatu päätökseen, dokumentoidaan jokaisen työyksikön loogiset tietonäkymät ja fyysiset tietorakenteet ja tiedotetaan niistä ohjelmoijille. Suunnittelijan tulisi käydä moduulisuunnittelu läpi kaikkien asianomaisten projektitiimin jäsenten kanssa. Lopuksi valmistellaan yhteinen testimateriaali yksikköjen testaamista varten. Teknisen suunnittelun viimeistely Tässä vaiheessa arvioidaan projektin laajuudessa mahdollisesti tapahtuneiden muutosten vaikutuksia ja viimeistellään kaikki kesken olevat suunnittelutyöt. Nämä toimet edellyttävät ohjelmiston lisäyksikköjen määrittämistä ja niiden kustannusten arvioimista.

8. Rakennusvaihe 101 Kustannusarvioiden täytyy sisältyä alkuperäiseen projektisuunnitelmaan, ja projektin sidosryhmien pitää ehkä tarkistaa niitä ja hankkia niille uudelleen johdon hyväksyntä. Työyksikköjen suunnittelu Tarkistetaan teknisen suunnittelun aikana kehitetty ohjelma-arkkitehtuuri ja dokumentoidaan yksityiskohtaisesti jokainen työyksikkö. On tärkeää katselmoida tekninen suunnittelu ennen yksittäisten työyksikköjen suunnittelua. Vertaillaan ongelmien havaitsemiseksi ja ratkaisemiseksi todennäköisiä riskialueita ja otetaan mahdolliset aikatauluvaikutukset huomioon mahdollisimman aikaisessa vaiheessa. Tietokantasuunnitelman viimeistely Dokumentoidaan loogiset tietonäkymät, fyysiset tietokannat tai tietorakenteet ja kunkin työyksikön käyttämät tietoalueet ja annetaan dokumentaatio ohjelmoijien käyttöön. Rakennetaan tietorakenteet ympäristö- tai tekniikkatyökaluilla, joiden käytöstä sovittiin aikaisemmissa vaiheissa. Suunnittelukatselmuksen suorittaminen Jokainen suunnittelija käy työyksikön suunnittelun läpi loppukäyttäjien, sovellusarkkitehtien, kollegoiden sekä ohjelmointipäällikön ja koko ohjelmointitiimin kanssa. Tällä katselmuksella varmistetaan, että suunnittelu vastaa järjestelmän toiminnallisia ja laatuvaatimuksia, että ohjelmoijat ymmärtävät vaatimukset ja että suunnittelu on teknisesti toteutettavissa ja toimiva. Suunnittelukatselmus ei välttämättä ole ainutkertainen tapahtuma, sillä voi olla järkevää pitää useita katselmuksia yleisön ja kunkin katselmuksen tarkoituksen mukaan. Moduulisuunnittelun iterointi Ei ole lainkaan epätavallista, että suunnittelukatselmuksen jälkeen prosessin eri vaiheita toistetaan useammankin kerran. Suunnittele ja parantele on varsin tavallinen iteratiivinen prosessi, jonka avulla projektitiimi pääsee yhä lähemmäksi järjestelmän varsinaista tavoitetta, ennen kuin sen tarvitsee tuottaa yhtäkään koodiriviä. Projektinhallinnan perinteisessä vesiputous-menetelmässä, jossa uusi vaihe aloitettiin vasta edellisen päätyttyä, ei koskaan huomioitu iterointia.

102 8. Rakennusvaihe Iteroiva menetelmä on kehittynyt, ja sitä on ensin käytetty nopean sovelluskehityksen metodologioiden (nopeaa sovelluskehitystä käsitellaan tarkemmin luvussa 12) ja olio-ohjelmoinnin yhteydessä. Nykyisin useimmissa projektimetodologioissa käytetään vesiputous- ja iteroivan menetelmän yhdistelmää. Yhteisen testimateriaalin valmistelu Rakennetaan mastertietokanta työyksikköjen testausta varten. Tämän tietokannan täytyy pysyä erillään kaikista muista tietokannoista, jotta pystytään minimoimaan uuden järjestelmän kehityksen ja testaamisen vaikutukset todelliseen, käytössä olevaan liiketoimintaympäristöön. Kehitetään menetelmä tai ohjelmat, joilla päivitetään testaustietoja jokaisen yksikön vaatimien ainutlaatuisten olosuhteiden testaamiseksi. Valmistellaan testimateriaali, jolla voidaan täysin kattavasti testata kaikki yksittäisen moduulin toimintaolosuhteet, ja dokumentoidaan oletetut tulokset. Valmistellaan testausohjeet, kuten testiskenaariot tai komentojonot ja mahdolliset esimerkkidokumentit käytettäviksi yksikköjen testaamisessa. Ohjelmointi Ohjelmointivaiheessa ohjelmoijat kirjoittavat koodin, etsivät siitä virheet ja toimittavat testatun ja suorittamiskelpoisen koodin sovellusta varten. Tässä vaiheessa myös integroidaan kaikki sellaiset moduulit, jotka täytyy integroida jonkin loogisen työyksikön tai sovelluksen valmiiksi saamiseksi. Kirjoitetaan ja tarkastetaan koodi, minkä jälkeen ohjelmoijat voivat suorittaa rakennusvaiheen ensimmäiset testit. Suoritetaan yksikkö- ja jonotestaus loogisille ohjelma- ja komponenttiryhmille, verrataan saatuja tuloksia oletettuihin tuloksiin ja korjataan mahdolliset virheet. Työyksikköjen luominen ja koodaus Koodinkirjoittamisprosessi muuntaa loogisen moduulisuunnittelun varsinaiseksi fyysiseksi sovellukseksi, jonka tietokone suorittaa. Prosessin aikana kirjoitetaan sovellus korkean tason ohjelmointikielellä tai -työkalulla, kirjoitetaan välimäärittelyt koodinkehitintä varten tai kirjoitetaan työnohjauslauseet keskuskonesovellukselle. Tulokset tarkastetaan, ja ohjelmoija poistaa kaikki tässä vaiheessa löytämänsä syntaksi- tai suoritusvirheet.

8. Rakennusvaihe 103 Testimateriaalin valmistelu Valmistellaan riittävästi testimateriaalia, jotta koodi voidaan testata perusteellisesti. Testimateriaalin valmistelu on erittäin riippuvainen moduulisuunnitteluvaiheessa kehitetystä yhteisestä testimateriaalista. Tiimi suunnittelee testimateriaalinsa yhteisen testimateriaalin pohjalta sekä laatii ja dokumentoi oletetut tulokset. Koodikatselmus Koodikatselmukseen osallistuvat koodin kirjoittanut ohjelmoija, työyksikön suunnittelija ja mahdollisesti pari muuta ohjelmoijaa. Koodikatselmus suoritetaan useista eri syistä. Yksi syy on sen varmistaminen, että koodi vastaa tarkasti suunnittelua. Toinen syy on koodin virheiden löytäminen aikaisessa vaiheessa. Lisäksi sellaiset koodikatselmukset, joissa kollegat tarkastavat toistensa työtä, voivat olla ratkaisevan tärkeitä ohjelman kokonaislaadun varmistamisen kannalta. Koodikatselmukset myös varmistavat, että luotu koodi noudattaa kaikkia koodausstandardeja. Yksikkö- ja jonotestaus Yksikkö- ja jonotestit tuottavat virheetöntä koodia, joka käsittelee tietoa tarkasti, luotettavasti ja määrittelyjen mukaisesti. Yksikkötestauksessa ohjelmoija vertaa testin tuloksia oletettuihin tuloksiin ja korjaa löytämänsä virheet. Jonotesti todentaa ohjelmien tai sovelluksen komponenttien välisen viestinnän ja edeltää testausvaiheen integrointitestausta. Jonotestaus suoritetaan verkkoasemien välillä sekä keskustelun kaikkien näyttöjen tai syöttöruutujen kesken. Roolit Rakennusvaiheen roolit on kuvailtu tarkemmin edeltävissä luvuissa. Suunnittelija Ohjelmoija Projektin johto Tekninen arkkitehti Testaaja

104 8. Rakennusvaihe Resurssit Suunnitteludokumentti Suunnitteludokumentti sisältää sovellusarkkitehtuurin, sovellusvirran, tietokantasuunnitelman, käyttöliittymäsuunnitelman ja työnkulkukaavion ja/tai viittaa niihin. Suunnitteludokumentin osat, joita käytetään rakennusvaiheen resursseina, ovat tietokantasuunnitelma tai tietohakemisto, käyttöliittymäsuunnitelma ja työnkulkukaavio. Tuotteet Koodi Esimerkiksi ohjelman lähde-, olio- ja/tai suoritettava koodi, työnohjauskieli (JCL), kannankuvauskieli (DDL) tai HTML-kieli, jotka toteuttavat ohjelmointityöyksiköt. Työyksiköt Työyksiköt ovat moduulisuunnittelun tuotteita, ja niitä käytetään koodinkehityksen pohjana. Työyksiköt kehitetään sovellusohjelmia, erityisiä muunto-ohjelmia ja testauksessa mahdollisesti tarvittavia apuohjelmia varten. Lisäksi esimerkiksi eräajotöiden valvonnalle, käyttöliittymämäärittelyille ja kannankuvauskielille kehitetään määritelmäkoodi. Testaustietokanta Testaustietokanta sisältää yhteistä testimateriaalia, joka on kehitetty yksikkötestauksen laadunvalvontaa varten.

8. Rakennusvaihe 105 Yhteistä testimateriaalia pitää tarvittaessa muokata yksittäisten työyksikköjen olosuhteiden mukaiseksi. Yksikkö/jonotestien tulokset Yksikkö- ja jonotesteistä (jos jonotestejä on käytetty) saadut tulokset dokumentoidaan ja säilytetään osana järjestelmädokumentaatiota. Välietapit Koodikatselmus valmis Rakennusvaiheen aikana tuotettu koodi on katselmoitu. Jonotestin hyväksyminen Jonotestin hyväksyminen merkitsee, että jonotestin tulokset on hyväksytty ja että yksikkötestit on saatu valmiiksi. Työkalut Rakennusvaiheessa käytettäviä työkaluja on liikaa lueteltavaksi, ja ne valitaan subjektiivisin perustein. Projektitiimin työkaluja ovat tässä vaiheessa pääasiassa projektiympäristön edellyttämät ohjelmointikielet, kääntäjät ja testausvälineet. Testausvälineitä käsitellään tarkemmin seuraavassa luvussa.

106 8. Rakennusvaihe