Demosovelluksen toiminnallinen määrittely v. 1.1 Päivitetty 11.12.2000 klo 20:16
Timo Lämsä 2 (13) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite Timo Lämsä Pieniä korjauksia. 1.01 9.11.2000 Janne Kankaanpää Kappalenumerointi ja kappaleiden tasaus 1.0 7.11.2000 Timo Lämsä, Mickey Shroff Demosovelluksen toiminnallisen määrittelyn ensimmäinen versio 2
Timo Lämsä 3 (13) Sisällys DOKUMENTIN VERSIOHISTORIA... 2 1. JOHDANTO... 4 1.1. TARKOITUS JA KATTAVUUS... 4 1.2. TUOTE... 4 1.3. MÄÄRITELMÄT, TERMIT JA LYHENTEET... 4 1.4. VIITTEET... 4 1.5. YLEISKATSAUS DOKUMENTTIIN... 5 2. YLEISKUVAUS... 6 2.1. YMPÄRISTÖ... 6 2.2. TOIMINTA... 6 2.3. KÄYTTÄJÄT... 6 2.4. YLEISET RAJOITTEET... 6 3. TIEDOT JA TIETOKANTA... 7 3.1. TIETOSISÄLTÖ... 7 3.2. KÄYTTÖINTENSITEETTI... 7 3.3. KAPASITEETTIVAATIMUKSET... 7 4. TOIMINNOT... 8 4.1. JÄRJESTELMÄN TOIMINNOT... 8 5. ULKOISET LIITTYMÄT...11 5.1. LAITTEISTOLIITTYMÄT...11 5.2. OHJELMISTOLIITTYMÄT...11 5.3. TIETOLIIKENNELIITTYMÄT...11 6. MUUT OMINAISUUDET...12 6.1. SUORITUSKYKY JA VASTEAJAT...12 6.2. KÄYTETTÄVYYS, TOIPUMINEN, TURVALLISUUS, SUOJAUKSET...12 6.3. YLLÄPIDETTÄVYYS...12 6.4. SIIRRETTÄVYYS/KANNETTAVUUS, YHTEENSOPIVUUS...12 7. SUUNNITTELURAJOITTEET...13 7.1. STANDARDIT...13 7.2. LAITTEISTORAJOITTEET...13 8. JATKOKEHITYSAJATUKSIA...13 3
Timo Lämsä 4 (13) 1. JOHDANTO 1.1. Tarkoitus ja kattavuus Dokumentin tarkoituksena on kuvata käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa sovelluskehyksen koekäyttöön tarkoitetun sovelluksen, projekti- ja työaikaseuranta, toiminnallisuus. Dokumentti kuvaa vaatimusmäärittelyssä [2] määritellyt toiminnot siinä määrin kun on tarpeellista - testisovelluksesta ei ole välttämättä tarkoitus toteuttaa valmista tuotetta, joten dokumentti ei kata täysin sovelluskehyksen testaamisen ulkopuolelle jääviä asioita. 1.2. Tuote Tuotteena on www-pohjainen projekti- ja työaikaseurantajärjestelmä. Tuotteesta toteutetaan ainoastaan prototyyppi ja toteutuksessä käytetään hyväksi ja testataan sovelluskehystä. Katso tarkempi kuvaus demosovelluksesta vaatimusmäärittelystä [2]. 1.3. Määritelmät, termit ja lyhenteet Sovelluskehikko Projektissa toteutettava lopputuote Demosovellus Projekti- ja työaikaseurantajärjestelmä, joka toteutetaan sovelluskehikkoa hyväksikäyttäen ja samalla sitä testaten. 1.4. Viitteet [1] Demosovelluksen tekninen määrittely, 7.11.2000, versio 1.0 tai uudempi, Mickey Shroff & Timo Lämsä,, http://www.niksula.cs.hut.fi/~jjkankaa//demotekninenmaarittely.pdf [2] Vaatimusmäärittely, 16.10.2000, versio 1.0 tai uudempi, Tomas Björnfot,, http://www.niksula.cs.hut.fi/~jjkankaa//vaatimusmaarittely.pdf [3] Projektisuunnitelma, 16.10.2000, versio 1.0 tai uudempi, Jussi Isotupa ym.,, http://www.niksula.cs.hut.fi/~jjkankaa//projektisuunnitelma.pdf [4] Sun Microsystems, Code Conventions for the JavaTM Programming Language, 20.4.1999, http://java.sun.com/docs/codeconv/index.html 4
Timo Lämsä 5 (13) 1.5. Yleiskatsaus dokumenttiin Dokumentin ensimmäinen luku on johdanto toiminnalliselle määrittelylle. Johdanto kertoo dokumentin tarkoituksen, esittelee demosovelluksen lyhyesti sekä sisältää määritelmät dokumentissa käytetyille termeille. Luku 2 kuvaa demosovelluksen toiminnan yleisellä tasolla. Demosovellukseen liitttyvät toiminnot, sen ympäristö ja käyttäjät esitellään lyhyesti. Luku 3 kuvaa demosovelluksen tiedot. Lisäksi 3. luvussa käsitellään käyttöintensiteettiä ja kapasiteettivaatimuksia. Luvussa 4 määritellään demosovelluksen toiminnot. Luku 5 kertoo demosovelluksen ulkoiset liittymät, eli laitteiston, tietoliikenteen ja ohjelmistoliittyymä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. Luku 8 on varattu jatkokehitysajatuksille. 5
Timo Lämsä 6 (13) 2. YLEISKUVAUS 2.1. Ympäristö Sovellus toteutetaan www-pohjaisena. Palvelinohjelmistoina ovat Windows NT tai 2000 ja J2EE Application Server. Toteutustekniikat: Java Server Pages (JSP), Java Servlets ja Enterprise Java Beans (EJB). 2.2. Toiminta Sovelluksella on kaksi pääasiallista toimintoa, päivittäisen työajan ilmoittaminen ja raporttien laatiminen työaikamerkintöjen pohjalta. 2.3. Käyttäjät Käyttäjät ovat sovellusta käyttävän yrityksen työntekijät. Käyttäjistä erotellaan eri ryhmiä, kuten tavalliset työntekijät, projektipäälliköt ja yrityksen johto. Eri ryhmät voivat suorittaa sovelluksella erilaisia toimintoja, erot ilmenevät lähinnä raporteissa. Sovelluksella on tarkoitus ilmoittaa päivittäinen työaika, joten sitä käytetään noin kerran päivässä per henkilö. Sovelluksen käyttö ei vaadi erityisosaamista. 2.4. Yleiset rajoitteet Sovelluksen tulee käyttää käyttäjien tunnistamiseen ja käyttöoikeuksien hallintaan projektissa toteutettavaa sovelluskehikkoa. 6
Timo Lämsä 7 (13) 3. TIEDOT JA TIETOKANTA 3.1. Tietosisältö Sovelluksen käyttämässä tietokannassa on tiedot työntekijöistä ja heidän työsuhteistaan, projekteista ja niiden asiakkaista. Työntekijöistä on talletettu lisäksi profiili, johon on talletettuna työntekijän salasana, työaikasaldo, palkka, työsuhteen tyyppi, oikeustaso sekä tieto siitä missä projekteissa työntekijä on mukana ja mitkä ovat hänen työtehtävänsä yrityksessä. Muita relaatioita ovat projektin suhde asiakkaaseen projektilla on aina tasan yksi asiakas. Varsinainen kerättävä tieto, jota päivitetään jatkuvasti, on työaikamerkinnät. Muu tieto on lähes staattista eli sitä päivitetään harvoin. Sovelluksen käyttämä tietokanta on kuvattu demosovelluksen teknisessä määrittelyssä [1]. 3.2. Käyttöintensiteetti Sovelluksella on tarkoitus ilmoittaa päivittäinen työaika, joten käyttöintensiteetti on suunnilleen yksi käyttökerta per henkilö per päivä. Työajan ilmoittaminen kestänee noin puoli minuuttia jos sovellusta on käyttänyt ennenkin. Lisäksi käyttäjät voivat selata raportteja. Raporttien käyttö on satunnaista, mutta se rasittaa järjestelmää enemmän kuin työajan syöttäminen. Voidaan kuitenkin olettaa, että enimmäkseen projektipäälliköt ja yrityksen johto käyttävät raportteja ja hekin vain keskimäärin kerran viikossa. 3.3. Kapasiteettivaatimukset Kapasiteettivaatimukset ovat suoraan riippuvaisia sovelluksen käyttäjien määrästä. Sovelluksesta tulee kuitenkin senverran tehokas, että heikompikin palvelin pystyy ajamaan sovellusta satojen käyttäjien määrällä. Koska kapasiteettivaatimukset ovat riippuvaisia käyttäjien eli työntekijöiden määrästä, voidaan olettaa, ettei kapasiteettiongelmia tule onhan tuhansia henkilöitä työllistävällä yrityksellä varaa ostaa tehokas palvelinkin. 7
Timo Lämsä 8 (13) 4. TOIMINNOT 4.1. Järjestelmän toiminnot Sovelluksella on kaksi pääasiallista toimintoa, päivittäisen työajan ilmoittaminen ja raporttien laatiminen työaikamerkintöjen pohjalta. 4.1.1. Työajan ilmoittaminen Työajan ilmoittamissivu on sovelluksen etu/pääsivu. Tätä ennen tulee ainoastaan kirjautuminen järjestelmään jos käytetään sellaista tunnistusmenetelmää, jossa käyttäjä joutuu syöttämään käyttäjätunnuksen ja salasanan. Vasemmassa laidassa on valikko, josta pääsee raportteihin. Työaikalomakkeen alussa lukee työntekijän nimi ja hänen työaikasaldonsa tai palkkakauden työaikakertymä, jos kyseessä on osa-aikainen työntekijä. 8
Timo Lämsä 9 (13) Päivämääräksi järjestelmä ehdottaa meneillään olevaa päivää. Käyttäjä voi muuttaa päivämäärää. Päivämäärää muutettaessa haetaan kyseisen päivän työaikamerkinnät näkyviin, jos niitä on. Vieressä on nappula Hae työaikamerkinnät vihjeenä siitä, että työaikamerkinnät eri päiviltä voi hakea (ne kuitenkin haetaan joka tapauksessa, jos päivämäärää muutetaan). Luonnollisesti myös meneillään olevana päivänä tehdyt työaikamerkinnät näkyvät jos tullaan saman päivän aikana uudestaan järjestelmään. Työntekijä voi syöttää merkintöjä myös menneille päiville, mutta ei tuleville. Työaikamerkintöjä voi muuttaa vain samalta- ja edelliseltä päivältä. Päivätyypin oletuksena on työpäivä, joka tarkoittaa nimensä mukaan normaalia työpäivää. Vapaapäivä tarkoittaa viikonloppua tai pyhäpäivää, joten jos työntekijä tekee työaikamerkinnän tällaiselle päivälle hänen työaikasaldonsa kasvaa suoraan työajan mukaan. Vuosilomapäivä ei muuta työaikasaldoa. Lomalla tarkoitetaan sitä, että pidetään vapaapäivä korvauksena ylitöistä, jolloin työaikasaldoa vähennetään. Sairaanaolo ei vaikuta työaikasaldoon. Jos valitaan vuosiloma, loma tai sairaana, ei työaikamerkintää voi syöttää. Osa-aikaisella eri päivätyypit eivät ole näkyvissä, koska lasketaan vain kertyneitä työtunteja se onko ne tehty arki- vai pyhäpäivänä ei merkitse ja lomat maksetaan rahana. Työssäoloaika on seurantaa varten eli työnantaja saa viitteitä siitä, mihin aikaan työntekijä on ollut työssä. Tietoa ei käytetä laskentaan. Työtunnit kenttään syötetään päivän työtunnit. Desimaaleja voi käyttää. Työajasta vähennetään puoli tuntia jos pidin ruokatunnin valitaan. Työajan jakautumisen työntekijä ilmoittaa valitsemalla yhden tai useamman projektin ja työtehtävän sekä ilmoittamalla niihin tehdyt tunnit. Tehdyistä töistä voi kirjoittaa myös vapaamuotoisen kuvauksen, joka tulee projektipäiväkirjaan. Projekteihin kohdistettuja työtunteja voi syöttää vähemmän (mutta ei enemmän) kuin mitä päivän työaika oli. Kohdistamattomat työtunnit talletetaan omaksi projektikseen. Kohdistettujen ja kohdistamattomien työtuntien perusteella voidaan laskea yrityksen laskutusaste. 9
Timo Lämsä 10 (13) 4.1.2. Raportit Raportit toimivat siten, että käyttäjä valitsee ensin raportoinnin ajanjakson: vuoden ja yhden tai useamman kuukauden. Seuraavaksi käyttäjä valitsee raportin, jonka hän haluaa ajaa. Valittavissa olevat raportit riippuvat käyttäjän oikeustasosta. Tavallisella työntekijällä on vain työaikaraportti, projektipäälliköllä sen lisäksi projektiraportit niistä projekteista, joissa hän on projektipäällikkönä. Johtotason henkilö saa projektiraportit kaikista raporteista ja lisäksi talousraportin. Johtajat voivat katsoa omansa lisäksi myös työntekijöiden työaikaraportit. Itse raportti tulostuu valintojen alle. Työaikaraportti sisältää valitun ajanjakson työtuntien summan ja työajan jakautumisen eri projektien ja työtehtävien kesken. Lisäksi on listaus koko aikavälin työpäivistä ja niiden merkinnöistä työajat ja projektipäiväkirjamerkinnät. Projektiraportti sisältää kaiken kyseiseen projektiin liittyvän tiedon eli projektiin käytetyn kokonaistyöajan ja sen jakautumisen työntekijöittäin, projektin kulut sekä projektipäiväkirjan. Projektipäiväkirjassa on työntekijöiden työaikamerkinnät kronologisessa järjestyksessä sisältäen työntekijöiden antamat vapaamuotoiset selitteet tehdyille töille. Talousraportti sisältää laskelmia projektien kustannuksista ja niiden laskutuksesta eli nähdään onko projekti tuottanut voittoa vai tappiota. Lisäksi näytetään koko yrityksen laskutusaste jos valitaan kaikki projektit. 10
Timo Lämsä 11 (13) 5. ULKOISET LIITTYMÄT 5.1. Laitteistoliittymät Ohjelmistoon ei liity muita laitteita kuin yksi tietokone (palvelin), joka ajaa ohjelmistoa. Käyttäjä voi halutessaan tulostaa raportteja www-selaimen kautta, mutta se ei vaadi erityistä huomiota suunnittelussa. Raportteja ei kuitenkaan ole edes tarkoitettu tulostettaviksi, koska ne ovat reaaliaikaisia www-selaimella katsottuna. 5.2. Ohjelmistoliittymät Sovellus tarvitsee toimiakseen jonkin sovelluspalvelimen, kuten IBM WebSphreren Application Server 3.5:n. Sovellus käyttää lisäksi projektissa toteutettavaa sovelluskehikkoa. 5.3. Tietoliikenneliittymät Sovellus on tarkoitettu käytettäväksi yrityksen sisäisessä lähiverkossa (intranet), mutta sitä voidaan tarvittaessa ajaa myös Internetissä. Internet käytössä suositellaan salattua yhteyttä selaimen ja palvelimen välillä. 11
Timo Lämsä 12 (13) 6. MUUT OMINAISUUDET 6.1. Suorituskyky ja vasteajat Työaikamerkinnän tekemisen tulisi olla suhteellisen nopea operaatio. Työaikamerkinnän tallettamisen tai hakemisen vasteajan raja-arvoksi asetetaan 3 sekuntia 95% tapauksista kun yhtä-aikaisia käyttäjiä on korkeintaan 50 ja palvelimena käytetään vähintään Pentium III pohjaista konetta, jossa on vähintään 256Mb muistia. Raportointia käytetään vähemmän, eikä niiden toiminnan nopeus ole kovinkaan kriittinen. Raportteja on useita erilaisia. Keskimääräiseksi raportin muodostamisen vasteajan raja-arvoksi asetetaan 15 sekuntia 90% tapauksista, kun yhtäaikaisia raportin käyttäjiä on korkeintaan 10 ja yrityksessä on yhteensä korkeintaan 200 työntekijää (työntekijämäärä vaikuttaa analysoitavan datan määrään). Palvelin on vastaava kuin edellisessä tapauksessa. 6.2. Käytettävyys, toipuminen, turvallisuus, suojaukset Sovelluksen tulee olla helppokäyttöinen, koska kaikkien yrityksen työntekijöiden tulee osata käyttää sitä. Sovellus ei toivu itsestään eli jos se kaatuu, ylläpitäjän täytyy käynnistää se uudelleen. Turvallisuus jätetään osittain sovelluksen käyttäjän huoleksi eli sovellus suunnitellaan käytettäväksi yrityksen sisäisessä verkossa (intranet). Tällöin turvallisuus ei ole kovin kriittinen tekijä, mutta toki käyttäjien autentikointi ja pääsynhallinta hoidetaan kunnolla. Jos sovellusta päätetään ajaa Internetissä, jää käyttäjän vastuulle salata yhteys ja ottaa vastuu Internetin käytöstä koituvista turvallisuusriskeistä. 6.3. Ylläpidettävyys Sovelluksesta ylläpidettävyyteen ei kiinnitetä erityistä huomiota, joten sovelluksesta tulee mitä ilmeisimmin melko hankalasti ylläpidettävä. Koska vaatimukset ovat todennäköisesti melko muuttumattomia, ei ylläpidettävyydellä ole suurempaa merkitystäkään. 6.4. Siirrettävyys/kannettavuus, yhteensopivuus Sovellus toimii kiinteästi yhdellä tai useammalla palvelimella ja vaatii sovelluspalvelimen, kuten IBM WebSpheren Application Server 3.5:n. Käyttöliittymä on www-pohjaisena laitteistoriippumaton ja toimii ainakin uusimmilla/yleisimmillä selaimilla. 12
Timo Lämsä 13 (13) 7. SUUNNITTELURAJOITTEET 7.1. Standardit Projektiryhmä käyttää Sunin Java Code Convetionia Java-koodiin [4] (projektisuunnitelma, luku 11 [3]). 7.2. Laitteistorajoitteet Sovellus toimii hyvinkin vaatimattomalla laitteistolla jos käyttäjämäärät eivät ole suuret. Tämänhetken peruspalvelin kykenee ajamaan sovellusta suurillakin käyttäjämäärillä. Sovellus vaatii toimiakseen jonkin sovelluspalvelimen, kuten IBM WepSphere Application Server 3.5:n, jonka muistivaatimus on sovelluspalvelimelle vähintään 128 Mt, suositus kuitenkin 256 Mt. 8. JATKOKEHITYSAJATUKSIA Sovelluksella ei ole jatkokehityssuunnitelmia. 13