581260-4 Ohjelmistotuotantoprojekti:
projektityöohje

Jukka Paakki

0. Yleistä

Tietojenkäsittelytieteen laitoksen ohjelmistotuotannon opetuksessa ryhmätyönä tehtävällä Ohjelmistotuotantoprojektilla (cl, 6 ov) on keskeinen asema. Työn tarkoituksena on harjaannuttaa opiskelijoita (a) ohjelmistotuotannon tekniikoihin, (b) ryhmätyöskentelyyn, (c) tavoitteelliseen projektityöhön sekä (d) ohjelmistotuotteen ja -prosessin dokumentointiin. Töiden aiheet vaihtelevat, mutta useimmiten tavoitteena on määritellä, suunnitella, toteuttaa ja testata jokin epätriviaali ohjelmisto(komponentti).

Vaikka eri ryhmien konkreettiset aiheet ovatkin erilaiset, on kaikissa ohjelmistoprojekteissa paljon yhteistä: Projektityöhön, tuotantoprosessiin ja dokumentointiin liittyvät ongelmat, tehtävät ja vakiintuneet käytännöt ovat useimmiten varsin yleisiä soveltuen siten minkä tahansa ohjelmistoprojektin pohjaksi. Tässä ohjeessa annetaan yleiset toimintaperiaatteet, joita tulee soveltaen noudattaa laitoksen kaikissa ohjelmistotuotantoprojekteissa. Ohje on vain suppea tiivistelmä ohjelmistotuotannon joistakin hyvistä periaatteista, joita kaikkia tulee tietenkin noudattaa jokaisessa projektiryhmässä. Tarkempaa tietoa tästä vakiintuneesta "kansanperinteestä" löytyy kurssin Ohjelmistotuotanto (cl, 4 ov) materiaalista, joka perustuu mm. seuraaviin lähteisiin:

1. Projektin aloittaminen

Projekti aloitetaan ryhmän järjestäytymisellä ja projektisuunnitelman laatimisella. Järjestäytymisen yhteydessä projektin asiakkaat ja ohjaaja esittelevät aiheen opiskelijaryhmälle ja jakavat tarvittavan taustamateriaalin. Lisäksi sovitaan mm. seuraavista käytännön seikoista:
  1. Eri henkilöiden roolit projektissa. Jokaisella työllä on ns. valvoja, joka projektin kannalta on asiakkaan roolissa: hän on tilannut projektiryhmältä jonkin tuotteen. Ryhmän on pyrittävä toteuttamaan asiakkaan toiveet parhaan kykynsä mukaan, ja epäselvissä tilanteissa ("ei tiedetä, mitä asiakas haluaa") on käännyttävä asiakkaan puoleen. Mikäli tuotteesta tehdään aluksi prototyyppi (esimerkiksi käyttöliittymästä), on se esitettävä asiakkaalle oikean suunnan varmistamiseksi. Ryhmän ohjaaja puolestaan on lähinnä (a) asiakkaan edustaja, (b) tekninen asiantuntija ja (c) laadun varmistaja. Ohjaaja siis avustaa kaikin tavoin projektiryhmää hallinnollisissa, ohjelmistoteknisissä ja aiheeseen liittyvissä ongelmissa, mutta hän ei osallistu varsinaiseen tuottavaan työhön.
  2. Työskentelykäytännöt. Projektityöhön liittyy kolmentyyppisiä kokouksia. Mikäli yhteiseen kokoukseen ei kulu koko sille varattua 3-4 tuntia, ei ole tietenkään järkevää istua loppuaikaa toimettomana. Aika on käytettävä hyödyllisesti projektin edistämiseen, vaikkapa tausta-aineistoon tutustumiseen tai ohjelmointiin. Ohjaaja on käytettävissä koko varatun ajan, mikä ei kuitenkaan tarkoita sitä, että ryhmän olisi oltava koko ajan koolla samassa huoneessa.

    (a) Suunnittelu- ja ideointipalavereissa suunnitellaan ryhmän yhteistyönä tuotteen jotakin osaa, sen valmistamista tai dokumentointia niin pitkälle, että tehtävä voidaan antaa joillekin ryhmän jäsenille suoritettavaksi. Palaveriin voi liittyä myös käsiteltävään aiheeseen liittyviä esitelmiä tai tehtyjen esiselvitysten raportointia. Tällaiset epämuodolliset palaverit saattavat kestää hyvinkin kauan, jopa koko ryhmän yhteisen kokoontumisajan.

    (b) Seurantakokouksissa tarkistetaan projektin eteneminen vertaamalla sitä projektisuunnitelmaan. Kokouksella on ennalta sovittu esityslista, ja siinä pidetään pöytäkirjaa (malli: liite B). Kokouksilla on puheenjohtaja ja sihteeri. Puheenjohtajan tarkastamat ja allekirjoittamat pöytäkirjat jaetaan kaikille ryhmän jäsenille ja ohjaajalle, ja ne käydään läpi aina seuraavassa seurantakokouksessa. Yleensä projektipäällikkö toimii puheenjohtajana ja sihteerin tehtävä on kiertävä, mutta ryhmässä voidaan sopia muunkinlaisesta käytännöstä. Seurantakokoukset ovat lyhyitä ja ytimekkäitä (enintään 1 tunti). Peukalosääntö: ellei jokin asia selviä 5 minuutissa, tarkempi selvitys annetaan jonkun tehtäväksi. Seurantakokouksia pidetään säännöllisesti, vähintään joka toinen viikko.

    (c) Tarkastuksissa (inspection) tarkistetaan systemaattisella tavalla jonkin ohjelmistotuotteen tai sitä kuvaavan dokumentin laatu. Osanottajat perehtyvät kohteeseen tarkasti ennen tarkastustilaisuutta. (Huom! Siis kaikki osanottajat perehtyvät.) Tarkastustilaisuuteen nimetään etukäteen puheenjohtaja (ryhmän ohjaaja), sihteeri, asiantuntija (tarkastettavan tuotteen tekijä) ja alustaja (eri henkilö kuin asiantuntija). Ryhmä käy alustajan ohjaamana läpi tarkastettavan tuotteen etsien siitä mahdollisia virheitä, jotka sihteeri kirjaa tarkastuspöytäkirjaan (malli: liite J). Asiantuntija selittää mahdolliset tekniset yksityiskohdat, joista muu tarkastusryhmä ei saa selvää. Tarkastaminen on keskittynyttä työskentelyä, jonka kestoksi suositellaan 1-2 tuntia. Löydettyjä virheitä ei korjata tarkastustilaisuudessa, vaan tarkastetun tuotteen tekijä tekee tarvittavat korjaukset sen jälkeen ja hyväksyttää korjauksensa puheenjohtajalla (so. ryhmän ohjaajalla).

  3. Kommunikointitavat. Projektin läpivienti vaatii jokaiselta ryhmän jäseneltä enemmän työaikaa kuin siihen muodollisesti varatut 6-8 tuntia viikossa. Ryhmän on sovittava, millä tavoin kommunikointi hoidetaan yhteisten tapaamisten ulkopuolella. Kommunikointiin liittyvät myös pöytäkirjojen yms. jakelu sekä projektimateriaalin säilytys. Sähköpostilista on eräs käyttökelpoinen projektin sisäinen kommunikointikanava. Erityisen tärkeää on sopia siitä, miten poissaoloista ja myöhästymisistä ilmoitetaan muulle ryhmälle ja ohjaajalle.
  4. Projektipäällikkyys. Jokaisessa projektissa on projektipäällikkö, joka pääasiassa vastaa projektin etenemisestä yhteisesti suunnitellussa ja sovitussa aikataulussa. Projektipäällikkö toimii myös linkkinä asiakkaan ja tuottajan välillä, joten yhteydenpito asiakkaaseen kanavoidaan projektipäällikön kautta. Projektipäällikkö päättää ryhmän sisäisestä tehtävänjaosta, huolehtii projektin tarvitsemien resurssien hankkimisesta ja organisoi mahdollisesti puuttuvan tiedon hankkimisen. Koska projektipäällikkö on myös projektiryhmän jäsen, hänet valitaan opiskelijajäsenten joukosta. Näin ollen ohjaaja ei ole projektipäällikkö. [Ohjaaja kuitenkin avustaa projektipäällikköä em. tehtävien hoitamisessa.] Projektipäällikkyys voi olla kiinteästi samalla henkilöllä koko projektin ajan, tai tehtävä voi kiertää ryhmän sisällä sen sopivaksi katsomalla tavalla.
Projektisuunnitelmassa kuvataan työn yleinen tarkoitus, sen jakautuminen osiin, arvioitu aikataulu ja projektiryhmän työnjako. Malli projektisuunnitelman sisällöksi on liitteessä C. Projektisuunnitelmaa pidetään ajan tasalla eli sitä päivitetään aina, kun aikataulua, työnjakoa tms. joudutaan korjaamaan.

Projektisuunnitelma annetaan asiakkaille ja laitoksen ohjelmistotuotantoprojektien vastuuhenkilölle hyväksyttäväksi. Projektin arvioinnin helpottamiseksi liitetään projektin loppuraporttiin (malli: liite I) kopio sekä ensimmäisestä hyväksytystä että viimeisestä päivitetystä projektisuunnitelmaversiosta. Huomattakoon, että projektisuunnitelman laatii projektiryhmä (projektipäällikön johtamana) eikä ohjaaja. Koska kuitenkin ohjaajalla on alussa paras näkemys tehtävän sisällöstä ja vaativuudesta, on projektiryhmän varmistettava ohjaajalta erityisesti suunnitellun aikataulun realistisuus.

2. Projektin suorittaminen

Projektin aikana ryhmä työskentelee projektisuunnitelman määräämässä järjestyksessä prosessin vaiheesta toiseen. Projektin etenemistä seurataan säännöllisillä seurantakokouksilla. Tärkeimpiin projektin etappeihin liittyy dokumentin laatiminen. Ohjaaja sekä tarvittaessa ohjelmistotuotantoprojektien vastuuhenkilö ja asiakkaat tarkastavat dokumentit ja esittävät mahdollisesti korjausvaatimuksia. Dokumentteja pidetään jatkuvasti ajan tasalla päivittämällä ne aina muutosten yhteydessä. Tällöin projektin päättyessä dokumentaatio kuvaa tuotetun ohjelmiston senhetkisen tilan. Jotta dokumentaatio olisi keskitetysti projektin hallinnassa, voidaan vastuu arkistonhoidosta antaa pysyvästi jollekin ryhmän jäsenelle.

Projektin suorittamisen aikana syntyvät tyypillisesti seuraavat tekniset dokumentit:

  1. Vaatimus(määrittely)dokumentissa kuvataan ohjelmiston pääpiirteet ja tärkeimmät toiminnot jollakin sopivalla esitystavalla. Dokumentti toimii sopimuksena asiakkaan ja projektiryhmän välillä, joten siihen on kirjattava nimenomaan asiakasta kiinnostavat asiat. Yleinen malli: liite D. Erään tuotteen vaatimusdokumentti löytyy laitoksen mikroverkosta osoitteesta q:\hytky\tvmaar.doc (MS Word) tai q:\hytky\tvmaar.ps (Postscript).
  2. Suunnitteludokumentissa kuvataan ohjelmiston tekninen arkkitehtuuri eli sen pääkomponentit ja niiden välinen vuorovaikutus jollakin sopivalla esitystavalla. Yleinen malli: liite E. Erään tuotteen suunnitteludokumentti löytyy laitoksen mikroverkosta osoitteesta q:\hytky\tvsuun.doc (MS Word) tai q:\hytky\tvsuun.ps (Postscript).
  3. Toteutusdokumentissa kuvataan suunnitelman mukaiset toteutusratkaisut ja -välineet. Dokumentti sisältää myös kuvauksen ohjelmiston testauksesta. Yleinen malli: liite F.
  4. Käyttöohje kirjoitetaan asiakasta tai muuta projektiryhmän ulkopuolista käyttäjää varten. Yleinen malli: liite G.
  5. Ylläpito-ohje mahdollistaa ohjelmiston jatkokehittämisen tai muun ylläpidon. Dokumentti tuotetaan yleensä vain niissä projekteissa, joille voidaan odottaa jatkoa myöhemmissä ohjelmistotuotantoprojekteissa. Yleinen malli: liite H.
Erityisesti projektien alkupuolella ryhmät joutuvat tutustumaan uuteen ongelmaan ja hankkimaan siihen liittyvää tietoa. Tiedonhankinta on syytä organisoida siten, että sopiva osaryhmä tutustuu aiheeseen ja esittää siitä yhteenvedon koko ryhmälle suunnittelu- ja ideointipalavereissa. Myös ryhmän ulkopuolisia asiantuntijoita, erityisesti asiakkaita, on tarvittaessa kutsuttava esitelmöimään. Ohjaaja ja projektipäällikkö järjestävät paikalle tarvittavat ulkopuoliset esitelmöijät.

Jokaisessa projektissa on läpivietävä vähintään yksi muodollinen tekninen tarkastus, jossa jostakin projektin keskeisestä dokumentista etsitään ryhmätyönä systemaattisesti virheitä. Sopivin tarkastuksen kohde on suunnitteludokumentti: projektiryhmä varmistaa suunnittelun tärkeimpien osien laadun ennen siirtymistään toteutusvaiheeseen. Myös esim. vaatimusdokumentin tai ohjelmakoodin voi tarkastaa; vaatimustarkastuksessa on asiakkaan oltava paikalla. Tarkastus on projektin keskeinen etappi, joten se sijoitetaan projektisuunnitelmaan. Huomattakoon, että vähintään ryhmä itse ja ohjaaja tarkistavat tietenkin (ehkä teknistä tarkastusta epämuodollisemmin) kaikki projektissa syntyvät dokumentit.

Jokainen ryhmän jäsen pitää kirjaa päivittäisestä työskentelystään projektin hyväksi. Työpäiväkirjoihin kirjataan, kuinka paljon mihinkin tehtävään on aikaa käytetty. Henkilökohtaiset työpäiväkirjat ja niiden projektikohtainen yhteenveto liitetään loppuraporttiin (malli: liite I).

Huoneessa A411 olevat koneet on tarkoitettu ensisijaisesti ohjelmistotuotantoprojektien käyttöön.

3. Projektin päättäminen

Projektin kunniakas päättäminen on vähintään yhtä tärkeää kuin sen innokas aloittaminen ja onnekas läpivienti. Projektin lopussa kootaan yhteen siitä saadut kokemukset paitsi siihen osallistuneiden opiksi, myös organisaation toiminnan (so. TKTL:n opetuksen) kehittämiseksi. Projektin päättämiseen liittyvät seuraavat toimenpiteet:
  1. Projektin jälkiarviointi, ns. post mortem -analyysi. Tämän suorittaa projektiryhmä keskenään etsien vastausta mm. seuraaviin kysymyksiin: mikä meni pieleen (suhteessa alussa tehtyyn suunnitelmaan tai haluttuun lopputulokseen), miksi meni pieleen, mikä onnistui hienosti, miksi onnistui hienosti, mitä ryhmä tekisi toisin seuraavassa projektissaan, mitä on opittu? Yhteenveto analyysistä liitetään projektin loppuraporttiin.
  2. Projektin loppuraportin laatiminen. Siihen kootaan yhteenveto aikaansaannoksista, kokemuksista ja tehdyn työn määrästä. Malli: liite I.
  3. Mahdollinen tulosten esittelytilaisuus järjestetään syyslukukaudella joulukuun ja kevätlukukaudella toukokuun puolivälissä. Tilaisuudessa jokainen projektiryhmä esittelee noin puolen tunnin ajan omaa tuotettaan demonstroimalla sen toimintaa. Tilaisuus on tarkoitettu laitoksen henkilökunnalle, muille projektiryhmille ja tulevien ohjelmistotuotantoprojektien opiskelijoille, joten omaa esiintymistä on syytä harjoitella etukäteen.
  4. Keväisin järjestetään laitospäivä, johon saatetaan pyytää esittelyä muutamasta parhaiten onnistuneesta edellisen syksyn ja kevään ohjelmistotuotantoprojektista.
  5. Jokaiselle projektiryhmälle järjestetään palautetilaisuus (syksyn projekteille tammikuussa ja kevään projekteille kesäkuussa), jossa ohjaaja, ohjelmistotuotantoprojektien vastuuhenkilö ja asiakkaat arvioivat projektin onnistumista ja perustelevat siitä annettua arvosanaa.

4. Laitoksen ulkopuoliset projektit

Ohjelmistotuotantoprojekti on mahdollista suorittaa myös laitoksen ulkopuolella, mikäli (a) opiskelijalla on mittava (vähintään 5 vuoden) projektityökokemus tai (b) projektiryhmä työskentelee kokonaisuudessaan jossakin ohjelmistoyrityksessä jonkun laitoksen hyväksymän valvojan alaisuudessa. Kummassakin tapauksessa työn on oltava ohjelmistoteknisesti järkevä, ja se on dokumentoitava erikseen sovittavassa aikataulussa samalla tavalla kuin laitoksellakin suoritettavat projektit.

5. Arvosteluperiaatteet

Ohjelmistotuotantoprojektia arvioitaessa kiinnitetään huomiota seuraaviin seikkoihin: Opiskelijoiden projektista saamaan arvosanaan vaikuttaa ensisijaisesti koko ryhmän yhteisesti saama arvosana. Tähän perusarvosanaan lisätään tai siitä vähennetään jokaisen opiskelijan henkilökohtaisen työpanoksen laatu. Projektitöiden arvostelu on ensisijaisesti ohjaajien tehtävä. Suositeltavaa on, että myös projektiryhmän opiskelijat arvioivat toistensa työskentelyä luottamuksellisesti ohjaajalle; tällöin tämäkin arviointi vaikuttaa arvosanaan.

6. Yhteenveto tuotettavista dokumenteista ja aikataulusta

Tämän ohjeen liitteenä olevat dokumenttimallit ovat yleispäteviä ja vaativat siten muokkaamista kunkin projektin tavoitteiden ja työskentelytapojen mukaan. Mallien orjallinen noudattaminen ei ole useimmiten edes tarkoituksenmukaista: sellaisia mallidokumenttien osia, jotka eivät ole oleellisia nimenomaan omalle projektille, ei pidä väkisin ottaa mukaan omiin dokumentteihin. Sen sijaan dokumentointi itsessään on välttämätöntä, joten jokaisen projektiryhmän on kiinnitettävä erityistä huomiota siihen, kuinka se toimintansa ja tuotteensa kuvaa.

Tarkempia dokumentointiohjeita löytyy alan oppikirjoista sekä erilaisista standardeista. Ellei projektiryhmä tiedä, kuinka sen tulisi tuotteensa tai toimintansa dokumentoida, on siis syytä antaa joidenkin ryhmän jäsenten tehtäväksi etsiä kirjallisuudesta sopivia malleja ja suodattaa niistä ehdotus omalle projektille! Lyhyen ohjelmistoelinkaaren (esim. vain määrittely ja suunnittelu) kattavissa projekteissa laaditaan tietysti vain ko. elinkaarelle relevantit dokumentit. Projektiryhmien on pidettävä sopiva tasapaino dokumentoinnin ja konstruktiivisen työn välillä; liiallinen dokumenttien hiominen ei ole tarkoituksenmukaista, mikäli sillä vaarannetaan ohjelmiston saaminen valmiiksi.

Jokaisen projektin aikana päivitetyn dokumentin alkuun on syytä liittää sen versiohistoria (malli: liite A).

Projektiryhmä pitää jatkuvasti ajan tasalla kattavaa dokumenttiarkistoa. Kaikki dokumentit jätetään paperimuodossa ohjaajalle sekä tarvittaessa myös ohjelmistotuotantoprojektien vastuuhenkilölle ja asiakkaille tarkastettaviksi. Yleensä vastuuhenkilö ja asiakkaat haluavat luettavakseen ainakin projektisuunnitelman, vaatimusdokumentin ja loppuraportin sekä asiakas lisäksi käyttöohjeen. Mikäli lukijat haluavat, on dokumentit annettava heille myös sopivassa elektronisessa muodossa.

Jokainen projektiryhmä määrittelee oman aikataulunsa ohjelmistontuottamisprosessilleen ja siihen liittyvälle dokumentoinnille. Projektisuunnitelma on syytä tehdä nopeasti, kahden ensimmäisen viikon aikana. Dokumentit sijoittuvat projektin päävaiheita välittömästi seuraaviin etappeihin (milestone), joten niiden valmistumisaikataulu kiinnitetään heti projektisuunnitelmassa. Ohjaajien tulee tarkistaa, että suunniteltu dokumentointiaikataulu on järkevä ja että sitä todella noudatetaan.

Projektiryhmien työ käynnistyy normaaliin tapaan lukukauden alussa, ja niiden varsinaiset kokoukset päättyvät samaan aikaan kuin laitoksen muukin opetus, eli syksyllä noin 10.12 ja keväällä noin 10.5. Tämä on myös takaraja itse ohjelmiston valmistumiselle, jotta sitä voitaisiin demonstroida yhteisessä esittelytilaisuudessa. Viimeisiä dokumentteja voivat projektiryhmät hioa vielä senkin jälkeen, mikäli ryhmä on ohjaajan ja asiakkaan kanssa niin sopinut. Kaikki projektit on kuitenkin lopullisesti päätettävä syksyisin viimeistään 31.12 ja keväisin viimeistään 31.5.

Aikaisemmissa ohjelmistotuotantoprojekteissa on tuotettu lukuisia korkeatasoisia ohjelmistodokumentteja. Parhaasta päästä on seuraava, johon tutustumalla nykyiset projektiryhmät voivat saada vahvistusta hypoteesille: laadukas dokumentointi ei ole mahdotonta eikä aina edes välttämätön paha.

Timo Harjunen, Jussi Ollikainen, Martti Söderlund, Katri Turunen, Antti Viljamaa, Jukka Viljamaa: Oliokielten toteutus - selain. Raportti C-1995-33, Helsingin yliopisto, tietojenkäsittelytieteen laitos, 1995.


Liitteet: dokumenttimallit

Liite A. Dokumentin versiohistoria

 ====================================================================
|  Versio  |      Tekijä       |   Päiväys   |     Muutetut osat     |
 ====================================================================
|   0.1    |    Aina Ahkera    |  1.10.1997  |     Luku 2.3          |
 --------------------------------------------------------------------
|   0.2    |    Matti Mainio   | 24.10.1997  |     Luvut 2.1 ja 3.3  |
 --------------------------------------------------------------------
|   ...    |        ...        |     ...     |         ...           |
 --------------------------------------------------------------------
|   1.5    |    Jussi Juonio   | 20.12.1997  |     Liitteet A ja B   |
 --------------------------------------------------------------------

Liite B. Seurantakokouksen pöytäkirja

  1. Edellisen kokouksen pöytäkirjan tarkastaminen
  2. Projektin tilannekatsaus
  3. Henkilökohtaiset tilannekatsaukset
  4. Toimenpiteet
  5. Seuraavan kokouksen ajankohta
  6. Kokouksen päättäminen

Liite C. Projektisuunnitelma

  1. Tausta
  2. Tavoitteet ja rajaukset
  3. Ympäristö
  4. Organisaatio
  5. Toimintasuunnitelma
  6. Menetelmät ja standardit

Liite D. Vaatimusdokumentti

1. Johdanto
1.1. Tuotteen tausta ja tarkoitus
1.2. Mahdollinen erikoissanasto ja käytetyt lyhenteet
1.3. Yleiskatsaus dokumenttiin
[Mikäli tuotettava ohjelmisto perustuu johonkin olemassaolevaan järjestelmään, niin:
2. Kuvaus perusjärjestelmästä + viitteet sen dokumentaatioon]
2. Yleiskuvaus
2.1. Yleinen toiminta ("mitä järjestelmän pitäisi tehdä?")
2.2. Tuotteen pääasiallinen toimintaympäristö
2.3. Tuotteen käyttäjäkunta
2.4. Katsaus muihin vastaaviin järjestelmiin
3. Tietokuvaus
3.1. Tietosisältö
3.2. Tietokantamalli
3.3. Kapasiteetti- ja saantiaikavaatimukset
4. Toimintokuvaus (esim. OMT-menetelmällä tai jollakin vähemmän teknisellä menetelmällä)
4.1. Järjestelmän arkkitehtuuri
4.2. Komponentti 1
4.3. - 4.x. Komponentti 2 - Komponentti n
5. Järjestelmän ulkoiset liittymät
5.1. Käyttöliittymä
5.2. Laitteistoliittymät
5.3. Ohjelmistoliittymät
5.4. Tietoliikenneliittymät
5.5. Alustustiedot
6. Muut ominaisuudet
6.1. Suorituskyky
6.2. Käytettävyys, virheistä toipuminen, turvallisuus, suojaukset, varmistuskopiointi
6.3. Ylläpidettävyys (ohjelmointityyliohjeet yms.)
7. Testaus
8. Rajoitteet suunnittelulle ja toteutukselle
8.1. Noudatettavat standardit
8.2. Laitteistorajoitteet
8.3. Ohjelmistorajoitteet (ohjelmointikielet, käyttöjärjestelmät, käyttöliittymät,...)
Lähdeluettelo
Liitteet:

Liite E. Suunnitteludokumentti

1. Johdanto
        1.1. Tuotteen tausta ja tarkoitus
        1.2. Mahdollinen erikoissanasto ja käytetyt lyhenteet
        1.3. Yleiskatsaus dokumenttiin
2.Järjestelmän yleiskuvaus
        2.1. Sovellusalue
        2.2. Koko järjestelmä ja ohjelmiston rooli siinä
3. Vaatimusmäärittely ja siihen tehdyt muutokset
        - viite vaatimusdokumenttiin
        - luettelo projektin aikana muuttuneista dokumentin luvuista
        3.1. Rajaukset
        3.2. Täydennykset
4. Arkkitehtuurin kuvaus
        4.1. Ratkaisun "filosofia" ja ohjelmiston toimintaperiaate
        4.2. Moduulit ja niiden väliset suhteet
        4.3. Tietokanta-arkkitehtuuri
        4.4. Moduulikuvaukset (esim. OMT-menetelmällä)
                4.4.1. Moduuli 1
                        4.4.1.1. Yleiskuvaus
                        4.4.1.2. Tietorakenteet (attribuutit)
                        4.4.1.3. Toiminnot (operaatiot)
                        4.4.1.4 Erityiset tekniset suunnitteluratkaisut
                                - olioperustaiset suunnittelumallit
                        4.4.1.5. Virhetilanteiden käsittely
                        4.4.1.6. Ratkaisuvaihtoehtoja (miksi hylättiin?)
                        4.4.1.7. Ratkaisun rajoitukset
                4.4.2. - 4.4.x. Moduuli 2 - Moduuli n
5. Käyttöliittymä (ellei ole jo vaatimusdokumentissa kuvattuna)
        - mahdollisen prototyypin kuvaus
        - kuvaus tyypillisistä käyttöskenaarioista
        - kuvia hahmotellusta käyttöliittymästä (prototyypistä saatuina tai piirrettyinä)
6. Rajoitteet toteutukselle
        6.1. Noudatettavat standardit
        6.2. Ohjelmointikielet, käyttöjärjestelmät, ...
        6.3. Muut tarvittavat apuohjelmat
        6.4. Arvio toteutuksen koosta (esim. koodirivien määrä)
        6.5. Ohjelmointityyli (nimeämiskäytännöt, kommentointi, rajapinnat, ...)
Lähdeluettelo
Liitteet:
        - kaavioissa käytettyjen symbolien kuvaus
        - ohjelmiston sisäisten (komento)kielten syntaksi
        - esimerkkejä ohjelmiston sisäisistä tietorakenteista

Liite F. Toteutusdokumentti

1. Johdanto
1.1. Tuotteen tausta ja tarkoitus
1.2. Mahdollinen erikoissanasto ja käytetyt lyhenteet
1.3. Yleiskatsaus dokumenttiin
2. Vaatimusmäärittely, suunnittelu ja niihin tehdyt muutokset
2.1. Rajaukset
2.2. Täydennykset
3. Toteutusratkaisut
3.1. Ratkaisun "filosofia" ja toteutuksen toimintaperiaate
3.2. Käytetyt ohjelmointimenetelmät
3.3. Käytetyt ohjelmointikielet
3.4. Käytetyt (luokka)kirjastot, sovelluskehittimet ja sovelluskehykset
3.5. Muut käytetyt aputyökalut
3.6. Toteutuskokemuksia
3.7. Versionhallinta
4. Moduulitestaus (yksikkötestaus)
4.1. Moduulin 1 testaus
4.2. - 4.x. Moduulin 2 testaus - Moduulin n testaus
5. Järjestelmätestaus (validointitestaus)
6. Suorituskykyanalyysi
7. Jatkokehitys
7.1. Toteuttamatta jääneet piirteet
7.2. Hyödylliset lisäpiirteet
Lähdeluettelo
Liitteet:

Liite G. Käyttöohje

Otsikkosivu
1. Johdanto tuotteeseen
1.1. Tuotteen käyttötarkoitus
1.2. Oletettu käyttäjäprofiili ja käyttötapa
1.3. Käyttöympäristö (laitteisto, käyttöjärjestelmä, apukirjastot, ...)
1.4. Viitteet muihin käytössä mahdollisesti tarvittaviin dokumentteihin
1.5. Ohjeessa käytetyt kaaviot, symbolit ja lyhenteet
2. Yleiset rajoitteet
3. Takuut ja sitoumukset
4. Tuotteen käyttö
4.1. Ohjelman käytössä tarvittava apumateriaali
4.2. Alustavat toimenpiteet (viite asennusohjeeseen, luku 7) ja ohjelmiston käynnistys
4.3. Pikaopas
4.4. Ohjeet toimintojen suorittamiseksi
4.5. Käytettävissä olevat optiot
4.6. Toimintojen peruutusmahdollisuudet
4.7. Suorituksen tilan tallettaminen ja uudelleenkäynnistys
5. Virheilmoitukset
6. Toiminnalliset erot erilaisissa käyttöympäristöissä (laitteisto, käyttöjärjestelmä, ikkunointijärjestelmä, ...)
7. Asennusohje
Lähdeluettelo
Sanasto
Hakemisto
Liitteet:

Liite H. Ylläpito-ohje

1. Johdanto
1.1. Tuotteen identifiointi (tuotenimi, versio, ...)
1.2. Erikoissanasto, lyhenteet
1.3. Ohjeessa käytetyt kaaviot ja symbolit
2. Toiminnallinen yleiskuvaus
2.1. Tuotteen tarkoitus ja tavoitteet
2.2. Yleisarkkitehtuuri (pääkomponentit)
2.3. Looginen tieto(kanta)ratkaisu
2.4. Käyttöliittymän kuvaus
2.5. Liittymät muihin järjestelmiin
3. Toimintaympäristö
3.1. Laitteisto ja prosessori
3.2. Käyttöjärjestelmä
3.3. Ohjelmointikielet ja niiden kääntäjät tai tulkit (versioineen)
3.4. Muut käytetyt/vaadittavat CASE-työkalut
4. Toteutuksen kuvaus
4.1. Perustelut suunnittelu- ja toteutusratkaisuille
4.2. Päämoduulien kuvaus (tai viite esim. suunnitteludokumenttiin)
4.3. Moduulirajapintojen kuvaus (tai viite esim. suunnitteludokumenttiin)
5. Ylläpidossa tarvittavat tukiohjelmat
5.1. Testaustyökalut
5.2. Ylläpitotyökalut
5.3. Sovelluskehittimet, sovelluskehykset ja (luokka)kirjastot
5.4. Metriikkatyökalut
5.5. Dokumentointityökalut
6. Noudatettavat standardit
7. Ylläpito-ohjeita
Lähdeluettelo
Liitteet:

Liite I. Projektin loppuraportti

1. Johdanto
1.1. Tausta
  • asiakkaat
  • ongelma, jota tuotteen avulla ratkotaan
1.2. Raportissa käytettävät käsitteet ja termit
2. Yleiskuvaus ohjelmistosta
2.1. Tehtävä
2.2. Toimintaympäristö
2.3. Rajoitukset
3. Projektiorganisaatio
  • ryhmän jäsenet
  • ohjaaja
  • projektipäällikkö
  • muut erikoisroolit
4. Projektin eteneminen
4.1. Ensimmäinen hyväksytty versio projektisuunnitelmasta
4.2. Viimeinen versio projektisuunnitelmasta
4.3. Viitteet tuotettuihin dokumentteihin
5. Projektin hallinta
5.1. Kokouspöytäkirjat
5.2. Tarkastuspöytäkirjat
5.3. Työmäärät vaiheittain
  • yhteenvedot projektitasolla ja henkilötasolla
6. Jälkianalyysikokouksen (post mortem) yhteenveto
  • mikä meni pieleen ja miksi?
  • mikä onnistui hyvin?
  • mitä olisi pitänyt tehdä toisin?
  • mitä opittiin?
Liitteet:
  • henkilökohtaiset työpäiväkirjat
  • viikkoraportit

Liite J1. Tarkastuspöytäkirja:

löydettyjen virheiden lista

Katso esim. kurssin Ohjelmistotuotanto luentomappi, A412.

Liite J2. Tarkastuspöytäkirja:

löydettyjen virheiden yhteenveto

Katso esim. kurssin Ohjelmistotuotanto luentomappi, A412.