Qt-käyttöliittymäkirjasto
|
|
- Tauno Ranta
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Qt-käyttöliittymäkirjasto Matti Lehtinen Tiivistelmä Tässä raportissa tarkastellaan Qt-käyttöliittymäkirjastoa ja sen käyttöä C++-kielellä. Raportissa tarkastellaan ensiksi Qt:n ominaisuuksia, mukana tulevia kirjastoja ja työkaluja, sekä kääntämistä. Qt:n käyttöä tarkastellaan Qt:n tapahtumienkäsittelymekanismin kautta pienen esimerkkikoodin avulla. 1 Johdanto Graasten sovellusten tekeminen useammille käyttöjärjestelmille on usein vaikeaa, sillä kielestä riippuen pahimmassa tapauksessa sovelluksen lähdekoodi joudutaan osittain kirjoittamaan uudestaan vastaamaan kohdekäyttöjärjestelmien rajapintoja. Toinen helpompi ratkaisu on käyttää kieliä, joita voidaan emuloida tai ajaa prosessikohtaisessa virtuaalikoneessa. Tällöin kuitenkin joudutaan hieman luopumaan suoritustehosta ja lisäksi käyttöjärjestelmään yleensä joudutaan asentamaan tarvittavat virtuaalikoneet, emulaattorit tai muut sovellukseen ajoon tarvittavat työkalut. Trolltech yritys tuo oman ratkaisun cross-platform-sovellusten kehittämisongelmaan Qt-käyttöliittymäkirjaston muodossa. Qt:lla voi helposti tehdä tehokkaita natiiveja sovelluksia useammille käyttöjärjestelmille kirjoittamalla vain yhden yhteisen lähdekoodin [1]. Sovellusten kirjoittaminen on helppoa intuitiivisen ja monipuolisen rajapinnan avulla. Lisäksi Qt:n yksinkertainen signal-slot-mekanismi tekee tapahtumienkäsittelyn turvalliseksi ja helpoksi. 2 Qt yleisesti Qt on norjalaisen Trolltech-yrityksen kehittämä useammalla käyttöjärjestelmällä toimiva graanen käyttöliittymäkirjasto. Qt kehitettiin alunperin 1
2 C++-kielelle, mutta myöhemmin Trolltech on tarjonnut sitä Java-kielelle oman Qt Jambi-kirjaston myötä. Qt:sta on myös tullut epävirallisia paketteja muille kielille, johin kuuluvat mm. Python, Ruby, PHP, Pascal, C#, Perl ja Ada [2]. Qt tukee tällä hetkellä Mac, Linux ja Windows käyttöjärjestelmiä sekä niiden eri versioita [1]. Qt:n lisenssejä on tällä hetkellä olemassa neljä erilaista [3]. Ensimmäisenä on kaupallinen lisenssi, jolla mahdollistetaan kaupallisten sovellusten kehittäminen. Kaupallinen lisenssi tarjoaa lisäksi täyden tuen Trolltech:lta, sekä mahdollisuuden käyttää joitain kaupalliseen käyttöön tarkoitettuja komponentteja. Seuraavaksi tulevat opetukseen ja akateemiseen tutkimukseen tarkoitetut lisenssit. Kummallakaan lisenssillä ei saa kehittää kaupallisia sovelluksia, mutta akateeminen lisenssi sisältää muuten samoja etuja kuin kaupallinen lisenssi. Opetukseen tarkoitettu lisenssi on kouluille, yliopistoille, yms. ilmainen, kun taas akateeminen lisenssi on maksullinen, mutta sen saa hankittua alennettuun hintaan. Viimeisenä on avoimen lähdekoodin lisenssi, jolla voi tehdä GPL:n mukaisia sovelluksia. Trolltech myy kauppallisen lisenssin alla eri versioita [4], joiden käyttötarkoitus määrittelee mukana tulevat kirjastomoduulit. Versioita on kolme, joista moduulien lukumäärässä katsottuna suppein on Qt Console. Consoleversio on tarkoitettu palvelinsovelluksiin, joissa graasta käyttöliittymää ei tarvita, mutta tietoliikenne- ja tietokantamoduulit ovat tärkeitä. Seuraavana tulee Qt Desktop Light, joka käytännössä mahdollistaa vain graasien sovelluksien tekemisen ilman erikoisuuksia. Viimeisenä tulee Qt Desktop, joka pitää sisällään kaikki mahdolliset kirjastomoduulit. Avoimen lähdekoodin lisenssin alla ladattava Qt-paketti sisältää kaikki kirjastomoduulit, joten sillä voi tehdä monipuolisia avoimia sovelluksia. 3 Työkalut Qt:n mukana tulee työkaluja, joilla voidaan sovellusten tekeminen tehdä helpommaksi. Merkittävin yksittäinen työkalu on käyttöliittymän rakentamiseen tarkoitettu Qt Designer, jolla voi Delphin tai Visual Studion tyylisesti kasata käyttöliittymän erilaisista komponenteista [5]. Designerissa ei voi suoraan muokata koodia, mutta se mahdollistaa signaalien yhdistämisen komponenttien välille sekä Delphin tyylisten action-olioitten luomisen. Hyödyllisenä ominaisuutena Designerissa voi myös lisätä ns. layoutteja, jotka käytännössä hoitavat automaattisesti komponenttien sijoittelun työalueen koon muuttuessa. Designerista on olemassa ilmainen lisäosa Eclipseen, sekä kaupallisessa versiossa lisäosa Microsoft Visual Studioon. Kielien käännöksien helpottamiseksi Qt tarjoaa Linquist-sovelluksen, jol- 2
3 la voidaan helposti tehdä käännöstiedostoja koskematta itse lähdekoodiin [6]. Linquist analysoi ensin lähdekoodin ja poimii sieltä kaikki merkkijonot, joita tullaan kääntämään. Tämän jälkeen käyttäjä pääsee helposti tekemään kyseisistä merkkijonoista käännökset tarvittaville kielille. Käännetyt merkkijonot lisätään lopuksi takaisin sovelluksen yhteyteen käännösvaiheessa. Qt sisältää lisäksi monia muita pieniä työkaluja lähdekoodien kanssa. Näistä sovelluksista käytännöllisin on dokumentaation selaamiseen tarkoitettu Assistant [7]. Assistant sisältää web-selaimen sekä help-tiedostojen selaamiseen tarkoitetun sovelluksen merkittävimpiä ominaisuuksia. 4 Kääntäminen Qt-sovelluksen lähdekoodit voi kääntää binääritiedostoksi millä tahansa kääntäjällä ja linkittäjällä, kunhan ne tukevat C++:aa ja käytettävää käyttöjärjestelmää. Käännöksessä tarvittavien kuvaustiedostojen (makele) tekemiseen on Qt:ssa tarjolla qmake-sovellus [8], joka osaa yhden projektitiedoston perusteella määrätä tarvittavat kääntäjien parametrit, kirjastojen polut ja muut attribuutit käännettävän ympäristön mukaisesti. Qmake on yleensä ainut sovellus, joka täytyy ajaa kääntäjien lisäksi, sillä qmake osaa tarvittaessa kutsua käyttöliittymätiedostojen kääntäjää uic:ia (User Interface Compiler) tai metatietojen kääntäjää moc:ia (Meta Object Compiler). Metatietojen kääntäjä (moc) [9] on oleellinen osa Qt-sovelluksen tekemistä, sillä moc:lla generoidaan väliaikainen kääntäjälle kelpaava C++ koodi. Normaalisti Qt-sovelluksen C++-koodi sisältää erilaisia makroja ja funtiota, joita koodaajan on helppo tulkita. Tällaisenaan koodia ei voi vielä kääntää ja siksi moc:lla generoidaan väliaikaista kääntyvää koodia, joka sovitetaan Qt:n sisäisiin mekanismeihin. Käytännössä väliaikanen koodi pitää sisällään mm. ajonaikaista tyyppitietoa, sekä signal-slot-mekanismin tarpeisiin erilaista metatietoa. 5 Kirjastomoduulit Qt-koostuu kuudesta eri kirjastomoduulista [10], joita jaetaan eri tavoin myytävien editionien mukaan [4]. Moduuleista tärkein on Core, joka tarjoaa luokkia kaikista olellisimpia ominaisuuksia varten, kuten tiedostojen käsittely, säikeet, tapahtumienkäsittely, merkkijonot ja tietovarastot. Graasta käyttöliittymää varten on oma moduulinsa GUI, joka tarjoaa kaikki peruskomponentit graasissa sovelluksissa. Tämä moduuli mahdollistaa myös omien komponenttien tekemisen. GUI-moduulin lisäksi on olemassa Qt OpenGL 3
4 3D Visualization-moduuli, joka nimensä mukaisesti tarjoaa luokat OpenGLkäyttöä varten. Verkkosovelluksia varten on olemassa oma moduulinsa ja se tarjoaa helpon rajapinnan TCP/UDP-protokollien käsittelyyn. Sama moduuli tarjoaa myös joitain ylemmän tason protokollien käsittelyä helpottavia luokkia, esim. HTTP-protokollaa varten. Viimeisimpänä on tiedon tallentamista sekä käsittelyä varten XML- ja tietokanta-moduulit. Nämä moduulit mahdollistavat helpon pääsyn eri SQL-palvelimille, sekä monipuolisen parserin XML-kieltä varten. 6 Tapahtumienkäsittely Eri sovelluskehyksissä tapahtumienkäsittelyssä käytetään usein takaisinkutsufunktioita osoitteiden kautta. Menetelmässä funktion osoittimella ilmaistaan, mitä funktiota käytetään kunkin tapahtuman käsittelyyn. Tässä menetelmässä on monia huonoja puolia. Ensinnäkin ne eivät ole tyyppisuojattuja ja toiseksi funktiot ovat hyvin riippuvaisia toisistaan, sillä kutsujan täytyy tarkalleen tietää, mitä funktiota kutsua. Qt:ssa tapahtumienkäsittelyä on lähestytty erityisesti helppokäyttöisyyttä ja turvallisuutta silmällä pitäen. Qt:n omaa tapahtumienkäsittelyä kutsutaan signal-slot-mekanismiksi [11] ja se on keskeisin ominaisuus Qt:ssa. Käytännössä signaalit ovat tapahtumia ja slot-funktiot ovat tavallisia funktioita, jotka käsittelevät tapahtumia. Kun jokin tapahtuma halutaan käsitellä tietyllä funktiolla, niin tällöin käytetään connect-funktiota yhdistämään tapahtuma (signal) haluttuun käsittelijäfunktioon (slot). Qt:n sisäinen mekanismi hoitaa automaattisesti yhdistämisen ja tarkistaa, että yhdistettävät signaalit ja slotit ovat tyypeiltään sopivia. Yhdistelmiä tehtäessä olioiden ei tarvitse olla tietoisia toisistaan, eli yhdistelmät voidaan tehdä missä tahansa, kunhan yhdistettävät oliot tunnetaan. Signaaleja voidaan myös ketjuttaa, eli jonkin tapahtuman voi määrätä aiheuttamaan toisen tahtuman. Yhdistelmien lukumäärää ei myöskään ole rajoitettu mitenkään. Lisäksi yhdistelmiä voidaan jälkikäteen purkaa tai tapahtumien käsittelyn voi väliaikaisesti estää kokonaan. Qt:n käyttöliittymäluokat sisältävät laajan määrän eri signaaleja sekä slotteja, mutta myös omia vastaavia voi kirjoittaa. Luokan määrittelyssä on omat määreet signaalien ja slottien erottamiseksi. Signal- ja slot-määreitä käytetään vastaavaan tapaan, kuten näkyvyysalueen määreitä (public, private tai protected). Slot-määreen edessä käytetään lisäksi näkyvyysalueen määrettä, jolloin sisäisien tapahtumien käsittely on mahdollista. Signaalit sekä slotit kirjoitetaan aivan kuten mitkä tahansa muut funktiot, mutta paluuarvo täytyy olla aina void, sillä tapahtumat ja käsittelijät eivät palau- 4
5 ta mitään arvoja. Käsittelijäfunktiot täytyy luonnollisesti implementoida ja niihin ei tarvitse muulloin koskea kuin yhdistelmiä tehtäessä. Signaaleja on kuitenkin tarvetta välillä aktivoida manuaalisesti ja tällöin koodissa käytetään emit-makroa, jolla aiheutetaan tapahtuman aktivoituminen. Qt:n mekanismi osaa hoitaa automaattisesti yhdistettyjen slottien kutsun. Säikeitä käytettäessä signaalien yhdistäminen täytyy tehdä viivästetysti ja tätä varten connect-funktiossa on parametri yhdistelmän kutsumistavan määrittämiseksi. Qt:n tapahtumankäsittelijät ovat siitä erikoisia, että ne periytyvät luokasta toiseen ja niitä voidaan tarvittaessa ylikirjoittaa. Alla on yksinkertainen esimerkki Qt-sovelluksesta. Sovelluksen ikkuna sisältää painikkeen, jota painaessa sovellus sulkeutuu. Sovellus pitää sisällään myös ajastimen, joka nollautuessa myös sulkee sovelluksen. Ajastimen aika näytetään painonapin tekstissä. /*** hellowindow.h ***/ #include <qpushbutton.h> #include <qtimer.h> class HelloWindow : public QPushButton { Q_OBJECT private: QTimer *timer; unsigned int timeleft; public: HelloWindow() { timeleft = 10; timer = new QTimer(this); this->connect(timer, SIGNAL(timeout()), this, SLOT(updateTime())); this->connect(this, SIGNAL(clicked()), this, SIGNAL(helloQuits())); setwindowtitle(tr("hello World!")); resize(200, 60); updatetime(); timer->setinterval(1000); timer->start(); } private slots: void updatetime() { if (!(--timeleft)) emit helloquits(); this->settext(tr("quit") + "..." + QString::number(timeLeft)); } signals: void helloquits(); }; /*** main.cpp ***/ #include <qapplication.h> 5
6 #include "hellowindow.h" int main(int argc, char **argv) { QApplication app(argc, argv); HelloWindow hello; QObject::connect(&hello, SIGNAL(helloQuits()), &app, SLOT(quit())); hello.show(); return app.exec(); } 7 Yhteenveto Qt-käyttöliittymäkirjasto on erinomainen tapa kirjoittaa sovelluksia useammalle eri käyttöjärjestelmälle. Qt:n luokat tarjoavat helppokäyttöisen ja kattavan rajapinnan eri toimintoihin ja ominaisuuksiin, lisäten tuotettavuutta sovelluksen kehityksessä. Signal-slot-mekanismi taas tuo helpon ja turvallisen tavan käsitellä tapahtumia. C++:n joustavuuden, nopeuden ja tehokkaitten ominaisuuksien lisäksi Qt tarjoaa parannuksia C++-ohjelmointiin mm. varmistetuilla osoittimilla (QPointer-luokka) ja parannetulla dynaamisella tyyppimuunnoksella [12]. Heikkouksiakin Qt:sta löytyy, sillä Qt:ta on kritisoitu C++:n poikkeustenkäsittelyn epäyhteensopivuudesta Qt:n sisäisten mekanismien kanssa. Toisaalta Qt:n omien luokkien kanssa poikkeukset on kierretty paluuarvoilla, mutta tämä ei kuitenkaan korvaa oikeata poikkeustenkäsittelyä. Signal-slotmekanismia on myös joissain tapauksissa sanottu hitaaksi, sillä tapahtumat eivät ole suoria takaisinkutsuja, vaan ne joudutaan kierrättämään Qt:n omien mekanismien kautta. Tämä ongelma on kuitenkin aika marginaalinen, sillä tapahtumien käsittely käyttöliittymässä ei tavitse olla aivan reaaliaikaista ja muutenkin Qt:n oma mekanismi on vain muutamia kertoja hitaampi kuin suora takaisinkutsu. Qt onkin tällä hetkellä yksi merkittävimmistä tavoista tehdä natiiveja sovelluksia eri käyttöjärjestelmille. Tästä mm. kertoo laaja kirjo tunnettuja sovelluksia, kuten Google Earth, Opera, Last.fm Player, Adobe Photoshop Album, Doxygen ja Skype [2]. Lähteet [1] Trolltech, Harness Cross-Platform Eciency Trolltech, saatavilla WWW-muodossa <URL: 6
7 viitattu [2] Wikipedia, Qt (toolkit), saatavilla WWW-muodossa <URL: viitattu [3] Trolltech, Qt Licensing Overview Trolltech, saatavilla WWW-muodossa <URL: viitattu [4] Trolltech, Qt Editions Comparison Chart Trolltech, saatavilla WWW-muodossa <URL: viitattu [5] Trolltech, Qt Designer Trolltech, saatavilla WWW-muodossa <URL: viitattu [6] Trolltech, Qt 4.3: Qt Linguist Manual, saatavilla WWW-muodossa <URL: viitattu [7] Trolltech, Qt Assistant Trolltech, saatavilla WWW-muodossa <URL: viitattu [8] Trolltech, Qt 4.3: qmake Manual, saatavilla WWW-muodossa <URL: viitattu [9] Trolltech, Qt 4.3: Using the Meta-Object Compiler (moc), saatavilla WWW-muodossa <URL: viitattu [10] Trolltech, Qt Class Library Modules Trolltech, saatavilla WWW-muodossa <URL: viitattu [11] Trolltech, Qt 4.3: Signals and Slots, saatavilla WWW-muodossa <URL: viitattu [12] Trolltech, Qt In Depth Trolltech, saatavilla WWW-muodossa <URL: viitattu
Qt perusteet. Juha-Matti Vanhatupa. (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia)
Qt perusteet Juha-Matti Vanhatupa (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia) Sisältö Käännösprosessi MetaObjectSystem Hyödyt Qt:n moduulit Qt käyttöliittymän muistinhallinta Debug-tulosteet
LisätiedotQT framework. Juha Järvensivu 2007
QT framework Juha Järvensivu juha.jarvensivu@tut.fi 2007 QT Framework QT Class Library QT Designer QT Assistant QT Linguist http://trolltech.com QT Class Library C++ API >400 luokkaa Kattava widget kirjasto
LisätiedotGraafisen käyttöliittymän ohjelmointi
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden
LisätiedotQt kaikkialla? 9.4.2010
Qt kaikkialla? Helsinki Tammasaarenkatu 5, 00180 Helsinki, Tel. 09 431 551 Tampere Satakunnankatu 18, 33210 Tampere, Tel. 03 315 861 Turku Lemminkäisenkatu 32 A, 20520 Turku, Tel. 02 263 571 Qt Qton C++
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi
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ä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ätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä
812347A Olio-ohjelmointi, 2015 syksy 2. vsk X Poikkeusten käsittelystä Sisältö 1. Yleistä poikkeusten käsittelystä 2. Poikkeuskäsittelyn perusteita C++:ssa 3. Standardissa määritellyt poikkeukset 4. Poikkeusvarmuus
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ä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ätiedotD-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen
D-OHJELMOINTIKIELI AA-kerho, 33 Antti Uusimäki Arto Savolainen 2 D-OHJELMOINTIKIELI D-kielen historia alkaa vuodesta 1999, kun Walter Bright aloitti uuden ohjelmointikielen kehittämisen. Ensimmäinen versio
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
LisätiedotTapahtumapohjainen ohjelmointi
Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia) Erot perinteisiin sovelluksiin Sovelluksen kulku ei ole ennalta tiedossa. Start A
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 9: Kirjastot, pluginit jne. TIE-20200 Samuel Lahtinen 1 Ajankohtaista Viikkoharjoituksissa kirjastojen käyttöä & toteuttamista Kurkkaaminen viime viikon viikkoharkkajuttuihin
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ätiedotLoppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
LisätiedotQt-ohjelmointitekniikat Java-osaajan näkökulmasta
Tampereen ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma Matti Nieminen Opinnäytetyö Qt-ohjelmointitekniikat Java-osaajan näkökulmasta Työn ohjaaja Työn tilaaja Tampere 6/2009 FL Paula Hietala Kilosoft
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ä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ätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
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ä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ätiedotSisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä
Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
Lisätiedot.NET ajoympäristö. Juha Järvensivu 2007
.NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET
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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen
LisätiedotAndroid ohjelmointi. Mobiiliohjelmointi 2-3T5245
Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu 2008
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
LisätiedotPedacode Pikaopas. Java-kehitysympäristön pystyttäminen
Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja
LisätiedotSisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä
Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
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ätiedotTech Conference 28.-29.5.2015. Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI
Tech Conference 28.-29.5.2015 Visual Studio 2015, C#6,.NET4.6 Heikki Raatikainen #TechConfFI Yleistä Avoimuus Open Source ja tuki yleisesti käytetyille ei-ms työkaluille Kaikki alustat tuettuna:.net 5
LisätiedotWINE API ja Virtualisointiohjelmistot
WINE API ja Virtualisointiohjelmistot Yleistä Winestä Ohjelmisto, joka mahdollistaa Windows -pohjaisten ohjelmien käytön kuissa käyttöjärjestelmissä Toimii yhteensopivuuskerroksena ohjelman ja käyttöjärjestelmän
LisätiedotTIE-20200 Ohjelmistojen suunnittelu. Luento 8..9: moniperintä
TIE-20200 Ohjelmistojen suunnittelu Luento 8..9: moniperintä 1 Ajankohtaista Harjoitustyön suunnittelusessiot pidetty, työt jatkuvat, välivaiheen esittely seuraavana Viimeinen viikkoharjoituskerta, palataan
LisätiedotVisual Basic -sovelluskehitin Juha Vitikka
Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen
LisätiedotOhjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen (1300698)
Ohjelmointi Linuxissa Tehnyt: Antti Martikainen (1300698) Sisällysluettelo 1. Mitä tarvitaan sovellusten tuottamiseen?...1 2. GNU Toolchain...2 3. Tekstieditorit...2 4. Hello world-sovelluksen luominen
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ätiedotLoppukurssin järjestelyt
C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
LisätiedotTIE Principles of Programming Languages CEYLON
TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
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ä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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 6: Graasten käyttöliittymien ohjelmointia Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 29. 2. 2012 Sisältö 1 GUI-ohjelmointia
LisätiedotPythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
LisätiedotTIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli
TIE-20306 PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli Seminaariesitelmä ryhmä 24 Markku Ahokas Jani Kuitti i SISÄLLYSLUETTELO 1. YLEISTÄ EIFFELISTÄ... 1 1.1 Historia ja tausta... 1 1.2
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ätiedotC-ohjelmoinnin peruskurssi. Pasi Sarolahti
C! C-ohjelmoinnin peruskurssi Pasi Sarolahti Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia
LisätiedotUutta Remote Support Platform 3.0 -versiossa
Uutta Remote Support Platform for SAP Business One Asiakirjaversio: 1.0 2012-10-08 Kaikki maat Typografiset merkintätavat Kirjasintyyli Esimerkki Näytöstä lainatut sanat tai merkit. Näitä ovat kenttien
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 8 Suunnittelumallit käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Yleistä Suunnittelumalli on
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ätiedotJypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia?
Muilla kielillä: English Suomi Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Kun kaksi fysiikkaoliota törmää toisiinsa, syntyy törmäystapahtuma. Nämä tapahtumat voidaan ottaa kiinni
LisätiedotCommon Language Runtime
hyväksymispäivä arvosana arvostelija Common Language Runtime Jukka Katajisto Helsinki 16.4.2005 Ohjelmointikielten kääntäjät -kurssin seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö
LisätiedotQt pohjaisen paikkatietotyökalun suunnittelu ja toteutus
Qt pohjaisen paikkatietotyökalun suunnittelu ja toteutus (Julkinen osa) Samu Laaksonen Opinnäytetyö Huhtikuu 2012 Tietotekniikan koulutusohjelma Ohjelmistotekniikka 2 TIIVISTELMÄ Tampereen ammattikorkeakoulu
LisätiedotJAVA-OHJELMOINTI 3 op A274615
JAVA-OHJELMOINTI 3 op A274615 JFC & Swing, Look & Feel, Events Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
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ätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
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ätiedot4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen
LisätiedotIkkunointijärjestelmät
Ikkunointijärjestelmät Johdanto X-ikkunointijärjestelmä Java Yhteenveto Petri Vuorimaa 1 Tehtävät Piirtorutiinit Syöttölaitteiden monitorointi Tapahtumien välitys Ikkunoiden manipulointi Petri Vuorimaa
Lisätiedot1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotDart. Ryhmä 38. Ville Tahvanainen. Juha Häkli
Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi
LisätiedotWeb Services tietokantaohjelmoinnin perusteet
ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...
LisätiedotOhjelmointi 1. Kumppanit
Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
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ätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotPakkauksen kokoaminen
13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen package-määrettä käyttäen. Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa importlauseen avulla. Pakkaukset ja näkyvyys.
LisätiedotP e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN
LisätiedotJReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä
LisätiedotJypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
LisätiedotKäyttöliittymän lokalisointi. Juha Järvensivu 2008
Käyttöliittymän lokalisointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Internatinalization Internationalization is the process of designing an application so that the user can run it using his or her
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotKompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
LisätiedotQt Quick-kehitys Maemo-alustalle
Qt Quick-kehitys Maemo-alustalle Lauri Vastamäki Opinnäytetyö Marraskuu 2011 Tietotekniikan koulutusohjelma Ohjelmistotekniikka Tampereen ammattikorkeakoulu 2 TIIVISTELMÄ Tampereen ammattikorkeakoulu Tietotekniikan
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ätiedotApuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
Lisätiedotwww.solita.fi solita@solita.fi
www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen
LisätiedotDelegaatit ja tapahtumakäsittelijät
14 Delegaatit ja tapahtumakäsittelijät Toinen käyttökelpoinen keksintö C#-kielessä ovat delegaatit. Periaatteessa ne palvelevat samaa tarkoitusta kuin C++:n funktio-osoittimet. Delegaatit ovat kuitenkin
LisätiedotDXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/
DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.
LisätiedotAS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013
LisätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
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ätiedotHarjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
LisätiedotMicrosoft Visual Studio 2005
Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa
LisätiedotJohdatus ohjelmointiin
Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat
LisätiedotC++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi
1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,
LisätiedotCopyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa
Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa Platform Tuotekehityksen haasteita ja ratkaisuja Haaste: Massiivisten tietomäärien hallinta Ratkaisu: Pilvipalvelun skaalautuvuus Haaste:
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ätiedotOsio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely
Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
LisätiedotJavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko
JavaRMI 1 JAVA RMI Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko JavaRMI 2 Table of Contents...1 JAVA RMI...1 Yleistä...4 Arkkitehtuuri...5 Java RMI kerrosarkkitehtuuri...5
LisätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
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ä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ätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotJavan asennus ja ohjeita ongelmatilanteisiin
Javan asennus ja ohjeita ongelmatilanteisiin Javaa tarvitaan Fivaldin Sovellusikkunan alaisiin sovelluksiin, jotka käyttävät Oracle Forms -tekniikkaa. Visma Fivaldin osalta suosittelemme aina käyttämään
LisätiedotSoveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen
Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen ohjelmointiin Jukka Talvitie Valvoja: Professori Jorma Jormakka Paikka: TietoEnator oyj Ongelma Ideologia Lifebelt
Lisätiedot