Ohjelmisto osana laitetta Marko Leppänen 1
Ohjelmistoja? 2
Merkitys Suomen koko kansantalouden tasolla ohjelmistoista riippuvaista teollisuuden liikevaihtoa kertyy liki kolmannes koko liikevaihdosta eli noin 39 miljardia euroa. Suomen teollisuuden viennistä noin kolmannes eli 17 miljardia tulee tuotteista, jotka ovat ohjelmistoista riippuvaisia. Suomessa toimivat teollisuusyritykset työllistävät suoraan noin 19 500 ohjelmistokehittäjää, joista noin 9 400 työskentelee Suomessa. Teollisuuden alihankkima ohjelmistotyö työllistää melkein yhtä suuren joukon. Softaa koneisiin! Ohjelmisto-osaaminen suomalaisen teollisuuden uudistajana Etla, 2011 3
Ohjelmistojen koko Embedded Software: Facts, Figures, and Future IEEE Computer, April 2009 (vol. 42 no. 4) 4
Ohjelmistojen koko Embedded Software: Facts, Figures, and Future IEEE Computer, April 2009 (vol. 42 no. 4) 5
Koodia on paljon 6
Nykyajan elämää 7
Paikallista taustaa Pirkanmaalla vahva konepajaosaamisen perinne Sandvik, John Deere, Metso, Cargotec jne. Sandvikin edustaja Aamulehdessä kehui TTY:n vaikutusta Cargotecin tutkimuslaitos Ruskossa osittain TTY:n läheisyyden vuoksi 8
Erityispiirteitä Koneenohjausjärjestelmillä on vahvoja laatuvaatimuksia johtuen sovellusalueen erityispiirteistä. Koneenohjausjärjestelmien elinkaari on pitkä, niiden turvallisuus on ensiarvoisen tärkeää, mutta toisaalta saavutettavuutta ei saa vaarantaa. Järjestelmät ovat usein hajautettuja ja niiden on reagoitava nopeasti niin ulkoisiin ärsykkeisiin kuin ohjaukseenkin. Nämä asiat yhdessä tekevät järjestelmien suunnittelusta haastavaa jopa ohjelmistoammattilaiselle ja usein järjestelmien suunnittelijoiden on oltava myös sovellusalueen asiantuntijoita. Järjestelmät ovat osa tuotantoketjuja ja niiden on toimittava yhteen. 9
Mikä on tärkeää? 10
Työkoneen rakenne 11
Yleinen työkoneen rakenne Kone Kouran ohjaus Rungon ohjaus Voimansiirron ohjaus PC väylä Tuotantojärjestelmä Etäyhteys 12
Yleisluontoiset ohjaimet 13
Käyttäjäkokemus 14
Ohjelmiston rakenne 15
Ympäristöarvot 16
Ympäristöarvot 17
Komponenttipohjaisuus Sulautettu järjestelmä koostuu tuotteesta, joka koostuu puolestaan ohjaimista. Ohjaimilla on oma rautansa, jota ohjaa raudan oma firmware. Firmwaren päällä sitten sovelluskohtainen ohjelmisto. Tämä hw+fw+sw on yksittäinen komponentti järjestelmässä. Kaikilla osasilla on oma versionsa. 18
Koneenohjausjärjestelmien erikoisuuksia Monesti raudan valmistamisella pitkä perinne, ohjelmisto suhteellisen uusi tulokas. Kuitenkin ohjelmisto usein avainasemassa uusien rahaa tuottavien ominaisuuksien teossa. Tuotteen pitkä elinkaari Tiettyä tuotetta aletaan suunnittelemaan ehkä jo 5 vuotta ennen julkaisua Julkaistua tuotetta valmistetaan 5 vuotta Viimeisintäkin valmistunutta konetta tuetaan 10 vuotta Koneisiin lisätään uusia ominaisuuksia, tuotteenhallinta tärkeää Silti kentällä päivittäminen saattaa olla hankalaa 19
Koneenohjausjärjestelmien erikoisuuksia Turvallisuus ja luotettavuus Kone voi aiheuttaa kuolinuhreja Kone voi aiheuttaa merkittäviä vahinkoja Kone on kallis ja sen downtime kallista Lainsäädäntö: ISO EN13849 tai IEC61508 ja IEC6260 Alihankinta Osa järjestelmistä ostetaan muilta yrityksiltä Rajapinnat tärkeitä Tietoturva tärkeää 20
Koneenohjauksen erityispiirteitä Omat legacy ohjelmistot ja komponentit, COTS Osaongelmana pitkää elinkaarta Olemassa oleva toimiva koodi on uudistusten pahin vihollinen COTS komponenttien tuki Ohjelmistot osana COTS-komponentteja Äärimmäinen esimerkki: moottori Saman softan pitää toimia eri alustoilla. Korporaation laajuiset alustat 21
Koneenohjauksen erityispiirteitä Ohjelmistojen alihankinta: Perinteisesti konepajayritykset eivät miellä itseään ohjelmistotaloina Alijärjestelmät ostetaan => monitoimittajaprojekti, joka on usein perinteisillekin ohjelmistotaloille hankalaa. Hajautettu ohjelmistokehitys (P. Abrahamsson: Ei toimi). Alihankkijalla ei ole useasti aivan yhtä vahvaa sovellusaluetietämystä ja tämä joudutaan dokumentoimaan / kommunikoimaan alihankkijalle. Osaaminen myös vuotaa ulos talosta. NDA:t ja IPR tärkeää 22
Koneenohjauksen erityispiirteitä Arkkitehtuuri usein väyläpohjainen ja hajautettu, lisänä M2M - kommunikaatio Hajautuksesta saadaan hallittavuutta (separation of concerns) Kaapelointikustannukset vähenevät Kokonaiskuva hämärtyy Hajautus, reaaliaikaisuus, järjestelmien järjestelmät Sulautettu ympäristö Työkalujen saatavuus voi olla huono Laskentateho? Palvelut 23
Yleisiä ongelmia Testaus hankalaa Rautaa ei välttämättä ole projektin alussa saatavilla Reaktiivisuus Osajärjestelmä riippuu kokonaisuudesta Yksittäisen ohjainmoduulin toiminnasta ei välttämättä havaintoja ulkopuolelle ei kunnon testausinfraa/-työkaluja Alihankkijan vaikeudet testata usein paljon pahempia Testauksen (huonoja?) ratkaisuja: Itsetehtyjä testausstubeja, regressiotestaus vaikeaa testaillaan irtopurkilla omalla työpöydällä, vaikeaa integraation suhteen testaillaan simulaattorilla, jota tarvitaan muuhunkin testaillaan koneella, jota on vaikea saada käyttöön, kallis laite 24
Ongelmat jatkuvat Henkilöstöongelmat kehityspuolella koko kehitys henkilöityy yhteen/kahteen toimijaan osajärjestelmäkehitys omassa talossa, kokonaisuuden hallinta näiden henkilöiden kiire vanhojen projektien kanssa liikaa palavereja (riippuvuudet muihin osiin/rautaan, alihankinnan järjestäminen) ei aikaa keskittyä omaan kehitystyöhön Huoltobisnes tärkeä tulolähde Etähuolto Ennakoiva huolto Halutaan kuitenkin nähdä joku paikan päällä Vendor lock-in Kehitysympäristön yhtenäistäminen Työkalujen elinkaari 25
Ongelmat jatkuvat Vaatimustenhallinta Toiminnalliset vaatimukset usein hyvin hanskassa Ei-toiminnalliset vaatimukset hämärtyvät Asiakkaan käsite Mistä vaatimukset tulevat? Muut sidosryhmät Yleisiä ongelmia: Kehityksen ketteryys Paikallinen minimi ei ole koko systeemin minimi Dokumentaatio ei ole hyvä kommunikointiväline ja dokumenttien ylläpito on kallista Avoimuus vastaan propietary-ratkaisut 26
Projekti vai tuote? Pitää muistaa tehdäänkö sarjatuotantoa vai projektitoimituksia. Tämä on keskeinen bisnespäätös ja vaikuttaa moniin asioihin. Bisnesmalliin sopimattomat toimintatavat aiheuttavat ongelmia softapuolellakin Huoltaako järjestelmiä tehtaan R&D vai erillinen huoltoorganisaatio? Joskus jonkun osan parametrisointi voi esim. vaatia oman työkalun, joka ei ole yhteensopiva tehtaan muiden työkalujen kanssa. Huoltopaketti koostuu valtavasta määrästä sovelluksia, jokainen sopii tiettyyn tuotekonfiguraatioon -> ei toimi sarjatuotannossa. 27
Jos valmiissa tuotteessa ongelmia kentällä Ilman koneen diagnostiikkaa huolto ei tiedä helposti mikä on vialla, paikalle tarvitaan softan tekijä, joka voi softadiagnostiikkatyökaluilla debugata konetta. Tästä seuraa ongelmia Softamiehen paikalle saaminen kestää Softamies on paikalliseen huoltoon verrattuna kallis, etenkin matkat huomioiden Softamies on pois muista töistään. Usein paikalla selviää, että varaosia ei tarvita vaan riittää huonon kontaktin parantaminen tai kytkimen säätö tms. 28
Töitä tänään We offer international projects with interesting challenges in diverse software development tasks in growing organization. You will be member of Mitron Display Solutions hw/sw engineering team as a software developer, developing solutions and drivers for display product platforms. In addition you will also participate in test planning, product validation, and technical documentation of your deliverables. This position requires knowledge and experience on the following areas: Linux development environment and drivers.c/c++ programming, experience of embedded processors (ARM Cortex, ARM9) and interfaces 2-5 years of relevant experience. You will participate in the design and implementation of brand name mobile phones, car entertainment systems, set-top boxes and storage products, which are empowered by Tuxera file systems. The code you write will run on millions of electronics devices every We are looking for extraordinarily talented SW developers to join our team in Mjärdevi, Linköping. We work in a Linux environment and you need to be a skilled C++ programmer and preferably have experience from working with IP and TV. 29
Ja lopuksi mainos. 30