Objekti-orientoutunut - ABL vai 4GL? Pegissä (Progress Group) oli jokin aikaa sitten mielenkiintoinen keskustelu ohjelmointikielemme nimestä.

Koko: px
Aloita esitys sivulta:

Download "Objekti-orientoutunut - ABL vai 4GL? Pegissä (Progress Email Group) oli jokin aikaa sitten mielenkiintoinen keskustelu ohjelmointikielemme nimestä."

Transkriptio

1 VUOSIKERTA 4 1/2014 NUMERO FinPUG News HUOM! Säästä luontoa älä tulosta tätä paperille! Tässä numerossa 1 ABL vai 4GL? 2 Puheenjohtajan palsta 2 EMEA PUG Challenge FinPUG Majvik 4 Progress Exchange FinPUG 2014 SEMINAARI 6 Progress Rollbase 8 Progress Rollbase työpaja 9 EMEA PUG Challenge 2013 / Bryssel 12 Tutkimusmatka olioiden maailmaan 20 Progress Exchange 2013-raportti 22 PUG Baltic 23 PUG CHALLENGE AMERICAS Objekti-orientoutunut - ABL vai 4GL? Pegissä (Progress Group) oli jokin aikaa sitten mielenkiintoinen keskustelu ohjelmointikielemme nimestä. Alkuperäinen nimihän oli Progress 4GL, samoin tietokannan nimi oli Progress RDBMS, sovelluspalvelimen Progress AppServer jne. Kun Progress laajensi tuotevalikoimaansa, nämä Progress-tuotteet nimettiin OpenEdge-tuotteeksi. Progress tarkoittaa edistystä OpenEdge niin mitä? Open on tietenkin suomeksi avoin, Edge on terä tai reuna. Edge tarkoittaa myös hivuttautumista. Kielen nimenmuutokseksi ei riittänyt OpenEdge 4GL, vaan uudeksi nimeksi tuli ABL, lyhenne sanoista Advanced Business Language. Monet meistä haluavat kuitenkin puhua 4GL:stä. 4GL sisälsi tietyn lupauksen: Se on kehittyneempi kuin kolmannen sukupolven ohjelmointikielet eli lausekielet (3GL), puhumattakaan konekielistä tai Assemblerista. Niinhän se onkin. Mutta mihin ovat kadonneet muut 80-luvulla kehitetyt 4GL-kielet? 4GL-konseptin epäonnistuminen taisi olla syy siihen, miksi Progressin markkinoinnissa päädyttiin 4GL-nimen vaihtamiseen. 4GL:t eivät menestyneet vaan katosivat markkinoilta - paitsi Progress. Toisaalta kieli ei ole enää niin siistiä englannin kieltä muistuttavaa lausekieltä, vaan sisältää mitä ihmeellisimpiä konstruktioita ja lähestymistapoja. Syynä on liiketoimintasovellusten laajeneminen eri osaalueille, uudenlaiset ohjelmointitekniikat, joista pienin ei ole oliosuuntautuminen eli luokkaobjektit. Se on tämän numeromme pääteema. Kirjoitukset FinPUG News:iin Ehdotukset seminaarien aiheiksi Kiinnostus hallituksen jösenyyteen Muu palaute finpug.fi FinPUG Kaikista uutuuksista on taas runsaasti tietoa FinPUG seminaarissamme, joten Tervetuloa Majvikiin! Welcome to Majvik! Tere tulemast Majvik! Добро пожаловать в Майвик! Teppo Määttänen toimittaja

2 SIVU 2 FINPUG NEWS Puheenjohtajan palsta Älä ohita tätä tilaisuutta! EMEA PUG Challenge 2014 Matti Kiviranta, Qvantel Business Solutions Tervehdystä kaikille lukijoille puheenjohtajan pöydän äärestä. Monille varmasti olen tuntemattomampi kasvo ja haluankin täten heiman esittäytyä. Olen Matti Kiviranta ja tulen Qvantel Business Solutionsilta josssa toimin vanhempana tietokanta-asiantuntijana. Progress maailmassa olen ollut hyvin lyhyen aikaa, vain vuodesta 2007 alkaen, kun verrataan moniin jäseniimme. Vuosien saatossa on OpenEdge on tullut läheiseksi ja monet sen kanssa työtä tekevät myös, lisäksi olen saanut tutustua moniin Progressin työntekijöihin niin Suomessa kuin muuallakin. Osana puheenjohtajan tehtäviä olen mukana myös Euroopan käyttäjäkokouksen järjestävässä porukassa. Tänä vuonna EMEA PUG Challenge järjestetään Düsseldorfissa, jossa järjestävien käyttäjäryhmien puheenjohtajat kokoontuivat helmikuun alussa. Edelliseistä vuosista poiketen puheenjohtajien kokous oli EMEA PUG Challengen järjestämä ja täten keskittyi täysin tapahtuman järjestämiseen. Oli hienoa päästä näkemään tilat etukäteen, sillä tänä vuonna tilat ovat reilusti tilavammat kuin esimerkiksi Brysselilssä tai Kölnissä. järjestetään tänä vuonna Saksan Dûsseldorfissa keskiviikosta perjantaihin. Euroopan Progress-käyttäjäryhmien yhdessä järjestämä konferenssi ei ole mainostilaisuus, vaan tiukasti asiapitoinen osaamisen lisäämispaikka, jossa esitelmoitsijät on valittu Progressmeriittien perusteella Euroopasta ja Yhdysvalloista. Tapaat kollegojasi eri puolilta Eurooppaa ja saat valita aiheita ainakin neljästä rinnakkaisesta sessiosta. Saat myös päivityksen Progressin strategiasta ja tiekartasta ilman, että joudut matkustamaan valtameren taakse. Tämä on viides kerta tällä konseptilla, että käyttäjäkerhot ovat isäntinä, ja joka kerralla tilaisuus on aina parantunut! Tilaisuuden ilmoittautuminen alkaa näinä viikkoina, ja Super Early Bird-hinnalla säästät jopa sata Euroa. FinPUG- ja muut PUG-jäsenet jäsenet saavat erityisalennuksen. Seuraa sivua: FinPUG 2014 seminaari on melkein ovella ja sinne toivonkin jäsenistömme tulevan runsain määrin. Pääpuhujiksi olemme tälle vuodelle onnistuneet haalimaan Richard Banvillen ja Shelly Chasen, joten rautaista ammattitaitoa ja tietoa Progressin tuotteista on tulossa. Heidän lisäksi lavalle nousevat Jarmo Nieminen ja Jami Lehtovirta. Nähdään FinPUG seminaarissa Majvikissa! Matti Kiviranta Puheenjohtaja

3 FINPUG NEWS SIVU 3 FinPUG Majvik FinPUG:in hallitus on tehnyt huolellista suunnittelua saadakseen aikaan tapahtuman, joka parhaiten palvelee Progress/OpenEdge-käyttäjiä juuri tällä hetkellä keväällä Progress (OpenEdge) on liiketoimintasovellusten kehittämisessä suhteellisen vanha teknologia. Monet meistä ovat aloittaneet sen kanssa jo ja 1990-luvulla. Menestyksellisimpien suomalaisten ITsovellusten juuret ovat samoilta ajoilta. Mitä uutta tässä enää tarvitaan? Ympäristö on muuttunut ja muuttuu kaiken aikaa ja myös tulevaisuudessa. Progress on kyennyt mukautumaan tähän kehitykseen, eikä sen ydinominaisuuksia (tietokanta, ohjelmointikieli) ole tarvinnut muuttaa. Sen sijaan kaikkea on laajennettu ja kehitetty samalla kun liiketoimintasovellukset ovat laajentuneet uusille osa-alueille. Mitä tälle vuodelle on suunniteltu: "Progress Rollbase työpaja" Vaikka Progressilla on tehty nettisovelluksia jo parikymmentä vuotta WebSpeedillä, tähän osaalueeseen ei ole tullut tuotteeseen uusia ominaisuuksia pitkään aikaan. Nyt tulee: Progress Rollbase on mitä modernein ja tehokkain nettisovellusten kehitin, joka perustuu JavaScript-kieleen, point&click-kehittämistekniikkaan ja valmiiden komponenttien ja sovellusmallien hyödyntämiseen. Tämä kannattaa ehdottomasti opetella! Samaan aihepiiriin kuuluu Shelley Chasen esitys: Progress Rollbase - Miten sitä käytetään OpenEdge tietokannan päällä. "Tietokantataulujen horisontaalinen partitiointi" Tietokannoistamme on tullut vuosien myötä valtavan kokoisia, kun tekniset ja loogiset rajoitteet on poistettu. Samanaikaisesti ongelmaksi on muodostunut tietokantojen hallinta, jota sitäkin on kehitetty koko ajan. Uusi projekti Progress/OpenEdge-tietokantaan on taulujen horisontaalinen partitiointi, jolla helpotetaan suurien taulujen hallintaa. "OpenEdge Mobile johdanto nopeaan käyttöönottoon" Jo vuoden meillä on ollut käytössämme sovelluskehitin älypuhelimiin ja tabletteihin aitojen mobiilisovellusten tekemiseksi. Kömpelöt webbisovellukset eivät enää riitä näihin laitteisiin. Mobile on nopeimmin kehittyvä IT-kehittämisen ala tällä hetkellä, jossa on runsaasti kysyntää kokonaan uusistakin sovelluksista. Olemassa oleviin OpenEdge-sovelluksiin ei välttämättä tarvitse tehdä kovin paljon muutoksia, koska OE Mobile osaa käyttää valmista business-logiikkaa uuden liittymän kautta. Haasteena on käyttöliitynnän tekeminen, johon siis on olemassa havainnollinen kehitin. <jatkuu>

4 SIVU 4 FINPUG NEWS "Käytettävyys" Tästä asiasta ei koskaan puhuta liikaa, ja kaikki uudet ideat kannattaa pyrkiä omaksumaan. "Oliopohjainen ABL - mistä aloittaa ja miten jatkaa" Progress/OpenEdge on parhaimmillaan ollut korkean tason proseduraalisena ohjelmontikielenä, jolla on voinut toteuttaa hankalimmatkin algortimit. Olio-ohjelmointi on kuitenkin tätä päivää, ja yliopistolta valmistuvat ammattilaiset ovat kouliintuneet puhtaaseen Java-oliotekniikkaa osaamatta perinteisiä lausekieliä, kuten Pascalia joskus ennen. ABL-kielessä voidaan käyttää rinnakkain proseduraalisia lauserakenteita ja luokka/oliotekniikkaa, eli kysymys ei ole joko/tai asetelmasta kuten esim. Javassa. Tästä aiheesta on tässä numerossa Veli-Matti Korhosen eriomainen kirjoitus, joka perustuu omakohtaiseen asioihin perehtymiseen. "Mitä uutta OpenEdge tietokannan versiossa 11" Jos työskentelet OpenEdge-tietokannan kanssa, sinun kannatta tietää, mitä uutta uudet versiot siihen aina tuovat. Valitettavasti tämän tietämyksen laiminlyöminen johtaa usein huonoihin ratkaisuihin - yksinkertaisesti siitä syystä, ettei tietoa ole ollut tarpeeksi. Muutakin ohjelmaa on, mutta näistä yksikin aihe riittää perusteeksi osallistua vuotuiseen tapahtumaamme! Äläkä unohda mahdollisuutta kokemusten ja näkemysten vaihtoon kollegojesi kanssa. Progress Exchange Orlando Florida! Floridassa kaikki on suurta! Progress Exchange tapahtumat ovat olleet aina menestyksekkäitä! Progress Exchange 2014 tapahtuma järjestetään tänä vuonna Floridassa (Orlando) Lisätietoa tapahtumasta, ilmoittautumisesta täältä:

5 FINPUG NEWS SIVU 5 FinPUG 2014 SEMINAARIN OHJELMA Aika: Paikka: Kokous -ja kongressihotelli Majvik, Kirkkonummi (http://www.majvik.fi) Esiintyjät: Jarmo Nieminen, Progress Software Oy (www.progress.com) Rich Banville, Progress Software Corporation Shelley Chase, Progress Software Corporation Jami Lehtovirta, CGI (www.cgi.fi) Matti Kiviranta, Qvantel Business Solutions Oy (www.qvantel.com) Ohjelma: Torstai Ilmoittautuminen ja aamukahvi Progress Softwaren aamupäivä (suomeksi) Jarmo Nieminen: Progress Rollbase työpaja Majoittautuminen Lounas Rich Banville: Tietokantataulujen horisontaalinen partitiointi Shelley Chase: OpenEdge Mobile johdanto nopeaan käyttöönottoon Kahvitauko / FinPUG vuosikokous Jami Lehtovirta: Tavoitteena käytettävyys, HTML5- ja JavaScript-pohjainen käyttöliittymäarkkitehtuurin ERPjärjestelmään (suomeksi) Shelley Chase: Oliopohainen ABL - mistä aloittaa ja miten jatkaa? Kokouksen ensimmäinen päivä päättyy. Liikuntatoiminnot, sauna, uima-allas Illallinen Iltaohjelmaa Perjantai Aamiainen Shelley Chase: Progress Rollbase - Miten sitä käytetään OpenEdge tietokannan päällä Rich Banville: Mitä uutta OpenEdge tietokannan versiossa Matti Kiviranta: Suuret tietokannat käytännössä, konfigurointi ja suoritusteho, kokemuksia taulujen horisontaalisesta partitioinnista (suomeksi) Kokous päättyy. Huoneiden luovutus Arpajaiset. 12:30 Lounas (Huom. Ohjelmaan voi tulla muutoksia.)

6 SIVU 6 FINPUG NEWS Progress Rollbase - Mitä se tarjoaa OpenEdge käyttäjille? Shelley Chase Progress Rollbase on pilvialustassa toimiva ohjelmiston kehittämisen ja toimittamisen ympäristö. Siinä tehdään liiketoiminnan sovelluksia, jotka toimivat palveluina (Software as a Service - SaaS). Kehittämisen työkalut toimivat "osoita ja napsauta", "vedä ja pudota" menetelmillä tavallisella selaimella ilman asennuksia. Koodia kirjoitetaan minimaalinen määrä. Progress Rollbase on lupaus nopeasta sovelluskehityksestä (RAD), joten sovellus syntyy pienemmässä ajassa kuin perinteisillä ohjelmistokehityksen menetelmillä. Progress Rollbasea voi käyttää sekä palveluna (Progress Rollbase Hosted Cloud ) että suljettuna asennuksena (Progress Rollbase Private Cloud). Näitä voidaan käyttää millä tahansa pilvi-infrastruktuurille tai omilla verkkoasennuksilla. Progress Rollbase on siis palveluna toimiva sovellusalusta (Application Platform as a Service - apaas) sekä loppukäyttäjäyrityksille että ohjelmistotoimittajille (ISV). Se tarjoaa täydellisen järjestelmän vuokralaishallintaan (multi-tenant) ja käyttöönoton hallintaan, sovelluskehitykseen, sovellusten julkaisemiseen ja käyttöönottoon. Progress Rollbase tarjoaa ISV- ja jälleenmyyjille etikettömän tuotteen (white label) ominaisuuksia, joten se on helppo ottaa käyttöön minkä tahansa brändin, tuotemerkin tai identiteetin merkeissä. Kaikki Progress Rollbase-sovellukset toimivat aitoina Progress Rollbase alustan palveluina heti, kun ne on rakennettu. Erillisiä manuaalisia käyttöönottoja ei tarvita. Käyttöönottoon liittyy vain käyttäjien lisääminen ja käyttöoikeuksien määrittelyt. Käyttäjät tarvitsevat sovelluksen käyttämiseen vain Internet-yhteyden ja ajan tasalla olevan selaimen. Rollbase jatkaa ja laajentaa Progressin sitoutumista missioonsa, joka on: mahdollistaa yrityskäyttäjien ja yksityisten kehittäjien luoda sovelluksia ilman vuosien ohjelmointikokemusta. Kuten myös OpenEdge BPM ja Progress Corticon tuotteiden tapauksissa, Rollbasesovelluksia voidaan luoda, muokata ja ylläpitää huomattavasti Shelley Chase on senior-arkkitehti Progressin OpenEdgekehitysryhmässä. Hän liittyi Progressiin Aikaisempaa kokemusta hänellä oli yrityssovellusten kehittämisessä ja olio-ohjelmoinnissa sekä UNIX- ja Windows-ympäristöissä. OpenEdge-tuotteissa Shelley on keskittynyt palveluarkkitehtuurin (SOA) OpenEdge-käyttöliittymään ja ohjelmointikielen (ABL - Advanced Business Language) kehittämiseen. Shelley on ollut keskeisesti mukana suunnittelemassa ja kehittämässä monia OpenEdge-ominaisuuksia kuten ActiveX, Web Services, avoimet rajapinnat (COM, Java ja.net), oliolaajennukset, OpenEdge GUI.NET ja OpenEdge Mobile. LinkedIn luettelee hänen taitojaan seuraavasti: SOA Web Services Software Development Agile Methodologies Distributed Systems XML Java Architecture Application Architecture Eclipse REST SOAP OpenEdge ClearCase Mobile Technology.NET Object Oriented Design Mobile Applications <jatkuu>

7 FINPUG NEWS SIVU 7 yhteistyökykyisemmässä ja ketterämmässä kehittämisen ja käyttöönoton toimintatavassa. Kuulostaa hyvältä! Uusi, ominaisuuksiltaan monipuolinen ja helppo sovellusten kehittämisen ja käyttöönottoa alusta. Mutta mitä se merkitsee Sinulle, joka olet OpenEdgeohjelmistotoimittaja tai OpenEdge-sovellusta käyttävä loppukäyttäjä? Ensinnäkin: Rollbase täydentää OpenEdgeä - se ei ole korvaava tai kilpaileva tekniikka. Toiseksi: Rollbasen tehtävänä on yksinkertaistaa liiketoiminnan sovelluksien kehittäminen ja käyttöönotto. Kuulostaako tutulta? Niin pitääkin. Tämä on myös OpenEdgen tehtävä ja missio. Sama missio, mutta eri ympäristöissä. Rollbase tarjoaa kehittämistä ja käyttöönottoa pilvessä. OpenEdge tarjoaa paikallista kehitystä ja erilaisia käytön asennusvaihtoehtoja. Itsenäiset OpenEdge-kehittäjät (ISV) ja suorat loppukäyttäjät (DEU) voivat käyttää Progress Rollbasea laajentamaan OpenEdge-sovelluksiaan monin tavoin, erityisesti siirtämällä sovellustaan pilveen. Selaimellasi voit suunnitella ja kehittää monipuolisiä, yhteistoiminnallisia, web-pohjaisia sovelluksia, jotka saat nopeasti käyttöön tiimillesi tai asiakkaillesi. OpenEdge sovelluksia ollaan laajentamassa kumppaneillemme seuraavilla tavoilla: - Rakenna uusi moduuli tai sovellus käyttäen Rollbasea. Tietoja voidaan välittää Rollbasen ja OpenEdgen välillä jakamalla OpenEdge tietokantaa D2C:n avulla tai käyttämällä API-kutsuja tiedonvälityksessä. - Tarjoa web- ja mobiili-versio OpenEdge sovelluksestasi. Jos OpenEdge sovellus käyttää sovelluspalvelinta eli AppServeriä, Rollbase tarjoaa integroidun OpenEdge Adapterin, jolla voi käyttää OpenEdge-sovelluksen businesslogiikkaa. Rollbase voi tarjota mekanismin lisätä perinteisen OpenEdge sovelluksen arvoa luomalla sille uusia käyttäjäryhmiä tai laajentaa sovelluksen ominaisuuksia ja käyttötapoja. Rakentamalla Rollbasella lisämoduuleita, sovellukseen tulee uusia web-selaimeen perustuvia käyttökanavia. Hyvä paikka etsiä uusia lisättäviä on tarkastella Rollbasen sovellusmalleja. <jatkuu> Richard Banvillen käyntikortissa lukee: "Progress OpenEdge Fellow - Progress Software". Hän tuli Progressille 1993, taustanaan käyttöjärjestelmien testaaminen ja kehitystyö. Richard on työskennellyt monissa OpenEdge-projekteissa osastojen ja tiimien rajat ylittäen, mutta painopiste on ollut tietokannan talletuksessa ja OpenEdge SQL:n eri osa-alueilla. Hänen kehityskohteitaan ovat olleet myös suoritustehoprojektit, tietokannan rinnakkaiskäsittely ja tietenkin multi-tenancy-projekti, jossa yksi tietokanta palvelee monta yritystä vuokrasovellusratkaisuissa. Hän on myös yksi harvoista Progresskehittäjistä, jotka ohjelmoivat edelleen Assemblerilla, kun tarve siihen ilmenee. Richard keskustelee mielellään kaikkien OpenEdge-tietokannan käyttäjien kanssa tietokantaan tarvittavista uusista ominaisuuksista. FinPUG-2014:ssa hänen aiheinaa ovat tietenkin tietokanta-asiat: Tietokantataulujen horisontaalinen partitiointi Mitä uutta OpenEdge tietokannan versiossa 11

8 SIVU 8 FINPUG NEWS Mallit eli templatet ovat olemassa CRM-sovelluksiin, Onlinetutkimuksiin ja kyselyihin, yhteystietojen hallintaan, koululuokkien aikataulutukseen, toivomusten pyyntöjärjestelmiin, yhteisöfoorumeihin ja moniin muihin. Näitä malleja voidaan käyttää sellaisenaan, räätälöidä, varustaa omalla brändillä tai tuotemerkillä sekä laajentaa lisäämällä niihin toiminnallinen moduuli uutuutena tai laajennuksena nykyiseen järjestelmään. Suurin Progresskäyttäjäkerho on PEG! Nämä voidaan ottaa käyttöön käyttämällä Progress Pacific pilveä tai paikallisesti. Ja meidän pitäisi huomata, että sovelluksen ja paikallisen tai Arcade-pilvessä toimivan OpenEdge-sovelluksen välinen yhteys vaihtelee käyttöasennuksen perusteella... Mutta jos sinulla on kysymyksiä, tutustu vilkkaaseeb keskusteluun, jota käydään foorumeilla: Mobiili-ja web-sovelluksista on tullut vaatimus monilla tuotannonaloilla ja erottuva tekijä muille. Ota vapaa koeajo Rollbasella ja katso mitä se voi tehdä Sinulle! Liity jo tänään: Progress Rollbase työpaja Majvik FinPUG 2014 seminaarin yhteydessä on mahdollisuus osallistua Progress Rollbase työpajaan. Se on suomen kielellä pidettävä kädestä pitäen-opetustilaisuus, jossa osallistujat luovat lyhyessä ajassa heti käyttöönotettavan apaas-sovelluksen. Saat omakohtaisen kokemuksen Progress Rollbasen tekniikasta. Tule siis paikalle jo torstaina aamulla kello 9:30. ** Jos et ehdi paikalle, ja sinulle kelpaa englanninkielinen Rollbase Workshop, klikkaa tätä:

9 FINPUG NEWS SIVU 9 EMEA PUG Challenge 2013 / Bryssel Osallistuin 8 muun suomalaisen kanssa neljänteen EMEA PUG Challenge tapahtumaan 6-8. marraskuussa 2013 Brysselissä. Yhteensä osallistujia oli maasta. Tapahtuma on jokasyksyinen: Ensimmäinen järjestettiin 2010 Kölnissä, sitten 2011 Amsterdamissa ja 2012 Manchesterissa. Alunperin tämä tapahtuma perustettiin korvaamaan Progressin järjestämiä käyttäjäkokouksia. Finanssikriisin takia Progress peruutti vuoden 2009 kokouksensa, ja muutti sen netin kautta pidettäväksi, joita pidettiinkin parina vuonna. Nyt Progress järjestää vuosittaisia käyttäjäkokouksia, mutta vain USA:ssa - tänä vuonna kolmatta kertaa. Sielläkin on vakiinnutettu käyttäjien itselleen järjestämä "PUG Challenge Americas", joka järjestetään joka vuonna alkukesällä. EMEA PUG Challenge on käyttäjäkerhojen yhteistyöhön perustuva. Järjestelytoimikunta koostuu maiden kerhojen puheenjohtajista. Kolmessa ensimmäisessä FinPUG:ia edusti Jouni Kokkonen, viime vuonna Matti Kiviranta. PUG Challenge paranee vuosi vuodelta Kolmeen tai kahteen päivään saadaan mahdutetuksi runsaasti tiiviitä ja laadukkaita esityksiä, joista saa irti niin paljon kuin riittää vastaanottokykyistä energiaa. Kolmipäiväinen tilaisuus oli itselleni suorastaan antoisa: Ensin kaksi neljätuntista koulutus-workshoppia aiheina Progress Rollbase ja Progress Mobile. Molemmissa tehtiin sovelluksia: Rollbasella CRM-websovellus ja Mobiililla mobiilisovellus asiakastietojen ylläpitoon. Seuraavat kaksi päivää menivät pääosin breakout-luennoilla, joissa keskityin uusiin tuotteisiin ja OpenEdgen uusiin ominaisuuksiin. Kokouksessa mukana olivat myös Progressin osuudet, joissa yhtiön tilannetta ja tulevaisuutta esiteltiin. Meille esiintyi myös uusi pääjohtaja Philip Pead. Hän vaikuttaa pätevältä ja sopivalta tehtäväänsä: 25 vuoden kokemus sovellusalalta näkyi hänen ymmärryksessään siitä, mikä on Progressin ja sen kumppanien vahvuudet ja sen mukaisesti osannee johtaa yhtiötä tulevaisuuteen. Hän myös ohimennen mainitsi, että firma on velaton ja käteistä rahaa on 100 miljoonaa dollaria. Progress Pacific Nykyisen tilanteen taustana on se, että toissa vuonna Progress karsi toimintaansa ja päätti keskittyä OpenEdge-tuotteisiinsa. Tässä yhteydessä mm. Sonic sanomanvälitys- ja ESB-tuotteista luovuttiin. Nyt Brysselissä puhuttiin jo avoimesti kymmenen vuoden "sekoilusta", josta nyt on siis opittu ja palattu kaidalle tielle. (Arviointieroja on siinä kestikö tämä jakso 5, 10 tai 15 vuotta.)

10 SIVU 10 FINPUG NEWS Progressin ominaisuus on aina ollut olemassa olevien sovellusten tukeminen, mutta samalla tehdään tuotteita ja ratkaisuja, joilla nämä sovellukset vastaavat ympäristön muutoksiin ja tulevaisuuden haasteisiin. Uusissa tuoteratkaisuissa näkyvät erityisesti sovellusten siirtyminen palveluiksi ja vuokrasovelluksiksi. Sovellusten pitää toimia pilvessä SaaS- ja PaaS-palveluina. Tästä tuotekokonaisuudesta käytetään nimeä nyt Progress Pacific. Progress OpenEdge-sovellusten siirrettävyys PaaS-sovelluksiksi on helpottunut huomattavasti, kun versiossa 11 tietokantaan tehtiin multi-tenancy-optio. Tällöin yksi tietokanta ja installaatio pilvessä voi palvella useampia asiakkaita ilman, että sovelluskoodiin tarvitaan muutoksia. Mobiililaitteet Mobiililaitteita varten Progress teki viime keväällä OpenEdge Mobile sovelluskehittimen. Myös monella ohjelmistotalolla oli Brysselissä esitteillä omia toinen toistaan hienompia ratkaisujaan, joilla sovelluksia käytetään älypuhelimella tai tabletilla. (Microsoftin käyttöliittymä ja.net eivät olleet konferenssissa kovin voimakkaasti esillä.) Progress Pacific ei ole pelkästään Progress OpenEdge-tuoteperhe (tietokanta, clientit, appserverit). Siihen kuuluu myös uusia tukijalkoja: OpenEdge BPM (Business Process Management) perustuu aikaisemmin hankittuun Savvion-tuotteeseen. Savvion-tuotteet myytiin pois mainitun karsinnan yhteydessä, mutta Progress piti lähdekoodin ja nyt BPMominaisuuksia integroidaan OpenEdgeen ja sitä kautta OpenEdgesovelluksiin. Kyse on toimintaorganisaatioiden prosesseista ja tehtävien ketjuttamisesta eri vastuualueiden välillä ja tämän kytkemisestä liiketoimintasovelluksiin. OpenEdge Corticon on business-logiikan hallintajärjestelmä. Kaikki tiedämme, että OpenEdge:n ohjelmointikieli ABL (a.k.a. Progress 4GL) on markkinoiden paras business-logiikan ohjelmointikieli. Nyt tämän toteuttamiseksi tuodaan lisää vaihtoehtoja. Corticonin lähestymistapa business-logiikkaan perustuu sääntöjen ylläpitoon tietokannassa. Hyvä sovellusesimerkki on sääntötietokanta lääkkeiden yhteisvaikutuksesta ja terveysriskeistä. Ennen kuin henkilölle X määrätään uutta lääkettä, olisi hyvä tietää taustatietoja henkilöstä (ikä, sukupuoli, sairaudet, perinnöllisyydet, allergisuudet, elintavat jne.) ja hänen jo käyttämistään lääkkeistä. Sääntökokonaisuus voidaan tietenkin ohjelmoida IF THEN ELSE- ja CASE, WHEN tekniikoilla tai monimutkaisemmin parametroimalla säännöt sovelluksen tietokantaan. Tällä tavalla rakennettu säännöstö on hankalaa ylläpitää. Corticonissa loppukäyttäjät itse ylläpitävät säännöstöä.

11 FINPUG NEWS SIVU 11 Toinen ongelma on sääntöjen testaus: Miten voidaan olla varmoja, että kaikki sääntöjen kombinaatiot on otettu huomioon tai ovatko säännöt keskenään päällekkäisiä? Corticon osaa tarkistaa säännöstön molemmat ominaisuudet. Säännöstön monimutkaisuuden kasvaminen yleensä vähentää päättelyn suoritustehoa eksponentiaalisesti. Corticonissa kuitenkin vain lineaarisesti patentoidun tekniikan ansiosta. Rollbase on oliopohjainen JavaScript-kieltä käyttävä point-and-click sovelluskehitin web-sovelluksille. Kehittäminen tehdään suoraan kohdeympäristössä eli verkossa uudelleenkäytettäviä olioita yhdistellen. Tuote ostettiin kalifornialaiselta startupilta. Näissä kaikissa kolmessa lähiaikojen haasteena on yhdistetty sovelluspalvelin (Unified AppServer), joka palvelee kaikkia sovelluksia ja osaa suorittaa sekä ABL-, JavaScript ja Java-koodia. Sitä saamme vähän aikaa odotella. Tämän vuoden EMEA PUG Challenge Conference pidetään Düsseldorfissa marraskuuta. Merkitse päiväys kalenteriisi, ja ilmoittaudu mahdollisimman aikaisin Super Early Bird-hinnalla. FinPUG-jäsenet saavat vielä lisäalennuksen! Teppo Määttänen Rollbase työpajassa opittiin JavaScript-ohjelmointi Point and Click menetelmällä. OpenEdge Mobile työpajassa tehtiin asiakkaiden ylläpitosovellus sports2000- tietokantaan

12 SIVU 12 FINPUG NEWS Velen tutkimusmatka olioiden ihmeelliseen maailmaan Kysymys ei useinkaan ole menetelmästä tai välineestä, vaan miten sillä on asioita tehty. "Missä pihvi, miettii kasvissyöjä." Mitä hyötyjä Object Oriented ABL-ohjelmointi voi antaa? Voiko olioilla tehdä jotain paremmin tai helpommin kuin ilman niitä? Vai onko olio-ohjelmointi vain saman asian tekemistä toisella tavalla? Näitä kysymyksiä minulla oli mielessä, kun aloin miettimään tätä juttua. Ohjelmistokehityksen alusta asti on ollut tavoitteena rakentaa yleisiä komponentteja, joista loppusovellus kootaan. Näitä komponentteja on kutsuttu eri aikoina ja eri malleissa erilaisilla nimillä kuten sovellusrungot, templatet, moduulit tai yleiset luokat. Idea ja tavoite on näiden yleiskäyttöisten osien osalta sama. Niillä pyritään yleistämään eli abstraktoimaan toistuvia osia ohjelmarakenteista. Tällä tavoitellaan sitä, että varsinaisen sovelluksen tekeminen on helpompaa ja nopeampaa, muutettavuus ja rakenteen hahmottaminen helpompaa, sovellukset ovat virheettömämpiä ja uusille kehittäjille helpompia omaksua. Eli tiivistettynä haetaan tuottavuutta ja sitä kautta taloudellisuutta. Kuten muutkin ohjelmointimallit ja uudet työkalut tätä samaa lupaa myös olio-ohjelmointimalli. Halusin ottaa selvää mitä tuo käytännössä tarkoittaa. Mitkä asiat voi tehdä paremmin ja helpommin kuin proseduureihin ja funktioihin perustuvilla ABL-ohjelmilla.

13 FINPUG NEWS SIVU 13 Minulla oli aavistus ja toive siitä, missä saisin itselleni suurimmat edut. Olin hyvin iloinen, kun tuo toive näyttää oliomallissa toteutuvan. Yllätyin muutenkin positiivisesti enkä pelkästään siinä, että huomasin taas kerran vanhan koiran voivan oppia uusia temppuja :) Hiukan historiaa Itse aloitin ohjelmoinnin Progressilla 1987 aikana kauan ennen kuin Progress 4GL-kielessä oli aliproseduureja, funktioita tai esiprosessorimuuttujia puhumattakaan dynaamisista objekteista. Noihin aikoihin ei buffereita välitetty ohjelmista toiseen. Siihen aikaan include-tiedostot olivat tärkeä tapa tehdä yleiset osat sovellusta. Jos oikein muistan, ei alkuvaiheessa voinut include-tiedostoon välittää edes parametreja. Kieli kehittyi ja aikojen kuluessa Progress alkoi lisäämään ominaisuuksia, joiden avulla saatiin oliokielten tarjoamia piirteitä. Isoja muutoksia olivat viittaaminen "objekteihin" osoittimen (handle) avulla ja välittämällä osoitin ohjelmien välillä, persistentit ohjelmat, aliohjelmien ja funktioiden kutsuminen toisissa ohjelmissa, SUPERproseduurit ja dynaamiset ohjelmarakenteet. Nuo uudistukset mahdollistivat entistä paremmin yleiskäyttöisten komponenttien rakentamisen. Tuosta tulikin mieleen ensimmäiset työvuoteni 1980-luvun loppupuolella, jolloin tein ohjelmia kauppojen kassajärjestelmiin. Kassat olivat kalliita erikoislaitteita. Mitä enemmän kassa muistutti ominaisuuksiltaan PC:tä sitä kalliimpi ja hienompi se oli. Minulle heräsi kysymys, miksi ei käytetä suoraan monta kertaa halvempia PC-laitteita, joissa on paljon isompi näyttö ja siihen voi tehdä ohjelmia Progressilla assemblerin tai C-kielen sijaan. Progressin suhde oliomalliin oli vähän samanlainen. Progress 4GL lähestyi sitä, mikä oli jo olemassa - oliomalli. Lopulta Progress teki lopullisen ison harppauksen ja lisäsi Progress-kieleen oliomallin mukaiset osat. Yleensä olen ottanut käyttöön Progress-kielen uudet ominaisuudet sitä mukaa kun niitä on tullut, mutta oliomalli oli poikkeus. Tutustuin kyllä pian oliomalliin ja piirteisiin niiden tullessa lukemalla Progressin käyttöohjeissa olevan hyvän oppaan jo elokuussa Nykyisin tuo opas löytyy dokumentaatiosta nimellä "OpenEdge Development: Object-oriented Programming" ja sitä voin suositella. Olen vuosien aikana kuunnellut ison joukon luentoja olioaiheesta. Myöhemmin olen käyttänyt olioita kehittäessäni sovelluksia OF-1- ja Skin-Client Mobilekehitystyökaluilla. On kuitenkin eri asia käyttää toisten tekemiä valmiita komponentteja kuin tehdä niitä itse. WAF-ohjelmarungon muuttaminen Object Oriented ABL-malliin Olin kehittänyt itselleni OpenEdge Reference Architecture:n mallin mukaisen sovellusrungon (WAF), mutta olin toteuttanut sen proseduureilla ja funktioilla. Olin rakentanut rungon sellaiseksi, että suurin osa yleisistä ominaisuuksista oli sijoitettu yleisiin ohjelmakirjastoihin. Jako oli hyvin tehty, mutta en ollut täysin tyytyväinen. Tiesin, että voisin järjestellä yleisten osien paikkoja ja vähentää koodia varsinaisissa sovellusohjelmissa ja siirtää sitä yleisiin osiin - samaan tapaan kuin matematiikassa sievennetään yhtälöitä. Pelkäsin, että liika yleistäminen tekisi ohjelmien muuttamisen haastavammaksi. Halusin pitää sovellusohjelmat selkeästi hahmotettavina.

14 SIVU 14 FINPUG NEWS Nyt halusin saada selville pystynkö toteuttamaan yleiset osat paremmin oliomallin avulla ja mikä onnistuisi paremmin. Valmistautuminen Päätin siis sukeltaa syvemmälle olioiden ihmeelliseen maailmaan. Perusteet olivat siis tuttuja. Aloitin verryttelyn lukemalla kirjan Ohjelmistotuotanto (Ilkka Haikala, Jukka Märijärvi) ja siitä erityisesti oliosuunnitteluun ja -ohjelmointiin liittyvät osuudet. Kirjassa korostettiin, että oli toteutusmenetelmä mikä tahansa, hyvään lopputulokseen edellytyksenä on huolellinen suunnittelu. Olio-ohjelmoinnissa suunnittelun tärkeys korostuu entisestään. Eikä varmaan kenellekään ole yllätys se, että kaikilla mahdollisilla menetelmillä ja työkaluilla voi tehdä huonoa jälkeä. Kysymys ei useinkaan ole menetelmästä tai välineestä, vaan miten sillä on asioita tehty. Olio-ohjelmointiin liittyy joukko omaa sanastoa. Vaikka ne saattavat alussa tuntua oudoilta, ei kannata hätkähtää. Käsitteillä on olio-ohjelmoinnissa oma tarkka merkityksensä, mutta niillä tarkoitetaan samoja asioita ja rakenteita, joita kehittäjät ovat aina etsineet ja joita he ovat eri tavoin ratkaisseet. Kirjassa todettiinkin, että kokeneen kehittäjän mielestä oliomallissa ei ole varsinaisesti uutta ja näin kirjan mukaan pitäisikin olla. (Poimin tuosta kirjasta oliosanastoa, jonka laitan jutun loppuun. Samat käsitteet on kuvattu Progressin oppaassa.) Jatkoin lämmittelyä katsomalla kahdeksanosaisen videosarjan. Siinä John Sadd esittelee esimerkein OO-ABL-piirteitä. Noiden avulla sai hyvän yleiskuvan. Tuo sarja löytyy https://community.progress.com ja sieltä hakusanalla ABL Videos: Introduction to ABL Classes. Kilautin myös kavereille eli kirjoitin kokeneille OO-ABL kehittäjille. Stefan Freystätter (IAP) on kokenut Java-kehittäjä, joka hallitsee nykyisin hyvin Progress-kielen. Bernd Hellman (IAP) on kokenut ABL-kehittäjä, joka on pitkään kehittänyt OO-ABL-kielellä mm. Skin-Client ja Skin-Client Mobile oliorajapintaa. Ensimmäinen ja tärkein vinkki oli se, että syvemmin voi oppia vain tekemällä. Stefanin kokemuksen mukaan oliomallin oppiminen on yksilöllistä kuten kaikki muukin oppiminen. Jotkut omaksuvat oliomallin intuitiivisesti eli ymmärtävät sen hyötyineen luonnostaan, toiset joutuvat tekemään enemmän työtä oppimisen eteen ja jotkut eivät koskaan sisäistä mallia. Oma kokemukseni on, että sama pätee muidenkin mallien ja työkalujen osalta. Kysyin mitä hyötyä Stefan ja Bernd näkevät oliomallissa. Tässä heidän vastauksiaan: - käännösaikainen syntaksin tarkistus (vrt. RUN lause) - vähemmän päällekkäistä ohjelma koodia ja r-koodia (vrt. include) - pakottaa selkeämpään kehittämiseen - helpompi tapa esittää todellisen sovelluksen malleja - aidot oliot - helpompi toteuttaa yleisiä ohjelmanosia (vrt. super procedure, include) - olioiden automaattinen siivoaminen muistista - garbage collector (vrt. delete object) - työvälineiden tuki ja integraatio kieleen Eclipse-ympäristössä Tämä kuulosti hyvältä, mutta miten se käytännössä näkyisi ja mikä olisi helpompaa?

15 FINPUG NEWS SIVU 15 Suurin odotukseni oli kontekstin (bufferit, temp-taulut, muuttujat...) eli sovellusohjelman käsittelyssä olevien tietojen välittäminen yleiseen osaan. Omassa WAF-rungossani olin toteuttanut yleiset osat proseduureina. Sovellusohjelmassa oli oma konteksti (bufferit, temp-taulut, muuttujat...) ja yleisessä osassa oma. Jos yleinen osa tarvitsi jotain tietoa, se piti välittää sinne. Vaikka tietojen välittäminen proseduurien välillä on helpottunut (handle, buffer, dataset), silti välittäminen asettaa haasteita ja vaikeuttaa ohjelman hahmottamista. Omassa WAF-ohjelmarungossani olivat esim. yleiset ominaisuudet tietojen haulle, näytölle, talletukselle, lisäykselle ja poistolle. Ylläpito-ohjelmassa käsiteltiin yhtä tiettyä taulua esim. asiakas. Kun yleisissä osissa käsittelin esim. asiakasta, täytyi tarvittavat asiakkaan tiedot välittää sinne. Olin ratkaissut asian pitämällä välitettävät kontekstitiedot temp-taulussa ja välittää ne siinä. Kyllä se toimi, mutta tiesin, että täytyy olla parempi ratkaisu. Ja totta - oliomalli ratkaisee tämän haasteen! WAF-ohjelmarungossa Business Entity kerros sisältää tietokantaa käsittelevät osat ja se voi olla eri koneessa kuin käyttöliittymäosat. Se on itsenäinen kerros ja ensimmäisessä vaiheessa en koskenut siihen. Pystyin käyttämään olioistani BE-palveluja ilman muutoksia BE-ohjelmiin. Aloitin siis käyttöliittymästä. Jaoin ylläpitoon liittyvät yleiset osat kahteen luokkaan. Ylimmässä luokassa BE-services on yhteydet BE- kerrokseen ja kaikki BE-palveluja tarvitsevat luokat voivat käyttää tuota luokkaa. Tätä alempi luokka update-container sisältää yleiset tauluista riippumattomat palvelut (haku, näyttö, talletus, lisäys, poisto...). Alimpana on varsinainen sovellusohjelma esim. customer-container. Tämä perii update-container ominaisuudet ja sen yläpuolella olevan BE-services luokan ominaisuudet (kuva: Luokka-esimerkki). Tässä oli minulle päivän kasvispihvi: Kun customer-container käynnistetään se perii ylemmät luokkansa ja niiden kaikki ominaisuudet. Ylemmät luokat eivät ole erillisiä ohjelmia, vaan niiden ominaisuudet tulevat osaksi customer-containeria. Eli käytännössä ylemmissä luokissa määritellyt muuttujat, propertyt, temp-tablet, bufferit, metodit ovat käynnistetyn luokan käytössä. Samoin yleisluokka update-container voi huoletta käyttää ja muuttaa isäluokkansa BE-services ominaisuuksia ja metodeja kuin omiaan. Ja nehän ovat omia, koska ne ovat perintöä. Tämä jos mikä poisti hyvin paljon ylimääräistä koodia ja teki varsinkin sovellusohjelmista lyhyitä ja ytimekkäitä. Pystyin siirtämään suurimman osan koodista ylempiin luokkiin. Tämä johtui siitä, että turha tiedon välittäminen sovellusohjelman ja yleisenosan välillä poistui.

16 SIVU 16 FINPUG NEWS Itse yritän löytää esimerkkejä jostain vanhasta tutusta. Ohjelmoijan näkökulmasta voisi ajatella, että ylemmät ohjelmat käyttäytyvät kuin include-tiedostot - siis include-tiedostoja, joista meitä Progress-kehittäjiä on varoiteltu ja suositeltu siirtymään proseduureihin ja funktioihin. Ohjelmassa voi viitata mihin tahansa include-tiedostossa määriteltyyn osaan (muuttujat, bufferit, temp-taulut) - luonnollisesti, koska kääntäjä kopioi include-tiedoston sisällön ohjelmakoodiin. Mitä haittaa include-tiedostoista sitten on ja miksi niistä varoitetaan? Jos yleisessä osassa oleva ohjelmakoodi kopioidaan jokaiseen ylläpito-ohjelmaan, käännettyjen r-ohjelmien koko on hyvin suuri. Toinen iso haaste on selkeys ja hahmotettavuus. Siihen voi tietysti vaikuttaa hyvällä suunnittelulla. OpenEdge Architect / Studio on tiukasti kytketty tukemaan OO-ABL olioita Eikö sitten samat ongelmat kuin include-tiedostoilla tule vastaan olioiden kanssa? Itselleni toinen todella suuri iloinen yllätys oli se tuki, mitä OpenEdge Architect / Studio antaa olioille. Ilman kehitysvälineen tukea vähänkin monimutkaisissa sovelluksissa kehittäminen ja ohjelman hahmottaminen olisi lähes mahdotonta. Mutta koska oliorakenne on selkeä ja yleispätevä, kehitysvälineiden on helpompi ymmärtää sitä. Vaikka ohjelma koostuu useasta eri luokkatasosta, käytännössä käyttämällä olioluokkia ohjelmien hallittavuus ja hahmotettavuus on helppoa ja voisi jopa sanoa hauskaa. Kun "perinteisessä" ohjelmoinnissa viitataan handle-muuttujaan tai ajetaan toisen ohjelman aliohjelmia, ei voida tietää viittaako handle oikeantyyppiseen objektiin tai ovatko parametrit oikein. Olio-ohjelmissa handlen sijasta käytetään muuttujaa, joka on tyyppiä oliotyyppi. Voisi ajatella, että muuttuja on handle, josta on kerrottu minkä tyyppisen objektin handle se on. Ilman olioita koodi voisi olla tällainen: DEFINE VARIABLE hcustomercontainer AS HANDLE NO-UNDO. RUN wonne/pro/customer-container.p PERSISTENT SET hcustomercontainer. RUN openrow (1) IN hcustomercontainer. Vastaavasti oliotyyliin: DEFINE VARIABLE ocustomercontainer AS CLASS wonne.customer-container.cls NO-UNDO. ocustomercontainer = NEW wonne.customer-container(). ocustomer:openrow(1). Muuttujaan ocustomer ei voi tallettaa muuta kuin wonne.pro.customer-container.cls object-handlen. Kääntäjä ja työkalut tietävät siis tarkkaan mitä metodeja ocustomer-handlessa voi olla. Kirjoittamalla ocustomer: saadaan lista mahdollista metodeista, muuttujista tai propertyistä. Tai tarkkaan ottaen niistä, joihin ko. ohjelmalla on oikeus. Metodien, muuttujien ja propertyjen määrittelyssä voidaan määritellä, kuka saa niitä käyttää (PUBLIC, PROTECTED, PRIVATE). Jos openrow metodia ei löydy wonne.pro.customer-container.cls luokasta tai sen isäluokista, ohjelma ei käänny. Jos parametri on väärää tietotyyppiä tai parametri puuttuu, ohjelma ei käänny. Käytännössä vähänkin monimutkaisissa sovelluksissa tämä alkaa nopeasti tuntua mukavalta. Ilman olioita kehittäjän pitää olla hyvin tarkkana ja joidenkin virheiden selvittäminen oli hankalaa. Olen kokeillut myös olioiden debuggausta Progress Debuggerilla, ja myös se tuntuu helpommalta olioiden kanssa.

17 FINPUG NEWS SIVU 17 Propertyt yksinkertaistavat koodia Olio voi määritellä muuttujan kahdella tavalla: variable tai property. Molempiin voi viitata suoraan toisesta ohjelmasta tyyliin ocustomer:rowavailable, jos siihen on lupa (PUBLIC, PROTECTED tai PRIVATE). Property mahdollistaa erikseen määrittelemään eri oikeudet luvulle ja kirjoittamiselle (GET ja SET). Moni tieto voi olla saatavissa kaikkialla (PUBLIC), mutta päivitettävissä vain sen määrittelevässä luokassa (PRIVATE) tai myös sen aliluokissa (PROTECTED). Lisäksi propertyn määrittelyyn voi kirjoittaa logiikkaa. Esim. DEFINE PUBLIC PROPERTY rowavailable AS LOGICAL NO-UNDO GET: IF VALID-HANDLE(hEntityBuffer) AND hentitybuffer:available THEN RETURN YES. ELSE RETURN NO. END GET. PRIVATE SET. Tämä on yksinkertainen esimerkki, mutta logiikka voi olla hyvinkin monimutkainen. Voidaan kutsua vaikka metodia property-asetuksen sisällä. Ulospäin kiinnostaa vain tuo yksittäinen tieto, mutta sen muodostuslogiikka on olion sisäistä tietoa ja se tehdään vain yhdessä paikassa. Staattiset oliot näkyvät kaikille Sovelluksissa on paljon tietoa, joka on sovellusistunnon aikana muuttumaton eli staattinen. Tällaista tieto on usein käyttäjään (kieli, tunnus), yritykseen (osasto, yritystunnus) tai ulkoasuun (värit, fontit) liittyvät tiedot. Oliot sopivat erinomaisesti yhteisten tietojen hallintaan ja jakamiseen. Oliot voivat olla staattisia, jolloin ne näkyvät kaikille. Myös esim. temp-tablet, muuttujat ym. voivat olla stattisia. Hyviä käyttökohteita staattisille osille ovat esim. käyttöoikeustiedot, virheiden käsittely tai kieliversiointi. Staattisiin olioita ei "käynnistetä" eli uutta instanssia ei luoda. Niihin viitataan suoraan niiden nimellä. Esim. staattinen luokka wonne/component/c-session.cls jossa on määritelty property UserId. DEFINE STATIC PUBLIC PROPERTY UserId AS CHARACTER NO-UNDO GET. PRIVATE SET. Login-ohjelmassa arvo asetetaan ja sitä voi käyttää mistä tahansa istunnon ohjelmasta: MESSAGE wonne.components.c-session:userid. Staattiset osat muistuttavat toiminnaltaan perinteisiä GLOBAL-määrityksiä, joissa piilee iso vaara. Mistä tahansa sovelluksen osasta GLOBAL-määriteltyä tietoa voi muuttaa. Staattisten osien

18 SIVU 18 FINPUG NEWS merkittävä ero on se, että esim. propertyn voi määritellä niin, että luku on mahdollista kaikille, mutta arvon päivitys on mahdollista vain propertyn määrittelevässä luokassa. Räätälöiminen luomalla uusia olioita periyttämällä Olioista on helppo tehdä uusia versioita. Kun olio perii ylemmän luokan, sillä on kaikki ylemmän luokan ja sitä ylempien luokkien ominaisuudet. Eli jos uudessa luokassa ei ole määritelty mitään, se on sama kuin luokka, josta peritään. Alempaan luokkaan lisätään vain ne ominaisuudet ja metodit, jotka laajentavat tai poikkeavat ylemmästä luokasta. Oma WAF-kehykseni käyttää Skin-Client käyttöliittymää. Otin käyttöön tämän kokeen yhteydessä Skin-Client oliorajapinnan. Esim. Skin-Client frame on olioluokka nimeltä P-FRAME. Tuolla P-FRAME oliolla on paljon erilaisia ominaisuuksia. Halusin muuttaa tiettyjä oletuksia ja loin uuden olioluokan WO-FRAME, joka perii P-FRAME:n. Määrittelin WO-FRAME luokkaan poikkeavat asiat. Tässä esimerkissä sijainti on taustan sinivalkea liukuväri ja automaattinen koon skaalaus ylemmän komponentin koon mukaan. CLASS wonne.wo-components.wo-frame INHERITS P-FRAME: CONSTRUCTOR PUBLIC WO-FRAME (oclass AS CLASS Progress.Lang.Object): SUPER(oClass). ASSIGN THIS-OBJECT:ANCHORS = "LEFT+TOP+RIGHT+BOTTOM" THIS-OBJECT:X = 1 THIS-OBJECT:Y = 1. THIS-OBJECT:SET-GRADIENT-PAINT (0, /* X1 */ 0, /* Y1 */ (J-COLOR:get-Color(190,220,255)), /* Color RGB */ 0, /* X2 */ 300, /* Y2 */ (J-COLOR:get-Color(255,255,255)), /* Color RGB */ NO). /* Cyclic */ END CONSTRUCTOR. END CLASS. Kun uusi instanssi WO-FRAME luodaan (NEW WO-FRAME), sille asetetaan automaattisesti esimerkissä määritellyt arvot. Tämän lisäksi rakensin uusia monimutkaisempia olioita, joissa käytin useita eri Skin-Client olioita. Esimerkkinä toolbar ja ylläpito-container, jossa on tietynlainen otsikko-osa ja muita yleiskäyttöisiä ominaisuuksia. Vaikka nämä sisäisesti koostuvat useista eri olioista, ulospäin ne näkyvät yhtenä oliona, jolla on yhdet ominaisuudet.

19 FINPUG NEWS SIVU 19 Onko olioista apua apua? Kyllä on ja paljon. Oliomalli antaa kehittäjälle uusia mahdollisuuksia ja tekee työskentelyn helpommaksi. Itse innostuin ja tekeminen niiden kanssa oli odotettua helpompaa ja jopa hauskaa. OpenEdge Architectiä / Studio-työkalu tarvitaan. Olioiden avulla yleisistä osista saadaan selkeämpiä, tiiviimpiä ja helpommin käytettäviä. Varsinaiset sovellusohjelmat saadaan tiiviiksi, mutta silti hahmotettavuus ja muutettavuus säilyy. Ylemmän luokan metodeja ja muuttujia voi alemmassa luokassa korvata erilaisella toteutuksella, kun poikkeuksia tarvitaan. Hienoa on se, että Progress ei pakota yhteen malliin. Proseduureista voi käyttää olioita ja olioista voi käyttää proseduureja. Tämä mahdollistaa sen, että muutosta voi tehdä kuin söisi elefanttia pala palalta. Stefan ja Bernd olivat oikeassa. Olioista saa kunnon otteen vain itse kokeilemalla. Veli-Matti Korhonen Wonne Oy Progress on tehnyt arkkitehtuuria esittelevän autokaupan mallisovelluksen. AutoEdge on toteutettu objekteilla ja se löytyy osoitteesta: https://community.progress.com/technicalusers/w/openedgecloudarcade/832.autoedge-2-0.aspx Oliosanastoa Abstract class - Isäluokka jolla ei ole ilmentymiä Instance - Olion ilmentymä (instanssin luonti NEW-lauseella) Class - Koteloinnin yksikkö (OE.cls) Attribute - Ominaisuus, ilmentymä Method - Funktio, proceduuri, palvelu, operaatio, aliohjelma Message Veli-Matti Korhonen - Viesti, aliohjelmakutsu Inheritance - Periytyminen, lapsiluokassa isäluokan attribuutit ja metodit Specialization - Erikoistaminen, uuden luokan tekeminen periyttämällä Generalization - Uuden yhteisen isäluokan luominen Aggregation - Koostaminen, käytetään olion komponentteina muita olioita Overloading - Kääntäjä valitsee käytettävän metodin saman nimisistä metodin parametrien perusteella Polymorfism - Eri olioilla saman nimisiä metodeja ja attribuutteja./..

20 SIVU 20 FINPUG NEWS Progress Exchange 2013-raportti Muutaman vuoden tauon jälkeen Progress järjesti viime syksynä Bostonissa Progress Exchange-konferenssin, johon osallistui kehittäjiä, myyjiä, liiketoimintajohtoa ja muita alan ammattilaisia yli 30:sta eri maasta; yhteensä osallistujia oli n Konferenssi alkoi sunnuntai-iltana vapaamuotoisella verkostoitumistilaisuudella, jolloin pääsimme keskustelemaan mm. Progressin kehityksestä vastaavien ihmisten ja muista maista tulleiden kollegoiden kanssa. Suomesta ei tainnut osallistua muita kuin kolme meiltä CGI:ltä, kaksi LTC-Otsosta, kaksi LähiTapiolasta ja Niemisen Jarmo Progressilta. Maanantain aluksi Progressin melko tuore toimitusjohtaja Phil Pead piti alustuspuheenvuoron, jossa lanseerattiin Progressin uusi logo ja ilme. Phil toi hyvin vahvasti esiin sen, että Progress on nyt uudistunut ja pyrkii paremmin kohdistamaan tekemisiään valittuihin tekniikoihin pyrkien niissä johtavaan teknologia-asemaan. Phil myönsi, että Progress oli monta vuotta sivuraiteella eikä kuunnellut asiakkaita tarpeeksi. Nyt ollaan hänen mielestään "back on track". Kuvaavaa oli yhden pitkäaikaisen Progress-työntekijän luonnehdinta, että viimeisen vuoden aikana Progressilla on tapahtunut enemmän kehitystä kuin 10 edellisen vuoden aikana yhteensä. Myös markkinointiin tullaan panostamaan entistä voimakkaammin ja tuomaan Progress paremmin ihmisten tietoisuuteen. Tämä näkyi myös konferenssin järjestelyissä näyttävine ulkomainoksineen. Samalla on uudistettu myös Progress Community -portaali (https://community.progress.com/). Aiemmin kesällä 2013 julkistetun Progress Pacificin merkitys tarkentui myös alustuspuheenvuoroissa. Progress Pacific on Progressin kuvauksissa PaaSratkaisu (Platform as a Service). Käytännössä se vaikuttaa olevan lähinnä markkinoinnillinen "sateenvarjo", jonka alla on mm. OpenEdge, Rollbase (kesällä 2013 tehty hankinta web-sovellusten tekemiseen), DataDirect (integrointiväline) ja Corticon (sääntökoneisto). Myös täysin uusi tuote julkistettiin: Easyl. Sillä voidaan yhdistää eri lähteistä poimittua dataa helposti (tietysti!) ja viedä yhdistetty data esim. Exceltaulukoksi. Mitään demoa aiheesta ei nähty, joten tuotteen käytettävyys ja hyötyarvo jäi kysymysmerkiksi. Toivottavasti tämä ei osoittaudu taas yhdeksi harhapoluksi... Maanantain ja tiistain aikana olleissa tunnin mittaisissa sessioissa oli valinnanvaraa osittain liiaksikin: enimmillään tarjolla oli 14 yhtäaikaista sessiota! Aiheista oli voimakkaasti esillä mm. mobiili/web-kehittäminen ja BPM. Sessiot olivat laadultaan vaihtelevia (sekä sisällön että esittämisen puolesta), joistakin en saanut kovinkaan paljon irti uutta tietoa, mutta oli joukossa hyviäkin esityksiä.

1. Olio-ohjelmointi 1.1

1. 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ätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

Lisätiedot

19/20: Ikkuna olio-ohjelmoinnin maailmaan

19/20: Ikkuna olio-ohjelmoinnin maailmaan Ohjelmointi 1 / syksy 2007 19/20: Ikkuna olio-ohjelmoinnin maailmaan Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

Olio-ohjelmointi Javalla

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

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet 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ätiedot

HSMT J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &... HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000 Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->

Lisätiedot

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin 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ätiedot

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

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

Lisätiedot

työryhmien SharePoint-yhteistyötä helpottava ratkaisu

työryhmien SharePoint-yhteistyötä helpottava ratkaisu työryhmien SharePoint-yhteistyötä helpottava ratkaisu LIIKKEENJOHDON SUURIN HAASTE Modernin yrityksen on muutoksen kyydissä pysyäkseen suunniteltava tehokas strategia ja seurattava sitä. Siinä piilee kuitenkin

Lisätiedot

Muutamia peruskäsitteitä

Muutamia peruskäsitteitä Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä

Lisätiedot

UML Luokkakaavio 14:41

UML Luokkakaavio 14:41 UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,

Lisätiedot

Asiakas ja tavoite. Tekninen toteutus

Asiakas ja tavoite. Tekninen toteutus Asiakas ja tavoite Heikieli on vuonna 2015 perustettu yhden hengen asiantuntijayritys, joka tarjoaa käännös- ja oikolukupalveluita englannista ja saksasta suomeksi. Freelance-kääntäjiä on Suomessa paljon,

Lisätiedot

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi

Lisätiedot

Oppilaiden motivaation ja kiinnostuksen lisääminen matematiikan opiskeluun ja harrastamiseen. Pekka Peura 28.01.2012

Oppilaiden motivaation ja kiinnostuksen lisääminen matematiikan opiskeluun ja harrastamiseen. Pekka Peura 28.01.2012 Oppilaiden motivaation ja kiinnostuksen lisääminen matematiikan opiskeluun ja harrastamiseen Pekka Peura 28.01.2012 MOTIVAATIOTA JA AKTIIVISUUTTA LISÄÄVÄN OPPIMISYMPÄRISTÖN ESITTELY (lisätietoja maot.fi)

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse

Lisätiedot

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS

Lisätiedot

Visual Basic -sovelluskehitin Juha Vitikka

Visual 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ätiedot

2. Olio-ohjelmoinista lyhyesti 2.1

2. 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ätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

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

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Graafiset käyttöliittymät Sivunparantelu

Graafiset käyttöliittymät Sivunparantelu Graafiset käyttöliittymät Sivunparantelu Johdanto Tarkoituksenamme on parantaa Konebox.fi-verkkokaupan nettisivuja. Ensivaikutelman perusteella sivusto tuntuu todella kömpelöltä ja ahdistavalta. Sivu on

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

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

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P 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ätiedot

JUnit ja EasyMock (TilaustenKäsittely)

JUnit ja EasyMock (TilaustenKäsittely) OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

Lisätiedot

Testidatan generointi

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

Lisätiedot

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011 Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011 Yleistä olioista ja OOP:sta OOP, eng. Object Oriented Programming C#:ssa oliot luodaan käyttämällä (olio)luokkia Olio tarkoittaa yksinkertaisesti ohjelman

Lisätiedot

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

Lisätiedot

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

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

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode 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ätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi Business is evolving, you should too. MeeGo ulkona vai myöhässä? Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi Helsinki, Tampere, Turku, Stockholm, Göteborg www.tieturi.fi MeeGo YALMP (Yet

Lisätiedot

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia. 4. Periytyminen 4.1. Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

Pilviväylä projekti 24.1.2014

Pilviväylä projekti 24.1.2014 Pilviväylä projekti 24.1.2014 Tarkoitus ja tavoite Pilviväylän teknisten ratkaisujen tavoitteena on ratkaista ongelmia jotka liittyvät pilvipalveluiden hankintaan, saatavuuteen ja käyttöönottoon kouluissa.

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web 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ätiedot

Ammattijärjestäjä Aulasvuori Www-projektin kuvaus

Ammattijärjestäjä Aulasvuori Www-projektin kuvaus Ammattijärjestäjä Aulasvuori Www-projektin kuvaus Minne Seppälä Avat 2014 Dokumentaatio 1 PROJEKTIN KUVAUS... 3 1.1 Projektin aloitus... 3 1.2 Aikataulu... 4 1.3 Kustannusarvio... 4 2 ULKOASU... 5 2.1

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. 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ätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A 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ätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

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

Lisätiedot

Ammattimaista viestintää. Ruotsin asiatekstinkääntäjien liitto

Ammattimaista viestintää. Ruotsin asiatekstinkääntäjien liitto Ammattimaista viestintää kieliammattilaisten avulla Ruotsin asiatekstinkääntäjien liitto Dobrý den! Guten Tag! Hola! Bonjour! Hej! Hello! Shalom! Monikielinen maailmamme Maailman sanotaan pienenevän, mutta

Lisätiedot

MYYNTI- VALMENNUKSEN OSTAJAN OPAS MIISA HELENIUS - POINTVENUE

MYYNTI- VALMENNUKSEN OSTAJAN OPAS MIISA HELENIUS - POINTVENUE MYYNTI- VALMENNUKSEN OSTAJAN OPAS MIISA HELENIUS - POINTVENUE 8 ASIAA, JOTKA KANNATTAA HUOMIOIDA, KUN OSTAA MYYNTI- VALMENNUSTA 8 ASIAA, JOKTA KANNATTAA HUOMIOIDA KUN OSTAA MYYNTI- VALMENNUSTA Olen kerännyt

Lisätiedot

C++ Ohjelmoijan käsikirja. Johdanto

C++ Ohjelmoijan käsikirja. Johdanto Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen

Lisätiedot

Software product lines

Software product lines Thomas Gustafsson, Henrik Heikkilä Software product lines Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikan koulutusohjelma Asiantuntijateksti 17.11.2013 Sisällys 1 Johdanto 1 2 Software product

Lisätiedot

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu HAAGA HELIA/IltaTiko ICT2TD005: Ohjelmisto suunnittelutaito 1 VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu Tämä pikaopas opastaa käyttämään VisualStudion web sivujen suunnittelu ja toteutusominaisuuksia.

Lisätiedot

TermBase NET versio 1.0.1. (Beta)

TermBase NET versio 1.0.1. (Beta) TermBase NET versio 1.0.1. (Beta) Sulautettu sanasto- ja termikanta OHJEET TÄRKEÄÄ: Copyright M. Tuittu, 2005 Kaikki oikeudet pidätetään. TermBase NET on toteutettu java -tekniikalla. Java and all Java-based

Lisätiedot

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010 12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

Osoitteena O365. Toimisto ja yhteydet pilvestä

Osoitteena O365. Toimisto ja yhteydet pilvestä Osoitteena O365 Toimisto ja yhteydet pilvestä Mitä sisältää O365 Tutut toimistotyökalut käytössäsi missä vain Uusimmat versiot aina mukanasi Ei kiinteitä kustannuksia Korkea käytettävyysaste Ei päivityksistä

Lisätiedot

3. Ryhdy kirjoittamaan ja anna kaiken tulla paperille. Vääriä vastauksia ei ole.

3. Ryhdy kirjoittamaan ja anna kaiken tulla paperille. Vääriä vastauksia ei ole. 1 Unelma-asiakas Ohjeet tehtävän tekemiseen 1. Ota ja varaa itsellesi omaa aikaa. Mene esimerkiksi kahvilaan yksin istumaan, ota mukaasi nämä tehtävät, muistivihko ja kynä tai kannettava tietokone. Varaa

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityö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ätiedot

Liikkuva työ pilotin julkinen raportti 30.06.2014

Liikkuva työ pilotin julkinen raportti 30.06.2014 Liikkuva työ pilotin julkinen raportti 30.06.2014 2 / 9 Green ICT pilotin raportti SISÄLLYSLUETTELO 1. Tiivistelmä koekäytöstä... 3 2. Toteutus... 4 2.1.Tavoite... 4 2.2.Mobiilisovellus... 4 2.3.Käyttöönotto...

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin 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ätiedot

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

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

Lisätiedot

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti 2.12.2011

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti 2.12.2011 AVOIMEN TUOTTEEN HALLINTAMALLIT Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö Yhteentoimivuutta avoimesti 2.12.2011 Erikoistutkija, MSc. Tapio Matinmikko, Teknologian tutkimuskeskus VTT 2 Esittäjästä

Lisätiedot

AS-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 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ätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

www.solita.fi solita@solita.fi

www.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ätiedot

Toiminnallisen määrittelyn tarina. Esimerkki Reaktorin tavasta tehdä toiminnallista määrittelyä.

Toiminnallisen määrittelyn tarina. Esimerkki Reaktorin tavasta tehdä toiminnallista määrittelyä. Toiminnallisen määrittelyn tarina Esimerkki Reaktorin tavasta tehdä toiminnallista määrittelyä. Toimitusjohtajan pulma Tässä on toimitusjohtaja Roope, jonka tavoitteena on pyörittää Rengasmaster Oy:tä

Lisätiedot

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Osio 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ätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Olioiden toteuttaminen Riku Saikkonen 28. 11. 2011 Sisältö 1 Miten oliot ja metodikutsut toimivat? 2 Oliot Minkä luokan metodia kutsutaan? Python-esimerkki

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri Järjestelmäarkkitehtuuri (TK081702) ja Järjestelmäarkkitehtuuri Sovellukset ovat olemassa Järjestelmien uudistaminen vie yleensä arvioitua enemmän resursseja ja kestää arvioitua kauemmin Migration (Migraatio

Lisätiedot

Meidän visiomme......sinun tulevaisuutesi

Meidän visiomme......sinun tulevaisuutesi Meidän visiomme... Asiakkaittemme akunvaihdon helpottaminen...sinun tulevaisuutesi Uusia asiakkaita, lisää kannattavuutta ja kehitystä markkinoiden tahdissa Synergy Battery Replacement Programme The Battery

Lisätiedot

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut

Lisätiedot

Visual Case 2. Miika Kasnio (C9767) 23.4.2008

Visual Case 2. Miika Kasnio (C9767) 23.4.2008 Visual Case 2 Miika Kasnio (C9767) 23.4.2008 Työn tarkasti: Jouni Huotari 24.4.2008 1 SISÄLTÖ 1. TYÖN LÄHTÖKOHDAT... 2 2. PERUSTIEDOT... 2 3. ASENTAMINEN... 2 4. OMINAISUUDET... 3 4.1. UML-kaaviot... 4

Lisätiedot

Ajanvarauspalvelu. T-111.5006 Konseptointi ja käsikirjoitus Einopekka Laurikainen Joonas Laurikainen

Ajanvarauspalvelu. T-111.5006 Konseptointi ja käsikirjoitus Einopekka Laurikainen Joonas Laurikainen Ajanvarauspalvelu T-111.5006 Konseptointi ja käsikirjoitus Einopekka Laurikainen Joonas Laurikainen Idea Ajanvarauspalvelumme ideana on yhdistää kaikki kunnan palvelut yhteen sivustoon, jolloin palvelujen

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

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

Lisätiedot

Basware IFRS Forum. Tervetuloa!

Basware IFRS Forum. Tervetuloa! Basware IFRS Forum Tervetuloa! Ohjelma 9.00 Tervetuloa - Puheenjohtajan avaus 9.30 Konsernin tilinpäätös- ja verosuunnittelu - Siirtohinnoittelu - Konserniavustus ja korkojen vähennysoikeus Risto Walden,

Lisätiedot

ASCOM MIRATEL YHDESSÄ VAHVEMPI

ASCOM MIRATEL YHDESSÄ VAHVEMPI ASCOM MIRATEL YHDESSÄ VAHVEMPI ASCOM MIRATEL YHDESSÄ VAHVEMPI ASCOM MIRATEL LUONTEVA YHDISTYMINEN Suomalaisen terveydenhuollon alalla nimi Miratel tarkoittaa samaa kuin laadukkaat viestintätuotteet, -ratkaisut

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion 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ätiedot

Webforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys: 2014-12-6

Webforum. 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ätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa J2EE web-ohjelmointi Teoria ja ohjelmointitehtävät J2EE web-ohjelmointi 3 JOHDATUS OPISKELUUN...7 Opiskelu kurssilla... 7 Kurssin sisältö... 7 Aikataulu...

Lisätiedot

Sosiaalisen median käyttö autokaupassa. Autoalan Keskusliitto ry 3/2012 Yhdessä Aalto Yliopisto, Helsingin kauppakorkeakoulu opiskelijatiimi

Sosiaalisen median käyttö autokaupassa. Autoalan Keskusliitto ry 3/2012 Yhdessä Aalto Yliopisto, Helsingin kauppakorkeakoulu opiskelijatiimi Sosiaalisen median käyttö autokaupassa Autoalan Keskusliitto ry 3/1 Yhdessä Aalto Yliopisto, Helsingin kauppakorkeakoulu opiskelijatiimi Sosiaalinen media suomessa Kaikista suomalaisista yli % on rekisteröitynyt

Lisätiedot

Office 2013 - ohjelmiston asennusohje

Office 2013 - ohjelmiston asennusohje Office 2013 - ohjelmiston asennusohje Tämän ohjeen kuvakaappaukset on otettu asentaessa ohjelmistoa Windows 7 käyttöjärjestelmää käyttävään koneeseen. Näkymät voivat hieman poiketa, jos sinulla on Windows

Lisätiedot

Lisää tehoa kommunikointiin

Lisää tehoa kommunikointiin Lisää tehoa kommunikointiin We accept the challenge! presented by Rauno Nousiainen Lisää tehoa kommunikointiin Rauno Nousiainen Manager, IT Infrastructure services Andritz Oy 2 Lisää tehoa kommunikointiin

Lisätiedot

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

Copyright 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ätiedot

Mikä Eräverkko? Kaikki eräelämykset yhdestä osoitteesta.

Mikä Eräverkko? Kaikki eräelämykset yhdestä osoitteesta. Mikä Eräverkko? Eräverkko on eräihmisten ja -palveluiden kohtauspaikka, josta löydät helposti ja nopeasti metsästysmahdollisuudet sekä metsästyksen oheispalvelut. Kaikki eräelämykset yhdestä osoitteesta.

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Soveltuvuustutkimus 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

17/20: Keittokirja IV

17/20: Keittokirja IV Ohjelmointi 1 / syksy 2007 17/20: Keittokirja IV Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/10 Tavoitteita

Lisätiedot

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

Ajankohtaista peltolohkorekisterissä

Ajankohtaista peltolohkorekisterissä Ajankohtaista peltolohkorekisterissä Ajantasaistus keväällä 2009 Talvella 2008-2009 maataloushallinto teki ajantasaistusta yhteensä 104 kunnan alueella. Kaikkia kuntia ei ole ajantasaistettu kokonaisuudessaan,

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Toukokuu 2014 1 (11) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Päivitysohje Toukokuu 2014 2 (11) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku...

Lisätiedot

WEBINAARIN ISÄNNÄT. Jarno Wuorisalo Cuutio.fi. Petri Mertanen Superanalytics.fi. Tomi Grönfors Brandfors.com

WEBINAARIN ISÄNNÄT. Jarno Wuorisalo Cuutio.fi. Petri Mertanen Superanalytics.fi. Tomi Grönfors Brandfors.com WEBINAARI 3.11.2015 Mitä Tag Management on käytännössä ja miten se vaikuttaa analytiikkaan? Petri Mertanen, Super Analytics - @mertanen Jarno Wuorisalo, Cuutio - @jarnowu Tomi Grönfors, Brandfors - @groenforsmethod

Lisätiedot

ecome Markkinoiden kehittynein julkaisujärjestelmä

ecome Markkinoiden kehittynein julkaisujärjestelmä ecome Ecome Finland Oy Itämerenkatu 3 p. 020 7749 580 00180 Helsinki p. 020 7749 585 Suomi - Finland ecome@ecome.fi y. 2193874-3 www.ecome.fi Ecome-järjestelmä pähkinänkuoressa Ecome on suomalaisen yhtiön

Lisätiedot

SUBSTANTIIVIT 1/6. juttu. joukkue. vaali. kaupunki. syy. alku. kokous. asukas. tapaus. kysymys. lapsi. kauppa. pankki. miljoona. keskiviikko.

SUBSTANTIIVIT 1/6. juttu. joukkue. vaali. kaupunki. syy. alku. kokous. asukas. tapaus. kysymys. lapsi. kauppa. pankki. miljoona. keskiviikko. SUBSTANTIIVIT 1/6 juttu joukkue vaali kaupunki syy alku kokous asukas tapaus kysymys lapsi kauppa pankki miljoona keskiviikko käsi loppu pelaaja voitto pääministeri päivä tutkimus äiti kirja SUBSTANTIIVIT

Lisätiedot

Fingridin säätösähkötarjousohje. Vaksin käyttöohjeet 20.5.2015

Fingridin säätösähkötarjousohje. Vaksin käyttöohjeet 20.5.2015 Fingridin säätösähkötarjousohje Vaksin käyttöohjeet 20.5.2015 Yleistä Tämän ohjeen mukaisesti osapuoli voi jättää säätötarjouksia Fingridin ylläpitämille säätösähkömarkkinoille Osapuolella tulee olla säätösähkömarkkinoille

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot