Toiminnallinen määrittely Projektin nimi versio 2.6 TTY Ohjelmistotekniikka OHJ-0000 Kurssin nimi Tekijä: <vastuuhenkilö> Tulostettu: 22.09.2009 13:36 Jakelu: <kenelle jaellaan (ja ryhmän jäsenet)> Dokumentin tila: työversio Muokattu: 22.09.2009 13:36
VERSIOHISTORIA Versio Päiväys Tekijät Selite (muutokset, korjaukset...) 1.0 18.8.?? Ikonen Alkuperäinen 1.1 5.8.1998 Ikonen Jari 3. ja 4. luvun muutokset 1.2 19.8.1998 Peltonen 3. ja 4. luvun uudelleen läpik. 2.0 3.9.2002 Haikala Limitetty (luovasti) yhteen projektityökurssin dokumentointimallin kanssa. 2.1 10.9.2002 Koivisto Elina Yhdistetty luvut 2.4 ja 2.5. Korjattu tekstiä ja muotoilua. Siirretty asioita tsekkilistaan (listattu erikseen). Päivitetty ajantasalle projektityökurssin Tensun dokumenttirunkojen (28.8.2002) mukaisesti. 2.2 14.10.2002 Koivisto Elina Ensimmäisen katselmoinnin pikkukorjaukset. 2.3 05.09.2007 Makkonen Markus Korjattu muotoiluja. 2.4 01.09.2008 Makkonen Markus Muutoksia ja lisäyksiä kohtiin 2.4, 2.5 ja 6.5. 2.5 24.11.2008 Makkonen Markus Korjattu kohdan 1.5 muotoilu. 2.6 22.09.2009 Makkonen Markus Muokattu kohdan 7.1 otsikkoa. Muokattu: 22.09.2009 13:36 2/26
SISÄLLYSLUETTELO 1. JOHDANTO...6 1.1 TARKOITUS JA KATTAVUUS...6 1.2 TUOTE...6 1.3 MÄÄRITELMÄT, TERMIT JA LYHENTEET...6 1.4 VIITTEET...7 1.5 YLEISKATSAUS DOKUMENTTIIN...7 2. YLEISKUVAUS...9 2.1 YMPÄRISTÖ...9 2.2 TOIMINTA...9 2.3 KÄYTTÄJÄT...9 2.4 YLEISET RAJOITTEET...9 2.5 OLETUKSET JA RIIPPUVUUDET...10 3. TIEDOT JA TIETOKANNAT...11 3.1 TIETOSISÄLTÖ...11 3.1.1 Käsite X (kukin omana alakohtanansa)...13 3.2 KÄYTTÖINTENSITEETTI...14 3.3 KAPASITEETTIVAATIMUKSET...14 3.4 TIEDOSTOT JA ASETUSTIEDOSTOT...15 4. TOIMINNOT...16 4.1 YLEISTÄ (TAI JOKU MUU SOPIVA OTSIKKO)...16 4.2 JÄRJESTELMÄN TOIMINNOT...17 5. ULKOISET LIITTYMÄT...18 5.1 LAITTEISTOLIITTYMÄT...18 5.2 OHJELMISTOLIITTYMÄT...18 5.3 TIETOLIIKENNELIITTYMÄT...18 6. MUUT OMINAISUUDET...19 6.1 SUORITUSKYKY JA VASTEAJAT...19 6.2 KÄYTETTÄVYYS, TOIPUMINEN, TURVALLISUUS, SUOJAUKSET...19 6.3 YLLÄPIDETTÄVYYS...20 Muokattu: 22.09.2009 13:36 3/26
6.4 SIIRRETTÄVYYS JA YHTEENSOPIVUUS...20 6.5 KÄYTTÄJÄN YLLÄPITOTOIMET...20 7. SUUNNITTELURAJOITTEET...22 7.1 STANDARDIT JA SUOSITUKSET...22 7.2 LAITTEISTORAJOITTEET...22 7.3 OHJELMISTORAJOITTEET...22 7.4 MUUT RAJOITTEET...23 8. HYLÄTYT RATKAISUVAIHTOEHDOT...24 9. JATKOKEHITYSAJATUKSIA...25 10. VIELÄ AVOIMET ASIAT...26 Muokattu: 22.09.2009 13:36 4/26
SOVELLUSOHJE TTY:N OHJELMISTOTEKNIIKAN LAITOKSEN KURSSEILLA Täysin yleisen kaikkeen soveltuvan dokumentointimallin tekeminen on mahdotonta. Siksi tässä esitettyä mallia voi soveltaa luovasti. Esimerkiksi uusia alakohtia kannattaa tarvittaessa lisätä jäsentelyn selkeyttämiseksi. Jos johonkin kohtaan ei tule mitään, se voidaan jättää pois. Ainakin päälukujen kohdalla luvun otsake kannattaa kuitenkin jättää paikoilleen, jotta päälukujen numerointi ei muutu. Tekstiksi voi kirjoittaa vaikkapa: Ei merkitystä tässä dokumentissa. Näin lukijakin huomaa, että kohta ei ole vahingossa jäänyt tyhjäksi. Jos aiot tehdä merkittäviä muutoksia rakenteeseen, keskustele niistä harjoitustyön ohjaajan kanssa. Dokumentissa voi olla myös kuva-, taulukko- ja liiteluettelo, jos niitä tarvitaan. Määrittelydokumentin tärkeimmät asiat ovat: toiminnot tarkasti esitettyinä sekä käyttöliittymän ja tietokannan kuvaus. Siinä tulee kertoa se, mitä sovellus tekee, ja myös se mitä sovellus ei saa tehdä. Dokumentin tarkoitus on olla apuväline tilaajan ja toimittajan keskinäisessä työssä yhteisen päämäärän hyväksi. Toiminnallisen määrittelyn perusteella: 1. Todetaan, että projekti voidaan (tai ei voida) viedä läpi. 2. Toteuttaja tietää mitä tehdään. 3. Asiakas tietää mitä saa. 4. Epäselvät asiat ja riskit tulevat tunnistetuiksi. 5. Käsitteet ja termit täsmentyvät. Epämääräiset ilmaisut (melkein, yleensä jne.) määrittelydokumentissa tarkoittavat, ettei ole päästy yksimielisyyteen kyseisestä asiasta. Tällainen "katsotaan myöhemmin" - asenne kolahtaa kuitenkin ennen pitkää omaan nilkkaan. Myös kaikki itsestäänselvyydet on muistettava mainita. Jollei jotain seikkaa ole määritelty tarkasti tai mainittu lainkaan, lukija tulkitsee sen niin kuin itse parhaaksi näkee. Kaikki käyttäjälle näkyvät asiat on kiinnitettävä määrittelyvaiheessa siis myös käyttöliittymä virheilmoituksineen. "Suunnittelu- ja toteutusvaran" jättäminen johtaa vain vaikeuksiin. Dokumentin kieliasuun, oikeinkirjoitukseen ja ilmaisun täsmällisyyteen tulee kiinnittää erityistä huomiota. Dokumentti kirjoitetaan sujuvalla ja selkeällä suomen tai englannin kielellä. Sekalanguagen (esim. Jatka ja Exit samassa yhteydessä) käyttö on kielletty. Jos termille ei ole vakiintunutta suomennosta, käytetään vastaavaa englanninkielistä termiä Muokattu: 22.09.2009 13:36 5/26
1. JOHDANTO 1.1 Tarkoitus ja kattavuus 1.2 Tuote Tähän kirjoitetaan miksi tämä dokumentti on tehty ja kenelle se on tarkoitettu. Esimerkiksi oman firman suunnitteluporukalle tai/ja maallikkoasiakkaalle tai jollekin muulle taholle. Kohdassa myös määritellään kattaako määrittely koko tuotteen toiminnallisuuden, vai vain jonkin osan siitä. Esimerkiksi: Käyttöliittymä on jätetty pois tästä dokumentista ja se on kuvattu alustavassa käyttöohjeessa [P-97-1234B]. Tähän kirjataan rakennettavan tuotteen nimi, tarkoitus ja tavoitteet. Kohdassa kuvataan yleisellä tasolla toimintaympäristö ja voidaan myös kertoa tuotteen tarjoamista hyödyistä käyttäjille. Esimerkiksi: Sovellus toimii PC:llä Windows98-käyttöjärjestelmässä ja sen käyttämiseen tarvitaan lähiverkko. 1.3 Määritelmät, termit ja lyhenteet Tässä listataan sanat ja käsitteet, jotka eivät ole lukijalle tuttuja, tai joiden voidaan ajatella tuottavan sekaannuksia erikoisella käytöllään, tai jotka eivät yleisesti ole käytössä tai tiedossa. Asiat kannattaa esittää tässä luettelossa aakkosjärjestyksessä. Esimerkiksi ASCII-merkistöstä selitetään, mitä se tarkoittaa, ja ilmoitetaan onko se 7-bittinen (esim. ISO 10646) vai 8-bittinen (esim. ISO 8859-1). Tässä voidaan myös purkaa englanninkieliset lyhenteet (WEfI = Windowing Environment for Idiots), tai sitten saman tien suomentaa nekin (WSfI = Windowing Environment for Idiots, keskivertokäyttäjän käyttöliittymä). Se miten menetellään, on projektikohtainen tyylikysymys. Tässä kohdassa voidaan määritellä myös dokumentissa käytetyt merkintätavat. Esimerkki tästä on esitetty taulukossa 1. "Varatut sanat" eli "avainsanat" ja toimintojen tms. nimet olisi hyvä korostaa tekstissä jollakin tapaa, se helpottaa huomattavasti lukemista. Muokattu: 22.09.2009 13:36 6/26
Taulukko 1 Dokumentissa käytettävät merkintätavat. lihavointi toimintojen nimet valikon kohdat/nimet painikkeet kursivointi ISOILLA KIRJAIMILLA käyttäjän syötteet tietovarastojen nimet tiedostojen nimet [hakasuluissa] viittaukset 1.4 Viitteet Tässä esitetään järjestelmään tai sen rakentamiseen liittyvät tietolähteet mikäli tarpeen (nimi, versio, päiväys, mistä löydettävissä). Tähän liittyviä dokumentteja voivat olla mm. esitutkimus ja vaatimusmäärittely. Luettelo aakkostetaan viitteen mukaan. Esimerkiksi (viitteissä näkyy tekijä tai aihe ja tekovuosi): [Dokuty98] Dokumentoinnin tyyliohje, 30.8.1998, versio 1.0, TTY Ohjelmistotekniikka, http://www.cs.tut.fi/cgibin/laatu/sivuhaku.pl. [Esitut] Oskari Ovaska, Esitutkimusdokumentti järjestelmälle X, 30.08.1998, versio 1.0. 1.5 Yleiskatsaus dokumenttiin Tässä kohdassa kuvataan dokumentin rakenne. Jos käytetyn dokumenttipohjan voi olettaa olevan lukijalle tuttu, riittää viittaus dokumenttipohjaan. Muussa tapauksessa esitetään, mitä missäkin luvussa käsitellään. Tämän perusteella lukija saa yleiskuvan dokumentin rakenteesta, ja hän pystyy myös päättelemään, mitä osia dokumentista hänen kannattaa lukea. Muutama lause kunkin luvun sisällöstä kertoo paljon enemmän kuin pelkkä sisällysluettelon silmäily. Esimerkki: Luku 2 kuvaa järjestelmän toiminnan yleisellä tasolla: siihen kuuluvan laitteiston, käyttäjät, järjestelmän riippuvuudet ja rajoitukset. Luvussa 3 kuvataan järjestelmän tietosisältö eli tietokanta ja tietovirrat. Muokattu: 22.09.2009 13:36 7/26
Luvussa 4 määritellään järjestelmän toiminnot. Kustakin toiminnosta on kuvattu mitä se tarkoittaa, mitä se saa syötteeksensä ja toiminnon suorittamisesta tapahtuvat toiminnot ja/tai vaikutukset. Luku 5 kertoo järjestelmän ulkoiset liittymät, eli laitteiston, tietoliikenteen ja ohjelmistoliittymät. Lukuun 6 on kuvattu järjestelmän ei-toiminnalliset ominaisuudet, kuten suorituskyky, vasteajat, käytettävyys ja ylläpidettävyys. Lukuun 7 on kirjattu suunnitteluun vaikuttavat rajoitteet, kuten standardit sekä ohjelmisto- ja laitteistorajoitteet. Luvussa 8 esitellään vaihtoehdot, jotka ovat olleet esillä, mutta on syystä tai toisesta hylätty. Luku 9 on varattu jatkokehitysajatuksille. Lukuun 10 on kerätty avoimia kohtia, ts. asioita, jotka ovat jääneet selvittämättä. Valmiista dokumentista tämä kohta yleensä puuttuu. Muokattu: 22.09.2009 13:36 8/26
2. YLEISKUVAUS 2.1 Ympäristö 2.2 Toiminta 2.3 Käyttäjät Tämän luvun kuvauksissa esitetään mahdollisimman tiiviisti toteutettava järjestelmä ja sen ympäristö. Kiireinen lukija selaa määrittelystä vain 1. ja 2. luvut ja sen perusteella hän toteaa, kannattaako dokumenttiin perehtyä tarkemmin. Lukuun voidaan liittää esimerkiksi käyttötapauskaavio. Käyttötapauksien kuvaukset voi laittaa liitteeksi. Tässä kerrotaan laajempi kokonaisuus johon tuote tai järjestelmä liittyy. Kohdassa kuvataan sen ohjelmisto- ja laitteistoympäristö ja kerrotaan onko tuote itsenäinen vai osa jotakin suurempaa kokonaisuutta. Kohdassa esitetään yleinen yhteenveto tuotteen ominaisuuksista (pääkohdat poimittuina 4. luvusta) ja kerrotaan yleisesti ohjelman syötteet, toiminta sekä tulosteet. Tässä kohdassa ei saa selittää mitään mitä ei ole tarkemmin selostettu 4. luvussa. Mikäli ohjelmistossa on joitakin erikoisuuksia, ne on syytä mainita jo tässä. Esimerkiksi: jollei ole tulostusta kirjoittimelle, jos ohjelmistoa voidaan käyttää vain hiirellä tai jos näyttö on erikoisen kokoinen (taskutietokone). Voidaan myös viitata tarkemmin asianomaiseen tässä dokumentissa jäljempänä olevaan kohtaan, mutta yleensä viittauksia ei tarvita. Esimerkiksi: Katso luku 5.1. Tässä kohdassa määritellään keitä ovat järjestelmän käyttäjät, onko kyseessä yhden vai monen käyttäjän järjestelmä ja mikä on käyttöympäristö. Kohdassa mainitaan onko järjestelmällä ylläpitäjiä. Selitetään mikä on käyttäjien asema organisaatiossa ja mikä on heidän koulutuksensa varsinkin mitä pitää osata, jotta voi käyttää tätä järjestelmää. Tähän myös kirjataan kuinka usein järjestelmää käytetään, esimerkiksi päivittäin tai viikoittain. 2.4 Yleiset rajoitteet Määrittelyä ja suunnittelua koskevat yleiset rajoitteet (lainsäädäntö, sovelluksen kriittisyys, suojaus- ja turvallisuusvaatimukset, liittymät muihin järjestelmiin) koottuina 6. ja 7. luvuista. Muokattu: 22.09.2009 13:36 9/26
Esimerkiksi jos GNU lisenssiehdot (GPL,...) saattavat vaikuttaa tähän projektiin. Mikäli esimerkiksi näytöllä on todella erikoinen minimi- tai maksimitarkkuus, se voidaan mainita tässä. Onko tulostimella joitakin rajoituksia? Asiat jotka halutaan jo nyt Yleiskuvaus-luvussa tuoda lukijan tietoisuuteen. Asiat jotka asettavat rajoja määrittelylle sekä sitä kautta suunnittelulle ja toteutukselle. Myöhemmissä luvuissa ne kaikki asiat kerrotaan tarkemmin. 2.5 Oletukset ja riippuvuudet Oletukset, jolloin määrittely on voimassa, esim. tietty käyttöjärjestelmä tai laitteisto (koottu 7. luvusta). Tietokannan kyselykieli (esimerkiksi SQL92). Tai esimerkiksi jos sovelluksella voi kerrallaan olla vain yksi käyttäjä, on se olennaista mainita jos tässä. Kiireinen lukija selaa määrittelystä vain 1. ja 2. luvut, sen perusteella hän toteaa kannattaako dokumenttiin perehtyä tarkemmin. Muokattu: 22.09.2009 13:36 10/26
3. TIEDOT JA TIETOKANNAT Ohjelman tietosisällöllä on tärkeä vaikutus ohjelman toimintaan. Tämän vuoksi ohjelman sisältämät tiedot ja niiden väliset yhteydet on määriteltävä tarkasti ja täsmällisesti. Tarkoituksena on selvittää mitä tietoja järjestelmä käsittelee. Tietokannan tarkka rakenne kuvataan vasta suunnitteluvaiheessa, eikä sitä siten esitetä tässä dokumentissa. Poikkeuksena tästä voi olla hyvin matalan tason järjestelmä tai järjestelmä jonka tiedetään käsittelevän tietoja juuri tietyllä tavalla. Tietosisällöstä kokonaisuutena kuvataan ensin seuraavanlaisia asioita: tietosisältö korkealla tasolla sekä tietojen väliset yhteydet samaa tietosisältöä (voi siis olla tietokanta) käyttävät muut ohjelmistot tai järjestelmät tukiohjelmisto (esim. varmistukset, toipuminen, testaus) ylläpito-, varmistus- ja suojausnäkökohdat. Tietosisältö ja tietojen väliset yhteydet voidaan kuvata tässä käsitekaavion avulla. Käsitekaavio on esimerkiksi UML-luokkakaavio, joka kuvaa tietosisällön käsitteellisellä tasolla. Se ei siis kuvaa toteutusta, vaan mallintaa reaalimaailmaa. Käsitekaavio myös selitetään yleisellä tasolla sanallisesti tässä yhteydessä (lähinnä suhteet), mutta tarkempi tietosisällön kuvaus on omissa kohdissaan tietohakemiston muodossa. Määrittelydokumentissa tiedot on esitettävä sillä tarkkuudella, että suunnitteluvaiheessa on selvillä vähintään tietojen perusrakenne ja niiden väliset yhteydet. Tavoitteena on todellisuutta (ei toteutusta) täydellisesti (koko sovellusalueen tietosisältö ja piirteet) kuvaava, luettavassa muodossa oleva esitys tietosisällöstä. Mikäli järjestelmän käsittelemä tietosisältö koostuu useista tiedostoista tai tietokannoista, näiden olemassaolo julkituodaan tässä. Valmiit tietokannat, joita ohjelma käyttää, mainitaan kohdassa 5.2. Tarvittaessa voidaan viitata kyseiseen kohtaan. 3.1 Tietosisältö Tietosisällöstä kokonaisuutena kuvataan ensin seuraavanlaisia asioita: Tietosisältö korkealla tasolla sekä tietojen väliset yhteydet. Samaa tietosisältöä (voi siis olla tietokanta) käyttävät muut ohjelmistot tai järjestelmät. Muokattu: 22.09.2009 13:36 11/26
Tukiohjelmistot. Esimerkiksi varmistukset, toipuminen ja testaus. Ylläpito- varmistus- ja suojausnäkökohdat. Tässä kohdassa kuvataan jokainen käsite (=entity, =tietokokonaisuus), käsitteiden väliset suhteet sekä käsitteisiin ja suhteisiin liittyvät ominaisuudet (=attribuutit, =yksittäiset kentät, =yksittäiset tiedot). Jokainen käsite ja sen ominaisuudet kuvataan omassa alakohdassaan 3.1.x. Mikäli suhteilla on ominaisuuksia, niille voi tarvittaessa tehdä oman alakohdan. Tietohakemistossa käytetyt merkinnät ja termit tulee esittää (satunnaista lukijaa varten) esimerkiksi seuraavasti: Tässä tietohakemistossa käytetään seuraavia merkintätapoja ja termejä: Merkintä Selitys + Ja ( ) Optionaalinen (voi puuttua) { } Toisto (0-N kertaa) n{ }m Toisto n-m kertaa n-m Väli n:stä m:ään [ ] Vaihtoehtoja Vaihtoehtojen erotin @ Avainominaisuus * Selite muodossa * teksti * / Automaattisesti täytettävä tai laskettava kenttä M K * 8-bittisen ascii-merkistön kirjain, numero tai muu kirjoitusmerkki. * A-Ä a-ä N 0-9 Muokattu: 22.09.2009 13:36 12/26
P * Päiväys, josta pv, kk ja vuosi selviävät yksikäsitteisesti * Yksittäiset kirjoitettavat merkit esitetään ' -merkkien välissä. Esimerkiksi 'A'. Kirjoitettavat merkkijonot esitetään lainausmerkkien välissä. Esimerkiksi "Aasi". 3.1.1 Käsite X (kukin omana alakohtanansa) Tietohakemisto on kuvattava ryhmitellen käsitteet loogisesti järkevään järjestykseen. Tarvittaessa käytetään esimerkiksi nelitasoista alakohtien luokittelua. Käsitteet kuvataan niiden ominaisuuksien avulla. Jokaisesta ominaisuudesta kerrotaan: tyyppi (kirjain, teksti, desimaaliluku...) koko (pituus, tila jonka se vie. Esim. 8 merkkiä tai jos tiedetään kuvattavan tiettyä tietokantaa, voidaan käyttää sen vakiotyyppejä, esimerkiksi DATETIME, CHAR11) selite (mikä tieto on kyseessä, ei kaikilla pakollinen). Lisäksi tarvittaessa kuvataan ominaisuuksien käsittely- ja laskentasäännöt sekä päivityskriteerit ja tavat esimerkiksi seuraavasti: Projektin kestoa ei tallenneta erikseen vaan se lasketaan kaavalla Loppupvm Alkupvm. Hakijan tunnus tuotetaan automaattisesti tällä ohjelmalla ja sitä saa päivittää vain tämä ohjelma. Muita esitettäviä asioita ovat mm. tietojen pysyvyys (pidetäänkö tiedot tallessa levyllä, vai vain keskusmuistissa), tietojen salaisuus, jne. Tietokannassa käytettävät kirjainmerkit voi selostaa tässä tai jossakin muussa sopivassa kohdassa; esimerkiksi käytetäänkö 7-bittisiä (esim. standardi ISO 646:1991) vai 8-bittisiä (esim. standardi ISO 8859-1:1998 tai 8859-15:2000) ASCII-merkkejä (huomaa Euro-merkki). Esimerkki tietohakemistosta: Hakija Sukunimi + Etunimi + @Hetu + /Sukupuoli + Kotikunta Muokattu: 22.09.2009 13:36 13/26
* Hakijan perustiedot * Sukunimi 0{M}40 * Hakijan nykyinen sukunimi * Etunimi 0{M}40 * Hakijan etunimet * Hetu 0{M}11 * Hakijan henkilötunnus. Oikeellisuus tarkistettava syötettäessä tarkistemerkin perusteella. * Sukupuoli 'M' 'N' * Automaattisesti henkilötunnuksen perusteella * Kotikunta 0{M}30 * Voi olla tyhjä kenttä * 3.2 Käyttöintensiteetti Käyttötiheys arvioidaan pahimman tapauksen mukaan. Esimerkki: Yhtäaikaisia käyttäjiä on arkisin keskipäivällä enintään 50, muina aikoina keskimäärin 10. Kukin käyttäjä tekee hakuja enintään 10 kpl minuutissa, keskimäärin 3 kpl. Tuon perusteella järjestelmä mitoitetaan pahimman tapauksen mukaan eli sen on suoriuduttava minuutin sisällä 50 yhtäaikaisen käyttäjän 10 tiedonhausta (vasteajan puitteissa). Esimerkkejä: Ohjelmaa käytetään päivittäin klo 09-16 välillä eikä lainkaan muulloin. Ohjelmaa käytetään 10 minuutin välein. Ohjelman suoritus käynnistetään klo 23:05 joka päivä, ja opiskelijat tekevät järjestelmään keskimäärin 250 hakua tunnissa. (Vasteajat ilmoitetaan kohdassa 6.1.) 3.3 Kapasiteettivaatimukset Tässä arvioidaan järjestelmän kapasiteetti sekä tiedonkäsittelytarve. Esimerkiksi kuinka tiuhaan tahtiin tapahtumia tai palvelupyyntöjä voi pahimmillaan tulla järjestelmälle. Esimerkki: Järjestelmässä on tallennettuna maksimissaan 3000 hakijan tiedot. Joissain tilanteissa olisi hyvä tehdä suuntaa-antava arvio järjestelmän vaatimasta levytilasta, esimerkiksi onko se megatavu- vai gigatavuluokkaa. Ajettavaan ohjelmaan liittyvät tarkat kokomäärät kerrotaan 7. luvussa (mikäli ne saadaan selvitettyä). Muokattu: 22.09.2009 13:36 14/26
3.4 Tiedostot ja asetustiedostot Tässä esitellään mahdolliset asetustiedostot ja muut vastaavat tiedostot. Esimerkiksi konfigurointitiedoston sisältö olisi hyvä esittää. Esitykseen kannattaa usein liittää esimerkki. Täydellisemmän esimerkin voi laittaa liitteeksi. Esimerkki: SUSI-järjestelmään sisältyy kaksi tietokantaa: KETTUKANTA: kettujen perimätiedot, tiedostossa kettuk.dat. HUKKAKANTA: jalostamiskelvottomat ketut, tiedostossa hukkak.dat. SUSI lukee lisäksi NAHKA-järjestelmän kautta tietokannasta. Mikäli järjestelmään liittyy ulkoisia tietokantoja, ne kuvataan kohdassa 5.2. Muokattu: 22.09.2009 13:36 15/26
4. TOIMINNOT 4.1 Yleistä (tai joku muu sopiva otsikko) Tässä voidaan mainita kaikille toiminnoille yhteiset asiat, esim. tietyt näppäintoiminnot (Esc, Alt-F4, CTRL-C,!sh, CTRL-Z, F1...), eli otetaan kantaa, ovatko tuollaiset "vakionäppäimet" käytössä vai eivät. Vastaavia asioita ovat mm. skandinaavisten merkkien tuki, ovatko isot ja pienet kirjaimet samanarvoisia, voidaanko ohjelmaa käyttää yhtä hyvin hiirellä kuin näppäimistöllä, värien käyttö ja tiedostonimien pituus. Sopivassa kohdassa otetaan myös kantaa ohjelman kielisyyteen (dokumentit, koodin kommentit, käyttöliittymä). Yleisesti voi jo tässä ottaa kantaa (tai kullakin kohtaa myöhemmin, pääasia että nekin tulevat mainittua) mm. seuraaviin seikkoihin; ikkunan koon muutos, ikkunan siirto, oletusarvopainonapit, kuittaako rivinsiirto ja ylipitkän tekstin syöttö tekstikenttään. Määrittelyvaiheessa kiinnitetään käyttöliittymä. Käytännössä juuri käyttöliittymä kuitenkin muuttuu usein suunnittelun ja toteutuksen aikana, kun käyttäjät näkevät todellisen tilanteen paremmin. Niinpä käyttöliittymä voikin olla järkevää kuvata tarkasti jossain muualla kuin tässä dokumentissa (esimerkiksi käyttöohjeessa). Tällöin tämä dokumentti painottuu nimenomaan toimintojen kuvaamiseen ja käyttöliittymästä kuvataan tässä lähinnä toimintojen kuvaamisen kannalta tärkeät osat ja periaatteet. Näyttökuvissa olisi hyvä olla oletusarvoiset arvot syötekentissä näkyvillä, eikä huuhaa-arvoja. Käyttöliittymäkuvien ei välttämättä tarvitse välttämättä olla piirrosohjelmalla tehtyjä, vaan voi ne kuvata erinäköisenä tekstinäkin, koska onhan valikoissa ja graafisissa näytöissä tekstikenttiä. Kuviin kannattaa sijoittaa esimerkkitekstejä. Näyttökuvia voidaan jossain määrin hyödyntää heti jo käyttöohjeessa, jonka teko kannattaa aloittaa ajoissa. Käyttöohjeeseen tulee aikanaan kuitenkin tehdä todellisuutta vastaavat kuvat. Käyttöliittymän toiminta voidaan kuvata näyttökartalla (valikkohierarkia, navigointikaavio). Reaaliaikajärjestelmän tapauksessa tässä kohdassa voidaan esittää tapahtumalista ja/tai tilakaavio. Tässä voi myös halutessaan esittää yleiset "tyyppikuvat" vähemmän tärkeistä ikkunoista (dialog), esimerkiksi virheilmoituksista ja kuittauksista. Kussakin kohdassa voidaan sitten viitata tiettyyn Muokattu: 22.09.2009 13:36 16/26
tyyppikuvaan: Käyttäjälle näytetään kuvan 4 mukainen virheilmoitusikkuna, tekstillä 'Vakava sovellusvirhe: Muistitila loppui. Käyttöliittymärajoitteet, jos sellaisia on, tulee mainita tässä sekä 7. luvussa. Tällaisia rajoitteita voivat olla esimerkiksi näytön erikoinen koko tai tyyppi. 4.2 Järjestelmän toiminnot Ohjelman toiminnot tulee käydä läpi yksityiskohtaisesti ja yksi kerrallaan siten, että jokainen toiminto esitetään omassa kohdassaan. Tämä helpottaa viittaamista ja antaa asiakkaalle mahdollisuuden tarkistaa ovatko kaikki vaaditut ominaisuudet määritelty. Alakohtien numeroinnista voi tehdä monitasoisen niin, että yhteen kuuluvat toiminnot ryhmitellään saman kohdan alakohdiksi. Esimerkiksi 4.5 Ylläpitotoiminnot, 4.5.1 Uuden käyttäjän lisääminen, 4.5.2 Käyttöoikeuksien muuttaminen jne. Kohdassa 4.1 esitettyjä asioita voidaan esitellä tarvittaessa jokaisen toimintoryhmän tai myös yksittäisen toiminnon kohdalla. Toimintojen kuvaus voidaan kirjoittaa tilanteen mukaan joko jäsennellysti (kuten hakuopas) tai vapaamuotoisena tekstinä (kuten käyttöohje). Esimerkkejä kannattaa viljellä. Ne voivat olla myös käyttöohjeessa, jolloin niihin viitataan tästä. Yksittäisten toimintojen kuvaus voidaan jäsennellä seuraavasti: toiminnon kuvaus tarkoitus syötteet (mitä, mistä, paljonko, yksikkö, sallitut arvot) käsittely (tarkistukset, toimintaan vaikuttavat parametrit, käsittelysäännöt) tulosteet virhetilanteet (miten toimitaan, miten ilmoitetaan käyttäjälle, mitä tehdään virhetilanteen jälkeen). Virheilmoitustekstit kiinnitetään määrittelyssä. Mitä hyötyä olisi miettiä niitä vasta suunnittelussa? Virheilmoitukset (tunniste ja teksti) voi myös kirjata kootusti liitteeksi X. Liitettä voi sitten käyttää myöhemmin apuna myös suunnittelussa ja testaussuunnittelussa sekä käyttöohjetta ja ylläpito-ohjetta laadittaessa. Muokattu: 22.09.2009 13:36 17/26
5. ULKOISET LIITTYMÄT 5.1 Laitteistoliittymät Kohdassa määritellään, käyttääkö järjestelmä ulkoisia laitteistoja, esimerkiksi tulostinta. Jollei tulostustoimintoa ole, on sekin oleellista mainita. 5.2 Ohjelmistoliittymät Tässä selitetään liittyykö järjestelmä muihin ohjelmiin tai ohjelmistoihin (esim. ulkopuoliset tietovarastot). Esimerkiksi jos järjestelmä on osa oinfo-järjestelmää, tässä tulee mainita, kertoa missä rajapinta fyysisesti on (esim. Ingres-tietokanta nimeltä abc) ja mistä sen määritykset löytyvät. Mikäli liittymä on suoraan johonkin ohjelmaan, sen tarkka versionumero tulee merkitä tähän. Tässä tulee mainita myös mahdollisesti alihankkijoilta saatavat osat. Tässä kohdassa saa olla päällekkäisyyttä kohdan 7.3 kanssa. 5.3 Tietoliikenneliittymät Tässä kohdassa kerrotaan käyttääkö järjestelmä tietoliikenneyhteyksiä, esim. modeemia tai lähiverkkoa ja mitä tyyppiä ne ovat. Selitetään mikä hoitaa tietoliikenteen: tämä sovellusko vai jokin muu, esim. käyttöjärjestelmä. Jos tämä sovellus hoitaa tietoliikenneliittymät, se kuvataan tarkemmin toiminnot-luvussa. Muokattu: 22.09.2009 13:36 18/26
6. MUUT OMINAISUUDET Tässä luvussa kuvataan ne ei-toiminnalliset ominaisuudet, jotka eivät ole tulleet esille aikaisemmissa luvuissa. 6.1 Suorituskyky ja vasteajat Tässä kohdassa määritellään järjestelmän suorituskyky. Suorituskyky voidaan jakaa staattiseen ja dynaamiseen. Esimerkiksi montako päätettä tai montako tiedostoa on staattista- ja montako tapahtumaa aikayksikössä on dynaamista suorituskykyä. Kohdassa kerrotaan myös vaste- eli saantiajat. Vasteaika esitetään esimerkiksi: 95 %:ssa alle 1 sekunti, enintään 5 sekuntia Vasteaikavaatimukset voivat jossakin reaaliaikajärjestelmässä olla myös sellaisia, ettei määriteltyjä lyhempiä aikoja saa esiintyä. Esimerkiksi lyhin sallittu vasteaika on 0,2 sekuntia ja pisin sallittu 20 sekuntia. Vasteajat laitetaan mieluummin tähän kohtaan kuin lukuun 3. Mikäli on olemassa sopiva vertailukohta, esimerkiksi benchmark-testi, niin se mainitaan vertailuarvoineen. Joka tapauksessa täytyy olla mainittu jokin suure, jolla voidaan mitata suorituskykyä ja vasteaikoja. Kohdassa mainitaan myös onko järjestelmällä yhtäaikaisia käyttäjiä ja jos on, niin kerrotaan myös kuinka monta. 6.2 Käytettävyys, toipuminen, turvallisuus, suojaukset Tässä kohdassa määritellään mikä järjestelmän käytettävyyden on vähintään oltava. Käytettävyys on esim. matkapuhelinkeskuksilla: suurin sallittu käytöstä poissaoloaika vuodessa on kolme (3) minuuttia. Kohdassa selitettävät toipuminen ja elpyminen ovat etenkin tiedonhallintajärjestelmiä käytettäessä olennaista. Niissä on tiedettävä miten on hoidettu esim. levyrikkojen ja sähkökatkosten aiheuttamat vaaratilanteet tiedoille. Tässä kohdassa turvallisuus koskee etupäässä yhteistyökykyisten ja -haluisten henkilöiden inhimillisiä vahinkoja (esim. "väärien" tiedostojen tuhoaminen vaikkapa päälle kirjoittamalla) ja vasta toissijaisesti ilkeämielisten laillisen yhteiskuntajärjestelmän vastaisesti toimivien yksilöiden aiheuttamia vahinkoja. Kohdassa voidaan ottaa kantaa esimerkiksi seuraavanlaisiin asioihin: Muokattu: 22.09.2009 13:36 19/26
6.3 Ylläpidettävyys Miten tietoliikenneyhteyden suojaukset on hoidettu; tarvitseeko palvelimen ja asiakkaan välillä liikkuva tieto salata. Minkälaiset suojaukset laitetaan tiedostoille tai niiden osille (rahaliikennetiedot, salasanat, henkilötunnus jne.). Onko väliä jos jokin sovelluksen ikkuna unohtuu näytölle auki esimerkiksi usean tunnin ajaksi? Haittaako muita käyttäjiä esimerkiksi tietokantojen lukitusten, varmuuskopioinnin tai saman tiedoston luvun takia? Onko esimerkiksi ajastinvahtia estämään sitä? Miten käyttöoikeudet jaetaan, käytetäänkö salakirjoitusta ja pidetäänkö lokia. Tämä on tärkeä kohta, ellei erillistä ylläpito-ohjetta tehdä. Ylläpito voi olla korjaavaa tai lisäävää. Kohta tehdään etenkin, mikäli järjestelmällä on erillinen ylläpitäjä. Esimerkiksi mitkä kohdat ja ominaisuudet ovat jälkeenpäin helposti muutettavissa (käyttöliittymä, tietokanta, tietoliikenneprotokolla...) ja mitä tulee ottaa huomioon niitä muutettaessa sekä onko lokalisointia otettu huomion. 6.4 Siirrettävyys ja yhteensopivuus Tähän kirjoitetaan onko siirrettävyyttä ja yhteensopivuutta otettu millään tavalla huomioon. Selitetään mihin muihin järjestelmiin sovellus sopii (esim. yhteensopivuus käyttöjärjestelmien tai ikkunointiympäristöjen suhteen). 6.5 Käyttäjän ylläpitotoimet Tarvitseeko käyttäjän tehdä muita toimenpiteitä kuin käyttää järjestelmää, ellei erillistä ylläpitäjää ole. Esim. poistaa vanhoja loki- tai väliaikaistiedostoja tai tehdä muita "siivouksia" (core dumped). Tai asettaa hakupolkujaan tai ympäristömuuttujiaan. Vai täytyykö tuollaisia operaatioita varten kutsua aina ylläpito apuun? Jos ohjelma tai kone "kaatuu", mitä tiedostoja saa tai täytyy poistaa tai "siivota" ennenkuin käyttö voi jatkua? (/temp/... \tmp\...) Voiko pääkäyttäjä tai ylläpitäjä tai ohjelman asentaja tehdä joitakin asetuksia (esim. peruskäyttäjillä aikaviiveet, värit,...)? Jos sovellus on parametroitavissa, niin se voitaisiin kertoa tässä. Esimerkiksi käynnistystiedoston (config file) asetukset. Muokattu: 22.09.2009 13:36 20/26
Mikäli halutaan antaa käyttäjälle suosituksia työympäristönsä eli käyttöympäristön virittämisestä, niin ne mainitaan tässä. Esimerkiksi www-selaimen asetukset ja ominaisuudet (välimuistien koko, kirjasinmallit, selainasetukset, evästeet = piparit, JavaScript, hakupolut kuntoon, luku/ajo-oikeudet kuntoon,...). Kenties suositeltavia/vaadittavia palomuurin ja virustorjunnan asetuksia. Onko tämä uusi järjestelmä yhteensopiva (muiden) vanhojen järjestelmien kanssa? Jollei niin mitä käyttäjä voisi itse tehdä asian hyväksi? Loppukäyttäjän (suositeltavat) asetukset (löytyvät lopulta myös hyvästä käyttöohjeesta)? Muokattu: 22.09.2009 13:36 21/26
7. SUUNNITTELURAJOITTEET Luvussa kuvataan järjestelmään liittyvät suunnittelu-rajoitteet. Suunnittelurajoitteiden listasta on hyötyä myös mahdollista testausympäristöä suunniteltaessa. Rajoitteita kuvatessa joskus on tarpeen erottaa selvästi palvelinpuoli (server) ja asiakaspuoli (client) toisistaan, kun niihin liittyy eriäviä rajoituksia. Samoin voi olla tarpeen erottaa loppukäyttäjän ja ylläpitäjän näkökulmat toisistaan. 7.1 Standardit ja suositukset Tässä kohdassa kerrotaan mitä standardeja, suosituksia, ohjeita, säädöksiä tai direktiivejä liittyy toteutettavaan järjestelmään. Esimerkiksi dokumentit ja ohjelmointikieli esim. ANSI/IEEE 1016-1998. Käytännössä ko. lähteet mainitaan tässä, ja niissä on viite kohtaan 1.4, jossa ne selitetään yksityiskohtaisesti. Esimerkiksi: Käytettävä protokolla on suosituksen RFC12345 mukainen [RFC99] (kyseinen suositus on vuodelta 1999). 7.2 Laitteistorajoitteet Tässä kohdassa luetellaan laitteistorajoitteet. Esimerkiksi että käytetään nykyistä laitteistoa, kun uutta ei haluta hankkia. Laitteistoista selitetään niiden ominaisuudet. Esimerkiksi: Prosessorina 80386DX, 4 Mt RAM, 330 Mt kiintolevy jossa vapaata levytilaa sovellusta varten xy Mt, tietokantaa varten yz Mt, ja vapaata työtilaa zx Mt. Nykypäivänä kuitenkin laitteistovaatimuksiksi riittää joissakin tapauksissa, että esim. Windows98 tai Windows NT 4.0 toimii koneessa ja silloin ei tarvitse mainita muita teknisiä tietoja. Laitteistosta voidaan ilmoittaa minimikokoonpano sekä suositeltava kokoonpano. Jos näytön tarkkuudelle asetetaan minimi- tai maksimiarvoja, ne mainitaan tässä. 7.3 Ohjelmistorajoitteet Kohdassa kuvataan yksityiskohtaisesti käytettävät ohjelmistot. Myös WWW-selainten versiot tulee mainita tässä kohdassa. Tässä ei kuitenkaan tule päällekkäisyyttä kohdan 5.2 kanssa. Esimerkkejä: Tietokantana Paradox 4.5 DOS tai Ingres 6.2. Muokattu: 22.09.2009 13:36 22/26
Käyttöjärjestelmänä OS/2 v 2.0 tai Linux 1.1.42. Ikkunointiympäristönä Open Windows Version 3.6.1. Tai esimerkiksi nykyinen ohjelmistoympäristö, koska uutta ei haluta hankkia. Toteutusvälineet voidaan myös mainita tässä, mikäli se on todellakin oleellista kertoa jo määrittelyvaiheessa. Se on kuitenkin harvinaista eikä suositeltavaa koska projektisuunnitelmassa on tarkat tiedot toteutusvälineistä. Esimerkiksi: B-kääntäjän versio 2.77. 7.4 Muut rajoitteet Tässä kohdassa luetellaan muut mahdolliset rajoitteet. Nämä tulevat yleensä käyttäjän tai tilaajan taholta. Muokattu: 22.09.2009 13:36 23/26
8. HYLÄTYT RATKAISUVAIHTOEHDOT Mietityt, mutta hylätyt, ratkaisuvaihtoehdot kirjataan tähän perusteluineen ja päivämäärineen. Näin seuraava dokumentin lukija näkee, että tuotakin on mietitty. Hylätyt ratkaisuvaihtoehdot kerätään projektin lopussa projektisuunnitelman loppuun. Muokattu: 22.09.2009 13:36 24/26
9. JATKOKEHITYSAJATUKSIA Tähän kirjataan matkan varrella mieleen tulleita ajatuksia, joita ei tämän projektin puitteissa kuitenkaan määritellä tarkemmin tai toteuteta. Näin voi olla esimerkiksi ajan puutteen, rahan puutteen, resurssien puutteen tai taitojen ja osaamisen takia. Jatkokehitysajatukset voi sijoittaa omiin numeroituihin kohtiinsa, jotta niihin viittaaminen on mahdollista. Päiväys ja ehdottajan nimi(kirjaimet) auttavat jälkitarkastelussa, jos vuoden kuluttua projekti saakin yllättäen rahoitusta jatkokehitystä varten. Jatkokehitysajatukset kerätään projektin loputtua projektisuunnitelman loppuun. Muokattu: 22.09.2009 13:36 25/26
10. VIELÄ AVOIMET ASIAT Epävirallinen luku jota ei pitäisi olla tässä dokumentissa enää projektin loppuessa. Tähän voidaan merkitä dokumentin elinkaaren aikana avoinna olevia eli ratkaisua vaativia asioita jotta ne muistettaisiin selvittää ennen dokumentin lopullista valmistumista. Tässä kannattaa myös ilmoittaa päivämäärät ja nimet. Muokattu: 22.09.2009 13:36 26/26