OS3 Vaatimusanalyysi

Samankaltaiset tiedostot
Opintojensuunnittelujärjestelmä Vaatimusanalyysi

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

Lohtu-projekti. Testaussuunnitelma

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Convergence of messaging

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöliittymäsuunnitelma

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HOPS-ohjauksen vaiheet ovat seuraavat: (alleviivatut kohdat ovat ehopsin toiminnallisuuksia)

Testaussuunnitelma Labra

ehops Henkilökohtainen opintosuunnitelma

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lohtu-projekti. Testiraportti. Versiohistoria: syklin toteutuksen testit. 1. ajo Virve

Oodin hops. Oodin hops- työkalun käytön aloittaminen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HOPS-ohjauksen vaiheet ovat seuraavat: (alleviivatut kohdat ovat ehopsin toiminnallisuuksia)

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Opintokohteen Haku ja Käsittely

ehopsin käyttöohje opiskelijalle

OS3 Toteutusdokumentti

Suoritusten seuranta ja opiskelijan edistyminen

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ

ehops-opastus Sisältö Opintosuunnitelman luominen askeleittain Opintosuunnitelman muokkaus Opintojen aikatauluttaminen

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

TOIMINNALLINEN MÄÄRITTELY MS

Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

UCOT-Sovellusprojekti. Testausraportti

TAMPEREEN TEKNILLINEN YLIOPISTO KÄYTTÖOHJE TIETOVARASTON KUUTIOT

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

ehops Henkilökohtainen opintosuunnitelma Hopsin tekeminen WebOodin ehops toiminnolla

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

OPI-Maksut - Käyttötapaukset

1. Valitse suunniteltu valmistumisvuosi alasvetovalikosta ja tallenna valinta. 2. Luo uusi HOPS painikkeella pääset tekemään HOPSia.

1. HOPS-työkalun käyttöön ottaminen

Ohjelmistotuotantoprojekti

COTOOL dokumentaatio Testausdokumentit

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

HOPS-työkalun lisäksi SoleOPSiin on kytketty vuotuisia kehityskeskusteluja varten kyselypohjat.

Ylläpitodokumentti Mooan

T Testiraportti - järjestelmätestaus

Opintokohteiden muokkaus

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

AIKAISEMPIEN OPINTOJEN TUNNUSTAMINEN YLEISET HAKUOHJEET

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

1 Hyväksytty kauppatieteen akateemisen komitean kokouksessa

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

opiskelijan ohje - kirjautuminen

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

HOPS ja opintojen suunnittelu

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Kandidaatintyöprosessi Sähköenergiatekniikan laitoksella

ehops Henkilökohtainen opintosuunnitelma Hopsin tekeminen WebOodin ehops toiminnolla

HumakPro-uudistuksia ja -parannuksia / kevät 2013:

Ohjelmistojen mallintaminen. Luento 11, 7.12.

SA / Opiskelijat / Korvaavuus

Sähköposti ja uutisryhmät

SA / Opiskelijat / Osaamisen näyttö

Infoa voimaan astuneesta uudesta opetussuunnitelmasta, uudistetuista säädöksistä ja opintoja koskevista ohjeista

Helsingin yliopisto Kehittämisosasto Opiskelijarekisteri. Oodi 2.71 Käyttöohje Opintokokonaisuuden rekisteröinti OPINTOKOKONAISUUDEN REKISTERÖINTI

HOPS - HENKILÖKOHTAINEN OPISKELUSUUNNITELMA (Tietojenkäsittelytieteet)

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Autentikoivan lähtevän postin palvelimen asetukset

HOPS-tilaisuudet 8.4. ja 10.4.

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

ehops-opastus

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Tietojenkäsittelytieteet Tutkinto-ohjelman info. Henrik Hedberg Heli Alatalo

Hallintaliittymän käyttöohje

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kuopio Testausraportti Kalenterimoduulin integraatio

OPINTOKOKONAISUUDEN REKISTERÖINTI

Asiointipalvelun ohje

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ

Suvi Junes Tampereen yliopisto /Tietohallinto 2012

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Suoritusten seuranta ja opiskelijan edistyminen

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Opettajan ohje kypsyysnäytteen toteuttamiseen ja arvioimiseen sähköisenä Exam-tenttinä

Tietojenkäsittelytieteet Tutkinto-ohjelman info. Henrik Hedberg (Heli Alatalo)

1. ASIAKKAAN OHJEET Varauksen tekeminen Käyttäjätunnuksen luominen Varauksen peruminen... 4

HOPS - HENKILÖKOHTAINEN OPISKELUSUUNNITELMA (Tietojenkäsittelytieteet)

Tärkeää huomioitavaa:

ehops WebOodissa Opiskelijan ohjeet (TUTA)

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria

Onni-oppimispäiväkirjan ohje version 1.2

1/6. Erikoissosiaalityöntekijän koulutus HAKULOMAKE 2012

Matematiikan oppifoorumi Projektisuunnitelma

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

EXAM Kypsyysnäytteen laatiminen ja arviointi

OPISKELIJAN OPINNOT -NÄYTTÖ. Opiskelijan opintosuoritustietoja katsellaan Opiskelijan opinnot -näytöltä. Näyttö löytyy päävalikosta Opinnot.

Tietojärjestelmän osat

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Aineistosiirron testauksen aloituksen ohje Trafin sopimuskumppaneille

Transkriptio:

OS3 Vaatimusanalyysi Teemu Ajalin Lauri Jokipii Anu Määttä Juho Peltonen Nuutti Rintala Mikko Suonio Helsinki 17. helmikuuta 2003 Ohjelmistotuotantoprojekti Vaatimusanalyysi HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Dokumentin versiohistoria 0.1 07.02.2002 Ryhmässä tarkasteltava versio 0.2 11.02.2002 Ryhmässä tarkasteltava versio 0.3 14.02.2002 Ryhmän sisäinen deadline - versio 0.4 17.02.2002 Asiakkaalle annettu versio

Sisältö 1 Johdanto (Teemu) 1 1.1 Työn aihepiiri........................... 1 1.2 Määritelmät, termit ja lyhenteet................. 2 2 Yleiskuvaus (Teemu) 2 2.1 Ohjelmiston yleiskuvaus..................... 2 2.2 Järjestelmän toimintaympäristö................. 4 2.3 Järjestelmän käyttäjät....................... 4 3 Vaatimukset 4 3.1 Opintojen tila (Lauri)....................... 4 3.1.1 Pakolliset cum laude approbatur - kurssit....... 5 3.1.2 Toiminnallisuus graafissa................ 5 3.1.3 Valinnaiset cum laude approbatur -kurssit...... 5 3.1.4 Laudatur -kurssit..................... 5 3.2 Opintokokonaisuuslomakkeen vaatimukset (Nuutti, Mikko, Juho)................................ 6 3.2.1 Opintokokonaisuuslomakkeen palvelut opiskelijalle 6 3.2.2 Opintokokonaisuuksien muokkaus.......... 6 3.2.3 Lomakkeen tallennus ja tulostus............ 6 4 Käyttötapaukset 7 4.1 Käyttötapauksissa esiintyvät henkilöt (Lauri)......... 7 4.2 Opintojen tila (Lauri)....................... 7 4.2.1 Käyttötapaus: mille kurssille pitää mennä....... 7 4.2.2 Käyttötapaus: tietoa kurssista.............. 8 4.2.3 Käyttötapaus: mitä kursseja suoritettu......... 8 4.2.4 Käyttötapaus: suunnitellun kurssin poisto suunnitelmasta.......................... 8 4.2.5 Käyttötapaus: mitä kursseja puuttuu Luonnontieteiden kandidaatin tutkinnosta.............. 8 4.2.6 Käyttötapaus: tietoa kurssista ja milloin kurssin voi käydä............................ 9 4.2.7 Käyttötapaus: kurssin lisääminen suunnitelmiin... 9 4.2.8 Käyttötapaus: tuutoroitavan opiskelijan opintojen tilan katsominen...................... 9 4.3 Opintokokonaisuuslomake (Juho)............... 9 4.3.1 Käyttötapaus: opintosuoritusmerkintä lomakkeen hankkiminen.......................... 9

4.3.2 Käyttötapaus: opintosuorituksen sisällön tarkastelu 10 4.3.3 Käyttötapaus: suorituksen siirtäminen kokonaisuudesta toiseen....................... 10 4.3.4 Käyttötapaus: suorituksen siirtäminen muihin opintoihin........................... 10 4.3.5 Käyttötapaus: opintokokonaisuuden täyttymisen tarkastaminen........................ 11 4.3.6 Käyttötapaus: opintokokonaisuuden opintoviikkomäärän selvittäminen..................... 11 4.3.7 Käyttötapaus: opintokokonaisuuden arvosana.... 11 4.3.8 Käyttötapaus: opintokokonaisuuden tallennus.... 11 4.3.9 Käyttötapaus: opintokokonaisuuden uudelleen käyttö.............................. 11 5 Käyttöliittymä 12 5.1 Opintojen tila (Lauri)....................... 12 5.1.1 Pakolliset cum laude approbatur -kurssit....... 12 5.1.2 Toiminnallisuudet.................... 14 5.1.3 Listattavat kurssit..................... 14 5.2 Opintokokonaisuuslomakkeen käyttöliittymä (Nuutti)... 17 6 Ohjelmiston tekninen kuvaus 19 6.1 Opintojen tila (Lauri)....................... 19 6.2 Opintokokonaisuuslomakkeen tietomallinnus (Mikko)... 19 6.2.1 Opintokokonaisuus................... 20 6.2.2 Pakollinen kurssi..................... 21 6.2.3 Suoritus.......................... 21 6.2.4 Suuntautuminen..................... 22 6.2.5 Tutkintovaatimus..................... 22 6.2.6 Opiskelija......................... 22 6.3 Tietokanta............................. 23 7 Tietoturva (Nuutti) 23 8 Käytettävyys (Nuutti) 23 8.1 Suorituskyky........................... 23 8.2 Virhetilanteet........................... 24 9 Testaus (Juho) 24 9.1 Yleistä............................... 24 9.2 Käytettäviä periaatteita...................... 25

9.3 Yksikkötestaus........................... 25 9.4 Integraatiotestaus......................... 26 9.5 Järjestelmätestaus......................... 26 10 Rajoitteet suunnittelulle ja toteutukselle 26 10.1 Opintojen tila (Lauri)....................... 26 10.2 Opintokokonaisuuslomake (Mikko).............. 27 10.2.1 Vanhentuneet suoritukset................ 27 10.2.2 Opintokokonaisuuksien kokoamisjärjestys...... 27 11 Korjaukset 28 11.1 Optimointi............................. 28 11.1.1 Ongelma (Juho)...................... 28 11.1.2 Syy ja miten havaittiin (Mikko)............. 28 11.1.3 Miten korjataan (Mikko)................. 29 11.2 Tietokanta (Nuutti ja Juho).................... 30 11.2.1 Ongelma.......................... 30 11.2.2 Miten ongelma korjataan................ 30 Lähteet 31

1 Johdanto (Teemu) 1 1.1 Työn aihepiiri Keväällä 2002 Opintosu -ohjelmistotuotantoprojekti toteutti opintojensuunnittelujärjestelmän, jonka avulla opiskelijan opintojen suunnittelu ja suunnitelmien muuttaminen helpottuu. Syksyllä 2002 OS2 -projekti teki laajennukset, joiden avulla järjestelmä osaa tarkistaa opiskelijan suunnittelemien kurssien esitietovaatimukset sekä uusien kurssien vastaavuudet vanhoihin kursseihin. Lisätietoja sekä Opintosu- että OS2- projektien toteuttamista järjestelmistä on niiden vaatimusanalyyseissä [Haa02][Aho02]. OS3 -projekti määrittelee ja toteuttaa korjaukset, joiden avulla nykyisen järjestelmän nopeus ja toiminnallisuus saadaan kuntoon. Tehtävää ei ollut alkuperäisessä työn määrityksessä. OS3 - projektin tehtävänä on kehittää graafinen työkalu, jonka avulla opiskelijan on tarkoitus saada selkeä kuva opintojensa edistymisestä, laitoksen kursseista sekä niiden esitietovaatimuksista. Lisäksi OS3 -projekti toteuttaa työkalun, jonka avulla opiskelijan on helppo suunnitella ja tulostaa opintokokonaisuutensa hakulomakkeen. Määrittelydokumentista on rajattu pois tehtäväkuvauksen osatehtävä, jolla helpotettaisiin opiskelijan opintosuunnitelman tekemistä koko opiskeluajalle. Järjestelmän korjaukseen kuluva aika on syynä rajaukseen.

2 1.2 Määritelmät, termit ja lyhenteet CVS HTML Internet Explorer J2SDK Konqueror Mozilla Opera Opintosu OS2 XML Concurrent Versions System. Projektin käyttämä versionhallintajärjestelmä. Hypertext Markup Language. WWW-sivujen kuvauskieli. Microsoftin kehittämä Windows -selain. Sun Microsystemin kehittämä työkalu Java -pohjaisten WWW -palvelujen tekemiseen K Desktop Enviromentin WWW -selain Linuxiin. The Mozilla Organizationin kehittämä Linux- ja Windows -selain. Opera Softwaren kehittämä Linux -selain. Kevään 2002 Ohtu -projekti, joka toteutti alkuperäisen järjestelmän. http://www.cs.helsinki.fi/group/opintosu/ Syksyn 2003 Ohtu -projekti, joka jatkokehitti järjestelmää. http://www.cs.helsinki.fi/group/os2/ Extensible Markup Language. Metakieli rakenteisten dokumenttien esittämiseen. 2 Yleiskuvaus (Teemu) 2.1 Ohjelmiston yleiskuvaus Projektin aikana tuotetaan WWW -ohjelmiston laajennus Java Servlet - tekniikalla. Apuna tullaan käyttämään J2SDK -kehityskirjastoa. Ohjelmisto käyttää tietojenkäsittelytieteen laitoksen Oracle -tietokantaa tietosisällön tallennukseen. Toteutettava järjestelmä (kuvassa 1) jakautuu kolmeen erilliseen kokonaisuuteen. Ensimmäisenä osavaiheena ryhmä määrittelee ja toteuttaa korjaustoimenpiteet nykyisen järjestelmän hitaus- ja toimimattomuusongelmiin. Toisena osatehtävänä ryhmä toteuttaa graafisen laajennuksen Cum lauden pakollisten opintojen esittämiseen. Käyttäjä voi nähdä kaaviosta opintojensa nykyisen tilan, suunnittelemansa kurssit sekä ne kurssit, joille hän

3 voi nykyisillä suorituksillaan ilmoittautua. Näin ollen opiskelijan ideaalisen opintopolun suunnittelu helpottuu. Laudatur- ja valinnaiskursseista järjestelmä tarjoaa eritellyissä listoissa myöhemmin suunniteltavan tietosisällön. Järjestelmän pyrkii esittämään mahdollisimman selkeän kuvan opintojen tilasta. Kolmantena osatehtävänä ryhmä toteuttaa järjestelmän, jonka avulla opiskelijan on helppo suunnitella, muokata ja tulostaa opintokokonaisuuslomakkeensa. Järjestelmä mahdollistaa sekä Cum Laude- että Laudatur - merkintöjen lomakkeen suunnittelun. Kuva 1: Järjestelmän yleiskuvaus. Kuvassa 1 on karkea kuvaus järjestelmän toiminnasta. Uudet toiminnot opintojen tilan visualisoinnista ja opintokokonaisuuslomakkeen suunnittelusta käyttävät hyväksi olemassaolevan järjestelmän palveluja ja tietokantaa. Suunnitteludokumenttiin laaditaan tarkempi kuvaus kyseisistä toiminnoista. Tietokannan sisältö laajenee uusien toimintojen myötä.

4 2.2 Järjestelmän toimintaympäristö Järjestelmä toteutetaan toimimaan tietojenkäsittelytieteen laitoksella. Se integroidaan projektin lopussa osaksi aiempaa Opintosu -järjestelmää, mikä täytyy huomioida toteutuksessa. Järjestelmää käytetään WWW -selaimella ja laitoksen periaatteiden mukaisesti sen toiminta testataan Internet Explorerillä, Mozillalla, Konquerilla ja Operalla. Java2 -tekniikkaa käytetään visualisointiosatehtävässä. 2.3 Järjestelmän käyttäjät Järjestelmää käyttävät tietojenkäsittelytieteen laitoksen opiskelijat. Laitoksen suuresta opiskelijamäärästä johtuen järjestelmän käyttömäärä on huomattava varsinkin lukukausien alussa. Se asettaa korkeat vaatimukset ohjelmiston tehokkuudelle. Niinpä järjestelmän käytettävyyden tulee säilyä riittävällä tasolla. 3 Vaatimukset 3.1 Opintojen tila (Lauri) Ohjelma näyttää opiskelijan opintojen tilan seuraavin osa-aluein: pakolliset cum laude approbatur-kurssit, valinnaiset cum laude approbatur - kurssit ja valitun suuntautumisvaihtoehdon tai erikoistumislinjan mukaiset laudatur-kurssit. Kaikille edellä luetelluille osa-alueille on yhteistä se, että näytetyistä kursseista opiskelija näkee helposti onko hän jo suorittanut kurssin, täyttyvätkö kurssin esitietovaatimukset ja onko hän suunnitellut käyvänsä kurssin. Kaikkiin kursseihin liittyy toiminnallisuutta. Kurssien muodostamista edellä mainituista kokonaisuuksista (cum laude approbatur jne.) näytetään minimi-, yhteenlaskettu ja puuttuva opintoviikkomäärä.

5 3.1.1 Pakolliset cum laude approbatur - kurssit Pakolliset cum laude approbatur -kurssit kuvataan visuaalisesti graafilla. Graafista opiskelija näkee mitä tutkintovaatimuksiin liittyviä pakollisia cum laude approbatur -kursseja hän on jo suorittanut, mitä nykyisiin tutkintovaatimuksiin liittyviä pakollisia cum laude approbatur - kursseja on vielä suorittamatta ja mille kursseille hän voi tai ei voi seuraavaksi mennä. Erityisesti graafista opiskelija näkee helposti, miten hänen opintonsa etenevät ja mille kursseille hän seuraavaksi voi tai hänen pitää mennä. Kurssien väliset esitietovaatimukset näkyvät graafissa. Graafi mahtuu tulostettuna A4-paperiarkille ja sen eri komponentit erottuvat myös mustavalkotulostuksessa. 3.1.2 Toiminnallisuus graafissa Graafiin lisätään toiminnallisuutta, mikäli se vain on sallituilla ja valituilla ohjelmisto- ja ohjelmointitekniikoilla sekä projektin aikatauluun liittyen mahdollista. Toiminnallisuus olisi kurssien tarkempien tietojen näyttämistä, kurssien lisäämistä ja poistamista suunnitelluista opinnoista ja tiettyyn kurssiin liittyvien esitietovaatimuksien havainnollistamista. 3.1.3 Valinnaiset cum laude approbatur -kurssit Valinnaiset cum laude approbatur -kurssit näytetään listana. Tässä listassa on ne kurssit, jotka on joko suoritettu tai suunniteltu käytäväksi. Suorittamattomia ja suunnittelemattomia kursseja ei listata, koska listasta tulisi pitkä ja epäkäytännöllinen. 3.1.4 Laudatur -kurssit Laudatur - kurssit näytetään listana valitun suuntautumisvaihtoehdon tai erikoistumislinjan mukaisten tutkintovaatimusten mukaan seuraavalla jaolla: pakolliset, aihepiiriin kuuluvat ja valinnaiset laudatur -kurssit, sekä seminaarit ja Pro gradu - tutkielma. Tässä kurssijaossa pakollisten laudatur -kurssien lista näytetään aina kokonaisuudessaan. Näitä ovat suorite-

6 tut, suunnitellut ja suunnittelemattomat kurssit. Sen sijaan kaikkiin muihin laudatur - osa-alueisiin listataan vain suoritetut ja suunnitellut kurssit. Syy tähän on sama kuin valinnaisille cum laude approbatur -kursseillekin: listoista tulisi pitkiä ja epäkäytännöllisiä. 3.2 Opintokokonaisuuslomakkeen vaatimukset (Nuutti, Mikko, Juho) 3.2.1 Opintokokonaisuuslomakkeen palvelut opiskelijalle Järjestelmä tarjoaa opintokokonaisuuslomakkeen tarkistettuaan, että opiskelijalla on riittävät suoritukset opintokokonaisuusmerkinnän hakemiseen. Lomakkeella tietojenkäsittelytieteen opiskelija voi hakea pääaineensa cum laude approbaturin ja laudaturin sekä muiden opintojen opintokokonaisuuksia. Cum laude approbatur - merkintää voi hakea vasta sen jälkeen, kun vaaditut kurssit on suoritettu. Laudaturia voi hakea vasta, kun cumu on hyväksytty. Muita opintoja voi hakea FM-vaiheessa. 3.2.2 Opintokokonaisuuksien muokkaus Opiskelijalle tarjotaan valmis suunnitelma opintokokonaisuuksiin sijoitettavista jo suoritetuista kursseista. Opiskelija voi muokata suunnitelmassa niitä kursseja, joita ei ole vielä sidottu kokonaisuuksiin. Valinnaisia kursseja voi siirtää cum laude approbatur - kokonaisuudesta laudatur-kokonaisuuteen ja päinvastoin. Kursseja voi myös jättää kokonaan pois opintokokonaisuuksista. Muokkauksen aikana järjestelmä tarkistaa, että tutkintovaatimusten mukaiset ehdot täyttyvät. Eri opintokokonaisuuksien arvosanat ja opintoviikkomäärät lasketaan muokkauksen yhteydessä. 3.2.3 Lomakkeen tallennus ja tulostus Muokkauksen jälkeen opintokokonaisuussuunnitelman voi tallentaa tietokantaan. Siitä voidaan myös kirjoittaa tiedostoon tai tulostaa näytölle hakulomake, johon on tulostettu valmiiksi valitut kurssit. Tallennetun

7 opintokokonaisuusehdotelman voi myöhemmin lukea tietokannasta uudelleen muokkaamista varten. 4 Käyttötapaukset 4.1 Käyttötapauksissa esiintyvät henkilöt (Lauri) Frank Fuksi Uusi opiskelija Helsingin yliopistossa pääaineenaan tietojenkäsittelytieteet. Olli Opiskelija Toisen vuoden opiskelija HY:ssä TKT pääaineenaan. Ollin ensimmäisenä vuonna suorittamat kurssit ovat Tietokone työvälineenä, Ohjelmoinnin perusteet, Java-ohjelmointi, Johdatus sovellussuunnitteluun, Ohjelmoinnin harjoitustyö, C-ohjelmointi ja Digitaalisen median tekniikat. Mikko Mallikas Neljännen vuoden opiskelija HY:ssä TKT pääaineenaan. Saanut suoritettua luonnontieteiden kandidaatin tutkinnon. On valinnut käyvänsä Infomaatiojärjestelmien suuntautumisvaihtoehdon. Tero Tuutori Tietojenkäsittelytieteen laitoksen syksyllä alkavan opettajatuutorointiryhmän opettajatuutori. 4.2 Opintojen tila (Lauri) Tässä esitetään opintojen tila -osajärjestelmää käyttävien potentiaalisia tarpeita ja käyttötapauksia. 4.2.1 Käyttötapaus: mille kurssille pitää mennä Frank Fuksi saapuu TKTL:lle syyskuun 13. päivän aamuna. Frank on sen verran perillä asioista, että hän haluaa jo tietää mille kursseille hänen pitää tai kannattaa mennä ensimmäisenä syksynään.

8 4.2.2 Käyttötapaus: tietoa kurssista Saatuaan tietää, että ensimmäisiin käytäviin kursseihin kuuluu Ohjelmoinnin perusteet -kurssi, Frank Fuksi kiinnostuu tietämään mitä ko. kurssi pitää sisällään ja miten hän voi ilmoittautua sille. 4.2.3 Käyttötapaus: mitä kursseja suoritettu Samoihin aikoihin, kun Frank arvuuttelee omia opintojaan, Olli Opiskelija on saapunut TKTL:lle ja hän haluaa ensimmäiseksi tietää mitä TKTL:n kursseja hän on ensimmäisen vuoden aikana suorittanut. 4.2.4 Käyttötapaus: suunnitellun kurssin poisto suunnitelmasta Katsellessaan suorituksiaan Olli Opiskelija havaitsee, että on suunnitellut käyvänsä tieteellisen kirjoittamisen kurssin seuraavan vuoden syksynä. Ollin suunnitelmat eivät kuitenkaan johda ko. kurssin näin pikaiseen suorittamiseen, joten hän haluaa poistaa kurssin suunniteltujen kurssien joukosta. Kuva 2: Olli Opiskelijan käyttötapaukset. 4.2.5 Käyttötapaus: mitä kursseja puuttuu Luonnontieteiden kandidaatin tutkinnosta Syksyn ensimmäinen periodi on loppunut ja Frank Fuksi on käynyt kurssit Tietokone työvälineenä ja Ohjelmoinnin perusteet. Frank on myöskin

9 suunnitellut käyvänsä kurssit Java-ohjelmointi ja Johdatus sovellussuunnitteluun. Toteuttaessaan suunnittelutyötään Frankille herää kysymys, että mitä TKTL:n kursseja hänen pitää ylipäätään suorittaa saavuttaakseen ensimmäisen päämääränsä luonnontieteiden kandidaatin tutkinnon. 4.2.6 Käyttötapaus: tietoa kurssista ja milloin kurssin voi käydä Selatessaan kursseja Frank Fuksi huomaa kurssien joukossa Rinnakkaisohjelmistot -kurssin. Frank ottaa selville kurssista myönnettävien opintoviikkojen lukumäärän, kurssin suoritusvaatimuset ja milloin kurssia seuraavan kerran luennoidaan. 4.2.7 Käyttötapaus: kurssin lisääminen suunnitelmiin Frank Fuksi havaitsee, että hän voisi käydä Rinnakkaisohjelmistot - kurssin toisen lukuvuoden keväänä ja hän haluaa tallentaa tämän tiedon suunnitelmiinsa. 4.2.8 Käyttötapaus: tuutoroitavan opiskelijan opintojen tilan katsominen Marraskuun alkupuolella Tero Tuutori, Olli Opiskelijan opettajatuutori, haluaa tietää Ollin opintojen tilan. 4.3 Opintokokonaisuuslomake (Juho) 4.3.1 Käyttötapaus: opintosuoritusmerkintä lomakkeen hankkiminen Mikko Mallikas on suorittanut luonnontieteiden kandidaatin tutkintoon vaadittavat opinnot ja haluaa hakea cum laude approbatur opinnoistaan merkinnän. Merkinnän hakemiseen hän tarvitsee lomakkeen, johon opintosuoritukset ja hyväksyjän allekirjoitus merkitään.

10 Kuva 3: Frank Fuksin käyttötapaukset. 4.3.2 Käyttötapaus: opintosuorituksen sisällön tarkastelu Mikko Mallikas haluaa tietää mitä kursseja cum laude approbatur - opintokokonaisuuteensa vaaditaan ja minkälaisen kokonaisuuden hänen suorituksistaan saisi. 4.3.3 Käyttötapaus: suorituksen siirtäminen kokonaisuudesta toiseen Mikko haluaa XML-kurssin suorituksensa kirjattavaksi laudatur-opintoihin eikä otettavaksi mukaan cum laude approbatur - merkintään. 4.3.4 Käyttötapaus: suorituksen siirtäminen muihin opintoihin Mikko haluaa tietää voisiko Tietokoneen toiminta kurssin siirtää cum laude ja laudatur merkintöjen ulkopuolelle, muihin opintoihin.

11 Kuva 4: Tero Tuutorin käyttötapaukset. 4.3.5 Käyttötapaus: opintokokonaisuuden täyttymisen tarkastaminen Olli Opiskelija haluaa tietää voisiko hän hakea cum laude approbatur - merkintää nykyisillä opintosuorituksillaan. 4.3.6 Käyttötapaus: opintokokonaisuuden opintoviikkomäärän selvittäminen Mikko Mallikas on kiinnostunut tietämään cum laude approbatur - merkintään oikeuttavien suoritustensa opintoviikkojen yhteismäärän. 4.3.7 Käyttötapaus: opintokokonaisuuden arvosana Mikkoa kiinnostaa myös cum laude approbatur - kokonaisuudesta hänelle määräytyvä kokonaisarvosana. 4.3.8 Käyttötapaus: opintokokonaisuuden tallennus Mikko on valinnut suorittamistaan kursseista ne, jotka hän haluaa mukaan cum laude approbatur - opintokokonaisuuteen ja haluaa säilyttää tiedon myöhempää käyttöä varten. 4.3.9 Käyttötapaus: opintokokonaisuuden uudelleen käyttö Mikko kuulee, että cum laude approbatur - merkintöjä antava professori on tänään paikalla ja haluaa toissapäivänä tallentamansa opintokokonaisuuden jälleen käyttöönsä.

12 Kuva 5: Opintokokonaisuuslomakkeen käyttötapaukset. 5 Käyttöliittymä 5.1 Opintojen tila (Lauri) Ohjelmassa näytetään opintojen tila seuraavin osa-aluein: pakolliset cum laude approbatur - kurssit, valinnaiset cum laude approbatur - kurssit ja valitun suuntautumisvaihtoehdon tai erikoistumislinjan mukaiset laudaturkurssit. Nämä saadaan näkyviin joko siten, että näkyvissä on vain cum laude approbatur tai laudatur - kurssit. Jos näkyvillä on cum laude approbatur - kurssit, on valittavissa näkyykö pakollisten kurssien graafin lisäksi valinnaisten kurssien lista. Jos näkyvillä on laudatur -kurssit, niin näkyvillä on cum laude approbatur - kursseista opintoviikkomäärät. 5.1.1 Pakolliset cum laude approbatur -kurssit Pakolliset cum laude approbatur - kurssit kuvataan visuaalisesti graafilla. Graafi kuvaa pakollisten cum laude approbatur - kurssien esitietovaati-

13 musverkkoa. Kuvassa 11 on hahmotelma graafista. Graafissa olevat laatikot näytetään tarkemmin kuvissa 6-10. Kuvassa 11 laatikot, joissa on ohut reuna ja joista puuttuu vasemman reunan pienempi laatikko, kuvastavat suoritettuja kursseja (tarkemmin kuvassa 6). Paksureunaisista laatikoista ne, joiden reuna on yhtenäinen ja vasemmassa reunassa ei ole merkkiä, ovat esitietovaatimuksiltaan valmiita kursseja ja laatikon kuvaama kurssi on suunniteltu käytäväksi (kuva 7). Jos laatikon reunassa on! -merkki ja reunat ovat katkoviivaa, niin laatikon kuvaama kurssi on esitietovaatimuksiltaan valmis, mutta ei vielä suunniteltu käytäväksi (kuva 8). Laatikko, jonka reunat ovat katkoviivaa ja vasemmassa reunassa on X -merkki, kuvastaa kurssia jonka esitietovaatimukset eivät vielä täyty ja jota ei ole vielä suunniteltu käytäväksi (kuva 9). Sen sijaan laatikko, jossa on yhtenäinen reuna ja vasemmassa reunassa on * -merkki, kuvastaa kurssia, joka on esitietovaatimuksiltaan suorittamaton, mutta kurssi on kuitenkin lisätty suunnitelmiin (kuva 10). Kaikkiin laatikoihin liittyy myös värikoodausta. Värikoodaus toteutetaan siten, että värikoodatun laatikon reunat ja teksti ovat värillisiä, kuitenkin niin, että reunat ja teksti ovat samaa väriä. Suoritetut kurssit ovat mustia värikoodiltaan. Laatikot, joissa on vasen reuna joko tyhjänä tai siinä on! -merkki, on värikoodattu vihreällä kuvastaen kursseja, joille voidaan nykyisillä suorituksilla mennä. X ja * -merkein varustetut laatikot ovat punaisia kuvastaen kursseja, joille ei vielä voi mennä. Kuva 6: Opiskelijan suorittama kurssi Kuva 7: Kurssi, jolle opiskelija saa osallistua ja jonka hän on suunnitellut.

14 Kuva 8: Kurssi, jolle opiskelija saa osallistua, mutta jota hän ei ole vielä suunnitellut. Kuva 9: Kurssi, jolle opiskelija ei saa vielä osallistua. Kuva 10: Kurssi, jolle opiskelija ei saa vielä osallistua, mutta jonka hän on jo suunnitellut. 5.1.2 Toiminnallisuudet Opintojen tilaan mukaan tuleville kursseille on yhteisiä toiminnallisuuksia, joille siis tehdään myös liittymä. Kaikista kursseista saadaan tarkempia tietoja esiin. Suunniteltuihin kursseihin liittyy toiminnallisuus, jolla kurssin voi poistaa suunnitelmistaan. Suunnittelemattomiin kursseihin liittyy toiminnallisuus, jolla kurssin voi liittää suunnitelmiinsa. Jos pakollisten cum laude approbatur -kurssien graafiin saadaan toiminnallisuutta, on toiminnallisuus aiemmin mainittujen lisäksi tiettyyn kurssiin liittyvien esitietovaatimuksien havainnollistamista. 5.1.3 Listattavat kurssit Valinnaiset cum laude approbatur - kurssit ja laudatur-kurssit näytetään järjestelmässä listoina. Laudatur-kurssien käyttöliittymä on suuntaa antavasti kuvassa 12.

Kuva 11: Pakollisten cum laude approbatur - kurssien graafi. 15

Kuva 12: Laudatur-kurssien käyttöliittymä. 16

17 5.2 Opintokokonaisuuslomakkeen käyttöliittymä (Nuutti) Opintokokonaisuuslomakkeen käyttöliittymä toteutetaan html-sivuina, joissa on lomakkeita, painikkeita, valintalaatikoita ja javascriptiä. Html-sivut tulostaa Java-servletti. Toiminnallisuus lomakkeella on toteutettu javascriptillä ja servletille lähetettävällä lomakekutsulla. Kuva 13: Opintokokonaisuuden hakulomakkeen käyttöliittymä. Opintokokonaisuuslomakkeelle pääsee opintojen tila - sivulta, kun opintosuoritukset riittävät vähintään cumun hakemiseen. Tällöin opintojen tila - sivulle ilmestyy linkki (painike, html-linkki) opintokokonaisuuslomakkeelle. Opintokokonaisuuslomakkeen tyyppi (cum laude approbatur/laudatur/muut opinnot) valitaan joko opintojen tila-sivulla tai opintokokonaisuuslomakkeella alasvetovalikon avulla (kohta 1 kuvassa 13). Opintokokonaisuuslomakkeella laudatur-kokonaisuuden kohdalla voi valita minkä linjan mukaista laudatur-kokonaisuutta hakee. Yhden linjan

18 suuntautumisvaihtoehdot (opettajan sv, sovellettu, tietokonematemaatikko) rinnastetaan linjoihin. Suoritettujen kurssien mahdollistamat linjavaihtoehdot ovat valittavissa alasvetovalikon avulla (kohta 2 kuvassa 13). Lisäksi tutkintovaatimusten vuosi on valittavissa samalla tavalla (kohta 3 kuvassa 13). Opintokokonaisuuslomakkeella toiminnallisuuksia ovat kurssien siirtäminen cum laude approbatur-opintokokonaisuuksista laudatur-kokonaisuuteen ja päinvastoin. Myös muihin opintoihin voi sijoittaa kursseja. Päällekkäisistä kursseista voi valita vain toisen mukaan opintokokonaisuuteen, mikä toteutetaan poissulkevalla valinnalla. Opintokokonaisuuksien opintoviikkomäärät ja arvosana esitetään käyttäjälle muokkaamisen yhteydessä (kohta 7 kuvassa 13). Yksinkertainen ratkaisu toiminnallisuuden toteuttamiseen on kaikkien suoritettujen kurssien esittäminen listana ja jokaisen kurssin perässä on valintalaatikko (kohta 4 kuvassa 13), josta voisi valita kumpaan kokonaisuuteen kurssin haluaa tai haluaako sitä ollenkaan mukaan lomakkeelle. Aluksi kurssit on esivalittu tutkintovaatimukset täyttäväksi ehdotelmaksi. Valinta kokonaisuuksien välillä on mahdollista vain tiettyjen kurssien välillä - pääasiassa valinnaisten kurssien, sillä cum laude approbaturin kaikki pakolliset kurssit kuuluvat luonnollisesti cumuun ja samoin laudaturin kohdalla. Muutoksien jälkeen lomake voidaan tulostaa (kohta 5 kuvassa 13) määrämuotoisena allekirjoitusta varten tai tallentaa kantaan (kohta 6 kuvassa 13) myöhempää käyttöä varten. Tulostamisen yhteydessä lomake lähetetään ensin servletille, joka tarkistaa, että muutoksien jälkeen tutkintovaatimukset säilyvät. Epäkelvollisessa tilanteessa virheelliset valinnat näytetään korostettuina lomakkeella ja ne täytyy korjata ennenkuin lomake voidaan tulostaa lopullisessa muodossa. Lopulliselle hakulomakkeelle (kuva 14) tulostetaan vain kokonaisuuteen kuuluvat kurssit. Yli kymmenen vuotta vanhat kurssit korostetaan lomakkeella ja epäselvissä tilanteista huomautetaan hakulomakkeella. Eri tilojen välistä liikkumista selvennetään kuvassa 15.

19 Kuva 14: Opintokokonaisuuden hakulomake tulostettuna. 6 Ohjelmiston tekninen kuvaus 6.1 Opintojen tila (Lauri) Teknisesti opintojen tilan visualisointi toteutetaan Java-kielellä, tarkemmin sanottuna servleteillä. Pakollisten cum laude approbatur -kurssien ja niiden esitietovaatimusten pohjalta luotavasta kurssiverkosta muodostetaan kuva, graafi (kuva 11). Valinnaiset cum laude approbatur ja laudatur -kurssit näytetään listoina (kuva 12). 6.2 Opintokokonaisuuslomakkeen tietomallinnus (Mikko) Opintokokonaisuuslomake-osajärjestelmän tietosisältö on mallinnettu UMLluokkakaaviona kuvassa 16. Luokista on kuvattu ne attribuutit ja yhtey-

20 Kuva 15: Opintokokonaisuuden hakulomakkeen eri tilat. det, jotka ovat olennaisia tämän osajärjestelmän kannalta. 6.2.1 Opintokokonaisuus Järjestelmän tuntemia opintokokonaisuuksia ovat tietojenkäsittelytieteen pääaineoppimäärät cum laude approbatur ja laudatur. Näiden lisäksi omaksi opintokokonaisuudekseen luetaan FM-tutkinnon muut opinnot, joita ei lueta mihinkään pääaine- tai sivuaineopintokokonaisuuteen. Opintokokonaisuudella on joukko pakollisia kursseja. Minimiopintoviikkomäärän ov_min ja maksimiopintoviikkomäärän ov_max rajoissa opiskelija suorittaa lisäksi suuntautumisvaihtoehtoon soveltuvia valinnaisia kursseja. Attribuutit ov_valinnaiset ja ov_seminaarit ilmaisevat valinnaisten kurssien ja seminaarien minimiopintoviikkomäärät. Opintokokonaisuus on eheä, kun siihen on sidottu vaaditut suoritukset. Opintokokonaisuus voi sisältää myös toisen opintokokonaisuuden, sisäkokonaisuuden. Esimerkiksi vuoden 2000 mukaisten tutkintovaatimusten mukaan laudatur-kokonaisuuteen on kuuluttava cum laude approbatur -kokonaisuus. Opintokokonaisuus kuuluu yhteen suuntautumisvaihtoehtoon, jonka perusteella siihen vaa-

21 * -valitsee 0..1 TUTKINTOVAATIMUS -tutkinto_id OPISKELIJA -tunnus -opiskelijanro -etunimi -sukunimi -osoite -puhelin -email * 0..1 -valitsee 1 * SUUNTAUTUMINEN -suuntautumis_id 1 1 * -suorittaa * SUORITUS -kurssikoodi -arvosana -hyväksymis_pvm -opintoviikot -korvattu -oodi * -sitoo 1 OPINTOKOKONAISUUS -kokonaisuus_id -ov_min -ov_max -ov_valinnaiset -ov_seminaarit 1..* * PAKOLLINEN KURSSI -kurssikoodi -pakollisuus 0..1 kuuluu sisäkokonaisuutena Kuva 16: Osajärjestelmän tietosisältö UML-kaaviona ditut kurssit määräytyvät. Opintokokonaisuuden yksilöi attribuutti kokonaisuus_id. 6.2.2 Pakollinen kurssi Täysin pakollinen kurssi vaaditaan johonkin opintokokonaisuuteen. Suositeltuja kursseja ovat ne kurssit, joista opintokokonaisuuteen sidottavat valinnaiset kurssit suositellaan valittavaksi. Pakollisuuden asteen määrittää attribuutti pakollisuus. Kurssikoodi on pakolliseksi kiinnitettävän kurssin tunniste. 6.2.3 Suoritus Opiskelija saa läpäisemästään kurssista suorituksen, joka voidaan sitoa yhteen opintokokonaisuuteen. Suoritus sisältää arvosanan, hyväksymispäi-

22 vän (hyväksymis_pvm), opintoviikkomäärän (opintoviikot) ja attribuutin korvattu, joka kertoo onko suoritus saatu korvaamalla kurssi esimerkiksi toisen oppilaitoksen kurssilla. Attribuutti oodi ilmaisee, onko suoritus luettu Oodi-opintosuoritusotteesta vai onko opiskelija lisännyt suorituksen itse. Kurssikoodi on suoritetun kurssin tunniste. 6.2.4 Suuntautuminen Suuntautuminen on opiskelijan valitsema suuntautumisvaihtoehto, joka vaikuttaa siihen kuuluvan opintokokonaisuuden sisältöön. Tietojenkäsittelyn suuntautumisvaihtoehdossa suuntautumisella tarkoitetaan valittua erikoistumislinjaa. Suuntautumisen yksilöi attribuutti suuntautumis_id. 6.2.5 Tutkintovaatimus Tutkintovaatimus on säännöstö jonkin suoritettavan tutkinnon vaatimuksista. Saman nimiselle tutkinnolle saattaa olla järjestelmässä erilaisia vaatimuksia. Filosofian maisterin tutkinnosta on esimerkiksi eri vuosina määritellyt tutkintovaatimukset FM1999 ja FM2002. Tutkintovaatimukseen kuuluu useita suuntautumisia, jotka määrittävät tutkintovaatimuksen mukaisten opintokokonaisuuksien sisällöt. Tutkintovaatimuksen yksilöi attribuutti tutkinto_id. 6.2.6 Opiskelija Opiskelija on opintokokonaisuuslomakkeen käyttäjä, jonka tietoja osajärjestelmä käsittelee. Opiskelija valitsee itselleen käytettävän tutkintovaatimuksen ja suuntautumisen. Suorituksia hän kerää järjestelmään merkitsemällä kurssit itse suoritetuksi tai lukemalla ne ohjelmallisesti Oodi-otteesta. Opiskelijan yksilöi attribuutti tunnus, joka on henkilön atk-tunnus yliopistolla. Muita henkilötietoja ovat opiskelijanumero (opiskelijanro), etunimi, sukunimi, osoite, puhelinnumero (puhelin) ja sähköpostiosoite (email).

23 6.3 Tietokanta Ohjelmisto käyttää opintosu- ja os2-ryhmien tapaan Oracle-tietokantaa [Haa03], johon ollaan yhteydessä JDBC-ajurin välityksellä. Tietokantaan joudutaan tekemään vain minimaalisia muutoksia ainoastaan opintokokonaisuuslomakkeen tallentamista varten. Kurssitarjottimen kohdalla käytetään ILMOjärjestelmän tietokantaa. 7 Tietoturva (Nuutti) Järjestelmä on salasanasuojattu. Käyttäjän ja www-palvelimen välinen liikenne salataan SSL-suojauksella. Järjestelmä ei kerää käyttäjästä mitään yksilön tietosuojaa loukkaavaa tietoa. Käyttäjien arvosanat tallentuvat järjestelmään ja niiden vuotaminen julkisuuteen lienee suurin tietoturvariski. Järjestelmään murtautuminen on mahdollista, jos tietää tietää toisen henkilön käyttäjätunnuksen ja salasanan. Toinen heikko kohta on tietokanta. Tietokantaan pääsee käsiksi kuka tahansa, joka tietää missä kanta toimii, mikä sen nimi, käyttäjätunnus ja salasana on. Käyttäjätunnus- ja salasanapari on ainakin tällä hetkellä helposti arvattavissa. Kun järjestelmä otetaan käyttöön, tulee tietokantayhteyksistä kertova tiedosto säilyttää suojatussa paikassa. 8 Käytettävyys (Nuutti) 8.1 Suorituskyky Ohjelmiston on vastattava käyttäjän antamiin komentoihin välittömästi. Tiedonhaun, tarkistuksen ja laskennan maksimikestoaika ennen käyttäjälle näkyvää tulosta on oltava 10 sekuntia (aiemmin jopa yli 30 sekuntia). Järjestelmä suunnitellaan niin, ettei pitkäkestoisia toistuvia laskentoja, tarkistuksia tai tiedonhakuja suoriteta jatkuvasti peräjälkeen.

24 8.2 Virhetilanteet Virhetilanteissa on ilmoitettava käyttäjälle tapahtuneesta virheestä ja kirjattava virhe lokiin, jos se aiheuttaa toimintahäiriön (Exception). Toimintahäiriöden ei saisi kaataa koko ohjelmaa. 9 Testaus (Juho) 9.1 Yleistä Testauksen avulla pyritään löytämään ohjelmistoon todennäköisesti aikaisemmissa ohjelmistotuotantoprosessin vaiheissa jääneitä virheitä. Testaus voidaan toteuttaa ajamalla ohjelmaa tai sen osia ohjelman toimintaympäristössä tai erillisessä testiympäristössä. Virheitä voidaan etsiä testausvaiheessa myös simuloimalla ohjelman toimintaa muuten, esim. kynällä paperille. Testaus ei prosessin vaiheena ajoitu pelkästään loppuun, varsinaiseen testausvaiheeseen, vaan sitä voidaan suorittaa toteutusvaiheen kanssa yhtäaikaisesti (esim. yksikkötestaus). Testauksen lisäksi ohjelmiston laatu pyritään pitämään korkeana toteuttamalla kaikki prosessin vaiheet mahdollisimman huolellisesti ja noudattamalla määrättyjä standardeja mm. koodin ulkomuodossa ja muuttujien nimeämisessä. Ohjelmiston laatua voi ja pitäisi valvoa myös erityisissä katselmuksissa, joissa katselmoitavan prosessin vaiheen oikeellisuus hyväksytään yhdessä asiakkaan kanssa. Testauksen mahdollisimman suuri kattavuus ja vastaavuus kehitysvaiheisiin saadaan aikaan, kun järjestelmätestaus suunnitellaan heti määrittelyvaiheen hyväksymisen jäkeen ja integraatio- ja yksikkötestaus heti vastaavien suunitteluvaiheiden jälkeen. Ohjelmistossa olevat virheet voidaan jakaa määrittely-, suunnittelu- ja toteutusvaiheiden mukaisesti. Näistä kahden ensin mainitun virheet ovat kalliita korjata jälkikäteen ja näiden vaiheiden virheiden välttämisessä katselmoinnilla, tarkastuksilla ja huolellisuudella on erityisen suuri merkitys.

25 9.2 Käytettäviä periaatteita Ohjelmistoa testataan erillisen testausvaiheen lisäksi myös toteutusvaiheessa. Kaikki testitapaukset ja -materiaalit suunnitellaan etukäteen ja testauksen tulokset dokumentoidaan järjestelmällisesti. Testauksessa Os3 - ryhmä pyrkii noudattamaan seuraavassa käsiteltyjä periaatteita. Kaikki asiakkaan kanssa sovitut vaatimukset ohjelmistolle testataan. Testitapausten suunnittelussa otetaan tällöin huomioon määrittelydokumentissa vahvistetut vaatimukset. Testitapaukset suunnitellaan etukäteen mahdollisimman aikaisessa vaiheessa. Testauksen suunnittelulla pyritään varmistamaan kaiken toteutettavan tulevan mukaan testaukseen. Os3 aloittaa järjestelmätestauksen suunnittelun suunnitteluvaiheessa. Testaus aloitetaan pienistä yksiköistä jo toteutusvaiheessa ja laajennetaan siitä kattamaan lopuksi koko järjestelmän uusien osien testaus. Virheet pyritään tällä tavoin löytämään mahdollisimman aikaisessa vaiheessa, jolloin kustannus niiden korjaamisesta on mahdollisimman pieni. Ohjelmiston toiminnan kannalta ei ole olennaista kaikkien mahdollisten tapausten testaus; kaiken testaaminen ei ole käytännössä eikä edes teoriassa mahdollista. Määrittelydokumentissa mainitut käyttötapaukset testataan kattavasti. Testiaineistojen valinnassa pyritään mahdollisimman suureen kattavuuteen ja testit suunnitellaan siten, että myös virhetilanteet ja ohjelmiston käytön kannalta vääränlaiset tapaukset huomataan. 9.3 Yksikkötestaus Os3 suorittaa yksikkötestausta toteutusvaiheen yhteydessä. Yksikkötestauksessa testataan kaikkein pienimpiä osia ohjelmistosta, yksittäisiä moduleita tai komponentteja. Yksiköistä testataan rajapinnat, paikalliset tietorakenteet, raja-arvot, itsenäiset polut sekä virhetilannepolut. Yksikön testaus suunnitellaan samalla kun itse yksikkö suunnitellaan. Testausta varten joudutaan toteuttamaan erillisiä apuyksiköitä, joita on keskimäärin yk-

26 si jokaista testattavaa yksikköä kohden. Apuyksiköt ovat tynkiä (stub) ja ajureita (driver), joita tarvitaan, koska yksittäinen ohjelman osa ei toimi ilman viereisiä osia. 9.4 Integraatiotestaus Kun yksiköt on ensin yksikkötestattu erillään, täytyy niiden toimiminen yhdessä varmistaa. Tämä tapahtuu integraatiotestauksen avulla. Ryhmä toteuttaa integraatiotestauksen valitun kokoamissuunnan mukaan eli joko tasoittain ylhäältä alas, alhaalta ylös tai poluittain. Integraatiotestaus suunnitellaan arkkitehtuurisuunnittelun yhteydessä. 9.5 Järjestelmätestaus Valmiille tuotteelle tehdään järjestelmätestaus. Os3 testaa itse toteuttamiensa uusien osien sekä tekemiensä vanhan koodin korjausten toimivuuden. Järjestelmätestaus suunnitellaan vaatimusmäärittelyn mukaisesti. Erityisesti testataan järjestelmälle asetettujen vaatimusten vastaavuus määrittelyyn. Järjestelmätestauksessa otetaan huomioon asetetut alustavaatimukset. Ohjelmiston toiminta varmistetaan kaikilla vaadituilla selaimilla, erityisesti tietojenkäsittelytieteen laitoksella käytettävissä ympäristöissä. Jo aiemmissa testauksen vaiheissa pyritään käyttämään useampia alustoja, jotta mahdolliset selainkohtaiset erot toteutustekniikoiden käsittelyn suhteen tulevat esille mahdollisimman aikaisessa vaiheessa. 10 Rajoitteet suunnittelulle ja toteutukselle 10.1 Opintojen tila (Lauri) Opintojen tilaa kuvaavan graafin suunnittelua ja toteutusta rajoittaa mahdollisesti sallittujen ja valittujen ohjelmisto- ja ohjelmointitekniikoiden kyky toteuttaa määriteltyjä ominaisuuksia. Tällaisia on toiminnallisuuden aikaansaamiseen liittyvät ongelmat ja pakollisten cum laude approbatur -

27 kurssien esitietovaatimuksien muodostaman verkon automaattinen muodostaminen järkevältä näyttäväksi. 10.2 Opintokokonaisuuslomake (Mikko) Opintokokonaisuuksien tarkastamisessa tulee esiin tilanteita, joita ei voida ohjelmallisesti ratkaista. Esimerkiksi jotkin suoritetut kurssit saattavat mennä sisällöllisesti päällekkäin, eikä tällöin molempien opintoviikkomääriä voida suoraan lisätä kokonaismäärään. Käyttäjää informoidaan järjestelmän huomatessa automaattista toimintaa rajoittavan erikoistapauksen. Monet tilanteista ovat sellaisia, että ratkaisu siirretään opintokokonaisuusmerkinnän antajan harkittavaksi. 10.2.1 Vanhentuneet suoritukset Yli 10 vuotta vanhoja suorituksia ei voida automaattisesti hyväksyä kokonaisuuteen, vaan tapausta on harkittava kurssin sisällön ja suorituksen arvosanan perusteella. Siksi yli 10 vuotta vanhoista suorituksista jätetään merkintä opintokokonaisuuslomakkeeseen ja hyväksymispäätöksen tekee opintokokonaisuusmerkinnän antaja. 10.2.2 Opintokokonaisuuksien kokoamisjärjestys Opintokokonaisuuslomakkeen toiminta rajoitetaan siten, että ensin kootaan cum laude approbatur -kokonaisuus, tämän jälkeen laudatur-kokonaisuus ja viimeisenä muut opinnot -kokonaisuus. Merkinnät on haettava vaiheittain, koska merkintähakemusta ei aina hyväksytä suoraan eikä kaikkia merkintöjä myönnä sama henkilö. Muut opinnot - merkintä haetaan viimeisenä muun muassa siksi, ettei opintojaksoja jäisi kokonaan kaikkien kokonaisuuksien ulkopuolelle. Tiedekunnan tämän hetkisen käytännön mukaan muut opinnot - kokonaisuusmerkinnän voi saada vasta laudaturmerkinnän jälkeen.

11 Korjaukset 28 11.1 Optimointi 11.1.1 Ongelma (Juho) Opintojensuunnittelujärjestelmän suunnittelusivu, joka on myös avaussivuna koko järjestelmässä, latautuu erittäin hitaasti. Vasteaika on käytettävästä alustasta riippumatta 25-30 sekuntia. Suunnittelusivu ladataan uudelleen jokaisen kurssin lisäyksen jälkeen. Näin ollen esimerkiksi 5 kurssin suunnitelman tekemisestä kaksi ja puoli minuuttia on täysin turhaa odotusaikaa, jonka kuluessa käyttäjä ei voi tehdä mitään. Opintojensuunnittelujärjestelmän tietokanta ja sitä käyttävät ohjelmakoodin osat eivät täysin vastaa toisiaan. Kannan tauluissa on attribuutteja, joita ei oteta huomioon kantaan tehtävissä kyselyissä. On myös kyselyitä, joissa käytetään attribuutteja, joita ei ole määritelty kantaan lainkaan. 11.1.2 Syy ja miten havaittiin (Mikko) Suorituksen hitauden suurimmaksi aiheuttajaksi havaittiin tietokantayhteyden toistuva avaaminen. OS2-osajärjestelmä käyttää tietokantaoperaatioihinsa os2.ljk-pakkauksen luokkia Kyselyt, Esitiedot, Tutkintovaatimukset ja Vastaavuudet. Näiden luokkien tietokantaa käyttävät metodit yhden suorituksensa aikana avaavat yhteyden, suorittavat pyydetyn tietokantaoperaation ja sulkevat yhteyden. Ongelmaksi muodostuu se, että joidenkin servlet-kutsujen aikana tietokantayhteyden avaavia ja sulkevia metodeja kutsutaan turhaan toistuvasti. Koska yhteyden muodostaminen kertaalleen kestää n. 120-300 ms, kasvaa kokonaisaika huomattavan suureksi. Syyn havaitsemiseksi tarkasteltiin servlettiä OpiskelijaSuunnitelma, jonka suoritus oli todettu erityisen hitaaksi. Testaus tapahtui tulostamalla hetkellinen suoritusaika eri kohdista ohjelmakoodia käyttäen java.util.date.gettime()- metodia. Kun metodin eniten aikaa vievät kohdat paikallistettiin metodikutsuiksi, siirryttiin testaamaan edelleen näitä metodeja. OpiskelijaSuunnitelmaservletin dokysely()-metodista alkavaan ja opintosu.tietokanta.tkapu-luokan

29 avaaconnection()-metodiin päättyvään verkkoon on merkitty metodikutsut, jotka olivat selvästi aikaa vievimpiä osia metodeissaan (Kuva 17). (Servlet) OpiskelijaSuunnitelma.doKysely() 1 Yhteydet ovat metodikutsuja, jotka vievät suurimman osan kutsuvan metodin suoritusajasta. Metodien välisiin yhteyksiin on merkitty, kuinka monta kutsua kutsuva metodi suunnilleen tekee yhden suorituksensa aikana. (Servlet) OpiskelijaSuunnitelma.asetaSuunnitelma() 5-20 (Servlet) OpiskelijaSuunnitelma.varitaEsitiedot() 1 2-10 os2.etv Esitietovaatimus.tarkasta() 1 1 os2.vastaavuus Vast_tark.onkoSuoritettu() 0-1 os2.ljk Kyselyt.haeVoimassa() os2.ljk Kyselyt.haeVastaavuudet() os2.ljk Kyselyt.haeEsitiedot() 1 1 opintosu.tietokanta YhteysSailio.avaaTestiYhteys() 1 1 opintosu.tietokanta TKApu.avaaConnection() Kuva 17: Kaavio OpiskelijaSuunnitelma-servletin metodikutsuista Esimerkkitapauksessa kevään 2003 kurssitiedoilla OpiskelijaSuunnitelmaservlet aiheutti kuvan metodikutsuja käyttäen 127 tietokantayhteyden avausta. Jos yhden avauksen kestoksi arvioidaan 125 ms, avausten yhteisaika servletin osalta on noin 16 sekuntia. Servletin arvioidusta kokonaissuoritusajasta 25 s tämä olisi noin 64 prosenttia. 11.1.3 Miten korjataan (Mikko) Turhia tietokantayhteyksiä voidaan vähentää huomattavasti, jos siirretään yhteyden avaaminen Kyselyt-luokasta servlet-tasolle. Tällöin servletissä avattu yhteys välitetään tietokantaoperaatioita tekeville metodeille parametrinä, eikä sitä avata kutsuttavissa metodeissa enää uudestaan. Tällä

30 tavoin pystyttäneen rajoittamaan muun muassa ongelmalliseksi todetun OpiskelijaSuunnitelma-servletin tietokantayhteyden avaamiset yhteen suorituskertaa kohti. Korjausta varten kartoitetaan ohjelmakoodista os2.ljk-pakkauksesta metodit, joita suoritetaan toistuvasti. Nämä korvataan vastaavilla metodeilla, jotka saavat avoimen tietokantayhteyden parametrinä. Kutsuvat servletit muutetaan avaamaan tietokantayhteys, välittämään sen parametrin kautta ja lopuksi sulkemaan yhteys. Myös kaikki metodit, joiden kautta yhteys välitetään päivitetään käyttämään tätä menetelmää. 11.2 Tietokanta (Nuutti ja Juho) 11.2.1 Ongelma Ohjelman tietokanta ei ole enää os2-ryhmän tekemien muutosten jälkeen koodin kanssa ajan tasalla, mistä johtuen useat ohjelman osat eivät yksinkertaisesti toimi (henkilötietojen tallennus, opintojen tilanne). Kannan tauluissa on attribuutteja, joita ei oteta huomioon kantaan tehtävissä kyselyissä. On myös kyselyitä, joissa käytetään attribuutteja, joita ei ole määritelty kantaan lainkaan. Ongelma havaittiin os2-ryhmän dokumentointia lukemalla ja ohjelmistoa testaamalla. 11.2.2 Miten ongelma korjataan Koodissa on select, insert, update ja delete - lauseita yhteensä lähes 200 riviä 15 eri tiedostossa. Kaikki lauseet pitää käydä läpi, tarkistaa vastaavatko ne nykyistä kantaa ja jos eivät, korjata ne tietokantaa vastaaviksi. Esimerkiksi select-lauseessa on voinut vaihtua sarakkeen nimi tai taulun pääavain on voinut muuttua. Myös tietokantahakujen tulosten käsittelyyn voi tulla muutoksia.

Lähteet 31 Aho02 Ahonen, T. et al., OS2 vaatimusanalyysi. Ohjelmistotuotantoprojekti kurssiin liittyvä dokumentti, Tietojenkäsittelytieteen laitos, Helsinki, 2003. [myös http://www.cs.helsinki.fi/group/os2/dokumentit/ vaatimusanalyysi.ps 13.2.2003] Haa02 Haavisto, J. et al., Opintojensuunnittelujärjestelmän vaatimusanalyysi. Ohjelmistotuotantoprojekti kurssiin liittyvä dokumentti, Tietojenkäsittelytieteen laitos, Helsinki, 2002. [myös http://www.cs.helsinki.fi/group/opintosu/dokumentit/ maarittely/maarittely.ps 13.2.2003] Haa03 Haavisto, J., Opintosu- ja Os2-järjestelmästä Desmondiksi. Tietojenkäsittelytieteen laitos, Helsinki, 2003. [myös http://www.cs.helsinki.fi/group/os3/docs/desmond.ps 16.2.2003]