1. Sulautetut järjestelmät

Koko: px
Aloita esitys sivulta:

Download "1. Sulautetut järjestelmät"

Transkriptio

1 Sulautetut järjestelmät Sulautetut järjestelmät Sulautettu järjestelmä on alunperin ohjelmistotyössä käytetty termi. Vastaavia muiden alojen termejä, jotka tarkoittavat lähes samaa asiaa, on eri aloilla käytössä useita, kuten esimerkiksi mekatroniikka, joka korostaa mekaniikan ja elektroniikan yhdistämistä. Nykykäytössä sulautettu järjestelmä viittaa useimmiten sellaiseen järjestelmään, jossa tietokoneen laitteisto ja ohjelmisto liittyvät toisiinsa saumattomasti siten, että kumpikaan ei ole käyttökelpoinen ilman toista, vaikka kumpikin saattavat hyödyntää yleiskäyttöisiä komponentteja, kuten vakiolisälaitteita, prosessoreita, käyttöjärjestelmiä tai ohjelmistokirjastoja. Toisaalta mikään ei välttämättä kerro käyttäjälle, mitä on toteutettu ohjelmistolla ja mitä laitteistolla, ja itse asiassa voi joskus olla jopa niin, että saman laitteen eri versioiden välillä eri osien välinen työnjako vaihtelee. Vastaavasti sulautetun järjestelmän kuvauksessa laitteisto käsittää laitteiston kokonaan, ei vain sen tietoteknistä osaa. 1.1 Johdanto Sulautetut järjestelmät sijoittuvat teknisten alojen kannalta monen alan rajamaille. Toisaalta niille ovat ominaisia tietyt ohjelmistojen erityispiirteet, toisaalta tietokonelaitteistojen piirteet. Usein sulautettu järjestelmä sisältää myös automaatiotekniikkaa esimerkiksi mekaanisen liikkeen tai kemiallisen prosessin ohjaamiseksi. Automaatio puolestaan vaatii lähes aina mittausta ja säätöä, mikä johtaa myös mittaussignaaleiden käsittelyyn ja säätötekniikan perusteisiin. Sulautetut järjestelmät ovat siis monen alan yhtymäkohdassa, ja sulautetun toteutuksen tekemiseen tarvitaan monen alan asiantuntijoita. Heistä jokaisella on oma näkemyksensä siitä, mitä sulautettu järjestelmä itse asiassa tarkoittaa jokainen tyypillisesti näkee ongelmakentän oman alansa projektion kautta.

2 12 Sulautettu ohjelmointi Tässä teoksessa sulautettuja järjestelmiä tarkastellaan lähinnä ohjelmistotekniikan näkökulmasta. Mukana on kuitenkin ripaus tietokoneiden laitteistoja ja säätöä. Ohjelmistotekniikan osalta sulautettujen järjestelmien ongelmakenttiä ovat muun muassa ohjelmistotuotanto käytettävyys ja käyttöliittymät laitteistonläheinen ohjelmointi reaaliaikaiset järjestelmät reaktiiviset järjestelmät vikasietoisuus ja hajautetut järjestelmät. Ohjelmistotuotanto käsittelee projektin läpivientiä, suunnittelumenetelmiä ja dokumentointia. Erityisesti käyttöliittymien ja käytettävyyden osuus laitteen onnistuneisuuteen on viime aikoina kasvanut, kun käyttäjäkunta on laajentunut entisestään tekniikan alan ihmisten ulkopuolelle. Laitteistonläheinen ohjelmointi tarkoittaa laitteistojen ohjaamista ohjelmallisesti, osittain symbolista konekieltä (assemblykieltä) käyttäen ja puristaen suorittimesta irti kaiken mahdollisen suorituskyvyn. Reaaliaikaisuus tarkoittaa järjestelmän ajoitusominaisuuksien ennustettavuutta ja annettujen aikavaatimusten täyttämistä. Reaktiivisuus puolestaan tarkoittaa sitä, että järjestelmä reagoi kaikkiin tapahtumiin riippumatta siitä, mitä muita tapahtumia on jo käsiteltävänä. Vikasietoisuus viittaa siihen, että sulautetut järjestelmät toimivat usein ilman ihmisen välitöntä ohjausta. Vian tullessa järjestelmän tulee selvitä siitä itse ainakin niin pitkälle, että vika ei aiheuta lisää vikoja. Lisäksi sulautetut laitteet voivat sisäisesti koostua hyvin monimutkaisesta kokonaisuudesta, jossa käytetään useita prosessoreita. Varsinkin viime aikoina kehitys on vienyt kohti hajautettuja laitearkkitehtuureja. Näihin taas liittyvät erilaiset middleware-tekniikat, jotka mahdollistavat helpomman hajautuksen toteutuksen. Tässä teoksessa sivutaan ohjelmistotuotantoa alussa. Käytettävyyden ja käyttöliittymien ongelmakenttää sivutaan vain satunnaisesti sen keskeisyydestä huolimatta, sillä monessa mielessä valintoja ohjaavat muuhun kuin käytettävissä olevaan teknologiaan liittyvät seikat. Laitteistonläheisestä ohjelmoinnista käsitellään oheislaitteiden liittämistä järjestelmään, mutta itse symbolinen konekieli oletetaan jo tunnetuksi. Myös joitakin käyttöjärjestelmiiin liittyviä yksityiskohtia käsitellään. Reaaliaikaisuudesta käsitellään perusteet ja skedulointi. Näiden lisäksi käsitellään myös vikasietoisuuden hallintaa. Lopuksi sivutaan lyhyesti hajautettuja sulautettuja järjestelmiä. Mukana on myös

3 Sulautetut järjestelmät 13 joitakin esimerkkijärjestelmiä, joiden tarkoituksena on havainnollistaa sulautetun ohjelmoinnin ongelmien ratkaisua käytännössä. Ohjelmistotekninen pääongelma vaihtuu järjestelmän koon mukaan. Kaikista pienimmissä järjestelmissä pääongelmat ovat laitteistonläheisessä ohjelmoinnissa. Näissä järjestelmissä on käytössä hyvin vaatimaton suoritin, jonka nopeudessa ja käytettävissä olevan muistin määrässä olisi paljonkin toivomisen varaa. Näin ongelmaksi tulee tarvittavien ohjelmien sovittaminen tarjolla olevaan tilaan ja ohjelmien nopeuttaminen vastaamaan tarvetta. Yleensä tällaisessa pienessä järjestelmässä on kuitenkin vain vähän toimintoja, joten järjestelmän reaktiivisuus on yksinkertaista ja reaaliaikaisuus helppo todeta. Järjestelmän koon kasvaessa reaaliaikaominaisuuksien ratkaiseminen käy vaikeammaksi, koska seurattavia tapahtumia on paljon. Jos järjestelmä on lisäksi reaktiivinen, niin kuin se yleensä on, tulee ajoituksien laskennasta hyvin haastava toimenpide. Järjestelmän kasvaessa lisää alkavat ohjelmistotuotannon ongelmat nousta esille. Kuvaavaa onkin erään teollisuuden johtohenkilön kommentti, että heidän sulautettujen järjestelmiensä ongelma on se, että ne eivät ole sulautettuja järjestelmiä. Tässä vaiheessa järjestelmä on kasvanut jo niin suureksi, että vain pieni osa sen tekijöistä kokee sen varsinaisena sulautettuna ympäristönä, varsinkin, kun ohjaava laite voi olla suorituskyvyltään ja muilta ominaisuuksiltaan pöytäkonetta muistuttava teollisuus-pc. Käyttöliittymien ja yleensä käytettävyyden ja käyttökokemuksen merkitys on kasvamassa sitä suuremmaksi, mitä suurempi joukko käyttäjistä ei ole tekniikan ammattilaisia. Käyttöliittymä niin kuin itse asiassa sulautettujen järjestelmien tapauksessa usein koko laite on suunniteltava sovellusalueen ehdoilla sille tutuilla toimintatavoilla. Ammattikäyttöön sovelluksia ja laitteita suunnitellessa voidaan myös ajatella koulutusta uusien järjestelmien käyttöönoton yhteydessä, mutta massamarkkinoille suunnattuja järjestelmiä suunniteltaessa ollaan usein todella vaikeiden suunnitteluratkaisujen edessä, varsinkin kun tällöin käyttäjäkunta saattaa olla hyvin heterogeeninen. Lisäksi on huomattava, että sovellusalueen tunteminen on ohjelmoijallekin hyvin tärkeää. Ratkaistavat asiat eivät aina ole kovin suoraviivaisia, eivätkä alan omat asiantuntijat välttämättä tiedä, mikä on ohjelmistoteknisesti tai algoritmisesti mahdollista ja mikä ei.

4 14 Sulautettu ohjelmointi 1.2 Sulautettujen järjestelmien ominaispiirteitä Kuten edellä jo todettiin, sulautettujen järjestelmien koko vaihtelee hyvin pienistä erittäin suuriin. Ehkä selkeimmin tunnistettavia sulautettuja järjestelmiä ovat pienimmät järjestelmät, kuten esimerkiksi älykkäät anturit, automaattikamerat, videolaitteet ja matkapuhelimet, jotka kuitenkin ovat monimutkaisuudessaan aikamoisia ohjelmistoteknisen osaamisen taidonnäytteitä. Matkapuhelinten "älysarjassa" sulautettu luonne alkaakin jo hämärtyä. Laite, jonka perustarkoitus ja koko viittaa hyvinkin kauas tietotekniikasta voi olla hankala yhdistää sulautetuksi laitteeksi. Tällaisia ovat esimerkiksi ovat pesukoneet ja hissit, sekä erilaiset työkoneet kuten kallioporakone, konttilukki tai veturi. Monimukaisimmasta päästä sulautettuja järjestelmiä ovat esimerkiksi lentokoneet ja monet avaruustekniikan laitteet kuten satelliitit ja luotaimet. Sulautetuissa järjestelmissä tietokone on käyttäjän kannalta tavallisesti sivuosassa. Käyttäjän ei tarvitse tietää tietokoneen olemassaolosta ja voisi jopa kärjistäen sanoa, että jos käyttäjän on se tiedettävä, on järjestelmä suunniteltu väärin. Käyttäjän kannalta on tärkeää, että itse perustoiminta, jota varten laite on tehty, toimii odotetusti: hissi siirtyy siihen kerrokseen, mihin käyttäjä sen halusikin. Tietenkin on olemassa sulautettuja sovelluksia, jossa tietokoneen mukanaolo on vähintäänkin ilmeistä, kuten GPS-paikantimessa 1. Laitteen käyttötarkoitus on kuitenkin paikan selvittäminen, ja tämän pitää voida tapahtua ilman perustietoja tietotekniikasta. Sulautetuille järjestelmille on tyypillistä myös se, että ne ovat suljettuja. Tämä tarkoittaa sitä, että järjestelmän voi ohjelmistoja tai toimintoja voi muuttaa tai lisätä vain järjestelmän toimittaja. Niin sanottu kolmas osapuoli ei voi tuottaa sovelluksia järjestelmään kuin aivan poikkeustapauksissa. Tämä nimenomainen ominaispiirre on osittain murtumassa, sillä jotkut sulautetuille järjestelmille tarkoitetut käyttöjärjestelmät tai usein oikeammin ohjelmointiympäristöt tarjoavat myös kolmansille osapuolille tarkoitetun rajapinnan. Lisäksi jotkut järjestelmät tarjoavat rajoitetumpaa ohjelmointimallia, jossa ohjelmistoon on lisätty mahdollisuus suorittaa muita ohjelmia virtuaalikoneen 1. Erilaisten paikantimien (ja myös monien muiden sulautettujen järjestelmien) toteutustekniikasta on mahdollista tehdä arvauksia suorituskyvyn perusteella. Mitä nopeampi laite on, sitä todennäköisemmin siinä on käytetty erikoistettuja laitteistokomponentteja, ja vastaavasti hitaiden laitteiden hitauden syy löytyy usein ohjelmistosta.

5 Sulautetut järjestelmät 15 avulla. Virtuaalikoneeseen on myös mahdollista lisätä erilaisia tietoturvaan liittyviä mekanismeja. Käytännön toteutuksista laajimmalle lienee levinnyt mobiili Java, jota tukevia puhelimia on satoja miljoonia. Viime aikoina on myös kasvanyt kiinnostus tarjota mahdollisuus suorittaa skriptejä omassa ajoajan ympäristössä, jonka avulla on mahdollista tarjota käännettäviä ohjelmia parempaa räätälöityvyyttä ja joustavuutta myös loppukäyttäjän näkökulmasta. Esimerkkejä ovat erilaiset web-pohjaiset ympäristöt ja vaikkapa Qt-sovelluskehyksen tarjoama QtScriptympäristö, johon on periaatteessa mahdollista lisätä laitekohtaisia rajapintoja. Suuri osa sulautetuista järjestelmistä on reaaliaikaisia, eli järjestelmän toiminnalle on asetettu paitsi toiminnallisia myös aikaan liittyviä vaatimuksia. Yhdistettynä pieneen suoritustehoon tämä voi tuottaa ohjelmoijalle melkoisia vaikeuksia. Lisähaastetta suunnittelutyöhön tuo se, että usein sulautetuista laitteista halutaan valmistaa useita toisistaan hivenen poikkeavia versioita, joissa esimerkiksi laitteistoa muuntelemalla saadaan aikaan eri markkinoille sopivia tuotteita. Tällöin ohjelmistoa pitää kaiken lisäksi pystyä muuntelemaan sunnitelmallisesti, mikä tietysti vaikeuttaa suunnittelua. Kaiken edellisen lisäksi järjestelmiltä vaaditaan erittäin suurta turvallisuutta ja vikasietoisuutta. Sulautetun järjestelmän tulisi kaikissa tilanteissa toimia siten, että se ei viallisenakaan tai väärin ohjattuna aiheuta vaaraa käyttäjälleen, ympäristölleen tai itselleen. Laitteiden pitäisi toipua virhetilanteista mahdollisimman automaattisesti, jopa niin, että käyttäjä ei huomaa mitään. Tietenkin laite voi ilmoittaa tarvitsevansa huoltoa, mutta kaikissa tilanteissa sen toiminnan pitää olla turvallista. Esimerkiksi autojen ABS-jarrut muuttuvat tavallisiksi jarruiksi, jos ABS-jarrujärjestelmään tulee vika. ABS:n tuoma hyöty menetetään, mutta jarrut kuitenkin toimivat yhä. Vaihtoehto (tietenkin tässä tapauksessa järjetön, mutta joidenkin järjestelmien kannalta hyväksyttävä) olisi esimerkiksi se, että auto pysäytetään vian tullessa väkisin. Tämän tapahtuminen ohitustilanteessa ei varmastikaan olisi turvallista. Toisaalta taas teollisuusrobotin pysäyttäminen vikatilanteessa on yleensä järkevin teko. Yhteenvetona suunnittelijan tulee siis tietää, millaisessa ympäristössä laitetta käytetään, jotta voisi päätellä oikeat reagointitavat, mikäli niitä ei ole kirjattu järjestelmä- ja ohjelmistovaatimuksiin tai käytettävissä ei ole alan asiantuntijaa. Kysyminen on kuitenkin yleensä kaikkein paras, yksinkertaisin ja nopein tapa selvittää kaikki yksityiskohdat.

6 16 Sulautettu ohjelmointi 1.3 Sulautettujen ohjelmistojen erityispiirteitä Sulautetuista järjestelmistä lukumääräisesti suurin osa on toteutettu suorituskyvyltään hyvin pienten suorittimien avulla. Toisaalta suurimmissa järjestelmissä ohjauskoneena voi olla hyvinkin tehokas suoritin, tai jopa kokonainen klusteri niitä, kuten esimerkiksi puhelinkeskuksen tapauksessa. Vastaava skaala pienestä suureen on nähtävissä myös järjestelmän pohjana olevassa ohjelmistossa. Kaikkein pienimmät sovellukset toimivat ilman selvää ydin sovellus-jakoa, jolloin koko ohjelmisto toimii loogisen toimintansa ohella samalla myös "käyttöjärjestelmän" ytimenä eli vastaa keskeytyksien ohjauksesta oikeaan palveluohjelmaan, ajanjaosta ja prosessien välisestä kommunikoinnista. Näin varsinkin silloin, jos suoritin on käskykannaltaan ja muistiavaruudeltaan erittäin vaatimaton pienimmissä suorittimissa muistiavaruus voi olla kahdeksan kilotavua, johon on mahduttava sovellus, ydin (tai ainakin sen toiminnot) ja oheislaitteiden ohjausrekisterit. Aivan pienimpiä sovelluksia lukuunottamatta järjestelmässä on tavallisesti selkeästi sovelluksesta erotettu ydin. Tällainen ydin on tyypillisesti hyvin pieni, jotta se mahtuisi yhdessä sovelluksen kanssa lukumuistiin. Ytimen pienuudesta seuraa, että sen palvelutkin ovat minimaaliset. Jotkin kaupalliset ytimet ovat sellaisia, että niistä voidaan koota hyvin erikokoisia ja samalla palveluiltaankin erilaisia versioita. Pienimmillään ne vievät tilaa vain joitain kilotavuja, mutta suurimmillaan ne tarjoavat täyden käyttöjärjestelmän suojauspiirteineen kaikkineen. Tietysti ytimen kokokin on noussut noin megatavuun; joissain tapauksissa jopa merkittävästi yli. Kun ytimestä karsitaan pois toimintoja sulautettua järjestelmää varten, tyypillisiä poistettavia osia ovat esimerkiksi virtuaalimuisti, sillä sitä ei reaaliaikajärjestelmissä yleensä voi muutenkaan käyttää ennakoitavuuteen liittyvistä syistä, tiedostojärjestelmä, koska laitteissa on harvoin massamuisteja (asia, joka on kyllä muuttumassa), sekä suojaukset, koska niiden ylläpito kuluttaa resursseja ja ohjelmien testausvaiheen luotetaan löytävän mahdolliset ongelmat, varsinkin jos kyseessä on järjestelmä, joka on täysin suljettu. Sen sijaan järjestelmät, joita käyttäjä voi laajentaa omilla sovelluksillaan, on yleensä suunniteltava siten, että käyttäjän sovellukset ja järjestelmän omat sovellukset on mahdollista erottaa toisistaan, jotta kaikkein tärkeimmät toiminnot voidaan taata joka tilanteessa. Näin ei kuitenkaan aina käytännössä käy, vaan esimerkiksi matkapuhelimeen on melko helppo toteuttaa sov-

7 Sulautetut järjestelmät 17 ellus, joka estää hätäpuhelun soittamisen varaamalla laitteen kaiken suoritusajan tai muistin omaan käyttöönsä. Toisaalta suurimmat ja monimutkaisimmat sulautetut järjestelmät voivat sisältää kokonaisia yleiskäyttöisiä käyttöjärjestelmiä sekä niihin liittyviä (yleiskäyttöisiä tai sovellusaluekohtaisia) kirjastoja. Tällöin ohjelmoijan kannalta osa sulautetun ohjelmoinnin ominaispiirteistä katoaa, sillä esimerkiksi muistinkulutuksen kannalta ei enää ole suurta merkitystä sillä, onko jonkun tietorakenteen koko täsmälleen optimi. Toisaalta osa haasteista on edelleen ohjelmoijan ratkaistava. Näitä ovat esimerkiksi järjestelmän ajallisesti oikea käyttäytyminen sekä yleensä se, että järjestelmän toiminnan voi millään tasolla varmistaa testien ja muiden apuvälineiden avulla. Usein onkin niin, että oikean toiminnan varmistaminen testitapausten avulla ohjaa suunnittelua. Siksi monet suunnitteluratkaisut, jotka periaatteessa saattaisivat jopa olla teknisesti edistyksellisempiä, voivat olla käyttökelvottomia, jollei toimintaa kyetä varmentamaan riittävällä tarkkuudella. 1.4 Kokonaisjärjestelmän määrittely Sulautetun järjestelmän määrittely on monen alan asiantuntijoiden yhteistyötä. Koko sulautetun järjestelmän idea johtaa tähän hyvin luonnollisesti. Eri alojen asiantuntijoiden olisi hyvä tuntea toistensa aloja jonkin verran, jotta keskusteluissa ei tulisi pahoja väärinymmärryksiä. Jo pienelläkin kokemuksella sulautettujen järjestelmien suunnittelusta eri tekniikan alojen edustajat löytävät yleensä keinot puhua asioista, mutta erityisesti silloin, kun sovellusalue on kaukana tekniikasta, on viestin välittämiseen kiinnitettävä paljon huomiota, jotta molemmat osapuolet ymmärtäisivät sen samoin. Tyypillisiä aloja, joita järjestelmiä tehtäessä on edustettuina, ovat ohjelmistotekniikka, tietokonetekniikka, tietoliikennetekniikka, elektroniikka, automaatiotekniikka, mekaniikka ja itse sovellusalueen asiantuntijat. Aina näitä kaikkia ei tarvita, ja joskus mukana voi olla myös muotoilijoita, käyttöliittymäsuunnittelijoita ja markkinointihenkilöstöä, ehkä järjestelmän tilaajakin. Tyypillistä on, että ensimmäisen version tavoitteena on tehdä toimiva perusratkaisu. Kun tuote vanhenee, yhä uusia ideoita nousee esiin perustoimintojen rinnalle, ja tarvitaan laajempaa asiantuntemustakin. Jälleen kerran hyvä esimerkki on matkapuhelin, joiden ensimmäisissä versiossa oli tarpeeksi työtä siinä, että laite ylipäätään toimi. Uusimpia mainostetaan kuorien värillä, muotoilulla, pelien lukumäärillä, musiikkisoittimella ja vaikkapa sisäänrak-

8 18 Sulautettu ohjelmointi ennetulla kameralla. Lisäksi viime aikoina erilaiset web-liitynnät, kuten Facebook-sovellus, ovat nousseet tärkeiksi, samoin kuin tietysti koko käyttökokemus laitteesta. Kuten matkapuhelinesimerkistäkin käy ilmi, vaikka käyttäjän kannalta kyse on samasta (tai samantapaisesta) laitteesta, ohjelmiston kannalta muutokset voivat olla niin suuria, että olisi perusteltua ymmärtää laite kokonaan uutena järjestelmänä. Kun kokonaisjärjestelmää määritellään, on tietoteknisen osan kokonaismäärittelyyn usein sopivimmat työkalut ohjelmistoasiantuntijalla. On tietenkin selvää, että sovellusalueen kieli kuvaa sillä tasolla parhaiten haluttua toimintaa, mutta tästä on vielä pitkä matka siihen, että järjestelmä on toteutettu. Kun kokonaisjärjestelmä on hahmoteltu, voidaan siirtyä yksityskohtaisempaan suunnitteluun, jossa asetetaan eri osa-alueiden väliset rajapinnat. Tietoteknisen toteutuksen puolella voidaan jatkaa tästä yleisestä jakotasosta vielä eteenpäin ainakin jonkin verran, ennen kuin laitteiston ja ohjelmiston välinen rajapinta lyödään lopullisesti lukkoon (niin sanottu ohjelmiston ja laitteiston yhteissuunnittelu; system codesign). Korostettakoon vielä, että suunnittelutyöhön osallistuvien on ymmärrettävä toistensa ammattikieltä edes kohtalaisesti, jotta pystyisivät ymmärtämään esitettyjen vaihtoehtojen vaikutuksen omiin osuuksiinsa. Silloin, kun ollaan tekemisissä uuden sovellusalueen kanssa, tämän projekti- tai sovellusaluekohtaisen terminologian opettelu on välttämättä tarvittava osa projektia, vaikka sitä harvoin aikataulutetaan perinteisen projektinhallinnan keinoin Suunnittelun jakaminen osiin Kun kokonaisjärjestelmä on saatu määriteltyä, työ jatkuu kuvassa 1.1 esitetyn kaavion mukaan kohti toteutusta. Kokonaismäärittelyä seuraa siis kokonaissuunnittelu ja työn jako osiin. Työn jakamiseen palataan seuraavissa kohdissa, joten siitä ei tässä sen enempää. Olennaista on huomata, että suunnittelun edetessä erikseen ohjelmisto- ja laitteistopuolella on huolehdittava siitä, että rajapinnan epäselvyydet tai muutostarpeet selvitetään välittömästi niiden ilmaantuessa, koska muuten ne tulevat vastaan vasta integrointivaiheessa. Tätä jatkuvaa keskusteluyhteyttä eri haarojen välillä kuvaavat katkoviivat ohjelmisto- ja laitteistosuunnittelun välillä. Lisäksi on syytä muistaa, että myös muihin toteutukseen osallistuviin osa-alueisiin on vastaavanlainen yhteys. Erityisesti sovellusalueen asiantuntijaa on syytä käyttää koko prosessin ajan konsulttina.

9 Sulautetut järjestelmät 19 kokonaismäärittely kokonaissuunnittelu työn jako osiin ohjelmistomäärittely laitteistomäärittely ohjelmistosuunnittelu laitteistosuunnittelu ohjelmiston toteutus laitteiston toteutus ohjelmistotestaus laitteistotestaus integrointi & testaus Kuva 1.1 Suunnittelun eteneminen perinteisen mallin mukaan. Tämä asiantuntija yleensä myös hyväksyy tuotteen, mikäli kyseessä ei ole tilaustyö. Tilaustyön tapauksessa asiakkaalla pitää yleensä olla keinot riittävään laadun- ja toiminnallisuuksien varmistukseen. Vaihtoehtoisesti myös tämä osa työstä on mahdollista alihankkia silloin, kun ollaan tekemisissä erikoistuneiden järjestelmien kanssa. Tällöin ongelmaksi voi tosin muodostua se, miten testausalihankkijan työ voidaan varmentaa Ohjelmiston ja laitteiston rajapinta Ohjelmiston ja laitteiston rajapinta sisältää monia asioita. Osa näistä on hyvin "korkealla" tasolla verrattuna toisiin, joita voi kuvata lähinnä "nippelitiedoiksi". Tosin hyvin pieniltä näyttävät asiat voivat olla hyvin erilaisia toteuttaa. Esimerkiksi se, onko oheislaite keskeyttävä vai ei, saattaa vaikuttaa yhdeltä suunnalta katsottuna vain siltä, kytketäänkö yksi johdin oheislaitteelta suorittimelle vai ei. Kuitenkin ratkaisu vaikuttaa kaikkeen kyseistä laitetta suoraan käyttävään ohjelmistoon, ja epäsuorasti myös ehkä muihinkin laitteisiin niiden johdotusta suunniteltaessa. Samaten suunnitteluratkaisulla voi olla vaikutusta siihen, onko mahdollista hankkia laitteistoa valmiina, vai onko sen valmistuksesta huolehdittava itse.

10 20 Sulautettu ohjelmointi Laitteistorajapintaa on ensinnäkin käytettävä suoritin. Millainen käskykanta ja rakenne siinä on? Miten nopea suoritin on? Onko se jokin erikoissuoritin (signaalisuoritin?) vai yleissuoritin? Onko laitteessa kenties monta suoritinta? Ovatko ne keskenään identtisiä vai onko yksi yleissuoritin ja toinen jokin erikoissuoritin? Tukeeko laitteisto liukulukuja? Jos järjestelmässä on useampia kuin yksi suoritin, niin miten nämä kommunikoivat keskenään? Onko käytössä väylä, yhteinen muisti (millainen) vai jokin muu mekanismi? Suoritin ei kuitenkaan kerro läheskään kaikkea tarvittavaa laitteistosta. Se on itse asiassa usein kaikkein helpoin ja suoraviivaisin määriteltävä komponentti, jonka valinta on usein jo etukäteen päätetty johtuen esimerkiksi saatavilla olevista ohjelmistotyökaluista, laitteistokokonaisuuksista, kustannuksista, energiatehokkuudesta ja fyysisestä koosta. Muita asioita, jotka täytyy ratkaista ovat muisti ja sen organisointi, oheislaitteet, erilaiset liitynnät muihin tietokoneisiin ja mahdolliset sovellusta varten tehtävät erityislaitteet. Muisti ei välttämättä ole yhtenäinen, vaan siinä saattaa olla aukkoja. Osa muistista on lukumuistia (ROM tai jokin muu muistityyppi, jonka sisältöä ei voi muuttaa ohjelmallisesti), osa luku-kirjoitusmuistia (RAM, muisti, joka tyhjenee, mikäli sen sähkönsyöttö katkeaa). Näiden väliin jäävät erilaiset muistit, jotka säilyttävät tiedon sähkökatkon yli, mutta joiden sisältöä voidaan muuttaa (esimerkiksi EEPROM, Flash- ROM). Näiden jälkimmäisten käyttö ei välttämättä ole yhtä näppärää kuin tavallisen luku kirjoitusmuistin, sillä tyhjennys tehdään tavallisesti erityiskäskyllä lohkolle kerrallaan, eikä piiri kestä muutoksia rajattomasti. Edellisten lisäksi järjestelmässä voi olla paristovarmennettuja luku kirjoitusmuisteja. Kaiken tämän fyysisen muistin kuvauksen lisäksi tulee selvittää, millainen muistinhallintayksikkö (MMU, Memory Management Unit) järjestelmässä on, vai onko sitä ollenkaan. Oheislaitteista tulee selvittää niiden lukumäärän ja tyypin lisäksi myös se, miten ne on sijoitettu keskusmuistiin, millaisten rekisterien tai käskyjen kautta niitä ohjataan ja miten sekä ovatko ne keskeyttäviä. Keskeytystapa on myös selvitettävä. Osa oheislaitteista voi olla erityisesti tätä sovellusta varten suunniteltuja, mihin palataan myöhemmin yksityiskohtaisemmalla tasolla. Muita olennaisia asioita ovat muun muassa liitynnät muihin järjestelmän tietokoneisiin. Nämä voivat olla toteutettuja sarjaliitynnöillä, väylillä tai valmiiden oheislaitepiirien kautta.

11 Sulautetut järjestelmät Ohjelmiston ja laitteiston yhteissuunnittelu Monet toiminnot voidaan toteuttaa joko ohjelmistolla tai laitteistolla. Rajapinnan määrittely ei tällaisessa tilanteessa aina ole kovin selvää, sillä rajapinnan valintaan vaikuttavat sekä uudet tarjolla olevat ratkaisut että tehtävän laitteen luonne. Paras rajapinta on siis monen tekijän funktio, joissa taloudelliset tekijät, kuten esimerkiksi hinta, soveltuvat valmistustekniikat, käytettävissä oleva valmistuskapasiteetti ja monet muut seikat ovat mukana teknisten rinnalla. Näin varsinkin silloin, mikäli teknisesti eri vaihtoehdoilla ei ole selvää eroa. Lisäksi, vaikka ohjelmoija ei sitä aina tiedäkään, taloudelliset seikat ovat saattaneet vaikuttaa jo siihen, kannattaako kyseistä laitetta lainkaan toteuttaa. Yksi taloustekijä on laitteen oletettu valmistusmäärä. Mikäli laitteesta tehdään vain yksi tai muutama kappale, eivät standardikomponenteista koottujen laitteiden osakustannukset nouse merkittäviksi. Jos näiden komponenttien korvaaminen ohjelmallisesti on suurehkon työn takana, kannattaa käyttää laitteistoa ongelman ratkaisuun. Mikäli valmistusmäärät kasvavat, alkaa lisäkomponentin kustannus nousta niin, että sen korvaava ohjelmisto kannattaa tehdä. Tällaisesta tapauksesta voisi esittää esimerkkinä staattisen sähkömittarin kalibroinnin. Sähkömittari kalibroidaan perinteisesti siten, että erilaisilla säätövastuksilla tai -kondensaattoreilla säädetään lukemat kohdalleen. Vaikka nämä komponentit eivät maksa paljoakaan, eikä niiden latominen piirikortille, testaus ynnä muu sellainen nosta summaa kovin isoksi laitetta kohti, tuottaa mittarin vuosituotannossa jo pienikin säästö mittaria kohti hyvinkin sen ohjelmoijan palkan, joka toteuttaa kyseisen toiminnon ohjelmallisesti. Komponenttien vähentäminen ei kuitenkaan aina johda kustannusten vähenemiseen. Komponentin poisjättäminen voi aiheuttaa muiden komponenttien vaatimusten ja samalla hinnan monikertaistumista. Esimerkiksi suorittimeen suoraan liitetty sarjaliityntä aiheuttaa keskeytyksen joka tavun jälkeen. Tällaisessa järjestelmässä sarjaliityntä kuormittaa runsaasti suoritinta, ja tiedonsiirtonopeuden noustessa suorittimen koko kapasiteetti kuluu jo suhteellisen pienillä nopeuksilla sarjaliitynnän palvelemiseen. Mikäli sarjaliityntä kytketäänkin puskurimuistiin, johon mahtuu kerrallaan 16 alkiota, ja keskeytys generoidaan, kun muisti on puolitäysi, kuormittuu suoritin aiemmalla maksimikuormalla vain 10-12%. Ensimmäisenä mieleen tuleva ilmeinen suorituskykyä parantava vaihtoehto suorittimen korvaaminen nope-

12 22 Sulautettu ohjelmointi ammalla maksaa kuitenkin todennäköisesti paljon enemmän kuin tämä "ylimääräinen" komponentti. Kun tuotantomäärät kasvavat lisää, kääntyy joidenkin toimintojen toteutuksen edullisuus jälleen laitteistopuolen hyväksi. Tällöin kannattaa suunnitella oma sovelluskomponentti, joka säästää standardikomponenttien lukumäärän vähenemisen kautta tuotantokustannuksia (esimerkiksi edellä ollut puskurimuisti integroidaan osaksi suoritinta). Lisäksi komponentissa voidaan toteuttaa omia erityispiirejä tukemaan ohjelmien nopeaa suoritusta tai jopa korvata joitain tavallisesti ohjelmistolla toteutettavia algoritmeja laitteistolla. Lisähyöty on vielä sekin, että laitteen kopiointi on näin paljon vaikeampaa, ellei jopa mahdotonta. Ohjelmoitavien piirien kautta laitteistovaihtoehto alkaa olla käytettävissä jo suhteellisen pienissäkin tuotantomäärissä. Ohjelmiston ja laitteiston yhteissuunnittelu tarkoittaa siis tyypillisesti sellaista järjestelmän suunnittelua, jossa rajapinta määräytyy lopullisesti vasta suunnittelun aikana. Kuten edellä olevasta käy ilmi, tässä on eri tasoja riippuen tuotteen ominaisuuksista. Lisäksi tekniikan eri osa-alueiden kehitys johtaa siihen, että paras rajapinta muuttuu jatkuvasti. Hinnan lisäksi rajapintaan voivat vaikuttaa laitteelta vaadittu nopeus sekä lait, asetukset ja muut viranomaismääräykset. Nämä tavallisesti johtavat laitteistolla toteutettaviin ratkaisuihin: liukuluvut ovat nopeampia laitteistolla, ja vastaavasti turvakytkimet katkaisevat sähkönsyötön mekaanisesti, ei ohjelmallisesti. On syytä muistaa, että laitteiston ja ohjelmiston yhteissuunnittelu tarkoittaa kokonaisjärjestelmän kannalta usein yhtä komponenttia. Sen kohteena voi olla pieni osa koko ohjelmistosta ja laitteistosta, ja suurin osa järjestelmästä tehdään yhä perinteiseen malliin. Pisimmälle vietynä yhteissuunnittelu voi tarkoittaa sitä, että tarvittava ohjelmisto kirjoitetaan valmiiksi, ja tästä ohjelmasta generoidaan sekä laitteisto (suoritin ja oheislaitteet) että tämän laitteiston tarvitsema ohjelma. Joissakin ympäristöissä tätä kokonaisuutta voidaan myös simuloida ennen varsinaista generointia, jolloin järjestelmän verifiointi (ainakin periaatteessa) voidaan suorittaa jo ennen varsinaista toteuttamista. 1.5 Eri alojen edustajien roolit Tämän osuuden tarkoituksena on kuvata eri asiantuntijoiden roolia määriteltäessä ja suunniteltaessa sulautettua järjestelmää. Esimerkiksi voidaan ottaa mikä tahansa sovelluskohde: tässä esimerkkinä on rakennusautomaation järjestelmä, jonka tavoitteena on pitää huolta talon il-

13 Sulautetut järjestelmät 23 mastoinnista ja lämmityksestä. Koska ei ole mielekästä suunnitella järjestelmää vain yhtä tiettyä tapausta kohti, on järjestelmän oltava skaalattavissa annetuissa rajoissa. Työn alkuvaiheessa on suhteellisen helppo havaita, että järjestelmän toteuttamiseen tarvitaan ainakin LVI-alan asiantuntijoita, mahdollisesti automaation asiantuntijoita, tietokonetekniikan asiantuntijoita ja ohjelmistotekniikan asiantuntijoita. Kullakin osallistujalla on oma näkemyksensä siitä, mitä järjestelmä on, ja kukin näkee hieman erilaisia tarpeita kokonaisjärjestelmälle. Tätä esimerkkiä lukiessa ei kannata pohtia juuri esimerkin ongelmakenttää. LVI-asiantuntija on tässä sovellusalueen käytännön asiantuntija, automaation asiantuntija on edellä mainittu alueen teoreettisen osaamisen asiantuntija ja niin edelleen LVI-asiantuntijan näkökulma LVI-asiantuntijan (tai avaruus-, moottorinohjaus- tai ydinfysiikan asiantuntijan) näkökulma on sovellusalan näkökulma. Hänen tehtävänään on asettaa järjestelmän toiminnalliset tavoitteet, ja hän myös vastaa siitä, että mitään perustoimintaa ei unohdeta. Tämä on käytännössä usein vaikeaa, sillä asiantuntijalle alasta riippumatta ovat perusasiat itsestään selviä, ja hän helposti luulee, että muutkin tuntevat ne. Niinpä muiden pitää varmistua siitä, että he ovat ymmärtäneet sovellusalan tarpeet oikein. Muut osallistujat voivat ideoillaan laajentaa tai supistaa tavoitteita, sillä sovellusalueen asiantuntija on yleensä kiinnostunut vain sovellusalueen ongelmien ratkaisusta, eikä välttämättä ota huomioon ohjelmistoihin liittyviä modulaarisuus- tai muunneltavuusvaatimuksia lainkaan. Sovellusalueen asiantuntija tuntee oman alansa nykytekniikan, tietää, mitä siitä voidaan ottaa järjestelmään mukaan sellaisenaan, kuten esimerkiksi ohjainlaitteita ja antureita. Lisäksi hän tietää, millaisia laitteita kilpailijat ovat julkistaneet ja joskus myös sen, mitä eivät vielä ole julkaisseet, mutta aikovat. Sovellusalueen asiantuntija määrittää laitteistojen minimi- ja maksimitarpeet. Hän osaa antaa perusratkaisut sovellusalaan liittyvään matematiikkaan ja algoritmeihin. Erityisesti hänen tulee osata tulkita näitä, ja osata ilmaista niiden tarkoitus tai perustoiminta esimerkiksi peukalosääntöjen avulla. Kaiken kaikkiaan sovellusalueen asiantuntija, tässä tapauksessa siis LVI-asiantuntija, näkee koko järjestelmän LVIongelmana, jossa on hieman muutakin mukana.

14 24 Sulautettu ohjelmointi Automaation asiantuntijan näkökulma Tässä esimerkissä automaation asiantuntija toimii sovellusalueen asiantuntijan tietämyksen täydentäjänä tuomalla siihen lisää teoreettista pohjaa automaatiotekniikan alueilla. Tällainen sovellusalueen lisäasiantuntija ei aina ole tarpeellinen, mutta toistaalta tällainen asiantuntija voi esittää uusia, korvaavia ratkaisuja, joiden toimivuus on selvitettävä varsinaisen sovellusalueen asiantuntijan kanssa. Esimerkkinä voisivat olla vaikkapa adaptiiviset säätöjärjestelmät, jotka mahdollistavat suuremman skaalautuvuuden. Kun uutta järjestelmää tehdään ainakin osittain uudelta pohjalta, voidaan törmätä sellaisiin ongelmiin, joita vanhoissa järjestelmissä ei ollut tai niihin ei voitu vaikuttaa. Tällaisessa tilanteessa lisäasiantuntijat voivat tuoda tarvittavaa lisätietämystä näiden uusien ongelmien ratkaisemiseen. Lisäasiantuntija näkeekin ongelman lähinnä oman alansa ongelmana, tässä tapauksessa siis automaatio-ongelmana Tietokoneasiantuntija Tietokone- ja digitaalitekniikan asiantuntija vastaa tarvittavan tietokonelaitteiston suunnittelusta tai valinnasta. Usein järjestelmään voidaan hankkia osia valmiina, ja tehtäväksi voi jäädä niiden yhteensovittaminen. Samankaltainen sovitusongelma on tarvittavien mitta- ja ohjauslaitteiden liittäminen tietokoneeseen: vaikka itse tietokone ja oheislaitteet saataisiin valmiina, ne täytyy saada keskustelemaan keskenään. Sovittamistyössä voidaan käyttää muiden alojen asiantuntijoita lisäasiantuntijoina. Esimerkissä LVI-suunnittelijalta saadaan tietää eri liityntätyyppien minimi- ja maksimimäärät. Aina tällainen lukumäärätasoinen tieto ei kuitenkaan ole riittävää, vaan tarvitaan syvällisempää apua. Esimerkiksi suunniteltava laite voi olla sellainen, että sitä tulee voida käyttää myös vaikeissa ympäristöolosuhteissa. Tällaisia tekijöitä ovat muun muassa pöly, kosteus, äärimmäinen lämpötila (ja lämpötilan vaihtelut), räjähdysvaara ja voimakkaat magneettikentät. Liitynnöille saatetaan antaa suuria vaatimuksia, esimerkiksi joissain ohjausjärjestelmissä liityntöjen tulee kestää jopa kilovolttien jännitettä siltä varalta, että jossain muualla järjestelmässä tulee vikoja tai lähistölle lyövä salama indusoi jännitepiikin. Eräs nykyajan erityisongelma on suojautua matkapuhelinten radiopurskeita vastaan. Lähes kaikissa sairaaloissa on kielletty matkapuhelinten käyttö (tosin nykyään usein turhaan ja vain varmuuden vuok-

15 Sulautetut järjestelmät 25 si), mutta ongelmia esiintyy muuallakin. Esimerkiksi käyvät autojen turvatyynyt, jotka varsinkin alkuaikoina saattoivat laueta matkapuhelimen aktivoituessa lähistöllä. Itse tietokonelaitteiston kohdalla tulee yhdessä ohjelmistoasiantuntijan kanssa päättää käytettävästä suorittimesta tai ainakin järjestelmän vaatimasta suurimmasta laskentatehosta, muistitilan tarpeesta ja millaista muistia tarvitaan (lukumuisti, luku-kirjoitusmuisti, kirjoitettava lukumuisti). Lisäksi tulee selvittää, mitä tehdään sähkökatkon tapahtuessa järjestetäänkö akkuvarmennus, suojataanko vain muisti ja sähkön palautuessa tehdään "pehmeä" käynnistys, tehdäänkö jotain muuta vai ei mitään. Myös käynnistyssekvenssiin tulee kiinnittää erityistä huomiota, sillä järjestelmä täytyy pystyä käynnistämään niin, että käynnistyksen aikana ei tapahdu mitään hallitsematonta. Osittain näitä käynnistysongelmia voidaan ratkaista ohjelmallisesti oikealla käynnistysjärjestyksellä, mutta aina tämä ei ole mahdollista, mikä vaatii sitten sen, että laitteistopuolella asia on hoidettu kuntoon. Tämäkin asiantuntija näkee ongelman oman alansa ongelmana, eli siis laitteisto-ongelmana, ja ohjelmisto on hänelle "musta laatikko" Ohjelmistoasiantuntija Ohjelmistoasiantuntijan tehtävänä on suunnitella, toteuttaa ja testata ohjelmisto. Tämä ei vähänkään suuremmassa järjestelmässä ole tietenkään yhden henkilön tehtävä, niin kuin ei edellisissäkään tehtävissä. Työnsä pohjaksi hän saa: Sovellusalueen edustajalta perustiedot ongelmasta ja ratkaisumallit "korkealla tasolla". Sovellusalueen lisäasiantuntijoilta algoritmeja tai muita vastaavia ohjeita. Tietokonesuunnittelijalta laitteiston rakenteen, muun muassa suorittimen mallin, muistien ja oheislaitteiden sijoittelun muistiavaruuteen ja oheislaitteiden ohjaustiedot (datalehdet ynnä muut sellaiset). Yrityksellä on usein oma sovelluskehyksensä tai useita sellaisia, ja ohjelmiston tekijän tulee sovittaa ohjelmistonsa näiden kehysten mukaan toteutettaviksi. Lisäksi on asioita, joita tulee koko ryhmän miettiä. Tällainen asia on esimerkiksi se, mitä tehdä sähkökatkoksessa tai jossain muussa virhetilanteessa.

16 26 Sulautettu ohjelmointi Edellisten pohjalta ohjelmistosuunnittelijan tulee arvioida tarvittavien ohjelmien koko ja suorittimen tehontarve tietokoneasiantuntijaa varten. Koska nämä tarpeet vaikuttavat siihen, mitä tietokonelaitteiston suunnittelija tekee, voidaan helposti havaita, että kyseessä on yhteistyössä tapahtuva järjestelmän määrittely. Vastaavanlaisia rajapintoja on kaikkialle, koska jotkin sinänsä järkevät ratkaisut voivat johtaa ohjelmallisesti mahdottomaan erityisesti reaaliaikaympäristössä tai hyvin vaikeasti ratkaistavaan tilanteeseen. Kaiken kaikkiaan ohjelmistojen tekijän on huolehdittava siitä, että muilta osapuolilta saatu määrittely riittää ohjelmien määrittelyyn ja toteutukseen. Järjestelmän kokonaiskuvan hahmottamiseksi sen kokonaismäärittelyn tulisi olla kattava, ja tähän on yleensä ohjelmistoasiantuntijalla parhaat työkalut. On tietenkin selvää, että määrittely on yhteistyötä, ja siitä vastaavan henkilön tulee olla sen, joka siihen parhaiten pystyy, riippumatta siitä, mikä hänen koulutustaustansa on. Ohjelmistosuunnittelija näkee ongelman lähinnä ohjelmointiongelmana, jossa laitteisto on musta laatikko ja LVI- ja automaatiopuoli (eli sovellusalue) kertoo ratkaistavan ongelman Suunnittelutyön eteneminen Suunnittelutyö etenee vaiheittain siten, että alussa lähdetään järjestelmän vaatimuksista. Erityisesti on huolehdittava, että sovellusalueen perusvaatimukset tulevat täytettyä. Tätä pohjaa voidaan sitten ideapalavereissa täydentää ja tarkentaa. Vaatimusten pohjalta syntyy sitten pohdintaa eri ratkaisuvaihtoehdoista. Esimerkkinä olevassa ilmastointijärjestelmässä voidaan miettiä järjestelmän ohjausta. Toteutetaanko tarvittavien mittatietojen kerääminen ja ohjausten antaminen erillisjohdotuksella vai kenties jollain väyläratkaisulla vai ehkäpä langattomasti? Esille tulevia näkökohtia voisivat olla esimerkiksi seuraavat: Sinänsä on aivan sama, miten tiedot kerätään, kunhan ne kerätään. Erillisjohdotusta on käytetty ennenkin, miksei siis nytkin. Erillisjohdotus tarvitsee keskusyksikköön päätelaitteen tai vastaavan joka mittauspistettä tai ohjauspistettä kohti. Väyläratkaisuja ei tarvitse tehdä alusta lähtien uudestaan, vaan niitä on saatavilla valmiina, esimerkiksi LON (Luku 14). Erillisjohdotus vie enemmän johtoa, mutta väyläratkaisu vaatii enemmän älykkyyttä siihen liitetyille laitteille. Kumpi on edullisempaa?

17 Sulautetut järjestelmät 27 Väyläratkaisua ei ole vielä käytetty paljon, eikä tekijöillä ole siitä kokemusta. Uskalletaanko se ottaa käyttöön? Tulevaisuus on kuitenkin väylän tai langattoman ratkaisun, joten ei kannata tehdä enää erillisjohdotuksella. Väylä- tai langaton ratkaisu on paljon helpompi skaalata. Mutta mikä väyläratkaisu otetaan? Entä jos valitsemme väärän? Talon valaistuksen ja muun sähkönjakelun ohjauksen voisi järjestää samalla väylällä, mikä tuo kokonaissäästöjä (ja yhden lisäasiantuntijan projektiin). Entä jos väylää ei johdoteta, vaan käytetään langatonta ratkaisua? Ohjelmallehan on yhdentekevää, miten tieto siirtyy yksiköiden välillä. Langaton vaihtoehto voitaisiin asentaa jälkikäteenkin, kun johdotusta ei tarvitse tehdä. Häiritseekö langaton järjestelmä jotain muuta järjestelmää tai päin vastoin? Lopullinen ratkaisu syntyy sitten yhdessä esitettyjen argumenttien pohjalta. Teknisten argumenttien lisäksi vaikuttaa päätökseen muun muassa ratkaisun taloudellisuus sekä tehtävän tuotteen arvoitu elinikä valitulla tekniikalla. Joskus myös käytettävissä oleva aika estää uuden tekniikan käyttöönoton, mikäli tämän tekniikan käyttö aiheuttaisi viivästymistä siihen kouluttautumisen tai muun vastaavan syyn takia Lisähuomioita Edelliset kuvaukset painottuivat hyvin voimakkaasti tietoteknisiin ongelmiin. Näiden lisäksi tulevat käyttöliittymiin ja turvallisuuteen liittyvät ongelmat: kuka voi ohjata ilmastointijärjestelmää ja miten? Lisäksi esimerkiksi laitteiston kotelointi voi varsinkin erityisympäristössä olla vaikeaa, ja siinä tarvitaan omaa osaamista. Vaikka teknisessä tilassa olevan ilmastointi- ja lämmitysjärjestelmän ulkonäkö ei todennäköisesti ole sen myynnin kannalta kovinkaan tärkeää, niin joissain muissa projekteissa tilanne voi olla täysin toinen. Mitä useammin laite on näkyvillä ja loppukäyttäjän suorassa ohjauksessa, sitä tärkeämpää on, että se miellyttää käyttäjää myös ulkoisilta ominaisuuksiltaan.

18 28 Sulautettu ohjelmointi 1.6 Sulautetut järjestelmät ja sulautettu ohjelmointi Sulautettujen järjestelmien toteutuksen yhteydessä sulautettu ohjelmointi on välttämätöntä. Toisaalta aina joskus sulautettua ohjelmointia tarvitaan myös muunlaisissa yhteyksissä, kuten vaikkapa pöytäkoneen näytönohjaimen kapasiteettia hyödynnettäessä tai laiteajuria tai käyttöjärjestelmän ydintä toteutettaessa. Tästä syystä tässä teoksessa ei rajoituta vain sulautettuihin järjestelmiin, vaan pyritään tasolle, jossa ohjelmistoteknisesti olennaisimmat seikat tulisivat ilmi, jotta teknisten yksityiskohtien soveltaminen erilaisissa tilanteissa on mahdollista tarpeen mukaan. Yhteisiä piirteitä sekä sulautetuille järjestelmille sekä edellä mainituille suunnittelutehtäville ovat ainakin seuraavat: Tarkkaan rajattu mahdollisuus käyttää muistia, ja ymmärrys siitä, miten paljon muistia käytetään. Ymmärrys siitä, mitä taustalla olevan laitteiston oletetaan tekevän. Huolellisuus suorituskyvyn kannalta olennaisten suunnitteluratkaisujen osalta, jopa siten, että useita erilaisia toteutuksia kokeillaan eri tilanteissa. Työkalut on yleensä jollain lailla erikoistettu tähän nimenomaiseen tehtävään. Ohjelmointitehtävät vaativat tyypillisesti ajastuksen ja aikaan sidonnaisten tapahtumien hallintaa. Rinnakkaiset suoritukset ovat tavallisia. Edellä esitetyt seikat muodostavat sulautetun ohjelmoinnin tärkeimmät vaatimukset. 1.7 Yhteenveto Sulautetussa järjestelmässä ohjelmisto ja laitteisto ovat kiinni toisissaan niin saumattomasti, ettei kumpikaan ole käyttökelpoinen ilman toista. Sulautetun järjestelmän suunnittelussa tarvitaan tyypillisesti useita erilaisia insinööritieteitä, ja sulautetun ohjelmiston toteutuksessa joudutaan usein yhdistämään eri alojen asiantuntijoiden vaatimukset. Sulautettu ohjelmointi, jota väistämättä tarvitaan sulautetun järjestelmän toteuttamisessa, mutta myös yleisemmin laitteistonläheisten ohjelmistoteknisten ongelmien ratkaisussa vaatii sisään-

19 Sulautetut järjestelmät 29 rakennetun rinnakkaisuuden, aikakriittisyyden, reaktiivisuuden, vikasietoisuuden ja yhä useammin myös hajautuksen huomioimista osana suunnittelua.

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi 1. Luento: Sulautetut Järjestelmät Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu

Lisätiedot

Sulautettu ohjelmointi

Sulautettu ohjelmointi Sulautettu ohjelmointi 1 "Esipainos" Hannu-Matti Järvinen Tommi Mikkonen Tampere 2010 2 Sulautettu ohjelmointi 1. Sulautetut järjestelmät... 11 1.1 Johdanto... 11 1.2 Sulautettujen järjestelmien ominaispiirteitä...14

Lisätiedot

OHJ-4301 Sulautettu Ohjelmointi

OHJ-4301 Sulautettu Ohjelmointi OHJ-4301 Sulautettu Ohjelmointi (http://www.cs.tut.fi/~sulo/) 5op, to 12-14, TB 109 Arto Salminen, arto.salminen@tut.fi Läpäisyvaatimukset Hyväksytysti suoritetut: Tentti Harjoitustyöt Harjoitustyöt 3

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

9. Luento: Ohjelmistotyö. Tommi Mikkonen, tommi.mikkonen@tut.fi

9. Luento: Ohjelmistotyö. Tommi Mikkonen, tommi.mikkonen@tut.fi 9. Luento: Ohjelmistotyö Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Johdanto Ristikäännös Testaus ja virheen jäljitys Yleensä Kehitysympäristössä Käyttöympäristössä Laitteiston testaus Iteratiivisesta

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot

Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot 1. vuosi Perusopinnot 2. vuosi 3. vuosi ELEKTRONIIKAN SUUNNITTELU JA TESTAUS MOBIILI TIETOLIIKENNE OHJELMISTOJEN KEHITYS 4. vuosi Ohjelmistojen kehitys

Lisätiedot

Hyvinkään Vuokra-Asunnot Oy: Lämmityksen ohjaus- ja seurantajärjestelmä

Hyvinkään Vuokra-Asunnot Oy: Lämmityksen ohjaus- ja seurantajärjestelmä Hyvinkään Vuokra-Asunnot Oy: Lämmityksen ohjaus- ja seurantajärjestelmä Osallistumishakemukseen liittyviä kysymyksiä saapui määräaikaan 15.11.2014 klo 12.00 mennessä 18 kappaletta. Ohessa on yhteenveto

Lisätiedot

Ohjelmiston toteutussuunnitelma

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

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

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

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi 5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden

Lisätiedot

SOVELLUSALUEEN KUVAUS

SOVELLUSALUEEN KUVAUS Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu SOVELLUSALUEEN KUVAUS LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 2.1 Tila: hyväksytty Päivämäärä: 12.12.2000

Lisätiedot

ohjelman arkkitehtuurista.

ohjelman arkkitehtuurista. 1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä

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

SÄHKÖTEKNIIKAN KOULUTUSOHJELMA 2010

SÄHKÖTEKNIIKAN KOULUTUSOHJELMA 2010 SÄHKÖTEKNIIKAN KOULUTUSOHJELMA 2010 Sähkötekniikan koulutusohjelman toimintaympäristö ja osaamistavoitteet Sähkötekniikan koulutusohjelma on voimakkaasti poikkialainen ja antaa mahdollisuuden perehtyä

Lisätiedot

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

OHJELMISTOKEHITYS -suuntautumisvaihtoehto OHJELMISTOKEHITYS -suuntautumisvaihtoehto Suuntautumisvaihtoehdon esittely 1. vuoden opiskelijoille Kari Laitinen www.oamk.fi/~karil/opetus.html Ohjelmistokehitys -opintosuunnan valitsevista henkilöistä

Lisätiedot

OHJ-4301 Sulautettu Ohjelmointi

OHJ-4301 Sulautettu Ohjelmointi OHJ-4301 Sulautettu Ohjelmointi (http://www.cs.tut.fi/~sulo/) /~sulo/) 5op, to 12-14, 14, TB 109 Tommi Mikkonen, tommi.mikkonen@tut.fi Arto Salminen, arto.salminen@tut.fi Läpäisyvaatimukset Hyväksytysti

Lisätiedot

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Ohjelmointi 1. Kumppanit

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

Testaajan eettiset periaatteet

Testaajan eettiset periaatteet Testaajan eettiset periaatteet Eettiset periaatteet ovat nousseet esille monien ammattiryhmien toiminnan yhteydessä. Tämä kalvosarja esittelee 2010-luvun testaajan työssä sovellettavia eettisiä periaatteita.

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

Muistitko soittaa asiakkaallesi?

Muistitko soittaa asiakkaallesi? webcrm Finland 1 webcrm Finland Muistitko soittaa asiakkaallesi? Riippumatta siitä, oletko myyntipäällikkö, markkinoija vai työskenteletkö HR tehtävissä, voit käyttää CRM ratkaisua erilaisiin tarpeisiin.

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt S11-04 Kompaktikamerat stereokamerajärjestelmässä Projektisuunnitelma Ari-Matti Reinsalo Anssi Niemi 28.1.2011 Projektityön tavoite Projektityössä

Lisätiedot

Robottialustan instrumentointi ja käyttöönotto

Robottialustan instrumentointi ja käyttöönotto Niilo Heinonen Hannu Häyrinen Matias Katajamäki Tuomas Pylvänen Robottialustan instrumentointi ja käyttöönotto AS-0.3200 Automaatio- ja systeemitekniikan projektityöt 1. Projektin tavoite Projektin puitteissa

Lisätiedot

TOIMINNALLINEN MÄÄRITTELY MS

TOIMINNALLINEN MÄÄRITTELY MS TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa

Lisätiedot

Integrointialgoritmit molekyylidynamiikassa

Integrointialgoritmit molekyylidynamiikassa Integrointialgoritmit molekyylidynamiikassa Markus Ovaska 28.11.2008 Esitelmän kulku MD-simulaatiot yleisesti Integrointialgoritmit: mitä integroidaan ja miten? Esimerkkejä eri algoritmeista Hyvän algoritmin

Lisätiedot

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen, 14. Luento: Kohti hajautettuja sulautettuja järjestelmiä Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Johdanto Hajautettujen järjestelmien väyliä LON CAN Pienen laitteen sisäinen hajautus OpenCL Network

Lisätiedot

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu Tietokoneen muisti nyt ja tulevaisuudessa Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu Yleisesti Muisti on yksi keskeisimmistä tietokoneen komponenteista Random Access Memory on yleistynyt

Lisätiedot

Hankinnan problematiikka

Hankinnan problematiikka Antti Kirmanen Hankinnan problematiikka Toimittajan näkökulma Asiakkaan näkökulma www.sulava.com www.facebook.com/sulavaoy 2 1. Ristiriita www.sulava.com www.facebook.com/sulavaoy 3 Asiakas haluaa Onnistuneen

Lisätiedot

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

Lisätiedot

Software engineering

Software engineering Software engineering Alkuperäinen määritelmä: Naur P., Randell B. (eds.): Software Engineering: A Report on A Conference Sponsored by the NATO Science Committee, NATO, 1968: The establishment and use of

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

Aineiston luovuttaminen tilaajalle KSE13 Tietomallit ja sähköinen aineisto. Matti Kiiskinen 12.2.2014/Telu-koulutus

Aineiston luovuttaminen tilaajalle KSE13 Tietomallit ja sähköinen aineisto. Matti Kiiskinen 12.2.2014/Telu-koulutus Aineiston luovuttaminen tilaajalle KSE13 Tietomallit ja sähköinen aineisto Matti Kiiskinen 12.2.2014/Telu-koulutus KSE 2013, keskeiset muutokset liittyen konsulttityön luovutukseen Asiakirjat -> Aineisto

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

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle TEEMA 1 Tietokoneen peruskäyttö Digikamera Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle Tämä tietopaketti hahmottaa lukijalle, millä tavalla kuvat voidaan siirtää kamerakännykästä tai

Lisätiedot

Internet-pohjainen ryhmätyöympäristö

Internet-pohjainen ryhmätyöympäristö Menetelmäohje Internet-pohjainen ryhmätyöympäristö Riku Hurmalainen, 24.3.2002 Sisällysluettelo 1. Johdanto...3 2. Termit...4 3. Toteutus...5 3.1. Yleiskuvaus...5 3.2. Tekninen ratkaisu...5 3.3. Tietoturva...6

Lisätiedot

POHJOIS-KARJALAN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma. Mikael Partanen VAATIMUSMÄÄRITTELYT

POHJOIS-KARJALAN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma. Mikael Partanen VAATIMUSMÄÄRITTELYT POHJOIS-KARJALAN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Mikael Partanen VAATIMUSMÄÄRITTELYT Opinnäytetyö Syyskuu 2011 SISÄLTÖ 1 JOHDANTO... 3 2 KÄSITTEET... 3 2.1 Kiinteistöautomaatio... 3 2.2

Lisätiedot

CHERMUG-pelien käyttö opiskelijoiden keskuudessa vaihtoehtoisen tutkimustavan oppimiseksi

CHERMUG-pelien käyttö opiskelijoiden keskuudessa vaihtoehtoisen tutkimustavan oppimiseksi Tiivistelmä CHERMUG-projekti on kansainvälinen konsortio, jossa on kumppaneita usealta eri alalta. Yksi tärkeimmistä asioista on luoda yhteinen lähtökohta, jotta voimme kommunikoida ja auttaa projektin

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

kertaa samat järjestykseen lukkarissa.

kertaa samat järjestykseen lukkarissa. Opetuksen toistuva varaus ryhmällee TY10S11 - Tästä tulee pitkä esimerkki, sillä pyrin nyt melko yksityiskohtaisesti kuvaamaan sen osion mikä syntyy tiedon hakemisesta vuosisuunnittelusta, sen tiedon kirjaamiseen

Lisätiedot

TIETOTEKNIIKAN KOULUTUSOHJELMA

TIETOTEKNIIKAN KOULUTUSOHJELMA TIETOTEKNIIKAN KOULUTUSOHJELMA Tietotekniikan koulutusohjelman toimintaympäristö ja osaamistavoitteet Tietotekniikan koulutusohjelmasta valmistuneet insinöörit sijoittuvat suunnittelu-, ohjelmointi-, esimies-,

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

ADE Oy Hämeen valtatie 144 20540 TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus: 1626957-3

ADE Oy Hämeen valtatie 144 20540 TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus: 1626957-3 Tuotekonfigurointi ADE Oy lyhyesti Asiakkaiden tarpeisiin suunnattua innovatiivista ja toimivaa ohjelmisto- ja 3d animaatiopalvelua. Ade Oy on toteuttanut vuodesta 2000 alkaen haastavaa interaktiivista

Lisätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.

Lisätiedot

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014. Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014. Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0 KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY 2014 Käyttäjätutkimus ja käsitteellinen suunnittelu Järjestelmän nimi versio 1.0 Jakelu: Tulostettu: 201543 Samuli Hirvonen samuli.hirvonen@student.tut.fi

Lisätiedot

Mistä on kyse ja mitä hyötyä ne tuovat?

Mistä on kyse ja mitä hyötyä ne tuovat? Pilvipalvelut Mistä on kyse ja mitä hyötyä ne tuovat? Pilvipalvelut - Mistä on kyse ja mitä hyötyä ne tuovat? Suurin osa kaikista uusista it-sovelluksista ja -ohjelmistoista toteutetaan pilvipalveluna.

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

PILETTI. Tekninen vaatimusmäärittely. v. 0.2

PILETTI. Tekninen vaatimusmäärittely. v. 0.2 PILETTI Tekninen vaatimusmäärittely v. 0.2 2 Sisällysluettelo 1. Yleiskuvaus... 3 2. Taustajärjestelmä... 4 3. Palvelupisteiden sovellus... 4 4. Korttisovellus ja turvaratkaisu... 4 5. Rajapinnat... 5

Lisätiedot

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa CT50A2602 Käyttöjärjestelmät Seminaarityö Tietokoneen muisti nyt ja tulevaisuudessa Jyrki Eurén Raimo Asikainen Janne Laitinen Teppo Lapinkoski Manu Toivanen Pasi Ruuth Johdanto Taustaa Työn taustana ryhmän

Lisätiedot

Green care erottautumistekijänä kunnallisissa hankinnoissa

Green care erottautumistekijänä kunnallisissa hankinnoissa Green care erottautumistekijänä kunnallisissa hankinnoissa Kerrotaan, että tuhatjalkainen osasi aina kävellä, kunnes siltä kysyttiin, mitä jalkaa se liikuttaa ensimmäisenä. Jarno Väisänen Tampere 110909

Lisätiedot

Projektityö

Projektityö Projektityö 21.10.2005 Projektisuunnitelma Työn ositus Projektisuunnitelman sisältö Kurssin luennoitsija ja projektiryhmien ohjaaja: Timo Poranen (email: tp@cs.uta.fi, työhuone: B1042) Kurssin kotisivut:

Lisätiedot

Tietojärjestelmien haasteet SOTE-uudistuksessa. apulaiskaupunginjohtaja Pekka Utriainen, Jyväskylän kaupunki 21.5.2014

Tietojärjestelmien haasteet SOTE-uudistuksessa. apulaiskaupunginjohtaja Pekka Utriainen, Jyväskylän kaupunki 21.5.2014 Tietojärjestelmien haasteet SOTE-uudistuksessa apulaiskaupunginjohtaja Pekka Utriainen, Jyväskylän kaupunki 21.5.2014 19.5.2014 Tavoitteet Ammattilaiset uuden sukupolven atk järjestelmälle - voisko tämän

Lisätiedot

AS-0.3200 Automaatio- ja systeemitekniikan projektityöt

AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Teknillinen korkeakoulu Sähkö- ja tietoliikennetekniikan osasto AS-0.3200 Automaatio- ja systeemitekniikan projektityöt CeilBot 2DoF camera actuator Antti Riksman Sisältö 1 CeilBot 3 2 Projektin tämän

Lisätiedot

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT KOULUTUKSEN KOHDERYHMÄ SISÄLTÖ Koulutuksen tavoitteena on antaa opiskelijalle valmiudet uusien tietoteknisten menetelmien ja välineiden hyödyntämiseen.

Lisätiedot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä Simo Tauriainen www.ponsse.com 25.8.2011 Ponsse-konserni Ponsse Oyj on tavaralajimenetelmän metsäkoneiden myyntiin, tuotantoon, huoltoon ja

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen harjoitustyö. ASCII-grafiikkaa Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita

Lisätiedot

Sähköisten viranomaisaineistojen arkistoinnin ja säilyttämisen palvelukokonaisuus

Sähköisten viranomaisaineistojen arkistoinnin ja säilyttämisen palvelukokonaisuus Luo / Muokkaa Lähetä Lausunnonantajat Yhteenveto Sähköisten viranomaisaineistojen arkistoinnin ja säilyttämisen palvelukokonaisuus Sähköinen arkistoinnin palvelukokonaisuus Lausunnonantajia: 1 Puollatko

Lisätiedot

Linuxissa uusi elämä 1

Linuxissa uusi elämä 1 17.06.19 Linuxissa uusi elämä 1 Linux on hyvä vaihtoehto Windowsille Uusiin tai vanhempiin tietokoneisiin Miksi käyttäisin Linuxia Tekniikan Maailman Linux vinkki Siirtyisinkö Linuxiin? 17.06.19 Linuxissa

Lisätiedot

Kuvitettu YVA- opas 2018

Kuvitettu YVA- opas 2018 Kuvitettu YVA- opas 2018 Oppaan sisältö I Perusasiat YVA-menettelystä s. 4 II Vähän täsmennystä tekijöistä ja osallistumisesta s. 8 III YVA-menettelyn sisällöt s. 13 IV Arvioinnin tulokset ja kuinka niihin

Lisätiedot

Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen

Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen Verkkoratkaisujen tarjoaminen pk-yrityksille muistuttaa hieman

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

ENERGIA ILTA IISOY / Scandic Station 23.5.2013

ENERGIA ILTA IISOY / Scandic Station 23.5.2013 ENERGIA ILTA IISOY / Scandic Station 23.5.2013 Energia?! Kiinteistön käyttäjät sekä tekniset laitteistot käyttävät ja kuluttavat energiaa Jokin laite säätää ja ohjaa tätä kulutusta. Ohjauslaitteet keskitetty

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen S14 09 Sisäpeltorobotti AS 0.3200 Automaatio ja systeemitekniikan projektityöt Antti Kulpakko, Mikko Ikonen 1. Projektin tavoitteet Projektin tavoitteena on toteuttaa ohjelmisto sisäpeltorobottiin seuraavien

Lisätiedot

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat

Lisätiedot

Virtuoosi POS-järjestelmien joukossa

Virtuoosi POS-järjestelmien joukossa Virtuoosi POS-järjestelmien joukossa Menestyvä liiketoiminta muistuttaa monin osin huippuunsa viritettyä orkesteria jossa eri osien sopusuhtainen vuorovaikutus ja integrointi luovat sykähdyttävän esityksen.

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

Tutkintovaatimukset suoraan DI-vaiheeseen valituille 1 / 10 Tutkintovaatimukset suoraan DI-vaiheeseen valituille Tutkintovaatimukset määräytyvät suoraan DI-vaiheeseen valituilla opiskelijoilla pääsääntöisesti samoin kuin muillakin DI-tutkintoa suorittavilla

Lisätiedot

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ aaro.leikari@hotmail.com TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ 25.01.2016 SISÄLLYS 1. Käyttöjärjestelmän asentaminen... 1 1.1 Windowsin asettamia laitteistovaatimuksia... 1 1.2 Windowsin asentaminen...

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet Järjestelmäarkkitehtuuri (TK081702) Integraation tavoitteita Lähtökohta Web-palvelut Asiakasrekisteri ERP, Tuotannon ohjaus Tuotanto Myynti Intranet Extranet? CRM Johdon tuki Henkilöstö Kirjanpito Palkanlaskenta

Lisätiedot

KONEAUTOMAATION LAATU JA TURVALLISUUS. 4.6.2015 Marko Varpunen

KONEAUTOMAATION LAATU JA TURVALLISUUS. 4.6.2015 Marko Varpunen KONEAUTOMAATION LAATU JA TURVALLISUUS 4.6.2015 Marko Varpunen TLJ ja automaatio Rautatie, metro, teollisuus-laitokset, kaivoskoneet, vesi, n. 90 henkeä Mikkeli Turvallisuusjohtaminen konsultointi riskienarviointi

Lisätiedot

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1) Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee

Lisätiedot

3. Luento: Muistin hallinta. Tommi Mikkonen,

3. Luento: Muistin hallinta. Tommi Mikkonen, 3. Luento: Muistin hallinta Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Erityyppiset muistit Ohjelman sijoittelu muistiin Ohjelman sisäinen muistinhallinta Muistinhallintayksikkö Välimuisti Yhteenveto

Lisätiedot

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä Linux 00 Keskeiset piirteet Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Mikä Linux on? 2. Kuinka Linux syntyi ja kehittyy? 3. Mitkä ovat Linuxin vahvuudet? 2 1 Linux on

Lisätiedot

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtävät ja ratkaisut viikolle 48 Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin

Lisätiedot

S12-11. Portaalinosturi AS-0.3200. Projektisuunnitelma 2012. Oleg Kovalev

S12-11. Portaalinosturi AS-0.3200. Projektisuunnitelma 2012. Oleg Kovalev S12-11 Portaalinosturi AS-0.3200 Projektisuunnitelma 2012 Oleg Kovalev Sisällys 1. Työn tavoite... 3 2. Projektin osa-alueet... 3 2.1. Suunnittelu... 3 2.2. Komponenttien hankinta... 3 2.3. Valmistus...

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento

Lisätiedot

S11-09 Control System for an. Autonomous Household Robot Platform

S11-09 Control System for an. Autonomous Household Robot Platform S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on

Lisätiedot

Rosemount 3051S sähköiset ERS-anturit

Rosemount 3051S sähköiset ERS-anturit sähköiset ERS-anturit Uudentasoiset mittausratkaisut erityiskohteisiin Uusi ratkaisu vanhaan ongelmaan Kaikkialta löytyy mittauksia, joiden luotettava toiminta edellyttää sekä aikaa että voimavaroja. Tyypillisiä

Lisätiedot

TIETOTURVALLISUUDESTA

TIETOTURVALLISUUDESTA TIETOTURVALLISUUDESTA Tietoturvallisuus riippuu monista asioista. Tärkein niistä on käyttäjä itse! Käyttäjä voi toimia turvallisesti tai turvattomasti Tervettä harkintaa tarvitaan erityisesti Internetin

Lisätiedot

Suunnitteluautomaatio

Suunnitteluautomaatio 1 Suunnitteluautomaatio Prof. Jarmo Takala Tampereen teknillinen yliopisto Digitaali- ja tietokonetekniikan laitos 2 IC-teknologian tarjoamat mahdollisuudet IC-teknologian kehittyminen on mahdollistanut

Lisätiedot

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! eli... Hyvä kaava sanoo enemmän kuin,... tuhat riviä koodia!... sata riviä tekstiä!... kymmenen diagrammia! YLEISTÄ FORMAALEISTA

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Käyttöjärjestelmät: prosessit

Käyttöjärjestelmät: prosessit Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Käyttöjärjestelmä

Lisätiedot

Tietojärjestelmän osat

Tietojärjestelmän osat Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto

Lisätiedot

Soft QA. Vaatimusten muutostenhallinta. Ongelma

Soft QA. Vaatimusten muutostenhallinta. Ongelma Vaatimusten muutostenhallinta Ongelma Muutostenhallinta on usein vaatimustenhallinnan Akilleen kantapää. Projektien alkaessa ensimmäiset vaatimukset kootaan ja dokumentoidaan, mutta usein vaatimuksia ei

Lisätiedot

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä $$$ Raha ratkaisee On vaara rakastua tekniikkaan, myös asiakkailla Kaikki pitää pystyä perustelemaan taloudellisesti Projektin toteutus yleensä -> voidaan jättää toteuttamatta, jos ei maksa itseään takaisin

Lisätiedot

A11-02 Infrapunasuodinautomatiikka kameralle

A11-02 Infrapunasuodinautomatiikka kameralle A11-02 Infrapunasuodinautomatiikka kameralle Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Lassi Seppälä Johan Dahl Sisällysluettelo Sisällysluettelo 1. Projektityön tavoite

Lisätiedot

Parasta ammunnanharjoitteluun

Parasta ammunnanharjoitteluun Parasta ammunnanharjoitteluun Edut Objektiivinen suorituskykyanalyysi Tarkka mittaus Kompakti, kevyt ja helppokäyttöinen Yleiskiinnike useimpiin urheiluaseisiin Helppo kohdistus Todellinen ammuntaetäisyys

Lisätiedot

SIMULOINTIYMPÄRISTÖJEN SOVELTAMINEN OPETUKSESSA SIMULOINNILLA TUOTANTOA KEHITTÄMÄÄN-SEMINAARI TIMO SUVELA

SIMULOINTIYMPÄRISTÖJEN SOVELTAMINEN OPETUKSESSA SIMULOINNILLA TUOTANTOA KEHITTÄMÄÄN-SEMINAARI TIMO SUVELA SOVELTAMINEN OPETUKSESSA SIMULOINNILLA TUOTANTOA KEHITTÄMÄÄN-SEMINAARI 2.12. TIMO SUVELA KUKA OLEN? Timo Suvela lehtori, sähkö- ja automaatiotekniikka (timo.suvela@samk.fi, 044-7103275) Nykyisyys SAMK:iin

Lisätiedot

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain Jaollisuustestejä (matematiikan mestariluokka, 7.11.2009, ohjattujen harjoitusten lopputuloslappu) Huom! Nämä eivät tietenkään ole ainoita jaollisuussääntöjä; ovatpahan vain hyödyllisiä ja ainakin osittain

Lisätiedot

LIITE. asiakirjaan. komission delegoitu asetus

LIITE. asiakirjaan. komission delegoitu asetus EUROOPAN KOMISSIO Bryssel 12.10.2015 C(2015) 6823 final ANNEX 1 PART 6/11 LIITE asiakirjaan komission delegoitu asetus kaksikäyttötuotteiden vientiä, siirtoa, välitystä ja kauttakulkua koskevan yhteisön

Lisätiedot