OHJELMISTOTUOTANTOPROJEKTI
|
|
- Mikko Väänänen
- 7 vuotta sitten
- Katselukertoja:
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
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ätiedotOHJELMISTOTUOTANTOPROJEKTI
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ätiedoteassari 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ätiedoteassari 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ätiedotSuunnitteludokumentti
Suunnitteludokumentti AssariXP Helsinki 13.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Mikko Hakila
Lisätiedoteassari 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ätiedotOhjelmistojen 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ätiedotVaatimusmää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ätiedotToteutusdokumentti. 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ätiedotYllä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ätiedotSuunnitteludokumentti
Suunnitteludokumentti Koskelo Helsinki 15.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell
LisätiedotKä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ätiedotSisä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ätiedot18. 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ätiedotWWW-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ätiedotKä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ätiedotYllä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ätiedotLohtu-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ätiedotOhjelmoinnin 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ätiedotTietotekniikan 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ätiedotYllä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ätiedot582203 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ätiedotJä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ätiedotALMU-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ätiedotJAVA-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ätiedotTietokanta.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ätiedotA274101 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ätiedot2. 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ätiedotDigitaalisen 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ätiedotDigitaalisen 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ätiedotKIURU 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ätiedotSisä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ätiedotOliosuunnitteluesimerkki: 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ätiedot15. 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ätiedotTehtä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ätiedotTaulukot. 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ätiedotLinkitetystä 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ätiedotTietokantasovelluksen 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ätiedotUutisjä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ätiedotTentti 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ätiedot15. 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ätiedotOppimisalusta 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ätiedotRajapintakuvaus 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ätiedotTestidatan 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ätiedot5. 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ätiedotOpintojakso 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ätiedotemo 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ätiedotSisä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ätiedotJava-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ätiedotYleistä. 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ätiedotSisä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ätiedotHakemistojen 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ätiedotYllä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ätiedotSisä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ätiedotRajapinta (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ätiedotOhjelmisto 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ätiedotJava 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ätiedotSuunnitteludokumentti
Suunnitteludokumentti Koskelo Helsinki 15.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell
LisätiedotRajapinnasta 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ätiedotJokaisella 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ätiedotYllä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ätiedotInformaatioteknologian 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ätiedotXPages 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ätiedotOlio-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ätiedotOpintojakso 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ätiedotMatematiikan 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ätiedotOhjelmiston 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ätiedotJohdanto 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ätiedotSisä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ätiedotLohtu-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ätiedotHELIA 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ätiedotTestaussuunnitelma Labra
Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,
LisätiedotInteraktiivisten 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ätiedotYllä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ätiedotSisä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ätiedotINTINU13A6 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ätiedotJavan 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ätiedotRADAR - 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ätiedotMää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ätiedot582104 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ätiedotKehitysohje. 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ätiedotELM 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ätiedotArkkitehtuurikuvaus. 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ätiedotTietokannat 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ätiedotTapahtumakalenteri & 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ätiedotMetodien 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ätiedot4. 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ätiedotSisä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ätiedotSokkelon 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ätiedot812341A 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ätiedotHSMT 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ätiedotInteraktiivisten 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ätiedotSisä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ätiedotKä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ätiedotVaalikone.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ätiedot9. 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ätiedotOhjelmistoarkkitehtuurit 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ätiedotSuunnitteluvaihe 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ätiedotOperaattoreiden 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