OHJELMISTOTUOTANTOPROJEKTI

Koko: px
Aloita esitys sivulta:

Download "OHJELMISTOTUOTANTOPROJEKTI"

Transkriptio

1 HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS OHJELMISTOTUOTANTOPROJEKTI ASSARI Suunnitteludokumentti versio 1.0 Teemu Andersson Mikko Lukkari Vesa-Matti Mäkinen Olli-Pekka Ruuskanen Sami Termonen

2 Versiohistoria: versio päivämäärä kommentit/muutokset Dokumentin sisällön hahmotteleminen Sisällön tarkentaminen arkkitehtuurikuvauksen osalta Dokumentin sisällön uudelleenryhmitteleminen ja tarkentaminen Projektipäällikön korjauksia ja täydennyksiä Projektipalaverissa todettujen puutteiden korjaukset Cache-rakenteen toiminnan korjauksia Jäädytetty versio. II

3 Sisältö: 1. JOHDANTO Dokumentin tarkoitus Dokumentin rakenne Sanasto JÄRJESTELMÄN YLEISKUVAUS Sovellusalueen kuvaus Toimintaympäristö Toteutusrajoitukset ARKKITEHTUURIKUVAUS Järjestelmän kokonaisarkkitehtuuri Komponenttien yhteistoiminta Tehtävien määritteleminen Tehtävien esittäminen Vastausten analysoiminen Palautteen esittäminen KEHYSKOODI Kehyskoodiservlettien abstrakti määrittely Servlettien tehtävät Servlettien tarjomat palvelut Servlettien säännöt ja rajoitukset Servlettien rajapinnat Kehyskoodiservlettien luokkakaavio Kehyskoodiservlettien parametrit CACHE-TIETORAKENNE Tiedon kulku cache-tietorakenteelta ohjelmistokomponenteille Tiedon kulku analysointikomponentilta cachelle...14 III

4 6. TIETOKANTA Nykyisen tietokantarakenteen kuvaus Tietokantaan tehtävät muutokset Tietojen sijoittuminen tietokantaan Tehtävätyyppien tiedot Tehtävätyyppikohtaiset tiedot Tehtävänmäärittelytiedot Käyttöliittymäelementtien tiedot TEHTÄVÄNMÄÄRITTELYKOMPONENTIT Tehtävänmäärittelykäyttöliittymät Controller-servlet Tietorakenteet Tukipalvelut Tietojen haku ja tallennus Tehtävänmäärittelynäkymien tiedonvälitys ESITYSKOMPONENTIT Esityskomponenttien abstrakti määrittely Komponenttien tehtävät Komponenttien tarjoamat palvelut Komponenttien säännöt ja rajoitukset Komponenttien rajapinnat Esityskomponenttien tietosisältö ja palvelut Esityskomponenttien parametrit Esityskäyttöliittymien ulkoasun muokkaaminen ANALYSOINTIKOMPONENTIT Analysointikomponenttien abstrakti määrittely Komponenttien tehtävät Komponenttien tarjoamat palvelut Komponenttien säännöt ja rajoitukset Komponenttien rajapinnat Analysointikomponenttien tietosisältö ja palvelut Analysointikomponenttien parametrit...35 IV

5 10. PAKKAUSRAKENNE LÄHTEET LIITTEET Liite 1: Tehtävänmäärittelyn käyttöliittymien tietosisältö...39 Liite 2: Käyttöliittymäkuvat...44 Liite 3: Käyttöliittymän ulkoasun muokkaaminen...53 Liite 4: Tehtävänmäärittelyn käyttöliittymäelementtien nimet ja kielikohtaiset arvot...54 Liite 5: Tehtävänmäärittelyn käyttöliittymäelementtien tallentaminen tietokantaan...59 V

6 1. JOHDANTO 1.1 Dokumentin tarkoitus Tämä dokumentti on tarkoitettu Helsingin yliopiston Tietojenkäsittelytieteen laitoksella kevätlukukaudella 2004 toteutettavan ohjelmistotuotantoprojektin Assari-ryhmälle sisäiseksi ohjeeksi siitä, kuinka sen tuottama ohjelmisto tulee toteuttaa. Dokumentissa kuvataan projektin aikana tuotettava ohjelmisto sellaisella tarkkuudella, että sen aikaansaaminen on mahdollista yksinomaan tämän dokumentin pohjalta. Dokumentti on kirjoitettu määrittelydokumentin version 1.0 pohjalta. 1.2 Dokumentin rakenne Dokumentti muodostaa itsenäisen kokonaisuuden, joka antaa lukijalleen riittävän kuvan jo olemassa olevasta järjestelmästä ja siihen projektin aikana liitettävistä ohjelmistokomponenteista niiden toteuttamista ajatellen. Valittu esitystapa johtaa väistämättä osittaiseen päällekkäisyyteen määrittelydokumentin kanssa, mutta jotta suunnitteludokumentin ymmärtäminen olisi mahdollista myös projektiryhmään kuulumattomille lukijoille ilman, että heidän tarvitsee perehtyä muihin projektidokumentteihin, on valittu esitystapa nähty perustelluksi luku toimii johdantona muuhun dokumenttiin ja siinä perustellaan dokumentin rakenteeseen ja laajuuteen liittyvät ratkaisut luku antaa perustiedot järjestelmästä, jonka osaksi toteutettavat ohjelmistokomponentit liitetään, sekä toteutukselle asetetuista rajoituksista luku antaa yleiskuvan toteutettavien ohjelmistokomponenttien arkkitehtuurista sekä niiden yhteistoiminnasta halutun toiminnallisuuden toteuttamiseksi luku kuvaa ohjelmistokomponenttien toimintaa kontrolloivan kehyskoodin rakenteen ja toiminnan luku kuvaa tietokantaoperaatioista vastaavan cache-tietorakenteen toiminnan luku kuvaa järjestelmän tietokannan rakenteen ja toiminnan luku kuvaa tehtävänmäärittelykomponenttien rakenteen ja toiminnan luku kuvaa tehtävänesityskomponenttien rakenteen ja toiminnan luku kuvaa analysointikomponenttien rakenteen ja toiminnan luku kuvaa projektissa toteutettavien luokkien jakautumisen pakkauksiin luku listaa dokumentissa viitatut lähteet lukuun on koottu dokumentin liitteet. 1

7 1.3 Sanasto Cache Keskusmuistitietorakenne, johon tallennetaan osakokonaisuus järjestelmän tietokantaan tallennetuista tiedoista. Tehostaa järjestelmän suorituskykyä tarjoamalla pääsyn tietoihin ilman toistuvia tietokantakyselyitä. Java API Java SDK JSP Servletti SQL Java Application Programming Interface. Sun Microsystems Inc:n laatima määrittelykokoelma Java-kielen tarjoaman valmiskaluston rajapinnoista. Java Software Development Kit. Sun Microsystems Inc:n laatima kehitysympäristö Java-sovellusten kehittämiseksi. Java Server Pages. Dynaamisten HTML ja XML-sivujen generoimiseen käytetty Java-tekniikka, joka mahdollistaa Java-koodin upottamisen staattisiin HTML -sivuihin. Www-palvelimella suoritettava Java-luokka, joka vastaanottaa pyyntöjä ja generoi niiden kautta saamiensa parametrien perusteella dynaamisia HTML-sivuja. Structured Query Language. Alunperin IBM:n kehittämä ja ANSI:n (American National Standards Institute) ja ISO:n (International Standardization Organization) standardoima relaatiotietokantoihin kohdistuvien operaatioiden tekemiseen tarkoitettu kysekykieli. 2

8 2. JÄRJESTELMÄN YLEISKUVAUS 2.1 Sovellusalueen kuvaus Assari on Helsingin yliopiston Tietojenkäsittelytieteen laitoksen ohjelmistotuotantoprojekti. Projektissa tuotetaan www-pohjaiseen opetusympäristöön komponentteja erityyppisten harjoitus- ja koetehtävien määrittelyyn ja käyttöön. Projektin pohjana toimii asiakkaan kehittämä eassari-opetusjärjestelmä [LAI03], joka tarjoaa nykyisellään mahdollisuuden tietokantakyselyiden harjoitteluun www-ympäristössä. Tässä projektissa järjestelmää laajennetaan uusilla tehtävätyypeillä. Kaikissa tehtävätyypeissä opiskelijalle esitetään tehtävänanto, johon opiskelijan on laadittava ratkaisu tehtävätyyppikohtaisin välinein. Järjestelmä analysoi ratkaisun ja antaa opiskelijalle palautetta, joka auttaa häntä huomaamaan omissa tiedoissaan mahdollisesti olevia puutteita. eassari-järjestelmä mahdollistaa tehtävien paketoimisen eri opintokokonaisuuksien osaksi. Nämä kokonaisuudet voidaan toteuttaa joko opetus- tai tenttitilassa. Opetustilassa vastaus tarkastetaan ja palaute annetaan opiskelijalle välittömästi vastaamisen jälkeen. Tenttitilassa palaute talletetaan myöhemmin esitettäväksi. Käyttötilan valinta tapahtuu nyt toteutettavien ohjelmistokomponenttien ulkopuolella, mutta komponenttien on tuettava molempien tilojen käyttöä. 2.2 Toimintaympäristö Ohjelmisto toteutetaan Tietojenkäsittelytieteen laitoksen Java-ympäristössä käyttäen Java SDK versiota Www-osioiden toteutuksessa hyödynnetään Java Servlet -luokkia noudattaen v.2.3 API-määrittelyä. Sovelluspalvelimena käytetään Apache Tomcat 4 ja tietokantapalvelimena Oracle 9 -tuotteita. Palvelinvalmistajien tuotespesifisiä välineitä ei käytetä, joten sovellus voidaan suoraviivaisesti asentaa mille tahansa Java- ja SQL-alustalle. 2.3 Toteutusrajoitukset Toteutuksessa on otettava huomioon olemassa olevan eassari-järjestelmän rakenne ja toiminta. Vaikka asiakas onkin antanut luvan järjestelmän tietokannan muokkaamiseen tarvittavilta osin, pyritään toteutuksessa säilyttämään tietokannan nykyinen rakenne mahdollisimman pitkälle. Tarvittavat laajennukset tehdään nykyisen tietokantarakenteen kanssa yhteensopivin menetelmin. 3

9 3. ARKKITEHTUURIKUVAUS 3.1 Järjestelmän kokonaisarkkitehtuuri Kuva 1 esittää projektin aikana toteutettavien ohjelmistokomponenttien sijoittumisen eassariopetusjärjestelmän kokonaisarkkitehtuuriin. Kuva 1: Järjestelmän kokonaisarkkitehtuuri 4

10 3.2 Komponenttien yhteistoiminta Toteutettavien ohjelmistokomponenttien yhteistoiminta ja interaktio kehyskoodin kanssa on esitetty toimintokohtaisina sekvenssikaavioina kuvissa 2-5. Tarkemmat komponenttikohtaiset kuvaukset esitetään luvuissa Tehtävien määritteleminen Kuva 2: Tehtävienmäärittelyn sekvenssikaavio 5

11 3.2.2 Tehtävien esittäminen Kuva 3: Tehtävien esittämisen sekvenssikaavio 6

12 3.2.3 Vastausten analysoiminen Kuva 4: Vastausten analysoinnin sekvenssikaavio 7

13 3.2.4 Palautteen esittäminen Kuva 5: Palautteen esittämisen sekvenssikaavio 8

14 4. KEHYSKOODI eassari-järjestelmän kehyskoodi muodostuu kolmesta eri servlet-luokasta, jotka vastaavat HTTPkutsun POST-parametrien vastaanottamisesta sekä tehtävien määrittely-, esitys- ja analysointikäyttöliittymien esittämisestä käyttäjille. 4.1 Kehyskoodiservlettien abstrakti määrittely Servlettien tehtävät - tehtäväparametrien vastaanottaminen www-sivuilta. - tehtävätyyppikohtaisten määrittely-, esitys- ja analysointikomponenttien aktivoiminen. - tehtäväparametrien välittäminen määrittely-, esitys- ja analysointikomponenteille. - XHTML-koodin vastaanottaminen komponenteilta ja esittäminen käyttäjälle. - virheilmoitusten generoiminen ja esittäminen tarvittaessa Servlettien tarjomat palvelut - www-sivujen generoiminen käyttäjien selaimille. - tehtäväparametrien välittäminen määrittely-, esitys- ja analysointikomponenteille Servlettien säännöt ja rajoitukset - osattava päätellä tehtävätyyppi Servlettien rajapinnat - www-selainrajapinta - istuntotietojen käsittely. - POST-parametrien vastaanottaminen. - tehtävänmäärittelykäyttöliittymän/tehtävänannon/palautteen/virheilmoituksen esittäminen. - cache-rajapinta (vain tehtävänmäärittelyservletti) - kielikohtaisten tehtävänmäärittelyn käyttöliittymätietojen noutaminen. - kielikohtaisten tehtävätietojen noutaminen. - kielikohtaisten tehtävänmäärittelytietojen välittäminen tallennettaviksi tietokantaan. - Feedback-oliorajapinta - palautteen vastaanottaminen (vain vastauksenanalysointiservletti). - virheilmoituksen vastaanottaminen. 9

15 - komponenttirajapinta - tehtäväparametrien välittäminen esityskomponentille (vain tehtävänesitysservletti). -tehtävänannon vastaanottaminen esityskomponentilta (vain tehtävänesitysservletti). - tehtävään annetun vastauksen välittäminen analysointikomponentille (vain vastauksenanalysointiservletti) 4.2 Kehyskoodiservlettien luokkakaavio Kuvassa 6 on esitetty järjestelmän kehyskoodiservletit luokkakaaviona. Kuva 6: Kehyskoodiservlettien luokkakaavio TrainerServlet on kehyskoodiservlettien yliluokka, joka huolehtii kaikille aliluokilleen yhteisen cache-tietorakenteen (TaskBase) luomisesta. 10

16 4.3 Kehyskoodiservlettien parametrit Servlettien aktivoiminen: Opetusmateriaaliin on määritelty linkkejä, joiden aktivoiminen kutsuu tehtävänesitysservlettiä. Tehtävään vastaaminen puolestaan aktivoi analysointiservletin. Tehtävänmäärittelyservletin kutsuminen tapahtuu nyt toteutettavien ohjelmistokomponenttien ulkopuolelta eassari-järjestelmän muista osista. Kaikki servletit hakevat HTTPServletRequest-parametrijoukosta tehtävänmäärittely-, tehtävänesitys- tai analysointikomponenteille välitettävät tiedot, jotka on esitetty taulukossa 1. tyyppi: nimi: tarkoitus: String userid käyttäjätunnus (vain määrittely- ja analysointiservletit). Käytetään opettajan tunnistamiseen hänen määrittelemiensä tehtävien listaamiseksi ja opiskelijan tunnistamiseen suorituksen kirjaamiseksi tietokantaan tarvittaessa. String tasktype tehtävätyyppi (vain esitys- ja analysointiservletit). Käytetään servlettien aktivoimien esitys-/analysointikomponenttien tyypin tunnistamiseen. String taskid tehtävätunnus (vain esitys- ja analysointiservletit). Käytetään esitettävän/analysoitavan tehtävän tunnistamiseen. String language esityskieli. Taulukko 1: Yleiset kutsuparametrit Tehtävänmäärittelykomponenttien aktivoiminen: Tehtävänmäärittelyservletti välittää taulukossa 2 listatut tiedot tehtävänmäärittelykomponentille. tyyppi: nimi: tarkoitus: String userid käyttäjätunnus. String language käyttöliittymän esityskieli. Taulukko 2: Tehtävänmäärittelykomponenttien kutsuparametrit Tehtävänesityskomponenttien aktivoiminen: Tehtävänesitysservletti aktivoi tehtävätyyppikohtaisen esityskomponentin, jolle se välittää taulukossa 3 esitetyt tiedot tehtävän esitysnäkymän generoimiseksi. tyyppi: nimi: tarkoitus: String taskid esitettävän tehtävän tunnus. String language haluttu esityskieli. Taulukko 3: Esityskomponenttien kutsuparametrit 11

17 Vastauksenanalysointikomponenttien aktivoiminen: Tehtävänanalysointiservletti aktivoi tehtävätyyppikohtaisen analysointikomponentin, jolle se välittää taulukossa 4 listatut tiedot tehtävään annetun vastauksen analysoimiseksi. tyyppi: nimi: tarkoitus: String userid käyttäjätunnus. String taskid tehtävätunnus. String language käytetty esityskieli. int[] answer opiskelijan valintatehtävään antamat vastaukset. String[] answer opiskelijan järjestystehtävään antama vastaus. String[] answer opiskelijan aukkojentäyttötehtävään antamat vastaukset. Taulukko 4:Analysointikomponenttien kutsuparametrit Tehtävänmäärittelyn, tehtävänannon, palautteen tai virheilmoituksen välittäminen servletille: Servletit käyttävät toista taulukossa 5 esityistä metodeista hakeakseen aktivoimiensa ohjelmistokomponenttien tuottaman XHTML-sivun. tyyppi: nimi: tarkoitus: String getscript käyttäjälle esitettävä tehtävänmäärittelykäyttöliittymä/ tehtävänanto. Feedback analyse käyttäjälle esitettävä palaute/virheilmoitus. Taulukko 5: Palautusparametrit 12

18 5. CACHE-TIETORAKENNE Cache-keskusmuistitietorakenne (TaskBase) sijoittuu järjestelmässä tietokannan ja sitä käyttävien ohjelmistokomponenttien väliin kuvan 1 (sivu 4) mukaisesti. Cache-rakenne sisältää toiminnot analysointikomponenttien välittämien vastausten tallentamiseksi tietokantaan, sekä tietokantaan tallennetun datan noutamiseksi ja palauttamiseksi sitä pyytävälle ohjelmistokomponentille. Tietorakenteen toteutus pohjautuu viiteen eri hajautustauluun, joihin sijoitetaan tieto järjestelmässä aktiivisina olevista tehtävistä, tehtävätyypeistä, tehtäviin liittyvistä esitys- ja analysointikomponenteista sekä tehtäväattribuuteista. 5.1 Tiedon kulku cache-tietorakenteelta ohjelmistokomponenteille Cache-tietorakenne tarjoaa käyttöön getattribute-metodin, jota kutsumalla muut komponentit voivat hakea rakenteeseen talletettujen attribuuttien arvoja. Kutsun parametreina kutsuja antaa tyyppinsä, nimensä, haluamansa esityskielen ja tarvitsemansa attribuutin nimen. Cache-rakenne muodostaa kutsuparametreista hajautusavaimen, jonka perusteella se hakee loadedattributes-hajautustaulusta pyydetyn parametrin arvon ja palauttaa sen pyytäjälle merkkijonona. Mikäli pyydettyä tietoa ei ole hajautustaulussa, laatii cache tietokantakyselyn pyydetyn dataelementin (esim. XHTML-sivun otsikko) sekä kaiken siihen sidoksissa olevan datan (esim. koko XHTML-sivu) noutamiseksi tietokannasta. Saatuaan datan, cache tallentaa sen hajautustauluunsa ja palauttaa sitten pyydetyn attribuutin arvon sitä pyytäneelle ohjelmistokomponentille. Cache tallentaa tietokannan attributevalues-taulusta noutamansa attribuutit ylläpitämäänsä hajautustauluun seuraavasti: hajautusavain [tyyppi, id, esityskieli, attribuutin nimi] hajautustauluun tallennettava arvo attribuutin arvo Taulukko 6: Hajautustauluparametrit 13

19 5.2 Tiedon kulku analysointikomponentilta cachelle Vastauksenanalysointikomponentit kutsuvat cache-rakenteeseen toteutettavaa saveanswer-metodia välittääkseen tietokantaan tallennettavan vastauksen cachelle, joka vastaa järjestelmän tietokantaoperaatioista. Esityskomponentit eivät tallenna mitään tietokantaan. public void saveanswer (String objecttype, String objectid, String userid, String courseid, String moduleid, int seqno, int trynumber, int correctness, String whenanswered, String answer, String language) 14

20 6. TIETOKANTA 6.1 Nykyisen tietokantarakenteen kuvaus eassari-järjestelmän tietokanta koostuu nykyisin kuvassa 7 esitetyistä tauluista. Kuva 7: Tietokannan rakenne Tehtävätyyppien yleistiedot tallennetaan tasktype tauluun, jossa mm. liitetään oikeat esitys- ja analysointikomponentit tehtävätyyppiin komponenttien luokkanimien avulla. Tehtävätyyppiin liittyvien attribuuttien tiedot tallennetaan taskattributes tauluun. Jokaisen attribuutin osalta 15

21 tallennetaan mm. attribuutin nimi sekä tieto siitä, miten attribuutti saadaan: tietokannasta, generoimalla vai ulkopuoliselta komponentilta. Tehtävätyypin attribuutin arvo tallennetaan attributevalues tauluun. Tehtävänmäärittely käyttää task-taulua tehtävää koskevien yleisten parametrien tallentamiseen. Tehtävälle yksilölliset arvot, kuten tehtävänanto ja oikeat vastaukset, tallennetaan attributevaluestauluun. Käyttöliittymäelementtien tiedot tallennetaan tietokannan attributevalues tauluun. 6.2 Tietokantaan tehtävät muutokset Tietokantaan lisätään systemlanguages-niminen taulu, joka sisältää järjestelmään määriteltyjen kielten korkeintaan kolmikirjaimisen tunnisteen ja esityskielikohtaiset nimet. Taulun rakenne on seuraavanlainen: create table systemlanguages( /* code for the language*/ languagecode varchar(3) not null primary key, ); /* name of the language*/ languagename varchar(40) not null unique, 16

22 6.3 Tietojen sijoittuminen tietokantaan Tässä luvussa kuvataan yksityiskohtaisesti tehtävänmäärittely- ja suoritustietojen sijoittuminen tietokantaan Tehtävätyyppien tiedot Kaikkiin tehtävätyyppeihin liittyy tehtävätyypistä ja määrittelykielestä riippumatta taulukossa 9 listatut tiedot. parametri typename author datecreated description displayer analyser tasktypestyle displayerinit analyserinit tietokantataulu, kenttä ja tyyppi [tasktype] typename: varchar (40) [tasktype] author: varchar (4) [tasktype] datecreated: date [tasktype] description [tasktype] displayer: varchar (40) [tasktype] analyser: varchar (40) [tasktype] tasktypestyle: varchar (80) [tasktype] displayerinit: varchar (1000) [tasktype] analyserinit: varchar (1000) kuvaus - tehtävätyypin nimi - arvon tuottaa tehtävätyypin määrittelijä - tehtävätyypin määrittelijän nimi - arvon tuottaa tehtävätyypin määrittelijä - päivä jolloin määrittely tehty - arvon tuottaa ohjelmisto - tehtävätyyppiin liittyvää metadataa - arvon tuottaa tehtävätyypin määrittelijä - ei käytössä toistaiseksi - tehtävätyyppiin liittyvän esityskomponentin luokan nimi - arvon tuottaa tehtävätyypin määrittelijä - tehtävätyyppiin liittyvän analysointikomponentin luokan nimi - arvon tuottaa tehtävätyypin määrittelijä - tehtävätyyppiin liittyvän tyylitiedoston nimi - arvon tuottaa tehtävätyypin määrittelijä - tehtävätyyppikohtaiset alustusparametrit esityskomponentille - arvon tuottaa tehtävätyypin määrittelijä - tehtävätyyppikohtaiset alustusparametrit analysointikomponentille - arvon tuottaa tehtävätyypin määrittelijä Taulukko 7: Tehtävätyyppien tiedot 17

23 6.3.2 Tehtävätyyppikohtaiset tiedot Kuhunkin tehtävätyyppiin liittyy joukko tietoa, joka määritellään taulukossa 10 osoitetulla tavalla. parametri tasktype attributename typeofvalue tietokantataulu, kenttä ja tyyppi [taskattributes] tasktype: varchar (40) [taskattributes] attributename: varchar (40) [taskattributes] typeofvalue: varchar (12) languagedependent [taskattributes] languagedependent: char (Y/N) howobtained [taskattributes] howobtained kuvaus -sen tehtävätyypin nimi, johon attribuutti liittyy - arvon tuottaa attribuutin määrittelijä - attribuutin nimi - arvon tuottaa attribuutin määrittelijä - attribuutin arvon tyyppi. Arvona: NONE (= ei arvoa), TEXT (= tekstiarvo) tai NUM (= numeerinen arvo) - arvon tuottaa attribuutin määrittelijä - tieto siitä, onko attribuutti kieliriippuvainen - arvon tuottaa attribuutin määrittelijä - tieto tavasta, jolla attribuutin arvo saadaan. Arvona: STORED (attribuutin arvo saadaan tietokannasta), GENERATED (attribuutin arvo generoidaan) tai EXTERNAL (attribuutin arvo tuotetaan ulkopuolisen ohjelmistokomponentin avulla) - arvon tuottaa attribuutin määrittelijä Taulukko 8: Tehtävätyyppikohtaiset tiedot 18

24 6.3.3 Tehtävänmäärittelytiedot Uusia tehtäviä määriteltäessä tallennetaan määrittelytiedot tietokantaan. Kaikki tehtävätyypit sisältävät joukon yleisiä määrittelytietoja. Lisäksi tehtävien sisältöön ja palautteeseen liittyy tietoa, jonka tallennus vaihtelee tehtävätyypeittäin. Yleiset tehtävätiedot: Jokaiseen tehtävään liittyy joukko tehtävätyypistä ja esityskielestä riippumattomia parametreja, jotka kuvataan taulukossa 11. parametri author datecreated taskname taskid task tasktype language positivefeedback negativefeedback cutofvalue tietokantataulu, kenttä ja tyyppi [task] author: varchar (40) [task] datecreated: date [task] taskname: varchar (40) [task] taskid: varchar (20) [attributevalues] attributevalue: varchar (2000) [task] tasktype: varchar (40) [attributevalues] language: varchar (3) [attributevalues] attributevalue: varchar (2000) [attributevalues] attributename: varchar (2000) [task] cutoffvalue: integer immediatefeedback [task] shouldevaluate_def: char registertry [task] shouldregistertry_def: char kuvaus - tehtävänmäärittelijän nimi - arvon tuottaa ohjelmisto - päivä jolloin määrittely on tehty - arvon tuottaa ohjelmisto - tehtävän nimi - arvon tuottaa tehtävän määrittelijä - tehtävän tunniste - arvon tuottaa ohjelmisto - tehtävänanto - arvon tuottaa tehtävän määrittelijä - tehtäväntyypin nimi - arvon tuottaa tehtävän määrittelijä - tehtävän kieli - arvon tuottaa tehtävän määrittelijä - arvo viedään jokaisen attributevaluestauluun menevän parametrin languagekentän arvoksi - tehtävään liittyvä globaali positiivinen palaute - arvon tuottaa tehtävän määrittelijä - tehtävään liittyvä globaali negatiivinen palaute - arvon tuottaa tehtävän määrittelijä - tehtävän hyväksyttyyn suoritukseen vaadittava oikeellisuusprosentti - arvon tuottaa tehtävän määrittelijä - tieto siitä, annetaanko tehtävästä palaute välittömästi -oletusarvo, jota voidaan muuttaa paketointivaiheessa - arvon tuottaa tehtävän määrittelijä - tieto rekisteröidäänkö yritys - oletusarvo, jota voidaan muuttaa paketointivaiheessa - arvon tuottaa tehtävän määrittelijä 19

25 saveanswer numberoftries loginrequired [task] shouldstoreanswer_def: char [task] numberoftries_def: int [task] shouldknowstudent_def: char - tieto tallennetaanko annettu vastaus - oletusarvo, jota voidaan paketointivaiheessa muuttaa - arvon tuottaa tehtävän määrittelijä - tieto sallittujen vastausyritysten määrä - oletusarvo, jota voidaan muuttaa paketointivaiheessa - arvon tuottaa tehtävän määrittelijä - tieto pitääkö tehtävään vastaajan olla kirjautuneenä järjestelmään - oletusarvo, jota voidaan muuttaa paketointivaiheessa - arvon tuottaa tehtävän määrittelijä Taulukko 9: Yleiset tehtävätiedot Valintatehtävien tiedot: Merkillä # kuvataan tallennettavan tiedon sekvenssinumeroa tapauksissa, joissa tietokenttien lukumäärää ei tiedetä etukäteen. Sekvenssinumerot generoidaan tehtävänmäärittelykäyttöliittymissä. parametri option# isselected# positivefeedback negativefeedback tietokantataulu, kenttä ja tyyppi [attributevalues] attributevalue: varchar (2000) [attributevalues] attributevalue: varchar (2000) [attributevalues] attributevalue: varchar (2000) [attributevalues] attributevalue: varchar (2000) kuvaus - vaihtoehdon # kuvaus - arvon tuottaa tehtävän määrittelijä - tieto siitä, pitääkö vaihtoehdon # olla valittuna - arvon tuottaa tehtävän määrittelijä -vaihtoehdon # oikeaan ratkaisuun liittyvä palaute - arvon tuottaa tehtävän määrittelijä -vaihtoehdon # virheelliseen ratkaisuun liittyvä palaute - arvon tuottaa tehtävän määrittelijä Taulukko 10: Valintatehtävien tiedot 20

26 Järjestystehtävien tiedot: Merkillä # kuvataan tallennettavan tiedon sekvenssinumeroa tapauksissa, joissa tietokenttien lukumäärää ei tiedetä etukäteen. Sekvenssinumerot generoidaan tehtävänmäärittelykäyttöliittymässä. parametri object# correctfeedback# tietokantataulu, kenttä ja tyyppi [attributevalues] attributevalue: varchar (2000) [attributevalues] attributevalue: varchar (2000) tooearlyfeedback# [attributevalues] attributevalue: varchar (2000) toolatefeedback# placeofobject# [attributevalues] attributevalue: varchar (2000) [attributevalues] attributevalue: varchar (2000) kuvaus - järjestettävän objektin # kuvaus - arvon tuottaa tehtävän määrittelijä - objektiin # liittyvä palaute, tapauksessa jossa objekti on oikealla paikalla - arvon tuottaa tehtävän määrittelijä - objektiin # liittyvä palaute, tapauksessa jossa objekti on liian aikaisella paikalla - arvon tuottaa tehtävän määrittelijä - objektiin # liittyvä palaute, tapauksessa jossa objekti on liian myöhäisellä paikalla - arvon tuottaa tehtävän määrittelijä - objektin # oikea paikka - arvon tuottaa tehtävän määrittelijä Aukkojentäyttötehtävien tiedot: Taulukko 11: Järjestystehtävien tiedot Merkillä # kuvataan tallennettavan tiedon sekvenssinumeroa tapauksissa, joissa tietokenttien lukumäärää ei tiedetä etukäteen. Sekvenssinumerot generoidaan tehtävänmäärittelykäyttöliittymässä. parametri text tietokantataulu, kenttä ja tyyppi [attributevalues] attributevalue: varchar (2000) positivefeedback# [attributevalues] attributevalue: varchar (2000) negativefeedback# [attributevalues] attributevalue: varchar (2000) gap# [attributevalues] attributevalue: varchar (2000) Kuvaus - teksti, joka sisältää aukot kaksinkertaisin hakasulkein ([[ ja ]])merkittyinä - arvon tuottaa tehtävän määrittelijä - aukkoon # liittyvä palaute tapauksiin, joissa aukko on täytetty oikein - arvon tuottaa tehtävän määrittelijä - aukkoon # liittyvä palaute tapauksiin, joissa aukko on täytettyväärin - arvon tuottaa tehtävän määrittelijä - aukossa # esiintyvä sana - arvon tuottaa ohjelmisto etsimälllä sanan tekstistä, johon määrittelijä on merkinnyt aukkopaikat Taulukko 12: Aukkojentäyttötehtävien tiedot 21

27 6.3.4 Käyttöliittymäelementtien tiedot Tietokantaan tallennetaan myös käyttöliittymäkenttien kuvaukset taulukossa 15 esitetyllä tavalla. Parametri Objecttype objectid attributename language valuetype attributevalue tietokantataulu, kenttä ja tyyppi [attributevalues] objecttype [attributevalues] objected [attributevalues] attributename: varchar (40) [attributevalues] language: varchar (3) [attributevalues] valuetype: char [attributevalues] attributevalue: varchar (2000) Kuvaus - objektin tyyppi, johon attribuutin arvo liittyy (esityskomponentissa arvona D) - arvon tuottaa attribuutin määrittelijä - attribuutin viittaaman objektin tunniste - esityskomponentissa arvona luokan nimi - arvon tuottaa attribuutin määrittelijä - attribuutin viittaaman objektin nimi - arvon tuottaa attribuutin määrittelijä - attribuutin arvon kieli - arvon tuottaa attribuutin määrittelijä - attribuutin arvon tyyppi - arvona C (= character) tekstiarvoille ja N (= number) numeerisille arvoille - arvon tuottaa attribuutin määrittelijä - attribuutin arvo - arvon tuottaa attribuutin määrittelijä Taulukko 13: Käyttöliittymäelementtien tiedot 22

28 7. TEHTÄVÄNMÄÄRITTELYKOMPONENTIT Tehtävänmäärittelykomponentit koostuvat neljäntyyppisistä alikomponenteista: 1. Käyttöliittymät Käyttöliittymät ovat www-selaimessa näytettäviä JSP-sivuja, joiden kautta käyttäjä voi määritellä tehtäviä. 2. Controller-Servlet Controller-komponentti on käyttöliittymiltä saatavien http-kutsujen käsittelyyn ja näkymienhallintaan toteutettava Servlet-luokka. Controller-komponentti lukee jokaisella kutsukerrallaan http-kutsussa vastaanotetut parametrit, päättelee parametritietojen perusteella tarvittavat toimenpiteet ja kutsuu näihin liittyviä tukipalveluita, muodostaa seuraavan käyttöliittymäkomponentin syötteenään tarvitsemat tietorakenteet ja ohjaa kontrollin seuraavalle käyttöliittymälle. 3. Tietorakenteet Tehtävien määrittelytietojen väliaikaistallennukseen ja käsittelyyn toteutetaan tehtävätyyppikohtaiset tietorakenteet. 4. Tukipalveluluokat Controller-komponentti ei suorita itsenäisesti tehtävänmäärittelyjen parametritietojen tietokantatallennuksia ja tietokantahakuja. Sen sijaan controller-komponentti kutsuu erillisiä tukipalveluluokkia, jotka huolehtivat tietokantatoiminnoista. Tietokantatoimintojen lisäksi tukipalveluluokat huolehtivat esimerkiksi tehtävänmäärittelynäkymien parametrien pakkaamisesta tietorakenteisiin ja syötteiden prosessoinnista: esimerkiksi aukkojen etsimisestä tekstimassasta aukkojentäyttötehtävässä. 7.1 Tehtävänmäärittelykäyttöliittymät Käyttöliittymänäkymät tarjoavat järjestelmää käyttävälle opettajalle liittymän tehtävien selaamiseen, uusien tehtävien luomiseen, sekä olemassa olevien tehtävien muokkaamiseen ja poistamiseen. Tehtävätyypit 1 ja 2 eli monivalinta- ja valintatehtävä toteutetaan yhdistetyn tehtävänmäärittelyliittymän avulla. Mikäli tehtävään määritellään täsmälleen yksi oikea ratkaisu, esitetään tehtävä monivalintatehtävänä. Muissa tapauksissa tehtävä esitetään valintatehtävänä. Aukkojentäyttötehtävä ja järjestystehtävä toteutetaan omien kahteen näkymään jakautuvien määrittelyliittymiensä avulla. 23

29 Taulukossa 16 on listattu kaikki järjestelmän tehtävänmäärittelynäkymät, sekä JSP-sivut, joiden avulla näkymät toteutetaan. Liite 2 sisältää kuvankaappaukset kaikista toteutettavista tehtävänmäärittelykäyttöliittymistä. Näkymän tehtävä JSP-sivu Kuva Tehtävien listaus tasklist.jsp Liite 2, kuva 5 Tehtävän yleisten parametrien määrittely tasksettings.jsp Liite 2, kuva 6 Monivalinta- ja valintatehtävien määrittely optiontask.jsp Liite 2, kuva 7 Aukkojentäyttötehtävän tekstin ja aukkojen blankfill1.jsp Liite 2, kuva 8 määrittely Aukkojentäyttötehtävän palautteen määrittely blankfill2.jsp Liite 2, kuva 9 Järjestystehtävän järjestettävien objektien ja ordering1.jsp Liite 2, kuva 10 palautteen määrittely Järjestystehtävän oikean järjestyksen määrittely ordering2.jsp Liite 2, kuva 11 Taulukko 14: Tehtävienmäärittelyn käyttöliittymät Kaikki määrittelykäyttöliittymät toteutetaan kieliriippumattomasti. Näkymissä esiintyvät tekstiosiot talletetaan tietokantaan ja noudetaan käyttöliittymiä esitettäessä AttributeCache-oliosta. Liite 4 kuvaa tehtävänmäärittelynäkymien kielikohtaiset arvot ja liite 5 listaa näiden sijoittumisen järjestelmän tietokannassa. 7.2 Controller-servlet Tehtävänmäärittelytehtävien hallintaan toteutetaan yksi keskitetty controller-komponentti, jonka vastuulla on kaikkien tehtävänmäärittelyn käyttöliittymänäkymien osalta: POST-kutsujen vastaanottaminen ja parametrien lukeminen. tarvittavien tukipalvelujen, kuten tietokantatoimintojen kutsuminen. seuraavan käyttöliittymänäkymän tarvitsemien tietorakenteiden valmistelu. seuraavan käyttöliittymänäkymän aktivointi. Controller-Servlet päättelee kullakin kutsukerralla tarvittavat toimenpiteet jokaisen kutsun yhteydessä välitettävän event-post-parametrin avulla. Event-parametrit luetaan html-näkymiä generoitaessa sekä controller-servletissä vakiomuuttujia sisältävästä EventParameters-luokasta. Parametrit toimintokuvauksineen on esitetty taulukossa 17. Event-parametrimuuttuja Toiminnon kuvaus LIST_TASKS Kaikkien kirjautuneen käyttäjän luomien tehtävien listaus. NEW_TASK Uuden tehtävän lisäys. EDIT_TASK Olemassa olevan tehtävän muokkaus. EDIT_TASK_AS_NEW Olemassa olevan tehtävän muokkaus siten, että muokattu versio tallennetaan uutena tehtävänä. EDIT_TASK_AS_NEW_LANG Olemassa olevan tehtävän muokkaus siten, että muokattu versio tallennetaan saman tehtävän erikielisenä versiona. DELETE_TASK Olemassa olevan tehtävän poistaminen. OPTION_TASK_COMPOSE Monivalinta/valintatehtävän käsittelyliittymän 24

30 OPTION_TASK_COMPOSE_ADD_OPTI ONS OPTION_TASK_SUBMIT BLANKFILL_TEXT_COMPOSE BLANKFILL_TEXT_SUBMIT BLANKFILL_FEEDBACK_COMPOSE BLANKFILL_ FEEDBACK_SUBMIT esittäminen. Parametrina välitetään tietorakenne, jossa on kaikki tulee parametrina olevassa tietorakenteesta saada helposti kaikki muokattavan tehtävän tiedot. Monivalinta/valintatehtävän käsittelyliittymän esittäminen siten, että tyhjien valinnansyöttökenttien määrää lisätään. Servletin tulee pakata vastaanotetut POST-parametrit tietorakenteeseen, kasvattaa numberofoptions-parametrin arvoa kahdellakymmenellä ja palauttaa kontrolli monivalinta/valintatehtävän käsittelyliittymälle. Monivalinta/valintatehtävän tallentaminen. Aukkojentäyttötehtävän käsittelyliittymän ensimmäisen osion esittäminen. Ensimmäisessä osassa määritellään teksti ja siihen liittyvät aukkokohdat. Aukkojentäyttötehtävän käsittelyliittymän ensimmäisen osion tallentaminen. Aukkojentäyttötehtävän käsittelyliittymän toisen osion esittäminen. Toisessa osassa määritellään valittuihin aukkokohtiin liittyvät palautteet. Tämä käyttöliittymä vaatii syötteenään keskusmuistitietorakenteen, josta aukkopaikat voidaan helposti poimia palautteen määrittelyä varten. Aukkojentäyttötehtävän käsittelyliittymän toisen osion tallentaminen. ORDERING_OPTIONS_COMPOSE Järjestystehtävän ensimmäisen osion esittäminen. Ensimmäisessä osassa määritellään järjestettävät objektit ja niihin liittyvä palaute. ORDERING_OPTIONS_COMPOSE_ADD _OPTIONS Järjestystehtävän käsittelyliittymän ensimmäisen osion esittäminen siten, että tyhjien syöttökenttien määrää lisätään. Servletin tulee pakata vastaanotetut POSTparametrit tietorakenteeseen, kasvattaa numberofoptionsparametrin arvoa kahdellakymmenellä ja palauttaa kontrolli järjestystehtävän käsittelyliittymälle. ORDERING_OPTIONS_SUBMIT Järjestystehtävän käsittelyliittymän ensimmäisen osion tallentaminen. ORDERING_ORDER_COMPOSE Järjestystehtävän toisen osion esittäminen. Toisessa osassa määritellään järjestettävien objektien oikea järjestys. ORDERING_ORDER_SUBMIT Järjestystehtävän käsittelyliittymän toisen osion TEST tallentaminen. Event-parametri testikäyttöön. Tämän event-tapauksen yhteydessä Servletin tulee tulostaa kaikki POST-kutsussa saadut parametrit html-sivulle. Taulukko 15: Event-parametrit Controller-servlet hyödyntää apuluokkia käyttöliittymiltä saatavien POST-parametrien lukemiseen, tietorakenteiden muodostamiseen sekä tietotyyppimuunnoksiin. Nämä apuluokat on esitetty taulukossa

31 Luokka PostParameterParser MiscUtil DateParser Kuvaus Lukee POST-parametrit ja tallentaa ne oikeanlaiseen tietorakenteeseen. Luokka erilaisten tietotyyppien ja muiden tukitehtävien käsittelyyn. Päivämäärien käsittelyyn tarvittavat palvelut. Taulukko 16: Controller-servletin apuluokat 7.3 Tietorakenteet Tehtävänmäärittelytietojen käsittelyyn ja väliaikaistallennukseen käytetään tehtävätyyppikohtaisia tietorakenteita, jotka on esitetty luokkakaaviona kuvassa 9. Tietorakenteet toteutetaan JavaBean-luokkina, jotka tarjoavat get- ja set- metodit kaikille tehtävätyypin tiedoille. Tiedot, joiden lukumäärää ei tiedetä etukäteen, sijoitetaan HashMaptietorakenteeseen, josta ne voidaan hakea järjestysluvun avulla indeksoiden. Tehtäväkohtaiset tietorakenneluokat perivät BaseTaskDTO-luokan, joka sisältää kaikille tehtävätyypeille yhteiset palvelut. 7.4 Tukipalvelut Kuva 9: Tietorakenneluokat Tehtävien määrittelyyn liittyvät tukipalvelut, kuten tietojen tallennus ja haku toteutetaan erillisten tukipalveluluokkien avulla. Controller-servlet kutsuu näitä palveluita tarvittaessa. 26

32 7.4.1 Tietojen haku ja tallennus Tietokannan käsittelyyn toteutettavat apuluokat tarjoavat palvelut tehtävätyyppikohtaisten tietorakenteiden sisällön tietokantatallennuksiin sekä määrittelytiedot sisältävien tietorakenteiden hakuun. Kuvassa 8 on esitetty luokkakaavio tietokannan käsittelyyn tarvittavista luokista. Kuva 8: Tietokannan käsittelyluokat Taulukossa 19 listataan yksityiskohtaisesti tietokantaa käsittelevien apuluokkien metodien toiminta. Luokka Metodi Metodin kuvaus DatabaseBase public Connection Avaa tietokantayhteyden ja palauttaa getconnection(); valmiin Connection olion. public void Sulkee tietokantayhteyden. closeconnection(); MultipleChoiceDatabase MenuDatabase public abstract void savedata(basetaskdto data); public abstract Collection loaddata(); public abstract void savedata(basetaskdto data); public abstract Collection loaddata(); public abstract void savedata(basetaskdto data); Abstrakti metodi, joka toteutetaan tehtäväkohtaisesti aliluokissa. Abstrakti metodi, joka toteutetaan tehtäväkohtaisesti aliluokissa. Tallentaa parametrina saadun tietorakenteen tiedot tietokantaan. Tämä metodi saa parametrinaan ChoiceTaskDTO objektin. Hakee kaikki määrättyyn tehtävämäärittelyyn liittyvät tiedot. Tallentaa parametrina saadun tietorakenteen tiedot tietokantaan. Tämä metodi saa parametrinaan ChoiceTaskDTO objektin. 27

33 OrganizationDatabase FillBlanksDatabase public abstract Collection loaddata(); public abstract void savedata(basetaskdto data); public abstract Collection loaddata(); public abstract void savedata(basetaskdto data); public abstract Collection loaddata(); Hakee kaikki määrättyyn tehtävämäärittelyyn liittyvät tiedot. Tallentaa parametrina saadun tietorakenteen tiedot tietokantaan. Tämä metodi saa parametrinaan OrganizationTaskDTO objektin. Hakee kaikki määrättyyn tehtävämäärittelyyn liittyvät tiedot. Tallentaa parametrina saadun tietorakenteen tiedot tietokantaan. Tämä metodi saa parametrinaan FillBlanksDTO objektin. Hakee kaikki määrättyyn tehtävämäärittelyyn liittyvät tiedot. Taulukko 17: Tietokannankäsittelymetodit 7.5 Tehtävänmäärittelynäkymien tiedonvälitys Tehtävänmäärittely jakautuu kaikille tehtävätyypeille yhteiseen yleiseen tehtävänmäärittelyosaan sekä tehtävätyyppikohtaiseen osaan, jossa määritellään: tehtävänannon elementit, kuten monivalinta- ja valintatehtävän valinnat, järjestystehtävän järjestettävät objektit sekä aukkojentäyttötehtävän teksti aukkoineen. tehtävänannon oikea ratkaisu. tehtävään liittyvä yksityiskohtainen palaute. muu mahdollinen tehtäväkohtainen tieto. Tiedot välitetään käyttöliittymiltä controller-servletille http-post-parametreina. Tarkat parametritiedot on listattu liitteessä 1 taulukossa 20 osoitetulla tavalla. Parametrien käyttö Parametrilistaus Kaikissa post-kutsuissa välitettävät yleiset Liite 1, taulukko 1. parametrit Yleisen tehtävänmäärittelyvaiheen parametrit. Liite 1, taulukko 2. Monivalinta- ja valintatehtävien parametrit. Liite 1, taulukko 3. Aukkojentäyttötehtävien parametrit. Liite 1, taulukko 4. Järjestystehtävien parametrit. Liite 1, taulukko 5. Taulukko 18: Käyttöliittymien POST-parametrit Monivalinta- ja valintatehtävissä, järjestystehtävissä sekä aukkojentäyttötehtävissä esiintyy tietoja, joiden määrää ei tiedetä etukäteen. Näiden parametrien nimien perään katenoidaan käyttöliittymänäkymiä generoitaessa sekvenssinumero, jota esitetään liitteenä olevissa parametrilistauksissa merkillä #. Numerointi alkaa luvusta 1. 28

34 8. ESITYSKOMPONENTIT Esityskomponentit vastaavat tehtävän esityskäyttöliittymän sisällön generoimisesta. Tehtävätietojen käsittelyyn käytetään cache-tietorakennetta, joka on kuvattu luvussa Esityskomponenttien abstrakti määrittely Komponenttien tehtävät - Käyttäjälle esitettävän tehtävänannon muotoileminen Komponenttien tarjoamat palvelut - Tehtävänannon palauttaminen kehyskoodille käyttäjän www-selaimella näytettäväksi Komponenttien säännöt ja rajoitukset - Osattava esittää kaikki tehtävätyypit. - Toteutettava AttributeCache-rajapinnan vaatimukset Komponenttien rajapinnat - Esitysservlettirajapinta - tehtäväparametrien vastaanottaminen (mm. esityskieli) - tehtävänannon palauttaminen - Cache-rajapinta - kielikohtaisten tehtävätietojen noutaminen 29

35 8.2 Esityskomponenttien tietosisältö ja palvelut Kuvassa 10 on kuvattu toteutettavat esityskomponentit luokkakaaviona. Kaikki esityskomponentit toteuttavat DisplayerInterface-rajapinnan, ja perivät CommonDisplayer-luokan, joka sisältää esityskomponenteille yhteiset palvelut. Tehtävätyyppikohtainen getscript()-metodi palauttaa esityskäyttöliittymän XHTML-merkkijonona. Kuva 10: Esityskomponenttien luokkakaavio DisplayerInterface-rajapintaluokka vaatii jokaisen esityskomponentin sisältävän toteutuksen ainakin seuraaville metodeille: public void init (String taskid, String language, String initparams); 30

36 Toiminta: Alustetaan tarvittavat muuttujat. Initparams-muuttuja on xml-muodossa annettu merkkijono, joka tulkitaan jos parametreja on annettu. public String getscript () throws CacheException; Toiminta: Tuotetaan käsiteltävää tehtävää koskevan XHTML-esityskäyttöliittymän headerosaan lisättävät dynaamiset skriptiosiot. public String getsetting(string [] initval, String params, String hiddens, boolean allowtry) throws CacheException; Toiminta: Tuotetaan käsiteltävää tehtävää koskevan XHTML-esityskäyttöliittymän varsinainen sisältö. 8.3 Esityskomponenttien parametrit Tämä luku kuvaa esityskomponenttien käyttämät parametrit tehtävätyypeittäin. Esityskomponenttien aktivoiminen: tyyppi: nimi: tarkoitus: String taskid esitettävän tehtävän tunnus. String language haluttu esityskieli. Taulukko 19: Esityskomponenttien kutsuparametrit Tehtävänmäärittelytietojen noutaminen cache-rakenteesta - valintatehtävät: tyyppi: nimi: tarkoitus: String headline sivun otsikko. String infobox käyttäjälle esitettävä ohjeteksti. String assignment tehtävänanto (= esitettävä kysymys). String[] options vastausvaihtoehdot esitysjärjestyksessä. String buttontext vastauspainikkeen teksti. Taulukko 20: Valintatehtävien esitysparametrit Tehtävänmäärittelytietojen noutaminen cache-rakenteesta - järjestystehtävät: tyyppi: nimi: tarkoitus: String headline sivun otsikko. String infobox käyttäjälle esitettävä ohjeteksti. String assignment tehtävänanto (= esitettävä kysymys). String[] options järjestettävät elementit esitysjärjestyksessä. String buttontext vastauspainikkeen teksti. Taulukko 21: Järjestystehtävien esitysparametrit 31

37 Tehtävänmäärittelytietojen noutaminen cache-rakenteesta - aukkojentäyttötehtävät: tyyppi: nimi: tarkoitus: String headline sivun otsikko. String infobox käyttäjälle esitettävä ohjeteksti. String assignment tehtävänanto (= aukkoja sisältävä teksti). String[] options tyhjä; ei tarvita tehtävätyypissä. String buttontext vastauspainikkeen teksti. Taulukko 22: Aukkojentäyttötehtävien esitysparametrit Sisällön palauttaminen kehyskoodiservletille: tyyppi: nimi: tarkoitus: String task esitettävä tehtävä XHTML-koodina. String[] initval kunkin vastausvaihtoehdon käyttäjälle esitettävä oletusarvo. Feedback error käyttäjälle esitettävä virheilmoitus. Taulukko 23: Tehtävän esitysparametrit 8.4 Esityskäyttöliittymien ulkoasun muokkaaminen Tehtävien esittämisessä generoitavien xhtml-sivujen ulkoasua voidaan muokata toteuttamalla kurssikohtainen css-tiedosto, jossa liitteen 3 taulukossa 1 listatut css-class tyylimäärittelyt. Mikäli joitain luokkia ei ole toteutettu kurssikohtaisessa tyylitiedostossa, käytetään esittämiseen esityskomponenttien käyttöön toteutettavia oletustyylejä. Omia tyylitiedostoja käytettäessä tulee käyttäjän itse huolehtia tyylimäärittelyjen toimivuuden testaamisesta järjestelmä ei validoi käyttäjien tyylitiedostoja millään tavalla. 32

38 9. ANALYSOINTIKOMPONENTIT Analysointikomponentit vastaavat käyttäjän antamien vastausten arvioinnista ja palautteen muodostamisesta. Palaute kootaan Feedback-olioon, joka palautetaan kehyskoodiservletille. Tehtävätietojen, kuten oikeiden vastausten ja palautteen, käsittelyyn käytetään cachetietorakennetta, joka on kuvattu luvussa Analysointikomponenttien abstrakti määrittely Komponenttien tehtävät - tehtävään annetun vastauksen arvioiminen. - käyttäjälle esitettävän palautteen muodostaminen. - Feedback-olion luominen Komponenttien tarjoamat palvelut - Feedback-olion palauttaminen kehyskoodille Komponenttien säännöt ja rajoitukset - osattava analysoida kaikki tehtävätyypit. - toteutettava AttributeCache-rajapinnan vaatimukset. - sisällytettävä palautteeseen oikeellisuusprosentti: numeerinen arvio vastauksen oikeellisuudesta. ilmoitusteksti: varsinainen palauteteksti. liiteaineisto: mahdollinen muu tieto, esim. suoritettavan SQL-kyselyn tulos. - tallennettava palaute Feedback-olioon. - palautettava Feedback-olio kehyskoodille Komponenttien rajapinnat - vastausservlettirajapinta - tehtäväparametrien vastaanottaminen - vastauksen vastaanottaminen - Feedback-olion palauttaminen - cache-rajapinta - kielikohtaisten oikean vastauksen kuvailutietojen noutaminen - Feedback-oliorajapinta - palautteen tallentaminen 33

39 9.2 Analysointikomponenttien tietosisältö ja palvelut Kuvassa 11 on kuvattu toteutettavat analysointikomponentit luokkakaaviona. Kaikki analysointikomponentit toteuttavat AnalyserInterface-rajapinnan, ja perivät CommonAnalyserluokan, joka sisältää esityskomponenteille yhteiset tiedot. Tehtävätyyppikohtainen analyse()-metodi arvioi annetun vastauksen ja palauttaa Feedback-olion kehyskoodiservletille. Kuva 11: Analysointikomponenttien luokkakaavio AnalyserInterface-rajapintaluokka vaatii jokaisen analysointikomponentin sisältävän toteutuksen ainakin seuraaville metodeille: public void init (String taskid, String language, String initparams); Toiminta: Alustetaan tarvittavat muuttujat. Initparams-muuttuja on xml-muodossa annettu merkkijono, joka tulkitaan jos parametreja on annettu. public Feedback analyse (String [] answer, String params) throws CacheException; 34

40 Toiminta: Suorittaa varsinaisen analysoinnin. Answer-parametrin sisältämää vastausta verrataan tietokantaan määriteltyyn oikeaan vastaukseen. public void registercache(attributecache cache ); Toiminta: Rekisteröidään cache analysointikomponenttiin, jotta sitä voidaan käyttää vastauksen analysoinnissa. 9.3 Analysointikomponenttien parametrit Tämä luku kuvaa analysointikomponenttien käyttämät parametrit tehtävätyypeittäin. Analysointikomponentin aktivoiminen: tyyppi: nimi: tarkoitus: String userid käyttäjätunnus. String taskid tehtävätunnus. String language käytetty esityskieli. String[] answer opiskelijan valintatehtävään antamat vastaukset. String[] answer opiskelijan järjestystehtävään antama vastaus. String[] answer opiskelijan aukkojentäyttötehtävään antamat vastaukset. Taulukko 24: Analysointikomponenttien kutsuparametrit Oikean vastauksen kuvailutietojen noutaminen cache-rakenteesta - valintatehtävät: tyyppi: nimi: tarkoitus: String[] Solution kunkin vastausvaihtoehdon oikeellisuustieto. String[] okfeedback oikein valittuihin vaihtoehdoihin annettavat palautteet. String[] badfeedback väärin valittuihin vaihtoehtoihin annettavat palautteet. Taulukko 25: Valintatehtävien analysointiparametrit Oikean vastauksen kuvailutietojen noutaminen cache-rakenteesta - järjestystehtävät: tyyppi: nimi: tarkoitus: String[] Solution järjestettävien elementtien oikea järjestys. String[] okfeedback oikeisiin kohtiin sijoitettuihin elementteihin liittyvät palautteet. String[] earlyfeedback liian aikaiseen paikkaan sijoitettuhin elementteihin liittyvät palautteet. String[] latefeedback liian myöhäiseen paikkaan sijoitettuhin elementteihin liittyvät palautteet. Taulukko 26: Järjestystehtävien analysointiparametrit 35

41 Oikean vastauksen kuvailutietojen noutaminen cache-rakenteesta - aukkojentäyttötehtävät: tyyppi: nimi: tarkoitus: String[] Solution aukkokohtiin annettavat oikeat syötteet. String[] okfeedback oikein täytettyihin aukkokohtiin annettavat palautteet. String[] badfeedback väärin täytettyihin aukkokohtiin annettavat palautteet. Taulukko 27: Aukkojentäyttötehtävien analysointiparametrit Palautteen välittäminen kehyskoodiservletille: tyyppi: nimi: tarkoitus: Feedback Feedback käyttäjälle esitettävä palaute/virheilmoitus. Taulukko 28: Palautteenvälitysparametrit 36

42 10. PAKKAUSRAKENNE Projektissa toteutettavat luokat jaetaan taulukossa 31 esitettyyn pakkausrakenteeseen. Paketti fi.hy.eassari.showtask.util fi.hy.eassari.showtask.servlets fi.hy.eassari.showtask.trainer fi.hy.eassari.taskdefinition.util fi.hy.eassari.taskdefinition.servlets fi.hy.eassari.taskdefinition.main Selite Tehtävävien esityksen ja analysoinnin apuluokat. Tehtävävien esityksen Servlet-luokat. Muut tehtävien esityksen ja analysoinnin luokat. Tehtävänmäärittelyn apuluokat Tehtävämäärittelyn Servlet-luokat. Muut tehtävämäärittelyn luokat. Taulukko 29: Pakkausrakenne 37

43 11. LÄHTEET [LAI03] Harri Laine: eassari Practicing, assesment and exam engine ( ) 38

44 12. LIITTEET Liite 1: Tehtävänmäärittelyn käyttöliittymien tietosisältö Kaikissa post-kutsuissa välitettävät yleiset parametrit Nimi Merkitys Tyyppi Muuta event Tähän POST-kutsuun Int Event-parametrien arvot liittyvän tapahtuman luetaan aina EventParametersluokasta. tunniste, jonka avulla vastaanottava Servlet osaa tehdä tarvittavat toimenpiteet. taskname Tehtävän nimi String Nimien on oltava yksikäsitteisiä. Jos annettu nimi on jo olemassa, katenoidaan nimen perään määrittelyhetken aikaleima. taskid Tehtävän tunniste Int Vain olemassa olevilla tehtävillä on id-arvot. Jos arvoa ei saada POST:n yhteydessä, on kyseessä uusi tehtävä. Jokaisen kutsun yhteydessä on validoitava onko käyttäjällä oikeutta käsitellä taskidparametrin osoittamaa tehtävää. Taulukko 1: Jokaisen post-kutsun yhteydessä käytettävät yleiset parametrit Yleisen tehtävänmäärittelyvaiheen post-parametrit Nimi Merkitys Tyyppi Muuta task Tehtävänanto. String tasktype Tehtävän tyyppi, esim. String monivalintatehtävä. Tämän tiedon avulla Servlet osaa kirjata tietokantaan tehtävätyyppiin liittyvän analysointikomponentin ja esityskomponentin, sekä ohjata kontrollin oikeaan tehtävänmäärittelyliittymä än. 39

45 language Tehtävän määrittelykieli. String positivefeedback Koko tehtävää koskeva String palaute, joka esitetään jos ratkaisu on hyväksyttävä. negativefeedback Koko tehtävää koskeva String palaute, joka esitetään jos ratkaisu ei ole hyväksyttävä cutofvalue Tehtävän hyväksymisraja int (0-100) oikeellisuusprosenttina. immediatefeedback Tieto siitä, esitetäänkö int (0 tai 1) palaute välittömästi. numberoftries Ratkaisuyrityskertojen yläraja. Mikäli parametrin arvo POST-kutsussa ei ole nollaa suurempi kokonaisluku, ei yrityskertojen määrää rajoiteta. registertry Tieto siitä, int (0 tai 1) rekisteröidäänkö tehtävän ratkaisuyritykset. saveanswer Tieto siitä, tallennetaanko int (0 tai 1) tehtävään annetut vastaukset. loginrequired Tieto siitä, onko int (0 tai 1) opiskelijan oltava kirjautuneena järjestelmään suorittaakseen tehtävän. saveasnew Tieto siitä, tallennetaanko int (0 tai 1) tehtävä uudeksi tehtäväksi. Jos tämä parametri on arvoltaan 0, tallennetaan määrittely aiemman tehtävän tilalle. saveasnewlanguage Tieto siitä, tallennetaanko int (0 tai 1) tehtävä olemassa olevan tehtävän erikieliseksi variaatioksi. Jos tämä parametri on arvoltaan 1, tallennetaan tehdyt muutokset saman tehtävän erikielisiksi kuvaustiedoiksi. Taulukko 2: Yleisen tehtävänmäärittelyvaiheen post-parametrit 40

46 Monivalinta- ja valintatehtävien parametrit Nimi Merkitys Tyyppi Muuta option# #. vaihtoehdon nimi. String Todellisten parametrien nimet ovat option1, option2, option3,, optionn (N=vaihtoehtojen määrä) isselected# Tieto siitä, tuleeko int (0 tai 1) Todellisten parametrien nimet vaihtoehdon # olla ovat isselected1, isselected2, valittuna oikeassa isselected3,, isselectedn ratkaisussa. (N=vaihtoehtojen määrä) positivefeedback# Vaihtoehtoon # liittyvä String Todellisten parametrien nimet negativefeedback# numberofoptions palaute tapauksiin, joissa vaihtoehtoon liittyvä ratkaisu on oikein. Vaihtoehtoon # liittyvä palaute tapauksiin, joissa vaihtoehtoon liittyvä ratkaisu ei ole oikein. Lomakkeella esitettävien vaihtoehtojen määrä. Osa tarjotuista vaihtoehdoista voi olla tyhjiä. Mikäli jonkin vaihtoehdon option#- kenttä on tyhjä, ei vaihtoehtoa tule tallentaa tietokantaan. Tällöin tätä vaihtoehtoa seuraavien vaihtoehtojen sekvenssinumerot tulee korjata oikeellisiksi. String ovat positivefeedback2, positivefeedback3,, positivefeedbackn (N=vaihtoehtojen määrä) positivefeedback1, Todellisten parametrien nimet ovat negativefeedback1, negativefeedback2, negativefeedback3,, negativefeedbackn (N=vaihtoehtojen määrä) int Kaikissa yllä esitetyissä parametreissa # numberofoptions. Taulukko 3: Monivalinta- ja valintatehtävien parametrit 41

47 Aukkojentäyttötehtävien parametrit Nimi Merkitys Tyyppi Muuta text Tehtävänantoon String Tyhjän aukkopaikan merkintä liitettävä teksti, joka onnistuu merkitsemällä tekstiin sisältää aukkopaikat kaksinkertaiset hakasulut, kaksinkertaisin joiden sisällä ei ole tekstiä. hakasulkumerkein ([[ ja Sisällöllisen aukkopaikan ]]) merkittyinä. merkintä tehdään ympäröimällä aukon oikea täyttötapa kaksinkertaisilla positivefeedback# Aukkopaikkaan # liittyvä palaute tapauksiin, joissa aukko on täytetty oikein. negativefeedback# Aukkopaikkaan # liittyvä palaute tapauksiin, joissa aukkoa ei ole täytetty oikein. Taulukko 4: Aukkojentehtävien parametrit hakasulkumerkeillä. Palaute määritellään eri näkymässä kuin edellä mainittu parametri text. Ennen palautteen määrittelyä käsittelevä Servlet on käsitellyt text-parametrin ja muodostanut keskusmuistitietorakenteen, josta aukkopaikat on helppo poimia palautteen määrittelyä varten. Palaute määritellään eri näkymässä kuin edellä mainittu parametri text. Ennen palautteen määrittelyä käsittelevä Servlet on käsitellyt text-parametrin ja muodostanut keskusmuistitietorakenteen, josta aukkopaikat on helppo poimia palautteen määrittelyä varten. 42

48 Järjestystehtävien parametrit Nimi Merkitys Tyyppi Muuta object# # järjestettävän objektin String Todellisten parametrien nimet nimi. ovat object1, object2, object3,, objectn (N=objektien määrä) correctfeedback# Objektiin # liittyvä String Todellisten parametrien nimet palaute tapauksiin, joissa objekti on järjestetty oikealle paikalleen. tooearlyfeedback# Objektiin # liittyvä palaute tapauksiin, joissa objekti on järjestetty liian aikaiselle paikalle. toolatefeedback# Objektiin # liittyvä palaute tapauksiin, joissa objekti on järjestetty liian myöhäiselle paikalle. String String Taulukko 5: Järjestystehtävien parametrit ovat positivefeedback2, positivefeedback3,, positivefeedbackn (N=vaihtoehtojen määrä) positivefeedback1, Todellisten parametrien nimet ovat negativefeedback1, tooearlyfeedback2, tooearlyfeedback3,, tooearlyfeedbackn (N=vaihtoehtojen määrä) Todellisten parametrien nimet ovat toolatefeedback1, toolatefeedback2, toolatefeedback3,, toolatefeedbackn (N=vaihtoehtojen määrä) int Kaikissa yllä esitetyissä parametreissa # numberofoptions. numberofoptions Lomakkeella esitettävien vaihtoehtojen määrä. Osa tarjotuista vaihtoehdoista voi olla tyhjiä. Mikäli jonkin vaihtoehdon option#- kenttä on tyhjä, ei vaihtoehtoa tule tallentaa tietokantaan. Tällöin tätä vaihtoehtoa seuraavien vaihtoehtojen sekvenssinumerot tulee korjata oikeellisiksi. placeofobject# Objektin # sijainnin kuvaava järjestysnumero. int Tämä parametri tulee huomioida ainoastaan ORDERING_ORDER_SUBMITevent-parametria käsiteltäessä. Tämän event-parametrin käsittelyssä voidaan muut tämän taulukon parametrit jättää huomioimatta. 43

49 Liite 2: Käyttöliittymäkuvat Tehtävien esittäminen Kuva 1: Monivalintatehtävän vastauskäyttöliittymä 44

50 Kuva 2: Valintatehtävän vastauskäyttöliittymä 45

51 Kuva 3: Aukkojentäyttötehtävän vastauskäyttöliittymä 46

52 Kuva 4: Järjestystehtävän vastauskäyttöliittymä Tehtävien määritteleminen Kuva 5: Tehtävien listausnäkymä 47

53 Kuva 6: Tehtävän yleisten parametrien määrittelynäkymä 48

54 Kuva 7: Monivalinta- ja valintatehtävien määrittelynäkymä 49

55 Kuva 8: Aukkojentäyttötehtävän tekstin ja aukkojen määrittelynäkymä 50

56 Kuva 9: Aukkojentäyttötehtävän palautteenmäärittelynäkymä 51

57 Kuva 10: Järjestystehtävän järjestettävien objektien ja palautteen määrittelynäkymä Kuva 11: Järjestystehtävän oikean järjestyksen määrittelynäkymä 52

OHJELMISTOTUOTANTOPROJEKTI

OHJELMISTOTUOTANTOPROJEKTI HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS OHJELMISTOTUOTANTOPROJEKTI ASSARI Suunnitteludokumentti versio 1.1 Teemu Andersson Mikko Lukkari Vesa-Matti Mäkinen Olli-Pekka Ruuskanen Sami Termonen

Lisätiedot

OHJELMISTOTUOTANTOPROJEKTI

OHJELMISTOTUOTANTOPROJEKTI HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS OHJELMISTOTUOTANTOPROJEKTI ASSARI Käyttöohje versio 1.0 Teemu Andersson Mikko Lukkari Vesa-Matti Mäkinen Olli-Pekka Ruuskanen Sami Termonen 11.5.2004

Lisätiedot

eassari Practicing, assessment and exam engine Harri Laine Taustaa

eassari Practicing, assessment and exam engine Harri Laine Taustaa eassari Practicing, assessment and exam engine Harri Laine Taustaa eassari on tietokantapohjainen ympäristö ohjelmallisesti tarkastettavien harjoitus- ja koetehtävien suorittamiseen. Monikielisyys ja helppo

Lisätiedot

eassari tekninen kuvaus Harri Laine Taustaa

eassari tekninen kuvaus Harri Laine Taustaa eassari tekninen kuvaus Harri Laine Taustaa eassari on tietokantapohjainen ympäristö automaattisesti tarkastettavien harjoitus- ja koetehtävien suorittamiseen. Monikielisyys ja helppo laajennettavuus ovat

Lisätiedot

Suunnitteludokumentti

Suunnitteludokumentti Suunnitteludokumentti AssariXP Helsinki 13.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Mikko Hakila

Lisätiedot

eassari harjoitteluympäristön yleisrakenne

eassari harjoitteluympäristön yleisrakenne eassari harjoitteluympäristön yleisrakenne Harri Laine (20.1.2004) eassari on tietokantapohjainen WWW-sovellus ohjelmallisesti tarkastettavien harjoitus- ja koetehtävien suorittamiseen. Monikielisyys ja

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Vaatimusmäärittely. AssariXP. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Vaatimusmäärittely. AssariXP. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Vaatimusmäärittely AssariXP Helsinki 12.10.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Mikko Hakila

Lisätiedot

Toteutusdokumentti. AssariXP. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Toteutusdokumentti. AssariXP. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Toteutusdokumentti AssariXP Helsinki 9.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Mikko Hakila

Lisätiedot

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Ylläpitodokumentti Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 16.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

Suunnitteludokumentti

Suunnitteludokumentti Suunnitteludokumentti Koskelo Helsinki 15.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell

Lisätiedot

Käyttöohje. AssariXP. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. AssariXP. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Käyttöohje AssariXP Helsinki 9.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisällys 1 Johdanto...1 2 Asennusohje...1 3 Käyttöohje...1 3.1 3.2 3.3 3.4 3.4.1 3.4.2

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

Lisätiedot

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

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite

Lisätiedot

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri Ylläpitodokumentti Oppimistavoitteiden hallintajärjestelmä harri Helsinki 14.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja Lohtu-projekti Ylläpitäjän dokumentti Versiohistoria: 1.0 12.5.2003 Ensimmäinen versio Andreas Asuja Helsinki 12. toukokuuta 2003 Kimmo Airamaa, Andreas Asuja, Mari Muuronen, Seppo Pastila, Virve Taivaljärvi

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto Jyväskylän yliopisto SUUNNITELMA Tietotekniikan laitos 5.11.2003 Käki-projekti TIETOKANTASUUNNITELMA 1. Johdanto Suunnitelma sisältää kuvauksen tietokannan suunnittelussa käytetyistä periaatteista, kuvan

Lisätiedot

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

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus 582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

ALMU-järjestelmä Suunnitteludokumentti

ALMU-järjestelmä Suunnitteludokumentti ALMU-järjestelmä Suunnitteludokumentti Helsingin yliopisto TKTL Ohjelmistotuotantoprojekti Projektiryhmä: Peter Ahlberg, Marika Korhonen, Tomi Kuittinen, Iikka Meriläinen, Jukka Narkiniemi SISÄLLYS 1 Johdanto...

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

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

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita. Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Digitaalisen median tekniikat. JSP ja XML

Digitaalisen median tekniikat. JSP ja XML Digitaalisen median tekniikat JSP ja 28.4.2004 Harri Laine 1 JSP hyvin lyhyesti JSP on Java-pohjainen skriptikieli JSP:llä laadittu sivu käännetään java-servletiksi (sivun toteutus vastaa servlettiluokan

Lisätiedot

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1 Digitaalisen median tekniikat JSP ja XML 28.4.2004 Harri Laine 1 JSP hyvin lyhyesti JSP on Java-pohjainen skriptikieli JSP:llä laadittu sivu käännetään java-servletiksi (sivun toteutus vastaa servlettiluokan

Lisätiedot

KIURU Tietotekniikan sovellusprojekti

KIURU Tietotekniikan sovellusprojekti KIURU Tietotekniikan sovellusprojekti Toni Hilpinen Marko Koivuniemi Jussi Mäkinen Miika Nurminen DOKUMENTIN NIMI dd.mm.yyyy Jyväskylän yliopisto Tietotekniikan laitos Kiuru-projektin tietoja Tekijät:

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä keskustelualuetta simuloiva olioperustainen ohjelma (Simple Oope Board, S.O.B). Linkitetystä listasta perittyä omaa listaa käytetään muun muassa

Lisätiedot

Tietokantasovelluksen määrittelydokumentti

Tietokantasovelluksen määrittelydokumentti hyväksymispäivä arvosana arvostelija Tietokantasovelluksen määrittelydokumentti Tuomas Husu Helsinki 19.4.2008 582203 Tietokantasovellus, kevät 2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

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

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3 Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2

Lisätiedot

Tentti erilaiset kysymystyypit

Tentti erilaiset kysymystyypit Tentti erilaiset kysymystyypit Monivalinta Monivalintatehtävässä opiskelija valitsee vastauksen valmiiden vastausvaihtoehtojen joukosta. Tehtävään voi olla yksi tai useampi oikea vastaus. Varmista, että

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Oppimisalusta eassarin TTK-91-tehtävien käyttöohje

Oppimisalusta eassarin TTK-91-tehtävien käyttöohje Oppimisalusta eassarin TTK-91-tehtävien käyttöohje Koskelo Helsinki 15.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6

Lisätiedot

Rajapintakuvaus Liikenneluvat

Rajapintakuvaus Liikenneluvat Rajapintakuvaus Liikenneluvat MUUTOSHISTORIA Versio Päiväys Laatija Muutoksen kuvaus / hyväksyjä 0.1 Tapio Oikarainen Ensimmäinen versio 2(7) Sisällysluettelo 1. Johdanto... 4 1.1. Yleistä... 4 1.2. Rajaus...

Lisätiedot

Testidatan generointi

Testidatan generointi Testidatan generointi Anu Ahonen Kevät 2008 Tämä työ on tehty Creative Commons -lisenssin alla Työn tarkasti 9.4.2008 Jouni Huotari (JAMK/IT) 1 SISÄLTÖ 1 TYÖN LÄHTÖKOHDAT JA TOTEUTUS...2 2 TESTIDATAN GENEROINTI

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia Standardi- ja tietorakenneluokkia Javan API, ArrayList Ohjelmointirajapinta (Application Programming Interface, API)

Lisätiedot

emo eassari Moodle-ympäristössä Vaatimusmäärittely

emo eassari Moodle-ympäristössä Vaatimusmäärittely emo eassari Moodle-ympäristössä Vaatimusmäärittely Helsinki 15.12.06 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op/6ov) Projektiryhmä

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

Lisätiedot

Ylläpitodokumentti. Kohahdus. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Kohahdus. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Kohahdus Helsinki 14.12.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Taro Morimoto,

Lisätiedot

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

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

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin. TIETOKANTA MERIKOTKIEN SEURANTAAN Käyttöohje Versiohistoria: Versio Päivämäärä Kuvaus Tekijä 1.0 11.12.2007 Ensimmäinen luonnos Janne Piippo 2.0 13.12.2007 Virallinen verio Janne Piippo HELSINGIN YLIOPISTO

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

Suunnitteludokumentti

Suunnitteludokumentti Suunnitteludokumentti Koskelo Helsinki 15.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

Ylläpitodokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti NJC2 Helsinki 11.5.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Eero Anttila Olli

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin

Lisätiedot

Matematiikan oppifoorumi Projektisuunnitelma

Matematiikan oppifoorumi Projektisuunnitelma Matematiikan oppifoorumi Projektisuunnitelma Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Asiakas Mikko Mäkelä Ohjelmistotuotantoprojekti 29.10.1999

Lisätiedot

Ohjelmiston toteutussuunnitelma

Ohjelmiston toteutussuunnitelma Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,

Lisätiedot

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

Lisätiedot

Lohtu-projekti. Testaussuunnitelma

Lohtu-projekti. Testaussuunnitelma Lohtu-projekti Testaussuunnitelma Versiohistoria: 1.0 19.2.2003 1. versio Mari 1.1 20.2.2003 Muutoksia Mari 1.2 25.2.2003 Katselmoinnissa esiin tulleet Mari muutokset 1.3 17.3.2003 2. syklissä tehtävät

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

Testaussuunnitelma Labra

Testaussuunnitelma Labra Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja. Matematiikan oppifoorumi Ylläpito-ohje Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Ohjelmistotuotantoprojekti 17.12.1999 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

INTINU13A6 Java sovellukset

INTINU13A6 Java sovellukset Johdanto Kurssin tavoitteena oli luoda tietokantaa käyttävä websovellus Java EE ohjelmointikielellä, sekä hyödyntää muun muassa servlettejä sekä JSP sivuja ja muita tekniikoita monipuolisesti. Webserverinä

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

RADAR - RANDOM DATA GENERATOR

RADAR - RANDOM DATA GENERATOR YLEISKUVAUS Radar on sovellus, jolla voi luoda näennäisen oikeaa satunnaisdataa testaus-, demo - ja muihin tarkoituksiin. TIEDUSTELUT Juha Levonen 050 372 5797 juha.levonen@kantapeikko.fi Osa datasta generoidaan

Lisätiedot

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

Määrittelydokumentti NJC2. Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Määrittelydokumentti NJC2 Helsinki 11.2.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Eero Anttila Olli

Lisätiedot

582104 Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

582104 Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta 582104 Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta 1 Tietojen pysyvyys liiketoiminnan edellytys Tällä kurssilla on keskitytty oliomenetelmiä hyödyntävään ohjelmistojen mallintamiseen

Lisätiedot

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus 0.1 15.1.2005 Timo Sallinen Ensimmäinen versio 0.2 26.1.2005 Timo Sallinen Täydenetty pohjaa 0.3 06.02.2005 Mika Suvanto Pieniä täydennyksiä ja oikolukua

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

Lisätiedot

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisällys. 11. Rajapinnat. Johdanto. Johdanto Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.

Lisätiedot

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy Käyttöohje Ticket Inspector Versio 1.0 Sportum Oy 10.5.2017 Sivu 1 Sisällysluettelo 1. Yleistä... 2 2. Kirjautuminen ensimmäisellä kerralla / PIN-koodin unohtuessa... 3 3. Tunnistautuminen... 4 4. Päänäkymä...

Lisätiedot

Vaalikone.fi API Presidentinvaalit 2012

Vaalikone.fi API Presidentinvaalit 2012 Vaalikone.fi API Presidentinvaalit 2012 7.12.2011 Johdanto... 2 Vaalikoneen arkistointi...2 Toiminnallisuudet...3 Kysymysten ja vastausvaihtoehtojen hakeminen...3 Ehdokkaiden ja heidän vastaustensa hakeminen...5

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot

Suunnitteluvaihe prosessissa

Suunnitteluvaihe prosessissa Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot