Määrittelydokumentti ilpo-ryhmä Helsinki 17.2.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Arttu Eloranta Risto Kuusterä Antti Pulkkinen Tommi Rajala Tuomo Saarinen Jari Suominen Asiakas Anni Rytkönen Johtoryhmä Juha Taina Turjo Tuohiniemi Kotisivu http://www.cs.helsinki.fi/group/ilpo Versiohistoria Versio Päiväys Tehdyt muutokset 0.9 14.2.2005 Ensimmäinen versio
Sisältö i 1 Johdanto 1 1.1 Termit.................................... 1 1.2 Dokumentin rakenne............................ 1 2 Yleisarkkitehtuuri 2 3 Vaatimukset 3 3.1 Toiminnalliset vaatimukset......................... 3 3.2 Laadulliset vaatimukset........................... 3 3.3 Rajoitteet suunnittelulle........................... 3 4 Käyttötapaukset 3 5 Toiminnot 10 5.1 Kuvattavat asiat............................... 10 5.2 Esimerkki.................................. 10 6 Käyttöliittymä 10 7 Ulkoiset liittymät 11 7.1 Tietokanta.................................. 11 7.1.1 tk_opha.opintojakso........................ 11 7.1.2 tk_opha.kurssi........................... 12 7.1.3 tk_opha.opetus........................... 12 7.1.4 tk_opha.opiskelija......................... 12 7.1.5 tk_opha.paa_aine.......................... 12 7.1.6 tk_opha.osallistuminen....................... 12 7.1.7 tk_opha.ilmokysymys....................... 13 7.1.8 tk_opha.ilmovastaus........................ 13 7.1.9 tk_opha.henkilo........................... 13 7.1.10 tk_opha.opetustehtavan_hoito................... 13 7.1.11 tk_opha.opetustehtava....................... 13 7.1.12 desmond.henkilo.......................... 13 7.1.13 desmond.suoritukset........................ 13
ii 7.1.14 desmond.suoritukset_sivuaine................... 13 7.2 Desmond.................................. 14 7.2.1 noudasuoritukset(opiskelijat:collection): int........... 14 7.2.2 tarkastaesitiedot(suoritukset:collection, kurssi:string): Collection 14 8 Rajoitteet suunnittelulle ja toteutukselle 14 9 Validointi 15 10 Huomautus 15
1 Johdanto 1 Tämä dokumentti sisältää ehdotuksen vaatimusmäärittelyn rungoksi. Huom. Vaatimusmäärittelyn jäsentely riippuu projektin luonteesta, joten tässä esitettyä kappalejakoa tulee muuttaa vastaamaan projektin tarpeita. 1.1 Termit Desmond (http://ilmo.cs.helsinki.fi/desmond/): Aiempien ohjelmistotuotantoprojektien tuottama opintojensuunnittelujärjestelmä. Desmondilla opiskelijat voivat suunnitella opintojaan lukukausittain www-selaimessa toimivalla käyttöliittymällä. Ilmo (http://ilmo.cs.helsinki.fi/): Kurssi-ilmoittautumisjärjestelmä opiskelijoille. Järjestelmä on tarkoitettu tietojenkäsittelytieteen laitoksen kursseille ilmoittautumiseen. JDBC (http://java.sun.com/products/jdbc/): Sun Microsystemsin JDBC-teknologia on sovellusrajapinta (API, Application Programming Interface) joka tarjoaa liityntämahdollisuuden useiden eri valmistajien relaatiotietokantoihin ja mm. laskentataulukoihin (spreadsheets). Keskiverto TKTL:n pöytäkone: Käyttöjärjestelmänä Linux, näyttö 1280x1024 resoluutiolla sekä vähintään 1.5 GHz suoritin ja vähintään 512Mt keskusmuistia. Kurki: Laitoksen henkilökunnan käyttöön tarkoitettu kurssikirjanpitojärjestelmä johon merkitään mm. opiskelijoiden tekemät laskuharjoitukset. Käyttää samaa tietokantaa kuin Ilmo. Oodi (http://www.helsinki.fi/weboodi/): Opiskelun ja opetuksen tuen tietojärjestelmä. Oodista löytyvät muun muassa oppilaiden opintosuoritukset. Sarjallistuva olio: Ohjelmointikielen olio, jonka tila voidaan konvertoida tavuvirraksi (ja toisinpäin). Käytännössä tämä tarkoittaa, että koko olio voidaan esimerkiksi tallettaa kiintolevylle myöhempää käyttöä varten. Sarjallistuvia olioita on ainakin Java-ohjelmointikielessä. Tk_opha: Etuliite, jota käytetään viitattaessa Ilmo-järjestelmän tietokantatauluihin Desmondista käsin. Käytännössä "Tk_opha = Ilmo". Lukitus: höllöpöllö 1.2 Dokumentin rakenne Vaatimusmäärittely voidaan jakaa kahteen osaan seuraavasti: 1. Vaatimusten kartoitus ja analyysi. Sisältää kuvauksen projektin toimialasta sekä asiakkaan tavoitteista, eli mitä kyseiseen toimialaan liittyviä ongelmia asiakas haluaa ratkaista järjestelmän avulla. Kartoitukseksi käy esimerkiksi puhtaaksi kirjoitetut muistiinpanot kahdelta ensimmäiseltä asiakastapaamiselta.
2 2. Vaatimusten määrittely eli spesifikaatio. Kuvaa projektissa tuotettavan ohjelmiston ulkoisen käyttäytymisen, eli mitä toimintoja järjestelmä sisältää. Tämä vastaa samalla edellisen kohdan kysymykseen, miten asiakas voi ohjelmiston avulla ratkaista toimialaan liittyvät tietojenkäsittelytarpeensa. Dokumentin pääpaino on tässä osassa. Edellä kuvattu jako ei ole pakollinen. Ideana on, että ohjelmiston toiminnoista tulee helpommin jäljitettäviä, kun suoraan asiakkaalta saadut vaatimukset kirjataan erilleen. Seuraavat asiat on syytä jättää pois tästä dokumentista: Ohjelmiston jakautuminen eri moduleihin tai luokkiin. Ohjelmiston sisäinen rakenne kuvataan vasta suunnitteludokumentissa. Ohjelmiston sisäiset tietorakenteet. Ylipäätään kaikki seikat, jotka eivät kuvaa asiakkaan tavoitteita tai ohjelmiston ulkoisia ominaisuuksia kuten syötteitä ja tulosteita. Laadulliset ominaisuudet tulee esittää. 2 Yleisarkkitehtuuri Ohjelma toimii Java-sovelluksena graafisella käyttöliittymällä terästettynä. Laitevaatimuksena on, että sovellus toimii keskiverrossa TKTL:n pöytäkoneessa (ks. termit). Käyttöjärjestelmällä ei pitäisi olla merkitystä, kunhan sille löytyy sopiva Java-virtuaalikone. Javaversiona käytetään JDK 5.0:aa (eli J2SE SDK 1.5.0) ja Desmond-tietokantaan ollaan yhteydessä JDBC-rajapinnan kautta. Työn alla olevat ryhmittelyt tallennetaan levylle sarjallistuvina olioina. Edellisten ohjelmistotuotantoprojektien tuottamaa opintojensuunnittelujärjestelmää, Desmondia, hyödynnetään kahdella eri tavalla; Ilpo on yhteydessä Desmondin tietokantaan, jonka kautta se näkee paitsi Oodi-järjestelmästä (Yliopiston opiskelun ja opetuksen tuen tietojärjestelmä) Desmondin tietokantaan noudetut opiskelijoiden opintosuoritukset, myös Ilmo-järjestelmään (laitoksen kurssi-ilmoittautumisjärjestelmä) tallennetut kurssi-ilmoittautumiset. Desmondin tietokannasta on myös näkymä Ilmo-kannasta löytyviin kurssin hallinnollisiin tietoihin, kuten luennoitsijoihin ja ryhmäjakoihin. Desmondin tietokannan kautta päivitetään valmiit ryhmäjaot Ilmo-tietokantaan. Ilpo-projektia varten käytössä on myös kaksi testikantaa, joista toinen on luotu Ilmosta ja toinen Desmondista. Desmondin valmiita palveluita hyödynnetään Oodi-järjestelmästä löytyvien opintosuoritusten noutamiseen Desmondin tietokantaan ja opiskelijoiden esitietovaatimusten tarkastamiseen. [KUVA: SIDOSRYHMÄKAAVIO]
3 Vaatimukset 3 Tässä luvussa kuvataan asiakkaan esittämät tavoitteet järjestelmälle. Nämä eivät ole ohjelmiston yksittäisten toimintojen kuvauksia, vaan sovelluksen toimialan tasolla tapahtuvia ilmiöitä, jotka asiakas haluaa tämän ohjelmiston avulla suorittaa. Huomaa, että toimintoja varten on oma lukunsa. Seuraavissa luvuissa on esimerkinomaisesti kuvitteelliseen kurssikirjanpitojärjestelmään liittyviä vaatimuksia. Luvussa 5.2 on samaan esimerkkiin liittyvän toiminnon kuvaus. Vaatimukset on syytä numeroida, jotta niihin pystyy viittaamaan. 3.1 Toiminnalliset vaatimukset Tässä kuvataan asiat, joita ohjelmiston avulla pitää pystyä suorittamaan. Vaatimukset ja niiden tunnistenumerot ovat seuraavat: A1 Kurssin luennoijan tulee voida tulostaa tuloslistat järjestelmän avulla. 3.2 Laadulliset vaatimukset Laadulliset vaatimuksia voi tarkastella seuraavista näkökulmista: ohjelmiston nopeus tai suorituskyky, muistin tai levytilan käyttö, luotettavuus, käytettävyys, tietoturva, tuettavat standardit yms. A2 Järjestelmän on oltava nopea (vasteajat normaalikäytössä alle kolme sekuntia). 3.3 Rajoitteet suunnittelulle Tähän kootaan vaatimukset, jotka asettavat rajoituksia suunnittelulle ja toteutukselle. A3 Järjestelmää on voitava käyttää millä tahansa selainohjelmalla, joka noudattaa HTMLstandardin versiota 3.2. 4 Käyttötapaukset KT1: Kurssin tuominen Kuvaus: Käyttäjä valitsee kurssin ennen varsinaisen työskentelyn aloittamista. Tavoite: Kaikki ilmoittautumisen yhteydet saadut tiedot on järkevästi järjestelty käyttäjän ulottuville ryhmiin jakamista varten.
4 1 Valitaan käsiteltävä kurssi, jonka tiedot haetaan ilmottautumisjärjestelmästä. 2 Tuodaan kurssin opiskelijoiden tiedot kannasta (KT2). KT2: Opiskelijan tuominen Kuvaus: Haetaan opiskelijan tiedot ilmosta. Tavoite: Kaikki ilmoittautumisen yhteydessä saadut tiedot on järkevästi järjestelty käyttäjän ulottuville ryhmiin jakamista varten. 1 Valitaan opiskelija. 2 Tarkastetaan, että ilmottautumisjärjestelmästä saadut tiedot ovat oikeellisessa muodossa. 2a Osa ilmottautumisjärjestelmästä saadusta tiedosta ei ole oikeellisessa muodossa. 2a1 Käyttäjä korjaa syötteen oikeelliseksi. 3 Tarkistetaan opiskelijan esitiedot(kt2). 1 Jos sisäisessä järjestelmässä on opiskelija, ei häntä tuoda toiseen kertaan ilmosta. 2 Jos opiskelija on poistettu ilmosta, häntä ei poisteta sisäisestä rakenteesta, mutta hänet merkitään poistetuksi. KT3: Esitietojen tarkastaminen Kuvaus: Tarkistetaan kurssille ilmottautuneiden opiskelijoiden esitiedot, jotka kyseiselle kurssille vaaditaan. Tavoite: Saada selville ketkä opiskelijoista eivät ole suorittaneet vaadittavia esitietoja, ja mitkä esitiedot heiltä puuttuvat. 1 Tarkistetaan automaattisesti oodista/desmondista, ovatko suoritukset kunnossa. 1.b Jos suoritukset eivät ole kunnossa, merkitään opiskelija ongelmatapaukseksi. 1.c Jos suoritukset eivät aiemmin olleet kunnossa, mutta ovat KT3:n uudelleenajon myötä kunnostautuneet, merkitään opiskelija entiseksi ongelmatapaukseksi. 1 Mikäli opiskelija on erikseen merkitty ongelmattomaksi esitietojen suhteen (KT4), ei tätä määrittelyä yliajeta, mikäli KT3 ajetaan myöhemmin uudestaan. KT4: Puutteellisten esitietojen manuaalinen arviointi Kuvaus: KT3 ongelmatapaukseksi luokitellun henkilön tilanteen tarkempi analyysi. Tavoite: Pitää huoli siitä, etteivät viime hetkellä arvosteltavat kurssit, jotka opiskelijalta vaaditaan osallistumiseen, estä hänen kurssille osallistumistaan.
5 1 Katsotaan mitkä esitiedot puuttuvat. 2 Tarkistetaan, onko opiskelija suorittamassa kurssia. 3 Tarkistetaan, onko opiskelija pääsemässä kurssista läpi. 3.a Jos läpipääsy on mahdollinen, merkitään kurssi oletusarvoisesti läpäistyksi. 3.b Jos läpipääsy ei ole mahdollinen, ei tehdä mitään. KT5: Ryhmän luominen Kuvaus: Luodaan uusi ryhmä. Tavoite: Ryhmä on luotu. 1 Luodaan uusi ryhmä 1 Ryhmä voi olla aluksi tyhjä 2 Jos KT6 tai ((KT7)) on uusi ryhmä, luodaan ryhmä, ja sijoitetaan valitut opiskelijat siihen. KT6: Ryhmiin siirtäminen Kuvaus: Opiskelija sijoitetaan ryhmään. Tavoite: Opiskelija on sopivassa ryhmässä. 1 Valitaan opiskelija. 2 Valitaan ryhmä. 2.a Ryhmää ei ole (KT5). 1 Valitaan useita opiskelijoita, jotka sijoitetaan samaan ryhmään tällä käyttötapauksella. KT7: Ryhmän vaihtaminen Kuvaus: Opiskelija siirretään ryhmästä toiseen. Tavoite: Opiskelija on sijoitettu uuteen ryhmään ja poistettu aikaisemmasta ryhmästä (move). 1 Valitaan opiskelija ryhmästä. 2 Valitaan uusi ryhmä. 2.a Ryhmää ei ole (KT5). 1 Valitaan useita opiskelijoita, jotka sijoitetaan samaan ryhmään tällä käyttötapauksella. KT8: Opiskelijan poistaminen ryhmästä
6 Kuvaus: Poistetaan opiskelija ryhmästä Tavoite: Opiskelija on poistettu ryhmästä 1 Valitaan opiskelija. 2 Valitaan ryhmä, josta hänet poistetaan. Variaatiot 1 Suoritetaan vaiheet käänteisessä järjestyksessä. KT9: Ryhmän poistaminen Kuvaus: Poistetaan ryhmä. Tavoite: On poistettu ryhmä. 1 Valitaan ryhmä. 1 Jos jokin ryhmässä olevista opiskelijoista on lukittu ryhmään, ryhmää ei voida poistaa. KT10: Ryhmän jakaminen Kuvaus: Ryhmä jossa on opiskelijoita jaetaan kahdeksi ryhmäksi. Tavoite: Ryhmä on jaettu kahdeksi ryhmäksi. 1 Valitaan ryhmä. 2 Luodaan uusi ryhmä (KT5). 3 Lukitut opiskelijat jäävät alkuperäiseen ryhmään. 4 Loput opiskelijat jaetaan automaattisesti kahden ryhmän välille. KT11: Alusta aloittaminen. Kuvaus: Aloitetaan ryhmiin jakaminen alusta. Tavoite: Tämänhetkistä ryhmäjakoa paremman jaon löytäminen. 1 Aloitetaan kurssi alusta. 1 Käyttäjä voi haluta tallentaa saavutetun ryhmäjaon. KT12: Opiskelijoiden järjestäminen valitun kriteerin mukaan. Kuvaus: Opiskelijat järjestetään valitun kriteerin mukaan ryhmiin jaoittelun helpottamiseksi. Tavoite: Opiskelijat on jaoteltu.
7 1 Valitaan haluttu kriteeri. 2 Järjestetään opiskelijat kriteerin mukaisesti. 1 Kriteerit ovat ilmolomakkeen yksittäisiä vastauksia, suuntautumislinja, kieli, esitiedot, opiskelijan tila... KT13: Opiskelijoiden valinta tiettyjen kriteerien perusteella. Kuvaus: Valitaan yksi tai useampi opiskelija kriteerin perusteella. Tavoite: Nähdä niiden opiskelijoiden tiedot, jotka täyttävät tietyt ehdot. 1 Valitaan yksi tai useampi KT12:n mukainen kriteeri. 1 Voi olla useampikin kriteeri. KT14: Opiskelijan tilan merkintä. Kuvaus: Merkitään opiskelija jonkin vallitsevan tilan mukaisesti. Tavoite: Nähdä helposti opiskelijan tila myöhemmin tai jatkuvasti. 1 Kun opiskelijan tila muuttuu, merkitään se selvästi. 1 Opiskelijan tila koostuu seuraavista tekijöistä: Kuinka monessa ryhmässä opiskelija on. Opiskelija on perunut ilmottautumisensa. Opiskelijan esitietojen tilanne. Onko opiskelija lukittu johonkin ryhmään. Opiskelijan ryhmäpriorisointi. KT15: Opiskelijan lukitseminen ryhmään. Kuvaus: Lukitaan opiskelija ryhmään. Tavoite: Lukita opiskelija ryhmään ja piilottaa hänet kaikista muista ryhmistä, joihin hänet on sijoitettu. 1 Valitaan opiskelija. 2 Valitaan ryhmä. 1 Vaiheitten järjestys voi vaihdella. KT16: Ryhmän lukitseminen. Kuvaus: Lukitaan koko ryhmä. Tavoite: Kaikki yhteen ryhmään valitut henkilöt lukittuvat tähän ryhmään ja poistuvat
8 muista ryhmistä. 1 Valitaan ryhmä. KT17: Opiskelijan lukituksen avaaminen. Kuvaus: Poistetaan opiskelijan lukitus. Tavoite: Ryhmään lukittu opiskelija ei ole enää lukittu. 1 Valitaan opiskelija. 1 Jos koko ryhmä on lukittu (KT16), ei yksittäisen opiskelijan lukitusta voi poistaa. KT18: Ryhmän lukituksen avaaminen. Kuvaus: Poistetaan ryhmän lukitus. Tavoite: Lukittu ryhmä ei ole enää lukittu. 1 Valitaan lukittu ryhmä. 1 Jos joku ryhmän opiskelija on lukittu henkilökohtaisesti ryhmään, ryhmän lukituksen poistaminen ei poista tätä lukitusta. KT19: Järjestystilanteen tallennus. Kuvaus: Tallennetaan järjestystilanne myöhempää käyttöä varten. Tavoite: Jatkaa järjestämistä mahdollisesti myöhemmin. 1 Tallennetaan kurssi. KT20: Järjestystilanteen lataaminen. Kuvaus: Ladataan aiemmin tallennettu järjestystilanne. Tavoite: Aiemman tilanteen palautus. 1 Valitaan kurssi. KT21: Henkilökunnan jäsenen tuominen. Kuvaus: Tuodaan tietokannasta henkilökunnan jäsenet. Tavoite: Tuoda tietokannasta kaikki kurssille ilmoitetut henkilökunnan jäsenet. 1 Tuodaan henkilökunnan jäsenet
9 KT22: Henkilökunnan jäsenen kiinnittäminen ryhmään. Kuvaus: Kiinnitetään henkilökunnan jäsen ryhmään. Tavoite: Assistenttien/Vastuuhenkilöiden kiinnittäminen. 1 Valitaan vastuuhenkilö. 2 Valitaan ryhmä. 3 Valitaan rooli. 1 Vaiheiden 1 ja 2 järjestys voi vaihdella. KT23: Henkilökunnan jäsenen poistaminen ryhmästä. Kuvaus: Poistetaan henkilökunnan jäsen ryhmästä. Tavoite: Poistaa henkilökunnan jäsen ryhmästä. 1 Valitaan henkilökunnan jäsen. KT24: Yksittäisen opiskelijan tilan tarkastelu. Kuvaus: Tarkastella yksittäisen opiskelijan tilaa. Tavoite: Nähdä yksittäisen opiskelijan tila. 1 Valitaan opiskelija. 1 Voidaan valita myös usea opiskelija, joiden tilaa tarkastellaan. KT25: Ryhmän tilan tarkastelu. Kuvaus: Tarkastella yksittäisen ryhmän tilaa. Tavoite: Nähdä yksittäisen ryhmän tila. 1 Valitaan ryhmä. KT26: Ryhmäjaon lukkoonlyönti ja lopettaminen. Kuvaus: Ryhmäjaon valmistuttua työskentelyn lopettaminen ja jaon tulostaminen. Tavoite: Ryhmäjako on kirjattu ilmoon. 1 Kirjataan ryhmäjako ilmoon.
5 Toiminnot 10 Tässä esitetään ohjelmiston yksittäiset toiminnot. Tästä luvusta tulee luultavasti dokumentin laajin, koska toiminnot tulee kuvata sellaisella tarkkuudella, että valmista ohjelmistoa ja määrittelydokumenttia vertaamalla on mahdollista suorittaa hyväksymistestaus eli todeta, toteuttaako ohjelmisto määrittelynsä mukaiset toiminnot. Toiminnot kannattaa jäsentää alilukuihin sopivalla tavalla. 5.1 Kuvattavat asiat Kustakin toiminnosta kerrotaan ainakin seuraavat asiat: Toiminnon nimi, jotta toimintoon voidaan viitata. Kuvaus toiminnosta. Tämä siis kuvaa osan ohjelmiston toteuttamasta käyttäytymisestä. Syötteet. Jokaisesta syötteestä tulee kertoa syötteen tyyppi ja rajoitteet kuten minimija maksimipituus, sallittu arvojoukko jne. Jos syötteenä on tiedosto, sen tarkka muoto kannattaa kuvata liitteessä esimerkiksi BNF-notaatiota käyttäen. Tulosteet. Kuvataan kuten syötteet. Lukijalle pitää syntyä selvä käsitys, mitä toiminto oikein tekee. Prioriteetti. Suosittelemme seuraavaa asteikkoa: 1. Toiminto toteutetaan tämän projektin puitteissa. 2. Toimintoa ei toteuteta tämän projektin puittessa, mutta luultavasti lähitulevaisuudessa jatkoprojektin toimesta. Jos toteutus etenee suunniteltua nopeammin, projektiryhmä voi harkita tämän prioriteetin toimintojen toteuttamista. 3. Toimintoa ei toteuteta lähitulevaisuudessa. Jäljitettävyys. Mihin asiakkaan esittämään vaatimukseen tai vaatimuksiin toiminto liittyy. 5.2 Esimerkki (tähän tulee konkreettinen esimerkki, miten toiminnon A1 voi kuvata.) 6 Käyttöliittymä Jos ohjelmassa on graafinen käyttöliittymä ja asiakkaalla on vaatimuksia käyttöliittymän ulkoasun suhteen, kuvataan käyttöliittymän ulkoasu tässä. Jos asiakkaalla ei ole juuri mi-
11 tään vaatimuksia käyttöliittymästä, voidaan käyttöliittymän kuvaus esittää vasta suunnitteludokumentissa. Tämän luku voi olla myös ennen lukua 5. 7 Ulkoiset liittymät Huomio! Juhani Haavisto toimittaa meille perjantaina 17.2. aiheesta lisämateriaalia, jonka pohjalta seuraavan kappaleen sisältö tulee muuttumaan. Ilpo-järjestelmä on yhteydessä sekä Desmond-järjestelmän tietokantaan että itse kyseiseen järjestelmään. Desmond-tietokannasta käsin on nähtävissä eräitä Ilmo-järjestelmän tietokannan tauluja. Desmond pitää sisällään tiedot opiskelijoiden suorittamista kursseista, jotka se noutaa Oodista. Koska järjestelmä on suunniteltu siten, että se kuormittaa Oodia mahdollismman vähän päivitetään opiskelijoiden opintosuoritukset ainoastaan silloin, kuin opiskelija kirjautuu sisään järjestelmään. Ilpo-järjestelmän kannalta tämä on ongelmallista, koska Ilpon toimintaan kuuluva automaattinen esitietojen tarkistaminen vaatii toimiakseen ajantaiset tiedot suoritetuistakursseista. Lisäksi Desmond pitää sisällään ainoastaan niiden opiskelijoiden tiedot, jotka ovat järjestelmää käyttäneet, joten Desmondin tietokannan päivittämiseksi on järjestelmään lisättävä komponentti, jonka avulla Ilpo voi pyytää tarvittavien tietojen lisäämistä ja päivittämistä. Koska Ilmo-tietokanta on sama kuin opetushenkilökunnan kurssikirjanpitojärjestelmän, se sisältää myös lähes kaikki profiloitavan kurssin hallinnollisista tiedoista. Ainoa tieto, mitä järjestelmistä ei löydy, on kurssin sisäisten ryhmien nimet, jotka jäävät siten käyttäjän täytettäviksi. 7.1 Tietokanta Tietokannasta, jota Ilpo-järjestelmä käyttää, on kuva liitteenä XXXXXXX. Seuraavassa on kuvattu ne tietokannasta löytyvät taulut, jota Ilpo-järjestelmä käyttää. Tauluja on kahdesta tietokannasta, mutta ne ovat nähtävissä yhdessä loogisessa tietokannassa. tk_opha-etuliitteellä varustetut taulut sijaitsevat fyysisesti Ilmo-tietokannassa ja desmond-etuliitteiset taulut Desmond-tietokannassa, johon Ilpo on yhteydessä. 7.1.1 tk_opha.opintojakso Taulussa on sellaiset tiedot kursseista, jotka eivät vaihdu luentosarjoittain. Tärkeimmät näistä ovat kurssikoodi sekä kurssin nimi.
12 7.1.2 tk_opha.kurssi Tietyllä lukukaudella luennoitava opintojakson ilmentymä. Liittyy opintojaksoon kurssikoodin välityksellä. Sisältää tiedot lukukaudesta ja -vuodesta sekä kurssin nimestä ja kurssin alkamis- ja loppumispäivämääristä. 7.1.3 tk_opha.opetus Sisältää tiedot yhdestä kurssin pienryhmästä. Liittyy kurssiin kurssikoodin ja lukukauden sekä -vuoden välityksellä. Koska opetus-taulussa on tieto osallistujien lukumäärästä tarvitaan tauluun päivitys-oikeudet. 7.1.4 tk_opha.opiskelija Opiskelijan tiedot Ilmo-järjestelmässä: henkilötunnus, opiskelijanumero, nimi, sähköpostiosoite, pääaine ja aloitusvvuosi. Koska opiskelijat joutuvat tarkastamaan nämä osana Ilmo-järjestelmään sisäänkirjautumista, Ilpo käyttää tästä taulusta löytyviä henkilötietoja desmond.henkilo-taulusta löytyvien tietojen sijaan. Desmond-järjestelmästä löytyvät opiskelijakohtaiset tiedot voidaan yhdistää Ilmo-järjestelmän vastaaviin opiskelijanumeron avulla. 7.1.5 tk_opha.paa_aine Tarkempaa tietoa opiskelijan pääaineesta. 7.1.6 tk_opha.osallistuminen Ilmo-järjestelmä lisää tauluun rivin aina opiskelijan ilmoittautuessa kurssille. Taulun avulla opiskelija yhdistetään kurssin ryhmään henkilötunnusta, kurssikoodia, lukukautta ja - vuotta sekä ryhmänumeroa käyttäen. Kun ilmoittautumiset on ryhmitelty Ilpon avulla, järjestelmä päivittää taulun rivejä siten, että opiskelijat siirretään "ylivuoto-ryhmästä varsinaisiin ryhmiin. Mikäli Ilpo-järjestelmän on kyettävä käsittelemään myös Ilmon ulkupuolelta tulevia ilmoittautumisia (jälki-ilmoittautumiset), pitää osallistuminen-tauluun voida lisätä kyseisen opiskelijan ilmoittautuminen "ylivuoto-ryhmään, jotta myöhemmin tapahtuva ryhmittelyn kirjaaminen rivejä päivittämällä onnistuisi. Tähän tauluun tarvitaan lisäys- ja päivitys-oikeudet.
13 7.1.7 tk_opha.ilmokysymys Ilmo-järjestelmässä ollut kysymys. Avain on kurssikoodin ja kysymysnumeron yhdistelmä. 7.1.8 tk_opha.ilmovastaus Opiskelijan vastaus Ilmo-järjestelmän kysymykseen. Avaimena toimii henkilötunnuksen, kurssikoodin ja kysymyksen numeron yhdistelmä. 7.1.9 tk_opha.henkilo Ilmo-järjestelmässä olevat tiedot laitoksen henkilökuntaan kuuluvasta henkilöstä. Avaimena toimiva htunnus muodostetaan henkilön nimestä. Taulussa on tiedot henkilön nimestä ja sekä sähköpostiosoitteesta. 7.1.10 tk_opha.opetustehtavan_hoito Liittää henkilökunnan jäsenen opetus-tauluun. Sisältää myös tiedot opetustehtävän laadusta viitteenä opetustehtava-tauluun. 7.1.11 tk_opha.opetustehtava Erityyppisten opetustehtävien kuvaukset, esimerkiksi asiakas, valvoja tai ohjaaja. 7.1.12 desmond.henkilo Desmond-järjestelmään talletettu opiskelija. Avaimena toimii käyttäjätunnus yliopiston ATK-järjestelmiin. Voidaan yhdistää vastaaviin Ilmo-järjestelmän opiskelijoihin opiskelijanumeron avulla. 7.1.13 desmond.suoritukset Opiskelijan suorittamat tietojenkäsittelytieteen kurssit, sekä niiden arvosanat. Liitettävissä Ilmo-järjestelmän kurssitietoihin kurssikoodin avulla. Liittyvät desmond.henkilotauluun käyttäjätunnuksen avulla. 7.1.14 desmond.suoritukset_sivuaine Opiskelijan suorittamat sivuainekurssit, sekä niiden arvosanat. Liittyvät desmond.henkilotauluun käyttäjätunnuksen avulla.
14 7.2 Desmond Ilpo käyttää kahta Desmond-järjestelmän tarjoamaa palvelua. Laitokesn henkilökunta toteuttaa kyseiset palvelut projektia varten. Nämä ovat kurssisuoritusten nouto ja esitietovaatimusten tarkastus. Palveluita käytetään Desmond-järjestelmään lisättävän Ilpo-luokan (tms.) kautta XXXXXXXXX (tekninen määrittely siitä, kuinka olioon päästään käsiksi). 7.2.1 noudasuoritukset(opiskelijat:collection): int Metodi saa parametrinaan Collection-rajapintaluokan toteuttavan olion, joka koostuu Stringolioina talletuista opiskelijanumeroista. Tämän jälkeen metodi tarkastaa, että kaikkia annettuja opiskelijanumeroita kohti on rivit Desmond-tietokannan henkilö-taulussa. Mikäli näin ei ole, lisätään puuttuvat rivit siten, että ne sisältävät vähintään tiedot opiskelijoiden käyttäjätunnuksista sekä opiskelijanumeroista. Kun kaikkien opiskelijoiden tiedot löytyvät Desmond-tietokannasta metodi noutaa Oodijärjestelmästä annettujen opiskelijoiden opintosuoritustiedot, jotka se tallettaa oman tietokantansa suoritukset ja suoritukset_sivuaine -tauluihin. Metodi palauttaa niiden opiskelijoiden lukumäärän, joiden opintosuorituksia metodi on päivittänyt Desmond-järjestelmään. Parametrit: Collection opiskelijat: Päivitettävien opiskelijoiden opiskelijanumerot 7.2.2 tarkastaesitiedot(suoritukset:collection, kurssi:string): Collection Metodin tulee kutsua ohjelmistotuotantoprojektin OS2 toteuttamaa ETV-pakkauksen Esitietovaatimusluokasta löytyvää tarkasta-metodia tai toimia vastaavalla tavalla. Parametreina annetaan tarkastettavan kurssin kurssikoodi, sekä Collection-rajapinnan toteuttava joukko, joka sisältää tarkastettavan opiskelijan suorittamien kurssien koodit. Metodi palauttaa Collection-rajapinnan toteuttavan olion, joka sisältää niiden kurssien kurssikoodit, jotka kyseiseltä opiskelijalta puuttuvat, jotta hän voisi ilmoittautua parametrina annetulle kurssille. Parametrit: Collection suoritukset: opiskelijan suorittamat kurssit String kurssi: kurssi, jonka esitiedot halutaan tarkastaa 8 Rajoitteet suunnittelulle ja toteutukselle Kuvataan rajoitteet, jotka otetaan suunnittelussa ja toteutuksessa huomioon. Sisältö ei ole sama kuin luvussa 3.3, missä on asiakkaan esittämän vaatimukset. Tässä ne rajoitteet,
15 jotka päätetään toteuttaa, kuvataan tarkemmin. 9 Validointi Luvussa tulee osoittaa, että ohjelmisto, joka toteuttaa dokumentissa kuvatut toiminnot täyttää asiakkaan esittämät vaatimukset. Analyysin osana kannattaa käyttää graafista mallia järjestelmästä, jotta kokonaiskuva hahmottuu helpommin. Toisin sanoen: validoidaan, että määrittelydokumentin toiminnot vastaavat sitä, mitä asiakas haluaa. 10 Huomautus Tämä on vain runko määrittelydokumentille. Jäsentely ei ole täydellinen, esimerkiksi käyttötapauksille (engl. use case) ja skenaarioille (engl. scenario) ei ole esitetty mitään tiettyä paikkaa. Miettikää, mitä seikkoja omassa projektissanne tulee painottaa.