Vaatimusdokumentti

Ohjelmistotuotantoprojekti TAHKO (syksy 2001)

Heikki Hiltunen

Tero Kallio

Anu Leponiemi

Piia Porvali

Petri Savolainen

Janne Savukoski


Sisällys

1. Johdanto
1.1. Tuotteen tausta ja tarkoitus
1.2. Yleiskatsaus dokumenttiin
1.3. Lyhenteet
2. Yleiskuvaus
2.1. Yleinen toiminta
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. Toiminnot
4.1. Toimintokuvaus
5. Järjestelmän ulkoiset liittymät
5.1. Käyttöliittymä
5.1.1. Kirjautumisvaihe
5.1.2. Asiakkaan valinta
5.1.3. Tuotteiden valinta
5.1.4. Hinnoittelu
5.1.5. Tarjouksen viimeistely
5.1.6. Tarjouksen uudelleenlataaminen
5.2. Ohjelmistoliittymät
5.3. Alustustiedot
6. Muut ominaisuudet
6.1. Suorituskyky
6.2. Käytettävyys, virheistä toipuminen, turvallisuus, suojaukset, varmistuskopiointi
6.3. Ylläpidettävyys
7. Testaus
7.1. Yleiskatsaus
7.2. Testattavat asiat
8. Rajoitteet suunnittelulle ja toteutukselle
8.1. Laitteistorajoitteet
8.2. Ohjelmistorajoitteet

Luku 1. Johdanto

1.1. Tuotteen tausta ja tarkoitus

Tarjouskonfiguraattori (TAHKO) on Sonera Oyj:lle tuotettava tarjousdokumenttien generointiohjelmisto, joka toteutetaan Helsingin yliopiston tietojenkäsittelytieteen laitoksen ohjelmistotuotantoprojektina. Ohjelmistolla generoidaan tarjousdokumentteja käyttäjän antamien tietojen pohjalta. Dokumentit voidaan tulostaa erilaisissa formaateissa (esim. PDF). Ohjelman tarkoituksena on helpottaa myyjien työtä ja saada tarjouksista ulkoasultaan yhteneviä.

1.2. Yleiskatsaus dokumenttiin

Tässä dokumentissa kuvataan yksiselitteisesti kaikki ohjelmistolle asetetut vaatimukset ja kehitetyt mallit. Dokumentti sisältää järjestelmän tietosisällön, toimintokuvauksen, ulkoisten liittymien kuvauksen, rajoitukset sekä yleiskatsauksen testauksesta.

1.3. Lyhenteet

JDBC = Java Database Connectivity
Javan standardi tietokantaliittymä Java-ohjelmien ja relaatiotietokantojen väliseen kommunikointiin.

Luku 2. Yleiskuvaus

2.1. Yleinen toiminta

TAHKOa käytetään tarjousdokumenttien tekemiseen. Käyttäjä identifioi itsensä järjestelmälle, jonka jälkeen hän alkaa rakentaa tarjousta. Tarjoukseen valitaan asiakas ja tuotteet, joita asiakkaalle aiotaan tarjota. Käyttäjä voi muokata tuotteiden hintoja määrätyissä rajoissa. Annettujen tietojen perusteella TAHKO generoi halutun muotoisia tarjousdokumentteja.

2.2. Tuotteen pääasiallinen toimintaympäristö

Ohjelmistoa tullaan käyttämään yksittäisiltä työasemilta www-selaimen avulla.

2.3. Tuotteen käyttäjäkunta

TAHKO tehdään Sonera Oyj:n myyjien käyttöön.

2.4. Katsaus muihin vastaaviin järjestelmiin

Markkinoilla on lähes vastaavia tuotteita. Sonera on tullut kuitenkin siihen tulokseen, että niiden ominaisuudet eivät ole soveltuvia heidän tarkoituksiinsa ja haluaa teettää oman järjestelmän.

Luku 3. Tietokuvaus

3.1. Tietosisältö

Kuva 3.1: UML-kaavio

Kuvan 3.1 luokkien atribuutteihin tehdään suunnitteluvaiheessa vielä tarkennuksia. Esimerkiksi tuotteen hinnat jaetaan normaali- ja minimihintaan. Lisäksi asiakkaan yhteystiedot sisältää ainakin osoite-kentän ja tarvittaessa muita yhteystietoja.

3.2. Tietokantamalli

Järjestelmän toteutuksessa käytetään relaatiotietokantaa, johon otetaan yhteys JDBC:n avulla.

3.3. Kapasiteetti- ja saantiaikavaatimukset

Järjestelmä käsittelee melko pieniä määriä tekstimuotoista dataa, eikä reaaliaikaisuuden vaatimusta ole, joten kapasiteetti- ja saantiaikavaatimukset eivät ole olennainen kysymys järjestelmää suunniteltaessa. Mikä tahansa nykyaikainen tietokantapalvelin täyttänee järjestelmän vaatimukset paremmin kuin hyvin.

Luku 4. Toiminnot

4.1. Toimintokuvaus

Järjestelmän toiminnallisuus jakautuu tiedon hakemiseen kannasta (tietokantaorja), käyttöliittymän luomiseen XML-määrittelyjen pohjalta (KäLi-generaattori), käyttäjän kanssa kommunikointiin (KäLi), tarjousten tulostamiseen (tulostegeneraattorit), tallentamiseen sekä vanhan tarjouksen lataamiseen. Vanha tarjous pystytään lataamaan esimerkiksi muokkaamista tai uutta tulostusta varten. Jokaiselle tulostustavalle on oma tulostegeneraattorinsa.

Kuva 4.1: Yhteyskaavio

Kuva 4.2: Tilasiirtymäkaavio

Luku 5. Järjestelmän ulkoiset liittymät

5.1. Käyttöliittymä

Järjestelmän käyttöliittymän tulee olla dynaamisesti konfiguroitavissa XML-tiedoston avulla. Käyttöliittymä koostuu sisäänkirjautumisikkunasta sekä kuudesta eri tarjouksen tekemiseen liittyvästä tilasta. Kaikki käyttöliittymän tilat näkyvät kuvissa 5.1 - 5.7.

5.1.1. Kirjautumisvaihe

Kirjautumisvaiheessa myyjä kirjautuu sisään järjestelmään kirjoittamalla tekstikenttiin käyttäjätunnuksensa ja salasanansa (kuva 5.1). Jos syötetyt tiedot ovat oikeat, myyjä pääsee Asiakkaan valinta -tilaan muutoin kirjautuminen epäonnistuu ja myyjä saa siitä ilmoituksen.

Kuva 5.1: Kirjautuminen

5.1.2. Asiakkaan valinta

Tarjouksen tekemisen ensimmäisessä vaiheessa valitaan asiakas. Koska asiakasrekisterissä saattaa olla tuhansia asiakkaita, asiakkaan valitsemisen apuna tarvitaan yksinkertaisen valintalistan sijaan erityistä hakutoimintoa (kuva 5.2). Valittuaan asiakkaan (kuva 5.3) käyttäjä siirtyy Tuotteiden valinta -tilaan.

Kuva 5.2: Etsi asiakas

Kuva 5.3: Valitse asiakas

5.1.3. Tuotteiden valinta

Koska tuotekannassa voi olla myös tuhansia tuotteita, sinnekin tarvitaan valintalistan sijaan hakutoiminto (kuvat 5.4, 5.5 ja 5.6). Lisäksi haku saa palauttaa vain sellaisia tuotteita, joita kyseiselle asiakkaalle voidaan tarjota; tämä lasketaan sen perusteella, mitä tuotteita asiakkaalle on tietokannan mukaan jo aikaisemmin myyty. Osa tuotteista on kerran osa useaan kertaan myytäviä. Tuotteen valinta tehdään antamalla tuotteelle kappalemäärä (kuva 5.5).

Kuva 5.4: Etsi tuote

Kuva 5.5: Valitse tuote

Kuva 5.6: Jatka tuotteiden lisäämistä

5.1.4. Hinnoittelu

Hinnoitteluvaiheessa jokaisen tuotteen hintaa voidaan muuttaa (kuva 5.7). Tuotteella on minimihinta ja normaalihinta, ja kummankin tulisi vähintään käydä ilmi käyttöliittymästä. Normaalihinta tarkoittaa tuotteen suositeltavaa myyntihintaa, josta voidaan antaa tarjouskohtaisia alennuksia. Kun normaalihinnasta annetaan tarjouksessa alennusta, saadaan tarjoushinta eli toivottu myyntihinta. Minimihinta taas kertoo, mikä on alin mahdollinen tai toivottava tarjoushinta. Käyttöliittymän säännöt sisältävä XML kertoo, tuleeko käyttöliittymän rajoittaa tuotteelle annettavaa hintaa minimihinnan perusteella.

Käyttöliittymä laskee kaikkien tuotteiden hinnat yhteen Yhteishinta-kenttään, ja tästä summasta myyjä voi antaa vielä prosenttialennuksen. Myyjä voi syöttää Alennus-kenttään alennusprosentin, joka vähennetään yhteishinnasta, ja sijoitetaan kokonaishinta-kenttään, joka on tarjouksen lopullinen hinta.

Kuva 5.7: Hinnoittele

5.1.5. Tarjouksen viimeistely

Tarjouksen viimeistelyvaiheessa (kuva 5.7) voidaan lisätä loput tarjouksen koostamiseen tarvittavat tiedot kuten tervehdysteksti.

5.1.6. Tarjouksen uudelleenlataaminen

Vanhoja tarjouksia pystytään lataamaan TAHKOon muokattavaksi tai uudelleentulostusta varten esimerkiksi, jos tarjous halutaan tulostaa eri muodossa kuin aiemmin. Vanha tarjous avautuu viimeistelytilaan (kuva 5.7).

5.2. Ohjelmistoliittymät

Kaikki tieto pidetään tallessa relaatiotietokannassa, jolle on olemassa JDBC-ajuri.

5.3. Alustustiedot

Käynnistyäkseen ohjelma tarvitsee jonkun myyjän tunnuksen ja salasanan.

Luku 6. Muut ominaisuudet

6.1. Suorituskyky

Ohjelman tulee toimia siten, ettei tietojen haun hitaus rajoita häiritsevästi ohjelman käyttöä vaan tarjousten tekeminen sujuu joustavasti.

6.2. Käytettävyys, virheistä toipuminen, turvallisuus, suojaukset, varmistuskopiointi

Ohjelman tulee olla helppokäyttöinen. Ohjelman käyttö ei saa vaatia erityisiä tietokoneen käyttötaitoja. Virhetilanteista ohjelman tulee toipua ilman uudelleenkäynnistystä. Ohjelma sisältää Soneran sisäisiä tietoja, jotka ovat luottamuksellisia. Näin ollen ohjelman käyttö tulee tehdä mahdolliseksi vain tietyiltä koneilta. Jokainen myyjä käyttää ohjelmaa omalta koneeltaan. Lisäksi ohjelmaan kirjauduttaessa tulee antaa tunnistetiedot. Ohjelman tietokantaan talletettavien sekä tietokannasta luettavien tietojen varmuuskopiointi ei kuulu ohjelman tehtäviin vaan sen hoitavat tietokantojen ylläpitäjät.

6.3. Ylläpidettävyys

Ohjelma toteutetaan niin, että se on helposti muunneltavissa erilaisille tuotteille sopivaksi. Tuote, asiakas ja myyjätiedot ovat muutettavissa tietokannasta jollakin ulkoisella liittymällä. Näiden muuttaminen ei kuitenkaan kuulu TAHKO:lle. Dokumenttien tyyliä ja tietosisältöä pystytään muuttamaan helposti muokkaamalla dokumenttien generointiin käytettäviä xsl-tyylitiedostoja sekä xml-tiedostoja.

Luku 7. Testaus

7.1. Yleiskatsaus

Testauksesta laaditaan tarkempi kuvaus, kun ohjelman toteutustavat on suunniteltu tarkemmin. Samalla kuvataan toiminta virhetilanteiden sattuessa.

Monet asiat ovat riippuvaisia tietokantayhteydestä, joten niillä on samoja virhelähteitä liittyen tietokantaan, mm:

  • tietokantaan ei saada yhteyttä (ajuri, verkkoyhteys, oikeudet)
  • tietokannasta saatava data on väärän muotoista/puutteellista
  • tietokannasta ei löydy mitään dataa

7.2. Testattavat asiat

Virhesyötteet. Joka testikohdetta testataan siten että kaikkia kenttiä tulee testata kaikkien muiden kenttien saadessa sekä oikeellisia että virheellisiä arvoja. Testitapauksia tulee 2^(syötteiden lukumäärä) per testikohde.

Kuormitustestausta ei suoriteta.

Numerovirheet testataan myös, mikä saattaa tuntuakin itsestään selvältä, mutta ehkä se auttaa varmistamaan että niihin muistetaan varautua kunnolla ja osataan informoida niistä asianmukaisesti käyttäjälle.

Luku 8. Rajoitteet suunnittelulle ja toteutukselle

8.1. Laitteistorajoitteet

Asiakassovelluksen vähimmäisvaatimukset:

  • 233 MHz suoritin, 64M keskusmuisti

  • Java 2 -tukinen käyttöjärjestelmä

  • JavaScript

Palvelinsovelluksen vähimmäisvaatimukset:

  • 600 MHz suoritin, 256M keskusmuisti

8.2. Ohjelmistorajoitteet

Ohjelma toteutetaan Javalla ja testataan toimivaksi Netscape-selaimella. Ohjelma tukee ainakin Netscapen versiota 4.77 ja sitä uudempia sekä Explorerin versiota 4.0 ja sitä uudempia.