Harjoitus 1: Vaatimukset
|
|
- Mari Myllymäki
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 XML Ohjelmistokehityksessä /12 1 Yleistä 1.1 Tavoiteet Harjoitus 1: Vaatimukset Harjoitustöiden tarkoituksena on tutustuttaa harjoitustyön tekijä XML:n käsittelyn perustekniikoihin ja rajapintoihin. Harjoitustyön sovellusalueena on äänilevyjen lainauspalvelu (yksinkertainen). Harjoitustyö jakaantuu kolmeen vaiheeseen: tiedon tallennus, palvelun rakentaminen ja asiakasliittymän rakentaminen. Ensimmäisen vaiheen tavoitteena on tutustuttaa XML:n käsittelyn perusteisiin: DOM- ja SAXrajapintoihin, lyhyesti XPath:iin sekä XML-Scheman kirjoittamiseen ja käyttöön. Perustekniikoita hyödynnetään yksinkertaisen XML-pohjaisen tietovaraston luomiseen. Harjoituksen ensimmäisessä vaiheessa ei saa hyödyntää JAXB tms. työkaluja, mutta muissa harjoituksen vaiheissa saa käyttää JDK:n ja JWSDP:n tarjoamia kirjastoja haluamallaan tavalla sekä ympäristön ulkopuolisia kirjastoja. Jos opiskelija käyttää ulkopuolisia kirjastoja, ne tulee toimittaa palautusten mukana. 1.2 Versiointi Versio Tila Päiväys Tekijä Selite (muutkset, korjaukset yms.) Draft MM Alustava versio 2 Vaatimuserittely 2.1 Yleistä Tässä vaiheessa toteutettavalle tietovarastolla voidaan hallinnoida (mm. lisätä ja poistaa) tuotenimikkeitä, jotka on rajoitettu äänilevyihin, sekä hallinnoida tuotenimikkeiden lainausta.opiskelijalta vaaditaan, että harjoitustyön palautus sisältää toteutuksen em. toiminnoille. Täämän lisäksi tarkastuksen automatisointia varten opiskelijan tulee toteuttaa vaaditut lisärajapinnat. Tarkastuksen automatisointiympäristö (xmlohj.inspector) annetaan, mutta opiskelijan saa/tulee itse toteuttaa tarpeelliset tarkastukset. Tarkastajat lisäävät omat tarkastuksensa palautuksen jälkeen Vaatimukset 0000 Yleisasiat 0001 Harjoituksessa tulee hyödyntää DOM-, SAX- ja Xpath-rajapintoja 0002 Toteutus nimikepalvelulle (ItemManager) 0003 Toteutus lainauspalvelulle (LoanManager)
2 XML Ohjelmistokehityksessä / Tehtävä oma toteutus xmlohj.excerciseengine-luokasta (kuvaus myöh.) 0005 Tarvittavat tiedot tallennetaan XML-tiedostoon 0006 Tarvittavat tiedot luetaan XML-tiedostoon 0007 Ohjelman luo tiedoston tarvittaessa, jos sellainen ei ole olemassa 0008 Oletustiedoston nimi olkoon warehouse.xml 0009 Ohjelman tulee varautua siihen, että oletustiedosto vaihtuu ajon aikana (katso ExcerciseEngine) 0010 Palveluiden operaatiot ovat luonteeltaan atomisia eli niitä ei keskeytetä kesken suorituksen (tarkastus on sarjallistettua eli vain yksi operaatio tapahtuu tietyllä ajanhetkellä) 0011 Palveluiden operaatiot kuvaavat yhden transaktion eli operaatioiden aiheuttamat muutokset tiedoissa tallentuvat operaation lopuksi tiedostoon Toteutettava tarkastuksen apurajapinta Inspectors Ympäristömalli Ympäristömalli kuvaa toteutettavan alijärjestelmän suhteita valmiiksi annettuihin komponentteihin. cd Harjoitus1 externals xmlohj::excerciseengine + getitemmanager() : ItemManager + getloanmanager() : LoanManager + getinspectorsview() : InspectorsView «call» «instantiate» inspector::inspector LoanManager «call» LoanManager Harjoitus1 «call» ItemManager ItemManager InspectorsView InspectorsView «call» Kuva 2.1Harjoituksen ulkoiset riippuvuudet Kuvassa 2.1 on esitetty harjoituksen peruselementit. Harjoitustyöympäristö tarjoaa Inspector-luokan sekä ExerciseEngine-luokan, joka on käytännössä vain rajapintakuvaus. Samoin rajapintakuvaukset ItemManager-, LoanManager- sekä InspectorsView-rajapinnoille annetaan. cd Package DataService xmlohj::exerciseengine + getitemmanager() : ItemManager + getloanmanager() : LoanManager + getinspectorsview() : InspectorsView ExerciseEngine1 + getitemmanager() : ItemManager + getloanmanager() : LoanManager + getinspectorsview() : InspectorsView (from xmlohj) Kuva 2.2ExersiceEngine-luokan toteuts harjoituksessa Opiskelijan tulee luoda oma ExerciseEngine1-luokka (kuva 2.2), joka osaa instantioida harjoituksen rajapinnat toteuttavan luokan (tai luokat). Harjoistus1-komponetin sisäinen toteutus on täysin kiinni opiskelijan mielikuvituksesta ja harjoituksen vaatimusten rajoitteista. 2.2 Nimikepalvelu
3 XML Ohjelmistokehityksessä / Yleistä Nimikepalvelu (ItemManager) tarjoaa mekanismin hallinnoida nimikejoukkoa. Oheisessa kuvassa (kuva 2.3) esittää rajapinnan operaatiot. cd Harj1 required externals «interface» ItemManager + add(item :Item) : void + find(identifier :String, label :String) : Collection + remove(identifier :String, label :String) : void + show() : Collection + change(identifier :String, label :String, newitem :Item) : void Kuva 2.3ItemManager-rajapinta ItemManager:in toteutukselta odotetaan tietynlaista toiminnallisuutta ja vastetta, kun rajapinnan operaatioita harjoitetaan. Seuraava kuva esittää tilanteen (ja myös järjestelmän oletetun vasteen), kun järjestelmällä ei ole yhtään tietoa tallennettuna (kuva 2.4). Muiden toimintojen virheenkäsittely on yksinkertaista ja suoraviivaista, mutta 'Adding to Empty Failed' tilassa reagointi on tilan säästämiseksi kuvattu huomaute-laatikkoon kirjoitetulla pseudokoodilla. Tila itse päättelee virheen syyn ja raportoi siitä päättelyn mukaisesti. sm ItemManager Behaviour when Empty Initial Change Empty read XML [items.count == 0] /create XML IF item.id == BAD, throw InvalidIdentifierException IF item.quantity < 0, throw InvalidCountException IF item.borrowed!= 0, throw InvalidCountException IF item == INVALID, throw InvalidItemException OTHERWISE throw FunctionAddException Change( id, label, item ) /throw ItemUnknownException Adding to Empty Failed Show Empty Show [Add == FAIL] coll := {} Idle Empty Add( item ) Add Empty /throw ItemUnknownException Remove Empty Remove( id, label ) Find( item ) coll := {} Find Empty [Add == OK] Idle Items [Remove == OK AND items.count == 0] Removing Kuva 2.4Tyhjän varaston käyttäytyminen Kun oletustiedostoa ei ole olemassa, tulee järjestelmän luoda automaattisesti tyhjä tietorakenne, jota pystytään hyödyntämään (aluksi vain lisäys on järkevä toimenpide). Kun ensimmäinen alkio on onnistuneesti lisätty siirtyy järjestelmä, siirtyy järjestelmä normaaliin tila-avaruuteen (kuva 2.5). Huomaa, että kuvan 2.5 tila-avaruuteen päästään sekä kuvan 2.4 tila-avaruudesta että käynnistyksen
4 XML Ohjelmistokehityksessä /12 sm ItemManager Behaviour IF foundcollection.count > 1, throw ItemsTooManyException IF foundcollection.count == 0, throw ItemUnknownException IF item.borrowed > 0, throw ItemBorrowedException OTHERWISE throw FunctionRemoveException Showing Error [Show == FAIL] Removing Error /throw FunctionShowException Showing [Remove == FAIL] Initial [Show == OK] /coll := Show Removing read XML [items.count > 0] Show Remove( id, label ) [Remove == OK AND items.count > 0] Add Empty [Add == OK] Idle Items [Find == FAIL] /throw FunctionFindException Find( id, label ) Finding Add( item ) [Add == OK] [Find == OK] /coll := Find Adding Error Adding [Add == FAIL] Change( id, label, newitem ) [Change == OK] Changing IF item.id == RESERVED, throw ReservedIdentifierException IF item.id == BAD, throw InvalidIdentifierException IF item.quantity < 0, throw InvalidCountException IF item.borrowed!= 0, throw InvalidCountException IF item == INVALID, throw InvalidItemException OTHERWISE throw FunctionAddException [Change == FAIL] Changing Error IF foundcollection.count > 1, throw ItemsTooManyException IF foundcollection.count == 0, throw ItemUnknownException IF olditem.borrowed > newitem.quantity, throw ItemBorrowedException OTHERWISE throw FunctionChangeException Kuva 2.5Normaalin varaston käyttäytyminen kautta. Huomattavaa on myös se, että tilakaaviot kuvaavat vain ulkoisesti havaittua toimintaa eivätkä ne ota sinällään kantaa sisäiseen toteutukseen. Ainoastaan jokaisen onnistuneen muutosoperaation (add, remove, change) jälkeen xml-tieto tulee tallentaa tiedostoon Vaatimukset 1000 Nimikepalvelu (ItemManager) Nimikepalvelu hallinnoi varastossa olevia tuotteita Lisää operaatio (add) lisää yhden nimikkeen varastoon Poista operaatio (remove) poistaa yhden nimikkeen varastosta Muuta operaatio (change) muuttaa annetun nimikkeen tietoja Etsi operaatio (find) etsii yhden tai useamman nimikkeen Näytä nimikkeet operaatio (show) laistaa kaikki nimikkeet 1100 Lisää operaatio (add) Operaatiolla lisätään yksi nimike varastoon item: Varastoon lisättävän uudent tuotteen tiedot. Item item Varastoon ei voida lisätä nimikettä, jolla on sama tunniste kuin jo varastossa olevalla nimikkeellä (ReservedIdentifierException). Varastoon ei voida lisätä tyhjää tai muuten viallista nimikettä (InvalidItemException). Tunnisteen pitää olla oikean muotoinen (InvalidIdentifierException). Nimikkeen lukumäärä voi olla 0 tai positiivinen lukumäärä (lkm < 0; InvalidCountException). Lisättäessä nimikkeen lainausmäärä nollataan (eli ei yhtään lainassa). Muutoin huomaustus (InvalidCountException). Jos lisää-toiminto jostain muusta syystä toimii virheellisesti, asiasta huomautetaan (FunctionAddException). Onnistuneen lisäyksen jälkeen tulee muuttunut tietovarasto tallentaa Toteutusehdotus: DOM ratkaisu 1100 Poista operaatio (remove)
5 XML Ohjelmistokehityksessä /12 Operaatio poistaa annetun nimikkeen varastosta. String identifier String label identifier: Poistettavan tuotteen tunniste label: Poistettavan tuotteen nimi Poistettavasta nimikkeestä annetaan tunnistukseen nimi (label) ja/tai tunniste (identifier). Nimi ja tunniste voidaan kuvata myös villimerkkejä.* (mikä tahansa merkkijono) tai. (mikä tahansa yksi merkki) (java.util.regex) Poisto ei onnistu, jos nimikettä ei löydy (ItemUnknowException) Poisto ei onnistu, jos nimikkeitä löytyy useampi kuin yksi (ItemsTooManyException) Poisto ei onnistu, jos nimike on lainassa (ItemLoanedException) Jos poista-toiminto jostain syystä toimii virheellisesti, asiasta huomautetaan (FunctionRemoveException) Onnistuneen poiston jälkeen tulee muuttunut tietovarasto tallentaa Toteutusehdotus: DOM ratkaisu 1200 Muuta operaatio (change) Operaatio korvaa vanhan tuotteen tiedot uuden tuotteen tiedoilla. String identifier String label Item newitem identifier: Muutettavan tuotteen tunniste label: Muutettavan tuotteen nimi newitem: Tuotteen uudet tiedot. Tyhjä kenttä tarkoittaa, että tieto on kopioitava vanhasta. Vanha tuote tunnistetaan samoilla säännöillä kuin poistossakin. Muutettaessa kaikki vanhan (löydetyn) nimikkeen tiedot, paitsi tunniste, korvautuvat uuden nimikkeen annetuilla tiedoilla. Vain ne tiedot, jotka on uudessa nimikkeessä annettu korvaantuvat. Tieto, jota ei muuteta jätetään tyhjäksi (merkkijono) tai negatiiviseksi (numero). Lainaustietoa (borrowed) ei saa muuttaa. Lukumäärää saa muuttaa, mutta lukumäärän pitää olla vähintään lainattujen nimikkeiden määrä. (InvalidCountException). Jos vanhan nimikkeen tiedoilla löytyy useampi kuin yksi vanha nimike, ei muokkausta toteuteta (ItemsTooManyException). Jos vanhaa nimikettä ei löydy ollenkaan, ei muokkausta voida suorittaa (ItemUnknownException). Tunnisteen pitää olla oikean muotoinen (InvalidIdentifierException). Jos muokkaa-toiminto jostain syystä toimii virheellisesti, asiasta huomautetaan (FunctionChangeException). Toteutusehdotus: DOM ratkaisu 1300 Etsi operaatio (find) Etsi-toiminnossa haetaan annettua nimikettä. String identifier String label identifier: Etsittävän tuotteen tunniste label: Etsittävän tuotteen nimi Nimikettä haetaan samojen sääntöjen pohjalta kuin poista-toiminnossa. Paluutietona palautetaan nimikkejoukko (Collection), jossa on nolla tai useampi nimike. Jos jostain muusta syystä etsi-toiminto toimii virheellisesti, huomautetaan asiasta (FunctionFindException).
6 XML Ohjelmistokehityksessä /12 Toteutusehdotus: XPath ratkaisu on se mitä tavoitellaan, mutta paremman puutteessa java.util.regex:n käyttö sallitaan. XPath vaatii vähemmän koodaamista, mutta hakulauseen kirjoitus on hankalampi, RegEx-luokan käyttö vaatii huomattavasti enemmän koodaamista eikä hakulause ole paljoa sen helpompi kuin XPath-lausekkaan Näytä operaatio (show) Näytä-toiminto palauttaa nimikejoukon kaikista varastossa olevista nimikkeistä. Paluutietona palautetaan nimikkejoukko (Collection), jossa on nolla tai useampi nimike. Jos toiminto jostain syystä epäonnistuu, niin asiasta huomautetaan (FunctionShowException). Toteutusehdotus: SAX ratkaisu 2.3 Lainauspalvelu Yleistä Lainauspalvelu (LoanManager) tarjotaa mekanismin nimikkeiden lainaamisen hallintaan. Oheinen kuva (kuva 2.6) esittää LoanManager-rajapinnan operaatioden kuvaukset. cd Harj1 required externals «interface» LoanManager + borrowitem(borrower :String, itemid :String) : void + returnitem(borrower :String, itemid :String) : void + findloan(borrower :String, itemid :String) : Collection + showloans() : Collection Kuva 2.6 LoanManager-rajapinta LoanManager-rajapinnan toteutuksen tulee kyetä luomaan nimikkeen lainaus sekä suorittamaan nimikkeen palautus. Tämän lisäksi lainauksen hallinnalla voidaan etsiä lainoja ja näyttää kaikki lainat. Oheinen kuva (kuva 2.7) esittää käyttäytymistä, kun lainoja ei ole vielä yhtään tehty. Oheinen kaavio olettaa, että lainoja ei ole alussa yhtään. Kaaviossa ei oteta suoranaisesti kantaa siihen, onko yhtään nimikettä lainattavaksi. Tällöin vain ilmoitetaan, ettei lainattavaa nimikettä löytynyt. Kun nimikkeitä ilmestyy lainattavaksi voidaan kaaviosta siirtyä normaaliin tilakaavioon. Normaalista tilakaaviosta voidaan palata tyhjien lainojen kaavioon silloin, kun viimeinen laina on poistettu järjestelmästä.
7 XML Ohjelmistokehityksessä /12 sm LoanManager Behaviour when no loans Initial read XML [loans.count == 0] /create XML No Loans Borrow( name, id ) Borrowing the first [Borrow == OK] Idle Loans [Borrow == FAIL] Borrow Error IF items.find( id ) == NO_FOUND, throw ItemUnknownException OTHERWISE throw FunctionBorrowException [ReturnLoan == OK AND loans.count == 0] Returning Loan Kuva 2.7 Käyttäytyminen, kun ei ole vielä yhtään lainaa tehty sm LoanManager Behaviour Initial [FindLoan == FAIL] /throw FunctionFindLoanException Finding loans read XML [loans.count > 0] FindLoan( name, id ) Borrowing the first Borrowing Error [Borrow == OK] Borrow( name, id ) Idle Loans [FindLoan == OK] /coll := FindLoan Show [Show == OK] /coll := Show Showing Loans [ShowLoan == FAIL] /throw FunctionShowLoanException ReturnLoan( name, id ) [Borrow == FAIL] [Borrow == OK] Borrowing [ReturnLoan == OK AND loans.count > 0] IF find( id ) == NO_FOUND, throw ItemUnknownException IF founditem.quantity == founditem.borrowed, throw TooManyLoansException IF loans.find( name AND id ) > 0, throw DublicateLoanException OTHERWISE throw FunctionBorrowException Returning Error Returning Loan IF find( id ) == NO_FOUND, throw ItemUnknownException IF founditem.quantity == founditem.borrowed, throw TooManyLoansException IF founditem.borrowed == 0, throw LoanUnknownException IF loans.find( name AND id ) == 0, throw LoanUnknownException OTHERWISE throw FunctionReturnLoanException Kuva 2.8Käyttäytyminen, kun lainoja on tehty Oheinen kuva (kuva 2.8) esittää lainojen hallinnan käyttäytymisen, kun vähintään yksi lainaus on tehty Vaatimukset 2000 Lainauspalvelu-rajapinta (LoanManager) Lainauspalvelu ylläpitää lainaustietoja Lainaa nimike (borrowitem) Palauta laina (returnloan) Etsi laina (findloan) Näytä lainat (showloans)
8 XML Ohjelmistokehityksessä / Lainaa nimike (borrowitem) Lainaa-toiminnolla lainataan nimike (Item) jollekin henkilölle. String borrower String label borrower: Lainaajan nimi label: Lainattavan tuotteen tunniste Lainauksesta kirjataan vapaamuotoinen lainaajan nimi ja nimikkeen tunniste (identifier). Lainauksen voi suorittaa tuotteelle, joka on olemassa (ItemUnknownException, jos ei olemassa). Lainauksen voi suorittaa tuotteelle, jota ei ole lainattu varastossa olevaa määrää (TooManyLoansException, jos liian monta lainaa). Yksi lainaaja ei voi lainata samaa nimikettä useaan kertaan (DublicateLoanException, jos lainaaja on lainannut nimikkeen). Lainatessa nimikkeestä tulee antaa kokonaiset tiedot (ei villimerkkejä) Jos tulee joku muu virhe, niin siitä tulee ilmoittaa (FunctionBorrowException) Palauta laina (returnloan) Palauta-toiminnolla voidaan palauttaa laina. String borrower String label borrower: Lainaajan nimi label: Lainattavan tuotteen tunniste Annetulla lainaajan nimellä ja tuotetunnisteella löytyvä lainaus voidaan palauttaa, jos vain yksi lainaus annetuilla tiedoilla löytyy (ItemsTooManyException, jos liian monta lainausta löytyy). Villimerkkien käyttö samanlainen nimikehallinnnan poista-toiminnossa Palautusta ei voida suorittaa, jos nimike ei ole olemassa (ItemUnknownException) Palautusta ei voida suorittaa, jos nimike ei ole lainattu (LoanUnknownException). Jos tulee joku muu virhe, niin siitä tulee ilmoittaa (FunctionReturnException) Etsi laina (findloan) Etsi-toiminnolla haetaan tietyn nimikkeen tunnisteen tai nimikkeen lainaajan perusteella. String identifier String label identifier: Etsittävän tuotteen tunniste label: Etsittävän tuotteen nimi Palauttaa joukon, jossa on nolla tai useampi lainatieto. Villimerkkien käyttö samanlainen nimikehallinnnan poista-toiminnossa Jos tulee joku virhe, niin siitä tulee ilmoittaa (FunctionFindLoanException) Näytä lainat (showloans) Näytä-toiminnolla haetaan kaikki lainat. Palauttaa joukon, jossa on nolla tai useampi lainatieto. Jos tulee joku virhe, niin siitä tulee ilmoittaa (FunctionFindLoanException).
9 XML Ohjelmistokehityksessä / Tarkastus 3000 Tarkastuksen apuvälineet (InspectorsView ja ExcerciseEngine) cd Harj1 required externals «interface» InspectorsView + getdocument() : Document + setdocument(document :Document) : void + setfile(filename :String) : void + getfile() : String InspectorsView-rajapinta tarjoaa tarkastukselle näkymän sisäisestä maailmasta Aksessorit sisäiselle DOM-puulle (getdocument, setdocument) getdocument palauttaa nykyisen DOM-dokumentin setdocument asettaa uuden DOM-dokumentin Aksessorit xml-tiedostolle (getfilename, setfilename) getfilename palautta merkkijonona (String) voimassa olevan xml-tiedoston, johon tietoja tallennetaan setfilename asettaa merkkijonona (String) xml-tiedoston, johon tietoja tullaan jatkossa tallentamaan Asetettaessa tiedoston nimeä, sen sisältö tulee lukea saman tien saataville (eli sekvenssi iv.setfilename( file.xml ); doc = iv.getdocument(); tulee palauttaa file.xml:ää vastaava DOM-dokumentti ExcerciseEngine-luokka tarjoaa tehtaan erilaisiin palvelurajapintoihin tarkastusta varten cd Inspection tools xmlohj::exerciseengine + getitemmanager() : ItemManager + getloanmanager() : LoanManager + getinspectorsview() : InspectorsView ExerciseEngine1 + getitemmanager() : ItemManager + getloanmanager() : LoanManager + getinspectorsview() : InspectorsView Opiskelija laajentaa ExcerciseEngine-luokasta luokan ExcerciseEngine1, joka palauttaa vaaditut rajapinnat opiskelijan haluamasta luokasta (luokista) getitemmanager-operaatio palauttaa ItemManager-rajapinnan toteutuksen getloanmanager -operaatio palauttaa LoanManager-rajapinnan toteutuksen getinspectorsview-operaatio palauttaa InspectorsView-rajapinnan toteutuksen 2.5 Tietorakenteet 3500 Tietotyypit (Item, ItemType ja Loan) Tietotyypit kuvaavat ongelma-alueen tietorakenteita
10 XML Ohjelmistokehityksessä /12 cd Data Types xmlohj Item - myidentifier: String - mylabel: String - mytype: ItemType = ItemType.NONE - mylocation: String - myquantity: int = 0 - myborrowedcount: int = 0 + «create» Item() + «create» Item(identifier :String, label :String, type :ItemType, location :String) + getitem() : Item + setitem(item :Item) : void + isequal(item :Item) : boolean + isequalid(item :Item) : boolean Accessor methods for attributes are not shown i.e. getsomething and setsomething methods «enumeration» ItemType + NONE: int = 0 + MC: int = 1 + LP: int = 2 + CD: int = 3 + DVD: int = 4 - myborrower: String - myitemid: String Loan + «property get» getborrower() : String + «property get» getitemid() : String + «property set» setborrower(newval :String) : void + «property set» setitemid(newval :String) : void (from Harjoitukset) Opiskelija voi laajentaa ongelma-alueen tietorakenteita perinnän avulla, mutta perustoiminnallisuuteen ei sovi kajota Item kuvaa nimikkeen tietoja ItenType on lueteltutyyppi (enumeraatio) erilaisista nimikkeistä Loan kuvaa lainan 2.6 Tietovaatimukset 4000 Tietovaatimukset 4001 Nimiketiedot ja lainatiedot tallennetaan yhteen XML-tiedostoon XML-tiedoston esimerkki <?xml version= 1.0?> <warehouse> <storage> <item id= 123-ABZ-3 > <label>jukka Kukka</label> <type>cd</type> <location>tarja s room</location> <quantity>50</quantity> <borrowed>1</borrowed> </item> <item id= 042-QQQ-3 > <label>eino Vihree</label> <type>lp</type> <location>mika s room</location> <quantity>50</quantity> <borrowed>0</borrowed> </item> </storage> <loans> <loan> <borrower>john Doe</borrower> <itemid>123-abz-3</itemid> <loan> </loans> </warehouse> XML-tiedon muodon kuvaus XML Schema-tiedostolla (warehouse.xsd) XML-tiedon muodon oikeellisuuden tarkistaminen (validointi) XML-Schema tiedoston avulla Tuotteen (Item) tunnisteen (identifier) muoto:
11 XML Ohjelmistokehityksessä /12 identifier := manufacturer itemtype index manufacturer := 3 {number} 3 // numeroita tasan kolme itemtype := 1 {alpha} 3 // kirjaimia yhdestä kolmeen index := alpha number // yksi kirjain tai numero number := [0-9] alpha := [A-Z] Lainaajan nimi on merkkijono, joka on muodoltaan vapaamuotoinen Lainaajan nimi on ainakin yksi merkki. Ylärajaa ei sinällään ole, mutta vähintään 32 merkkiä pitkä nimi tulee mahtua siihen. Lainaaja ei tarvitse tunnistusta Tyhjä kenttä Item-luokassa tarkoittaa sitä, että merkkijono on tyhjä, kokonaisluku on -1 ja tyyppi on NONE. 2.7 Muita asioita 5000 Toteutus 5001 Toteutuksessa pitää käyttää Java JDK:n ja JWSDP:n tarjoamia kirjastoja Toteutuksessa saa käyttää ulkopuolisia kirjastoja Operaatiot kommentoitava: operaation tarkoitus, parametrien tarkoitus, mahdolliset poikkeukset yms Tuotteenhallinta 8001 Harjoitus tulee rakentaa hakemistoihin seuraavalla tavalla: / opiskelijanumero build.xml päätason käännösohjaustiedosto Harjoitus1/ ensimmäisen harjoituksen hakemisto build.xml harjoituksen käännösrakentaja proj.properties configure.html/.txt projektikohtaiset ominaisuudet dokumentti, joka kertoo mitä ominaisuuksia pitää määritellä, jotta käännös ja ajo onnistuisivat src/ xmlohj/ build/ Inspector/ src/ common/ junit.jar munomajokukirjasto.jar Ulkopuoliset kirjastot pitää toimittaa palautuspaketin mukana Päätason käännösohjaustiedoston (build.xml) pitää sisältää tehtävät: 1) HARJ1 käännä ja aseta ohjelma ajokuntoon 2) AJA1 suorita harjoituksen 1 Inspector-ohjelma 3) PALAUTUS tuottaa palautuspaketin Harjoitustason käännösohjaustiedosto tulee sisältää vähintään seuraavat tehtävät: 1) build oletustehtävä, joka kääntää ja valmistelee ohjelman ajoa varten 2) run_text ajaa Inspector:in tekstitilassa 3) run_graf ajaa Inspector:in graafisena 4) clean poistetaan käännöksen aikaiset tiedostot
12 XML Ohjelmistokehityksessä /12 Konfiguraatiodokumentti, jossa kerrotaan mitä ominaisuuksia pitäisi löytyä xmlohj.properties tiedostosta sekä mitä oletetaan CLASSPATH:in ja PATH:in sisällöstä. 2.8 Palautus 9000 Palautus 9001 Palautuspaketti sisältää koko harjoitustyöhakemistopuun Palautuspaketti on jar-paketti Palautuspaketin nimi on muotoa: xmlohj_opikelijanumero_etunimisukunimi.jar
XML Ohjelmistokehityksessä
XML Ohjelmistokehityksessä 8105200 1/7 1 Yleistä XML Ohjelmistokehityksessä 1.1 Tavoitteet Harjoitustöiden tarkoituksena on tutustuttaa harjoitustyön tekijä XML:n käsittelyn perustekniikoihin ja rajapintoihin.
LisätiedotHarjoitus 2: Vaatimukset
XML Ohjelmistokehityksessä 8105200 1/9 1 Yleistä 1.1 Tavoitteet Harjoitus 2: Vaatimukset Harjoitustyön toisen vaiheen tarkoituksena on toteuttaa ensimmäisen vaiheen tietovaraston päälle verkkopalvelu,
LisätiedotHarjoitus 3: Vaatimukset
XML Ohjelmistokehityksessä 8105200 1/5 1 Yleistä 1.1 Tavoitteet Harjoitus 3: Vaatimukset Tämän harjoituksen tavoitteena on luoda liityntä asiakkassovelluksesta palvelimeen. Tämän lisäksi on tarkoitus tutustua
LisätiedotFormaalit menetelmät: Kirjaston formalisointi Z-kuvauskielellä
Formaalit menetelmät: Kirjaston formalisointi Z-kuvauskielellä 7.5.2002 Annemari Auvinen Anu Niemi Sisällysluettelo 1 Perustana olevat käyttötapaukset... 1 1.1 Käyttäjäryhmät... 1 1.2 Järjestelmään sisäänkirjautuminen...
LisätiedotHarjoitus 1: Vaatimukset
Web-palveluiden toteutustekniikat OHJ-5201 1/9 1 Yleistä 1.1 Tavoitteet Harjoitus 1: Vaatimukset Ensimmäisen harjoitustyön tarkoituksena on toteuttaa tietopalvelu web-sovellukselle käyttäen XML:n käsittelyn
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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotKääreluokat (oppikirjan luku 9.4) (Wrapper-classes)
Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi
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ä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ä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ätiedotHarjoitus 6 (viikko 42)
Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien
LisätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
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ätiedotHarjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.
Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien
LisätiedotPino S on abstrakti tietotyyppi, jolla on ainakin perusmetodit:
Pino (stack) Pino: viimeisenä sisään, ensimmäisenä ulos (LIFO, Last In, First Out) -tietorakenne kaksi perusoperaatiota: alkion lisäys pinon päälle (push), ja päällimmäisen alkion poisto (pop) Push(alkio)
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ä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ätiedotHarjoitus 2 (viikko 45)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotAdobe Digital Editions -ohjeet
Adobe Digital Editions -ohjeet Adobe Digital Editions on Adoben e-kirjojen lukemiseen tarkoitettu kevyt erillinen lukuohjelma, joka on ollut käytössä Adobe Reader -ohjelman 8-versiosta alkaen. Ohjelman
LisätiedotKieliversiointityökalu Java-ohjelmistoon. Ohje
Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5
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ätiedotTIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
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ä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ätiedotWebforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys: 2014-12-6
Webforum Version 14.4 uudet ominaisuudet Viimeisin päivitys: 2014-12-6 Sisältö Tietoja tästä dokumentista... 3 Yleistä... 4 Yleistä & hallinnointi... 5 Dokumentit... 5 Perättäinen tarkistus- ja hyväksymisprosessi...
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
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ä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ä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ä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ä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ätiedotList-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen
1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan
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ätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
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ätiedotEclipse ja JUnit-ohjelmoijatestit
Eclipse ja JUnit-ohjelmoijatestit Tarkoitus on tutustua Eclipsen käyttöön vähän lähemmin ja varsinkin JUnit-ohjelmoijatesteihin (ohjelmoijatesti on vanhalta nimeltä yksikkötesti). Ohjelmoijatestit ovat
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ätiedotHarjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotBlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä
Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin
LisätiedotVH5, JOTU, MagicDraw:n käyttö
VH5, JOTU, MagicDraw:n käyttö 1. Käynnistä MagicDraw (versio 18.2) 2. Valitse Manage Projects-kohdasta Create New Project toiminto. Oletusarvona on UML Project, saa olla. Täytä nimi (Name) ja tallennuspaikka
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ätiedot12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotOhjelmointi 1 Taulukot ja merkkijonot
Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko
LisätiedotToinen harjoitustyö. ASCII-grafiikkaa 2017
Toinen harjoitustyö ASCII-grafiikkaa 2017 Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt17-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin
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ätiedotKirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina
Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden
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ätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa
LisätiedotAlgebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...
LisätiedotMagicDraw-pikaohje (VH5)
MagicDraw-pikaohje (VH5) Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Linux-työasemaluokka: käynnistä MagicDraw jollakin
LisätiedotTietorakenteet, laskuharjoitus 3, ratkaisuja
Tietorakenteet, laskuharjoitus 3, ratkaisuja 1. (a) Toistolauseen runko-osassa tehdään yksi laskuoperaatio, runko on siis vakioaikainen. Jos syöte on n, suoritetaan runko n kertaa, eli aikavaativuus kokonaisuudessaan
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ätiedotDigi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,
LisätiedotSettings-sivun kautta on mahdollista muokata Kirjastokarttapalveluun liittyviä kirjastokohtaisia asetuksia.
Settings - Asetukset Settings - Asetukset 1. 2. 3. 4. 5. Karttojen piirtoväri ja piirtovärin läpinäkyvyys Filtterit a. Filtterin lisääminen b. Filtterin poistaminen Uudelleenohjaukset Filtteri vai uudelleenohjaus?
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotCSV - XML ohjelman käyttöohje
CSV - XML ohjelman käyttöohje Käynnistä ohjelma CSC_Virta_Julkaisut_ToXMLConverter.exe CSV-XML muunnos tapahtuu etenemällä ohjelmassa järjestyksessä 1. -> 6. ylhäältä oikealle: Perustoimintoja voi suorittaa
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotOhjelmointi 2 / 2010 Välikoe / 26.3
Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään
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ätiedotMaksuturva-palvelun rajapintakuvaus verkkokaupalle / MAKSUN PERUUTUS
Maksuturva-palvelun rajapintakuvaus verkkokaupalle / MAKSUN PERUUTUS Versio 4.0 2(5) Sisältö 1. Muutokset... 3 2. Maksun peruutuksen tiedot... 3 2.1 Kenttien selitteet Maksun peruutuksen tiedot... 4 3.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotEsimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit
Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.
LisätiedotSe mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
LisätiedotPedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola
Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola 26.8.2016 SISÄLLYSLUETTELO 1. Omat asetukset kuntoon (kaikkien tehtävä aluksi) sivut 3-5 2. Tärkeiden sivujen tilaaminen omiin linkkeihin sivut
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ätiedotCODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0
CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotTestausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Testausraportti Orava Helsinki 5.5.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Juhani Bergström Peter
LisätiedotOhjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
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ätiedotVarmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke
Versio 1.0 Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke Varmennepalvelu Rajapintakuvaus 2 (13) Versiohistoria Versio Päivämäärä Kuvaus 1.0 Dokumentti julkaistu. Varmennepalvelu
LisätiedotSOLIDPDM 6 Plus uudet ominaisuudet osa 2
SolidPDM 6 Plus 1 (8) SOLIDPDM 6 Plus uudet ominaisuudet osa 2 SolidPDM 6 Plus -versioon on lisätty uusia ominaisuuksia. Tämä dokumentti on jatkoa aiemmin ilmestyneelle SolidPDM uudet ominaisuudet julkaisulle,
LisätiedotOhje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant
AgilElephant Tekijä: Petri Kalsi Omistaja: ElectricSeven Dokumentti:.doc Päiväys: 15.03.2005 Aihe: Sivu 1 of 6 Dokumenttihistoria Muutoshistoria Revision Revision Yhteenveto muutoksista Revision tekijä
LisätiedotXML tehtävien työnkulku
XML tehtävien työnkulku -- TMC työskentelyohjeet LYHYT VERSIO XML harjoitusten toimintaohjeet (lyhyt versio) (XMLStarlet ohjeet löytyvät pitkästä versiosta) ELEC-C1220 - Automaatio 2 Sisältö LYHYT VERSIO
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")
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ätiedotHohde Consulting 2004
Luento 5: XQuery AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XQuery XQuery uudet funktiot sekvenssit muuttujat Iterointi järjestys suodatus järjestäminen Ehtorakenteet Muita toimintoja www.hohde.com
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotAVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta
AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja
LisätiedotLuento 2: Tiedostot ja tiedon varastointi
HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...
Lisätiedot2. Olio-ohjelmoinista lyhyesti 2.1
2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin
Lisätiedot8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)
LisätiedotViestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki
Viestit-palvelun viranomaisliittymän ohjelmointiohje Java-esimerkki V.01 OHJELMOINTIOHJE V 0.1 2 (8) DOKUMENTINHALLINTA Omistaja Laatinut Lasse Pynnönen, VRK Valtori/VIA Tarkastanut Hyväksynyt VERSION
LisätiedotHarjoitus 2: Vaatimukset
Harjoitus 2: Vaatimukset 1 Yleistä 1.1 Tavoitteet Toisen harjoitustyön tarkoituksena on toteuttaa yksinkertainen ajettava BPEL-prosessi. Prosessi mallinnetaan käyttäen BPMN-notaatiota, josta generoidaan
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Merkintöjen tulkintoja *++Pstack->top = item *Pstack->top++ = item (*Pstack->top)++ *(Pstack++)->top = item *(++Pstack)->top = item Lisää pinon toteutuksia Dynaaminen taulukko
LisätiedotHarjoitus 6 (viikko 42)
Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 4 % (2 pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien
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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat
LisätiedotPALAUTUKSEN PERUSTOIMINNALLISUUDEN KUVAUS
PALAUTUKSEN PERUSTOIMINNALLISUUDEN KUVAUS Palautuksen tekemiseen liittyvät seuraavat vaiheet: Sovi asiakkaan kanssa tuotteen palautuksesta haluamallasi tavalla Varmista, että asiakkaan sähköpostiosoite
Lisätiedot