2.9.2013 JOtu2013/K.Systä 1 Johdatus ohjelmistotuotantoon Luento 2 2.9.2013
Viikkoharjoitukset Tiistai klo 10-12 Marie-Elise (marie-elise.konto@tut.fi) Tiistai klo 12-14 Marie-Elise (marie-elise.konto@tut.fi) Keskiviikko klo 10-12 Tensu (tero.ahtee@tut.fi) Keskiviikko klo 12-14 Tensu (tero.ahtee@tut.fi) Keskiviikko klo 14-16 Tensu (tero.ahtee@tut.fi) Keskiviikko klo 16-18 Tensu (tero.ahtee@tut.fi) Torstai klo 12-14 Timo (timo.aho@tut.fi) Torstai klo 14-16 Timo (timo.aho@tut.fi) Torstai klo 16-18 Tensu (timo.aho@tut.fi) On mahdollista, että joku ryhmistä (se jossa vähiten opiskelijoita) lopetetaan. Maksimi määrä per ryhmä 25! 2.9.2013 JOtu2013/K.Systä 2
Harjoitustyöstä 4 hengen ryhmien muodostaminen voi alkaa IDLE tästä avautuu tällä viikolla Ryhmien oltava kasassa 13.9 Ne joille ei ole ryhmää sijoitetaan opettajien toimesta Harjoitustyön taustatarina 16.9 2.9.2013 JOtu2013/K.Systä 3
Alustava luentoaikataulu 26.8: Johdanto + historiaa, mitä on ohjelmistotuotanto 2.9: Ohjelmistojen roolista ja ohjelmistotyön määrästä, ohjelmistotyypit 9.9: Miten ohjelmistotyö organisoidaan (vaihejako ja prosessi-mallit) 16.9: vaatimusmäärittelyt 23.9: projektitoiminta 30.9: Yleiset notaatiot erityisesti UML 7.10: Esimerkkiprojekti (mahdollisesti vierailuluento) 21.10: Asiakasroolista 28.10: Käyttäjä ja käyttäjäkokemus ohjelmistoprojektissa 4.11: Tiedon mallintaminen 11.11: Ohjelmisto osana laitetta 1 18.11: Ohjelmisto osana laitetta 2 25.11: IPR, sopimukset, open source 2.12: Kertausta 2.9.2013 JOtu2013/K.Systä 4
Tämän viikon luennosta Ohjelmistojen roolista ja ohjelmistojen ominaisuuksista Ohjelmistotyön määrästä, ohjelmistotyypit Ohjelmistojen tekeminen helikopteri-perspektiivistä katsottuna (+ muutamia esimerkkejä) 2.9.2013 JOtu2013/K.Systä 5
Ohjelmistotyyppejä(1) Varus- ja työkaluohjelmistot teknis-tieteelliseen laskentaan tarkoitetut ohjelmistot tietämyspohjaiset järjestelmät kaupallishallinnolliset ohjelmistot (yrityksen tietojärjestelmät) prosessinohjaus- ja prosessiautomaatiojärjestelmät 6 2.9.2013 JOtu2013/K.Systä
Ohjelmistotyyppejä(2) Sulautetut järjestelmät Koneen tai laiteen sisällä hissin ohjausjärjestelmä Reaaliaikajärjestelmät Ohjelman on reagoitava heti polttoaineen ja jarrujen säätely autossa Reaktiiviset järjestelmät toimivat jatkuvasti Puhelinkeskus Hissin ohjauslogiikka Melkein kaikki laitteet tänä päivänä? 7 2.9.2013 JOtu2013/K.Systä
Monimutkaisempi näkemys Työkalut Laskenta Tietämys Tietojärjestelmät Prosessin ohjaus Sulautetut Reaaliaika Räätälöidyt Paketoidut Palvelupohjaiset 2.9.2013 JOtu2013/K.Systä 8
IDLE Mielenkiintoinen esimerkki tämän kurssin kannalta Alunperin rakennettu tietokantakurssien opetuksen apuvälineeksi IDLE:een on vuosien varrella rakennettu paljon toimintoja (lista perustuu käyttöohjeeseen) Sisäänkirjautuminen ja integrointi TUT:n identiteetin hallintaan Kielen vaihtaminen (suomi, englanti, ranska) Kurssille ilmoittautuminen Harjoitusryhmiin ilmoittautuminen Harjoitustöiden tekeminen ja palauttaminen Luokka-toiminto harjoituksissa tapahtuvaa toimintoa varten Harjoitustyöryhmän muodostaminen Välinäyttöajan varaaminen Ohjelma on siis syntynyt käytännön tarpeista 2.9.2013 JOtu2013/K.Systä 9
IDLE on kotikutoinen järjestelmä Tehty itse ja räätälöity omiin tarpeisiin Nimenomaan oman laitoksen Toisin kuin monet kotikutoiset toteutus on ammattimainen Silloin kun järjestelmä rakennettiin kilpailevia vaihtoehtoja ei ollut Nyt meillä on POP/ROCK ja MOODLE (http://fi.wikipedia.org/wiki/moodle, http://moodle.tut.fi/) MOODLE:n räätälöintiä tehdään kaupallisena palveluna POP/ROCK työkalun käyttämiselle ei ole vaihtoehtoa koska laitoksemme on osa yliopistoa Mutta entä jatkossa? MOODLE vai IDLE? 2.9.2013 JOtu2013/K.Systä 10
MOODLE vai IDLE Ominaisuudet Osaaminen Raha/resurssit MOODLE Opiskelijat tottuneet muiden laitosten kurseilla Laitoksen ei tarvitse investoida. (Kustannukset jaetaan laajemmin) Siirtyminen edellyttää henkilökunnalta opettelua ja kurssijärjestelyiden uudistamista IDLE Sovitettu meidän laitoksen tarpeisiin Laitoksen henkilökunta osaa IDLE:n käytön Vaatii osapäiväisen ylläpitäjän. 2.9.2013 JOtu2013/K.Systä 11
Esimerkki 1: Pieni sulautettu järjestelmä (venttiili) Teknisiä haasteita - luotettavuus - nopeus (reaaliaika) - säätöalgoritmi - muisti, prosessori, virta Toteutuksen haasteita - kehitystyökalut - testaaminen JOtu2013/K.Systä 12
Esimerkki 2: tyypillinen työkoneen ohjausjärjestelmä Ohjaus- PC Linux- tai Windows-käyttöjärjestelmä CAN-väylä Puomin ja kouran ohjaus Moottorin ohjaus Vaihteiston ohjaus Rungon ohjaus Hallintalaitteiden ohjaus toimilaitteet ja anturit toimilaitteet ja anturit toimilaitteet ja anturit toimilaitteet ja anturit toimilaitteet ja anturit Tyypillisesti PLC-ohjaimia (+IEC 61131-3 -standardin mukainen ohjelmointi) tai RT-käyttöjärjestelmä (+C-ohjelmointi) Toteutuksen haasteita - järjestelmän paisuminen - Oma kehitys vs valmiit komponentit Teknisiä haasteita - luotettavuus - nopeus (reaaliaika) JOtu2013/K.Systä 13
Esimerkki 3: verkossa toimiva PC-sovellus DJ-online-palvelin Palvelinohjelmisto SOAPrajapinta Jeesbox Ylläpidon hallintajärjestelmä Musiikkitietokanta Metatietokanta Musiikin hallintajärjestelmä Mukailtu lähteestä: Jukka Jylhäkangas, Ravintoloiden taustamusiikkijärjestelmä, diplomityö, TTY 2006. JOtu2013/K.Systä 14
Esimerkki 4: automaatiojärjestelmä Toimistoverkko Ohjaushuoneen verkko Tiedonhallinta tilan tarkkailu käytön hallinta Käyttö hälytykset laitteiden ohjaus Ylläpito varajärjestelmät työkalut Toimintoverkko kenttäväylät Yhteyksien hallinta Ohjaimet hälytykset laitteiden ohjaus Kytkennät muihin järj. Internet Toimilaitteet JOtu2013/K.Systä 2.9.2013 15
Esimerkki 4: automaatiojärjestelmä (Metso DNA) JOtu2013/K.Systä 16
JOtu2013/K.Systä 17 Vanha, mutta edelleen pätevä, kuva Infrastuktuuri: tietoliikenne, toimistoautomaatio, ryhmätyö, asianhallinta, palvelimet... Yrityksen tietovarastot Johdon tietojärjestelmät, päätöksenteon tuki Markkinointi Taloushallinto Tuotteiden suunnittelu, operatiiviset järjestelmät, tuotannonohjaus, materiaalihallinto, logistiikka Prosessi- ja tuotantoautomaatio Tietotekniikka tuotteissa 17
Esimerkki 5: Internet-palvelu Mainospalvelin HTML generointi Sovellus Pankki Sosiaalinen media Tietokanta Varasto JOtu2013/K.Systä 2.9.2013 18
Spekulointia TTY:n tarpeista Opettajien työajan koordinointi Opiskelijoiden lukujärjestyksen koordinointi Opetustilojen tilavaraukset KELA/Opintotuki Tiedotus Opetusohjelmat Opintokokonaisuudet Opintorekisterit Webbisivut Tenttien koordinointi Kurssit Luennot Harjoitukset h.työt Tentit JOtu2013/K.Systä 2.9.2013 19
JOtu2013/K.Systä 20 NMT-puhelin 20 kloc GSM-keskus 15MLOC äly-puhelin 20MLOC? televisio 200 kloc (yksinkertainen)hissi 50 kloc moderni auto? avaruussukkula 21 MLOC (sukkulassa 0,5MLOC) säätoventtiilin ohjaus 25kLOC työkoneen ohjaus 250kLOC Sulautetut järjestelmät Työn tuottavuus? LOC Lines of Code, koodiriviä 20
Ohjelmistojen ominaisuuksia Ohjelmistojen koko Yleisin, mutta aika huono, mittari on koodirivien määrä Reaaliaikaisuus Hajautus ja sulautus Käyttöliittymä, käytettävyys, käyttökokemus Luotettavuus Turvallisuus Millaiset vahingot mahdollisia a) ohjelmistovirheen b) väärän käytön vuoksi Tehokkuus, resurssien kulutus Prosessori, muisti, energia, tietoliikenne Skaalautuvuus Avoimuus, muunneltavuus 2.9.2013 JOtu2013/K.Systä 21
JOtu2013/K.Systä 22 Ohjelmistotekniikka on geneeristä 22
Pohdinta: Montako tietokonetta teillä on? Neljä läppäriä (4) Kolme muuta tietokonetta (7) Kotiserver ja Chumby (9) Kaksi TV:tä (11) Kaksi digiboxia (13) CD/DVD soitin (14) Printteri (15) Skanneri (16) 5 kännykkää (21) Autossa ainakin kaksi (23) Audiovahvistin (digit) (24) Kaukosäätimiä (ainakin 3) (27) Pelikonsoli (28) Pesukone (29) Kiuas (30) 2.9.2013 JOtu2013/K.Systä 23
http://www.softwareindustrysurvey.fi/slidesfinland2012.pdf 24 2.9.2013 JOtu2013/K.Systä
Nokian uuden strategian vaikutukset 25 2.9.2013 JOtu2013/K.Systä
Edelleen samasta lähteestä 26 2.9.2013 JOtu2013/K.Systä
Tähän taas yksi onneton Hakukoneeseen - Sampo - Danske - Verkkopankki - 2008 2.9.2013 JOtu2013/K.Systä 27
Sampo Pankki + Danske Bank IT järjestelmien yhdistäminen oli hetken aika kaaos Verkkopalvelut jumissa Turvallisuuspuutteita Maksut viivästyivät (esim opintotuki) Poimintoja verkkomediasta vuodelta 2008: Lähteiden mukaan testejä tehtiin 70000, mutta sekään ei riittänyt Toinen kirjoitus sanoo että lähes 30000 asiakasta lähti neljässä kuukaudessa. Pankista vahvistettiin, että tilin katoaminen johtuu järjestelmämuutokseen liittyvistä "teknisistä ongelmista". "Pankkivirkailija näki, että tili on yhä olemassa. Hän näki saldot ja kaikki, mutta se ei näy meidän verkkopankissa", yrittäjä tuskailee. Sampo Pankki poistaa palvelumaksun henkilöasiakkailtaan toukokuun osalta. Syynä maksun hyvittämiseen ovat palvelumaksujen laskennassa ilmenneet virheet. 2.9.2013 JOtu2013/K.Systä 28
Analyysiä Suurin osa tiedosta lienee luottamuksellista, mutta Sampo Pankin uudesta järjestelmästä on kerrottu, että se on yksi, yhtenäinen kokonaisuus. Tämän vuoksi järjestelmää ei voitu ottaa käyttöön esimerkiksi yksi toiminto kerrallaan, vaan se oli otettava käyttöön kertarysäyksellä ja hyväksyttävä toimeen liittyvät riskit. Integraatioita tutkinut Maria Alaranta kirjoitti: Yhteenvetona voidaan sanoa, että suurin osa fuusion jälkeisen it-integraation ongelmista johtuu huonosta johtamisesta, vaikkei teknisiä ongelmiakaan pidä aliarvioida. Yleinen arvio on, että hankkeesta päättäneet eivät tienneet millaiseen savottaan olivat lähdössä 2.9.2013 JOtu2013/K.Systä 29
Kaksi oppia Organisaatioiden yhdistäminen johtaa IT-järjestelmien yhdistämisen ongelmiin Kertarysäys sisältää riskejä. 2.9.2013 JOtu2013/K.Systä 30
http://www.hs.fi/kotimaa/a1375328280720 (Tietojärjestelmissä piilee kustannuspommi) Kun kuntia yhdistetään on liitosten myötä yhdistettävät kuntien tietojärjestelmät. Kuntaliitto on arvioinut, että jos tietojärjestelmät yhdistetään liian nopealla aikataululla, kustannukset voivat olla jopa satoja miljoonia euroja. Monessa kunnassa on käytössä pelkästään niille räätälöidyt, hyvin vanhat asiakastietojärjestelmät. Ne ovat elinkaarensa ja käyttöikänsä päätepisteessä. Kun näihin tehdään uusia toiminnallisuuksia, koodin ostaminen joltain toiselta yritykseltä tulisi kalliiksi. Kunnat ovat siten tiiviissä riippuvuussuhteessa alkuperäisten tietojärjestelmien toimittajien kanssa. 2.9.2013 JOtu2013/K.Systä 31
Ohjelmiston rakentamisen vaiheet 2.9.2013 JOtu2013/K.Systä 32
Tarve/idea Esiselvitys unohdetaan Tehdään itse Teetetään Ostetaan Vaatimusmäärittelyt Toimittajan valinta Räätälöidään Suunnittelu Toteutus Testaus Käyttöönotto Ylläpito Poisto 2.9.2013 JOtu2013/K.Systä 33
Parin IDLEn kehityksen projektin työmäärä (n. 1800 tuntia) Esitutkim Määrit Suunnit Toteutus Testaus 2.9.2013 JOtu2013/K.Systä 34
2.9.2013 JOtu2013/K.Systä 35 IDLE:n ensimmäisen version esitutkimus (projektityökurssin osasuoritus) VERSIOHISTORIA 2 SISÄLLYSLUETTELO 4 1. JOHDANTO 6 2. ONGELMAN KUVAUS 10 3. YLEISKUVAUS RATKAISUSTA 11 4. PROJEKTIN ORGANISOINTI 13 5. HAVAITUT ONGELMAT JA RISKIT 14 6. VAATIMUKSET 15 7. RAJAUKSET JA RAJOITTEET 25 8. YMPÄRISTÖ JA LIITTYMÄT 26 9. HYÖDYT 27 10. AIKATAULU 28 11. TOTEUTUSVAIHTOEHDOT 29 12. KUSTANNUKSET 32 13. PROJEKTIN KANNATTAVUUS 33 14.LISÄTIETOJA 34
H T M L T K H J T i e t o k a n t a T M L C S S J a v a S c r i p t i e d o s t o t T i e d o s t o j ä r j e s t e l m ä T u n n i s t a u t u m i n e n IDLE korkean tason arkkitehtuuri Käyttöliittymä WWW-selain H Välikerros WWW-palvelin IDLE:n toimintalogiikka PHP Tieto T Tiedon tallennus LDAP-palvelin JOtu2013/K.Systä 2.9.2013 36
IDLE - esimerkkejä suunnittelukuvista 2.9.2013 JOtu2013/K.Systä 37
2.9.2013 JOtu2013/K.Systä 38
Ohjelmiston rakentaminen projektina Asiakas - toimittaja Tarvitaan yhteisymmärrys siitä mitä halutaan Mitä se maksaa Koska se on valmis Asiakas ymmärrettävä laajasti Sisäinen Varsinaisen asiakkaan edustaja (esim. markkinointi) Asiakkaalle projekti on usein osa isompaa kokonaisuutta (hanketta) Ohjelmiston lisäksi laite, liiketoimintamuutos, Elinkaari: esiselvitys, määrittely, toteutus, käyttöönotto, ylläpito, käytöstä poisto Tämä kurssi on suunniteltu (myös) tuleville asiakkaille 39 2.9.2013 JOtu2013/K.Systä
Muita haasteita Tuote vs asiakaskohtainen Sopivuus asiakkaan tarpeisiin Kehittämisen ja ylläpidon kustannukset Dilemma. Kummalla rikastut: teet kerran ja myyt miljoona kopiota vai tekemällä monta projektia? Eri toimintatavat Hajautettu kehitys Resurssit ja asiantuntemus voi olla hajallaan Kustannusten vuoksi halutaan siirtää työtä halvan kustannuksen maihin. Monessa yrityksessä edustus asiakkaan luona, loput esim. Intiassa 40 2.9.2013 JOtu2013/K.Systä
Seuraava luento käyttäjäkokemus ohjelmisto- 26.8: Johdanto + historiaa, mitä on ohjelmistotuotanto Ohjelmien 28.10: rakentamisen Käyttäjä teoria ja ja 2.9: Ohjelmistojen roolista ja käytäntö. ohjelmistotyön määrästä, projektissa ohjelmistotyypit Mm. mitä ihmettä se muodikas ketteryys tarkoittaa. 9.9: Miten ohjelmistotyö organisoidaan (vaihejako ja prosessi-mallit) 16.9: vaatimusmäärittelyt 23.9: projektitoiminta 30.9: Yleiset notaatiot erityisesti UML 7.10: Esimerkkiprojekti (mahdollisesti vierailuluento) 2.9.2013 JOtu2013/K.Systä 21.10: Asiakasroolista 4.11: Tiedon mallintaminen 11.11: Ohjelmisto osana laitetta 1 18.11: Ohjelmisto osana laitetta 2 25.11: IPR, sopimukset, open source 2.12: Kertausta 41