|
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
Sinerma Olli
Asiakas
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 |
jäädytettäväksi tarjottu versio |
|
2.1 |
12.07.2006 |
korjauksilla jäädytettäväksi tarjottu versio |
|
2.2 |
18.07.2006 |
korjauksia |
Sisältö
3.1 Toiminnalliset vaatimukset 8
3.1.1 Tietorakenteet on alustettava uudelleen uutta kurssia luotaessa 8
3.1.2 Tallenna-toiminto tulee tehdä 8
3.1.3 Ohjelman asetuksia on pystyttävä muuttamaan asetustiedostosta 8
3.1.4 Työvaiheiden tulee näkyä käyttäjälle 8
3.1.5 Ryhmätoiveen on näyttävä opiskelijapallossa 9
3.1.6 Ohjelma ei saa kadottaa opiskelijapallovalintoja 9
3.1.7 Usean opiskelijan yhtäaikainen siirtäminen 9
3.1.8 Opiskelijota tulee pystyä lisäämään kurssin perustamisen jälkeen 9
3.1.9 Ryhmien tietojen käsittelyn tulee olla mahdollista 9
3.1.10 Esitiedot tulee varmistaa automaattisesti 10
3.1.11 Projektiaiheita tulee pystyä lisäämään kurssin perustamisen jälkeen 10
3.1.12 Opiskelijoita tulee pystyä poistamaan 10
3.1.13 Opiskelijapallot tulee yksilöidä monivalinnassa 10
3.1.14 Ilmoittautumisjärjestelmän kysymykset tulee hakea asetustiedostosta 11
3.1.15 Heuristiikka - Ohjelman tulee jakaa opiskelijat valmiiksi ryhmiin 11
3.1.16 Hakutoimintoa pitää parantaa 11
3.1.17 Ohjelman tulee tulostaa raportteja 11
3.1.18 Ohjelman asetuksia on pystyttävä muuttamaan ohjelman sisältä 12
3.1.19 Ryhmätoiveita ja vastauksia tulee pystyä päivittämään 12
3.1.20 Vapaamuotoista tekstiä tulee pystyä lisäämään projektiryhmiin 12
3.1.21 Ohjelman tulee tarjota kurssihistoria 12
3.1.22 Ohjelman pitää sisältää kalenteri ryhmien kokoontumisajoista 12
3.2 Ei-toiminnalliset vaatimukset 13
3.2.1 Tallennusformaatin on oltava tekstipohjainen 13
3.2.2 Ohjelman sen hetkinen tilanne on oltava tallennettavissa, vaikka sovellus kaatuisikin 13
3.2.3 Raportit tulee tulostaa aakkosjärjestyksessä 13
3.2.4 Tietonäkymä tulee lajitella aakkosjärjestykseen 13
3.3 Laadulliset vaatimukset 13
3.3.1 Koodin on oltava siistiä ja ylläpidettävää 13
3.3.2 Ohjelmassa ei saa olla turhia toimintoja 15
3.3.3 Kalenteriosuuden tulee olla lisättävissä 15
3.3.4 Vastausten parsiminen tulee korjata 15
4.2 Kurssin lataaminen Ilpo2:n 16
4.3 Opiskelijan lisääminen kurssin perustamisen jälkeen 17
4.4 Esitietojen tarkistaminen 17
4.5 Opiskelijan poistaminen 17
4.6 Opiskelijan vastauksien päivittäminen / lisääminen 18
4.7 Uuden projektiaiheen lisääminen kurssin perustamisen jälkeen 18
4.8 Usean opiskelijan siirtäminen 18
4.11 Vapaamuotoisen tekstin lisääminen ryhmään 20
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 kurssi-ilmoittautumisten profilointiohjelma. Sitä jatkokehitetään aiemman ohjelmistotuotantoprojektiryhmän tuottaman ja Juha Tainan muokkaaman Ilpo- ohjelman 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.
AWT: Javan matalan tason käyttöliittymäkirjasto, johon korkeamman 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.
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 korkea.
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 korkeamman 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.
Ilpo on keväällä 2005 Helsingin yliopiston tietojenkäsittelytieteen laitoksen kurssilla ohjelmistotuotantoprojekti tuotettu ohjelma kurssi-ilmoittautumisten profilointiin ja ilmoittautuneiden opiskelijoiden ryhmiin jakamiseen. Ohjelmistotuotantoprojekti-kurssin 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 niinsanottu
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ä.
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ä
ctrl-nä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.
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",
Kurssi-valikon "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.
Tässä luvussa annetaan korkean tason kuvaus Ilpo2:n arkkitehtuurista.
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ää.
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.

Tässä luvussa selvennetään ohjelman rakennetta ja sen jakautumista komponentteihin.

Prioriteetti:
korkea
Kuvaus:
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
Prioriteetti:
korkea
Kuvaus:
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.
Prioriteetti:
korkea
Kuvaus:
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.
Prioriteetti:
korkea
Kuvaus:
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.
Prioriteetti:
korkea
Kuvaus:
Opiskelijapallon sisällä pitää näkyä oletuksena opiskelijan ensisijainen ryhmätoive numerona.
Prioriteetti:
korkea
Kuvaus:
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
Prioriteetti:
korkea
Kuvaus:
Monen opiskelijapallon siirtäminen opiskelijanäkymän ja ryhmänäkymän välillä tulee olla mahdollista yhtäaikaisesti.
Viitattu:
4.8
Prioriteetti:
korkea
Kuvaus:
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
Prioriteetti:
normaali
Kuvaus:
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
Prioriteetti:
normaali
Kuvaus:
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
Prioriteetti:
normaali
Kuvaus:
Järjestelmään tulee pystyä lisäämään projektiaiheita vielä kurssin perustamisen jälkeenkin.
Viitattu:
4.7
Prioriteetti:
normaali
Kuvaus:
Järjestelmästä tulee pystyä poistamaan opiskelijoita.
Viitattu:
4.5
Prioriteetti:
normaali
Kuvaus:
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.
Prioriteetti:
normaali
Kuvaus:
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.
Prioriteetti:
normaali
Kuvaus:
Sovelluksen tulee jakaa opiskelijat heidän ryhmätoiveidensa perusteella
mahdollisimman optimaalisesti ryhmiin.
Prioriteetti:
normaali
Kuvaus:
Hakuja pitää rajata siten, että haku voidaan osoittaa koskemaan vain tiettyjä kenttiä.
Kuvaus:
Sovelluksen pitää tulostaa tiedostoon seuraavat raportit seuraavilla prioriteeteilla:
Ryhmäjako ohjaajille: korkea
Ryhmäjako taululle: korkea
Puuttuvat sopimukset: korkea
Puutteelliset esitiedot: matala
Ilmoittautuneet: matala
Esimerkkimallit tulostettavista raporteista ovat liitteessä 1.
Viitattu:
4.10
Prioriteetti:
matala
Kuvaus:
Ohjelmassa on oltava dialogi, jolla ohjelman asetuksia voidaan muuttaa. Asetukset tallennetaan asetustiedostoon (kts. 3.1.3).
Prioriteetti:
matala
Kuvaus:
Opiskelijan ryhmätoiveita ja vastauksia tulee pystyä muokkaamaan suoraan ohjelmasta.
Viitattu:
4.6
Prioriteetti:
matala
Kuvaus:
Ohjelmistotuotantoprojektiryhmiin pitää voida lisätä vapaamuotoista tekstiä.
Viitattu:
4.11
Prioriteetti:
matala
Kuvaus:
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
Prioriteetti:
matala
Kuvaus:
Ohjelmassa tulee olla kalenteri, josta näkyy valittuna olevan ryhmän kokoontumisajat.
Prioriteetti:
korkea
Kuvaus:
Kurssitiedot on tallennettava tekstimuodossa, jotta ohjelman eri versiot pystyvät käyttämään samoja tallennustiedostoja.
Prioriteetti:
korkea
Kuvaus:
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.
Prioriteetti:
korkea
Kuvaus:
Opiskelijat on järjestettävä ohjelman tulostamissa raporteissa sukunimen mukaan aakkosjärjestykseen.
Prioriteetti:
korkea
Kuvaus:
Tietonäkymässä oleva luettelo valituista opiskelijoista tulee lajitella sukunimen mukaan aakkosjärjestykseen.
Prioriteetti:
korkea
Kuvaus:
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.
Prioriteetti:
korkea
Kuvaus:
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
Prioriteetti:
normaali
Kuvaus:
Koodin tulee sisältää paikka ohjelmaan myöhemmin mahdollisesti lisättävälle kalenterille.
Prioriteetti:
matala
Kuvaus:
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.
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.
Ennen varsinaista järjestämistä suoritettavien toimenpiteiden suhteita toisiinsa on selvennetty alla olevassa kuvassa.

Kuvaus:
Käyttäjä lataa kurssin järjestelmään.
Tavoite:
Kurssi latautuu sellaisena kuin se on viimeksi tallennettu.
Vaiheet:
Käyttäjä valitsee haluamansa kurssin joko tiedostonhallinnan kautta tai pikavalintana kurssihistoriasta.
Ilpo2 hakee valitun kurssin ja lataa sen järjestelmään.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.1, 3.1.21
Kuvaus:
Lisätään opiskelija järjestelmään.
Tavoite:
Uuden opiskelijan lisäys järjestelmään ohjelman sisältä.
Vaiheet:
Käyttäjä valitsee toiminnon ’lisää uusi opiskelija’
Käyttäjä syöttää manuaalisesti opiskelijan perustiedot.
Ilpo2 tuo uuden opiskelijapallon järjestelmään.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.8
Kuvaus:
Tarkistetaan opiskelijan esitiedot.
Tavoite:
Selvittää ketkä opiskelijoista eivät ole suorittaneet vaadittavia esitietoja ja mitkä esitiedot heiltä puuttuvat.
Vaiheet:
Ilpo2 hakee asetustiedostosta esitietovaatimukset ja selvittää keillä opiskelijoista esitiedot ovat kunnossa.
Ilpo2 merkitsee ongelmatapauksiksi ne opiskelijat, joiden esitiedot eivät ole kunnossa.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.10
Kuvaus:
Poistetaan opiskelija järjestelmästä.
Tavoite:
Poistaa opiskelija järjestelmästä. Ilpo2 tarkistaa ryhmän kokorajoitteen tilan.
Vaiheet:
Käyttäjä valitse opiskelijan ja valitsee poistotoimenpiteen.
Ilpo2 poistaa opiskelijan.
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.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.12
Kuvaus:
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:
Käyttäjä muokkaa valitun opiskelijan vastauksia tai uuden opiskelijan tapauksessa lisää valitulle opiskelijalle vastauksia.
Ilpo2 päivittää muutokset tietorakenteisiin.
Prioriteetti:
normaali
Jäljitettävyys:
3.1.8, 3.1.19
Kuvaus:
Käyttäjä lisää uuden projektiaiheen järjestelmään.
Tavoite:
Uuden projektiaiheen lisääminen järjestelmään kurssin perustamisen jälkeen.
Vaiheet:
Käyttäjä syöttää järjestelmään uuden aiheen.
Ilpo2 tallentaa aiheen järjestelmän aihelistaan.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.11
Kuvaus:
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:
Käyttäjä valitsee haluamansa opiskelijapallot opiskelijanäkymästä.
Käyttäjä siirtää valitsemansa opiskelijapallot ryhmänäkymään.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.6, 3.1.7
Kuvaus:
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:
Käyttäjä valitsee valikosta kurssin lataamisen ja valitsee haluamansa kurssin.
Ilpo2 tyhjentää kaikki tietorakenteensa edellisen kurssin tiedoista.
Ilpo2 lataa uuden kurssin tiedot tietorakenteisiinsa.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.1
Kuvaus:
Järjestelmä tuottaa seuraavat raportit:
Ryhmäjako ohjaajille, ryhmäjako taululle, puuttuvat sopimukset, puutteelliset esitiedot ja ilmoittautuneet.
Tavoite:
Järjestelmä tuottaa halutut raportit.
Vaiheet:
Käyttäjä valitsee tuotettavan raportin.
Järjestelmä luo raportin ja tallentaa sen ennalta määrättyyn muotoon (liite 1).
Prioriteetti:
korkea
Jäljitettävyys:
3.1.17
Kuvaus:
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:
Käyttäjä luo ohjelmistotuotantoprojektiryhmän.
Käyttäjä lisää haluamaansa ryhmään vapaamuotoista tekstiä.
Prioriteetti:
matala
Jäljitettävyys:
3.1.20
Kuvaus:
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:
Käyttäjä valitsee haluamansa ryhmän.
Käyttäjä valitsee ryhmästä haluamansa kentän, jolloin järjestelmä näyttää sen arvon.
Käyttäjä halutessaan muuttaa arvon.
Prioriteetti:
korkea
Jäljitettävyys:
3.1.9
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ö.
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.
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.
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.
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.
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.
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ä.