TIETOJENKÄSITTELYTIETEEN LAITOS Ohjelmistotuotantoprojekti 18.07.2006 Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2 Määrittelydokumentti 2.2 Hemminki Samuli Herranen Mikko Hinkkanen Tero Mäkelä Ari Piuva Tero Töyli Terhi
Ohjaaja Asiakas Sinerma Olli Taina Juha Tekninen yhteyshenkilö Taina Juha Vastuuhenkilö Verkamo Inkeri Versiohistoria Versio Päiväys Muutokset 0.1 19.06.2006 1. versio 0.2 20.06.2006 korjauksia ja lisäyksiä 0.3 26.06.2006 korjauksia ja lisäyksiä 1.0 26.06.2006 asiakkaalle palautettu versio 1.1 03.07.2006 korjauksia ja lisäyksiä 1.2 04.07.2006 korjauksia 1.3 08.07.2006 korjauksia 2.0 10.07.2006 tarkastettava versio 2.1 12.07.2006 jäädytetty versio 2.2 18.07.2006 Lisätty ristiviittauskaavio ja indeksoitu vaatimukset uudelleen.
Sisältö 1 Johdanto... 1 1.1 Termit ja määritelmät... 1 1.2 Ilpon kuvaus... 2 2 Yleisarkkitehtuuri... 5 2.1 Järjestelmän kuvaus... 5 2.2 Käsiteltävät tiedostot... 5 2.3 Rakenne... 6 3 Vaatimukset... 7 3.1 Toiminnalliset vaatimukset... 7 3.1.1 Tietorakenteet on alustettava uudelleen uutta kurssia luotaessa... 7 3.1.2 Tallenna-toiminto tulee tehdä... 7 3.1.3 Ohjelman asetuksia on pystyttävä muuttamaan asetustiedostosta... 7 3.1.4 Työvaiheiden tulee näkyä käyttäjälle... 7 3.1.5 Ryhmätoiveen on näyttävä opiskelijapallossa... 8 3.1.6 Ohjelma ei saa kadottaa opiskelijapallovalintoja... 8 3.1.7 Usean opiskelijan yhtäaikainen siirtäminen... 8 3.1.8 Opiskelijoita tulee pystyä lisäämään kurssin perustamisen jälkeen... 8 3.1.9 Ryhmien tietojen käsittelyn tulee olla mahdollista... 8 3.1.10 Esitiedot tulee varmistaa automaattisesti... 9 3.1.11 Projektiaiheita tulee pystyä lisäämään kurssin perustamisen jälkeen. 9 3.1.12 Opiskelijoita tulee pystyä poistamaan... 9 3.1.13 Opiskelijapallot tulee yksilöidä monivalinnassa... 9 3.1.14 Ilmoittautumisjärjestelmän kysymykset tulee hakea asetustiedostosta.... 10 3.1.15 Heuristiikka - Ohjelman tulee jakaa opiskelijat valmiiksi ryhmiin... 10 3.1.16 Hakutoimintoa pitää parantaa... 10 3.1.17 Ohjelman tulee tulostaa raportteja... 10 3.1.18 Ohjelman asetuksia on pystyttävä muuttamaan ohjelman sisältä... 11 3.1.19 Ryhmätoiveita ja vastauksia tulee pystyä päivittämään... 11 3.1.20 Vapaamuotoista tekstiä tulee pystyä lisäämään projektiryhmiin... 11 3.1.21 Ohjelman tulee tarjota kurssihistoria... 11 3.1.22 Ohjelman pitää sisältää kalenteri ryhmien kokoontumisajoista... 11 3.2 Ei-toiminnalliset vaatimukset... 12 3.2.1 Tallennusformaatin on oltava tekstipohjainen... 12 3.2.2 Ohjelman sen hetkinen tilanne on oltava tallennettavissa, vaikka sovellus kaatuisikin... 12 3.2.3 Raportit tulee tulostaa aakkosjärjestyksessä... 12 3.2.4 Tietonäkymä tulee lajitella aakkosjärjestykseen... 12 3.3 Laadulliset vaatimukset... 12 3.3.1 Koodin on oltava siistiä ja ylläpidettävää... 12 3.3.2 Ohjelmassa ei saa olla turhia toimintoja... 13 3.3.3 Kalenteriosuuden tulee olla lisättävissä... 13 3.3.4 Vastausten parsiminen tulee korjata... 13
4 Toiminnot... 14 4.1 Alkutoimenpiteet... 14 4.2 Kurssin lataaminen Ilpo2:n... 14 4.3 Opiskelijan lisääminen kurssin perustamisen jälkeen... 15 4.4 Esitietojen tarkistaminen... 15 4.5 Opiskelijan poistaminen... 15 4.6 Opiskelijan vastauksien päivittäminen / lisääminen... 16 4.7 Uuden projektiaiheen lisääminen kurssin perustamisen jälkeen... 16 4.8 Usean opiskelijan siirtäminen... 16 4.9 Lukukauden vaihtaminen... 17 4.10 Raporttien tulostus... 17 4.11 Vapaamuotoisen tekstin lisääminen ryhmään... 17 4.12 Ryhmän tietojen tarkastelu ja muuttaminen... 18 5 Käyttötapaukset... 19 5.1 Kurssin perustaminen... 19 5.2 Opiskelijan lisäys... 19 5.3 Opiskelijan poisto... 20 5.4 Raporttien tulostus... 20 5.5 Tapaamisaikojen lisäys... 20
1 Johdanto Tässä dokumentissa määritellään Helsingin yliopiston tietojenkäsittelytieteen laitoksella kesällä 2006 tuotettavan ohjelmistotuotantoprojektin Ilpo2 vaatimukset. Ilpo2 on Ohjelmistotuotantoprojekti-kurssin vastuuhenkilön käyttöön tuleva kurssiilmoittautumisten profilointiohjelma. Sitä jatkokehitetään aiemman ohjelmistotuotantoprojektiryhmän tuottaman ja Juha Tainan muokkaaman Ilpoohjelman pohjalta. Ohjelmaan tehtävistä laajennuksista tuotetaan käyttöliittymäprototyyppi. Käyttöliittymä esitellään asiakkaalle muutoksien osalta. Käyttöliittymäprototyyppi tehdään PowerPoint-esityksenä, jolloin prototyyppiä ei tarvitse ohjelmoida. 1.1 Termit ja määritelmät AWT: Javan matalan tason käyttöliittymäkirjasto, johon mman tason alustariippumaton Swing perustuu. asetustiedosto: Ohjelman käyttöasetukset sisältävä tiedosto. dialogi: Vuorovaikutteinen käyttöliittymäelementti, jonka avulla käyttäjälle annetaan tai häneltä pyydetään tietoa. heuristiikka: Heuristiikka tarkoittaa keksimistaitoa. Näin ollen, heuristinen algoritmi on sellainen, joka saamastaan syötteestään osaa "päätellä" halutun lopputuloksen. Algoritmin tuottama lopputulos ei välttämättä ole optimaalinen, mutta se on riittävän hyvä jonkin kriteerin perusteella arvioituna. ilmoittautujatiedosto: Tiedosto, joka pitää sisällään tiedot kurssille ilmoittautuneista opiskelijoista ja heidän antamista vastauksistaan Ilmo-järjestelmän esittämiin kysymyksiin. Ilpo: Ilpo-ryhmän keväällä 2005 tuottama ja myöhemmin Juha Tainan muokkaama ohjelma kurssi-ilmoittautumisten profilointiin. Ilpo2: Ilpon pohjalta kesällä 2006 kehitettävä jatkoprojekti. JDBC: Java-kielelle toteutettu sovellusrajapinta, joka tarjoaa liityntämahdollisuuden useiden eri valmistajien relaatiotietokantoihin. kalenteri: Graafinen käyttöliittymäkomponentti, joka ilmaisee Ohjelmistotuotantoprojekti-kurssin ryhmien tapaamisajat. kovakoodaus: Arvojen upottaminen itse ohjelman lähdekoodiin, vastakohtana arvojen selvittäminen ajonaikana esimerkiksi tiedostosta lukemalla. opiskelijanäkymä: Ohjelmaikkunan vasemmanpuoleisen osan yläosa, jossa opiskelijat esitetään valitun järjestelyperusteen mukaan ryhmiteltyinä. opiskelijapallo: Opiskelijaa kuvaava ympyränmuotoinen graafinen elementti. parsiminen: (tässä yhteydessä) Arvojen lukeminen ohjelman syötetiedostosta. 1
prioriteetti: Tässä dokumentissa prioriteetilla ilmaistaan vaatimusten tärkeyttä ja järjestystä jolla ne toteutetaan. Dokumentissa käytettävät prioriteetit ovat seuraavat: matala, normaali ja. ryhmänäkymä: Ohjelmaikkunan oikeanpuoleinen osa, jossa projektiryhmät esitetään. sarjallistuvuus: Sarjallistuvan Java-luokan ilmentymä osaa kirjoittaa oman sisäisen tilansa muodossa, joka soveltuu esimerkiksi levylle tallentamista varten. säännöllinen lauseke: Tietyn syntaksin mukainen merkkijono, joka määrittelee joukon merkkijonoja. Tietyn säännöllisen lausekkeen määrittelemien merkkijonojen sanotaan vastaavan tätä säännöllistä lauseketta. Säännöllisiä lausekkeita voidaan käyttää esimerkiksi löytämään kaikki tiettyä säännöllistä lauseketta vastaavat merkkijonoesiintymät tekstistä. Swing: Javan mman tason käyttöliittymäkomponentteja sisältävä pakkaus. tietonäkymä: Ohjelmaikkunan vasemmanpuoleisen osan alaosa, jossa esitetään tietoja esimerkiksi valituista opiskelijoista. tilapalkki: Käyttöliittymän graafinen elementti, josta suoritetut työvaiheet käyvät ilmi. 1.2 Ilpon kuvaus Ilpo on keväällä 2005 Helsingin yliopiston tietojenkäsittelytieteen laitoksen kurssilla ohjelmistotuotantoprojekti tuotettu ohjelma kurssi-ilmoittautumisten profilointiin ja ilmoittautuneiden opiskelijoiden ryhmiin jakamiseen. Ohjelmistotuotantoprojektikurssin vastuuhenkilö Juha Taina on myöhemmin muokannut ohjelmaa kurssin tarpeisiin sopivammaksi. Ilpo avaa käynnistettäessä keskeltä pystysuunnassa kahtia jaetun ikkunan. Ikkunan vasemmanpuoleinen osa on vielä erikseen jaettu kahteen osaan. Näistä ylempi osa on niin sanottu opiskelijanäkymä, jossa kurssille ilmoittautuneet opiskelijat esitetään opiskelijapalloina. Ohjelmaikkunan vasemmanpuoleisen osan alempi osa on nimeltään tietonäkymä. Siinä esitetään tietoja valituista opiskelijoista. Ohjelmaikkunan oikeanpuoleinen osa on nimeltään ryhmänäkymä. Siinä esitetään kurssin projektiryhmät. Ohjelmaikkunan yläreunassa on lisäksi joukko valikoita. Ilpon käyttö aloitetaan lataamalla järjestelytilanne tai perustamalla kurssi. Järjestelytilanne ladataan valitsemalla Tiedosto-valikosta toiminto "Lataa". Järjestelytilanne lataamalla voidaan jatkaa tallennettua työtä. 2
Kurssi perustetaan valitsemalla Kurssi-valikosta toiminto "Perusta kurssi". Ilpo kysyy perustettavan kurssin kurssikoodia, nimeä, lukuvuotta ja lukukautta. Kurssin perustamisen jälkeen käyttäjän on vielä valittava Kurssi-valikosta toiminnot "Lue ryhmät", "Lue ilmoittautujat" ja "Lue opintosuoritukset". "Lue ryhmät" lukee tarjolla olevat projektiaiheet tiedostosta, "Lue ilmoittautujat" lukee kurssille ilmoittautuneet opiskelijat tiedostosta ja "Lue opintosuoritukset" lukee ilmoittautuneiden opiskelijoiden opintosuoritustiedot tiedostosta. Opiskelijoita ei voi lisätä muuten kuin toiminnon "Lue ilmoittautujat" kautta. Opiskelijoita ei myöskään voi poistaa muuten kuin perustamalla uuden kurssin. Opiskelijoiden tiedot tulevat näkyviin opiskelijanäkymään vasta opintosuoritusten lukemisen jälkeen. Kaikki neljä toimintoa on valittava tässä järjestyksessä ja vain kertaalleen. Ilpo ei näytä tietoa jo suoritetuista toiminnoista. Ilmoittautuneet opiskelijat sisältävä tiedosto sisältää myös opiskelijoiden ilmoittautumisjärjestelmän kysymyksiin antamat vastaukset. Jokainen vastaus on liitetty yhteen kysymykseen muotoa "#<L>" olevalla koodilla, missä <L> on jokin nollaa suurempi kokonaisluku. Ilpo osaa käsitellä vain ne koodit, joiden kokonaislukuosa on pienempi kuin 10. Itse vastaus on esitetty luettelona pilkulla erotettuja kokonaislukuja. Jokainen kokonaisluku vastaa yhtä vastausvaihtoehtoa. Jos listassa kuitenkin on muussa muodossa olevaa tietoa (kuten tekstiä), Ilpo tulkitsee, että vastausta ei ole annettu lainkaan ja hyväksyy vastauksen tyhjänä vastauksena. Kun opintosuoritukset on luettu tiedostosta, Ilpo näyttää kurssille ilmoittautuneet opiskelijat opiskelijapalloina opiskelijanäkymässä. Opiskelijoiden esitiedot tarkistetaan ohjelmaan kovakoodattuja esitietovaatimuksia vasten. Sininen opiskelijapallo kuvaa opiskelijaa, jonka esitiedot eivät vastaa esitietovaatimuksia, ja punainen opiskelijapallo opiskelijaa, jonka esitiedot vastaavat esitietovaatimuksia. Opiskelijapallot on ryhmitelty opiskelijoiden ilmoittautuessaan antamien vastausten perusteella numeroiden 1-6 tai viivamerkin alle. Numerot 1-6 kuvaavat valitun kysymyksen vastausvaihtoehtoja ja viiva kuvaa tilannetta, jossa kysymykseen ei ole vastattu. Käyttäjä voi vaihtaa kysymystä, jonka vastausten perusteella opiskelijat ryhmitellään. Kysymykset ja vastausvaihtoehdot on kovakoodattu ohjelmaan. Käyttäjä voi myös rajata näytettäviä opiskelijoita syöttämällä opiskelijanäkymässä olevaan "Rajaa"-kenttään säännöllisen lausekkeen. Tällöin Ilpo näyttää opiskelijanäkymässä vain ne opiskelijat, joiden henkilötietojen yksi tai useampi kenttä vastaa annettua säännöllistä lauseketta. Opiskelija voidaan valita opiskelijanäkymästä hiirellä klikkaamalla. Valitun opiskelijan tiedot näytetään tietonäkymässä. Tietonäkymässä on useita eri välilehtiä, joista käyttäjä voi valita valitusta opiskelijasta näytettävät tiedot. Opiskelijasta näytettäviä tietoja ovat esimerkiksi henkilötiedot ja puuttuvat opintosuoritukset. Opiskelijanäkymästä voidaan valita myös useita opiskelijoita kerralla pitämällä ctrlnäppäintä pohjassa valintoja tehdessä, mutta tällöin tietonäkymässä näytetään vain valittujen opiskelijoiden nimet. Valittujen opiskelijoiden nimiä ei ole järjestetty. 3
Käyttäjä voi perustaa uusia ryhmiä vetämällä hiirellä ryhmänäkymän "Uusi ryhmä"- ikkunan haluamalleen paikalle ryhmänäkymässä. Ilpo luo uuden ryhmän ikkunan tähän kohtaan. Opiskelijoita voidaan siirtää ryhmiin vetämällä opiskelijapallo hiirellä opiskelijanäkymästä ryhmänäkymän jonkin ryhmän ikkunan sisälle. Vain yksi opiskelijapallo voidaan siirtää kerrallaan, vaikka useita opiskelijoita olisikin valittuina. Käyttäjä voi tulostaa ohjelmalla erilaisia raportteja. Nämä ovat järjestämätön lista ilmoittautuneiden opiskelijoiden henkilötunnuksista, ryhmittäin järjestetty lista opiskelijoista henkilötunnuksilla ja ilman ja sukunimen mukaan järjestetty lista opiskelijoiden tiedoista. Kaikki raportit ovat tekstimuotoisia. Jotkin raportit ovat myös HTML-muotoisia tai sisältävät HTML-tageja. Käyttäjä voi myös tallentaa järjestelytilanteen tiedostoon, josta se voidaan myöhemmin ladata takaisin ohjelmaan. Järjestelytilannetta tallennettaessa ohjelma kysyy aina tallennustiedoston nimeä. Osa Ilpon valikoissa olevista toiminnoista on käytöstä poistettuja tai toimimattomia. Nämä toiminnot ovat Tiedosto-valikon "Tuo", "Vie" ja "Tallenna HTML", Kurssivalikon "Lisää henkilökuntaa" ja Toiminnot-valikon "Virkistä". Lisäksi tietonäkymän välilehden Ohtu-projekti kentät "arvosteltu", "ei läpäissyt kurssia" ja "arvosana" ovat turhia. 4
2 Yleisarkkitehtuuri Tässä luvussa annetaan n tason kuvaus Ilpo2:n arkkitehtuurista. 2.1 Järjestelmän kuvaus Tarkoituksena on jatkokehittää Ilpon käyttöliittymää ja tietomallia, jotta asiakkaan työtehtävät olisivat helpompia ja joissakin tapauksissa edes mahdollisia. Myös ohjelman ylläpidettävyyttä pyritään parantamaan. Ilpo2 toteutetaan Java-ohjelmointikielellä (versio 1.5.0). Ilpo2:n graafinen käyttöliittymä toteutetaan Swingillä. Ilpo2 ei käytä tietokantoja eikä se autentikoi käyttäjää. 2.2 Käsiteltävät tiedostot Ilpo2 saa kaikki tarvitsemansa tiedot käyttäjältä ja käyttäjän valitsemista tiedostoista. Se käsittelee kahdenlaisia tiedostoja: tiedostoja, joista se lukee, ja tiedostoja, joihin se kirjoittaa sekä tiedostoja, joihin se voi tehdä sekä kirjoitus- että lukuoperaatioita. Ilpo2 lukee HTML-muotoista aihelistatiedostoa, TXT-muotoisia ilmoittautuja- ja opintosuoritustiedostoja, TXT-muotoista asetustiedostoa ja TXT-muotoista tallennustiedostoa. Asetustiedosto sisältää ohjelman asetukset. Tallennustiedosto sisältää tallennetun työn. Ilpo2 voi kirjoittaa HTML-muotoisen ryhmäjakotiedoston ilmoitustaululle kiinnittämistä varten, TXT-muotoisen ryhmäjakotiedoston ohjaajia varten, ilmoittautujien puutteelliset esitiedot sisältävän TXT-muotoisen tiedoston sekä TXT-muotoisen tiedoston opiskelijoista, jotka eivät ole vielä allekirjoittaneet Ohjelmistotuotantoprojekti- kurssilla vaadittavaa sopimusta. Ilpo2 tallettaa ohjelman tilanteen TXT-muotoiseen tiedostoon. Alla on asiaa selventävä kaavio. Tallennustiedosto Ryhmäjako taululle-raportti Aihelistatiedosto Käyttäjä Ryhmäjako ohjaajille-raportti Asetustiedosto Ilpo2 Puutteelliset esitiedot-raportti Ilmoittautujatiedosto Opintosuoritustiedosto Puuttuvat lisenssisopimukset -tiedosto 5
2.3 Rakenne Tässä luvussa selvennetään ohjelman rakennetta ja sen jakautumista komponentteihin. 6
3 Vaatimukset 3.1 Toiminnalliset vaatimukset 3.1.1 Tietorakenteet on alustettava uudelleen uutta kurssia luotaessa Käyttäjän ladatessa uuden kurssin edellisen kurssin tiedoista ei saa jäädä jälkiä ohjelman tietorakenteisiin. Tietorakenteet on alustettava uudelleen, jotta käsiteltävän kurssin ja lukukauden vaihtaminen on mahdollista ilman ohjelman uudelleenkäynnistystä. Viitattu: 4.2, 4.9 3.1.2 Tallenna-toiminto tulee tehdä Sovelluksen tulee tarjota Tallenna-toiminto, jolla tilanne voidaan tallentaa nykyisen tallennustiedoston päälle siten, että tiedostoa ei tarvitse valita erikseen. Tämä tulee toteuttaa jo olemassa olevan Tallenna nimellä -toiminnon rinnalle. 3.1.3 Ohjelman asetuksia on pystyttävä muuttamaan asetustiedostosta Ohjelma lukee käynnistyessään ohjelman käyttöasetukset asetustiedostosta. Asetustiedostoa muokkaamalla ohjelman toimintaan voidaan vaikuttaa. Asetustiedosto sisältää ainakin seuraavat asetukset: ryhmien minimi- ja maksimikokorajat, oletushakemistot ohjelman syöte- ja tulostetiedostoille, sanalliset selitykset ilmoittautujatiedoston sisältämille numeerisille kysymys- ja vastauskoodeille sekä esitietovaatimukset. Esitietovaatimuksia on selvennetty kohdassa 3.1.4. 3.1.4 Työvaiheiden tulee näkyä käyttäjälle Ohjelman on näytettävä käyttäjälle uutta kurssia luotaessa, mitkä työvaiheet kurssin luonnista on jo suoritettu. Se, miten suoritetut työvaiheet näytetään, on suunnittelupäätös. 7
3.1.5 Ryhmätoiveen on näyttävä opiskelijapallossa Opiskelijapallon sisällä pitää näkyä oletuksena opiskelijan ensisijainen ryhmätoive numerona. 3.1.6 Ohjelma ei saa kadottaa opiskelijapallovalintoja Käyttäjä voi valita yhden tai useampia opiskelijapalloja hiiren nappia painamalla. Valitut opiskelijapallot eivät saa muuttua valitsemattomiksi muuten kuin uusia opiskelijapallovalintoja tehdessä. Viitattu: 4.8 3.1.7 Usean opiskelijan yhtäaikainen siirtäminen Monen opiskelijapallon siirtäminen opiskelijanäkymän ja ryhmänäkymän välillä tulee olla mahdollista yhtäaikaisesti. Viitattu: 4.8 3.1.8 Opiskelijoita tulee pystyä lisäämään kurssin perustamisen jälkeen Opiskelijoita tulee pystyä lisäämään muutoin kuin suoraan tekstitiedostoa editoimalla. Opiskelijoita tulee pystyä lisäämään kurssin perustamisen jälkeenkin. Viitattu: 4.3, 4.6 3.1.9 Ryhmien tietojen käsittelyn tulee olla mahdollista normaali Seuraavia ryhmän tietoja tulee pystyä tarkastelemaan/käsittelemään: ryhmän nimi, ryhmän aihe, ryhmän ohjaaja, ryhmän asiakas ja ryhmän kokoontumisajat. Viitattu: 4.12 8
3.1.10 Esitiedot tulee varmistaa automaattisesti normaali Ohjelman on varmistettava opiskelijan esitietovaatimusten täyttyminen automaattisesti. Esitietovaatimusten katsotaan täyttyvän, jos opiskelijan esitiedot täyttyvät jonkin ohjelman asetustiedostossa määritellyn esitietovaatimusryhmän mukaisina. Jokaiselle vaatimusryhmälle voidaan määritellä kurssit, joiden on ehdottomasti oltava suoritettuina, opintoviikoilla korvattavissa olevat kurssit ja yhden opintoviikoilla korvattavissa olevan kurssin korvaamiseen vaadittava määrä tietojenkäsittelytieteen opintoviikkoja. Viitattu: 4.4 3.1.11 Projektiaiheita tulee pystyä lisäämään kurssin perustamisen jälkeen normaali Järjestelmään tulee pystyä lisäämään projektiaiheita vielä kurssin perustamisen jälkeenkin. Viitattu: 4.7 3.1.12 Opiskelijoita tulee pystyä poistamaan normaali Järjestelmästä tulee pystyä poistamaan opiskelijoita. Viitattu: 4.5 3.1.13 Opiskelijapallot tulee yksilöidä monivalinnassa normaali Opiskelijanäkymästä pitää pystyä valitsemaan useita opiskelijoita kerralla siten, että opiskelijapallot näkyvät korostettuina ja yksilöityinä ryhmänäkymässä. Kun useita opiskelijapalloja on valittuina, ovat opiskelijoiden tiedot näkyvillä tietonäkymässä. Nimen lisäksi tietonäkymässä tulee näkyä myös opiskelijan henkilötunnus. 9
3.1.14 Ilmoittautumisjärjestelmän kysymykset tulee hakea asetustiedostosta normaali Ilmoittautujat vastaavat joukkoon kysymyksiä, jotka käyttäjä saa ilmoittautumislistassa. Annettu vastausvaihtoehto listassa on numerona, joten se täytyy tulkita alkuperäiseksi vastaukseksi. Alkuperäiset vastausvaihtoehdot on kirjoitettu suoraan ohjelmakoodiin, joten kysymysten muuttuessa myös ohjelmakoodia täytyy muuttaa. Koska kysymykset ovat lukukausikohtaisia, ne tulee olla tallennettuina asetustiedostoon. Tämä vaatimus liittyy suoraan vaatimukseen 3.1.3. 3.1.15 Heuristiikka - Ohjelman tulee jakaa opiskelijat valmiiksi ryhmiin normaali Sovelluksen tulee jakaa opiskelijat heidän ryhmätoiveidensa perusteella mahdollisimman optimaalisesti ryhmiin. 3.1.16 Hakutoimintoa pitää parantaa normaali Hakuja pitää rajata siten, että haku voidaan osoittaa koskemaan vain tiettyjä kenttiä. 3.1.17 Ohjelman tulee tulostaa raportteja Sovelluksen pitää tulostaa tiedostoon seuraavat raportit seuraavilla prioriteeteilla: Ryhmäjako ohjaajille: Ryhmäjako taululle: Puuttuvat sopimukset: Puutteelliset esitiedot: matala Ilmoittautuneet: matala Viitattu: Esimerkkimallit tulostettavista raporteista ovat liitteessä 1. 4.10 10
3.1.18 Ohjelman asetuksia on pystyttävä muuttamaan ohjelman sisältä matala Ohjelmassa on oltava dialogi, jolla ohjelman asetuksia voidaan muuttaa. Asetukset tallennetaan asetustiedostoon (kts. 3.1.3). 3.1.19 Ryhmätoiveita ja vastauksia tulee pystyä päivittämään matala Opiskelijan ryhmätoiveita ja vastauksia tulee pystyä muokkaamaan suoraan ohjelmasta. Viitattu: 4.6 3.1.20 Vapaamuotoista tekstiä tulee pystyä lisäämään projektiryhmiin matala Ohjelmistotuotantoprojektiryhmiin pitää voida lisätä vapaamuotoista tekstiä. Viitattu: 4.11 3.1.21 Ohjelman tulee tarjota kurssihistoria matala Ohjelman tulee tarjota käyttäjälle pikavalinnat, joista käyttäjä voi ladata korkeintaan viiden viimeksi käsitellyn kurssin joukosta haluamansa. Viitattu: 4.2 3.1.22 Ohjelman pitää sisältää kalenteri ryhmien kokoontumisajoista matala Ohjelmassa tulee olla kalenteri, josta näkyy valittuna olevan ryhmän kokoontumisajat. 11
3.2 Ei-toiminnalliset vaatimukset 3.2.1 Tallennusformaatin on oltava tekstipohjainen Kurssitiedot on tallennettava tekstimuodossa, jotta ohjelman eri versiot pystyvät käyttämään samoja tallennustiedostoja. 3.2.2 Ohjelman sen hetkinen tilanne on oltava tallennettavissa, vaikka sovellus kaatuisikin Ohjelman kaatuessa käyttäjällä tulee olla mahdollisuus tallentaa tilanne. Mikäli ohjelma kaatuu, on ohjelmaan ladatut ja muutetut tiedot kyettävä tallentamaan levylle. Tällöin kaatumista edeltävä tilanne voidaan palauttaa ohjelman uudelleenkäynnistämisen jälkeen. 3.2.3 Raportit tulee tulostaa aakkosjärjestyksessä Opiskelijat on järjestettävä ohjelman tulostamissa raporteissa sukunimen mukaan aakkosjärjestykseen. 3.2.4 Tietonäkymä tulee lajitella aakkosjärjestykseen Tietonäkymässä oleva luettelo valituista opiskelijoista tulee lajitella sukunimen mukaan aakkosjärjestykseen. 3.3 Laadulliset vaatimukset 3.3.1 Koodin on oltava siistiä ja ylläpidettävää Koodin tulee olla siistiä ja ylläpidettävää. Koodissa on kohtia, jotka eivät toimi tai joita ei käytetä. Nämä tulee poistaa. Kaikki viittaukset Ilpossa käytössä olleeseen tietokantaan tulee poistaa. 12
3.3.2 Ohjelmassa ei saa olla turhia toimintoja Valikoissa olevat kohdat jotka ovat turhia tai eivät toimi oikein tulee poistaa. Poistettavat valikon kohdat ovat: Tiedosto: Tuo, Vie, Tallenna HTML Opiskelija-valikko poistetaan kokonaisuudessaan siten, että siinä olevat tarpeelliset toiminnot siirretään kurssi-valikkoon. Kurssi: Lisää henkilökuntaa Toiminnot: Virkistä Ohtu-projekti: arvosteltu, ei läpäissyt kurssia, arvosana kentät 3.3.3 Kalenteriosuuden tulee olla lisättävissä normaali Koodin tulee sisältää paikka ohjelmaan myöhemmin mahdollisesti lisättävälle kalenterille. 3.3.4 Vastausten parsiminen tulee korjata matala Ilmoittautujatiedoston parsimista on muutettava siten, että ohjelma osaa käsitellä yli kaksi merkkiä pitkät koodit, kuten "#10". Jos käyttäjä on antanut kysymyskenttiin ei-numeerisia vastauksia, ohjelma tulostaa virheilmoituksen. 13
4 Toiminnot Ilpo2:n toteutettavat toiminnot on listattu seuraavassa. Toiminnot ovat asiakkaan antamien käyttäjävaatimusten perusteella johdettuja toimintoja. Toiminnoista on listattu vaiheet, prioriteetit ja jäljitettävyys. 4.1 Alkutoimenpiteet Ennen varsinaista järjestämistä suoritettavien toimenpiteiden suhteita toisiinsa on selvennetty alla olevassa kuvassa. 4.2 Kurssin lataaminen Ilpo2:n Käyttäjä lataa kurssin järjestelmään. Tavoite: Kurssi latautuu sellaisena kuin se on viimeksi tallennettu. Vaiheet: 1. Käyttäjä valitsee haluamansa kurssin joko tiedostonhallinnan kautta tai pikavalintana kurssihistoriasta. 2. Ilpo2 hakee valitun kurssin ja lataa sen järjestelmään. Jäljitettävyys: 3.1.1, 3.1.21 14
4.3 Opiskelijan lisääminen kurssin perustamisen jälkeen Lisätään opiskelija järjestelmään. Tavoite: Uuden opiskelijan lisäys järjestelmään ohjelman sisältä. Vaiheet: 1. Käyttäjä valitsee toiminnon lisää uusi opiskelija 2. Käyttäjä syöttää manuaalisesti opiskelijan perustiedot. 3. Ilpo2 tuo uuden opiskelijapallon järjestelmään. Jäljitettävyys: 3.1.8 4.4 Esitietojen tarkistaminen Tarkistetaan opiskelijan esitiedot. Tavoite: Selvittää ketkä opiskelijoista eivät ole suorittaneet vaadittavia esitietoja ja mitkä esitiedot heiltä puuttuvat. Vaiheet: 1. Ilpo2 hakee asetustiedostosta esitietovaatimukset ja selvittää keillä opiskelijoista esitiedot ovat kunnossa. 2. Ilpo2 merkitsee ongelmatapauksiksi ne opiskelijat, joiden esitiedot eivät ole kunnossa. Jäljitettävyys: 3.1.10 4.5 Opiskelijan poistaminen Poistetaan opiskelija järjestelmästä. Tavoite: Poistaa opiskelija järjestelmästä. Ilpo2 tarkistaa ryhmän kokorajoitteen tilan. Vaiheet: 1. Käyttäjä valitse opiskelijan ja valitsee poistotoimenpiteen. 2. Ilpo2 poistaa opiskelijan. 3. Ilpo2 tarkistaa henkilömäärän siitä ryhmästä, josta opiskelija poistettiin. Mikäli minimiraja rikkoutuu, muutetaan ryhmän värikoodi vastaamaan uutta tilannetta. Minimirajan rikkoontuminen ei estä opiskelijan poistamista. Jäljitettävyys: 3.1.12 15
4.6 Opiskelijan vastauksien päivittäminen / lisääminen Opiskelijan Ilmo:ssa antamia vastauksia muutetaan. Uuden opiskelijan tapauksessa vastauksia lisätään. Tavoite: Opiskelijan tilanteen muuttuessa tai hänen muuttaessa mieltään voidaan hänen vastauksiaan muuttaa. Uuden opiskelijan tapauksessa saadaan hänen vastauksensa järjestelmään. Vaiheet: 1. Käyttäjä muokkaa valitun opiskelijan vastauksia tai uuden opiskelijan tapauksessa lisää valitulle opiskelijalle vastauksia. 2. Ilpo2 päivittää muutokset tietorakenteisiin. normaali Jäljitettävyys: 3.1.8, 3.1.19 4.7 Uuden projektiaiheen lisääminen kurssin perustamisen jälkeen Käyttäjä lisää uuden projektiaiheen järjestelmään. Tavoite: Uuden projektiaiheen lisääminen järjestelmään kurssin perustamisen jälkeen. Vaiheet: 1. Käyttäjä syöttää järjestelmään uuden aiheen. 2. Ilpo2 tallentaa aiheen järjestelmän aihelistaan. Jäljitettävyys: 3.1.11 4.8 Usean opiskelijan siirtäminen Käyttäjä siirtää useamman kuin yhden opiskelijapallon opiskelijanäkymän ja ryhmänäkymän välillä yhtäaikaisesti. Tavoite: Valittuaan haluamansa opiskelijat opiskelijanäkymästä käyttäjä pystyy siirtämää opiskelijapallot ryhmänäkymään kerralla. Valinta tapahtuu pitämällä Ctrl-näppäin pohjassa ja valitsemalla hiirellä halutut opiskelijat. Vaiheet: 1. Käyttäjä valitsee haluamansa opiskelijapallot opiskelijanäkymästä. 2. Käyttäjä siirtää valitsemansa opiskelijapallot ryhmänäkymään. Jäljitettävyys: 3.1.6, 3.1.7 16
4.9 Lukukauden vaihtaminen Käyttäjä lataa toisen lukukauden tiedot järjestelmään. Tavoite: Käyttäjän ladatessa valikosta toisen lukukauden kurssin tiedot kaikki viittaukset edelliseen kurssiin poistetaan järjestelmän tietorakenteista ilman järjestelmän uudelleenkäynnistystä. Vaiheet: 1. Käyttäjä valitsee valikosta kurssin lataamisen ja valitsee haluamansa kurssin. 2. Ilpo2 tyhjentää kaikki tietorakenteensa edellisen kurssin tiedoista. 3. Ilpo2 lataa uuden kurssin tiedot tietorakenteisiinsa. Jäljitettävyys: 3.1.1 4.10 Raporttien tulostus Järjestelmä tuottaa seuraavat raportit: Ryhmäjako ohjaajille, ryhmäjako taululle, puuttuvat sopimukset, puutteelliset esitiedot ja ilmoittautuneet. Tavoite: Järjestelmä tuottaa halutut raportit. Vaiheet: 1. Käyttäjä valitsee tuotettavan raportin. 2. Järjestelmä luo raportin ja tallentaa sen ennalta määrättyyn muotoon (liite 1). Jäljitettävyys: 3.1.17 4.11 Vapaamuotoisen tekstin lisääminen ryhmään Käyttäjä lisää ryhmiin vapaamuotoista tekstiä lisätiedoksi. Tavoite: Luotuaan ohjelmistotuotantoprojektiryhmät käyttäjä lisää haluamiinsa ryhmiin vapaamuotoista tekstiä tarkennukseksi tai lisätiedoksi. Vaiheet: 1. Käyttäjä luo ohjelmistotuotantoprojektiryhmän. 2. Käyttäjä lisää haluamaansa ryhmään vapaamuotoista tekstiä. matala Jäljitettävyys: 3.1.20 17
4.12 Ryhmän tietojen tarkastelu ja muuttaminen Käyttäjä tarkastelee tai muuttaa seuraavia ryhmän tietoja: ryhmän nimi, ryhmän aihe, ryhmän ohjaaja, ryhmän asiakas ja ryhmän kokoontumisajat. Tavoite: Käyttäjä pystyy tarkastelemaan tai muuttamaan ryhmille annettuja arvoja. Vaiheet: 1. Käyttäjä valitsee haluamansa ryhmän. 2. Käyttäjä valitsee ryhmästä haluamansa kentän, jolloin järjestelmä näyttää sen arvon. 3. Käyttäjä halutessaan muuttaa arvon. Jäljitettävyys: 3.1.9 18
5 Käyttötapaukset Tässä esitetyt käyttötapaukset eivät kuvaa valmiin järjestelmän toiminnallisuutta, vaan antavat kuvan käyttäjän tavoitteista, joiden avulla järjestelmän toiminnallisuus suunnitellaan ja testataan. Käyttötapauksista esitetään käyttäjän tavoite ja tilatietoja, jotka kuvaavat käyttäjän ja järjestelmän tietoja tapaushetkellä. Tapauksia kuvaamaan on esitelty fiktiivinen vastuuhenkilö. 5.1 Kurssin perustaminen Käyttäjän tavoite: TKTL:n Ohjelmistotuotantoprojekti-kurssin vastuuhenkilöllä, Jannella, on luotavana syksyn 2006 kurssin ryhmät. Ilmoittautuneita opiskelijoita on 29 kpl ja aiheita on 6kpl. Jannen tavoitteena on jakaa kurssille ilmoittautuneet opiskelijat ryhmiin. Opiskelijat ovat ilmoittautuessaan täyttäneet kurssiin liittyvän kyselylomakkeen. Jannella on lisäksi koneellaan tiedostoina aihelista, ilmoittautuneiden opiskelijoiden lista ja ilmoittautuneiden opiskelijoiden kurssisuoritukset. Jannella on käytössään viime kesän ohjelmistotuotantoprojektin tekemä Ilpo2 - ohjelma ja siihen liittyvät dokumentit. Tilatietoja: Päivämäärä on 07.09.2006 ja Janne on huoneessaan laitoksella tietokoneen edessä. Hän on juuri avannut Ilpo2 järjestelmän. Toteutunut skenaario: Janne perustaa syksyn 2006 kurssin syöttämällä järjestelmälle opiskelijoiden ilmoittautumisen yhteydessä täyttämät sähköiset kyselylomakkeet, opiskelijoiden suoritusotteet, projektien aihelistan ja listan ohjaajista. Janne päättää mitkä ryhmät muodostetaan ja jakaa opiskelijat ja ohjaajat ryhmille. Lopuksi Janne tallentaa työn nimellä 'ohtu_syksy06' ja lopettaa ohjelman. 5.2 Opiskelijan lisäys Käyttäjän tavoite: Syksyn 2006 kurssin perustamisen jälkeen uusi opiskelija Mikko lähettää Jannelle sähköpostia, jossa hän kysyy mahtuisiko hän vielä kurssille mukaan. Mikon esitiedot ovat kunnossa, joten Janne haluaa lisätä Mikon syksyn kurssille. Tilatietoja: Päivämäärä on 09.09.2006 ja Janne on huoneessaan laitoksella tietokoneen edessä. Hän on juuri avannut järjestelmän ja ladannut tiedoston 'ohtu_syksy06' viimeksi käsiteltyjen tiedostojen listalta. Toteutunut skenaario: Janne lisää opiskelijan tiedot järjestelmään. Järjestelmä tarkastaa, että opiskelijan esitiedot ovat kunnossa. Esitiedot ovat kunnossa ja uusi opiskelija lisätään yhteen ryhmistä. Janne tallentaa työn ja sulkee ohjelman. 19
5.3 Opiskelijan poisto Käyttäjän tavoite: Yksi kurssilaisista on ilmoittanut, ettei hän voi enää jatkaa kurssilla. Janne haluaa poistaa kurssilaisen syksyn kurssilta. Tilatietoja: Päivämäärä on 09.09.2006 ja Janne on huoneessaan laitoksella tietokoneen edessä. Järjestelmä on vielä auki edellisen opiskelijan lisäyksen jälkeen. Toteutunut skenaario: Janne poistaa opiskelijan järjestelmästä. Opiskelija poistuu ongelmitta. Janne tallentaa työn ja sulkee ohjelman. 5.4 Raporttien tulostus Käyttäjän tavoite: Janne haluaa tulostaa raportin kurssille hyväksytyistä opiskelijoista laitoksen seinälle ja lähettää raportin sähköpostitse ryhmien ohjaajille näiden ryhmässä olevista henkilöistä. Tilatietoja: Päivämäärä on 11.09.2006 ja Janne on huoneessaan laitoksella tietokoneen edessä. Hän on juuri avannut järjestelmän ja ladannut tiedoston 'ohtu_syksy06' viimeksi käsiteltyjen tiedostojen listalta. Toteutunut skenaario: Janne hakee ohjelmasta ilmoitustaululle tarkoitetun raportin ja tulostaa tämän. Janne hakee ryhmien ohjaajille tarkoitetun raportin ja tallentaa sen tekstitiedostona. Janne avaa sähköpostinsa ja lähettää raportin ohjaajille liitetiedostona. 5.5 Tapaamisaikojen lisäys Käyttäjän tavoite: Ryhmät ovat kokoontuneet ensimmäisen kerran ja ryhmien kokoontumisajat ovat selvillä. Janne haluaa vierailla ryhmissä mahdollisuuksien mukaan, joten hän haluaa tallentaa ryhmien tapaamisajat järjestelmään. Tilatietoja: Päivämäärä on 16.09.2006 ja Janne on huoneessaan laitoksella tietokoneen edessä. Hän on juuri avannut järjestelmän ja ladannut tiedoston 'ohtu_syksy06' viimeksi käsiteltyjen tiedostojen listalta. Toteutunut skenaario: Janne valitsee järjestelmästä jokaisen ryhmän erikseen ja merkkaa tämän ryhmän kalenteriin tapaamisajat. Janne tallentaa työn ja sulkee ohjelman. 20
LIITE 1 Raportti: Ryhmäjako ohjaajille Formaatti: tekstitiedosto Muoto: Ilmoittautumisten profiloija (jatkoprojekti) Olli Sinerma ================== akmakela@cs.helsinki.fi 240749-012A Ari Mäkelä Toistaiseksi puutteita esitietovaatimuksissa ================== akmakela@cs.helsinki.fi 240749-012A Ari Mäkelä Raportti: Ryhmäjako taululle Formaatti: HTML Muoto: <html> <head> <title>ohjelmistotuotantoprojektien ryhmäjako - kesä 2006-7.7.2006 </title> <link rel=stylesheet href="/include/tktl.css" TITLE="tktl"> </head> <body> <!--#include virtual="/include/header-fi.html"--> <h1>ohjelmistotuotantoprojektit - kesä 2006</h1> <hr> <h1>alustava ryhmäjako 7.7.2006</h1> <ul> <li>profilointiohjelma<br> Ohjaaja: Olli Sinerma</li> <ul> <li>aitio Pekka Einari</li> </ul> <li>tuulikellojen sävellysohjelmisto<br> Ohjaaja: Matti Meikäläinen</li> <ul> <li>aro Jaakko Johannes</li> <li>dahlström Knorad Kalervo</li> </ul> </ul>
<h2>vajaat esitiedot</h2> <p> Seuraavilla ilmoittautuneilla on tietojemme mukaan puutteita esitietovaatimuksissa. Listalla olevat pääsevät mukaan, jos esitiedot ovat kunnossa viimeistään viikkoa ennen lukukauden kesä 2006 alkua. </p><p> Jos esitietosi ovat mielestäsi kunnossa, mutta olet listalla, Ota <b>välittömästi</b> yhteyttä vastuuhenkilöihin <a href=mailto:ohtu@cs.helsinki.fi>ohtu@cs.helsinki.fi</a> </p> <ul> <li> Einola Ilkka Eemeli</li> <li> Halja Mikko Juhani</li> <li> Hamonen Heikki Hermanni</li> <li> Hankasalo Sirpa Irmeli</li> <li> Holma Heikki Kalevi</li> <li> Huoviala Jaakko Johannes</li> <li> Hyvönen Kim Eerik</li> <li> Hämäläinen Jyri</li> </ul> <hr> <address><a href="mailto:ohtu@cs.helsinki.fi">ohtu@cs.helsinki.fi</a> </address> <!--#include virtual="/include/trailer-fi.html"--> </body></html> Raportti: Puuttuvat sopimukset Formaatti: tekstitiedosto Muoto: Sama kuin ryhmäjako ohjaajille, mutta raporttiin tulevat vain ne opiskelijat, jotka eivät ole allekirjoittaneet sopimusta. Raportti: Puutteelliset esitiedot Formaatti: tekstitiedosto Muoto: Jokaisesta opiskelijasta: henkilötunnus nimi. Jokainen puuttuva esitieto omalle rivilleen. Lista on nimen mukaan aakkosjärjestyksessä. Raportti: Ilmoittautuneet Formaatti: tekstitiedosto Muoto: Jokaisesta ilmoittautuneesta: henkilötunnus nimi. Lista aakkosjärjestyksessä.
LIITE 2 Tässä taulukossa kuvataan toimintojen ja toiminnallisten vaatimusten yhteyksiä ristiviittauksien avulla. Toiminto 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 Vaatimus 3.1.1 X X 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 X 3.1.7 X 3.1.8 X X 3.1.9 X 3.1.10 X 3.1.11 X 3.1.12 X 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 X 3.1.18 3.1.19 X 3.1.20 X 3.1.21 X 3.1.22