Uutisjärjestelmä Vaatimusmäärittely Versio 1.3
Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2 Dokumentin lukijakunta... 5 5 Yleiset vaatimukset... 5 5.1 Järjestelmän näkökulma... 5 5.2 Toiminnallinen ympäristö... 6 5.3 Määrittelyn ja suunnittelun rajoitteet... 7 5.4 Toimitettava dokumentaatio... 7 5.5 Riskit... 7 6 Vaatimusten luokittelu... 8 7 Järjestelmävaatimukset... 8 7.1 Käyttäjän tunnistaminen (P)... 8 7.2 Käyttäjäryhmien hallinnointi (P)... 8 7.3 Sessiokontrolli (P)... 8 7.4 Rinnakkaiskäyttö (P)... 9 7.5 Uutistiedot (P)... 9 7.6 Tuottajatiedot (S)... 9 7.7 Arkkitehtuuri (P)... 9 7.8 XML:n käsittely (P)... 9 8 Vaatimukset ulkoisille rajapinnoille... 10 8.1 Käyttöliittymävaatimukset... 10 8.1.1 Käyttäjäroolin mukaan muuttuva toiminnallisuus (S)... 10 8.1.2 Login-näyttö (P)... 10 8.1.3 Haku-näyttö (P)... 10 8.1.4 Hakusanat (S)... 10 8.1.5 Uutisen lisäys (P)... 11 8.1.6 Uutisen poisto (S)... 11 8.1.7 Uutisen päivitys (V)... 11 8.1.8 Tuottajatietojen lisäys (V)... 11 8.1.9 Tuottajatietojen poisto (V)... 11 8.1.10 Tuottajatietojen päivitys (V)... 11 2/12
8.1.11 Connection Poolin käyttö... 12 3/12
1 Muutoshistoria Nimi Pvm Muutoksen kuvaus Versio Jukka Harju 19.1.2005 Dokumentti luotu. Sisällöstä 1.0 puuttuu vielä JSP ja DOM/SAX osuuksien kuvaukset. Servlet osuuden kuvaus on valmis. Jukka Harju 28.2.2005 Lisätty vaatimukset JSP:n 1.1 suhteen (luvut 7.7). Jukka Harju 15.3.2005 Lisätty vaatimus XML:n 1.2 käytöstä (luku 7.8 ). Jukka Harju 23.1.2006 Päivitetty 1.3 2 Viitteet Dokumentti ei sisällä viitteitä muihin dokumentteihin. 3 Sanasto 3.1 Lyhenteet UML JSP Unified Modeling Language JavaServer Pages http://java.sun.com/products/jsp/ 3.2 Määritelmät Servlet Container Tomcat Java-ohjelma joka sijaitsee palvelimella. Servlet vastaa asiakkaan HTTP-pyyntöihin tuottamalla dynaamisesti (x)html-sivuja. Web-palvelin, joka tukee servlettien ja JSP-sivujen suorittamista. Jakarta-projektin valmistama container, joka on erittäin tunnettu ja laajalti käytetty. 4/12
4 Johdanto 4.1 Järjestelmän yleiskuvaus Dokumentti määrittelee vaatimukset n kurssin atk2ad Webpalvelujen kehittäminen toteutuksen 6 (kevät 2006) etätehtävänä suunniteltavalle ja toteutettavalle uutisjärjestelmälle. Myös omaa aihetta saa ehdottaa, kunhan se täyttää annettua aihetta vastaavan vaatimustason. Oman aihe tulee hyväksyttää kurssin opettajalla. Etätehtävä sisältää kolme alakohtaa, jotka ovat: servletit JSP DOM, JDOM & SAX. Uutisjärjestelmän kautta voidaan välittää asiakkaille ajankohtaisia tietoja aiheiden, päiväyksen yms. hakutekijöiden mukaan luokiteltuna. uutisjärjestelmä toteutetaan Servlet / JSP / XML-teknologialla. Järjestelmä sisältää Web-käyttöliittymän, jonka kautta voidaan sekä hakea että selailla järjestelmään kirjattuja uutisia. Lisäksi saman käyttöliittymän kautta voidaan järjestelmään viedä uusia uutisia, jota varten järjestelmään suunnitellaan erillinen operaattori-tyyppinen käyttäjärooli. 4.2 Dokumentin lukijakunta Tämä dokumentti on tarkoitettu ensisijaisesti atka2d-kurssin opiskelijoiden ja opettajien luettavaksi, mutta sisältää tietoa myös kaikille muille n atka2d-kurssista kiinnostuneille. 5 Yleiset vaatimukset 5.1 Järjestelmän näkökulma Järjestelmä ei sisällä historiallisista syistä johtuvia vaatimuksia, vaan kyseessä on täysin uusi järjestelmä. Järjestelmän toiminnalliset vaatimukset on määritelty luvussa 7. Oheisessa kuvassa on kuvattu järjestelmän rakenne karkealla tasolla. 5/12
Asiakas (Web-selain) Palvelin HTTP pyynnöt ja vastaukset Tomcat 5.5 Xml ja xsldokumentit Servletit ja JSPsivut Tietokanta (MySQL) Kuva 1: Järjestelmän rakenne 5.2 Toiminnallinen ympäristö Järjestelmän tuotantoympäristönä on Linux RHEL3-käyttöjärjestelmä, MySQL 3.23.58 tietokanta, Tomcat 5.5.12 servlet-container ja Java SDK 1.5.0_06. Järjestelmän on toimittava Mozilla Firefox versiossa 1.0.4 ja uudemmissa. Palvelimena toimii n pusku-palvelin. Järjestelmän kehitysympäristöksi suositellaan Windows XP:tä tai puskupalvelinta. Kehitystietokannaksi suositellaan MySQL:n versiota MySQL 6/12
3.23.58. Tomcatista suositellaan myös kehitystyössä käytettäväksi versiota 5.5.X, jotta yhteensopivuusongelmilta tuotantoonsiirrossa vältytään. 5.3 Määrittelyn ja suunnittelun rajoitteet Järjestelmän suunnittelussa on käytettävä UML:n mukaisia kuvausmenetelmiä. Järjestelmä ei sisällä rajapintoja ulkopuolisiin järjestelmiin, joten näistä johtuvia vaatimuksia ei ole. Järjestelmää tullaan käyttämään sisäverkossa, joten käyttäjätunnistuksen lisäksi muita mainittavia tietoturvan kannalta oleellisia vaatimuksia ei ole. Järjestelmän vasteaikojen tai käyttäjämäärien suhteen ei myöskään aseteta vaatimuksia. 5.4 Toimitettava dokumentaatio 5.5 Riskit Järjestelmästä tulee toimittaa seuraava dokumentaatio, joka on osa etätehtävän arvostelua: Tekninen suunnittelukuvaus Käyttöohje Asennusohje Koska resurssien rajallisen määrän vuoksi mahdollisuutta toiminnallisen määrittelyn tuottamiseen ei ole, on tekniseen suunnittelukuvaukseen sisällytettävä kuvauksen kannalta oleelliset korkeamman tason toiminnallisuuden kuvaukset. Resursseja testaussuunnitelman tekoon ja testaamisen suorittamiseen ei myöskään ole, mutta kehittäjien on suoritettava kehitystyön ohessa työn palautuksen kannalta riittävä toiminnallinen testaus. Suurin riski järjestelmän toteutuksen epäonnistumiseen liittyy henkilökohtaiseen ajankäyttöön. Mikäli etätehtävänä toteutettavan järjestelmän kehitykseen ei panosteta riittävästi aikaa ja vaivaa, on uhka järjestelmän toteuttamisen epäonnistumiseen merkittävä. Lukujärjestykseen on merkitty 4 viikottaista lähiopetustuntia. Näistä tulee 8 opetusviikon aikana yhteensä 32 tuntia. 3,75 (puolet atka2d-kurssista) opintopisteen laskennallinen työmäärä on 100 tuntia. Näin ollen opiskelijan oman etätyön osuudeksi jää laskennallisesti 68 tuntia. 7/12
Järjestelmä toteutetaan yksilötyönä, joten ryhmädynamiikan ongelmista johtuvia riskejä ei ole olemassa. 6 Vaatimusten luokittelu Kaikki tämän jälkeisissä luvuissa esiintyvät vaatimukset on luokiteltu seuraavaa asteikkoa käyttäen. Vaatimustaso Lyhenne & värikoodaus Pakollinen P Pakollinen vaatimus järjestelmän hyväksymiseksi. Suositeltava S Järjestelmään sisällytettäväksi suositeltava ominaisuus. Vapaaehtoinen V Vapaaehtoinen vaatimus, jonka toteuttaminen korottaa työn arvosanaa. Taulukko 1: Vaatimusten luokittelu 7 Järjestelmävaatimukset 7.1 Käyttäjän tunnistaminen (P) Järjestelmän on tunnistettava käyttäjä. Jarjestelmä käyttö on sallittava vain käyttäjille joilla on siihen oikeus ja jotka on tunnistettu käyttäjätunnuksen ja salasanan avulla. Käyttäjän tunnistus on toteutettava omalla ohjelmoinnilla, eli esim. Tomcatin tarjoamien valmiiden tunnistusmekanismien käyttö on kiellettyä. 7.2 Käyttäjäryhmien hallinnointi (P) Järjestelmän on sisällettävä vähintään kaksi erillistä käyttäjäryhmää, joista toiseen on liitettävä jokainen järjestelmään käyttöoikeudet omaava käyttäjä. 7.3 Sessiokontrolli (P) Järjestelmän on pidettävä kirjaa sessioista siten, että jo järjestelmään kirjautunutta käyttäjää ei pyydetä kirjautumaan uudelleen ennen kuin session maksimi idletime on ylitetty. 8/12
7.4 Rinnakkaiskäyttö (P) Järjestelmän on pystyttävä palvelemaan useita (>2) yhtäaikaisia käyttäjiä. 7.5 Uutistiedot (P) Järjestelmään on pystyttävä uutiskohtaisesti tallentamaan ainakin seuraavat tiedot: Päivämäärä Luokitus (esim. kotimaa, ulkomaat, urheilu, jne...) Otsikko Artikkeli, uutisen sisältö kokonaisuudessaan. 7.6 Tuottajatiedot (S) Järjestelmässä on suositeltavaa olla mahdollisuus tallentaa uutisen tuottajan tiedoista ainakin seuraavat: Toimittajan nimi Tietotoimisto Maa 7.7 Arkkitehtuuri (P) Järjestelmän toteutuksessa tulee käyttää MVC-mallin mukaista arkkitehtuuria. 7.8 XML:n käsittely (P) Järjestelmään tulee toteuttaa XML:n käsittelyä DOMia, JDOMia tai SAXia hyödyntäen. XML:n käsittelyosuus voi olla esim. rajapinta jonka kautta järjestelmään saadaan ladattua tietoa XML-muotoisista tiedostoista, DOM / JDOM-olioiden hyödyntäminen beaneissä tai DOMin / JDOMin / SAXin hyödyntäminen käyttöliittymän näkymiä kuvaavien XML-tiedostojen käsittelyssä. 9/12
8 Vaatimukset ulkoisille rajapinnoille Järjestelmä ei sisällä käyttöliittymän lisäksi lainkaan muita ulkoisia rajapintoja. 8.1 Käyttöliittymävaatimukset 8.1.1 Käyttäjäroolin mukaan muuttuva toiminnallisuus (S) Käyttöliittymän on suositeltavaa tukea kahta erillistä käyttäjäroolia: peruskäyttäjät ja operaattorit. Näistä peruskäyttäjän oikeudet järjestelmän käyttöön ovat rajoitetummat. Peruskäyttäjä -roolissa ei järjestelmään ole lainkaan mahdollista tehdä päivityksiä, ainoastaan erilaiset haut ovat sallittuja. 8.1.2 Login-näyttö (P) Järjestelmässä on oltava näyttö jonka kautta järjestelmään sisäänkirjautuminen tapahtuu. 8.1.3 Haku-näyttö (P) Järjestelmässä on oltava näyttö, jolta käyttäjä voi hakea järjestelmään talletettuja uutisartikkeleita. Hakuja on voitava tehdä ainakin seuraavilla hakuehdoilla: Aikaväli (jokaisella uutisella on ilmestymispäivä) Luokitus (esim. kotimaa, ulkomaat, urheilu, jne.) 8.1.4 Hakusanat (S) Järjestelmässä on suositeltavaa olla mahdollisuus tallettaa jokaiseen uutiseen liittyviä oleellisimpia hakusanoja ja mahdollisuus suorittaa hakuja näihin olemassaoleviin hakusanoihin perustuen. 10/12
8.1.5 Uutisen lisäys (P) Järjestelmässä on oltava näyttö, jonka kautta operaattori - roolin käyttäjä pystyy lisäämään järjestelmään uusia uutisia. Peruskäyttäjällä ei saa olla pääsyä ko näytölle. 8.1.6 Uutisen poisto (S) Järjestelmässä on oltava toiminnallisuus jolla valittu uutinen voidaan poistaa järjestelmästä. Ko toiminnallisuus ei saa olla peruskäyttäjän käytettävissä. 8.1.7 Uutisen päivitys (V) Järjestelmään voidaan haluttaessa toteuttaa toiminnallisuus jonka kautta järjestelmään aiemmin vietyjä uutisia voidaan editoida (päivittää kirjoitusvirheitä tms.). 8.1.8 Tuottajatietojen lisäys (V) Järjestelmään voidaan haluttaessa toteuttaa näyttö, jonka kautta operaattori -roolin käyttäjä pystyy lisäämään järjestelmään uusia tuottajia. Peruskäyttäjällä ei saa olla pääsyä ko näytölle. 8.1.9 Tuottajatietojen poisto (V) Järjestelmään voidaan haluttaessa toteuttaa toiminnallisuus jolla valittu tuottaja voidaan poistaa järjestelmästä. Ko toiminnallisuus ei saa olla peruskäyttäjän käytettävissä. 8.1.10 Tuottajatietojen päivitys (V) Järjestelmään voidaan haluttaessa toteuttaa toiminnallisuus jonka kautta järjestelmään aiemmin vietyjä tuottajatietoja voidaan editoida (päivittää kirjoitusvirheitä tms.). 11/12
8.1.11 Connection Poolin käyttö Järjestelmään voidaan haluttaessa toteuttaa connection poolin käyttö, jolla järjestelmä saadaan palvelemaan hyvinkin suuria käyttäjämääriä. 12/12